RISC-V 指令集架構規范的 F# 實現開源

7 月份,RISC-V 基金會宣布批准 RISC-V 基礎指令集架構特權架構規范,為 RISC-V 的可擴展性進一步奠定了基礎。而近日,有開發者在此基礎上開源了一份以 F# 實現的 RISC-V 正式 ISA(指令集架構)規范(實現)。

RISC-V 指令集架構規范的 F# 實現開源

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

  • 開發中的特性

    • 虛擬記憶體方案 SV32、SV39 與 SV48

    • 基礎指令集:RV64I

    • 標準擴展 M(整數乘/除)

    • 標準擴展 A(原子記憶體操作)

    • 標準擴展 C(精簡的 16 位指令)

    • 標準擴展 F(單精度浮點數)

    • 標準擴展 D(雙精度浮點數)

    • 特權級 M(Machine)

    • 特權級 U(User)

    • 特權級 S(Supervisor)

  • 可以將應用作為具有 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 擴展)

詳情查看項目:

https://github.com/mrLSD/riscv-fs

來源:cnBeta