목차
컴퓨터 부품들은 '클럭 신호'에 맞춰 일사불란하게 움직인다.
cpu는 '명령어 사이클'이라는 정해진 흐름에 맞춰 명령어들을 실행한다.
그럼 클럭 신호가 빠르게 반복되면 cpu는 그만큼 빠른 박자에 맞춰 움직일까 ?
정답은 일반적으로는 그렇다.
그럼 클럭 신호를 마냥 높이면 cpu 가 무지막지하게 빨라질까 ?
그렇지 않다. 필요 이상으로 클럭을 높이면 발열이 심각해진다.
그럼 컴퓨터를 빠르게 하기 위해선 어떤 방법들이 추가적으로 있을까 ?



여러개의 코어를 포함하고 있는 CPU를 말한다.
그렇다면 코어를 많이 늘리면 연산 속도도 그에 비례해서 빨라질까 ?
그렇지 않다. 꼭 코어 수에 비례해서 증가하지는 않는다.
쓰레드는 두 종류가 있다.
하나의 코어가 동시에 처리하는 명령어 단위


멀티 쓰레드 프로세서를 실제로 설계하는 일은 매우 복잡하다.
가장 큰 핵심은 레지스터이다.
아래 그림과 같이 하나의 코어에 여러개의 레지스터 세트가 있다면 하나의 코어가 여러 명령어를 동시에 처리할 수 있다. 즉 이게 멀티 쓰레이드이다.
(레지스터 세트 : 하나의 명령어를 실행하기 위해 꼭 필요한 레지스터들 (MAR, MBR, Stack pointer, PC, ...))

만약 CPU 가 2코어 4쓰레드라고 했을 때에 메모리는 CPU 가 몇개의 코어와 쓰레드를 가지고 있는지는 알 수 없다.
그저 명령어를 몇개씩 가지고 가는구나 (=작업 흐름이 몇개 있구나) 만 알 고 있다.
그렇기때문에
하드웨어 쓰레드는 논리 프로세스라고도 부른다.

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

즉 하드웨어적으로 1코어 1쓰레드 CPU여도 여러 소프트웨어적 쓰레드를 만들 수 있다.