[理工] [計組] forwarding unit

作者: kyuudonut (善良老百姓)   2016-08-03 21:42:32
晚安 各位
張凡上完 forwarding unit 時有補充
課本在下圖忘記補了 2-1 MUX (P-479)
補上了應該是這下圖這樣? 張凡說直接補
但這樣設計跑以下的 code:
#1 add t0, s5, s6
#2 lw t0, 0(s2)
====== 當 #1 在 MEM stage,#2 在 EX stage ===
ALUrc 設1
lw此時的 rt -> t0, rs -> s2
因為 #1 的 rd 是 t0
且和 EX stage 的 rt 相同 -> 故 forwarding unit 啟動
ALU 最後卻挑了 #1 的 t0 讀進去,原本的 immediate 被忽略掉 0.0
而導致資料不正確
想確認一下我的想法有沒有疏漏的地方?
作者: ken52011219 (呱)   2016-08-04 11:11:00
其實我看不太懂意思 但我覺得你誤會 forwarding unit是會造成 datahazard的原因@@?會造成forwading unit啟動的原因 主要是 當 add在ex執行s5+s6時 lw 已經需要t0在add運算完後的值此時forwarding 啟動 並在 add MEM STAGE 時 提前將s5+s6的值拉回來只要 ALU 下方input 的前面的多工器Mux 接在01的pin即可, 而 我有點忘記張凡那本怎麼畫整個PIPELINE但 FORWARDING 的圖中 前面那個多工器的 OUTPUT又再接一顆多工器判定是否是要傳到MEM'S WRITE DATAGOOGLE FORWARDING UNIT的圖片第二張 就是我再講的等我個http://i.imgur.com/q46e7an.jpg 鉛筆路徑就是這次所用到的黃色和鉛筆的使用差別 在於instruction 隔一行還是兩行吧 我想其實在第四章開頭就有說到 這是抽象化設計 會將系統底層的細節暫時隱藏 所以我們看到的東西都是簡化過的誒靠 哈哈 想成SW了 抱歉抱歉睡昏去了

Links booklink

Contact Us: admin [ a t ] ucptt.com