標題: 龍芯自主指令系統發布,徹底拋棄MIPS [打印本頁]


日前,龍芯發布自主指令系統(LoongArch),在國內CPU公司爭相引進X86、ARM、Power、SPARC、RISC-V等指令集的情形下,龍芯推出自主指令系統架構顯得異常特立獨行。

過去這些年,國內CPU公司引進英特爾、AMD、IBM、ARM、VIA、高通等公司的CPU,但始終沒能建立起自己的Wintel,原因就在於始終保持著一種跟隨心態,缺乏獨立自主的決心和毅力。隨著國際大環境風雲變幻,特別是經過特朗普和拜登的教育,構建自主可控的信息技術體系和產業生態已成為共識,龍芯在此時發布自主指令系統架構可謂是恰逢其時。

龍芯自主指令系統是全新指令集

CPU指令系統是計算機的軟硬件界面,是CPU所執行的軟件指令的二進制編碼格式規範。

目前,國際上曾經具有一定影響力的指令集有X86、MIPS、ARM、Power、Alpha、SPARC、RISC-V等,這些指令集都是舶來品,真正由國內自主研發的只有LoongArch和SW64。SW64是申威CPU的指令集,由國內單位自主研發,神威太湖之光超算的芯片SW26010就是基於SW64設計的。過去,龍芯基於MIPS指令集添加指令發展出LoongISA,本次的龍芯自主指令系統則與MIPS完全沒有關系,是完全自主研發的全新指令集。

MIPS是全球第一種商用的RISC指令集,由於“歷史悠久”,指令系統中有部分不適應當前軟硬件設計技術發展趨勢的陳舊內容,龍芯摒棄了傳統指令系統中令人詬病的部分,吸納了近年來指令系統設計領域諸多先進的技術發展成果。例如單條指令支持的立即數從MIPS的最大16位擴展到最大24位,分支跳轉偏移也從64K擴展到1M字節,以及尋址空間從固定分段改變為單一平面等,有效減少了編譯結果的目標指令條數和訪存次數,提高了效能。

由於LoongArch指令設計上更加優化,在把源碼編譯為目標程序後的指令數量上甚至比x86略有優勢。在Coremark的測試中,程序運行過程中執行的指令總數LoongArch為MIPS的83%,相當於運行效率提高了20%。在類型更加多樣的測試中,綜合測試結果,LoongArch平均比MIPS快12%,說明全新設計的LoongArch是成功的,可以為CPU帶來大幅的性能提升。

另外,LoongArch設計時充分考慮兼容生態需求,融合了各國際主流指令系統的主要功能特性,操作系統中除了運行原生的 LoongArch 程序,還能通過翻譯的方式兼容MIPS、x86、ARM、RISC-V 這幾種指令集的 Linux 程序。根據官方公布的PPT,在翻譯X86時,運行效率可以達到80%。

2020年,龍芯委托國內第三方知名知識產權評估機構對龍芯基礎架構進行深入細致的知識產權評估,將LoongArch與ALPHA、ARM、MIPS、POWER、RISC-V、X86等國際上主要指令系統有關資料和幾萬件專利進行深入對比分析。2021年1月,針對被評估的基礎架構版本該評估機構認為:

(1)LoongArch在指令系統設計、指令格式、指令編碼、尋址模式等方面進行了自主設計。
(2)LoongArch指令系統手冊在章節結構、指令說明結構和指令內容表達方面與上述國際上主要指令系統存在明顯區別。
(3)未發現LoongArch基礎架構對上述國際主要指令系統中國專利的侵權風險。

自主CPU的兩個維度:自主指令系統、自主完成前端後端設計

一直以來,不論是與外商合資的國產CPU,還是購買外商技術授權的國產CPU,以及把外商CPU和自己的ASIC封裝在一起的國產CPU均號稱符合自主要素,宣傳自主研發向政府要政策、要市場。地方政府基於局部利益、短期利益紛紛給這些所謂的國產CPU開綠燈、送政策。然而,在巨額資金的投入下,這些技術引進CPU不僅沒能開花結果,反而出了不少幺蛾子,甚至折戟沈沙。之所以出現這些情況,關鍵還是對自主CPU的定義模糊,地方政府胡亂花錢,盲目引進技術。

鐵流認為,自主CPU必須是基於自主指令,自主完成CPU設計。

首先看自主指令系統。過去,一些國內廠商宣稱自己獲得了ARM v8授權,一些ARM CPU的支持者因此就稱國產ARM CPU符合自主要求。半個月前,ARM發布了其下一代芯片架構ARM v9,並聲稱是10年來最重要的創新,是未來3000億ARM芯片的基礎。在ARM v9發布後,國內購買ARM v8授權的ARM CPU廠商何去何從就是一個問題了。

誠然,關於某些國內廠商能夠繼續購買ARM v9指令集授權的報道充斥網絡,但只要查一下新聞源頭可以發現源頭是2019年的一篇外媒報道,國內媒體是拿2019年的報道拼接套娃,就ARM官網上關於發布ARM v9的網頁看,文末的合作夥伴有谷歌、英偉達、恩智浦、富士通、紅帽等國外企業,也有台積電、聯發科、OPPO、VIVO、小米等中國企業,然而,一些國內廠商並不在合作夥伴名單內。

退一步說,即便這次僥幸買到了ARM v9授權,那麽,將來ARM發布V10、V11、V12......國內ARM CPU企業是不是還要繼續買V10、V11、V12授權......如果是這種“買無止境”,那麽,國產ARM CPU所標榜的“自主”又從何談起呢?

因此,自主CPU必須基於自主指令系統,基於ARM授權開發的CPU根基不牢,是在沙灘上建房子,自主性無從談起。

其次是自主設計。這裏的自主設計包含自主完成前端設計和後端設計。芯片設計到流片,基本分兩大部分,前端和後端。

前端是RTL design ,根據design specification,做設計,形成 verilog 代碼,然後用eda tool做 functional verification,反復做叠代修改,直到通過檢驗。後端設計分兩部分,logic design 和 physical design。logic design 接受前端的Verilog 文件,用 synthesis 工具生成門級網表,然後再用eda 工具做logic equivalence check,叠代直到通過。physical design 接受門級網表用place&route 軟件生成physical layout,並用tools 對layout進行physical verification,包括RC extraction 和 post-layout verification 等等,叠代直到通過。通過後生成GDSII,發送代工廠流片,叫tape-out。

當下,從國外購買各種IP和設計外包是行業常態,比如華為麒麟芯片、紫光虎賁芯片的CPU核、GPU核基本從ARM、Imagination等外商購買,又比如飛騰把後端設計外包給世芯。

之所以出現購買IP和設計外包的情況,根源還是自己基礎不牢,技術不紮實,又不願意一步一個腳印提升技術水平,想要盡快出成績。而技術提升恰恰是需要循序漸進的,前端設計一代產品更新源代碼替換一般不會超過25%,必須一代一代逐代演進。後端設計中的定制模塊設計,通常先流一次片,用於驗證功能,沒有問題,再當做一個模塊或者IP集成到芯片中,保證不容易出錯,因此,後端需要經驗豐富的人,這都是拿錢和流片,以及時間去學習積累出來的,而國內一些CPU公司為了抓住國家政策紅利,自然會選擇購買IP或外包設計盡快出成績。

在採用外購的IP,或將設計外包之後,一方面會帶來自身技術底子不紮實的問題,一個最明顯的現象就是後繼乏力,發展後勁不足,比如在CPU的IPC提升上,技術引進CPU明顯不如龍芯,於是只能靠採用更先進的台積電工藝來提升性能。另一個是必然帶來巨大政治風險,一旦遭遇制裁,後果不堪設想。最近,飛騰被美國列入實體清單,而飛騰的後端設計恰恰外包給了世芯,由於世芯在中國台灣島內上市,且飛騰是世芯的第一大客戶,去年佔其業績比重約39%,世芯在第一時間召開了在線說明會。根據世芯官方消息,飛騰被列入實體清單後,為該公司提供最後階段設計的世芯後續出貨將受阻,而飛騰委托世芯設計及量產制造的尖端制程芯片,已被台積電暫停接單,並待後續調查狀況後再行決定。

結語

一種指令系統承載了一個軟件生態,如X86指令系統和Windows操作系統形成的Wintel體系,以及ARM指令系統和Android操作系統形成的AA體系。為了可以對接X86和ARM生態,兆芯通過合資的方式使其在中國大陸市場可以銷售X86芯片,華為、飛騰、華芯通使用購買指令集授權的方式獲得ARM授權,但事實證明,華為、飛騰、華芯通的道路行不通。在ARM的地基上,建不起自主技術體系的高樓大廈。國外CPU廠商以指令系統作為控制生態的手段,需要獲得“授權”才能研制與之相兼容的CPU。採用授權指令系統可以研制產品,但不可能形成自主產業生態,就像中國人可以用英文寫小說,但不可能基於英文形成中華民族文化。

指令系統是軟件生態的起點,只有從指令系統的根源上實現自主,才能打破軟件生態發展受制於人的鎖鏈。龍芯自主指令系統的推出是龍芯籌謀已久的成果,絕非某些廠商用來應對危機公關的“按揭開源”產品。因為3A5000就是基於LoongArch設計,且已經有樣片,將在2021年投放市場,從確定新指令集到基於新指令集設計一款CPU,再到完成流片,需要漫長的周期。從龍芯最初基於MIPS添加指令,到發展出基於MIPS的LoongISA,再到最新的LoongArch,龍芯的目的是非常明確的,也是顯而易見的,那就是盡一切可能掌握主導權,堅定不移走自主之路。

必須說明的是,龍芯和華為、飛騰一樣,在當下都很難頂住美國禁令。

誠然,華為和飛騰ARM芯片絕版的最主要原因是失去台積電流片渠道,但兩者在設計上都依賴海外技術輸入,華為的鯤鵬芯片設計很大程度上得益於華為開設在美國的研究所,而飛騰在後端設計上則外包給世芯,這都是非常危險的,因為美國可以輕易中止技術輸入。可以說,華為和飛騰在ARM授權、CPU設計、CPU制造三個環節都被卡脖子。

龍芯雖然已經實現了自主指令系統和CPU自主設計,不需要從國外研究所獲取技術,也不需要把後端設計外包給世芯這樣的境外廠商,但在流片渠道上同樣脆弱。由於在半導體設備、材料、EDA等多方面受制於人,國內尚無法做到全產業鏈,而美國的實體清單恰恰是“100-1=0”。

當下,最要不得的就是海軍自嗨、厲害體、沸騰體。鐵流以前反對顱內充血,反對沸騰體,還被指責“站不起來”。

搞笑的是,鐵流過去主張低調循序漸進自主指令集、自主設備、自主材料、自主制造建設全產業鏈的觀點時,那些指責鐵流“站不起來”的人群又指責鐵流這種事情不現實,應當“融入國際主流”。

鐵流不禁要問,究竟是誰站不起來!

一些人必須克服“奴才”心態,在評價國產CPU時,應當看國產CPU本身行不行,而不能比誰的“洋爹”發展的好來論英雄。

實踐證明,“融入國際主流”並非良策。特朗普和拜登已經用行動說明了一切。當下,龍芯已經基於LoongArch設計出了3A5000,而且基於12nm工藝的3A5000在最關鍵的單核性能上超越了基於7nm的鯤鵬CPU,這是一個里程碑,是自主技術採用相對落後工藝超越引進技術的里程碑。

在龍芯已經在設計環節實現自主的情況下,希望國內原材料廠商、設備廠商、制造廠商、EDA廠商能夠給力,希望軟件廠商能夠積極移植適配應用軟件,最終實現打通芯片設計、制造、封裝、測試、原材料、EDA,以及OS、中間件、數據庫、應用軟件全鏈條。

新浪科技