開源成為晶元設計的新趨勢 | 半導體行業觀察
來源:微信公眾號 半導體行業觀察(ID:icbank)
近來,越來越多的晶元開源項目引起了大家的關注。開源指令集RISC-V的旗艦公司SiFive剛完成5000萬美元的新一輪融資,而Nvidia的開源NVDLA則宣布與ARM進行深度合作,將進入ARM的Trillium人工智慧硬體平台。開源是否會成為下一代晶元設計的新範式?
傳統晶元設計模式的痛點
一直以來,硅工和碼農孰優孰劣都是一個很有趣的話題,其實類似討論的背後也反映出了軟體行業和晶元行業的區別。軟體行業有「不要重新發明輪子」的說法,因為軟體行業可以方便地實現設計復用,之前設計的代碼可以方便地使用到新的設計中。而開源項目的出現更是加快了軟體行業的開發周期,因為公司只需要把主要精力集中到整體項目中最核心的那部分就行,其他的周邊都可以用開源代碼完成,避免了反覆勞動,大大提升了效率。開源不僅對公司有利,對於整體工程師社區也很有幫助,因為工程師可以用業餘時間去做開源項目,這樣能大大開闊其技術視野並緊跟技術前沿潮流,並且通過開源項目可以與其他工程師交流。因此,我們看到的軟體行業是一個快速實施,快速迭代且工程師社區相當健全的行業,這一切都離不開開源項目的支持。
晶元行業就遠遠不是這樣。與軟體項目相比,晶元設計出了bug很難有補救的機會,因此每個模塊的設計和驗證都要付出很大代價,這也讓開源項目在傳統晶元行業難以找到位置。設計復用的概念一般僅存在於同一家公司之中,根本不存在軟體行業這樣的全行業設計復用,因此新公司成立時往往要首先自己把輪子造一遍,這就大大降低了晶元設計行業的整體效率。
在過去的十幾年裡,半導體晶元行業的趨勢還是打造一個能兼容大部分應用的大一統平台(例如PC時代的Intel處理器以及移動時代的Qualcomm Snapdragon),並且該平台隨著半導體工藝節點的改進能跟上應用的需求。打造通用平台式大晶元的廠商通常是半導體巨頭,整個公司都圍繞一兩款核心產品,而且有雄厚的實力能支持基礎模塊的獨立研發和維護, 因此設計復用不是大問題。然而,隨著摩爾定律接近尾聲,這樣的通用型平台晶元的性能已經難以改進,難以跟上應用需求的不斷進步。取而代之的是異構計算的模式——針對每個應用都有專門優化的從底層硬體到上層軟體介面設計,從而保證用底層晶元和硬體級設計上的更新(而不是靠半導體工藝的革新)來跟上應用需求的提升。
這樣一來,整個晶元市場就不再是圍繞一兩款核心晶元平台展開,而是會成為一個長尾市場,各路小公司紛紛出現佔領各種應用市場,而大公司也不能再圍繞一兩款產品而必須拉長戰線開發各類產品。物聯網就是一個典型的此類市場,對於功耗的嚴格限制使得效率較低的通用平台無法滿足物聯網應用,而取而代之的是為各種應用量身定做的晶元。因此,傳統晶元設計流程中的設計復用問題在摩爾定律走到瓶頸的時候就成了一個大問題,如何在設計定製化晶元的時候儘可能復用之前已經有人做過的設計,而只在核心要點上做定製以減小設計成本加速上市時間成了半導體公司的痛點,尤其是資源非常有限的小公司。可以說,在異構計算的時代,能滿足市場各種細分需求的半導體小公司將成為整個半導體生態中非常重要的一環。這些小公司猶如森林裡的灌木叢,雖然不像巨頭一樣是半導體行業的標誌性蒼天巨木,但是整個森林生態能否繁榮卻很大程度上取決於灌木叢能否健康生長。而現在的開源晶元,就是這些灌木叢的養料——可以說,開源晶元生態有可能是決定未來半導體行業能否繼續繁榮的關鍵!
開源晶元項目的歷史
開源晶元項目的歷史其實已經很久了。早在1999年,OpenCores就開始了一系列開源晶元項目,包括OpenRISC,Wishbone等等。然而,開源晶元項目其實也是有門檻的,項目的參與度和成熟度一定要過了某個閾值才能獲得廣泛認可進入正循環。這是因為晶元一旦流片後有bug修正起來的成本就很高,因此如果開源項目的成熟度不高,那麼公司寧可讓自己的員工重新做設計,也不會去冒險使用開源設計。這就要求開源晶元項目必須有一個強有力的組織在背後提供足夠支持,包括代碼的模擬驗證甚至流片驗證等等,而之前的開源項目始終沒有能跨過這樣一個門檻,因此沒有得到廣泛應用,更不用說形成生態了。
RISC-V:新一代開源晶元項目的典範
RISC-V是加州大學伯克利分校開源的處理器指令集項目,項目的背後主導者是David Patterson,是RISC指令集的開創者之一,也是微處理器架構領域的宗師級人物。Patterson教授深感晶元設計領域的低效率以及社區建設不成熟,於是將在伯克利開發的第五代RISC指令集作為開源項目推出(RISC-V中的V是羅馬數字五,指的就是第五代RISC)。更重要的是,RISC-V項目是迄今為止晶元領域最認真的開源項目,其前前後後都經過深思熟慮,為了推廣生態成了的RISC-V基金會獲得了業界廣泛支持也彙集了諸多資源,項目的質量遠高於之前的開源晶元項目,因此目前已經取得了很大成功。
首先,RISC-V核心開源項目並不是一個具體的軟硬核,而是指令集。指令集是一個很好的開源目標。因為指令集對於處理器來說至關重要,但是又不直接設計具體實現,因此用戶有很多靈活性,可以很輕鬆地在開源指令集的基礎上做自己的定製。另一方面,指令集較為抽象,驗證較容易,有成熟的性能模擬工具,不需要使用複雜的EDA工具就可以參與。而且目前來看,業界對於開源指令集確實是有非常強的需求。ARM和x86作為兩套商業的指令集並不開源,但是隨著物聯網和異構計算的快速發展,半導體業界會需要大量低成本高質量且設計靈活的處理器核,這樣RISC-V的指令集就滿足了這些新的設計趨勢。RISC-V社區以指令集為核心,還開發了一系列衍生的開源項目,包括使用RISC-V指令集的開源軟核,乃至一些周邊互聯IP等等。
另外,RISC-V抓住了核心指令集,可以快速推進生態。RISC-V組織提供經過驗證的開源指令集, 如果需要硬體實現可以有入門級的免費開源晶元設計,也可以有高質量經過流片驗證的硬軟核IP,從而整個行業各取所需。例如大公司出於版權和時間考量沒有自己的指令集,但是有資源設計具體處理器核並做一些定製,因此可以用指令集而用公司資源設計電路。中小公司需要硬軟核,可以根據需求使用簡單開源核或者付費使用一些高級核心。IP公司可以提供RISC-V軟硬核設計而獲利。這樣整個生態環境能能搭建起來。我們目前已經看到了許多大公司在使用RISC-V指令集(包括Nvidia這樣的巨頭),也看到了基於RISC-V做設計或提供IP的初創公司如雨後春筍一般出現。
可以說目前RISC-V生態已經初見雛形,未來發展空間巨大,RISC-V可望被應用在從IoT到高性能計算在內的各種場景中。例如,RISC-V一個重要的應用場景就是IoT中的MCU。隨著IoT終端設備的快速普及,相關的MCU需求量也隨之上升,而且MCU指令位寬也處於轉到32-bit的潮流中。相比於傳統的基於ARM核心的32-bit MCU,基於RISC-V的32-bit MCU無需支付授權費用,因此成本可以做到更適合IoT。另外,隨著邊緣計算的流行,基於RISC-V的MCU可擴展性更好,可以較容易地加入邊緣計算特性,這一點也成為了RISC-V MCU的一大亮點。未來如何在指令集中加入矢量計算、深度學習加速等和邊緣計算相關的新特性並將其標準化將是RISC-V生態社區中的重要事件,甚至會決定未來MCU等相關處理器的格局。
之前RISC-V旗艦企業SiFive獲得5000萬美金風險投資,而在SiFive投資人名單中,剛在美國上市的華米作為領投方赫然在列。這也說明了以華米為代表的IoT類消費電子公司對於RISC-V體系的押註:他們重金投資SiFive,並不僅僅是為了從SiFive那裡獲得MCU晶元或處理器IP,更關鍵的是能獲得RISC-V生態中的話語權,從而對於IoT類消費電子中舉足輕重的MCU市場施加自己的影響,其戰略眼光可謂深遠。而隨著華米等消費電子廠商的入局,RISC-V也將會與終端市場結合更緊密,真正走入各大電子產品中。
除了SiFive之外,RISC-V生態中的整個生態鏈上其他公司的發展也很不錯。如前所述,RISC-V開發生態鏈上分為幾類公司:第一類公司是用RISC-V作為SoC中的控制或處理器模塊,或者說是用RISC-V架構開發IP給自己用;第二類公司是用RISC-V做處理器/MCU晶元,RISC-V是其處理器/MCU晶元的主要部分;第三類公司是做基於RISC-V的IP並授權給其他公司使用。第一類公司中,有Nvidia(使用RISC-V指令集做下一代GPU上的周邊微控制器Falcon),西數(計劃在下一代近存儲計算晶元中使用RISC-V核,並宣布預計每年將出貨10億片以上使用RISC-V的晶元)這樣的巨頭,也有OURS(使用RISC-V和LiDAR集成在一塊SoC上)這樣的後起之秀。
第二類公司中,有Greenwaves這樣採用多核RISC-V做高效率邊緣計算MCU的初創公司,而且預計未來會有更多使用RISC-V MCU的初創公司進入市場,因為在MCU這樣對於成本非常敏感的市場,RISC-V的開源無授權費相對於ARM是一個重要優勢。第三類公司包括Microsemi,CEVA,Andes等公司,它們都已經發布了基於RISC-V的IP。我們預期在2018年,市場上就能看到許多使用RISC-V的晶元產品,而且在接下來的數年內RISC-V將會在一些細分應用(如低成本32-bit MCU)中佔據優勢。
最後必須指出的是,RISC-V對於中國半導體行業來說也是一個巨大的機會。處理器對於中國來說一直是一塊短板,因為處理器需要長期的技術積累,所以雖然這幾年中國半導體可以說是突飛猛進,但是之前在處理器領域的落後卻不是一朝一夕能追上的。所以即使到了今天,中國仍然沒法拿出一款令人滿意的具有完整知識產權的處理器,知識產權仍然主要掌握在Intel,ARM等巨頭手裡。而隨著RISC-V開源處理器的出現,所有人在RISC-V領域都處於同一起跑線上,因此中國公司和科研機構完全有機會利用開源的RISC-V做出具有完整知識產權而且性能處於全球領先地位的處理器,從而令中國半導體行業的版圖能填補上處理器的空白。可喜的是,在RISC-V基金會中,我們看到了華為,中科院計算所等來自中國的公司和機構的身影,我們希望未來中國力量在RISC-V生態中產生舉足輕重的作用!
NVDLA:晶元巨頭構建開源生態的一次嘗試
Nvidia在去年公布了開源項目NVDLA,這個項目是面向終端SoC的深度學習推理(inference)加速IP。近年來,Nvidia在人工智慧領域獲得了巨大的成功,時至今日人工智慧事實上已經成為了Nvidia股價的支撐點。然而,Nvidia的GPU雖然在雲端人工智慧應用中獲得了巨大成功,但是在移動終端卻始終乏力。在移動端最大的手機市場,Nvidia的Tegra系列SoC始終沒法打開局面,只能眼睜睜看著手機人工智慧晶元市場被傳統ARM Mali以及新一代寒武紀NPU等佔領;在手機端之外的無人機、安防攝像頭等應用場景,Nvidia雖然發布了TX系列,但是其高昂的售價以及較高的功耗(10W左右)始終在限制Nvidia在移動端的佔有率。另一方面,移動端人工智慧的市場需求是巨大的,Nvidia不去佔領就會有其他公司去佔領,所以我們看到了許多面向終端人工智慧的晶元初創公司在近幾年紛紛出現。
在這樣一種情況下,Nvidia並沒有和移動端的其他公司硬杠,而是發布了開源NVDLA供大家免費試用,從而把自己的生態蔓延到移動端。Nvidia如果想親自佔領每一個終端晶元市場,就必須增設多條產品線(攝像頭,語音,智能家電…),每款晶元在擁有深度學習加速的同時還要兼容這些晶元的原有功能,另外還要面臨這些市場里的原有晶元公司的競爭, 反而無法集中精力把自己最擅長的深度學習加速做好。Nvidia的思路是既然自己沒有辦法照顧到每個移動端市場,那麼不妨開源IP,讓有需要的SoC廠商自己去按照需求修改。使用IP不用付費,但是歸根到底還是會使用Nvidia生態下的其他工具,例如用CUDA去編寫程序,用TensorRT去優化深度學習模型等等。事實上,Nvidia只求能把生態覆蓋到移動端,至於是否要在移動端收費並不重要——反正你在Nvidia的生態環境中早晚是要付真金白銀給Nvidia的。
而且這麼一來,和很多廠商就能化干戈為玉帛,本來會成為競爭對手的廠商現在反而會和Nvidia結成同盟。ARM就是一個很好的例子,如果Nvidia自己做移動端勢必和ARM是競爭關係,但是現在Nvidia開源了NVDLA,於是就和ARM成了合作關係,NVDLA還進入了ARM的Trillium人工智慧平台,由ARM幫忙站台宣傳。
結語
開源晶元項目是未來晶元設計行業的重要趨勢,因為它從本質上解決了晶元設計周期長,設計無法復用的效率問題。開源項目一旦背後有足夠的支持,就能實現足夠好的品質,從而被廣泛使用並進入正循環。RISC-V和NVDLA是兩個重要的開源晶元項目的例子。RISC-V開源了以指令集為核心的一系列IP,在RISC-V基金會的幫助下成功建立了自己的生態,預期在未來的異構計算和IoT領域都會得到廣泛應用。NVDLA則是Nvidia使用生態打法覆蓋移動端的嘗試,可謂是四兩撥千斤,用一個開源IP就能將眾多移動端SoC廠商納入自己的生態中。我們希望在未來看到更多這樣高質量的開源晶元項目,從而為晶元設計行業帶來新的發展方向。
推薦閱讀:
※Karpathy 更新深度學習開源框架排名:TensorFlow 第一,PyTorch 第二
※有哪些值得推薦的開源 CMS?
※這半個月,我用Python爬蟲做了一個開源搜索引擎
※Top10機器學習開源項目發布,歷時一個月評出 | 附GitHub地址
※收入翻倍的方法,開源的那些事兒(二)