指令集與組合語言

關於以前的MIPS等具備的分支延遲槽(branch delay slot,不論是否分支,緊接在分支指令之後的1個指令都會被執行的規定),下列何者正確?

  1. A是為了讓分支預測的準確率達到100%的機制,在現今的CPU中也不可或缺
  2. BRISC-V也採用,分支之後必定要放入nop
  3. C是把當時管線的情況帶進ISA,對之後CPU的設計造成了阻礙
查看答案與解析

正確答案:C. 是把當時管線的情況帶進ISA,對之後CPU的設計造成了阻礙

在5級的單純管線中,分支的結果得知時,下一個指令早已被取入,所以規定必定執行它,以免浪費,這就是分支延遲槽。然而在級數較深、進行分支預測與同時發出的後來的CPU中,優點消失,只剩下為了相容性而持續特別處理的負擔。RISC-V為了不把依賴內部構造的規定放進ISA,並未採用它。

  • A. 與分支預測是不同的東西,現今的CPU不需要。
  • B. RISC-V並未採用分支延遲槽。
  • C. 正確。是把微架構的情況固定在ISA中的例子。
練習這個領域 前往領域頁面

指令集與組合語言的其他題目

  1. 在64位元的RV64I中執行lw指令時,讀入的32位元值是如何放入64位元暫存器的?
  2. 下列何者是對ABI(應用程式二進位介面)的正確說明?
  3. 使用C語言函式指標的呼叫「(*fp)(x)」,在RISC-V中一般是以下列哪個指令進行?
  4. 關於採用相同指令集架構(ISA)的兩顆CPU,下列何者正確?
  5. 下列何者是RISC-V這類載入/儲存架構(load-store architecture)的特徵?