Armv8/Armv9架构中cache缓存的替换策略

快速链接:

1、Pseudo-LRU 和 LRU

缓存替换策略是用于确定在缓存空间已满时应该替换哪些缓存项。Pseudo-LRU(Pseudo-Least Recently Used)和LRU(Least Recently Used)都是常见的缓存替换策略,它们之间有以下区别:

原理:
  • LRU:LRU 策略基于最近访问的时间来判断缓存项的使用频率。当缓存空间已满时,它会选择最长时间未被访问的缓存项进行替换。
  • Pseudo-LRU:Pseudo-LRU 也被称为近似 LRU。它使用一个二叉树或类似的数据结构来维护缓存项的访问历史。每个节点表示一个缓存项,树的叶子节点表示缓存项的状态(被使用或未被使用)。通过比较叶子节点的状态,Pseudo-LRU 策略选择未被使用的缓存项进行替换。
实现复杂度:
  • LRU:LRU 算法相对简单,不需要维护额外的数据结构,只需使用一个数据结构(如双向链表)来记录访问顺序。
  • Pseudo-LRU:Pseudo-LRU 实现相对复杂,需要维护一个额外的数据结构(如二叉树)来跟踪缓存项的访问状态。
准确性:
  • LRU:LRU 策略准确地跟踪每个缓存项的访问时间,并选择最长时间未被访问的缓存项进行替换。
  • Pseudo-LRU:Pseudo-LRU 策略是一种近似算法,它通过维护一个二叉树来估计缓存项的访问时间,因此可能会在某些情况下做出不太准确的替换决策。
内存占用:
  • LRU:LRU 策略在记录访问顺序时只需要一个额外的数据结构,因此在内存占用方面相对较小。
  • Pseudo-LRU:Pseudo-LRU 策略需要维护一个二叉树或类似的数据结构,因此在内存占用方面相对较大。
    总体而言,LRU 是一种经典的缓存替换策略,简单有效,但在某些特定情况下可能不够精确。Pseudo-LRU 是一种近似算法,通过维护额外的数据结构来提供更精确的替换决策,但相应地增加了复杂性和内存占用。选择使用哪种替换策略取决于具体的应用场景和需求。

2、Arm架构中的cache的替换策略 --A78为例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、Dynamic biased replacement policy

Dynamic biased replacement policy(动态偏置替换策略)是一种高级缓存替换策略,它基于访问模式动态地调整缓存中各个缓存项的替换优先级。

传统的缓存替换策略(如LRU、FIFO、Random等)在做出替换决策时,并不考虑不同缓存项的访问频率或重要性。然而,访问模式可能会导致某些缓存项被频繁访问,而其他缓存项则很少被访问。这就引入了动态偏置替换策略的概念。

动态偏置替换策略根据缓存项的访问模式,给予一些缓存项更高的替换优先级,以便更频繁地保留这些重要的缓存项。这样,经常被访问的缓存项相对不太重要的缓存项有更高的替换保护,减少了它们被替换的概率。

具体实现动态偏置替换策略的方法有很多种,其中一种常见的方法是为每个缓存项分配一个访问计数器或权重,并根据这些计数器或权重来进行替换决策。高访问计数或权重的缓存项在替换时具有较低的优先级,从而提高了这些缓存项的保留概率。

动态偏置替换策略可以根据实际的访问模式进行自适应调整(说白了这就是AI智能替换),以适应不同的应用场景和访问模式变化。它可以帮助提高缓存的命中率和性能,并在某些情况下减少替换带来的性能开销。然而,实施和调整动态偏置替换策略需要考虑到访问模式的监测和计算开销,并确保合适的权衡和性能收益。

4、总结

在Armv8/Armv9架构中,L1-I、L1-D的替换策略是Pseudo-LRU,L2是Dynamic biased replacement policy(AI智能替换


关注"Arm精选"公众号,备注进ARM交流讨论区。

1138106487-65f6cf311889c.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值