본문 바로가기
CS/컴퓨터구조

컴퓨터 구조 | CPU 성능 향상 기법

by 개발송이 2025. 8. 1.

5. CPU 성능 향상 기법

 

5.1 빠른 CPU를 위한 설계 기법

 

클럭

- 클럭 속도 : 헤르츠(Hz) 단위로 측정. 1초에 클럭이 몇 번 반복되는지 나타냄

- 클럭 속도가 높은 CPU는 빠르게 동작

 

코어와 멀티코어

- 코어 : 명령어를 실행하는 부품

- 멀티코어 CPU / 멀티코어 프로세서 : 코어를 여러 개 포함하고 있는 CPU

 

스레드와 멀티스레드

- 스레드 : 실행 흐름의 단위

- 하드위에적 스레드 / 소프트웨어적 스레드

 

하드웨어적 스레드

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

- ex ) 2코어 4스레드 CPU - 명령어를 실행하는 부품을 두 개 포함하고 한 번에 네 개의 명령어를 처리할 수 있는 CPU

 

소프트웨어적 스레드

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

 

멀티스레드 프로세서

- 하나의 코어로 여러 개의 명령어를 동시에 실행할 수 있는 CPU

 

 

5.2 명령어 병렬 처리 기법

 

명령어 병렬 처리 기법

- 명령어를 빠르고 효율적으로 처리하기 위해 CPU를 한시도 쉬지 않고 작동시키는 기법

- 명령어 파이프 라이닝, 슈퍼스칼라, 비순차적 명령어 처리

 

명령어 파이프 라이닝

- 동시에 여러 개의 명령어를 겹쳐 실행하는 기법

 

파이프 라인 위험

1. 데이터 위험 : 데이터 의존성에 의해 발생

2. 제어 위험 : 프로그램 카운터의 갑작스러운 변화에 의해 발생 -> 이를 위해 분기 예측 기술을 사용'

3. 구조적 위험 : 명령어들을 겹쳐 실행하는 과정에서 서로 다른 명령어가 동시에 ALU, 레지스터 등과 같은 CPU 부품을 사용하려고 할 떄 발생

 

슈퍼스칼라

- CPU 내부에 여러 개의 명령어 파이프라인을 포함한 구조

 

비순차적 명령어 처리

- 파이프라인의 중단을 방지하게 위해 명령어를 순차적으로 실행하지 않는 기법 -> 합법적인 새치기

 

 

5.3 CISC와 RISC

 

ISA (Instruction Set Architecture)

- CPU가 이해할 수 있는 명령어들의 모음을 명령어 집합 또는 명령어 집합 구조(ISA) 라고 함

- ISA가 다르다는 건 CPU가 이해할 수 있는 명령어가 다르다는 것 -> 명령어가 달라지면 어셈블리어도 달라짐

- CPU의 언어이자 하드웨어가 소프트웨어를 어떻게 이해할지에 대한 약속

 

CISC (Complex Instruction Set Computer)

- 복잡하고 다양한 수의 가변길이 명령어 집합을 활용함

- 복잡하고 다양한 명령어들을 활용하는 CPU 설계 방식

- 대표적으로 x86, x86-64가 CISC기반 ISA

- 단 명령어 규격화가 어려워 파이프라이닝이 어려운 단점이 있음

 

RISC (Reduced Instruction Set Computer)

- 단순하고 적은 수의 고정 길이 명령어 집합을 활용

- 명령어가 규격화되어 있고, 하나의 명령어가 1클럭 내외로 실행되기 떄문에 파이프라이닝에 최적화됨

 

CISC RISC
복잡하고 다양한 명령어 단순하고 적은 명령어
가변 길이 명령어 고정 길이 명령어
다양한 주소 지정 방식 적은 주소 지정 방식
프로그램을 이루는 명령어의 수가 적음 프로그램을 이루는 명령어의 수가 많음
여러 클럭에 걸쳐 멸영어 수행 1클럭 내외로 명령어 수행
파이프라이닝하기 어려움 파이프라이닝하기 쉬움