bigbing 发表于 2023-6-22 12:28:30

为什么会出现RISC-V

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]
查看完整版本: 为什么会出现RISC-V