8 月 13 日,在每兩年一度的全國計算機體系結(jié)構(gòu)學(xué)術(shù)年會(ACA2020)上,龍芯中科董事長、中科院計算技術(shù)研究所研究員胡偉武作了名為《指令系統(tǒng)的自主與兼容》的特邀報告。
在報告中,他透露了龍芯的新動向——研發(fā)既 “自主” 又“兼容”的 LoongArch 指令集。如果最終達成目標,這將是一個自帶 “完整” 生態(tài),且中國人能牢牢掌握的體系。
關(guān)于該事件的討論一度登上知乎熱榜,一位資深業(yè)內(nèi)人士告訴 DeepTech :“LoongArch 的計劃已經(jīng)提了很長時間,由于近期‘斷供’問題形勢嚴峻才特別凸顯。其實業(yè)內(nèi)一直想推出中國自有指令集系統(tǒng),但奈何各方利益交錯,長期達不成共識,目前或許是一個契機?!?/p>
自主研發(fā) VS 選邊站隊
美國驢象兩黨,在很多方面都意見相左,但在對待中國的態(tài)度上卻少有地達成一致??梢灶A(yù)見,未來,不管特朗普連任與否,都不能幻想美國人的對華政策有較大變化。
目前,“構(gòu)建獨立于Wintel 體系(Windows+Intel)和AA 體系(ARM+Android)的安全可控的信息技術(shù)體系和產(chǎn)業(yè)生態(tài)”已經(jīng)成為國家戰(zhàn)略。
要達成這一目的,“芯片”的問題是無法繞過的。而芯片難題又分為兩個小點:一是 CPU 的指令集架構(gòu),一是生產(chǎn)的工藝制程。本文不談工藝問題,只談前者。
指令集架構(gòu),又稱指令集或指令集體系,是計算機軟件運行的基礎(chǔ)設(shè)施。指令集的指令轉(zhuǎn)換成機器碼之后即直接與 CPU 發(fā)生交互,是比匯編語言更加底層的封裝。
圖 | 該指令含義為:將地址 2 的值與常量相加,然后寫入到地址 1
目前,仍然活躍在商業(yè)領(lǐng)域的指令集分成兩大類:以 ARM、RISC-V 及 MIPS 為代表的精簡指令集(RISC),以 X86 為代表的復(fù)雜指令集(CISC)。這里的精簡和復(fù)雜可以簡單理解為所包含指令數(shù)目的多少。
使用 X86 架構(gòu)的廠商是大名鼎鼎的 Intel 和 AMD,該架構(gòu)為 Intel 首創(chuàng),由于歷史原因形成了現(xiàn)在的兩強局面。值得注意的是,X86 架構(gòu)基本不再對外授權(quán)。
ARM 指令集的產(chǎn)品眾多,由于其在功耗方面的優(yōu)勢,幾乎所有的智能手機(蘋果、安卓)、平板、便攜智能設(shè)備,都要向 ARM 購買授權(quán),在商業(yè)上 ARM 是成功的。目前 ARM 隸屬于日本的軟銀,不過已有傳聞 NVIDIA 將收購 ARM,屆時 ARM 將歸屬美國。
RISC-V 比較特殊,屬于開源(僅ISA)指令集架構(gòu),也就是說 RISC-V 指令集可以自由地用于任何目的,允許任何人設(shè)計、制造和銷售 RISC-V 芯片和軟件,而不必向任何公司支付專利費用。
中國,是最追捧 RISC-V 的國家,沒有之一。
追捧到什么程度呢?RISC-V 官網(wǎng)顯示,其首席會員一共十名,其中中國公司、組織占了八席,他們分別是:阿里巴巴、晶心科技(臺灣?。?、華為、中國科學(xué)院計算技術(shù)研究所、中國科學(xué)院軟件研究所、RIOS(清華 - 伯克利深圳研究院)、中興微電子和賽昉科技(SiFive 中國)。
圖 | RISC-V 首席會員
雖然 RISC-V 屬于全球性非盈利組織,理論上不會出現(xiàn)被 “卡脖子” 的情況,但該組織的核心管理者基本是美國人,且目前碎片化嚴重,很多有用高效的指令無法加入到主分支之中。總之,中國想要在這個體系掌握主導(dǎo)權(quán),目前看來暫無可能。
最后,終于要說到龍芯使用的 MIPS。
它依舊屬于一家美國公司,龍芯是其最大客戶。該公司因戰(zhàn)略誤判,逐漸衰落,后幾經(jīng)輾轉(zhuǎn),被多次收購,開發(fā)人員也流失嚴重,目前已經(jīng)無力進行新產(chǎn)品的開發(fā)迭代。不夸張地說,如果沒有龍芯,MIPS 已死。但就是這樣一家公司,龍芯想要收購接盤,也一直沒能得到美國政府的批準。
綜上,X86 不授權(quán),ARM 嚴格授權(quán),中國此前一直把寶押在 RISC-V 和 MIPS 上。
胡偉武說道,自主和兼容這兩條路線已經(jīng)爭論了 15 年,兼容的好處是自帶生態(tài),但劣勢是處處受制于人,并且會嚴重阻礙以 “操作系統(tǒng)” 為代表的基礎(chǔ)軟件軟件發(fā)展。他認為,我們不可能基于國外的指令系統(tǒng)建立自主生態(tài)。
“龍芯曾經(jīng)選擇 MIPS 授權(quán),覺得比較開放,還可以自主加指令,所以走了好多年。本以為可以通過比較弱勢的 MIPS 或者基于開源的 RISC-V 來構(gòu)建自己的生態(tài),但最近發(fā)生的很多事情,讓我們認識到,即使對方再弱小,也會在商業(yè)上對我們造成很大的干擾?!?/p>
所以,擺在龍芯面前的恐怕只剩下建立自己的指令集這一條路了。
兼容并濟,海納百川
完全自主,說起來容易,做起來難;做出一款能用產(chǎn)品容易,但做出一款大家都用的產(chǎn)品難。有沒有可能既獨立自主,又能兼顧現(xiàn)在的主流生態(tài)呢?
胡偉武的答案是“有”。就是研發(fā)兼容各大指令集架構(gòu)的自主指令集架構(gòu)。
胡偉武表示,這條路是完全可行的。
首先,基礎(chǔ)軟件方面,BIOS(PMON/UEFI)、內(nèi)核(Linux/VxWorks)的遷移,工作量不大;匯編器及編譯器(GCC、LLVM、GOLANG)的工作量是可控的;整個操作系統(tǒng)重新遷移和編譯工作量也不大,直接把 MIPS 匯編語言編譯成自主指令系統(tǒng)即可。
其次,動態(tài)翻譯虛擬機方面,Java、JavaScript、.NET 三大虛擬機,龍芯均可獨自完成遷移,完成之后可以直接運行各自的應(yīng)用程序而無須修改。
最后,二進制翻譯方面,主要針對 X86、ARM 及 MIPS。QEUM 已經(jīng)可以實現(xiàn),關(guān)鍵在于提高其運行效率。
目前,龍芯已經(jīng)完成了自主指令集的規(guī)劃,包含基礎(chǔ)指令 337 條、虛擬機拓展指令 10 條、二進制翻譯擴展指令 176 條、128 位向量擴展 1024 條、256 位向量擴展 1018 條,合計 2565 條。值得注意的是,因增加二進制翻譯指令而導(dǎo)致的 CPU 面積和延遲開銷幾乎可以忽略不計。
胡偉武解釋道,二進制翻譯硬件支持主要涉及定點運算和訪存地址計算,統(tǒng)計數(shù)據(jù)表明,硬件的開銷面積大概增加了 1% 到 2%,而延遲方面的開銷幾乎沒有。
在報告中,胡偉武給這一系列的操作稱之為“體系結(jié)構(gòu)翻譯”,并作了生動類比。
圖 | 語言文化 & 計算機體系結(jié)構(gòu)
他說,我們現(xiàn)在所要達到的效果是語言級翻譯,實現(xiàn)難度根據(jù)架構(gòu)而有所不同。
舉個例子,將繁體中文翻譯成簡體中文非常簡單,將法文翻譯成英文也比較簡單,但要把英文翻譯成中文相對困難。
技術(shù)的發(fā)展給二進制翻譯帶來了新的機遇。第一,硬件資源得到了極大的豐富。晶體管、CPU 性能都出現(xiàn)了過剩的情況。第二,虛擬機技術(shù)快速發(fā)展。二進制翻譯本質(zhì)上是一種跨指令系統(tǒng)的虛擬機,支持虛擬機的很多基礎(chǔ)設(shè)施,在二進制翻譯體系可以復(fù)用。
也許有人會問,二進制翻譯固然可以兼容現(xiàn)有的指令集,但會不會存在法律問題呢?
胡偉武認為,目前國際上的確存在不同看法,但美國等發(fā)達國家法律普遍認為不構(gòu)成侵權(quán)。歷史上,IBM、HP、Intel、Appel、Transmeta、QualComm、NVIDIA 都采用過這個技術(shù)來協(xié)助推新架構(gòu),并且 Transmeta 曾打贏了與 Intel 官司。
在基本謀定了方案之后,龍芯已經(jīng)開始行動,并已經(jīng)取得了初步成果。
龍芯的二進制翻譯系統(tǒng)名為LAT(Loongson Architecture Translator)。胡偉武為這個系統(tǒng)定了一個 “十九八七” 的預(yù)定目標。
圖 | LAT“十九八七”規(guī)劃
胡偉武曬出了一張圖表,這張表的唯一變量只有指令體系架構(gòu),微結(jié)構(gòu)一模一樣。
可以看到,僅更換為 LoongArch 指令架構(gòu),處理器的定點性能就提升了 16.6%,浮點性能提升了 9.4%。
圖 | LoongArch VS MIPS(SPEC CPU2000 Train 運行時間 FPGA 20MHz)
在 Linux 進程級 MIPS 二進制翻譯方面,胡偉武拿出一份專門為本次報告臨時跑出的結(jié)果,他表示很多軟件庫還沒有完善,優(yōu)化工作也沒有完成。但從結(jié)果來看,一兩個月能達到這個效果,完成 100% 的預(yù)定目標應(yīng)該不成問題。
圖 | Linux 進程級 MIPS 二進制翻譯效果(SPEC CPU2000 Train 運行時間 FPGA 20MHz)
Linux 進程級 X86 二進制翻譯效果,同樣是未完善的數(shù)據(jù),可以看到定點性能達到原生的 44.4%,浮點性能達到原生的 58.5%。雖然,相較 QEMU 這個成績已經(jīng)非常不錯,但離預(yù)定目標的 80% 仍有很大差距。
圖 | Linux 進程級 X86 二進制翻譯效果(SPEC CPU2000 Ref 運行時間 龍芯 3A4000 1.8GHz)
在報告中,胡偉武匯報了目前 LoongArch 指令系統(tǒng)的工作進度。
他表示,目前已完成龍芯 GS132、GS264、GS464 三大系列 IP 核指令系統(tǒng)修改?;?LoongArch 的某龍芯 CPU 已于 2020Q2 交付流片,預(yù)計 2020Q4 樣片。
基礎(chǔ)軟件 OS 方面,已經(jīng)完成 BIOS、編譯器的內(nèi)核改造,可以在 FPGA 平臺上運行 SPEC CPU 等復(fù)雜應(yīng)用;正在開展完整操作系統(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)通。
以上工作爭取在 2020 年底前完成。
報告的末尾,他描繪了 LoongArch 的未來規(guī)劃。
1. 對 LoongArch 指令系統(tǒng)進行知識產(chǎn)權(quán)分析。已委托第三方機構(gòu)進行,預(yù)計 2020 年底完成國內(nèi)部分,2021 年完成國際部分。
2. 組建自主指令系統(tǒng)聯(lián)盟。龍芯將把 LoongArch 免費開放,并開放 Cortex-A53 以下性能處理器 IP 核,條件是聯(lián)盟內(nèi)企業(yè)彼此間不能發(fā)生指令系統(tǒng)訴訟,期望最終能夠形成對第三方的 CPU 防御聯(lián)盟。同時,還將嘗試在高校推廣百條指令左右的 LoongArch 小系統(tǒng)。
此外,龍芯也將持續(xù)改進二進制翻譯的硬件支持和軟件優(yōu)化,爭取在 2025 年消除指令系統(tǒng)間的壁壘,達到 “天下大同” 的境界。
最后,胡偉武總結(jié)道,二進制翻譯能解決兼容性問題,但要認清它在戰(zhàn)略上屬于“過渡方案”,它更多地是為新架構(gòu)鋪路,新架構(gòu)失敗了它會消亡,新架構(gòu)成功了它也會消亡。
知乎網(wǎng)友 maomaobear 表示了對翻譯后程序運行效率的擔(dān)心:“微軟的 X86 轉(zhuǎn) ARM,英特爾的 ARM 轉(zhuǎn) X86,效率都很低,就蘋果做的看起來高一點。”
龍芯內(nèi)部人士對此回應(yīng):“龍芯做指令集研發(fā)快 20 年了,能推出完全自主指令集架構(gòu),是積累出來的,不是拍腦袋,寫論文出來的?!?/p>
后來者的宿命
其實,我們不必為 “卡脖子” 感到悲憤。
在電子計算機領(lǐng)域,包括我國在內(nèi)的絕大多數(shù)國家都是“后來者”,縱觀其發(fā)展史,幾乎可以算是一部美國的國內(nèi)產(chǎn)業(yè)史。
第一臺真正意義的電子計算機是美國人于 1937 年發(fā)明的;“現(xiàn)代計算機之父”馮 · 諾依曼是美國人;集成電路是美國人做出來的;第一款微處理器是 Intel 推出的;互聯(lián)網(wǎng)是美國人建立的;第一臺桌面電腦、操作系統(tǒng)、鼠標、鍵盤、硬盤等也均由美國人首創(chuàng)……
在這個過程中,美國涌現(xiàn)出了一大批名垂青史的名字。無數(shù)的學(xué)者、商人、官員和工程師,讓美國成為了先行者。擁有了絕對優(yōu)勢的同時,也為后來者們設(shè)立了諸多障礙。
這些障礙,我們有的已經(jīng)跨了過去,比如鋰電池隔膜、比如通訊領(lǐng)域的 5G、比如北斗全球定位系統(tǒng);有的正在跨越,比如本文的 CPU 指令系統(tǒng)。
不過,我們不必急躁,也無須驚慌。我們不是落后于一朝一夕,也不可能一朝一夕便能趕上。
原文標題:丟掉幻想!龍芯中科將推出LoongArch自主指令集,深度兼容Windows、Linux、Android程序
文章出處:【微信公眾號:DeepTech深科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
龍芯
+關(guān)注
關(guān)注
3文章
345瀏覽量
31279
原文標題:丟掉幻想!龍芯中科將推出LoongArch自主指令集,深度兼容Windows、Linux、Android程序
文章出處:【微信號:deeptechchina,微信公眾號:deeptechchina】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論