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 來構建自己的生態,但最近發生的很多事情,讓我們認識到,即使對方再弱小,也會在商業上對我們造成很大的干擾。”
所以,擺在龍芯面前的恐怕只剩下建立自己的指令集這一條路了。
兼容并濟,海納百川
完全自主,說起來容易,做起來難;做出一款能用產品容易,但做出一款大家都用的產品難。有沒有可能既獨立自主,又能兼顧現在的主流生態呢?
胡偉武的答案是“有”。就是研發兼容各大指令集架構的自主指令集架構。
胡偉武表示,這條路是完全可行的。
首先,基礎軟件方面,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 年了,能推出完全自主指令集架構,是積累出來的,不是拍腦袋,寫論文出來的。”
后來者的宿命
其實,我們不必為 “卡脖子” 感到悲憤。
在電子計算機領域,包括我國在內的絕大多數國家都是“后來者”,縱觀其發展史,幾乎可以算是一部美國的國內產業史。
第一臺真正意義的電子計算機是美國人于 1937 年發明的;“現代計算機之父”馮 · 諾依曼是美國人;集成電路是美國人做出來的;第一款微處理器是 Intel 推出的;互聯網是美國人建立的;第一臺桌面電腦、操作系統、鼠標、鍵盤、硬盤等也均由美國人首創……
在這個過程中,美國涌現出了一大批名垂青史的名字。無數的學者、商人、官員和工程師,讓美國成為了先行者。擁有了絕對優勢的同時,也為后來者們設立了諸多障礙。
這些障礙,我們有的已經跨了過去,比如鋰電池隔膜、比如通訊領域的 5G、比如北斗全球定位系統;有的正在跨越,比如本文的 CPU 指令系統。
不過,我們不必急躁,也無須驚慌。我們不是落后于一朝一夕,也不可能一朝一夕便能趕上。
原文標題:丟掉幻想!龍芯中科將推出LoongArch自主指令集,深度兼容Windows、Linux、Android程序
文章出處:【微信公眾號:DeepTech深科技】歡迎添加關注!文章轉載請注明出處。
-
龍芯
+關注
關注
3文章
349瀏覽量
31323
原文標題:丟掉幻想!龍芯中科將推出LoongArch自主指令集,深度兼容Windows、Linux、Android程序
文章出處:【微信號:deeptechchina,微信公眾號:deeptechchina】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論