7月份,RISC-V基金會宣布批準RISC-V基礎指令集架構與特權架構規范,為RISC-V的可擴展性進一步奠定了基礎。而近日,有開發者在此基礎上開源了一份以F#實現的RISC-V正式ISA(指令集架構)規范(實現)。
RISC-V基礎指令集架構是應用軟件與硬件之間的接口,編碼為此規范的軟件將繼續在RISC-V處理器上永久使用,即使架構通過開發新擴展而發展也不受影響。
官方表示RISC-V采用簡單的固定基礎ISA和模塊化固定標準擴展設計,有助于防止碎片化,同時支持定制,RISC-V生態已經在此前的各種實現上展示了很大程度的互操作性,而現在批準了基礎架構規范,開發人員可以進一步放心,他們為RISC-V編寫的軟件將可以一直運行在所有類似的RISC-V核心上。
特權架構則用于在軟件堆棧的不同組件之間提供保護,并且嘗試執行當前權限模式不允許的操作將導致引發異常。RISC-V特權架構涵蓋了非特權ISA之外的RISC-V系統的所有方面,包括特權指令以及運行操作系統和連接外部設備所需的其它功能。每個權限級別都有一組核心的特權ISA擴展,帶有可選的擴展和變體,包括機器ISA、主管ISA和管理程序ISA。
此次開源的是RISC-V指令集架構的正式規范編碼實現(可執行),以純F#編寫,根據介紹,項目使用極端基礎的F#實現,這樣可以使不了解F#且不打算學習F#的廣大讀者都可以閱讀并使用該規范實現。
該實現還在演進中,目前的特性與狀態如下:
支持以下特性
基礎指令集:RV32I
開發中的特性
基礎指令集:RV64I
標準擴展M(整數乘/除)
標準擴展A(原子內存操作)
標準擴展C(精簡的16位指令)
標準擴展F(單精度浮點數)
標準擴展D(雙精度浮點數)
特權級M(Machine)
特權級U(User)
特權級S(Supervisor)
•虛擬內存方案SV32、SV39與SV48
可以將應用作為具有CLI(命令行界面)支持的F#程序靈活地執行,該程序又執行RISC-V ELF二進制文件。這是一種順序解釋:一次一指令的順序存儲器模型。
正在開發中的RISC-V測試:
基本指令流
rv32ui-p-*, rv64ui-p-*(基本指令集)
rv32um-p-*, rv64um-p-*(M擴展)
rv32ua-p-*, rv64ua-p-*(A擴展)
rv32uc-p-*, rv64uc-p-*(C擴展)