本帖最后由 elephant00 于 2023-2-9 10:07 编辑
如今,英特尔 x86/x64 架构证明了 CISC 微处理器没有被 RISC 取代,而 ARM 架构则证明了 RISC 已经主导了移动设备市场。RISC-V 历史 RISC的首字母缩略词是在1980年左右由加州大学伯克利分校的David Patterson教授创造的,他和斯坦福大学的John Hennessy教授共同创作了著名的书籍《计算机组织与设计》和《计算机体系结构:定量方法》。由于他们在RISC架构上的突出贡献,他们在2017年获得了ACM A.M图灵奖。从1980年到2010年,第五代RISC研究项目的开发开始了,并最终被称为RISC-V。RISC-V Interna[](http://www.**/tags/ti/)TIonal— 一个开放的 ISA RISC-V是一种开放式指令集架构(ISA),这意味着您可以自由地在微处理器或微控制器中实现RISC-V CPU,而无需向任何人支付使用此ISA的版税。 RISC-V InternaTIonal是一个全球性的非营利组织,拥有并维护RISC-V ISA知识产权。其主要目标之一是保持RISC-V的设计基于简单性和性能,而不是专注于商业利益。出于这个原因,RISC-V InternaTIonal依赖于其成员,这些成员代表了微处理器生态系统群体,从个人到Google,Intel和Nvidia等组织。成为会员有很多好处,包括有可能为ISA的设计做出贡献,并投票批准拟议的变更。在图1中,你可以看到多年来RISC-V发展的高层次时间表。 图 1. 自2010年成立以来,RISC-V一直受到微处理器行业的好评,并且在硬件和软件方面的采用一直在稳步增长 RISC-V ISA和扩展的约定 作为始于1980年的第五代研究项目,RISC-V是一个经验丰富的架构,旨在成功地解决过去其他人可能失败的问题,RISC-V旨在从过去任何潜在的错误中吸取教训。因此,RISC-V被设计为模块化ISA,而不是传统的增量ISA。这意味着RISC-V实现由一个强制性的基本ISA和许多ISA扩展组成,因此可以根据应用程序的需求定制CPU。自定义 ISA 的命名约定由字母 RV(对于 RISC-V)后跟位宽度和变体的标识符组成。**例如,RV32IMAC(如图 2 所示)表示:**RV32I:具有基本整数 ISA 的 32 位 CPU M:整数乘法和除法扩展 A:原子指令扩展 C:压缩指令扩展
图 2.RV32IMAC ISA的指令集显示了RISC-V的模块化(非增量)特性。必需的基本 ISA 与一组扩展名组合在一起 编译器会被告知目标 CPU 中包含的扩展,以便它生成尽可能好的代码。如果代码包含来自缺少扩展的指令,则[color=rgb(12, 147, 228) !important]硬件将捕获并执行标准库中的软件函数。基本整数 ISA RV32I 基本整数 ISA 仅包含 47 条指令,即可实现绝大多数必要的操作,以实现 32 位整数的基本功能(其 64 位变体为 RV64I)。此 ISA 以 32 位编码,包括以下说明:* 加法 基本 ISA 还指定了 32 个 CPU 寄存器(均为 32 位宽)以及程序计数器。唯一的特殊寄存器是x0,它总是读作0,就像以前的RISC ISA中实现的那样。尽管所有寄存器(表2中显示的一些寄存器)都可用于一般用途,但应用程序二进制[color=rgb(12, 147, 228) !important]接口(ABI)根据其调用约定为每个寄存器指定了用途。这意味着一些寄存器应该保存临时或已保存的数据、指针、返回地址等。
表 2.RV32I寄存器文件显示RISC-V应用二进制接口中指定的硬件寄存器名称及其分配的功能。
|