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클럭 내외로 명령어 수행 |
| 파이프라이닝하기 어려움 | 파이프라이닝하기 쉬움 |
'CS > 컴퓨터구조' 카테고리의 다른 글
| 컴퓨터 구조 | 보조기억장치, 입출력장치 (3) | 2025.08.12 |
|---|---|
| 컴퓨터 구조 | 메모리와 캐시 메모리 (1) | 2025.08.06 |
| 컴퓨터 구조 | CPU 작동 원리 (3) | 2025.07.30 |
| 컴퓨터 구조 | 컴퓨터 구조, 데이터, 명령어 (2) | 2025.07.28 |