作者MVPkobe (每一口氣都要活出誓約!!)
看板Grad-ProbAsk
標題Re: [理工] [計組] 處理器的問題
時間Mon Aug 9 15:08:20 2010
[2.1]
指令 ALUop
lw 00
sw 00
BEQ 01
R-type 10
看不太懂解答是什麼意思?
因為ALUop1 = 0 R-TYPE指令都不能做
只能做ALU的加法或減法(lw sw與beq裡的運算)
至於要怎麼區分要用R-TYPE裡的哪種指令
就要看指令裡的Function code
100000 = Add
100010 = Sub
100100 = AND ...之類的
再傳不同的信號給ALU
[2.2]
本來就是只有sw才會給寫入MEM
其他雜七雜八指令都是MemWrite = 0
所以答案沒錯,在sw裡會出錯
這個題目是在問說給這些控制信號會在哪些指令下有錯誤
是這樣解釋沒錯吧? 感覺解答怪怪的
你後面是問jump在ALU裡面的控制信號?
jump不會通過ALU
它是把[25:0] 往左位移 2 bit變成 [27:0],和PC+4[31:28]會合後
控制單元在輸出 jump = 1 到一個MUX裡
再回到PC
[3][4]
都是multicycle的部份吧?
張凡說multicycle的再第四版已經刪掉了所以跳過
[5]
應該這樣說
若把MUX放在暫存器之前跟單一時脈一樣的話
lw要把rd right back的時候
因為MUX在ID裡的緣故
寫入暫存器的號碼會變成是由IF/ID所提供的,而非lw指令所要保留的
好比說下面這四個指令
add
lw
sw
sub
當add要WB給register的同時,sub也把它自己的暫存器號碼給register
就產生錯誤了
若你問的意思不是這個,只是單純想把MUX往前拉到ID的步驟
設計的理念是
pipeline在IF/ID管線暫存器中解完碼產生所有必要之控制信號後
IF/ID才會傳指令給管線控制單元
因此控制信號都得在ID/EX、EX/MEM、MEM/WB這三個管線暫存器
MUX也就不會待在ID中了
[6]
去減少cycles對於整體總時間沒有用
總時間是(stage-1+N個指令)x(clock cycle time) 決定的
應該說無法減去cycle因為ALU運算要把資料回傳給register需要WB這一步驟
而設計就是5個cycles所以不能減去
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.166.217.216
※ 編輯: MVPkobe 來自: 118.166.217.216 (08/09 16:38)
→ serflygod:第四版把多重時脈刪掉了,有沒有可能明年再考? 08/09 16:27
推 privatewind:沒人說的準 顆顆 XD 08/09 16:41
→ MVPkobe:張凡是說縣再也買不到第三版的所以沒道理去考第三版 08/09 16:43
→ MVPkobe:第2.3提請忽略吧 解答提的部份好像都是multicycle的 08/09 16:46
→ MVPkobe:難怪我看起來很怪XD 08/09 16:46
→ serflygod:不好意思打擾問一下,第三版跟第四版聽說差異最大的是管 08/09 16:47
→ serflygod:線部份,所以如果像我這樣的重考生,只要把管線部份重唸就 08/09 16:48
→ serflygod:好了嗎?還是其他地方也改很多? 08/09 16:48
→ MVPkobe:我想你去graduate版問問會更清楚吧!聽說改很多 我也沒買 08/09 16:52
→ MVPkobe:第四版 08/09 16:52
→ serflygod:樓上沒買的原因是因為已經考完了嗎? 08/10 09:23