[理工] 103電機丙/100清大計系

看板Grad-ProbAsk作者 (Warren)時間5年前 (2019/01/08 12:23), 5年前編輯推噓7(700)
留言7則, 7人參與, 5年前最新討論串1/1
這篇特別討論一下access policy,有些特別的點沒算過還真的很難發現。 本篇稍長,可以看一下大綱決定要不要繼續看下去。 一. 複習 二. 概念延伸 三. 解題 四. 前人探討 五. 結論 六. reference 以下討論可以搭配一些系統圖[5]來記憶並請使用PC版觀看比較好, Page Up和Page Down是你/妳的好幫手 複習一下cache access policy read hit easy miss 有兩種 read allocate,memory controller把block搬進cache,然後在從cache 讀進CPU的reg. read through,memory controller直接把memory讀進CPU的reg. write hit 有兩種 write back,CPU更新block中某個word,並把dirty bit設為1 write through,CPU同時對cache和memory block中某個word更新 miss 有兩種 write allocate,memory controller把在memory的block搬到cache no write allocate,CPU直接更新memory的某個word 概念延伸,由於write hit和write miss各兩種,因此共有四種組合,以下分別探討。 write back+write allocate Hit,同上 Miss,memory controller把memory的block搬到cache,之後CPU寫入cache並把 dirty bit設為1 write back+no write allocate Hit,同上 Miss,同上 write through+write allocate Hit,同上 Miss,memory controller把memory的block搬到cache,之後CPU同時寫入cache 和memory block的其中一個word write through+no write allocate Hit,同上 Miss,同上 這裡講一個概念,dirty block什麼時候被覆蓋?write allocate要把block搬到cache, 所以是有可能把dirty block覆蓋的,值得一提的是read allocate也是把block搬到cache 所以同樣有可能把dirty block覆蓋。 103台大電機丙http://imgur.com/bHdKHJU
a write through R H 0 M 0.05*(4)*0.8 W H 0.95*(1)*0.2 M 0.05*(4+1)*0.2 bandwidth使用率=0.05*0.8*4+0.95*0.+0.05*5*0.2=40% b 同a算法,bandwidth使用率=60% c write back R H 0 M 0.05*(4+4*0.3)*0.8 W H 0 M 0.05*(4+4*0.3)*0.2 bandwidth使用率=5.2*0.05*(0.8+0.2)=26% d 同c算法,bandwidth使用率=52% 100清大計系http://imgur.com/a/29xHUzx a write through R H 0 M 0.1*2*0.7 W H 0.9*1*0.3 M 0.1*1*0.3 bandwidth使用率=0.1*2*0.7+0.9*1*0.3+0.1*1*0.3=44% b write back R H 0 M 0.1*(2+2*0.2)*0.7 W H 0 M 0.1*1*0.3 bandwidth使用率=0.1*2.4*0.7+0.1*1*0.3=19.8% 蒐集一下前人討論結果[1][2],然後用一些已知和我的理解回答。 1.CPU和Cache之間資料傳輸為什麼不用算到bus? →yupog2003:cache是做在CPU裡面的 沒錯, 實際上Intel的CPU裡頭有個叫做DMI(Direct Media Interface)的是這兩個元件的 通道。 2.write through+write allocate - write hit時,為什麼只要更新1 word(不是1 block)? CPU處理大小只有一個word,memory controller是一個block。 - write miss時,為什麼這邊更新就是1 block? Memory controller寫入一個block。 - write hit時同時寫入cache和memory為什麼只要1 word? CPU處理大小只有一個word。 3.什麼時候要把dirty block寫回memory? dirt block被取代的時候,什麼時候會被取代?在cache miss的時候,memory controller 會把資料寫到cache,這時候有機會覆蓋dirty block。 4.→joeboy:為什麼write allocation+write through不是4+1? 國外網站example是有的,看各位怎麼想。 結論 1.算這個幹麻? 因為現代computer system的設計原因,memory bus是CPU與I/Odevice 共用的,所以當你 考慮加入新的I/O device時,必須先算現有系統bus的使用率,否則使用率超過100%時多增 加幾個I/O device也沒辦法運作。 2.可以看到write back的設計是把dirty block先放在cahce,並在dirty block被修改時, 寫回lower level(memory),這樣的好處是bandwidth的需求可以降低。 /*補充可跳過 Computer Architecture會有進階的概念是Merging Write Buffer[4],其概念為把 dirty block放到一個buffer,之後一起把它們寫回memory,可以減少penalty,因為不用 access memory那麼多次,而是一次寫回。 */ 3.哪種write policy 的組合的bandwidth最高?相對來說哪種比較省bandwidth? -也可以知道哪種組合不合乎邏輯 -常見配置,write back+write allocate(why?) write through+no write allocate(why?) 4.是說清大計系的題庫還蠻廣的,有時候會在國外網站的hw或是example[3]上看到...... 小修改或是原封不動就在考卷上了。 [1][理工] 103台大電機計結 第5題 http://www.ptt.cc/bbs/Grad-ProbAsk/M.1484383235.A.C57.html [2][理工] 103台大電機丙計結 http://www.ptt.cc/bbs/Grad-ProbAsk/M.1485331672.A.0D7.html [3]Example on interaction with main memory http://web.cs.iastate.edu/~prabhu/Tutorial/CACHE/ex21.html [4]Computer Architecture pg. 116 Seventh Optimization:Merging Write Buffer [5]系統圖-北橋&南橋 http://imgur.com/dMOm4e9
[ref]Interaction Policies with Main Memory http://web.cs.iastate.edu/~prabhu/Tutorial/CACHE/interac.html -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.128.232 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1546921393.A.A08.html ※ 編輯: b10007034 (122.116.128.232), 01/08/2019 12:24:28 ※ 編輯: b10007034 (122.116.128.232), 01/08/2019 12:24:52 ※ 編輯: b10007034 (122.116.128.232), 01/08/2019 12:25:21 ※ 編輯: b10007034 (122.116.128.232), 01/08/2019 12:26:20 ※ 編輯: b10007034 (122.116.128.232), 01/08/2019 12:26:54

01/08 13:42, 5年前 , 1F
必推
01/08 13:42, 1F

01/08 20:06, 5年前 , 2F
未看先推
01/08 20:06, 2F

01/08 23:18, 5年前 , 3F
太神啦還真的寫了 推推
01/08 23:18, 3F

01/10 22:55, 5年前 , 4F
推!
01/10 22:55, 4F

01/13 17:25, 5年前 , 5F
好文推一個
01/13 17:25, 5F

01/23 16:36, 5年前 , 6F
雖然看不太懂但是推
01/23 16:36, 6F

02/11 22:52, 5年前 , 7F
現在才看到 好文推推
02/11 22:52, 7F
文章代碼(AID): #1SD2Mne8 (Grad-ProbAsk)