hmk run dev

빠른 CPU를 위한 설계 기법 본문

cs

빠른 CPU를 위한 설계 기법

hmk run dev 2024. 3. 2. 11:39

클럭(clock)

 

1. 컴퓨터 부품들은 '클럭 신호'에 맞춰 일사불란하게 움직인다.

2. CPU는 '명령어 사이클'이라는 정해진 흐름에 맞춰 명령어들을 실행한다.

 

 

일반적으로 클럭 신호가 빠르게 반복되면 

CPU를 비롯한 컴퓨터 부품들은

그만큼 빠른 박자에 맞춰 움직이겠네요?

 

꼭 그런건 아니지만 일반적으로는 맞다.

 

 

클럭 속도

 

- 헤르츠(Hz) 단위로 측정 (초당 횟수)

- 클럭이 '똑-딱-' 하고 1초에 한 번 반복되면 1Hz

인텔 CPU 예시

 

클럭 신호를 무지성으로 높이면

CPU가 무지막지하게 빨라진다?

 

필요 이상으로 클럭을 높이면 발열이 심해짐

 


코어와 멀티 코어

- 클럭 속도를 늘리는 것 이외에 성능을 높이는 방법은?

- 코어 수를 늘리는 방법 ex) 듀얼 코어, 멀티 코어...

- 스레드 수를 늘리는 방법 ex) 멀티 스레드..

 

 

 

코어(CORE)란?

- 현재덕 관점에서 CPU라는 용어를 재해석 해야 함

- 명령어를 실행하는 부품?

- 전통적으로 '명령어를 실행하는 부품'은 원칙적으로 하나만 존재

- But 오늘날 CPU에는 '명령어를 실행하는 부품'이 여러 개 존재

- '명령어를 실행하는 부품'을 코어라는 용어로 사용

 

 

 

코어를 무지성으로 늘리면

연산 속도도 그에 비례해 빨라지나?

 

꼭 코어 수에 비례하여 증가하진 않는다.

여러개의 코어를 두는 방식은 명령어들을 적절하게 분배하는 방식도 중요함

 

 

스레드

스레드란 '실행 흐름의 단위'

 

 

하드웨어 스레드

- 하나의 코어가 동시에 처리하는 명령어 단위

싱글 코어 프로세서, 싱글스레드 CPU
멀티 스레드 프로세서, 멀티스레드 CPU

 

 

멀티스레드 프로세서를 실제로 설계하는 일은 매우 복잡하지만,

가장 큰 핵심은 레지스터

 

 

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

 

하나의 코어에 레지스터 세트가 여러개가 있다면 하나의 코어가 여러개의 명령어를 동시에 처리가 가능해짐

 

 

 

하드웨어 스레드

- 논리 프로세서 라고도 부른다.

 

CPU 내부에 코어가 몇개고 스레드가 몇개인지는 메모리 안의 프로그램이 알필요가 없다.

다만 CPU가 상황에 맞게 처리할 뿐 => 논리 프로세서


 

소프트웨어 스레드

 

- 하나의 프로그램에서 독집적으로 실행되는 단위

 

 

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

CPU는 내부적으로 여러개 프로그램이나 스레드를 실행할 때 엄청나게 빠르게 번갈아가면서 실행할 수 있다.

 

 


 

Reference

 

https://www.yes24.com/Product/Goods/111378840?gad_source=1&gclid=CjwKCAiAloavBhBOEiwAbtAJOyom_qz_KHNNuqqD_qi8GXntZRgj9WKOZQfOJeDNaCiQkTh1y8VzzhoCJOQQAvD_BwE 

'cs' 카테고리의 다른 글

프로세스 스케줄링 알고리즘  (0) 2024.04.03
알아두면 쓸데 있는 GOF 디자인 패턴  (0) 2024.03.28
소스 코드와 명령어  (0) 2024.03.02
0과 1로 문자를 표현하기  (0) 2024.03.02
0과 1  (0) 2024.03.02
Comments