經(jīng)歷了中美貿(mào)易戰(zhàn)和中興事件后,“中國芯”就好像當年的“大躍進”一樣,全國上下都在討論芯片的研發(fā)設(shè)計和制造。芯片指令集架構(gòu)作為溝通軟硬件運算之間的橋梁,人們卻很少關(guān)注它。目前市面上應(yīng)用最廣的架構(gòu)是英特爾的X86和ARM架構(gòu),并且基本上所有的芯片公司都在采用ARM的架構(gòu)。但是想要獲得ARM的授權(quán)非常難,目前為止,獲得ARM授權(quán)的公司兩只手數(shù)的過來。另一方面,ARM的授權(quán)費又非常昂貴,對于一些中小企業(yè)來說,無法承擔這個成本。
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);包括高通、英偉達、NXP、三星、Microsemi、美光、中興微電子、華為海思、聯(lián)發(fā)科等半導體廠商;包括谷歌、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)的向后兼容性,其不得不保留許多過時的定義,導致其指令數(shù)目多,指令冗余嚴重,文檔數(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)?!爸噶罴臋n”的篇幅為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來說,工具鏈是軟件開發(fā)人員和cpu交互的窗口,沒有工具鏈,對軟件開發(fā)人員開發(fā)軟件要求很高,甚至軟件開發(fā)者無法讓cpu工作起來。在cpu設(shè)計中,工具鏈的開發(fā)是一個需要巨大工作的。如果用RISC-V來設(shè)計芯片,芯片設(shè)計公司不再擔心工具鏈問題,只需專注于芯片設(shè)計,RISC-V社區(qū)已經(jīng)提供了完整的工具鏈,并且RISC-V基金會持續(xù)維護該工具鏈。當前RISC-V的支持已經(jīng)合并到主要的工具中,比如編譯工具鏈gcc, 仿真工具qemu等。
RISC-V是完全開放源,設(shè)計公司可以自行添加指令集。這個操作對芯片設(shè)計公司來說是極大的誘惑,但同時也有人質(zhì)疑,自行添加指令集會導致RISC-V碎片化,后期會出現(xiàn)處理器雖然同屬于RISC-V指令集,卻不能跑一套軟件。如此看來,RISC-V能不能成為和ARM一較高下的指令集架構(gòu),未來還有很長的一段路要走。