加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 龍芯是 MIPS 生態(tài)的破壞者
    • 龍芯和 MIPS 關(guān)系類似于 AMD 和 Intel  鵬鯤 FT 則是 ARM 陣營打工者
    • 指令集和操作系統(tǒng)必須牢牢掌握
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

龍芯符合自主可控 ARM是偽自主

2020/06/01
276
閱讀需 19 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

本文主旨為以下三點(diǎn):

一是回溯龍芯 20 年前為何選擇 MIPS。

二是介紹龍芯已經(jīng)成為 MIPS 生態(tài)的維護(hù)者和破壞者。

三是分析為何龍芯能夠符合自主標(biāo)準(zhǔn),而鵬鯤、FT 購買 ARM 授權(quán)受制于人。

龍芯當(dāng)年為何選擇 MIPS

在 20 年前,龍芯最初只是中科院計(jì)算所的一個(gè)課題組,只有十幾個(gè)人和一間 40 平方的辦公室,研究目標(biāo)是設(shè)計(jì)一款能用的 CPU。當(dāng)時(shí)如果自己設(shè)計(jì)一套指令集,將會(huì)面對(duì)沒有編譯器、沒有操作系統(tǒng)、沒有軟件可用的局面,全部都需要自己開發(fā)。

由于資金和人員等條件有限,小小的課題組無法支撐這么大的工程量,當(dāng)年,胡老師曾經(jīng)想借鑒 Alpha 定義一套指令集,但唐老師從現(xiàn)實(shí)考慮選擇了 MIPS——因?yàn)?x86 無法獲得授權(quán),而當(dāng)時(shí)的 ARM 還局限于嵌入式,混的還不如 MIPS,架構(gòu)授權(quán)昂貴且禁止其他廠商修改添加指令集,MIPS 架構(gòu)授權(quán)容易獲得,且 MIPS 非常學(xué)院派,允許自主添加指令集,唐老師當(dāng)年選擇 MIPS 是理所當(dāng)然的。

根據(jù)《龍芯的足跡》一書披露,龍芯從 MIPS 獲得的是永久授權(quán)。若 MIPS 主體不復(fù)存在則龍芯不需繼續(xù)付費(fèi),可以一直兼容 MIPS。相對(duì)于 ARM 動(dòng)輒上億的架構(gòu)授權(quán)費(fèi)用,MIPS 的授權(quán)費(fèi)用堪稱白菜價(jià)。

龍芯能夠以如此低的標(biāo)的獲得 MIPS 授權(quán),一方面與 MIPS 行業(yè)地位不夠強(qiáng)勢(shì),且非常學(xué)院派,架構(gòu)授權(quán)便宜,IP 授權(quán)昂貴的授權(quán)策略有關(guān)。另一方面,也是因?yàn)辇埿緞冸x了 MIPS 的技術(shù)支持服務(wù)和各種工具軟件,購買的是“純凈版”指令集授權(quán),才能把價(jià)格壓至最低。

龍芯的發(fā)展過程中,起初是打算借用 MIPS 已有的軟硬件生態(tài),這與使用 ARM 授權(quán)的國內(nèi)同行們一樣。但沒有想到 MIPS 會(huì)逐漸淡出主流市場(chǎng),然而這種出乎意料的發(fā)展,反而給了龍芯留下了更大的舞臺(tái)。

龍芯之所以堅(jiān)持 MIPS,而沒有像 FT 那樣從 SPARC 轉(zhuǎn)投 ARM,主要有以下兩點(diǎn):

一是龍芯以 MIPS 架構(gòu)為基礎(chǔ)構(gòu)建了自己的擴(kuò)展指令體系,這些成果無法轉(zhuǎn)移到封閉的 ARM 指令集體系中;

二是因?yàn)辇埿竞芨F,付不起 ARM 的架構(gòu)授權(quán)費(fèi)。

目前,龍芯成為了 MIPS 生態(tài)的堅(jiān)定的守衛(wèi)者,許多開源項(xiàng)目的 MIPS 分支都逐漸把龍芯作為編譯平臺(tái),龍芯也為 MIPS 的生態(tài)貢獻(xiàn)了大量成果。比如前段時(shí)間報(bào)道的龍芯對(duì) JAVA 虛擬機(jī)的貢獻(xiàn)度排名全球第五,而它前面的幾家公司都是甲骨文、谷歌這樣的巨無霸。

龍芯是 MIPS 生態(tài)的破壞者

最初,龍芯從只注重 CPU 研發(fā),然而光有芯片沒有生態(tài)顯然是無法在市場(chǎng)立足的,在吃了不少苦頭之后,龍芯逐漸步入重視軟硬件生態(tài)建設(shè)的路線。

由于 MIPS 生態(tài)本身的衰落,龍芯多年來已經(jīng)成為了兼容 MIPS 的唯一的桌面和服務(wù)器 CPU 設(shè)計(jì)者,在設(shè)計(jì)兼容 MIPS 的 CPU 的公司中,是唯一的桌面和服務(wù)器軟硬件生態(tài)的建設(shè)者。這種尷尬的“領(lǐng)導(dǎo)者”身份使龍芯可以心無旁騖地發(fā)展自己的生態(tài),向 CPU 中添加各種新的指令來提升性能和擴(kuò)展功能,而不必操心與其它 MIPS CPU 的兼容性問題。

龍世 3A4000 龍芯以 MIPS R5 為基礎(chǔ),對(duì) MIPS 基礎(chǔ)指令精選替換,以及自行擴(kuò)展了 1000 多條指令,發(fā)展出了自己的指令集體系——LoongsonISA。LoongsonISA 要比 MIPS(216 條基礎(chǔ)指令+311 條 DSP 指令)龐大得多,MIPS 只它的一個(gè)子集。上一代龍芯 CPU 只兼容 MIPS R3,如今兼容 R5 大概是準(zhǔn)備收割 MIPS 最后的遺產(chǎn)。

龍芯與 MIPS 的關(guān)系,更像是 AMD英特爾的關(guān)系。在龍芯對(duì)很多軟件進(jìn)行移植優(yōu)化的時(shí)候,也不忘同時(shí)帶上其他 MIPS 處理器的支持,在 v8,OpenJDK 等 JIT 虛擬機(jī)中,龍芯都已經(jīng)成為了整個(gè) MIPS 架構(gòu)的代碼維護(hù)者。最近 UOS 也把 Loongson 內(nèi)核與 x86 內(nèi)核、ARM 內(nèi)核并列,其中一項(xiàng)亮眼的更新是增加了對(duì)龍芯 3A4000 的支持。

龍芯在 MIPS 的軟件生態(tài)方面已經(jīng)獲得了一定的主導(dǎo)地位。龍芯成為了 Java 運(yùn)行環(huán)境 OpenJDK 13 的一大貢獻(xiàn)者,現(xiàn)在維護(hù)著上游 MIPS 架構(gòu)和龍芯擴(kuò)展的代碼。諸多多媒體庫,例如 FFmpeg,libvpx,OpenH264,libyuv 等,都已經(jīng)由龍芯針對(duì)自己的 MMI 以及 MIPS 的 MSA 等向量指令進(jìn)行優(yōu)化并提交給上游。有些庫支持龍芯擴(kuò)展指令甚至比支持 MIPS 的擴(kuò)展指令還早。Linux 內(nèi)核的上游也一樣被龍芯生態(tài)鏈成員維護(hù)著。龍芯在開源軟件方面已經(jīng)獲得了一定的發(fā)言與控制權(quán)。

MIPS 原本的生態(tài)絕大部分已經(jīng)是歷史,龍芯如今的軟件生態(tài)主要是來自龍芯自己維護(hù)的各種開源項(xiàng)目,以及國內(nèi)各家軟件開發(fā)商對(duì)產(chǎn)品的移植,本質(zhì)上已經(jīng)不能再稱為 MIPS 軟件生態(tài),而應(yīng)當(dāng)稱為龍芯生態(tài)。事實(shí)上,在移植一些軟件的時(shí)候,已經(jīng)要區(qū)分龍芯版本和 MIPS 版本了。

在過去這些年,無論是 Imagination,還是 Wave Computing 都沒有在 MIPS 投入多少資源,都只是在拿 MIPS 的 IP 賺錢,盡可能榨取 MIPS 的剩余價(jià)值,主要精力分別放在各自的主營業(yè)務(wù)——GPU 和 AI 芯片上。直接的結(jié)果就是 MIPS 的 CPU 發(fā)展非常慢,如今,龍芯 3A4000 的性能已經(jīng)大幅超越了 MIPS CPU,隨著時(shí)間的流逝和龍芯的發(fā)展,MIPS 的專利會(huì)逐步過期,LoongsonISA 中的 MIPS 基礎(chǔ)指令會(huì)被龍芯逐步替換,LoongsonISA 中龍芯擴(kuò)展的指令比重會(huì)越來越高,當(dāng)龍芯生態(tài)逐步成型,常用軟件普遍支持 LoongsonISA 后,LoongsonISA 則會(huì)與 MIPS 分道揚(yáng)鑣,從這個(gè)角度看,龍芯是 MIPS 生態(tài)的破壞者。

龍芯和 MIPS 關(guān)系類似于 AMD 和 Intel ?鵬鯤 FT 則是 ARM 陣營打工者

為何龍芯兼容 MIPS 可以稱為自主路線,而鵬鯤、FT 則購買 ARM 架構(gòu)授權(quán)則會(huì)受制于人,鐵流認(rèn)為,有以下三個(gè)原因。

一是能否掌握指令系統(tǒng)發(fā)展權(quán)。之前介紹過,MIPS 本身就是學(xué)院派的產(chǎn)物,是第一種商用的精簡指令集,這使得 MIPS 指令比較“古老”,很多專利已經(jīng)過期或快過期了。加上 MIPS 非常學(xué)院派,允許其他廠商自主修改或添加指令,這一方面導(dǎo)致 MIPS 生態(tài)破碎化,另一方面也給其他廠商更多自主發(fā)展的空間。

經(jīng)過這些年,龍芯對(duì) MIPS 的擴(kuò)展也越來越深入,從最開始的擴(kuò)展運(yùn)算訪存以及二進(jìn)制翻譯指令,到后來的硬件頁表索引以及虛擬化指令,再到現(xiàn)在對(duì)基礎(chǔ)指令進(jìn)行更加高效的替換。3A4000 引入的 AMO 原子操作系列指令代替了 MIPS 原先的 LLSC 系列指令,使得應(yīng)用多線程操作的效率大大提高。PC 相對(duì)尋址指令則可以解決 MIPS 當(dāng)前在 PIC/PIE 實(shí)現(xiàn)方面依賴特殊的“abicall”機(jī)制,效率較低的瓶頸。Cpucfg 則解決了 MIPS 平臺(tái)下應(yīng)用無法識(shí)別 CPU 對(duì)擴(kuò)展指令支持的弊病。龍芯在兼容 MIPS 的同時(shí)也在一點(diǎn)點(diǎn)甩掉來自 MIPS 的歷史包袱,從底層創(chuàng)新。這是其他 ARM 的附庸想都不敢想的。

相比之下,Arm 指令集本身一般不允許客戶隨意擴(kuò)展,而其官方對(duì)指令集的演進(jìn)擴(kuò)充流程需要復(fù)雜的投票決議,有很長的決策周期,對(duì)各種需求無法作出快速響應(yīng)。即便國內(nèi) ARM 陣營廠商私自添加指令,也存在被解讀為非法指令的風(fēng)險(xiǎn),不僅無助于性能提升,反而會(huì)帶來穩(wěn)定性問題。不僅僅是指令集,在 GIC 中斷控制器,PSCI 電源管理接口方面 Arm 也有嚴(yán)格的標(biāo)準(zhǔn)限制,廠商的自由度很小。

二是 ARM 非常強(qiáng)勢(shì),而 MIPS 非常弱勢(shì)。ARM 在其建立的產(chǎn)業(yè)生態(tài)非常強(qiáng)勢(shì),當(dāng) ARM 推出新版本的指令集時(shí),就必須再次購買授權(quán)。如果不繼續(xù)購買授權(quán),那么當(dāng)同類 CPU 的其它公司都升級(jí)之后,各家軟件開發(fā)商也不會(huì)死守在老版本的指令集上不動(dòng)搖,即使軟件有兼容機(jī)制可以在老版指令集的 CPU 上運(yùn)行,但新版的指令集肯定有加速某些計(jì)算的新指令,這樣即使 CPU 核心設(shè)計(jì)水平相當(dāng),也無法抵消巨大的性能差距,繼續(xù)使用老版本指令集就必然會(huì)落后于市場(chǎng)。ARM 的陣營唯一特例是蘋果,因?yàn)樗卫握瓶亓俗约旱牟僮飨到y(tǒng)。假如蘋果把 IOS 授權(quán)給其它廠商,或者蘋果手機(jī)也用安卓系統(tǒng),那么它就會(huì)立即失去生態(tài)獨(dú)立的優(yōu)勢(shì),泯然于眾人。

造成這種困境的原因就是,ARM 指令集的主導(dǎo)權(quán)始終在 ARM 手里,其主流生態(tài)基本無可撼動(dòng),整個(gè)產(chǎn)業(yè)鏈都是跟著 ARM 的步伐走,不可能放棄 ARM 主流生態(tài)。在同類產(chǎn)品中,絕大多數(shù)用戶選擇的原則,永遠(yuǎn)都是“更新型更先進(jìn)”。

國內(nèi)的 ARM CPU 的一種生存模式,就是建設(shè)出國外同行暫時(shí)放棄或無力插手的 ARM 桌面和服務(wù)器生態(tài),發(fā)展使用 ARM 指令集的桌面及服務(wù)器 CPU。付出巨大的努力之后,也許能夠在特定市場(chǎng)上部分替代 Intel 和 AMD,然而由于使用 ARM 指令集,那么國外同行也能很快設(shè)計(jì)出用于桌面和服務(wù)器的 ARM CPU,然后以性能和價(jià)格的優(yōu)勢(shì)把國產(chǎn) ARM CPU 從公開市場(chǎng)中徹底驅(qū)逐出去,竊取勝利的果實(shí),只留下一些受政策保護(hù)的小眾市場(chǎng)。驅(qū)虎吞狼,又或兔死狗烹。

相比之下,MIPS 則非常弱勢(shì),公司已經(jīng)兩度轉(zhuǎn)賣,新東家 Wave Computing 申請(qǐng)破產(chǎn)保護(hù),MIPS 已經(jīng)窮途末路,在可以預(yù)見的未來不可能再干涉到龍芯的發(fā)展。龍芯當(dāng)前架構(gòu)同頻性能已經(jīng)與 AMD 2017 年的 Zen 架構(gòu)相當(dāng),明后年持續(xù)改進(jìn)內(nèi)核并更換工藝提升頻率就能進(jìn)一步接近 AMD 水平,已經(jīng)不存在性能超越龍芯的 MIPS CPU,具有很強(qiáng)的不可替換性,ARM 陣營中可能存在的驅(qū)虎吞狼、兔死狗烹的問題,對(duì)于龍芯而言,完全不存在。

由于 MIPS 允許其他廠商自主擴(kuò)展修改指令集,龍芯已經(jīng)發(fā)展出了自己的 LoongsonISA,而且在很多方面已經(jīng)主導(dǎo)了 MIPS 生態(tài)建設(shè)。運(yùn)行于龍芯的系統(tǒng)和軟件一旦使用了龍芯的擴(kuò)展指令集,就不能在其它的 MIPS 兼容 CPU 上直接運(yùn)行,這也是對(duì)自己生態(tài)的保護(hù)措施。一旦龍芯的自主擴(kuò)展和修改的指令被產(chǎn)業(yè)生態(tài)廣泛支持,那么,龍芯與 MIPS 變成 AMD 和英特爾的關(guān)系將不可避免。

當(dāng)年,AMD 就是趁著英特爾推廣安騰的時(shí)候,率先推出了 64 位指令集,并獲得 X86 生態(tài)的廣泛支持,并最終實(shí)現(xiàn)在 X86 陣營內(nèi)與英特爾分庭抗禮。AMD 成功范例在前,國內(nèi)很多從業(yè)者卻對(duì)此視而不見,并強(qiáng)行把龍芯與 MIPS 關(guān)系等同于鵬鯤、FT 與 ARM 的關(guān)系,則顯然是非常值得商榷的。

MIPS 如果繼續(xù)衰敗下去,同時(shí)龍芯在硬件和軟件上繼續(xù)發(fā)展,那么,龍芯和 MIPS 的關(guān)系變成 AMD 與英特爾的關(guān)系只是時(shí)間問題。對(duì)于那些使用 ARM 授權(quán)的 CPU,無論是 IP 授權(quán),還是架構(gòu)授權(quán),都無法做到這一點(diǎn),因?yàn)?ARM 把生態(tài)統(tǒng)一性守得太緊,生態(tài)碎片化是不被允許的,鵬鯤、FT 根本就沒有自主發(fā)展的機(jī)會(huì)。

?

打個(gè)通俗易懂的比方,ARM 地位就像漢武帝,哪怕麾下大將再能打,也不可能翻天,只能給漢武帝打工一輩子。運(yùn)氣差的,被巫蠱之禍(川普制裁)牽連,沒準(zhǔn)還要重蹈趙破奴的命運(yùn)。誠然,現(xiàn)在 ARM 主要還是英國資本和日本資本,但這兩個(gè)都不是中國的好朋友,反而是美國的盟友和小弟。MIPS 作為最早商用的 RISC 指令集,影響力還是有的,地位有點(diǎn)像漢獻(xiàn)帝,但比較弱勢(shì),在這種情況下,龍芯有機(jī)會(huì)去當(dāng)董卓或曹操的。

三是 MIPS 授權(quán)成本很低,而 ARM 授權(quán)成本很高。目前,龍芯 MIPS 授權(quán)的費(fèi)用幾乎就是白菜價(jià),而且隨著 Wave Computing 申請(qǐng)破產(chǎn)保護(hù),MIPS 甚至有成為公共知識(shí)(public domain)的可能性,因?yàn)槿绻麤]有“白衣騎士”拯救 Wave Computing,或收購 MIPS,或者因?yàn)闆]錢賺不去主動(dòng)交納維護(hù) MIPS 那些古董專利的專利費(fèi),那么,MIPS 就成為公共知識(shí),這樣一來,MIPS 將成為比 RISC-V 更加自由開放的體系,龍芯連白菜價(jià)的授權(quán)費(fèi)都不用支付了。即便出現(xiàn)新買家,MIPS 公司繼續(xù)走下坡路的大勢(shì)已經(jīng)是定局,不能對(duì)龍芯形成掣肘。

作為對(duì)比,ARM 授權(quán)成本很高,按照授權(quán)等級(jí)的差異,動(dòng)輒上數(shù)千萬美元,甚至幾億美元,而且還只是一定期限的,到期了要重新談判。ARM 的指令集在不斷發(fā)展,必須一直買,就構(gòu)建產(chǎn)業(yè)鏈來說,國產(chǎn) ARM 廠商只能成為產(chǎn)業(yè)鏈的一個(gè)打工者,類似于聯(lián)想、華為在 Wintel 體系和 AA 體系中被剝削,只能賺血汗錢,洋人賺取高額利潤。正是因?yàn)楸姸鄰S商無法忍受 ARM 的貪婪,才有 RISC-V 在全球興起??梢哉f,購買 ARM 昂貴授權(quán)這種模式不利于一個(gè)產(chǎn)業(yè)的長遠(yuǎn)發(fā)展。而龍芯、申威構(gòu)建的紅色產(chǎn)業(yè)鏈,則不存在這方面的問題。

指令集和操作系統(tǒng)必須牢牢掌握

文末,鐵流引用一位網(wǎng)友的話。要想實(shí)現(xiàn)商業(yè)上完全的自主可控,必須要牢牢掌握指令集和操作系統(tǒng),如果一家廠商無法兼顧,那么,退而求其次必須掌握一種。否則就很容易受制于人,當(dāng)年,Intel 通過指令集升級(jí)、知識(shí)產(chǎn)權(quán)訴訟、技術(shù)路線改變等手段消滅了除 AMD 之外的歷史遺留的所有對(duì)手,AMD 通過反壟斷茍延殘喘的時(shí)候,又憑借自己設(shè)計(jì)出的 AMD64 架構(gòu)在微軟支持下復(fù)興,成功倒逼 Intel 交叉授權(quán)。

微軟、谷歌憑借對(duì)操作系統(tǒng)的把持而分別統(tǒng)治了桌面和移動(dòng)生態(tài)。蘋果通過對(duì)操作系統(tǒng)的封閉,依靠差異化競爭牢牢地在桌面和移動(dòng)設(shè)備中占據(jù)了一席之地。

國家要想實(shí)現(xiàn)信息化建設(shè)的自主可控,那么指令集和操作系統(tǒng)都必須掌握在自己手中。

龍芯如 AMD 那般發(fā)展出了自己的指令集,且在國內(nèi)軟硬件廠商支持下,成功構(gòu)筑了基本滿足辦公和日常使用的生態(tài),MIPS 的影響力卻已經(jīng)可以忽略不計(jì)。盡管由于資源不足,龍芯發(fā)展很艱難,但我認(rèn)為只要路線是正確的,堅(jiān)持下去就有希望。

世事變遷造就了龍芯的現(xiàn)狀,從研究 CPU 設(shè)計(jì)的課題組,轉(zhuǎn)變?yōu)樵谑袌?chǎng)上艱難求存且默默無聞的小公司,再發(fā)展成了自建生態(tài)并帶動(dòng)大批配套企業(yè)共同發(fā)展的核心企業(yè)。龍芯隨著政策的變化而自立,隨著 MIPS 的衰退而崛起,隨著中美摩擦明朗化而更加重要,隨著 20 年技術(shù)積累而無所畏懼,也是時(shí)勢(shì)造英雄吧。盡管龍芯體量還很小,但對(duì)自己的命運(yùn)卻能自主可控。

Arm

Arm

ARM公司是一家知識(shí)產(chǎn)權(quán)(IP)供應(yīng)商,主要為國際上其他的電子公司提供高性能RISC處理器、外設(shè)和系統(tǒng)芯片技術(shù)授權(quán)。目前,ARM公司的處理器內(nèi)核已經(jīng)成為便攜通訊、手持計(jì)算設(shè)備、多媒體數(shù)字消費(fèi)品等方案的RISC標(biāo)準(zhǔn)。公司1990年11月由Acorn、Apple和VLSI合并而成。

ARM公司是一家知識(shí)產(chǎn)權(quán)(IP)供應(yīng)商,主要為國際上其他的電子公司提供高性能RISC處理器、外設(shè)和系統(tǒng)芯片技術(shù)授權(quán)。目前,ARM公司的處理器內(nèi)核已經(jīng)成為便攜通訊、手持計(jì)算設(shè)備、多媒體數(shù)字消費(fèi)品等方案的RISC標(biāo)準(zhǔn)。公司1990年11月由Acorn、Apple和VLSI合并而成。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

鐵君公眾號(hào)主筆,主要關(guān)注領(lǐng)域?yàn)榘雽?dǎo)體、操作系統(tǒng)、人工智能、通信、云計(jì)算。