第16頁,表3.1的問題: 基地場mcpuid:RV32I RV32E RV64I RV128I2關於RISC的V-特權-SPEC-V1.7
- 什麼是 「RV32E」?
- 是否有「E」擴展名?
ECALL(第30頁)沒有提到pc的行爲。 雖然mepc(第28頁)和mbadaddr(第29頁)聲稱「mepc將指向該指令的開始處」。我認爲ECALL應該將mepc設置爲引發指令的結尾,以便ERET進入下一條指令。是對的嗎?
回答
由CliffordVienna回答,RV32E(「嵌入式」)是一個新的基本ISA,它使用16個寄存器,並使一些計數器寄存器可選。
我會不建議實施RV32E核心,因爲它可能是在覈心尺寸限制你使用一個大身體的RV *我的代碼能力的不必要的過度優化。但如果不需要性能,而且你真的需要核心變小一些,而且核心沒有連接到無論如何將主宰區域/電源的內存層次結構,並且你願意處理工具 - 頭痛......那麼也許RV32E核心是適當的。
ECALL被視爲異常,並會根據當前特權級別將PC重定向到適當的陷阱處理程序。 MEPC將被設置爲ecall指令的當前PC。
您可以通過分析Berkeley RV64G火箭炮處理器(https://github.com/ucb-bar/rocket/blob/master/src/main/scala/csr.scala)或通過查看Spike ISA模擬器(從此處開始:https://github.com/riscv/riscv-isa-sim/blob/master/riscv/insns/scall.h)來驗證此行爲。 小心:截至2015年6月27日,關於特權規範的代碼仍處於不斷變化之中。
如果我們看一下Spike如何處理eret(例如「sret」:https://github.com/riscv/riscv-isa-sim/blob/master/riscv/insns/sret.h),我們必須小心一點。 PC被設置爲「mepc」,但它是陷阱處理程序將PC推進4倍的工作。例如,我們可以看到完成,例如代理內核在這裏的一些處理函數(https://github.com/riscv/riscv-pk/blob/master/pk/handlers.c)中。
的RV32E(嵌入)規範的草案可以在這裏找到(通過isa-dev mailing list):
https://lists.riscv.org/lists/arc/isa-dev/2015-06/msg00022/rv32e.pdf
這RV32I與16而不是32個寄存器和沒有計數器指令。
- 1. 用於RISC-V的Zybo開發板
- 2. RISC-V Rocket Cache Coherence
- 3. GPL'd RISC-V實現?
- 4. 帶尖峯的RISC-V 32b仿真
- 5. RISC-V ECALL PRIV字段的含義
- 6. 使用特定指令集設置RISC-V工具鏈
- 7. RISC-V:立即編碼變量
- 8. RISC-V:實施SLLI,SRLI和SRAI
- 9. RISC-V ISA輸入和輸出操作
- 10. 立即解碼RISC-V(UJ-TYPE)
- 11. 什麼是RISC-V,它與以前的RISC體系結構相比如何?
- 12. RISC-V調用公約的ABI寄存器名稱
- 13. Rocket核心的時序不符合(RISC V)
- 14. RISC-V和Spike:一些非常基本的問題
- 15. 包括/不包括來自RISC-V火箭的L2火箭
- 16. 實際的RISC-V指令代碼在哪裏?
- 17. 與釘RISC-V 32位模擬失敗,出現錯誤
- 18. RISC-V彙編 - 堆棧佈局 - 函數調用
- 19. 如何構建Zscale核心? (RISC-V,火箭芯片)
- 20. Vuejs 2 v-on:click.prevent()
- 21. 關於Facebook權限
- 22. 關於Android權限的問題權限
- 23. 關於OpenJPA的HSQLdb權限
- 24. 關於MVC 2
- 25. 關於HTML標籤的「對於」物權
- 26. 什麼是RISC V基準測試套件中的mm基準測試
- 27. Linux內核如何幹擾Zedboard上RISC-V custom0指令的執行?
- 28. V $實例權限錯誤
- 29. 授權屬性v Authorizer.Authorize
- 30. 獲取加權評分關於票數在2個表