102交大資工 計組25題
![]()
我簡化題目敘述如下:
假設指令執行時 , 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