Machineboy空
CPU 성능 향상 ① 빠른 CPU를 위한 설계 기법 - 클럭(clock), 코어(core), 스레드(thread) 본문
방법 1)클럭(clock) 속도
- 컴퓨터 부품들은 '클럭 신호'에 맞춰 일사불란하게 움직인다.
- CPU는 '명령어 사이클'이라는 정해진 흐름에 맞춰 명령어들을 실행한다.
→ 빠른 CPU를 위해 클럭신호를 빨리 만들어볼까?
→ 클럭 신호가 빠르게 반복되면 (= 클럭 속도가 빨라지면 ) CPU를 비롯한 컴퓨터 부품들은 그만큼 빠른 박자에 맞춰 움직이겠지?
꼭 그런 것은 아니지만 일반적으로는 맞다. 그래서 클럭 속도가 CPU 속도로 측정되기도 함.
클럭 속도는 일정한 것이 아니라 필요에 따라 느려졌다 빨라졌다 한다.
→ 클럭 속도를 무조건 높인다고 좋을까?
필요 이상으로 클럭 높이면 발열이 심각해짐!
방법 2)코어(core) 수를 늘리기
전통적으론 단일한 코어가 즉 CPU였지만 멀티코어가 가능하며 다양한 부품이 생겨난 지금은 코어가 곧 CPU인 것은 아니다.
→ 코어를 늘리면 연산 속도도 그에 비례하여 빨라지나요?
코어마다 계산해야 할 업무가 적절하게 분배되지 않는다면, 꼭 코어 수에 비례하여 증가하는 것은 아니다
ex) 조별 과제를 생각해보세요. 4명이 참여해도 1~2명의 생산성이 나기도 함
방법 3)스레드(thread) 수 늘리기 (멀티 스레드 프로세서, 멀티스레드 CPU)
- 스레드(thread)의 개념
스레드(thread) = '실행 흐름의 단위'
하드웨어 스레드 (= 논리 프로세서) |
소프트웨어 스레드 |
하나의 코어가 동시에 처리하는 명령어 단위 | 하나의 프로그램에서 독집적으로 실행되는 단위 |
![]() *하나의 코어가 동시에 1 스레드를 처리한다. ![]() *두 개의 코어가 각각 2개의 스레드를 처리할 수 있다 |
![]() ![]() ![]() |
![]() |
- 하드웨어 스레드 (hardware thread)의 멀티스레드 프로세싱
멀티스레드 프로세서를 실제로 설게하는 일은 매우 복잡하지만, 가장 큰 핵심은 레지스터
ex) 프로그램 카운터: 다음으로 읽어들일 즉 실행할 파일의 주소를 읽어오는 역할인데 이것이 두 개라면 당연히 빨라짐
몇 코어 몇 쓰레드 인지 CPU만 알고 있고 메모리는 모른다.
하지만 명령어를 내보내는 수 등을 보고 추측할 뿐.
그래서 보이지 않는 논리적인 느낌이다. 해서 논리 프로세서라고도 불린다.
'Computer > CS' 카테고리의 다른 글
CPU 성능 향상 ③ 명령어 집합 구조, CISC와 RISC (1) | 2024.01.06 |
---|---|
CPU 성능 향상 ② 명령어 병렬 처리 기법 - 명령어 파이프라인(Instruction Pipeline), 슈퍼스칼라(Superscalar), 비순차적 명령어 처리(OOOE) (0) | 2024.01.05 |
CPU ③ 명령어 사이클과 인터럽트 (1) | 2024.01.05 |
CPU ② 레지스터 (1) | 2024.01.04 |
CPU ① ALU와 제어장치 (1) | 2024.01.04 |