스물두줄

컴퓨터시스템응용기술사 · 컴퓨터 구조 및 운영체제

파이프라인 해저드

파이프라인 해저드는 다음 명령어가 다음 클록 사이클에 실행되지 못하는 문제다. 명령어를 단계별로 겹쳐 처리하면 자원 충돌과 값 의존이 생긴다. 해저드는 구조적, 데이터, 제어 세 유형으로 나뉜다. 다섯 단계 파이프라인은 명령어를 IF부터 WB까지 나눠 처리한다. 각…

주요 장면

  1. 0:02 해저드란
  2. 0:21 다섯 단계 파이프라인
  3. 0:41 세 가지 해저드
  4. 1:09 데이터 해저드와 전방전달
  5. 1:32 CPI 계산 예
  6. 2:16 시험 포인트와 정리

대본

해저드란

파이프라인 해저드는 다음 명령어가 다음 클록 사이클에 실행되지 못하는 문제다.

명령어를 단계별로 겹쳐 처리하면 자원 충돌과 값 의존이 생긴다.

해저드는 구조적, 데이터, 제어 세 유형으로 나뉜다.

다섯 단계 파이프라인

다섯 단계 파이프라인은 명령어를 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 증가를 줄이는 것이다.

같은 장의 영상