-
명령어 파이프라인컴퓨터공학기초/컴퓨터 공학 기초 2022. 10. 29. 14:06
명령어 파이프라인
CPU 처리성능 향상을 위해 Instruction 처리 과정을 여러 단계로 세분화하는 병렬처리 기법
파이프라인 발전 단계
파이프라인의 유형
T: 명령어 실행 시간, k: 파이프라인 단계, N 실행 명령어 수
- 명령어 인출(IF, Instruction fetch)
- 명령어 해독(ID, Instruction Decode)
- 연산 실행(EX, EXecution)
- 연산결과 저장(WB, Write Back)
파이프라인(pipeline)
파이프라인(pipeline)
특징
- Micro Instruction 기반 병렬처리
- 성능 : Pt = k + (N – 1)
슈퍼 파이프라인(super-pipeline)
spuer-pipeline
특징
- 파이프라인 단계수는 유지하면서 각 단계 내에서 처리속도를 몇 배로 높여주는 CPU 설계 기술
- 계산 유형 : CPU Clock Degree 기반 파이프라인
- 성능 : SPt = k + 1/n * (N – 1)
- n: CPU Clock degree (1 Clock 당 수행 횟수)
- n값이 커질수록 수행 시간은 줄어든다.
슈퍼 스칼라(superscala)
superscala
- CPU 내에 파이프라인을 여러 개 두어(중첩) 여러 명령어를 동시에 실행하는 기술
- 여러 개의 명령어 인출 장치, 실행 장치들이 필요
- 동시에 실행되어도 무관한 독립적인 명령어들을 판단해 골라내는 장치 필요
- 성능 : SSt = k + (N – m)/m
- m : 파이프라인 중첩 수
슈퍼 파이프라인 슈퍼 스칼라(spuer-piped superscala)
spuer-piped superscala
- 슈퍼 파이프라인 + 슈퍼 스칼라
- 성능 : SPSSt = k + (N – m)/(m * n)
VLIW(Very Long Instruction Word)
<참고>
- 긴 명령어 하나에 여러개의 연산을 포함시켜 내보내는 구조
- CPU로 명령어를 보내기 전에 병렬 처리 가능한 명령어들을 컴파일러가 미리 판단
- 동시에 실행될 수 있는 연산을 가진 명령어들을 하나로 묶어 긴 명령어 형식 내에 재배열한다.
- 정교한 컴파일러 기술이 필요 (하드웨어 구조는 간단해 졌지만, 컴파일러가 복잡해짐)
EPIC(Explicit Parallel Instruction Computing)
(IA-64 명령어 구조라고도 함. instruction architecture - 64)
IA-64 명령어 번들 형식
VLIW(EPIC) 구조
- VLIW의 일종이다.
- 128bit 길이의 명령어 형식
- 5bit template : 32개의 템플릿 제공으로 호환성 향상 (실행 방법)
- 3개의 41bit 명령 슬롯
파이프라인 해저드(hazard)
명령어 실행 지속이 불가하여 지정된 클럭에서 수행되는 파이프라인이 지연, 중지되는 현상
hazard
파이프라인에서 자원 충돌, 명령어 의존성 등에 의해 해저드(hazard)가 발생할 수 있기 때문에, 파이프라인의 단계수를 늘리거나 중첩시킨다고 해서 무한정 성능이 향상 되지는 않는다.
출처: https://gamedevlog.tistory.com/72
중앙처리장치(CPU) - 4 (명령어 파이프라인)
Goal 명령어 파이프라인 구조에 대한 이해 명령어 파이프라인 발전 흐름에 대한 이해(구조적 문제점 및 등장 배경의 기초적인 이해) 명령어 파이프라인 CPU 처리성능 향상을 위해 Instruction 처
gamedevlog.tistory.com
'컴퓨터공학기초 > 컴퓨터 공학 기초' 카테고리의 다른 글
캐시메모리 (0) 2022.10.29 RAM의 특성과 종류 (0) 2022.10.29 CPU의 개념 및 구성요소 (1) 2022.10.29 C언어의 컴파일 과정 (0) 2022.10.29 컴파일 언어와 인터프리터 언어 (0) 2022.10.29