Chapter.05 - CPU 성능 향상 기법
모든 이미지의 저작권은 [혼자 공부하는 컴퓨터 구조 + 운영체제] 도서의 저자 강민철님에게 있습니다.
클럭
클럭이 높으면 명령어가 더 빨리 실행되어 속도가 빨라지지만 발열이 심해진다.
코어와 멀티코어
* 코어
- 명령어를 실행하는 부품
- ALU + 제어장치 + 레지스터 세트 : 1코어
* 멀티코어 프로세서
- 코어를 여러개 포함하고 있는 CPU
코어보다는 코어마다 처리할 명령어를 적절하게 효율적으로 분배하는 것이 중요하다
스레드와 멀티스레드
* 하드웨어적 스레드 (논리 프로세서)
- 하나의 코어가 동시에 처리하는 명령어 단위
* 소프트웨어적 스레드
- 하나의 프로그램에서 독립적으로 실행되는 단위
* 멀티스레드 프로세서
- 하나의 코어로 여러 명령어를 동시에 처리하는 CPU
- ALU + 제어장치 + (레지스터 세트 * 2) : 1코어 2스레드
명령어 병렬 처리 기법
* 명령어 파이프라이닝
- 여러 개의 명령어를 한 줄 씩 겹쳐 실행하는 기법
* 슈퍼스칼라
- 여러 개의 명령어 파이프라인을 두는 기법
- 파이프라인 위험을 피하기 까다롭기 때문에 고도로 설계되어야 한다는 단점이 있다.
* 비순차적 명령어 처리
- 순서를 바꿔 실행해도 무방한 명령어를 먼저 실행하여 파이프라인 위험을 피해 명령어를 실행하는 기법
- 파이프라인 위험
- 데이터 위험 : 각 명령어의 데이터 간 의존에 의한 위험
- 제어 위험 : 갑작스런 주소 이동과 같은 변화에 의한 위험
- 구조적 위험 : 서로 다른 명령어가 같은 CPU 부품에 동시 접근으로 인한 위험
CISC & RISC
명령어 파이프라이닝과 슈퍼스칼라 기법을 실제로 CPU에 적용하기 위해서는 명령어가 파이프라이닝에 최적화되어 있어야 한다.
* 명령어 집합 구조 (ISA)
- CPU 가 이해할 수 있는 명령어들의 모음
- CPU 마다 ISA 가 다를 수 있으며 ISA 가 다르면 CPU 는 명령어를 해석할 수 없다.
- ISA 는 일종의 CPU 의 언어 같은 셈
* CISC vs RISC
This post is licensed under CC BY 4.0 by the author.