为什么会出现RISC

您所在的位置:网站首页 指令集架构实例 为什么会出现RISC

为什么会出现RISC

2023-04-15 20:42| 来源: 网络整理| 查看: 265

从本次文章开始,正式的介绍RISC-V,本文参考的文档为RISC-V-Reader-V2,需要参考文献可以私信我。

在本章节中,1.1节主要讲RISC-V具备的特点、1.2节中讲解以往指令集的特点、1.3节中讲设计优秀ISA需要考虑的问题、1.4节对之后章节的简介。

1.1 导语

RISC-V整体目标:成为一个通用的指令集架构(ISA),体现在以下几点:

1.适应各种规模的处理器。(包括小型的嵌入式设备和高性能的计算机等)

2.兼容各种流行的软件栈和编程语言。

3.该适应所有实现技术,包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、全定制芯片,甚至未来的设备技术。

4.对所有微体系结构样式都有效,例如微编码或硬连线控制,顺序或乱序执行流水线,单发射或超标量等。

5.支持广泛的专业化,成为定制加速器的基础,因为随着摩尔定律的消退,加速器的重要性日益提高。

6.基础的指令集架构不应该改变。

RISC-V是最近诞生的指令集架构,并且是开源的指令集,在出现的同时成立了RISC-V基金会,保证RISC-V的稳定性。

1.2 增量式与模块化

计算机体系结构的传统方法是增量ISA(意思是新处理器不仅必须实现新的ISA扩展,还必须实现过去的所有扩展。目的是为了保持向后的二进制兼容性,这样几十年前程序的二进制 版本仍然可以在最新的处理器上正确运行。)这样的指令集长期发展会导致指令集数目越来越多。

RISC-V指令集是模块化(与增量ISA相对)的,核心为RV32I的基础ISA,运行一个完整的软件栈,由于。RV32I是固定,给操作系统开发人员和汇编语言程序员提供了稳定的目标。这种模块化特性使得RISC-V具有了袖珍化、低能耗的特点,而这对于嵌入式应用至关重要。

RISC-V模块化的举例:

当RISC-V编译器得知当前硬件包含哪些扩展后,可以生成当前硬件条件下的最佳代码。把代表扩展的字母附加到指令集名称之后作为指示。例如,RV32IMFD是将乘法(RV32M)、单精度浮点(RV32F)和双精度浮点(RV32D)的扩展添加到了基础指令集(RV32I)中。

1.3 优秀的ISA设计需要考虑的问题。

1.成本。成本对晶粒面积十分敏感,公式:cost ≈ f(diearea2)。

2.简洁性。一个简单的ISA一方面可以缩小芯片面积,另一方面可以缩短芯片的设计和验证时间,在开发过程中,还可以降低文本成本。

3.性能。这里的性能计算公式省略。

4.架构和具体实现的分离。架构和实现功能未分离的具体体现:机器语言程序员了解架构后能写出正确的程序,却不一定能保证性能。所以程序员为了在性能和成本上对某一特定时间的某种实现进行优化,而加入新的指令,但是加入的指令影响了其它功能性能,这不利于之后的开发中实现。(具体实例:MIPS-32 ISA 延迟分支)。

5.提升空间。随着摩尔定律(Moore’s law)的终结,对性价比进行重大改进的唯一途径是为特定领域添加自定义指令。这意味着如今的ISA必须保留操作码空间以供未来的提升。节省操作码空间可以为提升指令集的操作空间。

缺少操作码空间的例子:

ARM-32 的架构师后来试图通过向以前统一的 32 位 ISA 中添加 16 位指令来缩减代码长度,但根本就没有空间。因此,唯一的解决方案是先用 16 位指令来创建一个新的 ISA(Thumb),然后同时用 16 位指令和 32 位指令来组成另外一个 ISA(Thumb-2),并用一个模式位在两种长度的指令间切换。为了切换模式, 程序员或编译器会跳转到一个最低有效位为1 的字节地址。这种方法有效的前提是,在正常 的 16 位和 32 位指令中,该位应该是0。

6.程序的大小。程序越小,存储程序所需要的芯片面积越小(程序存储器越小),而且芯片的成本也会降低。

7.易于编程/编译/连接。决定此因素的主要是编译器在寄存器方面的分配,因为寄存器中的数据访问比在存储器中访问数据快。其中RSIC-V有32个整型的寄存器,ARM-32 有16个寄存器,x86-32有8个寄存器。

补充说明:ARM-32、MIPS-32和x86-32的概念

32 位地址ARM ISA有许多版本,之后提到的ARM-32指的是ARM v7 ISA。

MIPS-32指的是原版,称为MIPS I。

x86-32 表示法通常是指 IA- 32,它是 x86 ISA的32位地址版本。

1.4 介绍RISC-V相关内容的顺序

第二章:RISC-V基础整数指令集

第三章:RISC-V汇编语言

第四章:RISC-V乘法和除法指令

第五章:RISC-V单精度和双精度浮点数(RV32F和RV32D)

第六章:RISC-V原子指令

第七章:RISC-V压缩指令

第八章:RISC-V向量

第九章:RV64(64位地址指令)

第十章:RV32/64特权架构

第十一章:RV未来的可选扩展

第十二章:RISC-V指令列表



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3