→ ken52011219: 這題想到就好笑..昨天在寫看到這題就先跳過 01/14 16:43
→ ken52011219: 結果到最後忘記寫 連答案都沒寫QQ 然後就對了 01/14 16:44
→ ken52011219: 建議拿100 年的清大資工題目拿來比較 01/14 16:46
→ yupog2003: cache是做在CPU裡面的,所以CPU跟cache之間傳輸不需要 01/14 17:13
→ yupog2003: 用到bus,因為cache速度需求很高,用bus對他來說太遠太 01/14 17:15
→ yupog2003: 慢,所以都做在CPU裡面,從CPU的規格書裡面都會寫他有 01/14 17:15
→ yupog2003: 多少cache可以看出端倪 01/14 17:15
原來如此
→ yupog2003: 也許write through就只會更新在記憶體中的那個位址的 01/14 17:33
→ yupog2003: 資料?我也是看到這篇才知道@@ 01/14 17:35
似乎是,我看100清大寫說:Because we have write through policy we have to write to main memory on every hit. But we have to write only 1 word.
※ 編輯: Transfat (140.112.25.105), 01/14/2017 17:41:35
→ yupog2003: 現在每天都還會跑出我不懂的東西,真的是很崩潰... 01/14 17:44
聽說這樣子才是會考得好的前兆,如果覺得自己都會的人通常都(?)
→ yupog2003: 是說雖然課本都還是把北橋南橋獨立出來看,但現今的 01/14 17:47
→ yupog2003: 個人電腦CPU已經把北橋整合到CPU裡面了,當然CPU到 01/14 17:48
→ yupog2003: memory的bus還是在 01/14 17:48
→ yupog2003: 喔喔我看到課本寫到這段了,之前沒看到QQ 01/14 17:50
謝謝ken和yu,我搞懂這題了。
※ 編輯: Transfat (140.112.25.105), 01/14/2017 17:52:20
推 DZASHIANG: 請問這份詳解的(c)(d)write miss的部份,為什麼不是算 01/14 20:54
→ DZASHIANG: 寫回dirty block 加上從mem搬入的1block,以c為例,也就 01/14 20:54
→ DZASHIANG: 是10^7*0.2*0.05*(4*0.3+4)=0.052*10^7,這樣算的話c 01/14 20:54
→ DZASHIANG: d選項true 01/14 20:54
這是個好問題,什麼時候要把dirty block寫回memory,網路上幾乎都只說當系統有空的時
候或是有其他使用率更高的address要來取代,或是講一些模稜兩可的話:The data in these locations are written back to the backing store when those data are evicted from the cache. 而103台大電機的答案和100清大的答案都說要在Read miss的時候把dirty block寫回memory. 所以我們就姑且相信他吧
※ 編輯: Transfat (140.112.25.105), 01/14/2017 21:49:28
※ 編輯: Transfat (140.112.25.105), 01/14/2017 21:49:52
※ 編輯: Transfat (140.112.25.105), 01/14/2017 21:50:33
推 DZASHIANG: 我以為清大那題的(b)也就是write back+no-allocate 在 01/14 22:06
→ DZASHIANG: 算write miss的時候,是因為他是no wirte allocate, 01/14 22:06
→ DZASHIANG: 不用寫到cache,直接寫到mem,所以才不用先寫回dirty b 01/14 22:06
→ DZASHIANG: lock。但在witeallocate 的情況下是不是應該先寫回, 01/14 22:06
→ DZASHIANG: 畢竟題目說任何時刻dirty block都佔30%。有錯請指正 01/14 22:06
有道理,可是台大的老師似乎不是這樣想?因為台大這題是出write allocate+wrtie back,
也沒有在write miss的時候寫回dirty block
推 yupog2003: D大沒說我還沒注意到,同樣疑問+1 01/14 23:05
哇這個解答覺得write miss和read miss都要寫回dirty block
推 yupog2003: 原來還有另一種解答,不過這個解答的(a)(b)選項的 01/14 23:26
→ yupog2003: write miss就沒有考慮到write through了 01/14 23:27
的確,因為wrtie through和write allocate一起用很怪,都已經在miss的時候把block搬
到cache了,結果寫入又要一併寫回memory,有種多此一舉的感覺
→ yupog2003: 感覺要各取正確的部份來看XD 01/14 23:28
推 ncku5656: 張凡是說write miss 時就看write allocate會怎麼操作就 01/14 23:37
→ ncku5656: 好 不用在回去做write through 我也不太清楚是怎樣QQ 01/14 23:37
→ yupog2003: 原來張凡有特別提到,那也許應該以老師講的為主... 01/14 23:38
※ 編輯: Transfat (140.112.25.105), 01/15/2017 14:56:03
※ 編輯: Transfat (140.112.25.105), 01/15/2017 15:00:18
推 b10007034: 為什麼我覺得這題的答案意思是dirty block被取代時才 01/29 22:10
→ b10007034: 要寫回去,所以被寫回來的4個word有30%的機會replace 01/29 22:10
→ b10007034: dirty block,所以才會是4+4*0.3 01/29 22:10