League Of Legends - Link Select '멀티코어 CPU' 태그의 글 목록
본문 바로가기
반응형

멀티코어 CPU4

[멀티코어CPU] 08. 메모리 명령 실행 알고리즘 & 프리펫처 - 컴퓨터 성능을 좌우하는 2가지 요소 : 메모리 레이턴시 - 메모리에서 원하는 데이터를 갖고 오고 쓰는데 걸리는 시간 : 메모리 대역폭 - 단위 시간당 메모리에서 가져올 수 있는 데이터양 : 캐시를 중요하게 다루는 것도 메모리 레이턴시를 극복하기 위함이었음 : 메모리 연산(로드와 스토어) → 어떻게 비순차 프로세서에서 처리되는가? - 효율적인 메모리 연산 : 비순차 프로세서에서 명령어가 완료된다 → 반드시 자신이 비투기적인 상태임을 뜻함 (명령어가 확실히 판명난 분기문의 흐름에 있어야 함) : 그렇지 않다면 분기 예측 실패로 무효화 될 가능성 존재 → 최종적으로 메모리나 레지스터에 반영 X : 확실해지기 전까지 ROB 같은 곳에서 보류 됨 : 만약 의존성이 없다면, 이들은 비순차로 실행될 수 있음 : .. 2024. 4. 11.
[멀티코어CPU] 07. 분기문 & 가상함수 - 분기문(branch) : 프로그램 실행 흐름, PC(Program Counter) 값이 바뀔 수 있는 명령어 : 분기문이 아닐 경우 다음 값을 가르키지만, 분기문일 경우 계산 결과로 좌우됨 1) 조건/무조건 분기문 → for, while, do ... : 무조건 분기문 - goto, jump로 항상 해당 목적지로 분기 : 조건 분기문 - 특정 연산 결과가 어 떤 조건을 만족할 때 2) 직접/간접 분기문 : 직접 분기문 - 분기 목적지를 바로 얻을 수 있음 : 간접 분기문 - 분기 목적지가 메모리 어딘가에 존재해 메모리 참조가 필요함 → 콜백 함수 호출, 프로시저 리턴, 가상함수 호출, switch-case 점프 테이블 등 - 분기 예측 : 분기의 방향과 관련이 있음 : 컨트롤 해저드에 의한 파이프라인.. 2024. 4. 9.
[멀티코어CPU] 06. 데이터 병렬성 & 캐시 정내훈 교수님이 추천한 책 「 프로그래머가 몰랐던 멀티코어 CPU 이야기」 - 김민장 지음 위의 책을 토대로 공부한 내용이 작성되었음 - 데이터 병렬성 : SIMD(Single Instruction Multiple Data) → 같은 명령어가 다른 데이터에 각각 적용됨 for (int i = 0; i C[3] // A[2] + B[2] -> C[2] // A[1] + B[1] -> C[1] // A[0] + B[0] -> C[0] : 벡터에 대한 산술 뿐만 아니라 비교, 변환, 셔플 등에도 제공됨 : 명령은 컴파일.. 2024. 4. 8.
[멀티코어CPU] 03. 의존성과 프로세서 기본 동작 정내훈 교수님이 추천한 책 「 프로그래머가 몰랐던 멀티코어 CPU 이야기」 - 김민장 지음 위의 책을 토대로 공부한 내용이 작성되었음 - 데이터 의존성 (Data dependence) : 명령어들 사이의 데이터 흐름, 프로그램의 문맥을 결정하는 중요 요소 : 의존성이 있는 명령어 → 순서대로 실행되어야 함 : 읽기/쓰기 순서에 따라 분류됨 // RAW 의존성 x = y + 1; z = x * 2; // 변수 x는 1번 명령이 계산 결과를 만들고 2번 명령이 이를 사용함 // 변수 x에 Read - After - Write 의존성이 존재 // WAR 의존성 z = x * 2; x = y + 1; // 변수 x에 Write - After - Read 의존성이 존재 // WAW 의존성 x = Z * 2; x .. 2024. 3. 29.
728x90
반응형