欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

缓存MRC模型

发布时间:2024/3/12 75 豆豆
生活随笔 收集整理的这篇文章主要介绍了 缓存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模型的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。