[理工] 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