프로그래밍/컴퓨터구조 및 운영체제

CPU의 속도를 빠르게 하는 멀티코어 멀티스레드

gameObject 2023. 10. 16. 20:09
728x90

CPU의 속도

- 컴퓨터의 부품들은 클럭신호에 마줘 일사불란하게 움직이고 CPU는 명령어 사이클이라는 정해진 흐름에 맞춰 명령어를 실행한다.

- 따라서 클럭속도가 빠르다면 명령어 처리속도가 빠르다.

- 클럭속도 : HZ(헤르츠) 단위

- 1초에 클럭이 반복되는 횟수를 뜻하며 1초에 100번 반복되면 100Hz이다.

- CPU는 클럭신호를 빠르게할때는 빠르게, 느리게 할땐 느리게 유동적인 동작이 가능하다.

- 필요 이상으로 클럭을 높이면 발열이 심해지기 때문에 꼭 클럭신호를 빠르게한다고 해서 반드시 빨라지는것만은 아니다.

 

클럭속도를 늘리는 방법 이외에 CPU의 속도를 빠르게 하기 위한 방법

1. 코어 수를 늘리는 방법 (멀티 코어)

2. 쓰레드 수를 늘리는 방법 (멀티 쓰레드)

 

코어 / 멀티코어

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

- 여기서 명령어를 실행하는 부품을 "코어"라고 한다.

- 명령어를 실행하는 부품 == 전통적인 의미의 CPU (ALU + 제어장치. + 레지스터 등)을 말한다.

- 코어가 여럿이라는 뜻은 옛날 CPU가 많이 담겨있다는 뜻이다.

- 물론 코어수에 비례하여 속도가 반드시 증가하는것은 아니다.

- 듀얼코어, 트리플코어, 쿼드코어 ~~등 (멀티코어 프로세스)

 

스레드 / 멀티쓰레드

1. 하드웨어 쓰레드

- Thread(스레드)란 실행 흐름의 단위이다.

- 1코어 1쓰레드 CPU = 1개의 코어가 1개의 명령어를 처리할수있는 CPU이다.

- 2코어가 각각 2개씩 명령어를 동시에 처리할 수 있다면 2코어 4쓰레드 CPU라고 한다.

 

2개 이상을 멀티 쓰레드 프로세서, 멀티쓰레드 CPU라고 부른다.

* 하이퍼쓰레딩 : 인텔의 멀티 쓰레드 기술

 

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

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

* 즉 2코어 4쓰레드 CPU라면 1코어(1작은 CPU 에는 레지스터 세트가 2개 들어있다)

 

>> 여기까지가 하드웨어 쓰레드, 논리 프로세서이다.

 

2. 소프트웨어적 스레드

- 하나의 프로그램에서 독립적으로 실행되는 단위를 말한다.

운영체제 파트에서 좀 더 자세히 다룰 예정이라고 한다.

소프트웨어적 쓰레드를 이용하면 1코어 1쓰레드 CPU에서도 여러개의 쓰레드를 만들어 사용이 가능한것을 알 수 있다.

 

*혼자 공부하는 컴퓨터 구조 운영체제를 공부하며 작성하였습니다.*

 

728x90