Machineboy空

CPU 성능 향상 ① 빠른 CPU를 위한 설계 기법 - 클럭(clock), 코어(core), 스레드(thread) 본문

Computer/CS

CPU 성능 향상 ① 빠른 CPU를 위한 설계 기법 - 클럭(clock), 코어(core), 스레드(thread)

안녕도라 2024. 1. 5. 15:11

방법 1)클럭(clock) 속도

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

 → 빠른 CPU를 위해 클럭신호를 빨리 만들어볼까?

클럭 신호가 빠르게 반복되면 (= 클럭 속도가 빨라지면 ) CPU를 비롯한 컴퓨터 부품들은 그만큼 빠른 박자에 맞춰 움직이겠지?

 

꼭 그런 것은 아니지만 일반적으로는 맞다. 그래서 클럭 속도가 CPU 속도로 측정되기도 함.

 

 

클럭 속도는 일정한 것이 아니라 필요에 따라 느려졌다 빨라졌다 한다.

 

 클럭 속도를  무조건 높인다고 좋을까?

 

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


방법 2)코어(core) 수를 늘리기

 

전통적으론 단일한 코어가 즉 CPU였지만 멀티코어가 가능하며 다양한 부품이 생겨난 지금은 코어가 곧 CPU인 것은 아니다.

 

 

 코어를 늘리면 연산 속도도 그에 비례하여 빨라지나요?

 

코어마다 계산해야 할 업무가 적절하게 분배되지 않는다면, 꼭 코어 수에 비례하여 증가하는 것은 아니다

ex) 조별 과제를 생각해보세요. 4명이 참여해도 1~2명의 생산성이 나기도 함


방법 3)스레드(thread) 수 늘리기 (멀티 스레드 프로세서, 멀티스레드 CPU)

  • 스레드(thread)의 개념

스레드(thread) = '실행 흐름의 단위'

하드웨어 스레드
(= 논리 프로세서)
소프트웨어 스레드
하나의 코어가 동시에 처리하는 명령어 단위 하나의 프로그램에서 독집적으로 실행되는 단위



*하나의 코어가 동시에 1 스레드를 처리한다.


*두 개의 코어가 각각 2개의 스레드를 처리할 수 있다
*1,2,3을 동시에 실행되게 하려면

 


  • 하드웨어 스레드 (hardware thread)의 멀티스레드 프로세싱

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

 

 

 

ex) 프로그램 카운터: 다음으로 읽어들일 즉 실행할 파일의 주소를 읽어오는 역할인데 이것이 두 개라면 당연히 빨라짐

 

몇 코어 몇 쓰레드 인지 CPU만 알고 있고 메모리는 모른다.

하지만 명령어를 내보내는 수 등을 보고 추측할 뿐.

그래서 보이지 않는 논리적인 느낌이다. 해서 논리 프로세서라고도 불린다.