看板 Grad-ProbAsk 關於我們 聯絡資訊
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://www.ptt.cc/bbs/Grad-ProbAsk/M.1574121120.A.314.html
mistel: 1.subi在ex就做完結果,但是到了mem才有forwarding unit11/19 08:19
mistel: 可以救,這之間需要stall一個cycle11/19 08:19
mistel: bne後面還有一個IF抓進來的指令被flush掉也算一個stall11/19 08:21
shinle14: 是只要bne放在最後一行,都要多一個stall嗎?11/19 09:57
Aa841018:可是這樣不就是Mem forward ID,但forwarding應該無法在ID stage做吧
※ 編輯: Aa841018 (39.8.13.63 臺灣), 11/19/2019 15:35:57
mistel: 所以張凡有講在MEM到ID有再拉一條線去拯救在ID的分支指令 11/19 17:00
mistel: ,不過我找不到電路圖 11/19 17:00