據悉,12月末龍芯將發布最新一代CPU 3A4000,這款CPU和3A3000一樣,依然采用28nm工藝,并在制造工藝沒有升級的情況下,依賴自己的設計能力把裸CPU性能提升了90%,這在國內是非常罕見的,相對于一些依賴ARM的IP和臺積電先進工藝的廠商,龍芯形成了鮮明對比,這充分證明了龍芯的IC設計能力。
龍芯3A4000內核大升級
根據清華大學微電子所所長魏少軍博士指出:“快速提升我們自己的IC基礎設計能力迫在眉睫,這是改變目前中國IC設計業嚴重依賴EDA工具和制造工藝才能實現芯片性能提升的根本途徑,而依賴并濫用IP則導致了中國SoC設計的同質化”。
可以說,當下國內很多IC設計公司,對ARM的技術有非常高的依賴性,幾乎是離開了ARM就不會設計CPU/SOC了,而且對臺積電的先進工藝也非常依賴,幾乎是離開了臺積電工藝,CPU/SOC的性能就會大打折扣。
相比之下,龍芯則對先進工藝的依賴性不高,在制造工藝上一直落后于國內友商,比如友商普遍采用臺積電28nm工藝,個別廠商已經用上了臺積電16nm工藝的時候,龍芯3A2000還在使用中芯國際的40nm工藝。現在,友商普遍采用臺積電16nm工藝,個別友商已經用上了臺積電7nm工藝,而龍芯依然在使用老舊的28nm工藝。
龍芯之所以這樣做,一方面和資金實力有關,由于十二五后核高基等項目重點扶持技術引進項目,龍芯基本斷奶,要自負盈虧,資金上不寬裕,不得不拿鼎暉等的風投,因而自然選擇相對老舊,性價比較高的工藝。另一方面,這也和龍芯具備較強設計能力有關,在工藝不如友商的情況下,用設計能力去彌補,也能在相關創新市場中擊敗對手,并囊獲70%以上的市場份額。
這里再談一下28nm工藝。使用相對老舊工藝,還有一個好處,那就是有助于壓低成本,畢竟7nm工藝流片成本太貴,16nm工藝流片成本也很貴。龍芯采用28nm工藝,只要有三十萬片的產量,就可以把流片和封裝成本壓下來。而采用7nm和16nm工藝,想要壓下成本,恐怕要上百萬,乃至幾百萬、上千萬的產量才行。
據網友介紹,3A4000在頂層設計方面作的主要改進有:
調整了片上互連結構,簡化了地址路由,IO 模塊間互連采用 RING 結構;
優化了 HT 控制器的帶寬利用率與跨片延時;
優化了內存控制器結構,增加了內存控制器 DDR4 的支持,并支持內存槽連接加速卡;
規范了配置寄存器空間與訪問方式,引入了 CSR 配置寄存器訪問機制;
優化了中斷控制器結構,支持向量中斷硬件分發機制;
增加了 8 路互連支持;
......
正是通過這些改進,龍芯3A4000實現了SPEC2006定點浮點雙20分,在性能上用28nm工藝超過了國內個別友商采用16nm工藝的ARM CPU。
龍芯自主指令集和自主生態初露端倪
一直以來,一些ARM的支持者非常喜歡玩弄一個文字游戲,那就是鼓吹龍芯買MIPS,申威買Alpha,某司買ARM,因而大家自主性上都是同一個水平的。這種強行把龍芯申威的自主性拉下一個臺階的說辭,是非常值得商榷的。
首先,申威不是Alpha,申威的指令集是國內自主定義的SW64,這一點國內權威部門做過鑒定,美國田納西大學教授、TOP500創始人Dongarra Jack發布的文檔也說明,SW64不是DEC的Alpha。不知道是不是神威太湖之光超算取得的成績太過耀眼,以及申威自主定義指令集的做法在皇協軍眼中太刺眼,因而國內一伙人非常喜歡給申威找一個爹,哪怕這個爹已經“死”了20年,這樣才能貶低申威的自主性,把申威降到和國產ARM一個水平。
把龍芯視為MIPS麾下的打工仔也不客觀。也許是國產ARM是ARM麾下的打工仔,因而一些人將龍芯貶低為MIPS麾下的打工仔,這樣就可以把龍芯的自主性降到國產ARM一個水平。事實上,這種論調是經不起推敲的。龍芯能夠自主添加指令集,已經在MIPS的基礎上,擴充了1000多條指令,并形成了自己的LoongISA,而且已經發展到LoongISA 2.0,關鍵的基礎軟件自己維護,Linux對于龍芯的支持也非常給力,一些軟件在發布時也有分龍芯版和MIPS版,還有一些雖然兩者并為同一個版本,但是可以在運行時動態探測處理器型號而在龍芯處理器上應用龍芯拓展指令加速優化。龍芯面向MIPS更像伙伴關系,在龍芯對很多軟件進行移植優化的時候,也不忘同時帶上其他MIPS處理器的支持,在v8,OpenJDK等JIT虛擬機中,龍芯都已經成為了整個MIPS架構的代碼維護者。最近UOS也把Loongson內核與x86內核、ARM內核并列,其中一項亮眼的更新是增加了對龍芯3A4000的支持。
龍芯在MIPS的軟件生態方面已經獲得了一定的主導地位。龍芯成為了Java運行環境OpenJDK 13的一大貢獻者,現在維護著上游MIPS架構和龍芯擴展的代碼。諸多多媒體庫,例如FFmpeg,libvpx,OpenH264,libyuv等,都已經由龍芯針對自己的MMI以及MIPS的MSA等向量指令進行優化并提交給上游。有些庫支持龍芯擴展指令甚至比支持MIPS的擴展指令還早。Linux內核的上游也一樣被龍芯生態鏈成員維護著。龍芯在開源軟件方面已經獲得了一定的發言與控制權。
龍芯對MIPS的擴展也越來越深入,從最開始的擴展運算訪存以及二進制翻譯指令,到后來的硬件頁表索引以及虛擬化指令,再到現在對基礎指令進行更加高效的替換。3A4000引入的AMO原子操作系列指令代替了MIPS原先的LLSC系列指令,使得應用多線程操作的效率大大提高。PC相對尋址指令則可以解決MIPS當前在PIC/PIE實現方面依賴特殊的“abicall”機制,效率較低的瓶頸。Cpucfg則解決了MIPS平臺下應用無法識別CPU對擴展指令支持的弊病。龍芯在兼容MIPS的同時也在一點點甩掉來自MIPS的歷史包袱,從底層創新。這是其他ARM的附庸想都不敢想的。Arm指令集本身一般不允許客戶隨意擴展,而其官方對指令集的演進擴充流程需要復雜的投票決議,有很長的決策周期,對各種需求無法作出快速響應。即便國內ARM陣營廠商私自添加指令,也存在被解讀為非法指令的風險,不僅無助于性能提升,反而會帶來穩定性問題。不僅僅是指令集,在GIC中斷控制器,PSCI電源管理接口方面Arm也有嚴格的標準限制,廠商的自由度很小。
還有一點非常關鍵,MIPS幾經轉手,現在的母公司已經放棄了R6之前的版本,專心推進為嵌入式及IoT設備設計的R6,而龍芯目前的指令結構則基于MIPS R2以及部分來自R5的ASE。作為第一個商用的RISC指令集,MIPS的不少專利已經過期或快過期了。MIPS非常學院派,允許大家添加指令集,這就導致MIPS生態破碎化,加上MIPS非常弱勢,這就給龍芯創造了機會。打個比方,MIPS作為最早商用的RISC指令集,影響力還是有的,地位有點像漢獻帝,但比較弱勢,在這種情況下,龍芯有機會去當董卓或曹操的。
ARM則非常強勢,ARM主流生態基本無可撼動,整個產業鏈都是跟著ARM的步伐走,不可能放棄ARM主流生態,來追隨國產ARM廠商。ARM地位就像漢武帝,哪怕麾下大將再能打,也不可能翻天,只能給漢武帝打工一輩子。運氣差的,被巫蠱之禍(川普制裁)牽連,沒準還要重蹈趙破奴的命運。誠然,現在ARM主要還是英國資本和日本資本,但這兩個都不是中國的好朋友,反而是美國的盟友和小弟。
何況ARM指令集授權費用很貴,而且不斷發展,必須一直買,而龍芯、申威、RISC-V都沒有這方面的負擔。就構建產業鏈來說,國產ARM廠商只能成為產業鏈的一個打工者,類似于聯想、華為在Wintel體系和AA體系中被剝削,只能賺血汗錢,洋人賺取高額利潤。這種模式不利于一個產業的長遠發展。而龍芯、申威、RISC-V構建的紅色產業鏈,則不存在這方面的問題。
結語
當下,川普的一系列所作所為已經說明了,自主CPU是多么有意義,是多么重要,但不知為何,一些人就是見不得自主CPU的進步和成長,并惡意造謠中傷。比如把漢芯的鍋往龍芯上套。又比如此前深度舉辦的一次大會上,同方的龍芯3A4000沒有接顯示器,一些人就造謠龍芯3A4000存在重大問題所以見不得光。然而真相卻是,龍芯3A4000壓根就沒問題,只是因為同方的龍芯PC裝的是中標麒麟,因而在深度的大會上不好意思裝顯示器。一些網友還編造SPEC跑分數據,聲稱龍芯3A4000 SPEC2006定點成績只有12分,這種數據實在太過離奇,已經不能用測試誤差來圓謊了。
過去19年,龍芯用少的可憐的資源,辦成了不少事情,做出了宇航級CPU、工控CPU、桌面CPU、服務器CPU等一系列產品,就其產出來說,已經遠遠超過了國家對其的投入。
目前,龍芯的形式還是比較嚴峻的,由于人少錢少,研發進度偏慢,生態建設進度也偏慢。如今個別ARM借助其強悍的政商關系和輿論控制能力,猛沖相關創新市場和八大行業國企市場,龍芯面臨巨大挑戰。
相關文章
「 支持烏有之鄉!」
您的打賞將用于網站日常運行與維護。
幫助我們辦好網站,宣傳紅色文化!
歡迎掃描下方二維碼,訂閱烏有之鄉網刊微信公眾號
