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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

缓存MRC模型

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

基本分為兩種方法:

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

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

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

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

    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模型的全部內容,希望文章能夠幫你解決所遇到的問題。

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