作者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://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1513500572.A.790.html
1F:推 ms718293: 他这段code只是在说若WB要把资料前馈给EX,则必须保证ME 12/17 17:26
2F:→ ms718293: M和EX之间没有hazard,也就是若同时WB阶段和MEM阶段的 12/17 17:26
3F:→ ms718293: 都跟EX阶段的发生hazard,则以MEM的资料前馈为主 12/17 17:26
4F:推 a020304888a: 我个人觉得他说MEM阶段的结果 「结果」这个词让你误 12/17 18:03
5F:→ a020304888a: 导的 12/17 18:03
6F:→ andrew84: 补推两位大大 12/22 13:23