是否可以擴展RocketChip中可用的寄存器集?如果是這樣,我該怎麼辦? 我正在嘗試添加一條新指令,可以將數據從現有的RISCV寄存器移動到一組擴展寄存器。擴展RocketChip寄存器
0
A
回答
1
可能嗎?火箭芯片和相應的RISC-V工具鏈是免費和開放源代碼的,所以是的,你當然可以修改它以適應你的內容(當然也沒有什麼技術可以阻止你這麼做)。
但是,這將是一個涉及很多東西的巨大項目,因此您必須分段攻擊每個部分。關於ISA,你必須從以下開始:
1)學習如何向GNU彙編程序「gas」添加指令。
由於您試圖添加一組全新的寄存器(而不是擴展現有的整數集或浮點集),因此這將比平常更加困難。我可能會先看看向量寄存器是如何處理的。
2)一旦你可以生成你想要的彙編代碼,你需要修改尖峯ISA模擬器來執行和測試你的程序。這很簡單 - 但是你必須盯着代碼庫一段時間,並學習如何向它添加新的指令(參見riscv.org關於如何添加自定義指令和加速器到秒殺)。 3)一旦你可以生成代碼並在ISA模擬器上進行測試,那麼你就可以繼續攻擊Rocket-chip本身。火箭核心是一個相對直接的5階段,有序的管道,所以你可以自己創造如何添加一個新的寄存器組。查看浮點單元代碼和浮點寄存器文件以獲取靈感。
但我是一個gcc的傢伙,也許你的冒險會更容易做到llvm?
相關問題
- 1. 編程的Eclipse寄存器擴展點
- 2. Windbg .IF與擴展寄存器失敗
- 3. GCC錯誤:擴展寄存器沒有高一半
- 4. 試圖擴展寄存器risc ISA(尖峯),但得到seg-fault
- 5. 如何做符號的反義擴展從一個16位寄存器到一個8位寄存器?
- 6. XOR寄存器,寄存器(彙編)
- 7. 解釋GDB寄存器(SSE寄存器)
- 8. 此TPM仿真器是否遵循TPM規範來擴展PCR寄存器?
- 9. 寄存器JS
- 10. 與寄存器
- 11. 的寄存器
- 12. 寄存器
- 13. 通過由gcc的擴展asm調用的systemcall修改的寄存器
- 14. 擴展擴展管理器
- 15. GDB寄存器與處理器寄存器不同嗎?
- 16. XMM寄存器值
- 17. 寄存器讀取
- 18. 寄存器工作
- 19. MPLAB Trace寄存器
- 20. 確定寄存器
- 21. Pthread段寄存器
- 22. 寄存器功能
- 23. ERLANG - wxGrid寄存器
- 24. 通用寄存器
- 25. MIPS $ gp寄存器
- 26. Directx 11寄存器
- 27. Modbus TCP寄存器
- 28. 寄存器值8086
- 29. MIPS寄存器保存
- 30. XMM寄存器存儲
Hello Chris,謝謝你的回答。我對使用火箭核心相當陌生。另一個疑問是,如何添加一組與現有的整數集不同的新的寄存器,如您所述。 – umaurmi