經(jīng)歷了中美貿(mào)易戰(zhàn)和中興事件后,“中國芯”就好像當(dāng)年的“大躍進(jìn)”一樣,,全國上下都在討論芯片的研發(fā)設(shè)計和制造,。芯片指令集架構(gòu)作為溝通軟硬件運算之間的橋梁,人們卻很少關(guān)注它,。目前市面上應(yīng)用最廣的架構(gòu)是英特爾的X86和ARM架構(gòu),,并且基本上所有的芯片公司都在采用ARM的架構(gòu)。但是想要獲得ARM的授權(quán)非常難,,目前為止,,獲得ARM授權(quán)的公司兩只手?jǐn)?shù)的過來。另一方面,,ARM的授權(quán)費又非常昂貴,,對于一些中小企業(yè)來說,無法承擔(dān)這個成本,。
RISC-V指令集的出現(xiàn),,可以說是芯片設(shè)計公司的希望。RISC-V指令集是基于精簡指令集計算(RISC)原理建立的開放指令集架構(gòu)(ISA),,RISC-V是在指令集不斷發(fā)展和成熟的基礎(chǔ)上建立的全新指令,。RISC-V指令集完全開源,設(shè)計簡單,,易于移植Linux系統(tǒng),,模塊化設(shè)計,完整工具鏈,,同時有大量的開源實現(xiàn)和流片案例,。
RISC-V在2015年成立了RISC-V基金會,吸引了大量業(yè)內(nèi)領(lǐng)先的研究機構(gòu),、硬件廠商,、軟件廠商,。包括Berkeley Architecture Research、中科院計算所等科研機構(gòu),;包括高通,、英偉達(dá)、NXP,、三星,、Microsemi、美光,、中興微電子,、華為海思、聯(lián)發(fā)科等半導(dǎo)體廠商,;包括谷歌,、IBM等IT公司;包括西數(shù),、希捷這兩大硬盤廠商,;還有SEGGER、Mentor Graphics,、Express Logic等做開發(fā)工具的廠商,。近日,特斯拉也宣布加入RISC-V基金會,,并考慮在芯片設(shè)計中采用免費的RISC-V架構(gòu),。
設(shè)計簡單,易于上手
x86與ARM架構(gòu)的發(fā)展的過程隨著現(xiàn)代處理器架構(gòu)技術(shù)的不斷發(fā)展成熟,,但作為商用的架構(gòu),,為了能夠保持架構(gòu)的向后兼容性,其不得不保留許多過時的定義,,導(dǎo)致其指令數(shù)目多,,指令冗余嚴(yán)重,文檔數(shù)量龐大,,所以要在這些架構(gòu)上開發(fā)新的操作系統(tǒng)或者直接開發(fā)應(yīng)用門檻很高,。而RISC-V架構(gòu)則能完全拋棄包袱,借助計算機體系結(jié)構(gòu)經(jīng)過多年的發(fā)展已經(jīng)成為比較成熟的技術(shù)的優(yōu)勢,,從輕上路,。RISC-V基礎(chǔ)指令集則只有40多條,加上其他的模塊化擴展指令總共幾十條指令,。目前的“RISC-V架構(gòu)文檔”分為“指令集文檔”(riscv-spec-v2.2.pdf)和“特權(quán)架構(gòu)文檔”(riscv-privileged-v1.10.pdf),。“指令集文檔”的篇幅為145頁,,而“特權(quán)架構(gòu)文檔”的篇幅也僅為91頁,。熟悉體系結(jié)構(gòu)的工程師僅需一至兩天便可將其通讀,,雖然“RISC-V的架構(gòu)文檔”還在不斷地豐富,但是相比“x86的架構(gòu)文檔”與“ARM的架構(gòu)文檔”,,RISC-V的篇幅可以說是極其短小精悍,。
模塊化設(shè)計
RISC-V架構(gòu)相比其他成熟的商業(yè)架構(gòu)的最大一個不同還在于它是一個模塊化的架構(gòu),。因此,,RISC-V架構(gòu)不僅短小精悍,,而且其不同的部分還能以模塊化的方式組織在一起,,從而試圖通過一套統(tǒng)一的架構(gòu)滿足各種不同的應(yīng)用。
這種模塊化是x86與ARM架構(gòu)所不具備的,。以ARM的架構(gòu)為例,ARM的架構(gòu)分為A,、R和M三個系列,,分別針對于Application(應(yīng)用操作系統(tǒng))、Real-Time(實時)和Embedded(嵌入式)三個領(lǐng)域,,彼此之間并不兼容,。
但是模塊化的RISC-V架構(gòu)能夠使得用戶能夠靈活選擇不同的模塊組合,,以滿足不同的應(yīng)用場景,,可以說是“老少咸宜”,。譬如針對于小面積低功耗嵌入式場景,,用戶可以選擇RV32IC組合的指令集,,僅使用Machine Mode(機器模式),;而高性能應(yīng)用操作系統(tǒng)場景則可以選擇譬如RV32IMFDC的指令集,,使用Machine Mode(機器模式)與User Mode(用戶模式)兩種模式,。而他們共同的部分則可以相互兼容,。
完整的工具鏈
對于設(shè)計CPU來說,,工具鏈?zhǔn)擒浖_發(fā)人員和cpu交互的窗口,,沒有工具鏈,對軟件開發(fā)人員開發(fā)軟件要求很高,,甚至軟件開發(fā)者無法讓cpu工作起來,。在cpu設(shè)計中,,工具鏈的開發(fā)是一個需要巨大工作的。如果用RISC-V來設(shè)計芯片,,芯片設(shè)計公司不再擔(dān)心工具鏈問題,,只需專注于芯片設(shè)計,,RISC-V社區(qū)已經(jīng)提供了完整的工具鏈,,并且RISC-V基金會持續(xù)維護(hù)該工具鏈,。當(dāng)前RISC-V的支持已經(jīng)合并到主要的工具中,,比如編譯工具鏈gcc, 仿真工具qemu等。
RISC-V是完全開放源,,設(shè)計公司可以自行添加指令集。這個操作對芯片設(shè)計公司來說是極大的誘惑,,但同時也有人質(zhì)疑,自行添加指令集會導(dǎo)致RISC-V碎片化,,后期會出現(xiàn)處理器雖然同屬于RISC-V指令集,卻不能跑一套軟件,。如此看來,,RISC-V能不能成為和ARM一較高下的指令集架構(gòu),,未來還有很長的一段路要走,。