RISC-V(发音为“risk-five”)是一个基于
精简指令集(RISC)原则的
开源指令集架构(ISA)。
简介
RISC-V(读作“RISC-FIVE”)是基于精简指令集计算(
RISC)原理建立的开放
指令集架构(ISA),V表示为第五代RISC(
精简指令集计算机),表示此前已经有四代RISC处理器原型芯片。每一代RISC处理器都是在同一人带领下完成,那就是加州大学伯克利分校的
大卫·帕特森教授。与大多数ISA相反,RISC-V ISA可以免费地用于所有希望的设备中,允许任何人设计、制造和销售RISC-V芯片和软件。图1展示了此前的四代RISC处理器原型芯片。它虽然不是第一个开源的指令集(ISA),但它很重要,因为它是第一个被设计成可以根据具体场景、可以选择适合的指令集的指令集架构。基于RISC-V指令集架构可以设计
服务器CPU,家用电器cpu,工控cpu和用在比指头小的传感器中的cpu。
特色
完全开源
对指令集使用,RISC-V基金会不收取高额的授权费。开源采用宽松的
BSD协议,企业完全自由免费使用,同时也容许企业添加自有指令集拓展而不必开放共享以实现差异化发展。
架构简单
RISC-V架构秉承简单的设计哲学。体现为:
在处理器领域,主流的架构为
x86与
ARM架构。x86与ARM架构的发展的过程也伴随了现代处理器架构技术的不断发展成熟,但作为商用的架构,为了能够保持架构的向后兼容性,其不得不保留许多过时的定义,导致其指令数目多,指令冗余严重,文档数量庞大,所以要在这些架构上开发新的操作系统或者直接开发应用门槛很高。而RISC-V架构则能完全抛弃包袱,借助计算机体系结构经过多年的发展已经成为比较成熟的技术的优势,从轻上路。RISC-V基础指令集则只有40多条,加上其他的模块化扩展指令总共几十条指令。 RISC-V的规范文档仅有145页,而“特权架构文档”的篇幅也仅为91页。
易于移植*nix
现代操作系统都做了特权级指令和用户级指令的分离,特权指令只能操作系统调用,而用户级指令才能在用户模式调用,保障操作系统的稳定。RISC-V提供了特权级指令和用户级指令,同时提供了详细的RISC-V特权级指令规范和RISC-V用户级指令规范的详细信息,使开发者能非常方便的移植linux和unix系统到RISC-V平台。
模块化设计
RISC-V架构不仅短小精悍,而且其不同的部分还能以模块化的方式组织在一起,从而试图通过一套统一的架构满足各种不同的应用场景。用户能够灵活选择不同的模块组合,来实现自己定制化设备的需要,比如针对于小面积低功耗嵌入式场景,用户可以选择RV32IC组合的指令集,仅使用Machine Mode(机器模式);而高性能应用操作系统场景则可以选择譬如RV32IMFDC的指令集,使用Machine Mode(机器模式)与User Mode(用户模式)两种模式。
完整的工具链
对于设计CPU来说,工具链是软件开发人员和cpu交互的窗口,没有工具链,对软件开发人员开发软件要求很高,甚至软件开发者无法让cpu工作起来。在cpu设计中,工具链的开发是一个需要巨大工作量的工作。如果用RISC-V来设计芯片,芯片设计公司不再担心工具链问题,只需专注于芯片设计,RISC-V社区已经提供了完整的工具链,并且RISC-V基金会持续维护该工具链。当前RISC-V的支持已经合并到主要的工具中,比如编译工具链gcc, 仿真工具qemu等
开源实现
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的开源微处理器
River: GNSS Senor Ltd.基于Rocket架构开发的RV64处理器。VHDL, BSD Licensed。[GitHub]
Rocket: 支持RV64/32的开源处理器
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]
成功的流片案例
已经有机构和商业公司流片的案例。可关注RISC-V社区了解具体信息。
社区贡献
完整的工具链维护,大量的开源项目。risc-v的google讨论组(名称:RISC-V ISA Dev)吸引各地自愿者参与讨论来不断改进risc-v架构。
最新资讯
2022年3月16日,嵌入式开发软件和服务的全球领导者IAR Systems日前宣布:其专业开发工具链IAR Embedded Workbench® for RISC-V现已支持64位RISC-V内核。凭借此次在内核支持能力方面的扩展,IAR Systems在为RISC-V提供专业开发解决方案方面继续走在前沿。
2023年10月,高通宣布与谷歌合作,采用基于RISC-V技术的芯片制造智能手表等可穿戴设备。高通计划在全球范围内实现基于RISC-V的可穿戴设备解决方案商业化,包括美国。
2023年11月21日,玄铁RISC-V推出C907、C920、R910三款处理器新品。其中玄铁C920支持最新Vector1.0标准,较上代提升最高3.8倍AI性能,可跑Transformer模型,适合机器学习、自动驾驶等领域;玄铁C907首次实现了独立矩阵运算扩展,提高计算密度和计算并行能力;R910同时支持Cache以及TCM存储架构,提升系统实时性, 可应用于存储控制、网络通信、自动驾驶等领域。至此玄铁RISC-V处理器家族更新增至9款。