※ 引述《try66889 (貓貓只求黑琴ㄍㄟˋ婚 )》之銘言:
: 有兩小題想請問大家~
: https://i.imgur.com/PegYtCR.jpg
: https://i.imgur.com/yqjOrfN.jpg
: 1.
: 想請問19題的C選項是錯在把ex和mem stage結合後變成ex/mem ,原本的lw 指令會像a選項
: 一樣分成兩個兩個指令使得ex stage計算要讀取的mem data address和read memery data會
: 分開,因此clock rate不會改變?
(C) 的題幹是說 Memory access 跟 ALU 可以 "平行",
所以 clock time 基本上就不可能變長了
除了從 ISA 上下去動手,如 (a) 的 zero offset design 需要搭配 compiler code gen
也可以從 Pipeline control logic 上下手,碰到 Memory instruction 即切換成
Multi-cycle execution,這樣也是影響不到 clock rate 的
PS. 但是 CPI 會增加 :)
PPS. 網路上可以找到一份中央大學討論 ARM9 的投影片,非常詳細
: 2.
: 主要想請問20題的D選項,看完板上的討論還是不太懂為什麼錯QQ 從mem stage移動到ex st
: age penalty少一個cycle => CPI 下降
: 還是因為cycle time會上升嗎?
: 謝謝大家 > <
你的 concern 是正確的,現實情況的確要考慮到那個 stage 會不會變成 critical path
進而影響到 clock rate。
不過就我看來,這題主要應該是要考 branch penalty。
所以你問我考試要怎麼答?我不知道~ 研究所考試嘛,習慣就好~ (笑)