CPU와 아키텍처
파이프라인에서 앞선 명령어의 결과를 다음 명령어가 곧바로 사용할 때(데이터 해저드), 레지스터에 쓰기를 기다리지 않고 연산 결과를 곧바로 다음 명령어에 전달하는 기법은?
- A포워딩(바이패스)
- B가상 메모리
- C분기 예측
정답과 해설 보기
정답: A. 포워딩(바이패스)
포워딩(바이패스)은 연산기의 출력을 레지스터에 쓰이기를 기다리지 않고 후속 명령어의 입력으로 직접 보내는 기법입니다. 예를 들어 「r1 = r2 + r3」 바로 뒤에 「r4 = r1 × 2」가 있어도 수 클록의 정지(스톨) 없이 실행할 수 있습니다. 다만 메모리에서 로드한 결과를 바로 뒤에서 사용하는 경우에는 데이터가 아직 도착하지 않았으므로 1클록 정도의 정지가 남습니다(로드-사용 해저드).
- A. 정답입니다. 결과를 곧바로 다음 명령어에 보냅니다.
- B. 가상 메모리는 주소 공간을 관리하는 구조이며 해저드 대책이 아닙니다.
- C. 분기 예측은 분기로 인한 제어 해저드에 대한 대책입니다.