擴展性短板不再?RISC-V指令集架構規範的F#實現已在GitHub上開源

近日,有開發者在 RISC-V 基礎指令集架構與特權架構規範的基礎上開源了一份以F# 實現的 RISC-V ISA(指令集架構)規範,併發布在了 GitHub上,其主要內容包括“功能和當前狀態”、“代碼示例”以及實際“操作方式”等。

今年 7 月份,RISC-V 基金會在官網上發佈公告,宣佈批准 RISC-V 基礎指令集架構與特權架構規範。而本次開源的內容,則是以 RISC-V 基金會發布的 RISC-V ISA 規範爲基礎,利用 F#編寫而成。

RISC-V 基礎指令集架構與特權架構規範

RISC-V 基礎指令集架構與特權架構規範發佈於今年7月,這被認爲是RISC-V生態系統發展過程中的一個重要里程碑。

RISC-V 基礎指令集架構應用於軟件與硬件之間,是連接兩者的“橋樑”。而 RISC-V ISA 規範的發佈,則意味着,只要按照該規範編碼的軟件都將能夠在 RISC-V 處理器上持續使用,即使其處理器架構通過開發新擴展模塊也不受到影響。

基礎指令集架構獲得批准,開發者可以進一步放心,他們爲RISC-V編寫的軟件將可以一直運行在所有類似的 RISC-V 核心上。 ——RISC-V基金會董事會主席Krste Asanović

特權架構應用於軟件堆棧的不同組件之間,提供保護的同時,嘗試執行當前權限模式,不允許的操作將會引發異常。RISC-V特權架構涵蓋了非特權ISA之外的RISC-V系統的所有方面,包括特權指令、運行操作系統以及連接外部設備所需的附加功能。另外,每個特權級別都有一組核心特權ISA擴展,包括機器ISA、主管ISA和管理程序ISA等。

RISC-V特權架構是RISC-V硬件和軟件(如Linux和FreeBSD)之間的一種契約。對RISC-V來說,這些標準獲得通過是一個里程碑標誌。 ——RISC-V特權架構任務組主席Andrew Waterman

RISC-V ISA規範的 F# 實現

F#是由微軟發展的爲.NET語言提供運行環境的程序設計語言,是一種函數編程語言(FP,Functional Programming)。目前,F#已經接近成熟,支持高階函數、柯里化、惰性求值、Continuations、模式匹配、閉包、列表處理、元編程等。

此次開源的RISC-V ISA 規範編碼實現,使用“非常基礎”的 F# 編寫,目的是爲了讓不瞭解 F# 且不打算學習 F# 的開發者們也可以閱讀並使用該規範實現。

目前,該實現還在不斷的完善中,現在的功能與狀態如下:

  1. 支持以下功能
  • 基本指令集:RV32I
  1. 正在開發中的功能
  • 基本指令集:RV64I
  • 標準擴展 M(整數乘/除)
  • 標準擴展 A(原子內存操作)
  • 標準擴展 C(精簡的16位指令)
  • 標準擴展 F(單精度浮點數)
  • 標準擴展 D(雙精度浮點)
  • M級特權(Machine)
  • U級特權(User)
  • S級特權(Supervisor),虛擬內存方案SV32,SV39和SV48
  1. 應用程序可以作爲一個靈活的具有CLI(命令行界面)支持的 F#程序被執行,它會依次執行RISC-V ELF二進制文件。這是一種順序解釋:一次一個指令的順序存儲器模型。
  2. 正在開發中的 RISC-V測試:
  • 基本指令流程
  • rv32ui-p-*, rv64ui-p-*(基本指令集)
  • rv32um-p-*, rv64um-p-* (M 擴展)
  • rv32ua-p-*, rv64ua-p-*(A 擴展)
  • rv32uc-p-*, rv64uc-p-*(C 擴展)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章