컴퓨터 구조 · 파이프라인

파이프라인 단계와 해저드 타임라인

IF, ID, EX, MEM, WB 단계가 겹쳐 실행될 때 데이터 해저드와 제어 해저드가 어느 칸에서 멈춤과 플러시를 만드는지 시간축으로 정리한다.

01

명령어 겹치기

각 명령어는 다른 단계에 놓이며 한 사이클마다 다음 칸으로 이동한다.

처리 흐름
02

의존성 발견

ID 단계에서 앞 명령어 결과가 아직 준비되지 않았는지 확인한다.

RAW hazard
03

우회 또는 정지

forwarding으로 값을 받을 수 있으면 진행하고, 불가능하면 stall을 넣는다.

forwarding
04

분기 확정

분기 결과가 늦게 확정되면 이미 가져온 명령어를 flush한다.

control hazard
구조 해저드
하드웨어 자원 충돌 같은 메모리 포트나 연산 장치를 동시에 쓰려 할 때 발생한다.
자원 분리
데이터 해저드
앞 결과가 뒤 입력으로 필요 값이 아직 WB에 도달하지 않았으면 forwarding 또는 stall이 필요하다.
의존성 추적
제어 해저드
분기 방향이 늦게 결정 예측 실패 시 잘못 가져온 명령어를 파이프라인에서 지운다.
branch penalty

성능 해석

CPI 이상적 CPI 1에 stall과 flush 비용이 더해진다.
처리량 개별 명령 지연은 줄지 않아도 완료 간격은 짧아진다.
분기 예측 제어 해저드 비용을 줄이는 핵심 장치다.