资讯详情

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在中国的发展

组织

  • 中国开放指令生态(RISC-V)联盟 乌镇世界互联网大会于2018年11月8日正式成立,旨在收集开放指令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方·天枢提供最完整的指令集,包括RV64GC,位操作扩展(B)、用户级中断(N),适用于高性能计算领域的向量扩展V(Vector)V1.扩展管理程序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支持操作系统。

芯片

开源项目

  • 蜂鸟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完成特定的操作,这便是 中的 **“I”**的含义 。而 表示 “集合” ,一个CPU肯定不能是一条指令走天下,所以便会有很多条指令,这便组成了指令集。ISA的组成决定了CPU的体系结构(Architecture ),所以 就是体系结构的含义。

   也是软件和硬件的编程接口,软件开发人员通过编译器将高级语言编译成相应的汇编程序,这里的每条汇编指令就会对应一条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、向量条件运算等操作。 ↩︎

标签: s10k510电阻

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台