白算盤當中的練習題
http://imgur.com/sAKmbaa
這是題目給的表格
問題如下:
http://imgur.com/zwV7LHm
預設的datapath是single-cycle machine
http://i.imgur.com/2ha929J.jpg
想問此題解法為什麼是要先比較ALUSrc與ALUcontrol哪個慢?
是因為Regfile跟MainControl同時解碼,所以從這段開始找第一個需要產生的控制信號線嗎?
解答是ALUOp需要最先產生,時間為200+30-50=180ps
因為ALUcontrol比ALUSrc的multiplexer慢,所以時間就是RegFile加上multiplexer的latency減去ALUcontrol的latency。
(這邊我解讀成若ALUOp的時間超過180,
則rd暫存器的資料抵達ALU就會比在ALUControl的信號還快,而進行錯誤的運算,不知是否有誤?)
那如果ALUSrc的multiplexer的latency比ALUcontrol長,
爲什麼是直接看Regfile的latency來決定ALUOp產生的最慢時間?
是因為當資料來到multiplexer前要直接進入避免等待ALUSrc的關係嗎?