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