有人可以向我解释(RISC 与 CISC)与 RISC-V ISA 之间的巨大差异吗?我在互联网上找不到 CISC 和 RISC-V 之间的任何相关区别。
2 回答
RISC-V 是伯克利开发的一种新的 ISA,用于协助研究和教育。它是开放的、干净的、易于扩展的(而且也是现实的)。
构建研究处理器的一个常见问题是找到一个可以使用的 ISA,它不会与遗留决策(延迟槽、寄存器窗口)混淆,不受专利保护,并且有足够的操作码空间来探索新的指令/加速器/处理器微-架构。
公开版本 (v2.0) 即将发布,您可以在riscv.org阅读当前草案。(披露:我使用 RISC-V 进行自己的研究,我坐在设计和实现它的人旁边)。[编辑:它已于 2014 年 5 月正式发布 ( http://riscv.org/download.html#tab_isaspec)]。
与其他 ISA 相比,它可能与 MIPS 和 ARMv8 最相似(RISC-V v1.0 实际上是在 ARMv8 出来之前发布的)。它是一个加载存储架构(没有像 x86 这样的寄存器内存操作,除了一组 AMO)。RISC-V 的某些部分可以说是“CISC-y”,例如出于能量原因支持压缩指令的选项(16b)或更大的指令以获得更多操作码空间(可变指令长度是可选的超集, ISA 的基本集是所有 32b 指令)。FMA 也感觉有点 CISC-y,具有三个源操作数和两个操作。但现在我们正在进入关于什么是 CISC 和什么是 RISC 的意见领域。归根结底,RISC-V 是一个非常容易解码的 ISA,
RISC-V 是一个研究 ISA,但已经有多个 FPGA 软核实现,更不用说模拟器了。它与 MIPS(以及 NIOS 2、MicroBlaze、Alpha、LM32...)最相似,但一个重要的区别是如何处理分支:
可见分支延迟槽在很大程度上被认为是复杂的超标量实现,并且对于编译器来说是一个挑战。随着分支预测的进步,它们不再需要,因此 RISC-V 省略了它们。此外,由于分支可以稍后在流水线中解析,RISC-V 的条件分支可以比较任意两个寄存器的相等性和排序。