缓存MRC模型
參考論文:
DCAPS- Dynamic Cache Allocation with Partial Sharing
Kinetic Modeling of Data Eviction in Cache
Evaluation techniques for storage hierarchies
一:綜述
內(nèi)存系統(tǒng)是一種多級(jí)結(jié)構(gòu),其中上層內(nèi)存通常扮演底層存儲(chǔ)的緩存角色。這種設(shè)計(jì)的考慮是:在任何時(shí)間段內(nèi),程序中只有一小部分?jǐn)?shù)據(jù)會(huì)被頻繁使用。
過去已經(jīng)有很多working set locality theory,通過Working set size來刻畫locality數(shù)據(jù),Locality characterization techniques(Locality建模技術(shù))已經(jīng)發(fā)展了幾十年。它們廣泛用于不同級(jí)別的內(nèi)存層次結(jié)構(gòu)的管理和優(yōu)化。
截止目前已經(jīng)有很多關(guān)于MRC(miss ratio curves)的理論,來對(duì)上層緩存進(jìn)行建模,得出程序分配緩存大小和性能的關(guān)系模型:MissRatio=F(capacity)
基本分為兩種方法:
?
第一個(gè)系統(tǒng)提出MRC模型的是1970年的Stack Processing理論,簡單的說就是通過記錄負(fù)載訪問內(nèi)存的reuse distance來得到MRC模型。
之后的幾年有兩個(gè)方面的改進(jìn):
二:算法介紹
1)Stack Processing
可以將LRU-cache抽象化為一個(gè)棧。按照每個(gè)數(shù)據(jù)的最近一次訪問時(shí)間進(jìn)行排序,每當(dāng)數(shù)據(jù)被從新訪問時(shí)候,就會(huì)被移動(dòng)到棧的頂部。當(dāng)棧中的數(shù)據(jù)長度超過棧的大小的時(shí)候,最后一個(gè)數(shù)據(jù)就會(huì)被換出。
?
如圖陰影部分所示,當(dāng)一個(gè)數(shù)據(jù)miss的時(shí)候,會(huì)被從新寫入放到棧的頂部,隨著時(shí)間的推移中間可能會(huì)被從新訪問幾次,最后數(shù)據(jù)逐步移動(dòng)到棧尾部最后換出。
下面定義幾個(gè)變量:
1>
假如數(shù)據(jù)換出的時(shí)間是t,數(shù)據(jù)最后一次訪問的時(shí)間是u,那么書記的換出時(shí)間就是:
evicted time = t - u
上圖陰影部分,數(shù)據(jù)d的換出時(shí)間是9-4=5
2>
數(shù)據(jù)最后一次訪問到數(shù)據(jù)到達(dá)位置m的時(shí)間,就是數(shù)據(jù)到達(dá)時(shí)間Tm。
上圖陰影部分,數(shù)據(jù)d位置2的到達(dá)時(shí)間是6-5=1
2)reuse distance MRC
定義n為cache總訪問次數(shù),rd(x)為reuse distance是x的訪問次數(shù),則size為c時(shí)的miss ratio為reuse distance大于c的訪問次數(shù)占比。
?
3)reuse time MRC
定義大小為c的cache,平均換出時(shí)間為AET(c)。
隊(duì)列位置c的平均到達(dá)時(shí)間是Tc。
則AET(c) = Tc
由
? ? ? ?t=AET(d)
得:
?
定義rd(x)為reuse distance為x的訪問次數(shù),rt(t)為reuse time為t的訪問次數(shù),n為總的訪問次數(shù)。
從而:
?
所以,當(dāng)滿足下面條件的時(shí)候miss ratio的計(jì)算可以用reuse time替代reuse distance:
?
3)cache share情況
多個(gè)實(shí)例(1~n)共享cache,各自的AETi(c)和group的總AET(c)相等:
?
總mr(c)為各自mri(c)之和:
?
三:數(shù)據(jù)采集
根據(jù)上述理論,通過記錄緩存訪問的Reuse Distance Histogram (RDH) Sampling 或者 Reuse Time Histogram (RTH) Sampling,就可以得到MRC的模型曲線。
目前我們perf工作在采樣模式,通過Performance Event Select Registers和Performance Monitoring Counters(PMC)對(duì)事件進(jìn)行統(tǒng)計(jì)采樣。
可以使用intel的Precise Event-Based Sampling (PEBS)機(jī)制,采集cache讀寫地址信息,獲取RTH(sampled reuse time histogram),進(jìn)而獲取緩存的MRC模型。
參考資料:
GUIDE, P. Intel? 64 and ia-32 architectures software developer’s manual.?Volume 3B: System programming Guide, Part 3?(2017).
四:效果比較
目前公布準(zhǔn)確率已經(jīng)在98%以上,近幾年新的研究論文主要在通過優(yōu)化算法來降低數(shù)據(jù)存儲(chǔ)空間和cpu資源占用。
AET vs SHARDS
?
總結(jié)
- 上一篇: Vue 删除列表项的淡出动画
- 下一篇: GAN综述及其在图像生成领域的应用(含原