ISCA 2025
- 最新研究表明,现代应用越来越呈现出指令密集型特征,指令缓存未命中对性能的影响也日益显著
- 传统面向数据密集型缓存管理的研究主要集中在两个关键技术上:替换(replacement)和预取(prefetching)
- 缓存替换策略的目标是将预测为复用率低的缓存块替换为未来更可能使用的数据块
- 预取则是提前将数据从主存或较低层级缓存加载到更高层级(离核心更近)的缓存中,以便在实际访问之前就可用
- 虽然这两种技术本身都很关键,但它们之间的交互关系对于缓存管理效率至关重要,尤其是在处理指令密集型工作负载时
- 这种交互在以往的研究中并未得到充分探索
- 忽视两者之间的配合会导致系统性能次优
- 替换策略可能会在预取数据被实际访问之前将其过早驱逐,或预取器可能会将无未来用途的数据放入缓存,从而扰乱替换策略对需求驱动访问模式的适应能力
- 传统面向数据密集型缓存管理的研究主要集中在两个关键技术上:替换(replacement)和预取(prefetching)
- 为了解决上述问题,近期有研究尝试将预取纳入替换策略的设计中
- 但这些方案往往缺乏两个关键特性:简洁性与通用性
- 某些方法虽然结构简单,但效果不及更复杂的先进技术
- 如 Mockingjay 这类方法虽然效果出色,却需要大量硬件资源
- 以一个四核、8MB LLC 系统为例,Mockingjay 的硬件预算为 127.62 KB,其实现包括多个逻辑模块,如用于追踪重访问距离的 Sampled Cache、每个 set 的 Reuse Distance Predictor(RDP)、用于替换决策的 ETA 计数器等。
- 更重要的是,Mockingjay 主要面向数据流的 LLC 管理而设计
- 论文分析表明,现代的指令密集型工作负载行为表现出显著不同
- ——>需要一种低成本、低复杂度、面向指令密集型工作负载的缓存替换策略
- 论文提出使用 插入与提升向量(IPVs)来统一管理对缓存的需求访问与预取访问
- 最初,IPVs 是为了改进 LRU 策略而提出的,它为每个缓存块分配一个“访问新旧程度”的位置
- 一个 IPV 向量定义了如何根据当前访问位置更新缓存块的位置
- 论文对 IPV 做了两点扩展:
-
为需求访问与预取访问分别使用不同的 IPV;
-
以 RRIP(Re-reference Interval Prediction) 策略为基础,而不是 LRU,因为 RRIP 以更粗粒度简化了新旧访问判断逻辑。
-
-
相比于以往的复杂策略,硬件需求大幅降低,仅约 12KB,状态信息更少,但在处理指令密集型工作负载时却能提供相当或更优的性能
- 最初,IPVs 是为了改进 LRU 策略而提出的,它为每个缓存块分配一个“访问新旧程度”的位置