来源:半导体行业观察内容(ID:icbank)编译自allaboutcircuits
本文是 RISC-V 基础知识的入门读物。开放架构理念和模块化 ISA 技术描述,以及一些商业 RISC-V 实现微处理器。
RISC-V 开放指令集架构是当今可用的专有架构(如 ARM 那些)流行的替代方案。自诞生以来,RISC-V 在学术和商业上的逐渐普及。
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 首字母缩写词是 1980 加州大学伯克利分校年左右由加州大学伯克利分校组成。 David Patterson 教授创造的,他与斯坦福大学的 John Hennessy 教授合作创作了他们著名的作品《计算机组织与设计》和《计算机架构:定量方法》。由于他们在 RISC 他们在架构上工作 2017 年获得了ACM AM 图灵奖。
从 1980 年快进到 2010 年,第五代 RISC 研究项目的开发已经开始,最终被称为 RISC-V。
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 一直受到微处理器行业的好评,硬件和软件的利用率一直在稳步增长。
作为始于 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 为了生成可能的最佳代码,所包含的扩展。如果代码包含缺乏扩展指令,硬件将捕获并执行标准库中的软件功能。
只有 47 条指令,RV32I 基本整数 ISA 为了实现绝对必要的操作 32 位整数的基本功能(其 64 位变体是 RV64I)。此 ISA 以 32 包括以下指令:
添加
减法
位运算
加载和存储
跳跃
基本 ISA 还指定了 32 个 CPU 它们都是寄存器 32 位宽,加上程序计数器。唯一的特殊寄存器是 x它总是读 0,就像很多以前一样 RISC ISA 中实现的那样。
尽管表 2 所有显示在一般用途中的寄存器,但应用程序二进制接口 (ABI) 根据调用协议,每个寄存器都指定了用途。这意味着一些寄存器应该保存临时或保存的数据、指针、返回地址等。
表 2. RV32I 寄存器文件显示硬件寄存器名称及其在 RISC-V 应用程序二进制接口中指定的功能。
RV32M 扩展实现了 8 指令来执行乘法和除法整数(RV64M 在这 8 在条指令的基础上增加了条指令 5 条指令)。
RV32F 扩展为 32 位浮点数和 26 增加了条浮点指令 32 独立寄存器。RV32D 扩展使用 32 个 64 位浮点寄存器支持双精度 64 位浮点数。
RV32C 扩展是对 RISC-V ISA 巧妙的补充,因为它为现有指令的特殊子集提供了另一种 16 位编码。
在分析了现代优化编译器生成的无数行代码后,RISC-V 创作者确定了最流行的指令,并创建了指令 16 位置版放弃了它的完整性 32 无论如何,位版本的一些功能,RV32I 基础 ISA。
这种压缩是可能的:
有些寄存器比其他寄存器更受欢迎。
通常会覆盖一个操作数。
立即数有一些首选。
这允许将有限数量的寄存器指令编码为操作数,仅指定 2 而不是寄存器 3 一、使用小的立即数,这些都在 16 位中。
通过最常用的压缩指令,您有更好的机会显示压缩程序。
现代微处理器所期望的所有功能都有许多额外的扩展。这包括嵌入式基础 ISA (RV32E)、原子操作 (A)、位操作 (B)、向量操作 (V) 的扩展,等等。
许多公司在其微控制器、微处理器和 SoC 中制造各种 RISC-V 内核。一个例子是 SiFive,基于第一家制造 RISC-V ISA 芯片公司。他们的芯片范围从低端微控制器到高性能 SoC。
图 3. RISC-V 框图示例,即 P550 高性能应用处理器的框图。
然而,实际的 RISC-V 项目并不局限于集成电路。在许多领域,如编译器、模拟器、开发环境、操作系统等,有大量正在进行的项目。
总而言之,RISC-V 是计算机体系结构世界中一个令人兴奋的话题,今天是参与其中的好时机。如果您想了解有关此运动的更多信息,请务必访问RISC-V International。
★ 点击文末【阅读原文】,可查看本文原文链接!
入群请加小编微信:eetrend89
(添加请备注公司名和职称)
是一家总部位于英国的公司,致力于研发芯片和软件知识产权(IP),基于Imagination IP的产品已在全球数十亿人的电话、汽车、家庭和工作场所中使用。获取更多物联网、智能穿戴、通信、汽车电子、图形图像开发等前沿技术信息,欢迎关注 Imagination Tech!