CPU와 아키텍처

파이프라인에서 앞선 명령어의 결과를 다음 명령어가 곧바로 사용할 때(데이터 해저드), 레지스터에 쓰기를 기다리지 않고 연산 결과를 곧바로 다음 명령어에 전달하는 기법은?

  1. A포워딩(바이패스)
  2. B가상 메모리
  3. C분기 예측
정답과 해설 보기

정답: A. 포워딩(바이패스)

포워딩(바이패스)은 연산기의 출력을 레지스터에 쓰이기를 기다리지 않고 후속 명령어의 입력으로 직접 보내는 기법입니다. 예를 들어 「r1 = r2 + r3」 바로 뒤에 「r4 = r1 × 2」가 있어도 수 클록의 정지(스톨) 없이 실행할 수 있습니다. 다만 메모리에서 로드한 결과를 바로 뒤에서 사용하는 경우에는 데이터가 아직 도착하지 않았으므로 1클록 정도의 정지가 남습니다(로드-사용 해저드).

  • A. 정답입니다. 결과를 곧바로 다음 명령어에 보냅니다.
  • B. 가상 메모리는 주소 공간을 관리하는 구조이며 해저드 대책이 아닙니다.
  • C. 분기 예측은 분기로 인한 제어 해저드에 대한 대책입니다.
이 분야 연습하기 분야로 돌아가기

CPU와 아키텍처의 다른 문제

  1. 리틀 엔디언의 설명으로 올바른 것은?
  2. 하나의 CPU 코어에서 여러 스레드의 명령어를 동시에 처리하여 코어 내 연산기 등을 효율적으로 사용하는 기술은?
  3. 마이컴 등에서 주변기기의 레지스터를 메모리와 같은 주소 공간에 할당하고 일반적인 메모리 읽기/쓰기 명령어로 조작하는 방식은?
  4. 마이컴에 탑재되는 워치독 타이머의 역할로 올바른 것은?
  5. 프로그램에서 서브루틴(함수)을 호출할 때 복귀 주소 등을 일시적으로 저장하기 위해 일반적으로 사용되는 영역은?

이 분야의 비교