RISC-V

RISC-V

RISC-V(發音為“risk-five”)是一個基於精簡指令集(RISC)原則的開源指令集架構(ISA)。

與大多數指令集相比,RISC-V指令集可以自由地用於任何目的,允許任何人設計、製造和銷售RISC-V晶片軟體。雖然這不是第一個開源指令集,但它具有重要意義,因為其設計使其適用於現代計算設備(如倉庫規模雲計算機、高端行動電話和微小嵌入式系統)。設計者考慮到了這些用途中的性能與功率效率。該指令集還具有眾多支持的軟體,這解決了新指令集通常的弱點。

該項目2010年始於加州大學柏克萊分校,但許多貢獻者是該大學以外的志願者和行業工作者。

RISC-V指令集的設計考慮了小型、快速、低功耗的現實情況來實做,但並沒有對特定的微架構做過度的設計。

截至2017年5月,RISC-V已經確立了版本2.22的用戶空間的指令集(userspace ISA),而特權指令集(privileged ISA)也處在草案版本1.10。

基本介紹

  • 中文名:RISC-V指令集
  • 外文名:RISC-V instruction set architecture
  • 屬性:指令集架構
  • 設計者:加利福尼亞大學伯克利分校
簡介,特色:,1 完全開源,2 架構簡單,3 易於移植*nix,4 模組化設計,5 完整的工具鏈,6 開源實現,6 成功的流片案例,7 社區貢獻,

簡介

RISC-V(讀作“RISC-FIVE”)是基於精簡指令集計算(RISC)原理建立的開放指令集架構(ISA),V表示為第五代RISC(精簡指令集計算機),表示此前已經四代RISC處理器原型晶片。每一代RISC處理器都是在同一人帶領下完成,那就是加州大學伯克利分校的David A. Patterson教授。與大多數ISA相反,RISC-V ISA可以免費地用於所有希望的設備中,允許任何人設計、製造和銷售RISC-V晶片和軟體。圖1展示了此前的四代RISC處理器原型晶片。它雖然不是第一個開源的的指令集(ISA),但它很重要,因為它第一個被設計成可以根據具體場景可以選擇適合的指令集的指令集架構。基於RISC-V指令集架構可以設計伺服器CPU,家用電器cpu,工控cpu和用在比指頭小的感測器中的cpu。

特色:

1 完全開源

對指令集使用,RISC-V基金會不收取高額的授權費。開源採用寬鬆的BSD協定,企業完全自由免費使用,同時也容許企業添加自有指令集拓展而不必開放共享以實現差異化發展。

2 架構簡單

RISC-V架構秉承簡單的設計哲學。體現為:
在處理器領域,主流的架構為x86與ARM架構。x86與ARM架構的發展的過程也伴隨了現代處理器架構技術的不斷發展成熟,但作為商用的架構,為了能夠保持架構的向後兼容性,其不得不保留許多過時的定義,導致其指令數目多,指令冗餘嚴重,文檔數量龐大,所以要在這些架構上開發新的作業系統或者直接開發套用門檻很高。而RISC-V架構則能完全拋棄包袱,藉助計算機體系結構經過多年的發展已經成為比較成熟的技術的優勢,從輕上路。RISC-V基礎指令集則只有40多條,加上其他的模組化擴展指令總共幾十條指令。 RISC-V的規範文檔僅有145頁,而“特權架構文檔”的篇幅也僅為91頁。

3 易於移植*nix

現代作業系統都做了特權級指令和用戶級指令的分離,特權指令只能作業系統調用,而用戶級指令才能在用戶模式調用,保障作業系統的穩定。RISC-V提供了特權級指令和用戶級指令,同時提供了詳細的RISC-V特權級指令規範和RISC-V用戶級指令規範的詳細信息,使開發者能非常方便的移植linux和unix系統到RISC-V平台。

4 模組化設計

RISC-V架構不僅短小精悍,而且其不同的部分還能以模組化的方式組織在一起,從而試圖通過一套統一的架構滿足各種不同的套用場景。用戶能夠靈活選擇不同的模組組合,來實現自己定製化設備的需要,比如針對於小面積低功耗嵌入式場景,用戶可以選擇RV32IC組合的指令集,僅使用Machine Mode(機器模式);而高性能套用作業系統場景則可以選擇譬如RV32IMFDC的指令集,使用Machine Mode(機器模式)與User Mode(用戶模式)兩種模式。

5 完整的工具鏈

對於設計CPU來說,工具鏈是軟體開發人員和cpu互動的視窗,沒有工具鏈,對軟體開發人員開發軟體要求很高,甚至軟體開發者無法讓cpu工作起來。在cpu設計中,工具鏈的開發是一個需要巨大工作量的工作。如果用RISC-V來設計晶片,晶片設計公司不再擔心工具鏈問題,只需專注於晶片設計,RISC-V社區已經提供了完整的工具鏈,並且RISC-V基金會持續維護該工具鏈。當前RISC-V的支持已經合併到主要的工具中,比如編譯工具鏈gcc, 仿真工具qemu等

6 開源實現

BOOM: Christopher Celio的RV64亂序處理器實現。Chisel, BSD Licensed。[GitHub][Doc]
BottleRocket: RV32IMC微處理器。Chisel, Apache Licensed。 [GitHub]
bwitherspoon: RV32微處理器。SystemVerilog, ISC Licensed。[GitHub]
Clarvi: 劍橋大學教學用RISC-V處理器。SystemVerilog, BSD Licensed。[GitHub]
F32: 針對FPGA的RV32微處理器,VHDL,BSD Licensed。[GitHub]
GRVI: Gray Research LLC. 針對FPGA最佳化的RV32微處理器,commercial licensed。[Web]
Hummingbird E200. 二級流水線,目標替代Cortex-M0/8051, Verilog, Apache 2.0 licensed。[GitHub]
invicta: 一級流水線的RV32微處理器。Verilog,BSD Licensed。[GitHub]
Kamikaze: RV32微處理器。Verilog,MIT Liencensed。[GitHub]
KCP53000: Samuel A. Falvo II的RV64處理器實現。Verilog, MPL Licensed。[GitHub]
nanorv32: 2機流水線的RV32實現。Verilog, GPLv2 Licensed。[GitHub]
OpenV: 支持RV32的開源微處理器,Verilog,MIT Licensed,OnChipUIS,來源於哥倫比亞的Universidad Industrial de Santander。[GitHub]
ORCA: 支持RV32的開源微處理器,VHDL,BSD Licensed,VectorBlox。[Github]
PicoRV32: Clifford Wolf設計的(針對FPGA)RV32微處理器,Verilog,ISC Licensed。[GitHub]
Potato: 針對FPGA的RV32微處理器。VHDL,BSD Licensed。[GitHub]
RI5CY:支持RV32的開源微處理器
  • PULPino: SystemVerilog,Solderpad Licensed, 來源於蘇黎世理工和博洛尼亞大學的PULP項目。[GitHub][Web]
River: GNSS Senor Ltd.基於Rocket架構開發的RV64處理器。VHDL, BSD Licensed。[GitHub]
Rocket: 支持RV64/32的開源處理器
  • Rocket-Chip: Chisel,BSD Licensed, Free chips project, UC Berkeley分離的開源工程。[GitHub]
  • Freedom: Chisel,Apache Licensed, SiFive, UC Berkeley分離的初創企業。[GitHub][Web]
  • lowRISC:Chisel+SystemVerilog,Solderpad Licensed, 從劍橋大學發起的非盈利組織。[GitHub][Web]
  • RoCC: the Rocket customized coprocessor interface 和Rocket處理器緊密互聯的的協處理器接口。[BSG]
RV12: RoaLogic的RV32微處理器。Verilog, RoaLogic non-commercial Licensed。[GitHub]
SCR1: Syntacore的RV32開源微處理器。SystemVerilog,Solerpad Licensed。[GitHub]
SHAKTI:印度IIT-Madras的RISC-V處理器系列,Bluespec, BSD Licensed。[Bitbucket]
Sodor: 教學用的RISC-V處理器。Chisel, BSD Licensed。[GitHub]
uRV: 針對FPGA的RV32微處理器。Verilog,LGPLv3 Licensed.[ohwr]
VexRiscv: 用SpinalHDL編寫的針對FPGA的RV32微處理器。SpinalHDL, MIT Licensed。[GitHub]
YARVI: Tommy Thorn設計的RV32I微處理器,Verilog,GPL2v Licensed。[GitHub]

6 成功的流片案例

已經有機構和商業公司流片的案例。可關注RISC-V社區了解具體信息。

7 社區貢獻

完整的工具鏈維護,大量的開源項目。risc-v的google討論組(名稱:RISC-V ISA Dev)吸引各地自願者參與討論來不斷改進risc-v架構。

相關詞條

熱門詞條

聯絡我們