RISC-V科普:理解开源ISA架构

架构师技术联盟

共 4200字,需浏览 9分钟

 ·

2022-06-21 11:35


本文是 RISC-V 基础知识的入门读物。公开了开放式架构理念,以及模块化 ISA 的技术描述,以及一些商业 RISC-V 微处理器实现。


相关文章:芯片快速发展,国内厂商如何突围?(2022)


RISC-V开放指令集架构是当今可用的专有架构(例如 ARM 的那些)的流行替代方案。自诞生以来,RISC-V在学术和商业上的逐渐普及。更多内容参考阅读:RISC-V指令架构与实践(1)、RISC-V指令架构与实践(2)、2021年RISC-V行业概览、RISC-V芯片产业指令集架构研究、RISC-V手册开源指令集指南、龙芯LoongArch指令集全集


了解 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。


原文链接:
https://www.allaboutcircuits.com/technical-articles/introductions-to-risc-v-instruction-set-understanding-this-open-instruction-set-architecture/


下载链接:
ARM架构参考手册及文档
ARM的体系结构与编程.pdf
ARM架构参考手册.pdf
ARM架构参考手册ARM V9.pdf
CPU之战:ARM vs Intel.pdf
ARM系列处理器应用技术完全手册
CPU和GPU研究框架合集
ARM CPU处理器资料汇总(1)
ARM CPU处理器资料汇总(2)
ARM系列处理器应用技术完全手册
CPU和GPU研究框架合集
1、行业深度报告:GPU研究框架
2、信创产业研究框架
3、ARM行业研究框架
4、CPU研究框架
5、国产CPU研究框架
6、行业深度报告:GPU研究框架
Arm架构服务器的开源应用
Arm架构服务器和存储
服务器硬件体系架构浅析
服务器市场现状研究
RISC-V指令架构与实践(1)
RISC-V指令架构与实践(2)
2021年RISC-V行业概览
ARM系列处理器应用技术完全手册
CPU和GPU研究框架合集
面向AIoT的RISC-V原生操作系统研究
深度报告:RISC-V异构IoT全新架构
RISC-V芯片产业指令集架构研究
玄铁C910实现RISC-V用户自定义指令
面向AIoT的RISC-V原生操作系统研究
RISC-V手册开源指令集指南


本号资料全部上传至知识星球,更多内容请登录智能计算芯知识(知识星球)星球下载全部资料。


来源:智能计算芯世界
      



转载申明:转载本号文章请注明作者来源,本号发布文章若存在版权等问题,请留言联系处理,谢谢。


推荐阅读

更多架构相关技术知识总结请参考“架构师全店铺技术资料打包”相关电子书(37本技术资料打包汇总详情可通过“阅读原文”获取)。

全店内容持续更新,现下单“全店铺技术资料打包(全)”,后续可享全店内容更新“免费”赠阅,价格仅收198元(原总价350元)。



温馨提示:

扫描二维码关注公众号,点击阅读原文链接获取架构师技术全店资料打包汇总(全)电子书资料详情


浏览 42
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报