作者singy ()
看板Master_D
標題Re: [請益] TLB miss rate 在multi core system 的 …
時間Mon Sep 19 23:04:38 2011
※ 引述《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
1F:推 aoqq12:對Cache來說是這樣沒錯 0.0那對DTLB來說該怎麼解釋呢 09/19 23:17
2F:→ aoqq12:因為TLB 記錄的是位址轉換資訊 09/19 23:18
3F:→ aoqq12:好像就沒有 data Cache那樣的資料更新問題 09/19 23:19
4F:→ aoqq12:就是想不透這點 Orz 09/19 23:19
5F:推 mathlove:反過來想 為什麼TLB不會有資料更新的問題? 09/19 23:29
6F:→ aoqq12:疑 如果TLB更新 那就是physical block 有搬移之類的問題 09/19 23:37
7F:→ aoqq12:所以要更改TLB的內容 之類的嗎 09/19 23:38
8F:推 mathlove:不單是physical ,Virtual也有可能會有失誤 09/20 00:07
9F:→ mathlove:TLB跟cache很像 一樣是先去找找看有沒有相對應的資料 09/20 00:08
10F:→ mathlove:所以當找不到時 1.在memory內 但TLB上沒有時 就swap 09/20 00:09
11F:→ mathlove:2.TLB上沒有 memory上也沒有 09/20 00:10
12F:→ mathlove:甚麼原因會造成cache miss 差不多的問題就會發生在TLB上 09/20 00:14