RISC-V与其他ISA的区别

7
有人能向我解释一下(RISC vs CISC)与RISC-V ISA之间的区别吗?我在互联网上找不到CISC和RISC-V之间的任何相关差异。

RISC - 简化指令集计算机和CISC - 复杂指令集计算机。 - squiguy
3
我猜你至少读过有关RISC/CISC的维基百科文章。RISC-V是一个主要用于教育目的的指令集架构(ISA)。更多细节可以在 http://inst.eecs.berkeley.edu/~cs152/sp12/handouts/riscv-spec.pdf 找到。 - dbrank0
2个回答

10
RISC-V是在伯克利开发的新型ISA,旨在促进研究和教育。它是开放、清晰且易于扩展(也很现实)。构建研究处理器的一个常见问题是找到一个不混杂着遗留决策(延迟槽、寄存器窗口)的ISA,没有受到专利保护,并且具有足够的操作码空间以探索新的指令/加速器/处理器微架构。即将推出公共版本(v2.0),您可以在riscv.org上阅读当前草案。(声明:我使用RISC-V进行自己的研究,并坐在设计和实现它的人旁边)。[编辑:已于2014年5月正式发布(http://riscv.org/download.html#tab_isaspec)。]
与其他的指令集架构(ISA)相比,RISC-V可能最像MIPS和ARMv8(实际上,RISC-V v1.0发布之前,ARMv8并未推出)。RISC-V是一种加载-存储(load-store)架构(没有类似于x86的寄存器-内存操作,除了一组AMOs)。RISC-V的一些部分可能被认为是“CISC-y”,例如支持压缩指令以节省能源(16位),或支持更大的指令以获得更多的操作码空间(变长指令长度是可选的超集,ISA的基本集合是所有32位的指令)。此外,FMA 操作感觉也有点“CISC-y”,具有三个源操作数和两个操作。但现在我们正在进入关于什么是CISC和什么是RISC的意见领域。归根结底,RISC-V是一种非常容易解码的ISA,其中所有指令都很容易进行调度和危险检查(没有奇怪的副作用,正如您在CISC ISA中所发现的那样)。

FMA并不是作为单独的a*b + c操作实现的;请记住,它必须避免对a*b结果进行任何舍入;这是其中的一部分。还要记住,乘法可以分解为部分积的加法,因此将其添加到现有操作数而不是零几乎不会增加成本。(这部分论点在整数乘累加(MAC)指令中效果更好,因为没有指数移位)。因此,大多数成本用于支持三输入指令以进行调度/危险检测跟踪。 - Peter Cordes

7
RISC-V是一种研究用的ISA,但已经有了多个FPGA软核实现,更不用说模拟器了。它最类似于MIPS(还有NIOS 2,MicroBlaze,Alpha,LM32等等),但一个重要的区别在于分支的处理方式:
可见分支延迟槽已被认为会使超标量实现复杂化,并且对编译器来说很具挑战性。随着分支预测技术的进步,它们不再需要,因此RISC-V省略了它们。此外,由于分支可以在管道后面解决,RISC-V的条件分支可以比较任意两个寄存器的相等性以及顺序。

我想补充一下,根据他们在(http://riscv.eecs.berkeley.edu/)上找到的用户级手册,他们还制造了半打实现RISC-V的设计(用于研究目的)。 - Chris
MIPS64r6(2014年)重新排列了操作码空间,并提供了无延迟槽分支指令。但它仍然必须支持传统的延迟分支,这使得微体系结构和异常返回格式变得复杂。 - Peter Cordes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接