RISC-V 开放指令集架构是当今可用的专有架构(例如 ARM 的那些)的盛行替代方案。自出身以来,RISC-V 在学术和商业上的逐渐遍及。
理解 RISC 与 CISC
RISC 是 1980 年代提出的一种打算机架构哲学,作为英特尔、摩托罗拉和险些所有其他人当时供应的商业架构的替代方案。这种架构最初被称为“繁芜指令集打算机”或 CISC,它依赖密集指令集来实现被认为有用和必要的各种操作。然而,包括IBM 和加州大学伯克利分校在内的许多研究团队创造,编译器常日终极利用这些繁芜指令集的一小部分。这一创造和其他创造引发了对更大指令集的需求的质疑,将重点放在大略性作为提高效率的一种手段。

总体而言,RISC 在许多方面与 CISC 是相反的。常日,CISC中心处理单元 (CPU)有一些寄存器和大量指令,个中大部分都可以访问内存,而 RISC CPU 有很多寄存器和非常有限的指令集,内存访问仅限于少数加载和存储指示。
为相识释繁芜指令和大略指令之间的差异,表 1 显示了利用 CISC CPU( NXP 的 s08)和 RISC CPU(ARM Cortex M0+ )递增计数器变量的代码比较。
表 1. CISC 和 RISC 代码之间的示例比较。
在该表中,CISC 许可在单条指令中递增变量,而 RISC 须要通过加载和存储来访问内存。只管这显示了代码大小的差异,但这并不是 apple to apple的比较,由于架构之间存在许多差异,因此这并不能证明一个在技能上优于另一个。
本日,英特尔 x86/x64 架构证明了 CISC 微处理器没有被 RISC 取代,而 ARM 架构证明了 RISC 已经主导了移动设备市场。
RISC-V 历史
RISC 的首字母缩写词是 1980 年旁边由加州大学伯克利分校的 David Patterson 教授创造的,他与斯坦福大学的 John Hennessy 教授互助产生了他们著名的著作《打算机组织与设计》和《打算机架构:一种定量方法》。由于他们在 RISC 架构上的事情,他们在 2017 年得到了ACM AM 图灵奖。
从 1980 年快进到 2010 年,第五代 RISC 研究项目的开拓开始了,终极被称为 RISC-V。
RISC-V International——一个开放的 ISA
RISC-V 是一种开放指令集架构 (ISA),这意味着您可以自由地在微处理器或微掌握器中实现 RISC-V CPU,而无需向利用此 ISA 的任何人支付版税。
RISC-V International 是一家环球非营利组织,拥有并掩护 RISC-V ISA 知识产权。其紧张目标之一是保持 RISC-V 的设计基于大略性和性能,而不是专注于商业利益。出于这个缘故原由,RISC-V International依赖于其代表微处理器生态系统群体的成员,从个人到谷歌、英特尔和英伟达等组织。成为会员有很多好处,包括为 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)后跟位宽和变体标识符组成。
例如,图 2 所示的 RV32IMAC 表示:
RV32I:带有基本整数 ISA 的 32 位 CPU
M:整数乘除法扩展
A:原子指令扩展
C:压缩指令扩展
图 2. RV32IMAC ISA 的指令集显示了 RISC-V 的模块化(非增量)特性。逼迫性基本 ISA 与一组扩展相结合 。
编译器被奉告目标 CPU 中包含的扩展,以便它天生可能的最佳代码。如果代码包含短缺扩展的指令,则硬件会捕获并实行标准库中的软件功能。
基本整数 ISA
只有 47 条指令,RV32I 基本整数 ISA 实现了绝对必要的操作,以实现 32 位整数的基本功能(其 64 位变体是 RV64I)。此 ISA 以 32 位编码,包括以下指令:
添加
减法
位运算
加载和存储
跳跃
分支机构
基本 ISA 还指定了 32 个 CPU 寄存器,它们都是 32 位宽,加上程序计数器。唯一的分外寄存器是 x0,它总是读取 0,正如在许多以前的 RISC ISA 中实现的那样。
只管表 2 中显示的所有寄存器都可用于一样平常用场,但运用程序二进制接口 (ABI) 根据其调用约定为每个寄存器指定了用场。这意味着一些寄存器该当保存临时或保存的数据、指针、返回地址等。
表 2. RV32I 寄存器文件显示硬件寄存器名称及其在 RISC-V 运用程序二进制接口中指定的功能。
RISC-V 乘法和浮点
RV32M 扩展实现了 8 条指令来对整数实行乘法和除法(RV64M 在这 8 条指令的根本上增加了 5 条指令)。
RV32F 扩展为 32 位浮点数和 26 条浮点指令增加了 32 个独立的寄存器。同样,RV32D 扩展利用 32 个 64 位浮点寄存器,支持双精度 64 位浮点数。
RISC-V 压缩指令
RV32C 扩展是对 RISC-V ISA 的奥妙补充,由于它为现有指令的分外子集供应了另一种 16 位编码。
在剖析了当代优化编译器天生的无数行代码后,RISC-V 的创建者确定了最盛行的指令,并创建了 16 位版本,放弃了其完全 32 位版本的部分功能,这些功能在无论如何,RV32I 根本 ISA。
由于以下解释,这种压缩是可能的:
1.有些寄存器比其他寄存器更受欢迎。
2.一个操作数常日会被覆盖。
3.有一些首选的立即数。
这许可将有限数量的寄存器的指令编码为操作数,仅指定 2 个寄存器而不是 3 个,利用小的立即数,所有这些都在 16 位中。
通过压缩最常用的指令,您有更好的机会显著压缩程序。
其他 RISC-V 扩展
还有许多额外的扩展,它们实现了当代微处理器所期望的所有功能。这包括嵌入式根本 ISA (RV32E)、原子操作 (A)、位操作 (B)、向量操作 (V) 的扩展,等等。
RISC-V 实现
许多公司在其微掌握器、微处理器和 SoC 中制造各种 RISC-V 内核。一个例子是 SiFive,第一家制造基于 RISC-V ISA 的芯片的公司。他们的芯片范围从低端微掌握器一贯到高性能 SoC。
图 3. RISC-V 框图示例,即 P550 高性能运用场置器的框图。
然而,实际的 RISC-V 项目并不局限于集成电路。在许多领域,如编译器、仿照器、开拓环境、操作系统等,有大量正在进行的项目。
总而言之,RISC-V 是打算机体系构造天下中一个令人愉快的话题,本日是参与个中的好机遇。如果您想理解有关此运动的更多信息,请务必访问RISC-V International。
★ 点击文末【阅读原文】,可查看本文原文链接!
欢迎订阅摩尔精英旗下更多"大众年夜众号:摩尔精英、半导体行业不雅观察、摩尔App\公众 data-from=\"大众0\公众>
免责声明:本文由作者原创。文章内容系作者个人不雅观点,半导体行业不雅观察转载仅为了传达一种不同的不雅观点,不代表半导体行业不雅观察对该不雅观点赞许或支持,如果有任何异议,欢迎联系半导体行业不雅观察。
本日是《半导体行业不雅观察》为您分享的第3069内容,欢迎关注。
晶圆|集成电路|设备|汽车芯片|存储|台积电|AI|封装




