大家好~
請問一下這一題
http://i.imgur.com/neO4BU1.jpg
http://i.imgur.com/9hvs3O9.jpg
為什麼lw指令是他答案上面那樣寫的?
為什麼以下3個沒有被考慮進去?
選存回目的暫存器的MUX,
SignExtent,
選ALU source的MUX
http://i.imgur.com/NMwL8aR.jpg
因為有些電路的訊號是平行進行的,先到的要等慢的,所以花較久時間的電路會主宰該平行區段的critical path time,這個老師上課絕對有講過,可以翻翻筆記複習一下
SignExtent 如樓上所說 其餘兩個我要思考一下
作者: aa06697 (todo se andarà) 2016-10-20 18:38:00
倒數第二的mux 就是memToReg吧 signextension跟registerfile同時的 感覺少算了ALUSrc的mux?
一開始rs進去拿reg值去ALU算,可是rt的值只是指到目的reg他可以跟ALU平行rs不用等rt的mux,可以直接送到ALU,而mux跟rt重疊(因為最後才會用到目的reg的位置)
但是這樣跑下來, 不管怎樣ALUSrc的MUX一定要算進去吧
喔我以為你們糾結的是那裡,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了吧?
作者: 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嗎?
以無Pipeline的Data Path 與 Control Unit 的運作會比較好想一點 就算Mux的Input 其中一個為Nil 甚至為錯誤值 只要Control Unit 指到正確的 input 也可執行正確的路徑
作者: aa06697 (todo se andarà) 2016-10-21 11:40:00
恩懂惹 覺得要一個指令一個指令看>< 全部喇在一起看就搞混惹