看板 Grad-ProbAsk 關於我們 聯絡資訊
我想請問張凡課本上冊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