我最近在做題目的時候有個疑問
Branch在ID判斷時
要和前面的R-type空一格 lw空兩格
但是詳細來看的話空的那個stall應該放在哪?
我舉一個例子:
add後接bne 接下來bne predict 錯誤
我的想法是branch的stall接在它的IF之後
![]()
如此一來bne的ID有在add的EX後 拿到正確的值
之後的add(correct)的IF也接在bne的ID後 也很合理
但是有些題目好像把stall放在branch的ID後
![]()
這樣add的EX的結果沒辦法給bne做判斷啊?
難道bne在stall還可以拿add的結果做運算?
但是這樣就沒有stall吧(暫停)
後面的add(correct)這樣接也蠻詭異
請問各位哪種才是對的?
如果是下面那種該怎麼解釋?