Search

05-1 빠른 CPU를 위한 설계 기법

혼자 공부하는 컴퓨터구조 + 운영체제

컴퓨터 구조

01 컴퓨터 구조 시작하기

02 데이터

03 명령어

04 CPU의 작동 원리

05 CPU 성능 향상 기법

06 메모리와 캐시 메모리

07 보조기억장치

08 입출력장치

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의 스레드 수)만큼 있는 것처럼 보임. 그래서 하드웨어 스레드를 논리 프로세서라고 부르기도 함
소프트웨어적 스레드 : 프로그램에서 사용되는 스레드. 하나의 프로그램에서 독립적으로 실행되는 단위를 의미. 하나의 프로그램에서 여러 스레드가 동시에 실행될 수 있음