为什么在硬件中实现不MIPS指令BLT?(Why isn't MIPS BLT instru

2019-10-18 23:40发布

我想问一下,为什么BLT指令不是MIPS ISA的一部分。 相反,他们实际上使之成为组装程序员伪指令。 我简直不认识的区别BLTBLTZ (这是MIPS ISA的一部分),但从硬件实现点。

顺便说这本书“计算机组成与设计”说:

听取冯·诺伊曼的关于“装备” MIPS架构的简单警告不包括分支不到,因为它太复杂,要么会延长时钟周期或将采取额外的时钟周期的每个指令,这两个快指令更有用。

但我仍然不知道为什么那些可能发生的事情。

Answer 1:

这是很容易与零比较

因为小于零,其实只是一个符号位检查,而小于是减法,然后跳转基于结果的符号位。 因此BLTZ要快得多。 类似地, >= 0也只需要1个符号位的检查。 <= 0> 0需要另一个零检查,但它是相当微不足道的。

事实上,这不是常见的架构支持两个值之间直接在一个指令跳跃和对比,虽然大多数将基于与0即使CISC架构的价值具有跳跃像86需要用户进行比较,然后跳



文章来源: Why isn't MIPS BLT instruction implemented in hardware?