CS

CPU - 성능 개선

rhdaud2 2025. 4. 6. 21:09

 

CPU 성능 향상을 위한 방법으로 클럭 속도 증가, 멀티코어 및 멀티스레드 설계에 대해 
# CPU, 클럭 속도, 멀티코어, 멀티스레드, 병렬성

 

- CPU 성능을 높이는 가장 기본적인 방법은 클럭 속도를 높이는 것
- 멀티코어는 명령어를 읽고 해석하는 CPU 내의 여러 코어를 의미
- 멀티스레드는 하나의 코어가 동시에 여러 명령어를 처리할 수 있는 기능
- 하드웨어적인 쓰레드와 소프트웨어적인 쓰레드는 서로 다른 개념으로 이해해야 한다
- 병렬성과 동시성의 차이를 이해하는 것이 중요

 

 

CPU 클럭 속도
- 클럭(colck) : 컴퓨터의 부품을 일사불란하게 움직일 수 있게 하는 '시간의 단위' (속도는 Hz 단위로 측정)
- 클럭 속도 = CPU의 속도
   -> 필요 이상으로 높이면 발열이 심해질 수 있어 이것만으로 성능 개선에는 한계가 있음
[ 추가적인 CPU 성능 개선 방법 : 멀티코어 혹은 멀티스레드로 제작 ] 

 

작업관리자에서 성능 확인 가능

 


* 속도 : 클럭속도 / 코어 / 논리 프로세서 : 스레드 - 하드웨어 스레드

 

 

코어 / 멀티코어 명칭

 

 

 

 

멀티코어와 멀티스레드
- 코어(core) : CPU 내에서 명령어를 읽고, 해석하고, 실행하는 부품

- 스레드(thread) : 실행의 단위 (하드웨어 스레드<논리프로세서> / 소프트웨어적인 스레드)
  - 하드웨어 스레드 : 하나의 코어가 동시에 처리하는 명령어의 단위
  - 소프트웨어 스레드 : 하나의 프로그램에서 독립적으로 실행되는 단위

-> 
멀티 코어 / 멀티 스레드 
 - 병렬성<parallelism> / 4코어 8스레드 cpu 가 4개 명령어 동시실행
소프트웨어 스레드 
 - 동시성 <concurrency>( 동시에 작업을 처리하는 것처럼 보이는 성질
(실제로 동일 시간에 처리되는 것은 아니지만 번갈아가며 실행되어 동시에 실행되는 것처럼 보이는 것)


 

동시성 / 병렬성

 

 


 

 

명령어 파이프라이닝을 통해 알아보는 명령어 병렬 처리 방법

명령어 병렬 처리 기법 (ILP, Instruction-Level Parallelism)
- 여러 명령어 동시 처리, cpu를 쉬지 않고 작동시켜 성능 향상
- 명령어 파이프라이닝

 

명령어 파이프라이닝

 

 

[명령어 처리 과정]
- 비슷한 시간 간격으로 나눈다
  1. 명령어 인출(Instruction Fetch)
  2. 명령어 해석(Instruction Decode)
  3. 명령어 실행(Execute Instruction)
  4. 결과 저장(Write Back)
-> 같은 단계가 겹치지만 않는다면, cpu가 각각 단계를 동시에 실행할 수 있다

* 슈퍼스칼라

: 여러 개의 파이프라인을 두는 것

[파이프라인 위험(pipeline hazard)]
: 파이프라이닝이 실패하여 성능 향상이 이루어지지 않는 상황

- 데이터 위험(data hazard) : 명령어 간 데이터 의존성에 의해 방생
- 제어 위험 (control hazard) : 프로그램 카운터(PC)의 갑작스러운 변화에 의해 발생
- 구조적 위험(structural hazard) / 자원 위험(resource hazard)
 : 명령어들을 겹쳐 실행하는 과정에서 서로 다른 명령어가 동시에 같은 CPU 부품을 사용하려고 할 때 발생

'CS' 카테고리의 다른 글

보조기억장치, 입출력장치  (0) 2025.04.21
메모리  (0) 2025.04.16
CPU-인터럽트  (0) 2025.04.02
CPU - 레지스터  (0) 2025.03.25
명령어  (0) 2025.03.25