Re: [請益] TLB miss rate 在multi core system 的 …

看板Master_D作者時間14年前 (2011/09/19 23:04), 編輯推噓3(3011)
留言14則, 3人參與, 最新討論串1/1
※ 引述《aoqq12 (阿任)》之銘言: : 最近看了篇paper : Performance Studies of Commercial Workloads on a Multi-core : 他裡面 跑了好幾個Benchmark 測試在core數增加時,相關數據的變化如 : cpi、cache miss rate、DTLB miss rate 等等的數據 : 想請問有沒有研究過類似方向的前輩 : DTLB miss rate 在core數增加的時候 miss rate有上升的原因是什麼? : (環境設定是在multi core system中,各core皆有一個DTLB,而不是所有core共用一個) : 由於paper上沒細談 不過報告的時候被問到不知如何回答= =" : 我疑問的點是,各core皆有一個DTLB,所以當Core數增加的時候,有什麼地方會影響到 : miss rate,TLB存的是位址對映資訊,有什麼情況下會像Cache被更改後, : 需要refresh之類的嗎 ? 以下是個人直覺推測 CPU Cache refresh -> 從記憶體重抓資料 而重抓的原因是因為Cache中沒有需要的記憶體訊息 那為什麼Multi-core容易出現這種情形? 直覺是因為Multi-core在處理資料時 倘若資料在記憶體位置是線性排列 ex: Low High X Y --------------------------------------------- ^ ^ |-------------------| core1 cache range |-------------------| core2 cache range core1 core2 譬如Dual-core在處理某一段資料時 core1抓取X以後的資料作為Cache 但因為資料以線性排列在記憶體中 因此core2很容易分配到在記憶體位置Y的資料進行處理 由於core1部分快取的內容已經先被core2執行完 因此重新去記憶體要資料的機率也比較大 以上純粹個人猜想 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.44.74.44

09/19 23:17, , 1F
對Cache來說是這樣沒錯 0.0那對DTLB來說該怎麼解釋呢
09/19 23:17, 1F

09/19 23:18, , 2F
因為TLB 記錄的是位址轉換資訊
09/19 23:18, 2F

09/19 23:19, , 3F
好像就沒有 data Cache那樣的資料更新問題
09/19 23:19, 3F

09/19 23:19, , 4F
就是想不透這點 Orz
09/19 23:19, 4F

09/19 23:29, , 5F
反過來想 為什麼TLB不會有資料更新的問題?
09/19 23:29, 5F

09/19 23:37, , 6F
疑 如果TLB更新 那就是physical block 有搬移之類的問題
09/19 23:37, 6F

09/19 23:38, , 7F
所以要更改TLB的內容 之類的嗎
09/19 23:38, 7F

09/20 00:07, , 8F
不單是physical ,Virtual也有可能會有失誤
09/20 00:07, 8F

09/20 00:08, , 9F
TLB跟cache很像 一樣是先去找找看有沒有相對應的資料
09/20 00:08, 9F

09/20 00:09, , 10F
所以當找不到時 1.在memory內 但TLB上沒有時 就swap
09/20 00:09, 10F

09/20 00:10, , 11F
2.TLB上沒有 memory上也沒有
09/20 00:10, 11F

09/20 00:14, , 12F
甚麼原因會造成cache miss 差不多的問題就會發生在TLB上
09/20 00:14, 12F

08/09 19:10, , 13F
反過來想 為什麼TLB https://muxiv.com
08/09 19:10, 13F

09/11 21:07, , 14F
//muxiv.com https://daxiv.com
09/11 21:07, 14F
文章代碼(AID): #1ETreAE3 (Master_D)