作者ken52011219 (ken52011219)
看板Grad-ProbAsk
標題Re: [理工] [計組] single cycle machine
時間Mon Nov 14 19:36:56 2016
※ 引述《kyuudonut (善良老百姓)》之銘言:
: ※ 引述《kyuudonut (善良老百姓)》之銘言:
: : 想問一下這題
: : 張凡[上] P-389 的第三小題
: : https://imgur.com/a/OXTWh
: : 後續計算方式了解
: : 但不太知道為什麼第一句 就直接肯定
: : ALUOp and ALUSrc would be "the most critical" to generate quickly.
: : 請問這兩個是怎麼被選出來的? critical path 上應該還有其他的訊號線可以選擇?
: : 就我的了解 critical path 應該是 load 的路徑對吧? 實際執行時間最長的指令?
: 第二次看第三小題又有問題跑出來
: 先附上解答: http://imgur.com/a/aTjxG
: 張凡 ALUop 的算法: 200 + 30 - 50 = 180
: 我理解的意思為: "instruction 讀到後,在 ALU 前所花的時間" 為 200 + 30 ps
: 故 ALUsrc 可產生之時間為 200 ps,ALUop 可產生之時間為 180 ps
: 但張凡上課講的 critical path (lw) 路徑為:
: I-MEM -> Regs --------------> ALU -> D-MEM -> MUX -> Regs (1) (critical path)
: -> SE Unit -> MUX ---| (2)
: 他把 ALUsrc 這個 MUX 放在第 (2) 條路徑 (跟Regs同時進行?)
: 我不太懂的是第三小題為什麼在 "instruction讀到後,在ALU前所花的時間"
: 又要加上 ALUsrc 這顆 MUX 的 latency?
: 因為原本的 critical path(1300ps) 並沒有算到它阿@@
: 有沒有我理解錯誤的地方? 謝謝
※ 引述《kyuudonut (善良老百姓)》之銘言:
: ※ 引述《kyuudonut (善良老百姓)》之銘言:
: : 想問一下這題
: : 張凡[上] P-389 的第三小題
: : https://imgur.com/a/OXTWh
: : 後續計算方式了解
: : 但不太知道為什麼第一句 就直接肯定
: : ALUOp and ALUSrc would be "the most critical" to generate quickly.
: : 請問這兩個是怎麼被選出來的? critical path 上應該還有其他的訊號線可以選擇?
: : 就我的了解 critical path 應該是 load 的路徑對吧? 實際執行時間最長的指令?
: 第二次看第三小題又有問題跑出來
: 先附上解答: http://imgur.com/a/aTjxG
: 張凡 ALUop 的算法: 200 + 30 - 50 = 180
: 我理解的意思為: "instruction 讀到後,在 ALU 前所花的時間" 為 200 + 30 ps
: 故 ALUsrc 可產生之時間為 200 ps,ALUop 可產生之時間為 180 ps
: 但張凡上課講的 critical path (lw) 路徑為:
: I-MEM -> Regs --------------> ALU -> D-MEM -> MUX -> Regs (1) (critical path)
: -> SE Unit -> MUX ---| (2)
: 他把 ALUsrc 這個 MUX 放在第 (2) 條路徑 (跟Regs同時進行?)
: 我不太懂的是第三小題為什麼在 "instruction讀到後,在ALU前所花的時間"
: 又要加上 ALUsrc 這顆 MUX 的 latency?
: 因為原本的 critical path(1300ps) 並沒有算到它阿@@
: 有沒有我理解錯誤的地方? 謝謝
早上到下午忙延徵的事情到現在終於有空來看題目
看了第四版的詳解才發現一件事情,其實它只是單純" load " one instruction
進入此 Single cycle instruction,而並非是讀取「 load 」 instruction
(還是其實是只有我看錯QQ...)
所以在任何instruction的情況下,都必須在 1 cycle 內得到正確值
┌────────────────────────┐
│ ┌──>2─────┬──┐ │
│ ┌ Add──────┐ ├ Mux┴ Mux─┘
│ │ │ ├Add ┘
│ │ │ ┌>2─┘
PC──Imem─┼─── Reg──┬─┐
│ │ │├─┘ ├ ALU─Dmem─ mux──┐
├ Mux──┤├ Mux─┘ │ │
└ S/E┴──┴─── ALUCtl │
└───────────────┘
t=0───────────────────────────→t=n
═══════════════════════════════
ALU(Src+op) MEMtoReg
R :
PC→IM─→Reg─────→ALU───────→Mux→Reg→PC
ALUop MemRead MEMtoReg
lw :
PC→IM─→Reg─────→ALU───→DM──→Mux→Reg→PC
ALUop MemWrite
Sw :
PC→IM─→Reg─────→ALU───→DM───────→PC
ALU(Src+op) Branch jump
Beq:
PC→IM─→Reg─────→ALU─────→Mux──→Mux→PC
jump
j :
PC→IM───→<<2───────────→ll──→Mux→PC
═══════════════════════════════
To Single Cycle with no pipeline,各signal發生時間:
RegDst :在 Mux 延遲之前
ALUSrc :在 Mux 延遲之前
ALUop :雖然 lw 沒有在 Critical Path 經過ALUsrc,
但 R type同
時經過 ALUsrc or ALUcontrol or ALUsrc + ALUcontrol
,因此在 Single Cycle with no piepeline 中
必須同時考量
到各式 type 中 各傳輸 signal 的一致性
在 ALU-Control 延遲之前
MemRead :在 DM 延遲之前
MemWrite:在 DM 延遲之前
MemtoReg:以一般狀況中,R type的 MemtoReg 會比 I type 的 MemtoReg 還快接
收,但是給予的signal必須一致
必須在 Mux 延遲之前
branch :在第一個Mux延遲之前
jump :在第二個Mux延遲之前
補上聖經本題目:
http://imgur.com/a/xj578
http://imgur.com/a/uKwq7
http://imgur.com/a/3VIs8
歡迎討論 @@~
--
有一個香錦囊,是從一個神話般的守軍的血屍頂上剝下的。那一次我們部隊遭受從未
有過的頑強抵抗,我們犧牲了三個艦隊,一個裝甲師和無以數計小組推進的敢死排,才摧
毀了那處隘口的碉堡。但是竟然發現,使我們遭受如此慘烈傷亡的守軍,總數只有一人。
士兵們起鬨地在他胸前發現這枚香袋,大家都相信這是一枚具有神奇力量的護身符。
我們把他的頭顱砍斷,取下香袋,剝開,
裡面一張被血浸紅的宣紙竟用漢字娟娟秀秀四個整齊的楷書寫著-「盼君早歸。」
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.4.186
※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1479123422.A.499.html
※ 編輯: ken52011219 (36.224.4.186), 11/14/2016 21:58:42
推 kyuudonut: 每次看你文章都覺得超用心的阿 orz~ 11/15 00:28
→ kyuudonut: 今天有點累了 我詳細閱讀一下再回復你 謝謝!! 11/15 00:29
推 k2shouai: 推推~ 用心畫圖 11/16 18:58
推 leoone: 大大的排版很像程式排版XD 11/20 21:16