组相联缓存

概念

组相联缓存(Set-Associative Cache)中每个组(Set)包含 E 行(E > 1),称为 E 路组相联

访问过程

  1. 从地址中提取组索引 s,定位到目标组
  2. 并行检查组内 所有 E 行 的 valid 位和 tag 3.如果任何一行匹配 命中** 4.如果都不匹配 不命中**,选择一个行替换

替换策略

当组已满且需要加载新块时,需要选择一个行替换:

LRU(Least Recently Used)

  • 替换最近最少被使用的行
  • 效果最好,但实现复杂(需要维护访问顺序)
  • 通常用近似 LRU 实现

FIFO(First In, First Out)

  • 替换最早加载的行
  • 实现简单,但可能替换掉活跃数据

随机替换

  • 随机选择一行替换
  • 实现最简单,性能尚可

相联度与性能

相联度特点典型用途
E=1(直接映射)简单、快、冲突高早期 CPU
E=2~16(组相联)平衡成本和性能L1/L2 缓存
E=全部(全相联)无冲突、搜索慢TLB

减少冲突

组相联有效减少 的抖动问题,通过为同一组提供多个缓存行来容纳更多数据。


相关笔记:

链接到