RISC-V 简介

RISC-V

RISC-V 是一个最新的,清晰的,简约的,开源的 ISA,它以过去 ISA 所犯过的错误为鉴。RISC-V 架构师的目标是让它在从最小的到最快的所有计算设备上都能有效工作。遵循 冯诺依曼 70 年前的建议,这个 ISA 强调简洁性来保证它的低成本,同时有着大量的寄存 器和透明的指令执行速度,从而帮助编译器和汇编语言程序员将实际的重要问题转换为适当的高效代码。

这个袖珍的,开源的 ISA 于2011 年推出,现在由一个基金会提供支持。该基金会通过 长期讨论后严格依据技术理由添加可选扩展的方式来改进它。开源性让RISC-V 的免费 的、共享的实现成为可能,从而降低了成本,也减少了将不为人知的邪恶秘密隐藏在处理 器之中的可能性。

然而,只有硬件不能组成一个系统。软件开发成本可能使硬件开发成本相形见绌。因此虽然稳定的硬件很重要,但稳定的软件更甚于此。这些软件需要包括操作系统,引导加载程序,参考软件和大众化的软件工具。基金会保证整个ISA 的稳定性,而固定不变的基 础指令集意味着核心的 RV32I 作为软件栈的目标永远不会改变。通过它的普适性和开源 性,RISC-V 可以挑战主流专有 ISA 的主导地位。

如果说用一个词形容RISC-V,优雅!

RISC-V的定位

RISC-V(“ RISC five”)的目标是成为一个通用的指令集架构(ISA):

  • 它要能适应包括从最袖珍的嵌入式控制器,到最快的高性能计算机等各种规模的处理器。
  • 它应该能兼容各种流行的软件栈和编程语言。
  • 它应该适应所有实现技术,包括现场可编程门阵列(FPGA) 、专用集成电路 (ASIC) 、全定制芯片,甚至未来的设备技术。
  • 它应该对所有微体系结构样式都有效:例如微编码或硬连线控制;顺序或乱序执行 流水线; 单发射或超标量等等。
  • 它应该支持广泛的专业化,成为定制加速器的基础,因为随着摩尔定律的消退, 加速器的重要性日益提高。
  • 它应该是稳定的,基础的指令集架构不应该改变。更重要的是,它不能像以前的专有指令集架构一样被弃用

RISC-V的与众不同之处

新兴与开源

RISC-V的不同寻常不仅在于它是一个最近诞生的指令集架构(它诞生于最近十 年,而大多数其他指令集都诞生于20世纪70到80年代),而且在于它是一个开源的指 令集架构。与几乎所有的旧架构不同,它的未来不受任何单一公司的浮沉或一时兴起 的决定的影响(这一点让许多过去的指令集架构都遭了殃)。它属于一个开放的,非 营利性质的基金会。RISC-V基金会的目标是保持RISC-V的稳定性,仅仅出于技术原 因缓慢而谨慎地发展它,并力图让它之于硬件如同Linux之于操作系统一样受欢迎。

计算机体系结构的传统方法是增量ISA,新处理器不仅必须实现新的ISA扩展,还必须 实现过去的所有扩展。目的是为了保持向后的二进制兼容性,这样几十年前程序的二进制 版本仍然可以在最新的处理器上正确运行。这一要求与来自于同时发布新指令和新处理器 的营销上的诱惑共同导致了ISA的体量随时间大幅增长。

这个传统意味着x86-32(我们用它表示32位地址版本的x86)的每个实现必须实现过去 的扩展中的错误设计,即便它们不再有意义。

模块化ISA

RISC-V的不同寻常之处,除了在于它是最近诞生的和开源的以外,还在于:和几乎所 有以往的ISA不同,它是模块化的。它的核心是一个名为RV32I的基础ISA,运行一个完整 的软件栈。RV32I是固定的,永远不会改变。这为编译器编写者,操作系统开发人员和汇 编语言程序员提供了稳定的目标。模块化来源于可选的标准扩展,根据应用程序的需要, 硬件可以包含或不包含这些扩展。这种模块化特性使得RISC-V具有了袖珍化、低能耗的特 点,而这对于嵌入式应用可能至关重要。RISC-V编译器得知当前硬件包含哪些扩展后,便 可以生成当前硬件条件下的最佳代码。惯例是把代表扩展的字母附加到指令集名称之后作 为指示。例如,RV32IMFD将乘法(RV32M),单精度浮点(RV32F)和双精度浮点 (RV32D)的扩展添加到了基础指令集(RV32I)中。

参考
RISC-V 手册 第一章:https://gitee.com/xiaxiaobugs/learning/blob/master/risc-v/RISC-V.pdf

来源:CSDN - 夏筱
原文链接:https://blog.csdn.net/qq_40392804/article/details/108976306

最新文章