细粒度策略也可以使用不同的预测目标来捕捉过去的行为

例如,

  1. Kharbutli 等人的 dead block 预测器的一个组件预测了 cacheline 预期在 cache 中被重用的最大次数
  2. EVA 策略引入了一种新颖的预测目标,称为 EVA,并且是少数利用历史信息来指导 aging 过程的细粒度解决方案之一

Economic Value Added (EVA, 2017)

Belady 策略对于面临未来固有不确定性的实际解决方案而言并不充分。实际解决方案需要平衡两个相互竞争的目标:

  1. 最大化给定 cacheline 在 cache 中 hit 的概率
  2. 限制该 cacheline 占用 cache 空间的时长

基于重用距离的解决方案只考虑了权衡的一个方面

Nathan Beckmann and Daniel Sanchez. Maximizing cache performance under uncertainty. In 2017 IEEE International Symposium on High Performance Computer Architecture (HPCA), pages 109–120, 2017.

为了解决这一局限性,Beckmann 等人提出了一种称为 Economic Value Added(EVA)的新指标,它将这两个因素结合成一个单一的度量标准

EVA 被定义为候选 cacheline 可能产生的 hit 次数与其在 cache 中的平均占用情况之比

$$ EVA = Expected_hits - (cache_hits / cache_size) \times Expected_time$$

一个 cacheline 的 EVA 由两个部分组成:

  1. 该行因其预期的未来命中次数而获得奖励(重用概率更高的 cacheline 将具有更高的EVA值)
  2. 该 cacheline 会因其将消耗的 cache 空间而受到惩罚。这一惩罚通过按单个 cacheline 的平均 hit rate(cache hits / cache size)向每个候选 cacheline 收取其在 cache 中停留时间的代价来计算

EVA 指标有效捕捉了缓存某个 cacheline 的成本效益权衡

候选 cacheline 的 EVA 是根据其年龄推断的,并会随着候选 cacheline 年龄增长而修正

扩展

减少不确定性的另一种方法是将 cacheline 分类到不同的类别中。

理论上,EVA 可以扩展以支持分类,但实现的复杂性限制了这种扩展只能用于少数几个类别

EVA 替换策略通过记录 hit 和 eviction 的年龄分布,并利用一个轻量级软件运行时处理这些 eviction 的相关信息,来计算 EVA 曲线

为了预测一个 cacheline 的 EVA,会使用其年龄来索引一个 eviction 优先级数组,该数组在概念上代表了 EVA 曲线