作者moneylon (bencool)
看板Grad-ProbAsk
标题[理工] 100中央 计组 资料危障
时间Thu Jan 4 18:04:20 2018
想请问一下这题的b.c小题
https://i.imgur.com/I4xbn9s.jpg
答案
https://i.imgur.com/3V0gwyk.jpg
b.为什麽(O.D)跟(L.B)跟(D.B)的hazard可以只靠Hazard detection unit 就能解决,不需
要用到forwarding unit?
c.题目说这个线路有提供stall跟forwarding,所以我只有在load use时stall一个clock,
B行的branch 在ID阶段决定要跳,所以停一个clock,请问这样的想法错在什麽地方
先感谢各位大大帮忙!!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 203.187.53.86
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1515060263.A.64F.html
1F:推 q1qip123: 因为hazard unit是在id跟ex stage侦测,foward是拿ex跟m 01/04 19:33
2F:→ q1qip123: em/wb比 01/04 19:33
3F:→ q1qip123: 然後他没有画从mem牵回I'd stage的线 所以才要停两个吧 01/04 19:34
4F:推 NCTUFAIWEN: L,D有load use,所以stall一个cycle之後就不需要forwd 01/04 19:36
5F:→ NCTUFAIWEN: 建议把整个图画出来吧 这样直接看很难看懂 才15个 01/04 19:37
6F:→ NCTUFAIWEN: cycle而已 不难画 01/04 19:37
7F:→ NCTUFAIWEN: L,B也一样 因为beq要在ID判断 所以一定会停一cycle 01/04 19:39
8F:→ NCTUFAIWEN: 在pipeline後面的指令就利用这个stall存回去惹 01/04 19:40
9F:→ NCTUFAIWEN: 拍谢 眼残 是D.B才对 and跟beq 01/04 19:45
11F:→ moneylon: 我缺少了哪两个cycle QQ 01/04 20:32
12F:→ moneylon: 喔喔喔我懂了 因为没有办法从ex/mem前馈到Id 所以要stal 01/04 20:39
13F:→ moneylon: l到上一行的add已经WB 是这样吧 01/04 20:39
14F:→ moneylon: and已经WB(修正 01/04 20:40
15F:推 q1qip123: 对 然後beq是stall在id 不是IF,因为他要需要解玛才能知 01/04 21:05
16F:→ q1qip123: 道是beq 01/04 21:05
17F:→ q1qip123: 啊我看错了 不用理我 01/04 21:12
18F:推 NCTUFAIWEN: and的alu算完才会给beq 所以中间要一个stall 01/04 21:30
19F:→ NCTUFAIWEN: 另外一个我找不到== 感觉14个cycle而已啊 01/04 21:38
20F:→ NCTUFAIWEN: 看起来是因为mem没有前馈给ID 所以要等一个cycle 01/04 21:41
21F:→ NCTUFAIWEN: 要等lw的write back才可以动beq 01/04 21:42
22F:→ NCTUFAIWEN: 那就15个 01/04 21:42