클럭 속도
: 1초에 반복되는 클럭 획수(hZ 단위)코어
= '명령어를 실행하는 부품'스레드(thread)
: 실행 흐름의 단위
스레드의 구분
(1) 하드웨어적 스레드
논리 프로세서
: 프로그램 기준에서 명령어를 처리할 수 있는 프로세서의 개수, 하드웨어 스레드 각각을 CPU 하나로 인식(2) 소프트웨어적 스레드
cf. Intel 12세대 이후
책의 예시에서는 4코어 CPU가 8개의 논리 프로세서를 가지는 것을 볼 수 있었습니다. 이는 각각이 하이퍼스레딩이 가능한 코어이기 때문에 코어 하나에서 2개의 명령어를 처리하면서 나타난 결과입니다.
그러나 제 컴퓨터를 확인해 보니 코어는 14개인데 논리 프로세서가 20개임을 확인할 수 있었습니다.
왜 이런 결과가 나타났는 지 확인하기 위해 찾아보니 인텔 12세대부터는 새로운 아키텍쳐가 적용되면서 Performance Core(P-core)와 Efficient Core(E-core)의 두 가지 형태의 코어가 적용되었다고 합니다. 이러한 구조는 이미 모바일 프로세서에서는 적용된 설계 형태였지만 PC에 사용하는 인텔 CPU에서는 12세대부터 적용되었다고 합니다.
P-core의 경우 기존의 코어와 동일하게 하이퍼스레딩이 가능하고, E-core의 경우 하이퍼스레딩이 적용되지 않는 대신 전력 효율이 좋다고 합니다. 이 때문에 제 PC의 경우 논리 프로세서가 P-core에서 6*2 = 12개 + E-core에서 8개 총 20개였습니다.위와 같은 특징 때문에 게임 엔진 개발 시 GPU에게 빠르게 연산 결과를 주고 받아야하는 렌더링 작업은 P-core에, 비동기적으로 실행되는 작업을 E-core에서 처리하도록 설계한다면 CPU 부하를 줄일 수 있다고 합니다.
ILP, Instruction-Level Parallelism
명령어 파이프라이닝(instruction pipelining) : 명령어 처리 과정을 명령어 파이프라인에 넣고 동시에 겹쳐서 처리하는 기법
(1) 명령어 인출
(2) 명령어 해석
(3) 명령어 실행
(4) 결과 저장
파이프라인 위험 : 명령어 처리를 파이프라인에 의해 동시에 진행하면서 발생하는 위험 요소 및 그로 인한 성능 향상에 실패
(1) 데이터 위험
가변 길이 명령어
사용ex. RISC 명령어 집합에서 메모리에 직접 접근하는 명령어를 Load, Store 두 개로 제한 (load-store architecture)
고정 길이 명령어
: 명령어 파이프라이닝에 최적화된 형태참고자료
📚강민철, 『혼자 공부하는 컴퓨터 구조 + 운영체제』, 한빛미디어, 2022.
📹유튜브 공식 강의 12, 13, 14강
🐈⬛책 부록 GitHub
🖥️ Game Dev Guide for 12th Gen Intel® Core™ Processor