Re: [理工] [計組] 處理器的問題
看板Grad-ProbAsk作者MVPkobe (每一口氣都要活出誓約!!)時間15年前 (2010/08/09 15:08)推噓1(1推 0噓 12→)留言13則, 4人參與討論串3/5 (看更多)
[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)
→
08/09 16:27, , 1F
08/09 16:27, 1F
推
08/09 16:41, , 2F
08/09 16:41, 2F
→
08/09 16:43, , 3F
08/09 16:43, 3F
→
08/09 16:46, , 4F
08/09 16:46, 4F
→
08/09 16:46, , 5F
08/09 16:46, 5F
→
08/09 16:47, , 6F
08/09 16:47, 6F
→
08/09 16:48, , 7F
08/09 16:48, 7F
→
08/09 16:48, , 8F
08/09 16:48, 8F
→
08/09 16:52, , 9F
08/09 16:52, 9F
→
08/09 16:52, , 10F
08/09 16:52, 10F
→
08/10 09:23, , 11F
08/10 09:23, 11F
→
10/24 12:09, , 12F
10/24 12:09, 12F
→
12/15 00:22,
7年前
, 13F
12/15 00:22, 13F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 3 之 5 篇):