作者q1qip123 (wtlee)
看板Grad-ProbAsk
标题[理工] 计组 data hazard相关问题
时间Mon Jan 1 19:06:39 2018
想请问
若发生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://webptt.com/cn.aspx?n=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
1F:推 PunchShadow: 要IF完才会知道有没有Data Hazard吧 01/01 20:59
2F:→ q1qip123: 停在if代表解玛完了啊 01/01 21:02
3F:→ PunchShadow: 所以所有Stall都会停在ID(如果我没记错的话) 01/01 21:02
4F:→ PunchShadow: 对呀,所以要IF後在Hazard Unit里面再去设定Stall 01/01 21:10
5F:→ PunchShadow: 然後Hazard Control Unit我记得是在ID Stage里 01/01 21:11
6F:→ q1qip123: 但是这样不就不能重新从if拿到正确的指令了吗? 01/01 21:15
7F:→ PunchShadow: 不用重新拿指令,它只是在等资料而已 01/01 21:19
8F:→ q1qip123: 啊啊 我错了 我重新想一次 01/01 21:19
9F:→ PunchShadow: 除非是碰到Control Hazard才要Flush掉IF的指令 01/01 21:20
10F:推 olen0622: 重看管线图 beq可以再ID stage判断完 IF连指令都还不知 01/01 21:22
11F:→ olen0622: 道吧 01/01 21:23
12F:→ q1qip123: 因为课本没画branch资料相依的图,只有文字叙述而已 01/01 21:40
13F:→ q1qip123: 那这样其实我也可以把hazard detection移到ex stage只是 01/01 21:43
14F:→ q1qip123: 比较浪费这样? 01/01 21:43
15F:→ PunchShadow: 不行,因为branch在ID就已经判断出下个指令 01/01 21:58
16F:→ PunchShadow: 若在EX才进行Hazard讯号线的处理已经太迟 01/01 21:59
17F:→ q1qip123: 本来是想说连判断也改到EX,不过这样branch发生就又要fl 01/01 22:14
18F:→ q1qip123: ush,好像不会更好 01/01 22:14
19F:→ q1qip123: 我了解了 感谢!!! 01/01 22:15
20F:→ q1qip123: 新年快乐XD 01/01 22:16
21F:推 moneylon: 小弟想顺便请问一下 上面那张图的第4小题 src1 src2 是 01/04 23:20
22F:→ moneylon: 怎麽判断的呢 01/04 23:20