徐志偉
(中國科學(xué)院計算技術(shù)研究所 北京 100190)
我國的 CPU 研發(fā)應(yīng)采用兼容指令集還是自主研發(fā)指令集是學(xué)術(shù)界和產(chǎn)業(yè)界長期爭論的一個話題,由于研制指令集及其軟件生態(tài)的難度和工作量受很多因素影響而難以精確量化,不同背景的人對它們的認知差異很大,結(jié)果往往是誰都說服不了對方.龍芯團隊的這篇論文分享了龍架構(gòu)指令集的設(shè)計和實踐經(jīng)驗,針對這個話題給出了有參考價值的觀點和數(shù)據(jù).
1.該文提出,可以通過技術(shù)手段達到既自主又兼容,解決自主研發(fā)指令集的最大障礙.傳統(tǒng)的軟件二進制翻譯技術(shù)已經(jīng)能夠?qū)崿F(xiàn)不同指令集平臺之間的軟件兼容運行,但存在性能損失過大的問題.龍架構(gòu)通過指令集擴展,實現(xiàn)了比開源QEMU翻譯器高幾倍到幾十倍的性能效率.對語義差異相對較小的MIPS指令集,翻譯運行性能和MIPS原生性能相當(dāng).該文作者認為,再經(jīng)過一兩年的軟硬件磨合迭代,能夠消除單一指令系統(tǒng)的壁壘, 使得不同指令集的系統(tǒng)及應(yīng)用軟件能夠融合到統(tǒng)一的龍架構(gòu)平臺上, 不加區(qū)別地運行.如果這個目標(biāo)能夠順利達成,那么指令集就成了可軟件定義的一個新的虛擬化層次,大量軟件將不必針對不同指令集進行重復(fù)開發(fā),在節(jié)約社會資源的同時帶來更多的技術(shù)創(chuàng)新空間.正如在云計算中,人們通過軟硬件協(xié)同實現(xiàn)了逼近物理機的虛擬機性能,帶來了新的計算范式和更高的運營效率.
2.該文給出了建設(shè)一個新生態(tài)的可行路徑和量化的工作量參考.龍芯3A5000的軟件生態(tài)構(gòu)建實踐表明, 在深入掌握“3+3+3”的主要編譯系統(tǒng)技術(shù)的基礎(chǔ)上, 充分利用開源軟件, 在較短的時間內(nèi)構(gòu)建一個新指令集的生態(tài)是可行的.該文介紹了龍架構(gòu)的4個建設(shè)階段以及移植一個完整Linux發(fā)行版的架構(gòu)相關(guān)支持代碼量等數(shù)據(jù),它們都是寶貴的一手經(jīng)驗,能夠為同行提供參考.
3.該文介紹了龍架構(gòu)指令集諸多具體設(shè)計選擇.數(shù)據(jù)表明,在相同的微架構(gòu)和編譯器版本下,龍架構(gòu)能用比MIPS少的指令數(shù)完成同樣的任務(wù),實現(xiàn)更高的性能.SPEC CPU2006基準(zhǔn)程序集龍架構(gòu)平均性能比MIPS高7%,部分應(yīng)用的性能甚至比MIPS版本高30%以上.拋棄一些過時的指令集特征,引入現(xiàn)代操作系統(tǒng)和應(yīng)用程序需要的一些支持,能夠有效地提升軟件的性能.
指令集的設(shè)計是一項系統(tǒng)性、基礎(chǔ)性的工作,龍芯團隊能獨立研制龍架構(gòu)并在短短3年的時間內(nèi)達到商用應(yīng)用的成熟程度,離不開過去20年在芯片設(shè)計和軟件生態(tài)建設(shè)方面的長期積累.恰當(dāng)?shù)貦?quán)衡指令集各項設(shè)計選擇需要深入理解指令集與軟硬件實現(xiàn)的相互作用,而建設(shè)軟件生態(tài)更需要掌握一大批包括“3+3+3”的主要編譯系統(tǒng)在內(nèi)的基礎(chǔ)軟件技術(shù).
一個優(yōu)秀指令集的形成往往需要經(jīng)歷長時間的研究和實踐迭代過程.龍架構(gòu)走出了很好的第一步,但也還有很大的成長空間.如何更好地適應(yīng)當(dāng)代工作負載、如何科學(xué)地權(quán)衡新指令和新特性的引入、如何進一步加速軟件生態(tài)的繁榮等等,都需要龍芯團隊和國內(nèi)外同仁的繼續(xù)努力.可喜的是,龍芯團隊選擇以開放的態(tài)度發(fā)展龍架構(gòu).據(jù)了解,開源社區(qū)的大量軟件都已經(jīng)添加了對龍架構(gòu)的支持,包括UEFI固件、Linux內(nèi)核、GCC/GLIBC/Binutils/GDB、LLVM、GoLang、.NET、QEMU 和 Chromimum/Firefox等關(guān)鍵基礎(chǔ)軟件.該文作者也宣布了龍架構(gòu)指令集本身也將對外開放.我相信,在這種開放協(xié)作的模式下,龍架構(gòu)將成為很好的學(xué)術(shù)研究和產(chǎn)業(yè)實踐的平臺.
評述專家:
徐志偉,《計算機研究與發(fā)展》主編,研究員.主要研究方向為高性能計算架構(gòu)和分布式系統(tǒng).
亮點論文:
胡偉武,汪文祥,吳瑞陽,王煥東,曾露,徐成華,高翔,張福新.龍芯指令系統(tǒng)架構(gòu)技術(shù)[J].計算機研究與發(fā)展,2023,60(1):2?16.DOI:10.7544/issn1000-1239.202220196