[理工] 計組 pipeline stall 相關問題

看板Grad-ProbAsk作者 (wtlee)時間8年前 (2018/01/01 19:06), 8年前編輯推噓3(3019)
留言22則, 4人參與, 8年前最新討論串1/1
想請問 若發生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

01/01 20:59, 8年前 , 1F
要IF完才會知道有沒有Data Hazard吧
01/01 20:59, 1F

01/01 21:02, 8年前 , 2F
停在if代表解瑪完了啊
01/01 21:02, 2F

01/01 21:02, 8年前 , 3F
所以所有Stall都會停在ID(如果我沒記錯的話)
01/01 21:02, 3F

01/01 21:10, 8年前 , 4F
對呀,所以要IF後在Hazard Unit裡面再去設定Stall
01/01 21:10, 4F

01/01 21:11, 8年前 , 5F
然後Hazard Control Unit我記得是在ID Stage裡
01/01 21:11, 5F

01/01 21:15, 8年前 , 6F
但是這樣不就不能重新從if拿到正確的指令了嗎?
01/01 21:15, 6F

01/01 21:19, 8年前 , 7F
不用重新拿指令,它只是在等資料而已
01/01 21:19, 7F

01/01 21:19, 8年前 , 8F
啊啊 我錯了 我重新想一次
01/01 21:19, 8F

01/01 21:20, 8年前 , 9F
除非是碰到Control Hazard才要Flush掉IF的指令
01/01 21:20, 9F

01/01 21:22, 8年前 , 10F
重看管線圖 beq可以再ID stage判斷完 IF連指令都還不知
01/01 21:22, 10F

01/01 21:23, 8年前 , 11F
道吧
01/01 21:23, 11F

01/01 21:40, 8年前 , 12F
因為課本沒畫branch資料相依的圖,只有文字敘述而已
01/01 21:40, 12F

01/01 21:43, 8年前 , 13F
那這樣其實我也可以把hazard detection移到ex stage只是
01/01 21:43, 13F

01/01 21:43, 8年前 , 14F
比較浪費這樣?
01/01 21:43, 14F

01/01 21:58, 8年前 , 15F
不行,因為branch在ID就已經判斷出下個指令
01/01 21:58, 15F

01/01 21:59, 8年前 , 16F
若在EX才進行Hazard訊號線的處理已經太遲
01/01 21:59, 16F

01/01 22:14, 8年前 , 17F
本來是想說連判斷也改到EX,不過這樣branch發生就又要fl
01/01 22:14, 17F

01/01 22:14, 8年前 , 18F
ush,好像不會更好
01/01 22:14, 18F

01/01 22:15, 8年前 , 19F
我瞭解了 感謝!!!
01/01 22:15, 19F

01/01 22:16, 8年前 , 20F
新年快樂XD
01/01 22:16, 20F

01/04 23:20, 8年前 , 21F
小弟想順便請問一下 上面那張圖的第4小題 src1 src2 是
01/04 23:20, 21F

01/04 23:20, 8年前 , 22F
怎麼判斷的呢
01/04 23:20, 22F
文章代碼(AID): #1QIXP2GF (Grad-ProbAsk)