Learning
토픽 20 / 111·CPU (Central Processing Unit)

파이프라인 해저드 (Pipeline Hazards)

파이프라인 해저드 (Pipeline Hazards)

파이프라인에서 다음 명령어가 즉시 실행될 수 없는 상황으로, 스톨/성능 저하 유발

특징: 데이터/제어/구조적 3유형, 하드웨어·소프트웨어 해결

데이터 해저드(Data Hazard)

  • RAW(Read After Write): 선행 쓰기→후행 읽기 의존, 가장 빈번, 해결: 포워딩/스톨
  • WAR(Write After Read): 반의존성, 비순차 실행 시 문제, 해결: 레지스터 리네이밍
  • WAW(Write After Write): 출력 의존성, 해결: 리네이밍/ROB 순차 커밋
  • WAR/WAW는 이름 의존성 → 레지스터 리네이밍으로 완전 제거

제어 해저드(Control Hazard): 분기 결정 전 후속 명령어 인출로 발생, 분기 패널티(K-1사이클 손실)

  • 해결: 정적/동적 분기 예측, BTB, 지연 분기, 투기적 실행

구조적 해저드(Structural Hazard): 동일 HW 자원 동시 접근, 해결: 자원 복제(I/D캐시 분리), 버블

Load-Use 해저드: Load 직후 사용 시 포워딩으로도 1사이클 스톨 불가피, 컴파일러 명령어 스케줄링으로 회피

해결 기법 종합: 포워딩(데이터) / 분기 예측(제어) / 자원 복제(구조적) / 리네이밍(WAR·WAW) / 컴파일러 스케줄링

비교: 데이터해저드(의존성) vs 제어해저드(분기) vs 구조적해저드(자원)

연관: 파이프라인, 포워딩, 분기 예측, 비순차 실행, 슈퍼스칼라