为什么要有RISC-V?
导言
RISC-V的目标是成为一个通用的指令集架构(ISA)
- 能适应各类控制器到处理器
- 能兼容各种流行的软件栈和编程语言
- 适应所有实现技术
- 对所有为体系结构样式都有效
- 支持广泛的专业化,成为定制加速器的基础
- 稳定的,基础的指令集架构不应该改变
模块化与增量型ISA
- 计算机体系结构的传统方法是增量ISA,新处理器不仅必须实现新的ISA扩展,还必须实现过去的所有扩展。
- x86-32(32位地址版本的x86)的每个实现必须实现过去的扩展中的错误设计,即便他们不在有意义。
- RISC-V与以往ISA不同指出在于它是模块化的。
- RISC-V的核心是RV32I的基础ISA,运行一个完整的软件栈。RV32I是固定的,永远不会改变的。
- 模块化来源于可选的标准扩展,根据需求和硬件变化。RISC-V的特点为袖珍化、低能耗。
RISC-V编译器得知当前硬件包含哪些扩展后,便可以生成当前硬件条件下的最佳代码。。
惯例把代表扩展的字符附加到指令集名称之后作为标示。
例如:RV32IMFD=RV32M(乘法)+RV32F(单精度浮点)+RV32D(双精度浮点)+基础指令集RV32I
ISA设计
设计ISA七大基本准则
- 成本
- 简洁性
- 性能
- 架构和具体实现的分离
- 提升空间
- 程序大小
- 易于编程/编译/链接
成本
处理器通过集成电路实现,通常称为芯片或晶粒,成本对晶粒面积十分敏感:
c
o
s
t
≈
f
(
d
i
e
a
r
e
a
2
)
cost≈f(die area^2)
cost≈f(diearea2)
简洁性
架构师希望保持ISA的简洁性,从而缩小实现ISA的处理的尺寸。ISA的简洁性还能缩短芯片的设计和验证时间,这些是硬件开发的大部分成本。此外还可降低文档成本。
ISA的简洁性是最为重要的指标
性能
计时一个简单的ISA可能在每个程序执行的指令数方面多于复杂的ISA,但它可以通过更快的时钟频率或更快的平均单条指令周期数CPI来弥补。
架构和具体实现的分离
延迟分支是MIPS-32 ISA的一个令人遗憾的例子。
提升空间
随着摩尔定律的终结,对性价比进行重大改进的唯一途经是为特定领域(深度学习,增强显示,组合优化,图形等)添加自定义指令。这意味这如今的ISA必须保留操作码空间一提供未来的提升。
程序大小
- 程序越小,存储它所需的芯片面积就越小(这对于嵌入式设备来说是一个巨大的成本)
这个问题促使ARM架构师在Thumb和Thumb-2 ISA中追加了一些更短的指令。
- 更小的程序还能减少指令缓存的未命中问题,从而节省功耗,也提高了性能。
- 端的代码长度是ISA架构师的目标之一
易于编程/编译/链接
有了更多寄存器,编译器和汇编程序员的工作会更加轻松
总结
- RISC-V是一个最新的,清晰的,开源的ISA,它以过去ISA所犯过的错误为鉴
- RISC-V架构师的目标是让它从最小的到最快的所有计算设备上都能有效功能
- 准寻冯诺依曼70年前的建议,这个ISA强调简洁性来保证它的低成本,同时有着大量的寄存器和透明的指令执行速度,从而帮助编译器和汇编语言程序员讲实际的重要问题转换为适当的高校代码。
复杂度的一个标准是文档的大小
- RISC-V于2011年退出,现右一个基金会提供支持。
- 软件开发成本可能使硬件卡法成本相形见绌,因此虽然稳定的硬件很重要,但稳定的软件更甚于此。通过它的普适性和开源行,RISC-V可以挑战主流转悠ISA的主导地位。
现右一个基金会提供支持。 - 软件开发成本可能使硬件卡法成本相形见绌,因此虽然稳定的硬件很重要,但稳定的软件更甚于此。通过它的普适性和开源行,RISC-V可以挑战主流转悠ISA的主导地位。
- RISC-V是一个优雅的ISA。
老师上课的内容比较杂,希望能尽快掌握RISC-V通过考试🙌