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

 

 

+. 코어를 여러개 가지고 있는 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인분의 요리

 

 


< 스레드 >

스레스란 '실행 흐름의 단위'입니다.

스레스에는 하드웨어적 스레드소프트웨어적 스레드가 있습니다.
- 하드웨어적 스레드 : 하나의 코어가 동시에 처리하는 명령어 단위, 논리 프로세서라고도 부릅니다.
- 소프트웨어적 스레드 : 하나의 프로그램에서 독립적으로 실행되는 단위


 


[ 하드웨어 스레드 ]

2코어 4스레드 CPU

+. 하나의 코어가 여러개의 명령어를 동치에 처리할 수 있는 CPU를 멀티스레드 프로세서라고 부릅니다.

 

 

멀티스레드 프로세서를 설계하는 일은 매우 보잡하지만, 가장 큰 핵심은 레지스터입니다.

멀티 프로세서

+. 하나의 명령어를 실행하기 위해 꼭 필요한 레지스터들을 편의상 '레지스터 세트' 라고 표기

 

 


[ 소프트웨어 스레드 ]

싱글 스레드 vs 멀티스레드

 

1코어 1스레드 CPU도 여러 소프트웨어적 스레드를 만들 수 있습니다.