關(guān)于RISC-V和開源處理器誤區(qū)解讀


近日,網(wǎng)絡(luò)上出現(xiàn)對RISC-V與開源處理器存在誤讀的文章,讓一些讀者產(chǎn)生困惑。本文將對處理器的指令集、微架構(gòu)實(shí)現(xiàn)與開源模式等概念以及和RISC-V的聯(lián)系等進(jìn)行解讀,希望能幫助廣大讀者更好地理解RISC-V與開源處理器。以下為幾個(gè)要點(diǎn):
指令集規(guī)范(Specification)和處理器實(shí)現(xiàn)(Implementation)是兩個(gè)不同層次的概念,要區(qū)分開。指令集(ISA)是規(guī)范標(biāo)準(zhǔn),往往用一本書或幾張紙來記錄描述,而處理器實(shí)現(xiàn)是基于指令集規(guī)范完成的源代碼。RISC-V是一個(gè)指令集規(guī)范。 我們可以基于x86/ARM/ RISC-V指令集,進(jìn)行處理器微架構(gòu)設(shè)計(jì)和實(shí)現(xiàn)形成源代碼,并通過流片最終形成芯片產(chǎn)品。其中指令集規(guī)范與處理器實(shí)現(xiàn)的知識產(chǎn)權(quán)是獨(dú)立的,不能混為一談。(詳見第二、三節(jié)) “RISC-V是開源的”表示指令集規(guī)范是開源、開放和免費(fèi)的(open and free),這與x86與ARM指令集有本質(zhì)不同,但并不是指具體的處理器實(shí)現(xiàn)也都是開源免費(fèi)的。 基于RISC-V指令集規(guī)范,既可以由開源社區(qū)來開發(fā)開源免費(fèi)版的處理器實(shí)現(xiàn)(如Berkeley開發(fā)的Rocket核等),也可以有商業(yè)公司開發(fā)收費(fèi)授權(quán)版的處理器實(shí)現(xiàn)(如國內(nèi)平頭哥玄鐵910、芯來N200核與優(yōu)矽渭河WH-32核等)。(詳見第三節(jié))
關(guān)于RISC-V和開源處理器架構(gòu),請參考開放指令集與開源芯片發(fā)展報(bào)告(RISC-V和MPIS)
來源:關(guān)于RISC-V和開源處理器的解讀
一、關(guān)于近期一篇網(wǎng)絡(luò)文章的分析
近日,網(wǎng)絡(luò)上出現(xiàn)一篇文章《RISC-V董事長攤牌了,RISC-V不是開源處理器》,對RISC-V與開源處理器存在一些誤讀,讓一些讀者產(chǎn)生困惑。以下針對該文中提到的一些觀點(diǎn)進(jìn)行解讀:
疑問1:文中提到“RISC-V基金會主席Krste Asanovic澄清了‘RISC-V不是開源的’”,是否屬實(shí)?
Krste Asanovic 在文章中闡述的是:a)RISC-V是指令集,不是處理器;b)RISC-V不止可以用來做開源處理器,也可以做商用處理器。
而 “RISC-V是開源的”這一點(diǎn)從始至終沒有改變。一般人對于“開源”的理解,就是公開可獲得并且可以免費(fèi)使用的代碼或資料。從這個(gè)角度來講,RISC-V作為一套指令集規(guī)范,雖然沒有源代碼,但它本身確實(shí)是開放并且免費(fèi)的(open and free),這無論對于開源的RISC-V處理器,還是商用的RISC-V處理器都是一樣。所以”RISC-V是開源的”這個(gè)結(jié)論是沒有疑問的。
此外,RISC-V不僅本身開源,其與整個(gè)開源芯片生態(tài)的關(guān)系也非常 緊密。雖不能說所有基于RISC-V的項(xiàng)目都是開源的(其中一部分是做商用處理器和軟件的),但至少都是深度參與和使用開源(處理器芯片或軟件)的,甚至可以說RISC-V在特定場景下可以代表整個(gè)開源芯片生態(tài)。
疑問2:基于RISC-V設(shè)計(jì)的處理器,是否以后需要付費(fèi)使用呢?
作為一個(gè)開放自由免費(fèi)的指令集,RISC-V支持多種模式的微結(jié)構(gòu)設(shè)計(jì)(詳見本文第三節(jié))。人們既可以基于RISC-V做開源處理器設(shè)計(jì),也可以做成商用的處理器(不開源出來,自己賣或者用)。正是RISC-V開放自由的特性,成就了芯片產(chǎn)業(yè)的百家爭鳴。RISC-V基金會只負(fù)責(zé)RISC-V指令集規(guī)范,既不做微架構(gòu)設(shè)計(jì),也不生產(chǎn)芯片。設(shè)計(jì)和生產(chǎn)什么樣的芯片是其它企業(yè)來做的,跟基金會沒有關(guān)系,開不開源,收不收錢,也跟基金會沒關(guān)系。
Krste Asanovic 只是想告訴大家,RISC-V不止可以做開源處理器,也可以做商業(yè)處理器,并非所有的RISC-V處理器都是開源免費(fèi)的(注:這里的開源和商業(yè)只是從是否開放和收費(fèi)上來說的,兩者性能是可以做到等同的)。
疑問3:RISC-V源于美國,是否有被管制的風(fēng)險(xiǎn)?
RISC-V指令集是一套開放開源、自由免費(fèi)的接口規(guī)范,并不會受美國管制的影響。但是,基于RISC-V開發(fā)的處理器是以商品形式存在的,故而美國企業(yè)研制的RISC-V處理器會受到美國出口管制。而美國以外的企業(yè)(包括歐洲、中國等)自主研制的RISC-V處理器,則不算是美國商品,故不受美國出口管制條例限制。舉例如平頭哥自研的RISC-V處理器玄鐵910,便不受美國的出口管制影響。
此外,歷史上TCP/IP協(xié)議與如今的RISC-V頗為相似。TCP/IP協(xié)議受美國國防部高級研究計(jì)劃局(DARPA,Defense Advanced Research Projects Agency)資助研發(fā),是開放標(biāo)準(zhǔn)的典范。世界各地基于該協(xié)議構(gòu)建起今天連接幾十億人的Internet,而中國基于TCP/IP協(xié)議構(gòu)建網(wǎng)絡(luò),這并沒有受到美國的出口管制;中國企業(yè)基于TCP/IP研制的交換機(jī)與路由器,也并不受到美國的出口管制。
最后,2019年11月RISC-V基金會宣布將會把總部搬到瑞士,也正是在釋放信息,向全世界傳達(dá)RISC-V堅(jiān)持開放自由、堅(jiān)持為全世界服務(wù)的理念。
二、什么是指令集,指令集有什么作用?
指令集(ISA):指令集是軟件和硬件之間的接口,是一套標(biāo)準(zhǔn)規(guī)范(以文檔的形式發(fā)布),并不具備實(shí)體,我們可以根據(jù)這套規(guī)范去設(shè)計(jì)處理器芯片和對應(yīng)的軟件系統(tǒng),并最終形成產(chǎn)品。常見指令集如x86(常見于桌面和服務(wù)器)、ARM(常見于移動嵌入式、手機(jī)平板等)、RISC-V(異軍突起的開放指令集)等。

軟件和硬件的關(guān)系恰如螺母和螺釘。把軟件看做是螺母,硬件看做螺釘,那么指令集(ISA)就是螺母和螺釘之間對接的尺寸規(guī)范。螺母和螺釘都按照相同的尺寸(也就是同一個(gè)規(guī)范)去設(shè)計(jì),即使是由不同的廠商來生產(chǎn),也可以保證最終所有的螺母都能擰到螺釘上。
如圖1所示,指令集向上承載的是整個(gè)軟件生態(tài),向下則規(guī)范了以處理器芯片為代表的整個(gè)硬件生態(tài)。根據(jù)一份指令集規(guī)范,設(shè)計(jì)一款處理器,其上可以運(yùn)行同樣遵循該指令集規(guī)范所編寫的軟件代碼。故而,我們在提到指令集的時(shí)候,有時(shí)候也指的是其背后的整個(gè)軟硬件生態(tài)系統(tǒng),包括外圍芯片、操作系統(tǒng)、編譯器和諸多應(yīng)用軟件(瀏覽器、游戲軟件等)。事實(shí)證明,每一種芯片在市場競爭中要取得成功,很大程度上取決于其生態(tài)系統(tǒng)。
三、RISC-V和開源處理器之間是什么關(guān)系?
首先,一個(gè)處理器芯片包含了三個(gè)層次:指令集(ISA)、微結(jié)構(gòu)設(shè)計(jì)、產(chǎn)品。
指令集(ISA),是規(guī)范標(biāo)準(zhǔn)(Specification),常用一本書或幾張紙來記錄描述; 微結(jié)構(gòu)設(shè)計(jì),也常被稱為處理器實(shí)現(xiàn)(Implementation),是對具體實(shí)現(xiàn),對應(yīng)的是一種設(shè)計(jì)方法及其源代碼; 產(chǎn)品,是微架構(gòu)設(shè)計(jì)的實(shí)例化,比如華為基于ARM指令集和Cotex-A76微架構(gòu),設(shè)計(jì)了麒麟990這款芯片。

嚴(yán)格意義上來講,“開源”,是“開放源代碼”的縮寫,而指令集只是幾張紙,是沒有源代碼的。我們通常提到的開源處理器,是指的微架構(gòu)設(shè)計(jì)的代碼開源。
如圖2,進(jìn)一步將指令集標(biāo)準(zhǔn)與架構(gòu)設(shè)計(jì)都分為三類:開放免費(fèi)(Open & Free)、可授權(quán)(Licensiable)、封閉(Closed)。于是,我們可以看到,Intel就屬于封閉指令集+封閉設(shè)計(jì),ARM屬于可授權(quán)指令集+可授權(quán)設(shè)計(jì),但要獲得授權(quán)價(jià)格不菲,往往需要上百萬甚至數(shù)千萬美元 [5]。
RISC-V為全世界提供了開放免費(fèi)指令集+開放免費(fèi)設(shè)計(jì)的選擇。根據(jù)圖2的第一行,我們可以知道只有先有了開源開放的指令集,才有可能有開源開放的微架構(gòu)設(shè)計(jì),即綠色格子。需要強(qiáng)調(diào)的是RISC-V本身是一種標(biāo)準(zhǔn)規(guī)范,和C/C++語言規(guī)范、POSIX系統(tǒng)調(diào)用等這些標(biāo)準(zhǔn)是一樣的。本身是開放的,誰都可以基于這些標(biāo)準(zhǔn)來實(shí)現(xiàn)自己的處理器。但有一點(diǎn)需要厘清的是,即使都是基于開源開放指令集(比如RISC-V),也存在三種不同的商業(yè)模式,分析圖3第一行,開放免費(fèi)的指令集(RISC-V)包含了三種模式的微架構(gòu)設(shè)計(jì):
開源模式,Berkeley的Rocket Chip、劍橋大學(xué)的lowRISC、蜂鳥E203等RISC-V核將RTL級源碼也開源,這些設(shè)計(jì)可歸到綠色格子; 授權(quán)模式,SiFive公司、晶心科技Andes、阿里平頭哥的RISC-V核是可以被授權(quán)給第三方使用,但不開源RTL級源碼,屬于黃色格子; 封閉模式,Google、NVIDIA等企業(yè)在內(nèi)部大量使用RISC-V核作為MCU,但他們不對外開放IP以及源代碼,這就屬于紅色格子。
綜上,指令集是開源開放免費(fèi)的,但是微架構(gòu)設(shè)計(jì)既可以選擇開源給大家(開源模式);也可以選擇收費(fèi)后授權(quán)給其它公司去生產(chǎn)(授權(quán)模式);也可以不往外授權(quán),自己拿去生產(chǎn)(封閉模式)。RISC-V提供給了大家完全自由開放的選擇。而這里開源模式的綠色格子,便是我們經(jīng)常說的基于RISC-V的開源處理器設(shè)計(jì)。
四、為何要做開源處理器?
開源處理器項(xiàng)目的重要性是毋庸置疑的,它將極大降低芯片開發(fā)的周期和門檻,使得大家可以專注于增量創(chuàng)新,而不用從頭去探索構(gòu)建一顆芯片,加快迭代周期,并且借助RISC-V的軟件生態(tài)快速推出市場。研發(fā)新的開源處理器項(xiàng)目,設(shè)定開源主線,獲得更多技術(shù)和生態(tài)上的優(yōu)勢,對提升國內(nèi)RISC-V各企業(yè)在國際RISC-V產(chǎn)業(yè)界的話語權(quán)和主導(dǎo)權(quán),至關(guān)重要。
參考來源:http://crva.ict.ac.cn/?page_id=540
推薦閱讀:深度GPU研究框架(附PPT)

轉(zhuǎn)載申明:轉(zhuǎn)載本號文章請注明作者和來源,本號發(fā)布文章若存在版權(quán)等問題,請留言聯(lián)系處理,謝謝。
推薦閱讀
更多架構(gòu)相關(guān)技術(shù)知識總結(jié)請參考“架構(gòu)師全店鋪技術(shù)資料打包”相關(guān)電子書(35本技術(shù)資料打包匯總詳情可通過“閱讀原文”獲取)。
全店內(nèi)容持續(xù)更新,現(xiàn)下單“全店鋪技術(shù)資料打包(全)”,后續(xù)可享全店內(nèi)容更新“免費(fèi)”贈閱,價(jià)格僅收188元(原總價(jià)290元)。
溫馨提示:
掃描二維碼關(guān)注公眾號,點(diǎn)擊閱讀原文鏈接獲取“架構(gòu)師技術(shù)全店資料打包匯總(全)”電子書資料詳情。

