티스토리 뷰

반응형

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

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

 

따라서 클럭이 빠르게 반복되면, 일반적으로는 빠른 속도를 보장한다.

 

클럭 속도

클럭 속도: HZ 단위로 측정

HZ : 1초에 클럭이 반복되는 횟수

똑-딱이 1초 1 반복이면 1HZ, 1초에 100번 반복되면 100HZ

 

i7 코어인 4.9GHz의 경우,  순간적으로 1초에 49억(4.9 * 10^9)번 반복된다.

 

필요 이상으로 클럭을 높이면 발열이 심각해진다.

TMI : 발열은 트랜지스터 반도체의 제어 전압인 0.7v를 파괴할 수 있기 때문에 조심해야 한다.

 

따라서 속도를 더 올리려면 코어 수를 늘리거나, 스레드 수를 늘려야 한다.

 

코어와 멀티 코어

CPU에는 명령어를 실행하는 부품이 여러 개 존재

오늘날에는 명령어를 실행하는 부품을 코어라는 용어로 사용

 

즉, 코어란 CPU 내에서 명령어를 실행하는 부품으로 여러 개 있을 수 있다.

 

여러 개 있으면 멀티 코어

 

그러면 여기도 코어를 그냥 많이 늘리면 좋은가?

 

꼭 코어 수에 비례하여 속도가 증가하지는 않는다.(조별과제)

 

스레드와 멀티 스레드

스레드란 '실행 흐름의 단위' 라고만 나와 있다.

그런데 하드웨어와 소프트웨어에서 둘 다 쓴다.

 

혼란을 줄이기 위해서는 하드웨어적인 스레드와 소프트웨어적인 스레드를 구분해야 한다.

 

하드웨어적인 스레드

 

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

ex) 하나의 코어가 하나의 명령어를 처리할 수 있다면 1코어 1스레드 CPU

ex2) 2개의 코어가 각각 2개씩 명령어를 처리할 수 있다면 2코어 4스레드(2+2) CPU

 

그런 스레드가 여러개인 것을 멀티 스레드라고 한다.

인텔 CPU의 하이퍼스레딩(인텔의 멀티스레드 기술)

 

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

작업 관리자 -> 성능 -> 논리 프로세서의 개수(하드웨어의 개수)

 

소프트웨어적인 스레드

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

 

메모리에서 하나의 프로그램만 순차적으로 실행하는 건 싱글 스레드

하나의 프로그램에서 동시에 두 개 이상의 영역이 실행되는 건 멀티 스레드

 

ex) 하나의 프로그램에서 1,2,3번 기능이 있을 때, 1,2,3의 기능을 동시 실행하려면 멀티 스레드와 멀티 프로세스를 실행해야 한다.

 

하드웨어적인 소레드가 1개여도, 소프트웨어적인 스레드는 여러개로 만들 수 있다.

 

그렇기에 구분하는 게 중요하다.

 

CPU 설계 및 선택을 위해서는..

하드웨어적인 스레드 설계에는 레지스터가 제일 중요

하나의 명령어를 실행하기 위해 꼭 필요한 레지스터들을 레지스터 세트라 부른다.

 

레지스터 세트가 여러개라면, 명령어를 여러개 처리할 수 있다.

 

 

반응형