[理工] [計組] data path問題

作者: beargg0305 (bear)   2016-10-20 17:18:15
大家好~
請問一下這一題




為什麼lw指令是他答案上面那樣寫的?
為什麼以下3個沒有被考慮進去?
選存回目的暫存器的MUX,
SignExtent,
選ALU source的MUX

作者: windwaker112 (阿茄)   2016-10-20 18:32:00
因為有些電路的訊號是平行進行的,先到的要等慢的,所以花較久時間的電路會主宰該平行區段的critical path time,這個老師上課絕對有講過,可以翻翻筆記複習一下
作者: ken52011219 (呱)   2016-10-20 18:36:00
SignExtent 如樓上所說 其餘兩個我要思考一下
作者: aa06697 (todo se andarà)   2016-10-20 18:38:00
倒數第二的mux 就是memToReg吧 signextension跟registerfile同時的 感覺少算了ALUSrc的mux?
作者: ken52011219 (呱)   2016-10-20 18:52:00
我也覺得ALUsrc少算
作者: windwaker112 (阿茄)   2016-10-20 19:14:00
一開始rs進去拿reg值去ALU算,可是rt的值只是指到目的reg他可以跟ALU平行rs不用等rt的mux,可以直接送到ALU,而mux跟rt重疊(因為最後才會用到目的reg的位置)
作者: ken52011219 (呱)   2016-10-20 19:34:00
Wind大是再說RegDst嗎 ??
作者: beargg0305 (bear)   2016-10-20 19:44:00
但是這樣跑下來, 不管怎樣ALUSrc的MUX一定要算進去吧
作者: windwaker112 (阿茄)   2016-10-20 20:41:00
喔我以為你們糾結的是那裡,sign extend就更短了那條路線sign 40+ mux 30才70平行的reg 200直接蓋掉了說錯sign 20+mux 40=60
作者: aa06697 (todo se andarà)   2016-10-21 02:04:00
我發現我講錯XD RegDst應該也少算吧? 要先mux後才可以去register取吧?destination不是應該要用pipeline register傳下去嗎? 等到ALU stage時 register file已經在讀下個instruction了吧?
作者: ken52011219 (呱)   2016-10-21 10:00:00
RegDst 沒少算 倒是我把陳封已久的筆記和題庫班講義拿出來 發現題目給的答案沒有錯QQ... 我該開始看計組了" target="_blank" rel="nofollow">
" target="_blank" rel="nofollow">
作者: aa06697 (todo se andarà)   2016-10-21 10:51:00
好吧請無視我的留言a_a wind大說的是對的 另外張凡今年教是把RegDst放EX stage 這樣就只要傳32bit而非32+32(rs+rt) 到wb stage我發現我現在不太能接受這個圖......為啥reg 跟 mux可以平行? 不是應該要先有reg 的data(rt) 出來以後「再經過」mux 進ALU嗎?
作者: ken52011219 (呱)   2016-10-21 11:31:00
以無Pipeline的Data Path 與 Control Unit 的運作會比較好想一點 就算Mux的Input 其中一個為Nil 甚至為錯誤值 只要Control Unit 指到正確的 input 也可執行正確的路徑
作者: aa06697 (todo se andarà)   2016-10-21 11:40:00
恩懂惹 覺得要一個指令一個指令看>< 全部喇在一起看就搞混惹

Links booklink

Contact Us: admin [ a t ] ucptt.com