2.4 Cache Block的替换算法1

本文介绍了Cache Block的替换算法,如MRU、FIFO、RR、LRU、PLRU等,并讨论了LRU算法的局限性和其他优化算法,如2Q、LRFU、LRU-K等。重点探讨了LIRS算法,它通过IRR和Recency参数解决LRU在处理Weak Locality时的不足,提供了一种更优的解决方案。
摘要由CSDN通过智能技术生成

在处理器系统处于正常的运行状态时,各级Cache处于饱和状态。由于Cache的容量远小于主存储器,Cache Miss时有发生。一次Cache Miss不仅意味着处理器需要从主存储器中获取数据,而且需要将Cache的某一个Block替换出去。

不同的微架构使用了不同的CacheBlock替换算法,本篇仅关注采用Set-Associative方式的Cache Block替换算法。在讲述这些替换算法之前,需要了解Cache Block的状态。如24所示,在Tag阵列中,除了具有地址信息之外,还含有Cache Block的状态信息。不同的Cache一致性策略使用的Cache状态信息并不相同,如Illinois Protocol[32]协议使用的相关的状态信息,该协议也被称为MESI协议。

MESI协议中,一个Cache Block通常含有MESI这四个状态位,如果考虑多级Cache层次结构的存在,MESI这些状态位的表现形式更为复杂一些。在有些微架构中,Cache Block中还含有一个L(Lock)位,当该位有效时,该Block不得被替换。L位的存在,可以方便地将微架构中的Cache模拟成为SRAM,供用户定制使用。使用这种方式需要慎重。

在很多情况下,定制使用后的Cache优化结果可能不如CPU自身的管理机制。有时一种优化手段可能会在局部中发挥巨大作用,可是应用到全局后有时不但不会加分,反而带来了相当大的系统惩罚。这并不是这些优化手段的问题,只是使用者需要知道更高层面的权衡与取舍。不谋万世者,不足谋一时;不谋全局者,不足谋一域。

CacheBlock中,除了有MESIL这些状态位之外,还有一些特殊的状态位,这些状态位与Cache Block的更换策略相关。微架构进行Cache Block更换时需要根据这些状态位判断在同一个SetCache Block的使用情况,之后选择合适的算法进行Cache Block更换。常用的Replacement算法有MRU(Most Recently Used)FIFORR(Round Robin)RandomLRU(Least Recently Used)PLRU(Pseudo LRU)算法。

所有页面替换算法与Belady's Algorithm算法相比都不是最优的。Belady算法可以对将来进行无限制的预测,并以此决定替换未来最长时间内不使用的数据。这种理想情况被称作最优算法,Belady's Algorithm算法只有理论意义,因为精确预测一个Cache Block在处理器系统中未来的存活时间没有实际的可操作性,这种算法并没有实用价值。这个算法是为不完美的缓存算法树立一个完美标准。

在以上可实现的不完美算法中,RRFIFORandom并没有考虑Cache Block使用的历史信息。而TemporalSpatial Locality需要依赖这些历史信息,这使得某些微架构没有选用这些算法,而使用LRU类算法,这不意味着RRFIFORandom没有优点。

理论和Benchmark结果[23][35][37]多次验证,在Miss Ratio的考核中,LRU类优于MRUFIFORR类算法。这也并不意味着LRU是实现中较优的Cache替换算法。事实上,在很多场景下LRU算法的表现非常糟糕。考虑4-Way Set-Associative方式的Cache,在一个连续访问序列{a, b, c, d, e}命中到同一个Set时,Cache Miss Ratio非常高。

在这种场景下,LRU并不比RRFIFO算法强出多少,甚至会明显弱于Random实现方式。事实上我们总能找到某个特定的场景证明LRU弱于RRFIFO和上文中提及的任何一种简单的算法。我们也可以很容易地找到优于LRU实现的页面替换算法,诸如2QLRFULRU-KClockClock-Pro算法等。

这些算法在分布存储,W

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值