不久前,特斯拉加入 RISC-V 基金會,並考慮在新款晶片使用免費的 RISC-V 設計。至此,已有 IBM、NXP、WD、輝達、高通、三星、Google、華為等一百多家科技公司加入 RISC-V 陣營。
有這種現象的原因一方面是 ARM 授權費實在太貴了,另一方面也是 RISC-V 提供指令集徹底開放,非常有希望成為 CPU 領域的 Linux。正因看好 RISC-V 的未來,不少科技巨頭在 RISC-V 還是潛力股的時候趁早下注。
RISC-V 的誕生
2010 年,加州大學柏克萊分校一個研究團隊準備啟動一個新項目,而要設計 CPU,必然要選擇一種指令集,然而 X86 指令集被英特爾控制得死死的,ARM 的指令集授權費又非常貴,MIPS、SPARC、PowerPC 也有智財權問題。
在這種情況下,研究團隊決定從零開始設計一套全新指令集,且要能滿足從微控制器到超級電腦等各種大小的處理器。 正如業界常說,設計一套指令集並非黑科技,用這套指令集做成 CPU 才是真正有含金量的工作。團隊只用了 3 個月就完成 RISC-V 指令集開發,並公開發表第一版。
指令集第一版只有不到 50 條指令,可用於達成一個具定點運算和特權型態等基本功能的處理器。如果用戶需要,也可以根據自己的需求自訂新指令。
這樣一來,這套指令集兼具精簡和靈活兩大特點。隨後,團隊將這個新指令集命名為 RISC-V,RISC 指的是精簡指令集,V 是羅馬字母,代表第五代。因柏克萊分校的 David Patterson 教授在此之前已研發出四代處理器晶片。
更關鍵的是,團隊將 RISC-V 指令集徹底開放,使用 BSD License 開源協定,這就使 RISC-V 不像 ARM、PowerPC 等指令集那樣需要付費授權才能使用。且 BSD 開源協定給使用者很大自由,允許使用者修改和重新發表開來源碼,也允許基於開源碼開發商業軟體發表和銷售。怎麼說呢,像 Linux 的 GPL 協定,就限制了商業公司行為。而 BSD 開源協定則不同,蘋果的 iOS 就基於 BSD 核心,但使用開源軟體之後,因 BSD 開源協定給蘋果很大的自由度,蘋果依舊可將 iOS 閉源並在商業市場賺錢。
對大學和科研院所等學術機構來說,RISC-V 也非常有價值。中國中科院計算所包雲崗研究員團隊在做一個項目時,最初選擇 SUN 的 Open Sparc T1,然而這款處理器的社群活躍度和軟體支援都不行,且獨立性較差;然後選擇 Micro Blaze,這款處理器卻不開源;最後轉向 RISC-V,完成了科研項目。相關技術成果已由華為用在海思 ARM 伺服器 CPU。
正因 RISC-V 選擇對商業公司非常友好的 BSD 開源協定,以及 RISC-V 兼具精簡和靈活等優點,眾多商業公司紛紛關注 RISC-V。
▲ RV12 RISC-V 處理器。
RISC-V 有望複製 Linux 的成功
目前的 CPU 市場,X86 和 ARM 是兩大霸主,這兩位霸主都非常霸道,英特爾根本不允許除 AMD 和 VIA 外任何一家公司使用 X86 指令集,且一旦 AMD 被收購,X86 指令集授權都要重新談判。即便是全美達想透過翻譯打插邊球,結果也被英特爾用專利訴訟拖死了。
ARM 雖然比英特爾好一些,但也只好一些些,在指令集授權也非常吝嗇,獲得 ARM32 授權的公司一隻手就能數完。ARM64 授權雖然多一些,但授權費卻異常昂貴,法國晶片創業公司 Greenwave 表示,他們如果使用 ARM 架構,要花 1,500 萬美元的授權費,且授權到期後,是否繼續授權和授權費用都要重新談。
因 X86 和 ARM 授權異常苛刻,很多大公司都對英特爾和 ARM 非常不滿,而這恰恰給了 RISC-V 機會。包括 Google、華為、IBM、美光、輝達、高通、三星、WD 等商業公司,以及加州大學柏克萊分校、麻省理工學院、普林斯頓大學、ETH Zurich、印度理工學院、羅倫茲國家實驗室、新加坡南洋理工大學及中國中科院計算所等學術機構,紛紛加盟 RISC-V。2017 年 11 月召開的第 7 屆 RISC-V Workshop,全球共有 138 個公司、35 所大學與研究機構參加。
除了商業公司和學術機構,印度政府更對 RISC-V 情有獨鐘。2011 年,印度開始實行處理器戰略計畫,資助 2~3 個研發處理器專案。印度理工學院馬德拉斯分校的 G. S. Madhusudan 與 V. Kamakoti 教授在該計畫支援下啟動 SHAKTI 處理器專案。SHAKTI 專案就選擇 RISC-V,並獲得印度政府超過 9,000 萬美元的經費支援。
2016 年,印度先進計算發展中心獲得印度電子資訊技術部 4,500 萬美元資助,目標研發一款基於 RISC-V 指令集的 2GHz 四核處理器。
過去數年,印度政府資助的處理器相關專案都開始靠攏 RISC-V,RISC-V 幾乎成了印度的國家指令集。
目前,柏克萊研究團隊已完成基於 RISC-V 指令集的順序執行 64 位處理器核心(代號為 Rocket),並前後基於 45 奈米與 28 奈米製程進行了 12 次流片。Rocket 晶片主頻大於 1GHz,與 ARM Cortex-A5 相比,實測效能高 10%,面積效率高 49%,單位頻率動態功耗僅 Cortex-A5 的 43%。在內嵌式領域,Rocket 已可和 ARM 爭場了。
WD 聲明,每年將使用 10 億個 RISC-V 核心;輝達也宣布,將把 RISC-V 用於 GPU 內部控制器。美國 DARPA 也資助一些公司基於 RISC-V 設計航太機器的晶片;還有眾多商業公司計畫基於 RISC-V 開發針對 IoT 的智慧晶片,針對保安的晶片,以及伺服器的主板管理控制器等。軟體生態方面,也逐步完善,比如除錯工具鏈、中斷控制器、JVM、LLVM、Python 等開發者常用的軟體工具都在進步。
依靠開源和免費,全世界的商業公司、學術機構都可開發相容 RISC-V 指令集的處理器,且不需要支付 1 分錢。這使 RISC-V 有望被全球開發者廣泛應用,並複製 Linux 的奇跡。何況 RISC-V 的 BSD 開源協定,比 GPL 協定對商業公司更友善,使商業公司有很強的動力推動這件事。
結論
誠然,依靠開源和免費,RISC-V 非常受大學和科研院所青睞,並有望在教學領域大展拳腳,而這又會給 RISC-V 培養源源不斷的後備軍。對商業公司來說,由於 ARM 的授權費實在太貴了,也有較強的動力去做 RISC-V,幫自己保留備用選項,避免綁死在 ARM。
不過,RISC-V 也有隱憂,就是缺乏強有力的主導者,導致碎片化。當年 MIPS 其實也非常學院派,MIPS 陣營的商業公司可自由添加指令,比如龍芯就以 MIPS 為基礎添加了 1 千多條新指令,形成自己的指令集 LoongISA。這又使開發軟體時,即便同樣屬於 MIPS,也必須分為龍芯版和 MIPS 版……
由於 RISC-V 也允許用戶自己加新指令,這有可能使 RISC-V 碎片化,也許未來華為、高通、Google 開發的 RISC-V 處理器都屬於 RISC-V,卻無法跑同一套軟體。
畢竟完全開放與有力領導是矛與盾,如果無法解決這個問題,恐怕 RISC-V 很難成長到與 X86 和 ARM 爭雄的水準。
(本文由 雷鋒網 授權轉載;首圖為 RISC-V 處理器原型,來源:By Derrick Coetzee (User:Dcoetzee) [CC0], via Wikimedia Commons)