看板 Grad-ProbAsk 關於我們 聯絡資訊
想請問 若發生load_use data hazard的,則load的下個指令add必須停在ID ,再下個cycle來才能在EX正確運算 http://i.imgur.com/ZgnPHbj.jpg 那發生branch跟前面指slti資料相依時,為甚麼是停在ID而不是IF http://i.imgur.com/88Bx8kd.jpg (圖表分別在張凡課本(上)553跟534) ----- Sent from JPTT on my OPPO R7sf. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.173.74.199 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1514804802.A.40F.html ※ 編輯: q1qip123 (218.173.74.199), 01/01/2018 19:16:35 ※ 編輯: q1qip123 (218.173.74.199), 01/01/2018 20:45:54
PunchShadow: 要IF完才會知道有沒有Data Hazard吧 01/01 20:59
q1qip123: 停在if代表解瑪完了啊 01/01 21:02
PunchShadow: 所以所有Stall都會停在ID(如果我沒記錯的話) 01/01 21:02
PunchShadow: 對呀,所以要IF後在Hazard Unit裡面再去設定Stall 01/01 21:10
PunchShadow: 然後Hazard Control Unit我記得是在ID Stage裡 01/01 21:11
q1qip123: 但是這樣不就不能重新從if拿到正確的指令了嗎? 01/01 21:15
PunchShadow: 不用重新拿指令,它只是在等資料而已 01/01 21:19
q1qip123: 啊啊 我錯了 我重新想一次 01/01 21:19
PunchShadow: 除非是碰到Control Hazard才要Flush掉IF的指令 01/01 21:20
olen0622: 重看管線圖 beq可以再ID stage判斷完 IF連指令都還不知 01/01 21:22
olen0622: 道吧 01/01 21:23
q1qip123: 因為課本沒畫branch資料相依的圖,只有文字敘述而已 01/01 21:40
q1qip123: 那這樣其實我也可以把hazard detection移到ex stage只是 01/01 21:43
q1qip123: 比較浪費這樣? 01/01 21:43
PunchShadow: 不行,因為branch在ID就已經判斷出下個指令 01/01 21:58
PunchShadow: 若在EX才進行Hazard訊號線的處理已經太遲 01/01 21:59
q1qip123: 本來是想說連判斷也改到EX,不過這樣branch發生就又要fl 01/01 22:14
q1qip123: ush,好像不會更好 01/01 22:14
q1qip123: 我瞭解了 感謝!!! 01/01 22:15
q1qip123: 新年快樂XD 01/01 22:16
moneylon: 小弟想順便請問一下 上面那張圖的第4小題 src1 src2 是 01/04 23:20
moneylon: 怎麼判斷的呢 01/04 23:20