3A5000基于龍芯自主定義的LoongArch,自3A5000之后,龍芯就與MIPS徹底分道揚鑣,沒有任何關系了。這里著重介紹一下LoongArch。
過去這些年,國內(nèi)CPU公司引進過X86、ARM、Power、SPARC等指令集,但始終沒能建立起自己的Wintel,原因就在于始終保持著一種跟生態(tài)的心態(tài),而且在軟件上的投入嚴重不足。如今,國際大環(huán)境的變化使購買國外指令集授權充滿了不確定因素,在這種情況下,開發(fā)自主指令集是規(guī)避風險的良策。
當然,自主定義指令集存在一個問題,那就是軟件生態(tài)壓力巨大,而龍芯的LoongArch則采用二進制翻譯的方式實現(xiàn)兼容。LoongArch的指令系統(tǒng)在設計時,以先進性、擴展性、兼容性為目標,融合了X86、ARM、MIPS、RISC-V指令系統(tǒng)的主要功能,定義專門產(chǎn)生EFLAG結果的運算類指令加速X86、ARM架構下獨有的EFLAG值模擬,設計浮點寄存器的棧訪問模式加速X87浮點協(xié)處理器指令的模擬,實現(xiàn)RISC-V中豐富的同步指令。
LoongArch 是全新的指令集,包含基礎指令 337 條、虛擬機擴展 10 條、二進制翻譯擴展 176 條、128 位向量擴展 1024 條、256 位向量擴展 1018 條,共計 2565 條原生指令。
LoongArch 的"指令格式"是 MIPS 的超集,仍為RISC且兼容MIPS指令格式,但二進制不同。相對于MIPS,摒棄了部分不適合現(xiàn)代CPU的指令,又做了大量改進和擴展。重新設計的指令格式可以包含更多的指令槽,有利于以后的長遠發(fā)展。
MIPS只有3種指令格式,LoongArch重新設計了指令格式 ,使可用的格式多達10種 ,其包含3種無立即數(shù)格式和7種有立即數(shù)格式。例如單條指令支持的立即數(shù)從MIPS的最大16位擴展到最大24位,分支跳轉(zhuǎn)偏移也從64K擴展到1M字節(jié),以及尋址空間從固定分段改變?yōu)閱我黄矫娴龋加行p少了編譯結果的目標指令條數(shù)和訪存次數(shù),提高了效能。
LoongArch 仍為RISC指令集,32位定長指令、32個通用寄存器、32個浮點/向量寄存器。取消轉(zhuǎn)移指令延遲槽,直接跳轉(zhuǎn)指令的目標地址相對PC計算,增加相對轉(zhuǎn)移偏移量。新增將PC作為源操作數(shù)的運算指令。
龍芯還提供基于 LoongArch 的 Linux 操作系統(tǒng),在此操作系統(tǒng)中除了運行原生的 LoongArch 程序,還能通過翻譯的方式兼容 MIPS、x86、ARM、RISC-V 這幾種指令集的 Linux 程序。
使用LoongArch翻譯任何指令時大致流程都相同,只是隨著指令系統(tǒng)的差異而在效率上也會有所差異。其中MIPS盡管二進制編碼與LoongArch不同,但大部分LoongArch基礎指令仍與MIPS相似,因此翻譯開銷極小。對ARM和RISC-V的翻譯效率也比x86更高。龍芯還會提供以LoongArch為目標架構的編譯器,已知編譯器已經(jīng)實現(xiàn)把 MIPS 匯編代碼編譯為 LoongArch 二進制,內(nèi)嵌MIPS匯編的C/C++源代碼甚至不用修改就能編譯。
另外,官方PPT里還有幾個亮點:
一是已完成龍芯 GS132、GS264、GS464 三大系列 IP 核指令系統(tǒng)修改。
二是基礎軟件 OS 方面,已經(jīng)完成 BIOS、編譯器的內(nèi)核改造,可以在 FPGA 平臺上運行 SPEC CPU 等復雜應用;正在開展完整操作系統(tǒng)編譯工作、開展 Java、JavaScript、.NET 虛擬機遷移工作。
三是二進制翻譯系統(tǒng) LAT 已基本完成開發(fā),開始調(diào)試優(yōu)化。MIPS 和 X86 用戶態(tài)二進制翻譯持續(xù)改進中;X86 系統(tǒng)二進制翻譯已經(jīng)基本跑通,最難的地址翻譯已經(jīng)調(diào)通。
四是權威第三方機構對 LoongArch指令系統(tǒng)進行知識產(chǎn)權分析,2020年底完成國內(nèi)部分,2021年完成國際部分。
五是龍芯希望組建自主指令系統(tǒng)聯(lián)盟。龍芯將把 LoongArch 免費開放,并開放相當于Cortex-A53 以下性能處理器 IP 核,條件是聯(lián)盟內(nèi)企業(yè)彼此間不能發(fā)生指令系統(tǒng)訴訟,期望最終能夠形成對第三方的 CPU 防御聯(lián)盟。同時,還將嘗試在高校推廣百條指令左右的 Loongarch 小系統(tǒng)。
很顯然,龍芯是希望短期兼容MIPS遺留生態(tài)過度,建設自己的軟件生態(tài),建立中國版的Wintel。龍芯的目標宏偉,實現(xiàn)難度很大,但如果做成了,對產(chǎn)業(yè)安全和國家安全的積極作用是異常巨大。
相關文章
「 支持烏有之鄉(xiāng)!」
您的打賞將用于網(wǎng)站日常運行與維護。
幫助我們辦好網(wǎng)站,宣傳紅色文化!
歡迎掃描下方二維碼,訂閱烏有之鄉(xiāng)網(wǎng)刊微信公眾號
