1] 명령어 파이프라인
일반적으로 명령어가 처리되는 단계는
1. 명령어 인출(Instruction Fetch)
2. 명령어 해석(Instruction Decode)
3. 명령어 실행(Execute Instruction)
4. 결과 저장(Write Back)
으로 볼 수 있는데,
같은 단계가 겹치지만 않는 다면 CPU는 각 단계를 동시에 실행할 수 있고
동시에 여러 개의 명령어를 겹쳐 실행하는 기법을 명령어 파이프라인이라고 한다
2] 파이프라인 위험
명령어 파이프라인이 성능 향상에 실패하는 경우를 파이프라인 위험이라고 한다
그 종류로는 데이터 위험, 제어 위험, 구조적 위험이 있다
(1) 데이터 위험: 명령어 간의 의존성에 의해 야기
모든 명령어를 동시에 처리할 수 없는 경우(이전 명령어를 끝까지 실행해야만 비로소 실행할 수 있는 경우)에 발생한다
(2) 제어 위험: 프로그램 카운터의 갑작스러운 변화
명령어들은 순차적으로 진행이 되는데 프로그램 카운터가 변화하면, 기존 프로그램 카운터에 따라 순차적으로 명령어를 실행한 만큼 낭비가 발생
이를 방지하기 위해, 프로그램 카운터를 미리 예측하는 기술을 분기 예측(branch prediction)이라 부른다
(3) 구조 위험: 서로 다른 명령어가 같은 CPU 부품(ALU, 레지스터)을 쓰려고 할 때
3] 슈퍼스칼라
CPU 내부에 여러 개의 명령어 파이프라인을 포함한 구조
이론적으로는 파이프라인 개수에 비례하여 처리 속도가 증가하지만
파이프라인 위험도가 파이프라인 개수에 비례하여 증가하기 때문에,
파이프라인 개수에 비례하여 처리 속도가 무조건 증가하진 않음
4] 비순차적 명령어 처리
파이프라인의 중단을 방지하기 위해 명령어를 순차적으로 처리하지 않는 명령어 병렬 처리 기법이다
의존성이 없고 전체 프로그램 실행 흐름에 영향이 없는 명령어들 간의 순서를 적절하게 변경하는 것이다
'CS > [혼자 공부하는] 컴퓨터 구조' 카테고리의 다른 글
6-1] 메모리와 캐시 메모리: RAM의 특징과 종류 (0) | 2023.05.30 |
---|---|
5-3] CPU의 성능 향상 기법: 명령어 집합 (CISC와 RISC) (0) | 2023.03.31 |
5-1] CPU의 성능 향상 기법: 코어와 스레드 (0) | 2023.03.31 |
4-3] CPU의 작동원리: 명령어 사이클과 인터럽트 (0) | 2023.03.31 |
4-2] CPU의 작동원리: 레지스터 (0) | 2023.03.31 |