[理工] 95台大計組!

作者: Aa841018 (andrew)   2019-11-19 07:51:58
https://i.imgur.com/dHBtdRG.jpg
這題想好久還是卡卡的,能夠forwarding代表只有load-use需要stall,後面提到branch
在ID決定,所以也要stall,這我也認同,可是應該要stall兩個吧?
bne和subi差一個指令,stall一個的結果,一個在Mem一個在ID,連暫存器都還沒讀取,
應該不可能救吧?
那唯一做法不是stall兩個,等到WB寫回嗎?
不知道我是否理解有誤?
然後我真的想不通為什麼BNE下面還要塞一個stall.....沒有data dependency吧?
作者: mistel (Mistel)   2019-11-19 08:19:00
1.subi在ex就做完結果,但是到了mem才有forwarding unit可以救,這之間需要stall一個cyclebne後面還有一個IF抓進來的指令被flush掉也算一個stall
作者: shinle14   2019-11-19 09:57:00
是只要bne放在最後一行,都要多一個stall嗎?
作者: mistel (Mistel)   2019-11-19 17:00:00
所以張凡有講在MEM到ID有再拉一條線去拯救在ID的分支指令,不過我找不到電路圖

Links booklink

Contact Us: admin [ a t ] ucptt.com