全球首發,開放麒麟 openKylin 社區完成對 RISC-V 通用架構 RV64G 支持
12 月 27 日消息,開放麒麟 openKylin 社區宣布聯合蘇州睿芯公司,openKylin 平臺正式部署上線對 RV64G 架構支持,后續 RV64G 非壓縮指令集愛好者可以通過社區平臺開發編譯并部署自己的代碼。

openKylin 表示,RISC-V 是一個自由的指令集,硬件廠商可以基于國際基金會認可的標準,自主擴展,目前市場上很多廠商是基于 RV64GC 來生產產品,但是也有廠商基于 RV64G 來生產產品,為配合國內廠商的市場需求,openKylin 社區率先推出對 RV64G 架構支持。
相比較于目前在嵌入式小型設備上應用更廣泛的 RV64GC(即大家比較熟悉的 riscv64), RV64G 更加聚焦于通用計算場景功能,服務器或者桌面系統。其中:
- “RV”代表 RISC-V;
- “64”代表所支持的指令是 64 位的(實際上,交叉編譯器在生成代碼時可能會采用 32 位指令減小生成的目標代碼長度),地址長度和寄存器長度都為 64 位;
- “G”代表通用(General)計算平臺。實際上,“G”等效于“IMAFD”,其中“I”代表整數(Integer)計算指令、整數 load、整數 store 以及控制流(如分支跳轉)指令,這些指令在任何 RISC-V 的實現中都是必須的;“M”代表乘法(Multiply),即平臺支持乘法和除法運算;“A”代表原子(Atomic)擴展,支持對寄存器進行的原子讀、修改和原子寫操作,這些操作在多核設計中非常有用;“F”代表單精度浮點(Float)運算支持,“D”代表雙精度浮點(Double)運算支持。
RV64G 和 RV64GC 之間的主要區別在于是否包含壓縮指令集(C 指令集)。RV64GC 在 RV64G 的基礎上增加了 C 指令集,這些指令用于縮小指令長度,降低代碼占用空間,RV64G 則不包含這些壓縮指令,因此 RV64G 的應用程序可以在 RV64GC 的硬件上運行,反之則不行。
比較而言,RV64GC 比 RV64G 具有更高的代碼密度,程序具有更小的 footprint,可以更有效地利用內存空間,這些特點讓 RV64GC 指令在嵌入式應用中更有優勢;另一方面,RV64G 的硬件實現可能比 RV64GC 更簡單,可采用簡化指令譯碼邏輯,更容易預測指令預取模式,減少內存訪問次數、提高指令執行速度,降低功耗,設計人員可以更好地對高性能計算進行優化。
RV64G 架構支持優勢
1、支持 RV64G 架構的代碼同源編譯,即代碼一次提交。可在 OKBS 平臺同源編譯出 AMD64、I386、ARM64、RV64GC、RV64G 五個架構的二進制包,無需再單獨維護一套 RV64G 軟件源及代碼倉庫,提升 RV64G 架構代碼開發維護效率。

2、支持 RV64G 架構軟件倉庫的同源發布,有效提升 RV64G 架構軟件倉庫的管理和維護升級效率。


3、鏡像制作與版本發布統一規范化。在鏡像制作與版本發布管理上可與其他架構以同流程處理,統一 RV64G 架構版本構建規范。

4、解決與 RV64GC 架構名稱沖突的問題,至此可以兼容 RISC-V 規范的兩種指令集架構的編譯工作。
5、編譯機可同時支持 RV64GC 和 RV64G 兩種架構,有效提升編譯機資源利用率。


openKylin 官方表示,后續蘇州睿芯公司將繼續攜手 openKylin 社區,成立 RV64G SIG 組,加大資源投入,解決軟件包編譯過程中遇到的問題,并完成該架構鏡像制作、硬件適配、軟件源管理和生態需求軟件自主構建等,進一步集成基于 RV64G 架構的桌面與服務器整機系統。
IT之家注:openKylin(開放麒麟)是麒麟軟件與國內主流操作系統廠商、研究機構、社會組織共創的桌面操作系統根社區。
openKylin 社區理事成員單位包括麒麟軟件、普華基礎軟件、中科方德、麒麟信安、凝思軟件、一銘軟件、中興新支點、元心科技、中國電科 32 所、技德系統、北京麟卓、先進操作系統創新中心、飛騰、兆芯、龍芯中科、景美、京東科技、玄鐵、申泰信息、海光等。