推 z000000000: 2.題目要找最寬鬆(時間最長)產生control signal的方法04/23 00:33
→ z000000000: ,因為每個指令都會經過解碼,所以會先扣掉解碼(I-MEM04/23 00:33
→ z000000000: )的時間,之後再找哪一個logic block時間最短者。04/23 00:33
→ z000000000: 可以看到經過MUX時間最短,再扣掉MUX即是control sign04/23 00:33
→ z000000000: al產生的時間,而會是jump指令的原因在於datapath符合04/23 00:33
→ z000000000: 只通過I-MEM和MUX。04/23 00:33
→ z000000000: 3.ALU op和 ALU src是最早碰到control signal的,反之04/23 00:33
→ z000000000: 如果是RegWrite和RegDst,是要在最後WB,把指令寫回re 04/23 00:33
→ z000000000: gister 那一步才會用到並設為1。04/23 00:33
→ z000000000: 如果哪裡有錯煩請糾正QQ04/23 00:33
謝謝大大! 您解釋的好清楚!
但我還是有一點點問題想請教...
就是關於RegDst的部分, 不是只有在lw、sw指令時才會設1嗎?
而一開始I-Mem解碼完後知道指令的當下不是也會直接設定RegDst 的值了嗎?
還是說RegDst其實會跟RegWrite 一樣在WB回來時才會去做0/1設定呢?
另外有一個想再請教的部分,
是關於第3題的a, b小題,
弱弱的問為什麼ALUOp、 ALUSrc要用ALU control 和 MUX 去比較來選擇呢?
a小題後面為什麼要把230減掉50?
b小題為什麼直接就是220了呀?
抱歉我問題有點多....
※ 編輯: terry8575 (101.12.41.40 臺灣), 04/23/2020 10:32:19
→ terry8575: 我再來想看看好了 04/23 17:48