[理工] 100中央 计组 资料危障

楼主: moneylon (bencool)   2018-01-04 18:04:20
想请问一下这题的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,请问这样的想法错在什么地方
先感谢各位大大帮忙!!
作者: q1qip123 (wtlee)   2018-01-04 19:33:00
因为hazard unit是在id跟ex stage侦测,foward是拿ex跟mem/wb比然后他没有画从mem牵回I'd stage的线 所以才要停两个吧
作者: NCTUFAIWEN (交大废文王子)   2018-01-04 19:36:00
L,D有load use,所以stall一个cycle之后就不需要forwd建议把整个图画出来吧 这样直接看很难看懂 才15个cycle而已 不难画L,B也一样 因为beq要在ID判断 所以一定会停一cycle在pipeline后面的指令就利用这个stall存回去惹拍谢 眼残 是D.B才对 and跟beq
楼主: moneylon (bencool)   2018-01-04 20:31:00
https://i.imgur.com/iwcXe53.jpg我缺少了哪两个cycle QQ喔喔喔我懂了 因为没有办法从ex/mem前馈到Id 所以要stall到上一行的add已经WB 是这样吧and已经WB(修正
作者: q1qip123 (wtlee)   2018-01-04 21:05:00
对 然后beq是stall在id 不是IF,因为他要需要解玛才能知道是beq啊我看错了 不用理我
作者: NCTUFAIWEN (交大废文王子)   2018-01-04 21:30:00
and的alu算完才会给beq 所以中间要一个stall另外一个我找不到== 感觉14个cycle而已啊看起来是因为mem没有前馈给ID 所以要等一个cycle要等lw的write back才可以动beq那就15个

Links booklink

Contact Us: admin [ a t ] ucptt.com