日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

          歡迎訪問 生活随笔!

          生活随笔

          當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

          编程问答

          缓存MRC模型

          發布時間:2024/3/12 编程问答 55 豆豆
          生活随笔 收集整理的這篇文章主要介紹了 缓存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)

          基本分為兩種方法:

        1. 通過數據重新訪問距離(reuse distance),來建立MRC模型。
        2. 通過數據重新訪問時間(reuse time),來建立MRC模型。
        3. ?

          第一個系統提出MRC模型的是1970年的Stack Processing理論,簡單的說就是通過記錄負載訪問內存的reuse distance來得到MRC模型。

          之后的幾年有兩個方面的改進:

        4. 用reuse time替代reuse distance來生成MRC模型。
        5. 通過一些改進方法減少算法對內存和CPU資源的占用。
        6. 二:算法介紹

          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

          ?

          總結

          以上是生活随笔為你收集整理的缓存MRC模型的全部內容,希望文章能夠幫你解決所遇到的問題。

          如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。