作者Aa841018 (andrew)
看板Grad-ProbAsk
標題[理工] 95台大計組!
時間Tue Nov 19 07:51:58 2019
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吧?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.8.13.63 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Grad-ProbAsk/M.1574121120.A.314.html
1F:推 mistel: 1.subi在ex就做完結果,但是到了mem才有forwarding unit11/19 08:19
2F:→ mistel: 可以救,這之間需要stall一個cycle11/19 08:19
3F:推 mistel: bne後面還有一個IF抓進來的指令被flush掉也算一個stall11/19 08:21
4F:推 shinle14: 是只要bne放在最後一行,都要多一個stall嗎?11/19 09:57
5F:→ Aa841018:可是這樣不就是Mem forward ID,但forwarding應該無法在ID stage做吧
?
※ 編輯: Aa841018 (39.8.13.63 臺灣), 11/19/2019 15:35:57
6F:推 mistel: 所以張凡有講在MEM到ID有再拉一條線去拯救在ID的分支指令 11/19 17:00
7F:→ mistel: ,不過我找不到電路圖 11/19 17:00