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