ISA와 어셈블리

예전 MIPS 등에 있었던 분기 지연 슬롯(분기 명령어 직후의 1개 명령어는 분기 여부와 관계없이 실행되는 규칙)에 대해 올바른 것은?

  1. A분기 예측 정확도를 100%로 만들기 위한 구조로 지금의 CPU에도 필수적이다
  2. BRISC-V도 채택하고 있으며 분기 뒤에는 반드시 nop을 넣어야 한다
  3. C당시 파이프라인의 사정을 ISA에 끌어들인 것으로, 이후 CPU 설계에서는 걸림돌이 되었다
정답과 해설 보기

정답: C. 당시 파이프라인의 사정을 ISA에 끌어들인 것으로, 이후 CPU 설계에서는 걸림돌이 되었다

5단의 단순한 파이프라인에서는 분기 결과를 알 즈음에는 다음 명령어가 이미 가져와져 있으므로, 그것을 반드시 실행하도록 정하여 낭비를 없앤 것이 분기 지연 슬롯입니다. 그러나 단수가 깊고 분기 예측이나 동시 발행을 하는 이후의 CPU에서는 이점이 사라지고, 호환성을 위해 특별 취급을 계속해야 하는 부담만 남았습니다. RISC-V는 내부 구조에 의존하는 규칙을 ISA에 넣지 않도록 이를 채택하지 않았습니다.

이 분야 연습하기 분야로 돌아가기

ISA와 어셈블리의 다른 문제

  1. 64비트 RV64I에서 lw 명령어를 실행하면 읽어 들인 32비트 값은 64비트 레지스터에 어떻게 들어가는가?
  2. ABI(애플리케이션 바이너리 인터페이스)에 대한 설명으로 올바른 것은?
  3. C 언어의 함수 포인터를 사용한 호출 '(*fp)(x)'는 RISC-V에서 일반적으로 어떤 명령어로 이루어지는가?
  4. 동일한 명령어 집합 아키텍처(ISA)를 채택한 두 CPU에 대해 올바른 것은?
  5. RISC-V와 같은 로드-스토어 아키텍처의 특징으로 올바른 것은?