近來開源架構(gòu)這話題著實挺火,,尤其是RISC-V,,感覺哪兒都有它。開源架構(gòu)早就不是什么新鮮事兒了,,丫RISC-V又是打哪兒冒出來的,? 同是“開源”,有啥不同,?說起開源指令集,,Power和SPARC經(jīng)常被人們提起,但Power和SPARC從服務(wù)器和工作站發(fā)展而來,,指令集相對龐大,。去看看Power的指令手冊[1],900來條指令,,用了18頁才寫完,,需要非常有實力、財力和積累的廠商才有機會實現(xiàn),。這不明擺著就是打這“開源”的旗號等著你花錢去買“技術(shù)轉(zhuǎn)移”么,?SPARC[2]雖沒有Power那么復(fù)雜,但是體量也不小,。而且這么多年似乎只有Sun/Oracle和少數(shù)幾個廠商在玩,,在去IOE的大背景和Linux等其他開源系統(tǒng)和數(shù)據(jù)庫的強勢發(fā)展下,,領(lǐng)地似乎越來越小。上一代SPARCv8標(biāo)準(zhǔn)的開源核心LEON的確在軍工航天領(lǐng)域被廣泛使用,,但在消費類領(lǐng)域卻很少被使用,,這值得深思,。 開源架構(gòu)每隔幾年就出一新東西,,然后總能帶動起一批國內(nèi)廠商開發(fā)自主創(chuàng)新處理器,但是這次有點不一樣,,不一樣在哪兒呢,?就是這次國內(nèi)的RISC-V參與者們很多都是民營私營企業(yè),,公司的參與程度也一點兒也不比科研院所差,比如很早就加入基金會里的樂鑫,、中天微等,,而不像過去都是國家和地方政府資助的幾個獨苗。這個事實的背后必然是深刻的產(chǎn)業(yè)和市場化的商業(yè)行為,。 那RISC-V到底有啥不同呢,?模塊兒化不得不提,最簡單的RV32I只有40條指令,,想功能多點就用其他指令模塊,,像拼積木一樣,用啥拿啥,,要啥有啥,,沒啥造啥。有點能力的大學(xué)生幾個月就能做一個[3],,難度下降了,,再配合現(xiàn)成的工具鏈啥的,很多有能力廠商都根據(jù)自己的需求自己做一個,。當(dāng)然這樣并不意味著RISC-V不能做大型處理器,,配合其他指令集模塊,RISC-V可以支持浮點,、向量運算,、加密等諸多功能。這就是RISC-V最獨到的地方:能伸能縮,。 有人說從一個指令集出現(xiàn)到得到成熟廣泛的應(yīng)用,,要十幾年。如果說是實現(xiàn)一個IBM Power或者SPARC或者x86這樣的指令集的CPU的話,,我覺得你說的沒錯,沒點兒積累的確起不來,。但是RISC-V因為模塊化,,因為足夠簡單,,因為開源軟件的成熟,因為很早就能提供完整的生態(tài),,就真的用短短幾年做出了一些成果,。以SiFive為例,去年發(fā)布的FE310只是個MCU級別的芯片,,今年初就已經(jīng)推出了4+1核可以運行Linux的SoC,。 碎片化還那么重要么?很多人就擔(dān)心碎片化這個問題,,在看到了過去ARM和MIPS在碎片化上的得與失,,認(rèn)為RISC-V的碎片化問題會更加嚴(yán)重。的確,,過去ARM為了防止碎片化,,嚴(yán)格禁止用戶修改指令集,這的確一定程度上成就了ARM,。但是RISC-V解決的思路并不是嚴(yán)格限制,,像大禹治水一樣,不是到處壘壩,,靠的是疏導(dǎo),。這個體現(xiàn)在以下兩個方面:首先,前面提到的模塊化指令集,,讓廠商在實現(xiàn)的時候能夠根據(jù)自己的需求選擇標(biāo)準(zhǔn)指令集組合,,廠商完全沒有必要為不兼容付出額外的成本。其次,,指令集里預(yù)留好了大量的定制指令空間,,指令長度從16比特到1024比特理論上都支持,這些空間就是專門給定制處理器的廠商實現(xiàn)自己的指令集的,。這樣一來,,基本的軟件都能兼容,遇到定制指令集,,廠家提供預(yù)先設(shè)計好的函數(shù)庫就能在很好地保證效率的同時不失兼容性,。可以說過去ARM/Intel啥都不讓你做,,如今有了RISC-V,,妹妹你放心大膽的往前走。 換個角度說,,過去在PC時代,,我們真心得擔(dān)心碎片化帶來的諸多不利影響。如今,在IoT即將迎來爆發(fā)的時代,,我們需要的是多種多樣的定制化處理器和芯片,,來完成數(shù)據(jù)采集、低功耗,、無線通信等諸多不同的工作任務(wù),。需求越差異化,開源工具越流行,,上層軟件越平臺無關(guān),,指令集碎片化所帶來的影響就越小。樂鑫并沒有使用ARM指令集標(biāo)準(zhǔn)的CPU,,就能做出今天的成績足以證明碎片化帶來的影響早已經(jīng)不是主要矛盾,。這個趨勢是很明顯的,時代不同了,。 指令集設(shè)計真不是你想的那么簡單這時候你又說了,,RISC-V架構(gòu)簡單,面積小功耗低,,MIPS不也一樣么,?其實啊,在CPU設(shè)計里,,指令集看似是最簡單的,,但其實想把簡單的事情做好才是最難的。一方面,,RISC-V生的晚,,得算10后,這就能讓它吸取很多前輩失敗的經(jīng)驗教訓(xùn),,比如寄存機窗口啊,、超長指令字啥的,很多坑都前人都踩過一遍了,。還有,,別看指令集就是那些個寄存器數(shù)量、分支跳轉(zhuǎn)啊,、Load/Store之類的,,可要想設(shè)計一個又高效,代碼密度又高的指令集可不是那么容易,。但目前為止,,RISC-V這個“學(xué)院派”們做出來的指令集,表現(xiàn)還是很不錯的,。就以很重要的指令密度這個指標(biāo)來講做的和x86_64和ARMv8不相上下[4],。指令集能夠保持高水準(zhǔn),,后面廠商的技術(shù)能力就不會受到限制,要知道,,自身能力才是關(guān)鍵,。 關(guān)于RISC-V的設(shè)計水平到底怎樣,David Ditzel應(yīng)該最有話語權(quán),,他曾是早期的SPARC架構(gòu)師,后創(chuàng)過一公司,,叫全美達(dá),。當(dāng)年把Linus和鮑爾默拉一塊兒用RISC架構(gòu)搞了個X86 CPU,一度讓Intel差點跌落神壇,。這哥們兒前幾年評估了RISC-V,,越玩兒越覺得這東西不簡單,最后的評測的結(jié)果是,,和ARM/MIPS/SPARC相比,,毫不遜色[5]。之后他就果斷創(chuàng)業(yè)開搞高性能RISC-V處理器了,。 錢的事兒不能不提說完技術(shù),,就得聊聊錢的事兒了。盡管這些個年Arm為了走量的確降低了門檻,,但其實費用也不低,,Cortex-M0和Cortex-M3盡管可以用幾萬美元就拿到授權(quán),可是反過來卻要收高昂的版稅,,而且還要按照芯片成品價抽,,用M0和M3的芯片多為低成本芯片,這版稅直接影響利潤啊,。過去,,這錢你不交也沒辦法,因為你要是用一些個小眾的CPU,,生態(tài)是個大問題,,ARM背后的整個生態(tài)是個重要的背書。但RISC-V看著很快就要改變這個局面,,各大第三方廠商都開始紛紛支持RISC-V,,從商業(yè)指令仿真器到高級調(diào)試跟蹤工具應(yīng)有盡有。蘋果,、高通,、三星這些廠商很早就買了ARM架構(gòu)授權(quán),但是你會發(fā)現(xiàn)高通和三星很早就加入RISC-V基金會,,這些有自研CPU能力的大廠不出5年,,我相信就能夠隨著生態(tài)系統(tǒng)的全面完善而開始推出自己的RISC-V處理器。 很多人覺得就算架構(gòu)免費,但是基于這個架構(gòu)的CPU實現(xiàn)總是要收錢的吧,。這話一點兒沒錯,,CPU IP廠商針對不同的領(lǐng)域開發(fā)CPU然后賣給有意向的客戶,然后收取相應(yīng)費用,。但這是不是說就和Arm這些廠商沒有區(qū)別呢,?其實不完全是,以SiFive為例,,目前的授權(quán)費用是30-50萬美元,,能得到一個類似M4-M7的核心,但是和ARM的不同的是,,只要License Fee,,不收版稅。但其實,,SiFive CPU Core的基礎(chǔ)Rocket是完全開源的,,盡管和商業(yè)版本有少量區(qū)別,但是對于有一定技術(shù)能力的公司,,基于這個核心定制出自己的核完全沒有問題,。 一個可喜的狀況是,目前市面上已經(jīng)有大量開源的CPU可供選擇,,而且大部分都以非常寬松和商業(yè)友好的許可證發(fā)布[6],。 尋找二次元的入口不論是Intel還是Arm,他們的成功絕不是僅僅因為技術(shù),。Intel不只是有傲視群雄的Fab和研發(fā)團(tuán)隊,,沒有Wintel聯(lián)盟這些商業(yè)決策它一樣可能完蛋。Arm做了幾十年的低功耗處理器,,可沒有創(chuàng)造性的IP核授權(quán)商業(yè)模式,,也一樣會被打敗。如果說未來會出現(xiàn)下一個在這個領(lǐng)域成功的巨頭,,那么它絕不是照搬Intel和ARM的商業(yè)模式,,一定是因為它商業(yè)模式和技術(shù)進(jìn)步上都取得了顯著的優(yōu)勢才能成功。 記住,,你并不需要“取代”Intel或者ARM,,一旦你找到了二次元的入口,那么在這個新的次元里,,根本就沒有x86和ARM這兩個對象,。 過去沒有的”選擇”多年來的經(jīng)驗和事實以及研究結(jié)果告訴我們,指令集架構(gòu)和性能的關(guān)系并不大,,Intel那么多年前的x86指令集今年依然能夠做到業(yè)界領(lǐng)先就充分證明了這一點,。指令集,,是軟件和硬件的接口,在兼容性層面來說是重要的一環(huán),;但是從性能來講,,越是復(fù)雜和高性能的處理器,指令集優(yōu)劣所帶來的影響就越小,。如果能夠認(rèn)識到這一點,,我們就能夠明白RISC-V并沒有也不需要比x86或者ARM有太多技術(shù)上的創(chuàng)新,只要給廣大廠商提供了一種選擇就夠了,。什么選擇呢,,一個集大成者的指令集,能夠充分的吸取過去30-40年的技術(shù)進(jìn)步,,并且開放、沒有壁壘,、成本趨于0的指令集,。RISC是上世紀(jì)80年的提出的,相關(guān)研究已經(jīng)無比成熟,。站在如今這個摩爾定律幾近終結(jié)的點上,,我們需要花費更多的精力在DSA架構(gòu)和敏捷硬件開發(fā)上,RISC-V在其中扮演的是助攻的角色,。 去翻翻托馬斯·弗里德曼的《世界是平的》這本書吧,,“相信開放,別以為壁壘有多少幫助”,,ARM,、x86、RISC-V仍然會長期共存,,但高墻會被抹平,。 迅速成熟的生態(tài)系統(tǒng)指令集架構(gòu)并不昂貴,昂貴的是打通上下的生態(tài)系統(tǒng),。OpenRISC面試以來,,因為生態(tài)系統(tǒng)上沒有高質(zhì)量的持續(xù)的投入,所以10多年來都沒有進(jìn)入各大工具鏈的主線,。RISC-V看似和OpenRISC很像,,但從2014年發(fā)布這短短的4年里,已經(jīng)相繼被Linux/gcc/glibc/binutils/gdb/qemu等并入官方主線,。RISC-V能夠用僅僅幾年做到OpenRISC十幾年沒做到的,,沒有基金會里各個大廠商齊心協(xié)力和腳踏實地的推動是不可能做到的??梢哉f這些大小廠商組成的聯(lián)合團(tuán)隊各自發(fā)揮所長,,完成了過去IBM和Sun在生態(tài)系統(tǒng)上做到的所有工作,,否則生態(tài)環(huán)境不會這么快成熟起來。 有了生態(tài)系統(tǒng)的飛速進(jìn)展,,眾多廠商都能夠從中得到好處,;活躍的社區(qū)和眾多開源核心,又極大的降低了廠商們的開發(fā)門檻,;廠商的積極參與又能夠繼續(xù)推動生態(tài)系統(tǒng)的發(fā)展,,最終形成正反饋。面對一個門檻相對較低的“活著”的指令集,,配合迅速成熟中的生態(tài)環(huán)境,,對于很多國內(nèi)企業(yè)來說只要你有需求就有理由參與其中。 RISC-V的正確打開方式在大眾當(dāng)中一個非常普遍的誤區(qū)和思維定勢是,,設(shè)計或者生產(chǎn)CPU/MCU芯片應(yīng)該是一個公司的主營業(yè)務(wù),,或者說一家用RISC-V的公司一定得是賣CPU/MCU的。 可以說,,市場上的確需要設(shè)計生產(chǎn)用于PC的,、手機的以及嵌入式領(lǐng)域應(yīng)用的MCU,而這也的確是RISC-V的打開方式之一,。但是,,這只RISC-V是冰山一角,我們能看到很多企業(yè),,在自身的領(lǐng)域里,,通過在自己的產(chǎn)品或者解決方案中嵌入一個RISC-V CPU來降低成本、提高靈活性,,最終提高自身的競爭力,。比如NVidia將自己原來自研的處理器,換成了兼容RISC-V的處理器,,很快就要進(jìn)入到下一代顯卡中作為內(nèi)部控制核心,;CEVA為自己的DSP通信解決方案設(shè)計了一個用于低功耗的控制處理器;Rambus前不久剛發(fā)布的解決方案里用一顆RISC-V CPU實現(xiàn)一個孤立的系統(tǒng)以保護(hù)系統(tǒng)安全,。 前面的幾個例子闡明了RISC-V的另一種重要的打開方式,,那就是幫助各個領(lǐng)域的企業(yè)來降低成本、提高靈活性,,從而提高企業(yè)自身的競爭力,,這才是商業(yè)的本質(zhì)。所以,,如果說“問正確的問題”是成功的先決條件的話,。那么請問問你自己:”作為一家企業(yè),你自身的優(yōu)勢是什么,?RISC-V是否有機會能夠幫助你提高競爭力呢,?” 新時代,,要有新思路! 以上幾點拙見,! |
|