파이프라인 해저드
파이프라인 해저드는 다음 명령어가 다음 클록 사이클에 실행되지 못하는 문제다. 명령어를 단계별로 겹쳐 처리하면 자원 충돌과 값 의존이 생긴다. 해저드는 구조적, 데이터, 제어 세 유형으로 나뉜다. 다섯 단계 파이프라인은 명령어를 IF부터 WB까지 나눠 처리한다. 각…
주요 장면
대본
해저드란
파이프라인 해저드는 다음 명령어가 다음 클록 사이클에 실행되지 못하는 문제다.
명령어를 단계별로 겹쳐 처리하면 자원 충돌과 값 의존이 생긴다.
해저드는 구조적, 데이터, 제어 세 유형으로 나뉜다.
다섯 단계 파이프라인
다섯 단계 파이프라인은 명령어를 IF부터 WB까지 나눠 처리한다.
각 단계가 서로 다른 명령어를 동시에 처리해 처리량이 늘어난다.
하지만 해저드가 있으면 스톨이 생기고 CPI가 1보다 커진다.
세 가지 해저드
구조적 해저드는 같은 하드웨어 자원을 동시에 쓰려 할 때 생긴다.
데이터 해저드는 앞 명령어 결과를 뒤 명령어가 아직 쓸 수 없을 때 생긴다.
제어 해저드는 분기로 다음 명령어 주소가 확정되지 않을 때 생긴다.
데이터 해저드와 전방전달
앞 문제의 정답은 구조적 해저드다.
데이터 해저드 중 RAW 의존은 전방전달로 대부분 줄인다.
전방전달은 ALU 출력을 레지스터 기록을 기다리지 않고 다음 입력으로 보낸다.
그러나 로드 직후 사용은 전방전달로 막지 못해 한 사이클 스톨이 필요하다.
CPI 계산 예
분기 비율 20%, 실패율 30%, 손실 3사이클이면 CPI는 1.18이다.
실패율을 10%로 낮추면 0.20 × 0.10 × 3 = 0.06이 되어 CPI는 1.06이다.
예측기 정확도가 성능에 직접 영향을 준다. 가정은 먼저 밝혀야 한다.
시험 포인트와 정리
정답은 1.06이다. 실패율을 낮추면 분기 손실에 따른 CPI 증가가 줄어든다.
세 해저드를 같은 원인으로 설명하는 것이 가장 흔한 실수다.
전방전달은 모든 데이터 해저드를 없애지 못하며, 분기 예측과 지연 분기는 다르다.
정리하면 해저드 처리의 목표는 CPI 증가를 줄이는 것이다.