Last update: @1/7/2023
•
클럭 속도 향상
◦
클럭 속도는 일정하지 않고, CPU가 고성능을 요하는 순간에는 높아지고, 아닐 때는 낮아짐
◦
오버클러킹(overclocking)
: 최대 클럭 속도를 강제로 더 끌어올리는 것. 발열 문제가 발생함
•
코어와 멀티코어
◦
코어(core)
: ALU, 제어장치, 레지스터를 포함하여 명령어를 실행할 수 있는 CPU 부품 단위. 과거의 전통적인 CPU 하나가 코어라는 단위로 내려온 셈.
◦
멀티코어 CPU(multi-core CPU = multi-core processor)
: 코어를 여러 개 포함하고 있는 CPU
▪
코어를 무작정 많이 늘린다고 속도가 정비례해서 빨라지지는 않고, 코어마다 처리할 명령어들을 얼마나 적절하게 분배하느냐가 중요함
•
스레드와 멀티스레드
◦
스레드
: 실행 흐름의 단위
▪
하드웨어적 스레드(논리 프로세서 = logical processor)
: CPU에서 사용되는 스레드. 하나의 코어가 동시에 처리하는 명령어 단위를 의미
•
싱글 스레드 프로세서(singlethread processor = singlethread CPU)
: 하나의 코어로 하나의 명령을 처리하는 CPU
•
멀티 스레드 프로세서(multithread processor = multithread CPU)
: 하나의 코어로 여러 명령어를 동시에 처리하는 CPU
◦
하나의 코어로 여러 명령어를 동시에 처리하도록 만들려면 프로그램 카운터, 스택 포인터, 데이터 버퍼 레지스터, 데이터 주소 레지스터와 같이 하나의 명령어를 처리하기 위해 꼭 필요한 레지스터 세트를 여러개 가지고 있으면 됨
◦
프로그램 입장에서는 한 번에 하나의 명령어를 처리하는 CPU가 레지스터 세트 수(CPU의 스레드 수)만큼 있는 것처럼 보임. 그래서 하드웨어 스레드를 논리 프로세서라고 부르기도 함
▪
소프트웨어적 스레드
: 프로그램에서 사용되는 스레드. 하나의 프로그램에서 독립적으로 실행되는 단위를 의미. 하나의 프로그램에서 여러 스레드가 동시에 실행될 수 있음