Computer Science
[Computer Science] CPU : 빠른 CPU를 위한 설계 기법
WebDevLee
2024. 5. 14. 22:09
빠른 CPU를 위한 다양한 설계 기법을 소개합니다.
참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'
< 클럭 >
클럭이란 컴퓨터의 모든 부품을 일사불란하게 움직일 수 있게 하는 시간 단위
- 클럭 속도 : 헤르츠(Hz) 단위로 측정
- 헤르츠(Hz) : 1초에 클럭이 반복되는 횟수 (1초에 한 번 반복되면 1Hz, 1초에 100번 반복되면 100Hz)
일반적으로 클럭 속도를 높이면 CPU 속도가 빨라지지만, 필요 이상으로 클럭을 높일 시 발열 문제가 심각해집니다.
그래서, 클럭 속도를 늘리는 방법 외에 코어 수를 늘리거나 스레드 수를 늘리면서 CPU의 속도를 향상시킵니다.
< 코어 >
오늘날 CPU에는 명령어를 실행하는 부품이 여러개 존재하는데, 이 '명령어를 실행하는 부품'을 코어라고 합니다.
+. 코어를 여러개 가지고 있는 CPU를 멀티코어 프로세서라고 합니다.
코어 수 | 프로세서 명칭 |
1 | 싱글코어 (single-core) |
2 | 듀얼코어 (dual-core) |
3 | 트리플코어 (triple-core) |
4 | 쿼드코어 (quad-core) |
6 | 헥사코어 (hexa-core) |
8 | 옥타코어 (octa-core) |
10 | 데카코어 (deca-core) |
12 | 도데카코어 (dodeca-core) |
CPU는 꼭 코어 수에 비례하여 증가하지는 않습니다. 중요한 건 코어마다 처리할 연산이 적절하게 분배되는지 입니다.
ex) 조별과제, 1000명의 요리사가 10인분의 요리
< 스레드 >
스레스란 '실행 흐름의 단위'입니다.
스레스에는 하드웨어적 스레드와 소프트웨어적 스레드가 있습니다.
- 하드웨어적 스레드 : 하나의 코어가 동시에 처리하는 명령어 단위, 논리 프로세서라고도 부릅니다.
- 소프트웨어적 스레드 : 하나의 프로그램에서 독립적으로 실행되는 단위
[ 하드웨어 스레드 ]
+. 하나의 코어가 여러개의 명령어를 동치에 처리할 수 있는 CPU를 멀티스레드 프로세서라고 부릅니다.
멀티스레드 프로세서를 설계하는 일은 매우 보잡하지만, 가장 큰 핵심은 레지스터입니다.
+. 하나의 명령어를 실행하기 위해 꼭 필요한 레지스터들을 편의상 '레지스터 세트' 라고 표기
[ 소프트웨어 스레드 ]
1코어 1스레드 CPU도 여러 소프트웨어적 스레드를 만들 수 있습니다.