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