精简指令集计算机的复兴案例:通过宏操作融合避免 RISC-V 的 ISA 膨胀
硬件体系结构
2016-07-11 v1
摘要
本报告论证了设计良好的精简指令集计算机 (RISC) 可以匹配甚至超越现有商业复杂指令集计算机 (CISC) 的性能和代码密度,同时保持支撑原始 RISC 目标的简单性和成本效益。我们首先比较了流行的专有 ARMv7、ARMv8、IA-32 和 x86-64 指令集架构 (ISA) 与免费开放的 RISC-V RV64G 和 RV64GC ISA 在运行 SPEC CINT2006 基准测试套件时的动态指令计数和获取的动态指令字节数。RISC-V 被设计为非常小的 ISA 以支持广泛的实现,并且其编译器工具链不够成熟。然而,我们观察到在 SPEC CINT2006 上,RV64G 执行的指令平均比 x86-64 多 16%,比 IA-32 多 3%,比 ARMv8 多 9%,但比 ARMv7 少 4%。CISC x86 实现将复杂指令分解为更小的内部类 RISC 微操作,而 RV64G 指令计数在 x86-64 退役微操作计数的 2% 范围内。RV64GC 是 RV64G 的压缩变体,是所研究的密度最高的 ISA,其获取的动态指令字节数比 x86-64 少 8%。我们观察到,RISC-V 指令计数增加的大部分是由于一小部分常见的多指令习语。利用这一事实,通过利用宏操作融合,RV64G 和 RV64GC 的有效指令计数平均可以减少 5.4%。将压缩的 RISC-V ISA 扩展与宏操作融合相结合,提供了最密集的 ISA 和每个程序最少的退役动态操作,从而降低了向 ISA 添加更多指令的动机。这种方法保留了适用于低端和高端实现的单个简单 ISA,其中高端实现可以通过微架构技术提升性能。
引用
@article{arxiv.1607.02318,
title = {The Renewed Case for the Reduced Instruction Set Computer: Avoiding ISA Bloat with Macro-Op Fusion for RISC-V},
author = {Christopher Celio and Palmer Dabbelt and David A. Patterson and Krste Asanović},
journal= {arXiv preprint arXiv:1607.02318},
year = {2016}
}