102交大资工 计组25题
http://ppt.cc/QBpD
我简化题目叙述如下:
假设指令执行时 , beq都预测分支发生 , 但实际执行时分支不发生
在有forwarding机制下 , 讨论以下条件下 , 指令片段执行完成之所需时间?
lw $s0,0($t0)
lw $s1,0($t0)
beq $s0,$s1 L1
add $s2,$s0,$s1
(1) 分支是否发生在 MEM 阶段被决定 // 张凡ans:(5-1)+4+1+1=10
(2) 分支是否发生在 ID 阶段决定 // 张凡ans:(5-1)+4+1+2=11
Q1:
完全不懂延后到MEM才能决定分支 , 可是所花执行周期数比较少
我自己画的 分支于MEM阶段决定的周期图
黄色是暂停管线等lw做好 绿色是发生前馈后处理错误指令的时间
cc1 cc2 cc3 cc4 cc5 cc6 cc7 cc8 cc9 cc10 cc11 cc12
lw $s0,0($t0) IF ID EX MEM WB
lw $s1,0($t0) IF ID EX MEM WB
beq $s0,$s1 L1 IF ID ID EX MEM WB
猜错的冤大头#1 IF IF ID EX NOP
猜错的冤大头#2 IF ID NOP
猜错的冤大头#3 IF NOP
add $s2,$s0,$s1 IF ID EX MEM WB
共花12个cycle