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