指令集與組合語言
關於以前的MIPS等具備的分支延遲槽(branch delay slot,不論是否分支,緊接在分支指令之後的1個指令都會被執行的規定),下列何者正確?
- A是為了讓分支預測的準確率達到100%的機制,在現今的CPU中也不可或缺
- BRISC-V也採用,分支之後必定要放入nop
- C是把當時管線的情況帶進ISA,對之後CPU的設計造成了阻礙
查看答案與解析
正確答案:C. 是把當時管線的情況帶進ISA,對之後CPU的設計造成了阻礙
在5級的單純管線中,分支的結果得知時,下一個指令早已被取入,所以規定必定執行它,以免浪費,這就是分支延遲槽。然而在級數較深、進行分支預測與同時發出的後來的CPU中,優點消失,只剩下為了相容性而持續特別處理的負擔。RISC-V為了不把依賴內部構造的規定放進ISA,並未採用它。
- A. 與分支預測是不同的東西,現今的CPU不需要。
- B. RISC-V並未採用分支延遲槽。
- C. 正確。是把微架構的情況固定在ISA中的例子。