为什么MIPS BLT指令不是用硬件实现的?

时间:2013-11-12 08:11:13

标签: branch mips hardware cpu-architecture

我想问为什么BLT指令不是MIPS ISA的一部分。相反,它们实际上使它成为汇编程序员的伪指令。从硬件实现的角度来看,我无法识别BLTBLTZ(这是MIPS ISA的一部分)之间的区别。

顺便提一下,本书“计算机组织与设计”表示:

  

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

但我仍然不知道为什么会发生这种情况。

1 个答案:

答案 0 :(得分:3)

与零

进行比较要容易得多

因为小于零实际上只是一个符号位检查,而小于是一个减法,然后根据结果的符号位跳转。因此BLTZ要快得多。同样,>= 0也只需要1个符号位检查。 <{1}}或<= 0需要进行另一次零检查,但这相当简单。

事实上,架构支持在单个指令中直接在两个值之间进行跳转和比较并不常见,尽管大多数都会根据与0相关的值进行跳转。即使像x86这样的CISC架构也需要用户比较然后跳转