作者andrew84 (andrewang)
看板Grad-ProbAsk
標題[理工] [計組]data hazard
時間Sun Dec 17 16:49:29 2017
我想請問張凡課本上冊p457
在說多個相依的code
add $1,$1,$2
add $1,$1,$3
add $1,$1,$4
解釋說我們得將MEM階段的結果前饋,因為在MEM階段的結果是最新的
可是最新的資料不是在EXE階段嗎?這樣的話等於是拿了第一行的指令的資料去執行第三行指令不是嗎?
控制修正
if(MEM/WB.RegWrite and (MEM/WB.Register.Rd !=0)
and not (EX/MEM.RegWrite and (EX/MEM.RegisterRd!=0)
and (EX/MEM.RegWrite and (EX/MEM.RigisterRd =ID/EXE.RegisterRd))
and (MEM/WB.RegisterRd = ID/EX.RegisterRs)) ForwardA =01
求解有人還記得這裡嗎?
-----
Sent from JPTT on my Sony G8232.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.136.58.54
※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1513500572.A.790.html
推 ms718293: 他這段code只是在說若WB要把資料前饋給EX,則必須保證ME 12/17 17:26
→ ms718293: M和EX之間沒有hazard,也就是若同時WB階段和MEM階段的 12/17 17:26
→ ms718293: 都跟EX階段的發生hazard,則以MEM的資料前饋為主 12/17 17:26
推 a020304888a: 我個人覺得他說MEM階段的結果 「結果」這個詞讓你誤 12/17 18:03
→ a020304888a: 導的 12/17 18:03
→ andrew84: 補推兩位大大 12/22 13:23