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