파이프라인 해저드
설명 영상 파이프라인 해저드 · 2:26
왜 배우는가: 파이프라인 해저드는 CPU 성능(IPC)을 떨어뜨리고 잘못된 연산 결과로 이어질 수 있어 컴퓨터구조 설계와 성능 분석의 기본 주제다. 구조적·데이터·제어 해저드 세 유형과 해결 기법은 여러 회차에서 반복해 출제되므로 유형별 원인과 제거 방법을 함께 정리해야 한다.
출제 이력: 제135회 4교시 6번, 제111회 3교시 4번, 제104회 3교시 3번
1. 한 줄 정의와 핵심 키워드
파이프라인 해저드는 다음 명령어가 다음 클록 사이클에 실행되지 못하게 하는 파이프라인의 문제로, 구조적·데이터·제어 해저드로 나뉜다.
핵심 키워드
- 파이프라인(Pipeline): 명령어 실행을 여러 단계로 나눠 겹쳐 수행하는 구조다.
- 구조적 해저드(Structural Hazard): 같은 하드웨어 자원을 동시에 쓰려고 할 때 생긴다.
- 데이터 해저드(Data Hazard): 앞 명령어의 결과를 뒤 명령어가 아직 쓸 수 없을 때 생긴다.
- 제어 해저드(Control Hazard): 분기로 다음 명령어 주소가 확정되지 않을 때 생긴다.
- 포워딩(Forwarding): 결과를 레지스터에 쓰기 전에 필요한 단계로 직접 전달하는 기법이다.
- 스톨(Stall)과 버블(Bubble): 파이프라인을 멈추고 빈 단계를 삽입하는 방법이다.
- 분기 예측(Branch Prediction): 분기 방향을 미리 추정해 파이프라인 손실을 줄이는 기법이다.
- CPI(Cycles Per Instruction): 명령어 한 개당 평균 사이클 수로, 해저드가 생기면 커진다.
2. 개념 풀이
쉬운 말로 하면 파이프라인 해저드는 "줄 세운 작업이 서로 기다리거나 부딪혀서 멈추는 상황"이다. 명령어를 세탁기처럼 단계별로 나누어 겹쳐 처리하면 한 명령어가 끝나기 전에 다음 명령어가 시작된다. 이때 같은 자원을 두고 다투거나, 앞 결과를 기다리거나, 어디로 갈지 모르는 상황이 생기면 한 사이클을 비워야 한다.
정식 정의는 다음과 같다. CPU 설계에서 해저드는 명령어 파이프라인에서 다음 명령어가 다음 클록 사이클에 실행될 수 없어 잘못된 계산 결과를 낳을 가능성이 있는 상태다.
파이프라인 스톨(Pipeline Stall)은 해저드를 피하려고 파이프라인에 빈 단계(버블)를 넣어 명령어 진행을 늦추는 동작이다. 스톨은 항상 지연을 늘린다. 이 지연이 해저드 처리 비용의 본질이다.
포워딩(Forwarding) 또는 바이패싱(Bypassing)은 연산 결과를 레지스터 기록을 기다리지 않고 ALU 출력에서 다음 명령어의 입력으로 바로 보내는 회로다. 데이터 해저드 중 RAW 해저드를 대부분 줄인다.
플러시(Flush)는 분기가 잘못 예측되었을 때 파이프라인에 들어온 잘못된 명령어를 무효화하는 동작이다. 해저드 처리 후에는 프로세서 상태에 영향이 없어야 한다.
3. 등장 배경과 필요성
초기 CPU는 명령어 하나를 인출, 해독, 실행, 메모리 접근, 쓰기까지 끝낸 뒤 다음 명령어를 시작했다. 이 방식은 각 단계 하드웨어가 놀고 있어 효율이 낮았다. 파이프라이닝은 단계마다 다른 명령어를 동시에 두어 처리량을 높이는 기법으로 등장했다.
그러나 명령어가 겹쳐 실행되면서 자원 충돌, 결과 의존, 분기 불확정 문제가 새로 생겼다. 이 문제가 파이프라인 해저드다. 해저드를 줄이지 않으면 파이프라인 단계 수를 늘려도 실제 성능은 오르지 않는다. 그래서 해저드의 유형과 원인을 구분하고 유형별로 다른 해결책을 쓰는 것이 설계의 출발점이다.
5단계 파이프라인의 이상적 CPI는 해저드가 없는 상태를 기준으로 한다
이상적인 경우 명령어 하나가 사이클마다 끝나므로 처리량이 높아진다. 해저드가 있으면 CPI가 1보다 커진다. 앞 절의 정의와 같은 기준이다.
이어지는 내용
- 4. 구성요소·원리·절차
- 5. 관련 법령·기준·표준
- 6. 유형과 비교
- 7. 장단점·한계와 개선 방향
- 8. 사례 또는 계산 예제
- 9. 최근 동향과 쟁점
- 10. 흔한 실수와 채점 포인트
- 11. 암기 정리
- 12. 답안 구성 예시
- 13. 예상 변형 문항
로그인하면 하루 5페이지까지 무료로 전체를 읽을 수 있습니다.
앱에서 이 단원 읽기