RISC-V简介


RISC-V简介


RISC-V_LOGO

RISC-V Logo

  RISC-V 是一个自由和开放的 ISA(开源指令集架构),通过开放的标准协作实现处理器创新的新时代。RISC-V ISA在架构上提供了一个新的自由、可扩展的软件和硬件自由级别,为未来50年的计算设计和创新铺平了道路1

  RISC-V 的作者们旨在提供数种可以在BSD许可证之下自由使用的CPU设计。该许可证允许基于RISC-V设计的芯片以及其派生产品可以像RISC-V本身一样是公开且自由发行,也可以是闭源或者是专有财产。

  虽然这不是第一个开源指令集,但它具有重要意义,因为它的设计适用于现代计算设备(如仓库规模云计算机、高端移动电话和微小嵌入式系统)。该项目最早开始于 加州大学伯克利分校,对项目的贡献者很多也来自于世界各地的RISC-V爱好者。截至2017年5月,RISC-V已经确立了版本2.22的用户空间的指令集(userspace ISA),而特权指令集(privileged ISA)也处在草案版本1.10。

RISC-V基金会官网_EN

RISC-V基金会官网_ZH
在这里插入图片描述

RISC-V基金会部分成员

RISC-V在中国的发展

组织

处理器IP

  • 2019年7月阿里巴巴旗下半导体公司 平头哥 发布了它的首款 RISC-V 处理器 “玄铁 910”(XuanTie910),名字取自金庸小说《神雕侠侣》。阿里巴巴称它是目前性能最强的 RISC-V 处理器,支持16核,主频 2.5GHz,单核性能达到 CoreMark 7.1 /MHz,Dhrystone 5.8 DMIPS/MHZ。阿里巴巴称其性能突破源自两大创新:一是它采用3发射8执行的复杂乱序执行架构,是业界首个实现每周期 2 条内存访问的 RISC-V 处理器;二是它基于 RISC-V 扩展了 50 余条指令,系统性增强了 RISC-V 的计算、存储和多核等方面能力。

  • 塞防科技 于2020年10月发布 昉·天枢处理器内核 作为一款基于RISC-V指令集架构设计的64位超高性能内核,昉·天枢提供至今最完整的指令集,包括RV64GC,位操作扩展(B)、用户级中断(N),以及适合高性能计算领域的向量扩展V(Vector)V1.0与管理程序扩展H(Hypervisor)等。昉·天枢工作频率最高可达2GHz@TSMC 12nm,SPECint2006 8.9/GHz,Dhrystone 6.6 DMIPS/MHz、CoreMark 7.6/MHz。昉·天枢在微架构设计上采用了超标量、深度乱序执行等设计要素,同时还针对性能和频率做了深度的优化。

  • 芯来科技 基于国产自主可控内核,完成了AIoT全系列RISC-V处理器IP产品拼图,N100、N200、N300、N/NX/UX600、N/NX/UX900产品覆盖了从低功耗到高性能的各种应用场景需求;同时,完成了自有软件体系搭建,提供完善的驱动、工具链、SDK和操作系统支持。

芯片

  • 全志科技 D1 是全志科技首款基于 RISC-V 指令集的芯片,集成了阿里平头哥64位C906核心,支持RVV,1GHz 主频,可支持Linux、RTOS等系统。同时支持最高 4K 的 H.265/H.264解码,内置一颗 HiFi4 DSP,最高可外接 2GB DDR3,可以应用于智慧城市、智能汽车、智能商显、智能家电、智能办公和科研教育等多个领域。

  • 嘉楠科技 在2018年9月发布并量产第一代AI处理器 勘智K210 ,采用RISC-V 处理器架构,具备视听一体、自主IP核与可编程能力强三大特点,支持机器视觉与机器听觉多模态识别,可广泛应用于智能家居、智能园区、智能能耗和智能农业等场景,典型功耗 1W,提供 1TFLOPS 算力。
    2021年7月发布新款 勘智K510,是一款定位于中高端边缘侧应 用市场的推理芯片,为AI应用提供高性能图像及语音处理能力。搭载自主研发的第二代神经网络处理器KPU2.0, 采用独创计算数据流技术,算力提升3倍同时降低功耗;集成最新代图像处理ISP,支持TOF深度相机接入,支持2D/3D降噪、宽动态范围WDR、硬件3A等完备功能。3D ISP支持深度摄像头TOF sensor;支持无人机、高清航拍、专业相机、视频会议、机器人、教育STEAM、辅助驾驶等场景,提供2.5TFLOPS算力,精准支持INT8和BF16。

  • 华米科技 在2021年7月13日发布采用双核 RISC-V 架构的可穿戴人工智能处理器黄山2S,其大核运算性能可支持图形、UI 操作等高负载计算,大核系统同时集成浮点运算单元(FPU )。

  • 兆易创新 在2019年8月发布了 GD32VF103 系列 MCU,采用了全新的基于开源指令集架构 RISC-V 的 Bumblebee 处理器内核,是兆易创新 (Gigadevice) 携手中国领先的 RISC-V 处理器内核 IP 和解决方案厂商 芯来科技 (Nuclei System Technology),面向物联网及其它超低功耗场景应用自主联合开发的一款商用RISC-V处理器内核。

  • 乐鑫科技 ESP32-C3 是一款安全稳定、低功耗、低成本的物联网芯片,搭载 RISC-V 32 位单核处理器,支持 2.4 GHz Wi-Fi 和 Bluetooth LE 5.0。为物联网产品提供行业领先的射频性能、完善的安全机制和丰富的内存资源。ESP32-C3 对 Wi-Fi 和 Bluetooth LE 5.0 的双重支持降低了设备配网难度,适用于广泛的物联网应用场景。

开源项目

  • 蜂鸟E203 是胡振波开发的开源处理器核,用verilog 写成。同时作者还编写了《手把手教你设计CPU——RISC-V处理器篇》《手把手教你设计CPU——RISC-V处理器篇》两本书籍。

  • 中国科学院计算所在2020年发布 “香山” 高性能RISC-V处理器开源项目,香山以Chisel硬件描述语言开发。 第一版“雁栖湖架构”使用台积电的 28nm 制程,工作频率为1.3GHz。


RISC-V的优势

开源,彻底免费开放

  RISC- V全面开源,且具有全套开源免费的编译器、开发工具和软件开发环境(IDE),其开源的特性允许任何用户自由修改、扩展,从而能满足量身定制的需求,大大降低指令集修改的门槛。同类产品中,ARM需要支付高昂的IP费用才可使用,甚至需支付“预付款”才可看到细节。

模块化、指令数目少、易开发

  1. 模块化:RISC-V将不同的部分以模块化的方式组织在一起,并试图通过一套统一的架构来满足各种不同的应用场景,这种模块化是x86与ARM架构所不具备的。

  2. 指令数目少:受益于短小精悍的架构以及模块化的特性,RISC-V 架构的指令数目非常的简洁。一套指令集支持所有架构。基本指令子集仅60余条指令,以此为共有基础,加上其他常用模块子集指令总指令数也仅几十条。

  3. 易开发:RISC-V 是没有历史包袱的全新指令集,所以它的指令是简洁明了的,这方便了设计也方便了开发。

无后门设计

  由于可以提供RISC-V IP源代码,并且这种源代码是开放的,因此客户能够全面检查 RTL 代码,以确保最高的信任级别。


RISC-V架构设计思想

理解ISA

  在 CPU 设计过程中,指令集架构(Instruction Set Architecture,ISA)扮演者非常重要的角色。CPU能够运行是因为其能够识别二进制数1和0也就是高、低电平。当一串1和0组成的数据能使CPU硬件执行某个操作,例如:逻辑、算术运算时便形成了一条指令,这条指令只能固定让CPU完成特定的操作,这便是 ISA 中的 **“I”**的含义 。而 “S” 表示 “集合” ,一个CPU肯定不能是一条指令走天下,所以便会有很多条指令,这便组成了指令集。ISA的组成决定了CPU的体系结构(Architecture ),所以 “A” 就是体系结构的含义。

  ISA 也是软件和硬件的编程接口,软件开发人员通过编译器将高级语言编译成相应的汇编程序,这里的每条汇编指令就会对应一条ISA指令,经过翻译之后便能得到CPU可识别的二进制代码了。

指令可扩展

  RISC-V在设计之初将基本得指令,其中包含整数的基本计算、Load/Store和控制流等规定为所有的RISC-V硬件实现都必须包含这一部分,其它的扩展指令均可通过需要自行添加,其中包括如下几部分:

  RISC-V 指令使用模块化的设计, 包括几个可以互相替换的基本指令集, 以及额外可以选择的扩展指令集. 所有基本跟扩展的指令集都是由科技产业, 研究机构跟学术界合作开发的. 基本指令集规范了指令跟他们的编码,控制流程,寄存器数目(以及它们的长度),存储器跟寻址方式,逻辑(整数)运算以及其他. 只要有软件以及一个通用的编译器的支持,只用基本指令集就可以用来制作一个简单的通用型的电脑

标准的扩展指令集可以搭配所有的基本指令集,以及其他扩展指令集,而不会冲突

表 1 基本指令集
指令集名称描述
RV32I基本整数指令集, 32位
RV32E基本整数指令集(嵌入式系统), 32位, 16个整数寄存器
RV64I基本整数指令集, 64位
RV128I基本整数指令集, 128位
表 2 扩展指令集
指令集名称描述
M整数乘除法标准扩展 2
A原子指令标准扩展 3
F单精确度浮点运算标准扩展 4
D双精度浮点运算标准扩展 4
G“I+M+F+A+D” 指令的总和,被缩写为 “G” ,共同组成通用的标量指令
Q四倍精确度浮点运算标准扩展 5
L十进制浮点运算标准扩展 6
C压缩指令标准扩展 7
B位操作标准扩展 8
J动态指令翻译标准扩展 9
T顺序存储器访问标准扩展 10
P单指令多资料流(SIMD)运算标准扩展
V向量运算标准扩展 11
N用户中断标准扩展

RISC-V特权模式

RISC-V 架构定义了三种模式:

  • 用户模式。user mode
  • 机器模式。machine mode (特权模式)
  • 超级用户模式(监管者模式)。supervisor mode (特权模式)

权限等级从低到高:用户模式 < 超级用户模式 < 机器模式.


参考资料

维基百科 RISC-V

芯片开放社区 什么是RISC-V?

《riscv-spec-20191213》

《玄铁C910用户手册_v13》

《GD32VF103数据手册》

《RISC-V架构与嵌入式开发快速入门》

《手把手教你设计CPU——RISC-V处理器篇》

《The RISC-V Reader中文版(David Patterson) v2p1》


🤞

😼


  1. 摘自https://riscv.org/about/# ↩︎

  2. 包含针对两个整数寄存器中的数值进行乘法或者除法的指令。 ↩︎

  3. 原子指令包含了对存储器执行原子性读、写、修改的指令,以支持运行在同一个存储器空间中的多个 RISC-V 线程之间的同步操作。有两种原子性指令,一种是 加载保留(load reserved)/条件存储(store conditional )指令,另一种是原子性 fetch and op 存储器指令。两种类型的原子性指令都支持各种存储器一致性排序,包括乱序( unordered )、获取 acquire )、释放( release )和顺序一致性语义。这些指令使得 RISC-V 可以支持 RC、SC 存储器一致性模型。原子指令在多处理器系统中的可扩展性比LR和SC更好,可以实现 I/O 通信中的总线原子读写,从而简化设备驱动,提高I/O性能。 ↩︎

  4. 单精度浮点扩展(RV32F)和双精度浮点扩展(RV32D)为RISC-V的浮点指令集。共用一组独立于整数寄存器的浮点寄存器,拥有常规的访存和运算指令,也有一些包括乘加指令在内的融合运算指令,使得运算过程更精简而准确。另外为了有助于数学库的编写,还包括了有助于符号操作的符号注入指令和测试操作数属性的分类指令。F和D扩展没有包括浮点分支指令,取而代之的是浮点比较指令,可以根据浮点数的比较结果设置寄存器的值,并用于条件分支。 ↩︎ ↩︎

  5. 符合IEEE 754 2008 算术标准的 128 位二进制浮点指令的 Q 标准扩展。 128 位或者四精度二进制浮点指令子集被命名为“ Q ”,需要 RV64IFD 。现在浮点寄存器被扩展了,可以保存一个单精度或者一个双精度或者一个四精度的浮点值( FLEN=128 )。 ↩︎

  6. 扩展支持 IEEE 754 2008 标准中定义的十进制浮点算术。 ↩︎

  7. 压缩指令标准扩展包括了与标准32位RISC-V一一对应的短指令,它们只对汇编器和链接器可见,因此编译器编写者和汇编语言程序员可以忽略它们。操作加入短的 16 位指令编码,减少了静态和动态代码大小。 ↩︎

  8. 位操作指令标准扩展的预留位置,包括插入、抽取、测试位字段、旋转、漏斗移位( funnel shift)、位和字节排序。 ↩︎

  9. 支持动态翻译语言的未来标准扩展的占位符。 ↩︎

  10. 未来提供内存操作的标准扩展的占位符。 ↩︎

  11. 与其它指令集中的单指令多数据流(SIMD)指令不同的是,RISC-V 向量指令将内部向量寄存器的宽度与指令集解耦,解决了SIMD指令集每一代升级宽度时,带来的上层软件适配问题。向量指令集支持向量计算、向量load/store、向量条件运算等操作。 ↩︎

  • 2
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值