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