盡管RISC-V的基礎(chǔ)指令集和基礎(chǔ)架構(gòu)已經(jīng)在2014年前后基本成型,旨在指導(dǎo)未來(lái)發(fā)展并推廣RISC-V ISA普及的RISC-V基金會(huì)也早在2015年8月成立了,但直到大概去年5月的時(shí)候,RISC-V這個(gè)話題才持續(xù)占據(jù)各相關(guān)媒體的熱點(diǎn)版面,關(guān)于RISC-V的各種宣傳活動(dòng)也逐漸地多了起來(lái)。
這種現(xiàn)象的出現(xiàn),可能是由于一些商業(yè)公司的開(kāi)發(fā)有了一些眉目,他們的宣傳力度提高了,但更主要的一個(gè)因素是中國(guó)國(guó)內(nèi)的大環(huán)境所導(dǎo)致,國(guó)家加大了對(duì)半導(dǎo)體行業(yè)的支持力度。當(dāng)然,也不乏一些炒作的因素在里面。
本文不打算探討RISC-V技術(shù)的優(yōu)劣,也不打算探討它是否能解決我們當(dāng)前所面臨的種種問(wèn)題,我只想先來(lái)談?wù)剬?duì)這項(xiàng)技術(shù)的基本認(rèn)識(shí)以及它對(duì)整個(gè)產(chǎn)業(yè)鏈各個(gè)環(huán)節(jié)的意義,然后重點(diǎn)說(shuō)說(shuō)RISC-V怎樣才能更好地普及,并成功地融入到各式各樣的應(yīng)用領(lǐng)域中,最后粗略地談一下RISC-V在發(fā)展過(guò)程中可能遇到的一些問(wèn)題。
RISC-V的優(yōu)勢(shì)是什么?
RISC-V是一個(gè)按照精簡(jiǎn)指令集的基本原則開(kāi)發(fā)的CPU指令集架構(gòu), 與之對(duì)應(yīng)的Arm指令集架構(gòu)和x86指令集架構(gòu)處于同等地位。CPU的設(shè)計(jì)人員,可以按照這樣的指令集架構(gòu)設(shè)計(jì)CPU的內(nèi)部架構(gòu)和具體實(shí)現(xiàn)方式。例如Arm的Cortex-M內(nèi)核目前已經(jīng)有多達(dá)9款產(chǎn)品,但都是基于Armv6-M、Armv7-M和Armv8-M指令集架構(gòu)構(gòu)建的。
可以把CPU指令集架構(gòu)(ISA)與操作系統(tǒng)的POSIX接口規(guī)范做個(gè)類比。在遵循一個(gè)相同ISA的原則下,芯片設(shè)計(jì)人員可以按照不同的要求做出不同的設(shè)計(jì)實(shí)現(xiàn),從而設(shè)計(jì)出不同性能等級(jí)、側(cè)重不同應(yīng)用的CPU產(chǎn)品。例如,某個(gè)實(shí)現(xiàn)側(cè)重于低功耗但速度不是最快,另一個(gè)實(shí)現(xiàn)則可能是側(cè)重運(yùn)算速度快但芯片面積比較大,或者側(cè)重于某種計(jì)算類型(浮點(diǎn)、矩陣計(jì)算等)。同理,遵循POSIX規(guī)范的操作系統(tǒng)可以是服務(wù)器級(jí)別的,也可以是桌面的或嵌入式級(jí)別的。
從底層的使用者角度看,一個(gè)CPU的指令集架構(gòu)就是以程序員的視角所看到的CPU,例如有多少寄存器、尋址方式是什么樣的,以及指令的字長(zhǎng)和尋址空間等。對(duì)于使用相同指令集的不同CPU,原則上它們上面運(yùn)行的代碼都是二進(jìn)制級(jí)兼容的,倘若程序在具有這些CPU的芯片間進(jìn)行遷移,基本上只需要適配底層的設(shè)備驅(qū)動(dòng)即可,絕大部分的系統(tǒng)和應(yīng)用程序都是可以不經(jīng)重新編譯而直接運(yùn)行的。
與其他主流的指令集架構(gòu)相比,例如x86、Arm等,開(kāi)源是RISC-V的最大特點(diǎn),使用RISC-V進(jìn)行CPU設(shè)計(jì)的人或機(jī)構(gòu),無(wú)須像使用其他指令集架構(gòu)那樣,向原開(kāi)發(fā)者付費(fèi)才能使用該ISA自行設(shè)計(jì)CPU并對(duì)之進(jìn)行修改和擴(kuò)展,這個(gè)費(fèi)用往往非常高昂并且條件比較苛刻。例如,目前知名的商業(yè)公司中,只有AMD獲得x86指令集的使用權(quán),只有蘋(píng)果、三星、高通、華為等獲得了Arm指令集的使用權(quán),可以自主開(kāi)發(fā)基于相應(yīng)指令集架構(gòu)的CPU芯片。
一方面,RISC-V的指令集架構(gòu)是開(kāi)源的,它允許開(kāi)發(fā)者自行組合已有的指令子集或添加自己的指令集,這極大地?cái)U(kuò)大了RISC-V的應(yīng)用范圍,使它幾乎可以適合各種應(yīng)用場(chǎng)景,相比其他不能自行擴(kuò)展的指令集架構(gòu),具有明顯的優(yōu)勢(shì)。當(dāng)然,同時(shí)也可能會(huì)帶來(lái)嚴(yán)重的碎片化問(wèn)題,這一點(diǎn)會(huì)在本文后面探討。
另一方面,RISC-V不僅僅是一個(gè)開(kāi)放的CPU指令系統(tǒng),而且是一個(gè)連接半導(dǎo)體產(chǎn)品的設(shè)計(jì)人員和應(yīng)用開(kāi)發(fā)人員的開(kāi)放的生態(tài)系統(tǒng)。對(duì)芯片(尤其是CPU芯片)的設(shè)計(jì)人員來(lái)說(shuō), 可以按照應(yīng)用特點(diǎn)設(shè)計(jì)出相應(yīng)的CPU產(chǎn)品, 而不必?fù)?dān)心因?yàn)槿鄙傧鄳?yīng)的開(kāi)發(fā)工具或合適的軟件中間件而導(dǎo)致沒(méi)有人使用自己的產(chǎn)品。更重要的是,對(duì)于CPU芯片的使用者而言,可以在更大的范圍里選擇適合自己應(yīng)用的芯片,而不必?fù)?dān)心因?yàn)橹噶钕到y(tǒng)的兼容性問(wèn)題找不到熟悉的開(kāi)發(fā)環(huán)境,找不到合適的開(kāi)發(fā)人員,以及找不到成熟的應(yīng)用組件或中間件。
完善的生態(tài)是RISC-V取得商業(yè)成功的關(guān)鍵!
這樣一個(gè)開(kāi)源的、免授權(quán)費(fèi)的指令集架構(gòu),自然讓很多人興奮不已,尤其是在IC設(shè)計(jì)行業(yè)中,每個(gè)人都有機(jī)會(huì)按照自己的特長(zhǎng)找到合適的商機(jī)。事實(shí)也確實(shí)如此,但同時(shí)也有一個(gè)嚴(yán)峻的問(wèn)題擺在我們面前,那就是誰(shuí)會(huì)來(lái)買(mǎi)單呢?下面就以MCU為主來(lái)探討一下。
要能夠用好一款MCU產(chǎn)品,需要很多配套的東西做支撐。我們知道,世界上出現(xiàn)過(guò)很多有特色的CPU指令集架構(gòu),也有不少基于它們的芯片產(chǎn)品,例如Arm、MIPS、x86、PSoC、8051、Power ISA、Z80/Z8000等。這些ISA各有特色,但它們的應(yīng)用范圍和市場(chǎng)份額卻有較大的差別。對(duì)于終端用戶或產(chǎn)品的開(kāi)發(fā)者而言,其實(shí)他們并不太在意CPU的指令系統(tǒng)是什么,他們只在意一款MCU芯片本身的性能、價(jià)格、適用范圍等是否滿足應(yīng)用需求,在這些因素都滿足的情況下,就要比較哪種架構(gòu)的生態(tài)系統(tǒng)更加寬廣、更加完善。目前,在一些通用的應(yīng)用領(lǐng)域中,市場(chǎng)上大多數(shù)MCU不管其采用何種CPU架構(gòu),都能夠滿足應(yīng)用需求,價(jià)格也都在可接受的范圍內(nèi),此時(shí)完善的生態(tài)系統(tǒng)就成為客戶選型首要考慮的問(wèn)題。
簡(jiǎn)單地說(shuō),一款MCU產(chǎn)品的生態(tài)系統(tǒng),決定著這款產(chǎn)品的開(kāi)發(fā)者所能接觸到的開(kāi)發(fā)資源和開(kāi)發(fā)支持是否全面多樣化、是否方便使用、是否易學(xué)易懂、是否穩(wěn)定可靠等。以通用的MCU為例,通常這些資源和支持大概包含圖1中的內(nèi)容。
圖 1
資料文檔:主要包括芯片本身的數(shù)據(jù)手冊(cè)、參考文檔、應(yīng)用筆記、參考例程、設(shè)計(jì)指南、學(xué)習(xí)教程、常見(jiàn)問(wèn)題等。
開(kāi)發(fā)工具:包含編譯器、開(kāi)發(fā)板/套件、調(diào)試工具、IDE、生產(chǎn)工具(主要是編程器)、性能優(yōu)化/評(píng)測(cè)工具、故障診斷工具、芯片內(nèi)部資源的配置工具等。
軟件模塊:所有的軟件產(chǎn)品都屬于這個(gè)范疇,既包括芯片廠商所提供的基本底層驅(qū)動(dòng)庫(kù),以及相關(guān)的操作系統(tǒng)BSP、各種軟件庫(kù)(例如C/C++的運(yùn)行時(shí)庫(kù)、DSP庫(kù)、算術(shù)運(yùn)算庫(kù)等),也包括各種中間件、協(xié)議棧、圖形GUI庫(kù),以及諸如電機(jī)控制、圖像處理甚至人工智能等的專用軟件庫(kù)。
市場(chǎng)資源:涵蓋信息來(lái)源的多樣性、網(wǎng)站建設(shè)、開(kāi)發(fā)者論壇、樣片和產(chǎn)品的購(gòu)買(mǎi)渠道、供貨周期和穩(wěn)定性、培訓(xùn)機(jī)構(gòu)及大學(xué)計(jì)劃等。對(duì)于市場(chǎng)信息的反饋機(jī)制、產(chǎn)品的ROADMAP,以及對(duì)公司策略及品牌的宣傳與認(rèn)知度,也可以歸于市場(chǎng)資源這一類。
人力支持:在客戶需要時(shí),能夠提供相應(yīng)的人力資源支持,包括設(shè)計(jì)驗(yàn)證、疑難問(wèn)題的調(diào)試、芯片缺陷的分析和解決方案、特殊培訓(xùn),甚至參與客戶的項(xiàng)目開(kāi)發(fā)等。當(dāng)然,也包括協(xié)助客戶的產(chǎn)品市場(chǎng)宣傳以及對(duì)客戶的非技術(shù)性服務(wù)等。
參考方案:針對(duì)市場(chǎng)需求,開(kāi)發(fā)者能夠從芯片原廠,特別是從第三方得到相應(yīng)的參考方案。
外包服務(wù):主要是指大量涉及各個(gè)應(yīng)用方面的設(shè)計(jì)公司, 他們能夠提供各種各樣的軟件庫(kù)設(shè)計(jì)、應(yīng)用方案設(shè)計(jì)、電路板設(shè)計(jì)、整體方案設(shè)計(jì)等。
配套器件:基本是與MCU芯片配套的存儲(chǔ)器、擴(kuò)展的互聯(lián)產(chǎn)品、顯示產(chǎn)品、傳感器等,開(kāi)發(fā)設(shè)計(jì)人員能夠方便地找到和使用合適的外圍器件。相應(yīng)的遴選條件包括:接口類型速率、工作電壓范圍、價(jià)格、相關(guān)生態(tài)等。
以上的這些內(nèi)容中,MCU芯片廠商只能提供一些極為基本的東西,而絕大部分內(nèi)容需要其他相關(guān)者提供,因此如何培養(yǎng)和動(dòng)員產(chǎn)業(yè)鏈上所有的相關(guān)方積極地參與基于某種架構(gòu)的生態(tài)系統(tǒng)建設(shè),使得這個(gè)生態(tài)系統(tǒng)日臻完善,將成為該種架構(gòu)取得商業(yè)成功的關(guān)鍵?;贏rm架構(gòu)的MCU應(yīng)用市場(chǎng)能取得今天的輝煌,正是由于其擁有一個(gè)非常健壯的生態(tài)系統(tǒng)。
RISC-V要想在競(jìng)爭(zhēng)非常激烈的CPU市場(chǎng),尤其是MCU市場(chǎng)上取得成功,就必須重視生態(tài)系統(tǒng)的建設(shè),減輕開(kāi)發(fā)負(fù)擔(dān),讓開(kāi)發(fā)人員在遇到問(wèn)題時(shí)能很快地找到解決方案,以縮短終端產(chǎn)品的開(kāi)發(fā)周期。
標(biāo)準(zhǔn)化和多元化是RISC-V快速發(fā)展的基石
前面提到RISC-V的一大優(yōu)勢(shì)是開(kāi)源,在一個(gè)相同的指令集架構(gòu)下,各家可以做出適合各種需求的CPU/MCU產(chǎn)品,從高端到低端、從低功耗到高性能,廣闊的應(yīng)用領(lǐng)域十分有利于其生態(tài)系統(tǒng)的壯大。處在這個(gè)生態(tài)鏈上各個(gè)環(huán)節(jié)的開(kāi)發(fā)者,可以用較小的代價(jià)支持更廣泛的市場(chǎng)需求,使得各個(gè)相關(guān)參與方的積極性更高。但是這里一個(gè)重要的前提是標(biāo)準(zhǔn)化,每款芯片都要遵守和使用RISC-V定義的基本和擴(kuò)展指令集,只有這樣各級(jí)開(kāi)發(fā)支持工作才能統(tǒng)一有效。
換個(gè)角度看,RISC-V開(kāi)源的優(yōu)勢(shì)可以允許各家在設(shè)計(jì)芯片時(shí),按照自己的特殊需要添加定制化的指令,滿足特定應(yīng)用的特殊需求,或在投票成為標(biāo)準(zhǔn)之前,將先進(jìn)的創(chuàng)新成果先行在自己的產(chǎn)品中實(shí)現(xiàn)。對(duì)于這種非標(biāo)準(zhǔn)的部分,將較難受益于豐富的生態(tài)機(jī)制,因此要求其生產(chǎn)廠家自行提供相應(yīng)的支持和配套的解決方案,例如需要修改編譯器以支持新的指令、需要增改配置調(diào)試工具以適應(yīng)新的總線或存儲(chǔ)接口等。
當(dāng)這種自行添加的定制化指令逐漸增多,又不能被吸收進(jìn)標(biāo)準(zhǔn)規(guī)范中時(shí),就會(huì)產(chǎn)生碎片化的問(wèn)題,也就會(huì)給生態(tài)鏈上的某些環(huán)節(jié)造成困擾和成本的增加,也必將削弱生態(tài)環(huán)境的健全性,至少在RISC-V普及發(fā)展的初期,會(huì)阻礙或延緩生態(tài)系統(tǒng)的完善。
當(dāng)然,RISC-V基金會(huì)為了鼓勵(lì)多元化的發(fā)展,成立了各種指令集的工作小組,統(tǒng)一討論協(xié)調(diào)特定領(lǐng)域的RISC-V指令擴(kuò)展,這些模塊化的指令擴(kuò)展討論一旦定案后,就會(huì)成為標(biāo)準(zhǔn)供所有人在特定應(yīng)用里使用。多元化和碎片化的區(qū)別就在于,多元化是在充分討論協(xié)商的前提下的創(chuàng)新,并納入標(biāo)準(zhǔn)化的進(jìn)程,再最終開(kāi)放給所有人使用;而碎片化則是各說(shuō)各話,無(wú)約束地自由發(fā)展,這是RISC-V基金會(huì)要盡量避免的現(xiàn)象。
在目前RISC-V生態(tài)還比較脆弱的建設(shè)初期,可以依托現(xiàn)有標(biāo)準(zhǔn)化進(jìn)程的成果,以一個(gè)相對(duì)標(biāo)準(zhǔn)穩(wěn)定的平臺(tái)為基礎(chǔ),讓?xiě)?yīng)用領(lǐng)域的開(kāi)發(fā)人員盡快地熟悉這種新的技術(shù),讓他們能在一個(gè)相同的平臺(tái)上互相交流、相互支持,盡快打通生態(tài)鏈上的各個(gè)部分,讓雪球滾起來(lái)!正是基于這樣的考慮,open-isa發(fā)布了VEGAboard,讓MCU的開(kāi)發(fā)者能夠以很低的門(mén)檻接觸和體驗(yàn)RISC-V的基本配置和一個(gè)基礎(chǔ)的開(kāi)發(fā)環(huán)境。做編譯器、IDE的公司,可以直接在這個(gè)基礎(chǔ)上測(cè)試開(kāi)發(fā)相應(yīng)的產(chǎn)品;做各種系統(tǒng)軟件和算法庫(kù)的企業(yè),也可以在上面嘗試移植自己已有的產(chǎn)品,快速地建立起來(lái)一個(gè)基礎(chǔ)的BSP包,為未來(lái)正式的商業(yè)開(kāi)發(fā)奠定基礎(chǔ);而應(yīng)用產(chǎn)品的開(kāi)發(fā)者,則可以更加深入地理解和體驗(yàn)RISC-V將會(huì)怎樣影響他們的未來(lái),同時(shí)對(duì)其他環(huán)節(jié)的開(kāi)發(fā)者提出他們的需求和看法,不斷完善相關(guān)的工具及方案等??傊?,在正式商業(yè)運(yùn)作開(kāi)發(fā)之前,大家可以在這樣一個(gè)低成本的基礎(chǔ)上,做很多先期的入門(mén)鋪墊,熟悉、嘗試并打造最適合的開(kāi)發(fā)途徑。
要讓RISC-V能夠健康地成長(zhǎng),需要在標(biāo)準(zhǔn)化和自行定制化之間找到一個(gè)平衡點(diǎn),而目前我們注重的著力點(diǎn),應(yīng)向有利于強(qiáng)大生態(tài)系統(tǒng)建設(shè)的方向傾斜,把蛋糕做大,然后再逐步走向多元化,走向協(xié)同發(fā)展的道路。
最近,open-isa的中文網(wǎng)站剛剛開(kāi)通,感興趣的朋友可以訪問(wèn)瀏覽open-isa.cn,申請(qǐng)RISC-V開(kāi)發(fā)板并參加創(chuàng)意競(jìng)賽,贏取豐厚獎(jiǎng)品!已經(jīng)有朋友收到織女星開(kāi)發(fā)板啦!
-
寄存器
+關(guān)注
關(guān)注
31文章
5300瀏覽量
119860 -
生態(tài)系統(tǒng)
+關(guān)注
關(guān)注
0文章
697瀏覽量
20697 -
RISC-V
+關(guān)注
關(guān)注
44文章
2216瀏覽量
45961
原文標(biāo)題:RISC-V這塊蛋糕,如何才能做大?
文章出處:【微信號(hào):mcuworld,微信公眾號(hào):嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論