嘉楠科技(Canaan Inc.)(納斯達克股票代碼:CAN)開發的勘智K230芯片在Fedora 團隊的努力下完成適配RISC-V 新32位技術,節省內存的同時降低了成本,展示了嘉楠科技勘智K230芯片開發板強大的功能應用能力。同時,PLCT實驗室與達摩院-玄鐵團隊攜手,通過采用松弛擴展尋址技術,克服了傳統32位架構在現代操作系統中的性能局限,為新32位工具鏈的創新應用奠定了堅實基礎。
松弛擴展尋址
歷史上,64ILP32 ABI的實施面臨著的主要障礙是:32位指針與64位寄存器之間的不匹配問題,這不僅引起性能損失,還增加了編譯器的復雜性。雖然零擴展尋址(Zero-extend Addressing)在x86-x32和aarch64-ilp32 ABI中得到采用,但額外的零擴展指令降低了程序效率。與之相比,32ILP32和64LP64 ABI因指針長度與寄存器寬度一致,避免了這種性能開銷。
面對這些挑戰,我們首先考慮了符號擴展尋址(Sign-extend Addressing),它在一定程度上減緩了零擴展的性能問題,但增加了編譯器和內核實現的復雜度。于是,我們提出了松弛擴展尋址(Relax-extend Addressing)方案,它通過硬件的指針掩碼功能,允許在執行32位尋址操作時忽略64位寄存器的高32位,大幅簡化了編譯器工作,降低指令數量,并保持了安全性與可靠性。我們對以上三種尋址模式總結如下:
●抹零擴展尋址:傳統方法,需要編譯器生成額外的的指令來清零高32位,導致性能損失。
●符號擴展尋址:改良方案,通過操作系統頁表的雙重映射,合法化32位符號位擴展,緩解零擴展的性能開銷。
●松弛擴展尋址:創新方案,依賴處理器硬件掩碼來實現高效尋址,徹底消除了尋址時的性能損失。
因此,松弛擴展被我們選定為 RV64ILP32 ABI 的默認尋址模式,它要求 RISC-V 64位處理器支持尋址掩碼功能,對硬件設計提出了新的要求。我們在 QEMU 上實驗該功能,并證明了基于松弛擴展尋址模式的 RV64ILP32 工具鏈的有效性。
新32位內核
新32位工具鏈基于 RISC-V 64ilp32 ABI,融合了松弛擴展尋址技術,讓64位硬件流暢運行新32位軟件。我們在 qemu 上實現了硬件松弛擴展尋址模式,并用新工具鏈構建了業內首款新32位Linux內核。
與傳統32位對比,盡管新32位和傳統32位都是32位Linux操作系統軟件,但新32位得益于64位指令集,其性能顯著優于傳統32位:
如上圖所示,新32位內核的 iperf3-tcp 測試大幅領先,在軟件 ABI 相同的情況下,使用 64 位指令架構能極大提升操作系統的性能。本次qemu 測試僅供參考,請聯系硬件供應商獲得真實的性能差距報告,本測試用例已在工具鏈發布包內,請大家直接下載自行體驗,以下動畫是測試的全過程:
與傳統64位對比,Fedora團隊完成了RISC-V新32位在嘉楠科技勘智K230芯片硬件平臺的適配,新32位避免了39%的內存浪費,其成本優勢使 Fedora RISC-V 能在嵌入式領域有更廣泛的應用,具體請參考:
新32位工具鏈
讓32位軟件運行在64位硬件上不僅更快而且更省,這正是我們新32位編譯器的優勢所在,不禁讓人想起中國古代田忌賽馬的故事,與傳統32位比性能,與傳統64位比成本。換言之,新32位就是要取代傳統32位,與64位形成互補。在進一步的測試中,我們觀察到了傳統32位的明顯不足:
如上圖所示,在處理長數據類型時,傳統32位的編譯器生成了超過10條額外指令來操作保存的變量。相反,當采用新32位工具鏈時,編譯器會直接利用64位指令來處理這些數據,大幅度減少了所需指令的數量。
本次發布的新32位工具鏈通過了33萬個測試用例,其中包含 192133 個 g++用例, 與 143498 個 gcc 用例,全面覆蓋編譯器的各項功能,測試結果與 GCC13 release 保持一致,達到產品級質量要求。相比傳統32位,它的優勢如下:
●更強大的性能:新32位編譯器在處理長數據類型時更加高效,因為它無需進行額外的寄存器拼接或零擴展操作。這可以顯著減少指令數量,提高程序的執行效率,特別是在涉及大量長數據類型操作的情況下。
●更好的兼容性:新32位編譯器可以與傳統64位編譯器兼容,因為它們基于相同的硬件指令集。這意味著開發者可以更輕松地將現有的64位匯編代碼遷移到新32位平臺上,而無需做出太多修改。
●更多的擴展性:隨著技術的發展和需求的增長,對更大的內存空間和更高性能的需求也在不斷增加。新32位的硬件平臺可以為未來的擴展性提供了更好的支持,因為它能無縫切換到傳統64位以滿足更高要求的應用程序。
●產品級的質量:新32位工具鏈經過大量測試驗證,保證使用的正確性與穩定性,同時在RUYISDK開源倉庫中進行維護更新,及時解決用戶遇到的各種問題。
結束語
松弛擴展尋址技術在新32位工具鏈中扮演著關鍵角色,為嵌入式系統的開發和部署提供了全新的解決方案。作為業內首款基于松弛擴展尋址技術的新32位產品級開源工具鏈和Linux內核,標志著嵌入式系統開發領域的一次重要創新。我們熱切期待開發者們積極參與到新32位的開發和完善中,共同提出寶貴的建議和意見,推動新32位不斷發展。我們致力于建立一個健康和活躍的開源社區,將持續投入資源和精力,確保新32位的穩定性和可靠性,并不斷改進和完善其功能和性能。在此,我們也呼吁更多的硬件廠商加入我們的陣營,共同推動新32位嵌入式系統的發展和創新,為行業帶來更多的可能性和機遇。
關于嘉楠科技勘智K230芯片
嘉楠科技勘智K230芯片是全球首款支持 RISC-V Vector1.0標準的商用SoC,內置雙核玄鐵C908 CPU,主頻高達1.6GHz。作為嘉楠科技勘智Kendryte系列芯片中的最新一代SoC產品,勘智K230芯片內置多個高清視頻圖像輸入處理和智能硬件處理單元,兼顧高性能、低功耗和高安全性特點,可廣泛應用于各類智能產品,如邊緣側大模型多模態接入終端、3D結構光深度感知模組、交互型機器人、開源硬件、智能制造、智能家居和智能教育硬件等眾多領域。
審核編輯:劉清
-
機器人
+關注
關注
211文章
28380瀏覽量
206916 -
寄存器
+關注
關注
31文章
5336瀏覽量
120230 -
SoC芯片
+關注
關注
1文章
610瀏覽量
34905 -
RISC-V
+關注
關注
45文章
2270瀏覽量
46129 -
嘉楠科技
+關注
關注
1文章
27瀏覽量
4741
原文標題:嘉楠科技勘智K230芯片獲玄鐵團隊與PLCT實驗室新32位產品級工作鏈及Linux內核適配
文章出處:【微信號:CanaanTech,微信公眾號:嘉楠科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論