MIPS单周期数据路径:执行了多少有用的减法和添加?

时间:2016-06-02 18:20:26

标签: mips

我有以下MIPS代码只执行一次,我需要计算总共执行的有用的添加和减少的数量。

L: sub $s0,$s1,$s2
slt $s3,$s0,$s4
lw $t0,0($sp)
add $t1,$t0,$s1
beq $t1,$t3,L

我认为共有11项行动:

the subtraction
PC+4
the subtraction for slt
PC+4
R[rs]+SignExtImm for lw
PC+4
the addition
PC+4 
the subtraction in ALU for beq
PC+4
PC+4+BranchAddr

然而,11在多项选择中不是可能的选择。

1 个答案:

答案 0 :(得分:0)

我做了自己的事。除beq

外,他们同意

你重复计算PC+4。 AFAICT,该指令 <{em> PC+4PC+(offset << 2)

所以,这会使计数从11减少到10.这是肯定的。

但是,我不确定beq是否使用减法进行比较。 IMO,更有可能是一个XOR操作[更少的电路,更快,相当平等/不等的测试的标准逻辑],所以将计数降低到9。

YMMV ......