CPU 코어와 스레드 [컴퓨터 구조]

이름이름·2023년 8월 6일
0

컴퓨터 구조

목록 보기
4/6

클럭

  1. 컴퓨터 부품들은 클럭 신호에 맞춰 일사분란하게 움직입니다.
  2. CPU는 명령어 사이클이라는 정해진 흐름에 맞춰 명령어들을 실행한다.

클럭 속도가 높아지면 CPU는 명령어 사이클을 더 빠르게 반복할 것이고 그에 맞춰 다른 부품들도 빠르게 움직일 것입니다.
그래서 사실 클럭 속도가 높은 CPU가 일반적으로 성능이 더 좋습니다.

클럭 속도는 헤르츠(Hz)단위로 측정되는데 1Hz는 1초에 반복되는 것을 의미합니다.
그럼 100Hz는 1초에 100번 반복되는 것입니다.


위의 이미지는 실제 저희가 쓰는 CPU인데 기본속도(Base)는 2.5GHz,
최대속도(Max)는 4.9GHZ라는 것을 알 수 있습니다.
즉, 1초에 클럭이 기본적으로 25억번, 순간적으로 최대 49억번 반복된다는 것을 나타냅니다.

클럭 속도를 무작정 높이면 CPU는 빨라지지만 발열문제가 발생합니다..
따라서 클럭 속도로 CPU의 성능을 올리는 데에는 한계가 있습니다.

그럼 클럭 속도말고 CPU의 성능을 올리는 방법에는 무엇이 있을까요?
대표적인 해결책으로는 CPU의 코어와 스레드 수를 늘리는 방법이 있습니다!

코어와 멀티코어

앞서 CPU를 명령어를 실행하는 부품이라고 지칭해왔습니다.
현대에 들어서 CPU내에 명령어를 실행하는 부품은 얼마든지 만들 수 있게되었고 오늘날 이 명령어를 실행하는 부품코어(core)라고 부르게 되었습니다.

다시말해, 오늘날의 CPU는 단순히 명령어를 실행하는 부품에서 명령어를 실행하는 부품을 여러 개 포함하는 부품으로 명칭의 범위가 확장 되었습니다.

멀티 코어 CPU는 코어를 여러 개 포함하고 있는 CPU를 의미합니다.

8코어 CPU는 명령어를 실행하는 일꾼이 8명 있는 것이다.

하지만 무작정 코어의 수가 많다고 연산 속도와 처리량이 빨라지지는 않습니다.
코어마다 처리할 명령어를 어떻게 분배하느냐에 따라 처리량이 달라집니다.
ex) 4인 1조 팀플

스레드와 멀티스레드


스레드(thread)의 사전적 의미는 실행 흐름의 단위입니다.
이 때 CPU에서 사용되는 스레드와 프로그래밍에서 사용되는 스레드는 용례가 다릅니다.

하드웨어적 스레드

스레드를 하드웨어적으로 정의하면 하나의 코어가 동시에 처리하는 명령어 단위를 의미합니다.


예를 들어 2코어 4스레드 CPU는 위의 그림처럼 명령어를 실행하는 부품을 2개를 갖고있고 한 번에 4개의 명령어를 처리할 수 있는 CPU를 의미합니다.

이처럼 하나의 코어로 여러 명령어를 동시에 처리하는 CPU를 멀티스레드 프로세서 or 멀티 스레드 CPU라고합니다.


2코어 4스레드 CPU가 작업하는 것을 메모리 속 프로그램의 입장에서 보면 코어가 4개인 것으로 보입니다. 그래서 이 하드웨어 스레드를 논리 프로세서라고도 부릅니다.

소프트웨어적 스레드

소프트웨어적으로 정의된 스레드는 하나의 프로그램에서 독립적으로 실행되는 단위를 의미합니다.

profile
공부 정리

0개의 댓글