想請問版友,a小題一直被題目中如下的描述,搞得有點混亂。
"memory access time for the first 4 words is 250ns,
each additional set of four words can be read in 25ns."
想請問total一次要傳32byte,前16byte 花250ns,之後的16byte不能以25ns算嗎?
為什麼要直接乘以2呢?
還是我觀念有錯誤,希望能幫忙訂正觀念,謝謝。
※ 引述《henry74918 (henry)》之銘言:
: 這是在版上某位版友PO的解答
: 我想問的是 我(a)小題算出來就跟他不一樣 囧
: 他所算出來的220cycle只是16bytes的傳輸時間
: 可是這題一個block size是32bytes
: 所以是某應該要220*2 = 440 cycles
: 才是正確答案呢?
: 麻蠻大家幫我看一下 謝謝
: ※ 引述《RLWANG (CCWANG)》之銘言:
: : 我解的解答,有錯請版上大大不吝指教
: : (a). 220 CPU cycles.
: : miss penalty:包括access time及transfer time‧
: : access time:miss時,存取block中第一個word所需的時間‧
: : 800M → 1.25 ns CPU Cycle,250 / 1.25 = 200 CPU Cycles
: : transfer time:miss時,存取block中其餘word所需的時間‧
: : 由主記憶體與cache間的頻寬(bandwidth)決定‧
: : 200M → 5 ns→ 4 CPU Cycles,4+4*(16 / 4) = 20 CPU Cycles
: : 200+20 = 220 CPU Cycles.
: : (b).CPIA = 20.8
: : 1+20%*15%*(220) +6%*(220) = 20.8
: : (c).Machine A is n% faster than Machine B.
: : ExcutionTimeA = IC*CPI*CycleTime = IC*20.8*1.25 ns = IC*26
: : Machine B:400M → 2.5 ns CPU Cycle.
: : 250 / 2.5 = 100 CPU Cycles
: : 200M → 5 ns→ 2 CPU Cycles.
: : 2+2*(16 / 4) = 10 CPU Cycles
: : 100+10 = 110 CPU Cycles.
: : 1+20%*15%*(220) +6%*(220) = 20.8
: : CPIB = 1+20%*15%*(110) +6%*(110) = 10.9
: : ExcutionTimeB = IC*CPI*CycleTime = IC*10.9*2.5 ns = IC*27.25
: : Excution timeB/Excution timeA=1+(n/100)
: : 求出n.
: : (d).200 CPU cycles.
: : miss penalty:包括access time及transfer time‧
: : access time:miss時,存取block中第一個word所需的時間‧
: : 800M → 1.25 ns CPU Cycle,250 / 1.25 = 200 CPU Cycles
: : transfer time:沒有額外的tranfer time.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.242.16
※ 編輯: nickboy0211 來自: 140.118.242.16 (02/22 23:11)