《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 業(yè)界動(dòng)態(tài) > 給RISC-V這個(gè)開(kāi)源架構(gòu)添點(diǎn)兒柴

給RISC-V這個(gè)開(kāi)源架構(gòu)添點(diǎn)兒柴

2018-05-06
關(guān)鍵詞: 開(kāi)源架構(gòu) RISC-V SPARC

微信圖片_20180506120853.jpg

近來(lái)開(kāi)源架構(gòu)這話題著實(shí)挺火,,尤其是RISC-V,,感覺(jué)哪兒都有它。開(kāi)源架構(gòu)早就不是什么新鮮事兒了,,丫RISC-V又是打哪兒冒出來(lái)的,?

同是“開(kāi)源”,有啥不同,?

說(shuō)起開(kāi)源指令集,,Power和SPARC經(jīng)常被人們提起,但Power和SPARC從服務(wù)器和工作站發(fā)展而來(lái),,指令集相對(duì)龐大,。去看看Power的指令手冊(cè)[1],900來(lái)?xiàng)l指令,,用了18頁(yè)才寫(xiě)完,,需要非常有實(shí)力、財(cái)力和積累的廠商才有機(jī)會(huì)實(shí)現(xiàn),。這不明擺著就是打這“開(kāi)源”的旗號(hào)等著你花錢(qián)去買(mǎi)“技術(shù)轉(zhuǎn)移”么,?SPARC[2]雖沒(méi)有Power那么復(fù)雜,但是體量也不小,。而且這么多年似乎只有Sun/Oracle和少數(shù)幾個(gè)廠商在玩,,在去IOE的大背景和Linux等其他開(kāi)源系統(tǒng)和數(shù)據(jù)庫(kù)的強(qiáng)勢(shì)發(fā)展下,,領(lǐng)地似乎越來(lái)越小。上一代SPARCv8標(biāo)準(zhǔn)的開(kāi)源核心LEON的確在軍工航天領(lǐng)域被廣泛使用,,但在消費(fèi)類(lèi)領(lǐng)域卻很少被使用,,這值得深思。

開(kāi)源架構(gòu)每隔幾年就出一新東西,,然后總能帶動(dòng)起一批國(guó)內(nèi)廠商開(kāi)發(fā)自主創(chuàng)新處理器,,但是這次有點(diǎn)不一樣,不一樣在哪兒呢,?就是這次國(guó)內(nèi)的RISC-V參與者們很多都是民營(yíng)私營(yíng)企業(yè),,公司的參與程度也一點(diǎn)兒也不比科研院所差,比如很早就加入基金會(huì)里的樂(lè)鑫,、中天微等,而不像過(guò)去都是國(guó)家和地方政府資助的幾個(gè)獨(dú)苗,。這個(gè)事實(shí)的背后必然是深刻的產(chǎn)業(yè)和市場(chǎng)化的商業(yè)行為,。

那RISC-V到底有啥不同呢?模塊兒化不得不提,,最簡(jiǎn)單的RV32I只有40條指令,,想功能多點(diǎn)就用其他指令模塊,像拼積木一樣,,用啥拿啥,,要啥有啥,沒(méi)啥造啥,。有點(diǎn)能力的大學(xué)生幾個(gè)月就能做一個(gè)[3],,難度下降了,再配合現(xiàn)成的工具鏈啥的,,很多有能力廠商都根據(jù)自己的需求自己做一個(gè),。當(dāng)然這樣并不意味著RISC-V不能做大型處理器,配合其他指令集模塊,,RISC-V可以支持浮點(diǎn),、向量運(yùn)算、加密等諸多功能,。這就是RISC-V最獨(dú)到的地方:能伸能縮,。

有人說(shuō)從一個(gè)指令集出現(xiàn)到得到成熟廣泛的應(yīng)用,要十幾年,。如果說(shuō)是實(shí)現(xiàn)一個(gè)IBM Power或者SPARC或者x86這樣的指令集的CPU的話,,我覺(jué)得你說(shuō)的沒(méi)錯(cuò),沒(méi)點(diǎn)兒積累的確起不來(lái),。但是RISC-V因?yàn)槟K化,,因?yàn)樽銐蚝?jiǎn)單,,因?yàn)殚_(kāi)源軟件的成熟,因?yàn)楹茉缇湍芴峁┩暾纳鷳B(tài),,就真的用短短幾年做出了一些成果,。以SiFive為例,去年發(fā)布的FE310只是個(gè)MCU級(jí)別的芯片,,今年初就已經(jīng)推出了4+1核可以運(yùn)行Linux的SoC,。

碎片化還那么重要么?

很多人就擔(dān)心碎片化這個(gè)問(wèn)題,,在看到了過(guò)去ARM和MIPS在碎片化上的得與失,,認(rèn)為RISC-V的碎片化問(wèn)題會(huì)更加嚴(yán)重。的確,,過(guò)去ARM為了防止碎片化,,嚴(yán)格禁止用戶(hù)修改指令集,這的確一定程度上成就了ARM,。但是RISC-V解決的思路并不是嚴(yán)格限制,,像大禹治水一樣,不是到處壘壩,,靠的是疏導(dǎo),。這個(gè)體現(xiàn)在以下兩個(gè)方面:首先,前面提到的模塊化指令集,,讓廠商在實(shí)現(xiàn)的時(shí)候能夠根據(jù)自己的需求選擇標(biāo)準(zhǔn)指令集組合,,廠商完全沒(méi)有必要為不兼容付出額外的成本。其次,,指令集里預(yù)留好了大量的定制指令空間,,指令長(zhǎng)度從16比特到1024比特理論上都支持,這些空間就是專(zhuān)門(mén)給定制處理器的廠商實(shí)現(xiàn)自己的指令集的,。這樣一來(lái),,基本的軟件都能兼容,遇到定制指令集,,廠家提供預(yù)先設(shè)計(jì)好的函數(shù)庫(kù)就能在很好地保證效率的同時(shí)不失兼容性,。可以說(shuō)過(guò)去ARM/Intel啥都不讓你做,,如今有了RISC-V,,妹妹你放心大膽的往前走。

換個(gè)角度說(shuō),,過(guò)去在PC時(shí)代,,我們真心得擔(dān)心碎片化帶來(lái)的諸多不利影響。如今,,在IoT即將迎來(lái)爆發(fā)的時(shí)代,,我們需要的是多種多樣的定制化處理器和芯片,,來(lái)完成數(shù)據(jù)采集、低功耗,、無(wú)線通信等諸多不同的工作任務(wù),。需求越差異化,開(kāi)源工具越流行,,上層軟件越平臺(tái)無(wú)關(guān),,指令集碎片化所帶來(lái)的影響就越小。樂(lè)鑫并沒(méi)有使用ARM指令集標(biāo)準(zhǔn)的CPU,,就能做出今天的成績(jī)足以證明碎片化帶來(lái)的影響早已經(jīng)不是主要矛盾,。這個(gè)趨勢(shì)是很明顯的,時(shí)代不同了,。

指令集設(shè)計(jì)真不是你想的那么簡(jiǎn)單

這時(shí)候你又說(shuō)了,,RISC-V架構(gòu)簡(jiǎn)單,面積小功耗低,,MIPS不也一樣么,?其實(shí)啊,在CPU設(shè)計(jì)里,,指令集看似是最簡(jiǎn)單的,,但其實(shí)想把簡(jiǎn)單的事情做好才是最難的,。一方面,,RISC-V生的晚,得算10后,,這就能讓它吸取很多前輩失敗的經(jīng)驗(yàn)教訓(xùn),,比如寄存器窗口啊、超長(zhǎng)指令字啥的,,很多坑都前人都踩過(guò)一遍了,。還有,別看指令集就是那些個(gè)寄存器數(shù)量,、分支跳轉(zhuǎn)啊,、Load/Store之類(lèi)的,可要想設(shè)計(jì)一個(gè)又高效,,代碼密度又高的指令集可不是那么容易,。但目前為止,RISC-V這個(gè)“學(xué)院派”們做出來(lái)的指令集,,表現(xiàn)還是很不錯(cuò)的,。就以很重要的指令密度這個(gè)指標(biāo)來(lái)講做的和x86_64和ARMv8不相上下[4]。指令集能夠保持高水準(zhǔn),,后面廠商的技術(shù)能力就不會(huì)受到限制,,要知道,,自身能力才是關(guān)鍵。

關(guān)于RISC-V的設(shè)計(jì)水平到底怎樣,,David Ditzel應(yīng)該最有話語(yǔ)權(quán),,他曾是早期的SPARC架構(gòu)師,后創(chuàng)過(guò)一公司,,叫全美達(dá),。當(dāng)年把Linus和鮑爾默拉一塊兒用RISC架構(gòu)搞了個(gè)X86 CPU,一度讓Intel差點(diǎn)跌落神壇,。這哥們兒前幾年評(píng)估了RISC-V,,越玩兒越覺(jué)得這東西不簡(jiǎn)單,最后的評(píng)測(cè)的結(jié)果是,,和ARM/MIPS/SPARC相比,,毫不遜色[5]。之后他就果斷創(chuàng)業(yè)開(kāi)搞高性能RISC-V處理器了,。

錢(qián)的事兒不能不提

說(shuō)完技術(shù),,就得聊聊錢(qián)的事兒了。盡管這些個(gè)年Arm為了走量的確降低了門(mén)檻,,但其實(shí)費(fèi)用也不低,,Cortex-M0和Cortex-M3盡管可以用幾萬(wàn)美元就拿到授權(quán),可是反過(guò)來(lái)卻要收高昂的版稅,,而且還要按照芯片成品價(jià)抽,,用M0和M3的芯片多為低成本芯片,這版稅直接影響利潤(rùn)啊,。過(guò)去,,這錢(qián)你不交也沒(méi)辦法,因?yàn)槟阋怯靡恍﹤€(gè)小眾的CPU,,生態(tài)是個(gè)大問(wèn)題,,ARM背后的整個(gè)生態(tài)是個(gè)重要的背書(shū)。但RISC-V看著很快就要改變這個(gè)局面,,各大第三方廠商都開(kāi)始紛紛支持RISC-V,,從商業(yè)指令仿真器到高級(jí)調(diào)試跟蹤工具應(yīng)有盡有。蘋(píng)果,、高通,、三星這些廠商很早就買(mǎi)了ARM架構(gòu)授權(quán),但是你會(huì)發(fā)現(xiàn)高通和三星很早就加入RISC-V基金會(huì),,這些有自研CPU能力的大廠不出5年,,我相信就能夠隨著生態(tài)系統(tǒng)的全面完善而開(kāi)始推出自己的RISC-V處理器。

很多人覺(jué)得就算架構(gòu)免費(fèi),,但是基于這個(gè)架構(gòu)的CPU實(shí)現(xiàn)總是要收錢(qián)的吧,。這話一點(diǎn)兒沒(méi)錯(cuò),,CPU IP廠商針對(duì)不同的領(lǐng)域開(kāi)發(fā)CPU然后賣(mài)給有意向的客戶(hù),然后收取相應(yīng)費(fèi)用,。但這是不是說(shuō)就和Arm這些廠商沒(méi)有區(qū)別呢,?其實(shí)不完全是,以SiFive為例,,目前的授權(quán)費(fèi)用是30-50萬(wàn)美元,,能得到一個(gè)類(lèi)似M4-M7的核心,但是和ARM的不同的是,,只要License Fee,,不收版稅。但其實(shí),,SiFive CPU Core的基礎(chǔ)Rocket是完全開(kāi)源的,,盡管和商業(yè)版本有少量區(qū)別,但是對(duì)于有一定技術(shù)能力的公司,,基于這個(gè)核心定制出自己的核完全沒(méi)有問(wèn)題,。

一個(gè)可喜的狀況是,目前市面上已經(jīng)有大量開(kāi)源的CPU可供選擇,,而且大部分都以非常寬松和商業(yè)友好的許可證發(fā)布[6],。

二次元的入口在哪?

不論是Intel還是Arm,,他們的成功絕不是僅僅因?yàn)榧夹g(shù),。Intel不只是有傲視群雄的Fab和研發(fā)團(tuán)隊(duì),沒(méi)有Wintel聯(lián)盟這些商業(yè)決策它一樣可能完蛋,。Arm做了幾十年的低功耗處理器,,可沒(méi)有創(chuàng)造性的IP核授權(quán)商業(yè)模式,,也一樣會(huì)被打敗,。如果說(shuō)未來(lái)會(huì)出現(xiàn)下一個(gè)在這個(gè)領(lǐng)域成功的巨頭,那么它絕不是照搬Intel和ARM的商業(yè)模式,,一定是因?yàn)樗虡I(yè)模式和技術(shù)進(jìn)步上都取得了顯著的優(yōu)勢(shì)才能成功,。

記住,你并不需要“取代”Intel或者ARM,,一旦你找到了二次元的入口,,那么在這個(gè)新的次元里,根本就沒(méi)有x86和ARM這兩個(gè)對(duì)象,。

過(guò)去沒(méi)有的”選擇”

多年來(lái)的經(jīng)驗(yàn)和事實(shí)以及研究結(jié)果告訴我們,,指令集架構(gòu)和性能的關(guān)系并不大,Intel那么多年前的x86指令集今年依然能夠做到業(yè)界領(lǐng)先就充分證明了這一點(diǎn),。指令集,,是軟件和硬件的接口,,在兼容性層面來(lái)說(shuō)是重要的一環(huán);但是從性能來(lái)講,,越是復(fù)雜和高性能的處理器,,指令集優(yōu)劣所帶來(lái)的影響就越小。如果能夠認(rèn)識(shí)到這一點(diǎn),,我們就能夠明白R(shí)ISC-V并沒(méi)有也不需要比x86或者ARM有太多技術(shù)上的創(chuàng)新,,只要給廣大廠商提供了一種選擇就夠了。什么選擇呢,,一個(gè)集大成者的指令集,,能夠充分的吸取過(guò)去30-40年的技術(shù)進(jìn)步,并且開(kāi)放,、沒(méi)有壁壘,、成本趨于0的指令集。RISC是上世紀(jì)80年的提出的,,相關(guān)研究已經(jīng)無(wú)比成熟,。站在如今這個(gè)摩爾定律幾近終結(jié)的點(diǎn)上,我們需要花費(fèi)更多的精力在DSA架構(gòu)和敏捷硬件開(kāi)發(fā)上,,RISC-V在其中扮演的是助攻的角色,。

去翻翻托馬斯·弗里德曼的《世界是平的》這本書(shū)吧,“相信開(kāi)放,,別以為壁壘有多少幫助”,,ARM、x86,、RISC-V仍然會(huì)長(zhǎng)期共存,,但高墻會(huì)被抹平。

迅速成熟的生態(tài)系統(tǒng)

指令集架構(gòu)并不昂貴,,昂貴的是打通上下的生態(tài)系統(tǒng),。OpenRISC面世以來(lái),因?yàn)樯鷳B(tài)系統(tǒng)上沒(méi)有高質(zhì)量的持續(xù)的投入,,所以10多年來(lái)都沒(méi)有進(jìn)入各大工具鏈的主線,。RISC-V看似和OpenRISC很像,但從2014年發(fā)布這短短的4年里,,已經(jīng)相繼被Linux/gcc/glibc/binutils/gdb/qemu等并入官方主線,。RISC-V能夠用僅僅幾年做到OpenRISC十幾年沒(méi)做到的,沒(méi)有基金會(huì)里各個(gè)大廠商齊心協(xié)力和腳踏實(shí)地的推動(dòng)是不可能做到的,??梢哉f(shuō)這些大小廠商組成的聯(lián)合團(tuán)隊(duì)各自發(fā)揮所長(zhǎng),完成了過(guò)去IBM和Sun在生態(tài)系統(tǒng)上做到的所有工作,否則生態(tài)環(huán)境不會(huì)這么快成熟起來(lái),。

有了生態(tài)系統(tǒng)的飛速進(jìn)展,,眾多廠商都能夠從中得到好處;活躍的社區(qū)和眾多開(kāi)源核心,,又極大的降低了廠商們的開(kāi)發(fā)門(mén)檻,;廠商的積極參與又能夠繼續(xù)推動(dòng)生態(tài)系統(tǒng)的發(fā)展,最終形成正反饋,。面對(duì)一個(gè)門(mén)檻相對(duì)較低的“活著”的指令集,,配合迅速成熟中的生態(tài)環(huán)境,對(duì)于很多國(guó)內(nèi)企業(yè)來(lái)說(shuō)只要你有需求就有理由參與其中,。

RISC-V的正確打開(kāi)方式

在大眾當(dāng)中一個(gè)非常普遍的誤區(qū)和思維定勢(shì)是,,設(shè)計(jì)或者生產(chǎn)CPU/MCU芯片應(yīng)該是一個(gè)公司的主營(yíng)業(yè)務(wù),或者說(shuō)一家用RISC-V的公司一定得是賣(mài)CPU/MCU的,??梢哉f(shuō),市場(chǎng)上的確需要設(shè)計(jì)生產(chǎn)用于PC的,、手機(jī)的以及嵌入式領(lǐng)域應(yīng)用的MCU,,而這也的確是RISC-V的打開(kāi)方式之一。但是,,這只RISC-V是冰山一角,,我們能看到很多企業(yè),在自身的領(lǐng)域里,,通過(guò)在自己的產(chǎn)品或者解決方案中嵌入一個(gè)RISC-V CPU來(lái)降低成本,、提高靈活性,最終提高自身的競(jìng)爭(zhēng)力,。比如NVidia將自己原來(lái)自研的處理器,,換成了兼容RISC-V的處理器,很快就要進(jìn)入到下一代顯卡中作為內(nèi)部控制核心,;CEVA為自己的DSP通信解決方案設(shè)計(jì)了一個(gè)用于低功耗的控制處理器,;Rambus前不久剛發(fā)布的解決方案里用一顆RISC-V CPU實(shí)現(xiàn)一個(gè)孤立的系統(tǒng)以保護(hù)系統(tǒng)安全。

前面的幾個(gè)例子闡明了RISC-V的另一種重要的打開(kāi)方式,,那就是幫助各個(gè)領(lǐng)域的企業(yè)來(lái)降低成本,、提高靈活性,,從而提高企業(yè)自身的競(jìng)爭(zhēng)力,,這才是商業(yè)的本質(zhì)。所以,,如果說(shuō)“問(wèn)正確的問(wèn)題”是成功的先決條件的話,。那么請(qǐng)問(wèn)問(wèn)你自己:”作為一家企業(yè),你自身的優(yōu)勢(shì)是什么?RISC-V是否有機(jī)會(huì)能夠幫助你提高競(jìng)爭(zhēng)力呢,?”

新時(shí)代,,要有新思路!


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。