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