L2 Cache Data Prefetcher Overview
Paper
一、Stride / Stream 预取器(经典基础方法)
| Title | Year | From | URL |
|---|---|---|---|
| Improving Direct-Mapped Cache Performance by the Addition of a Small Fully-Associative Cache and Prefetch Buffers | 1990 | ISCA | https://doi.org/10.1145/325164.325162 |
| An Effective On-Chip Preloading Scheme to Reduce Data Access Penalty | 1995 | SC | https://doi.org/10.1145/224170.224222 |
| Data Cache Prefetching Using a Global History Buffer | 2004 | HPCA | https://doi.org/10.1109/HPCA.2004.10030 |
Improving Direct-Mapped Cache Performance by the Addition of a Small Fully-Associative Cache and Prefetch Buffers (Jouppi, ISCA 1990)
- 早期处理器 cache miss penalty 日益增长,需要在不增加大量硬件的前提下减少 miss 延迟
- 核心 insight:利用简单的 stream buffer 在 cache miss 时预取后续连续 cache line,可以有效捕获顺序访问模式
- 提出 stream buffer(流缓冲区)机制,在检测到 cache miss 后自动预取后续 N 个连续 cache line 到独立的 FIFO buffer 中
- 这是硬件数据预取领域的奠基性工作之一,stream buffer 的思想被后续几乎所有商用处理器所采纳
An Effective On-Chip Preloading Scheme to Reduce Data Access Penalty (Chen & Baer, SC 1995)
- 单纯的顺序预取无法捕获非连续的规律性访存模式(如数组以固定步长遍历)
- 核心 insight:通过 Reference Prediction Table (RPT) 记录每个 load 指令(以 PC 索引)的上次访问地址和计算出的 stride,可以预测下次访问地址
- 提出 PC-indexed stride prefetcher,为每个 load 指令维护一个 (last_address, stride, state) 表项,当 stride 稳定时发出预取
- 作为 stride 预取的经典方案,其核心思想被 Intel/AMD/ARM 等主流处理器广泛采用至今(如 Intel 的 IP-based stride prefetcher)
Data Cache Prefetching Using a Global History Buffer (Nesbit & Smith, HPCA 2004)
- 传统 stride 预取器以 PC 为索引,存储效率受限;不同 PC 可能共享相似的访存模式
- 核心 insight:将全局 miss 地址历史记录在一个共享的环形缓冲区(GHB)中,通过不同的索引方式(PC-indexed 或 Address-indexed)支持多种预取策略
- 提出 Global History Buffer(GHB)架构,将 miss 地址流存储在全局 FIFO 中,配合 Index Table 实现 PC/DC(PC-indexed delta correlation)、AC/DC(Address-Correlated delta correlation)等多种预取模式
- 统一了 stride、delta correlation、Markov 等多种预取方法的存储框架,在 SPEC CPU 2000 上取得显著性能提升
二、Delta / Offset 预取器(基于地址差分的方法)
| Title | Year | From | URL |
|---|---|---|---|
| Best-Offset Hardware Prefetching | 2016 | HPCA | https://doi.org/10.1109/HPCA.2016.7446087 |
| Efficiently Prefetching Complex Address Patterns (VLDP) | 2015 | MICRO | https://doi.org/10.1145/2830772.2830793 |
| Multi-Lookahead Offset Prefetcher (MLOP) | 2019 | DPC-3 | https://dpc3.compas.cs.stonybrook.edu/pdfs/MLOP.pdf |
| Signature Path Prefetcher (SPP) | 2016 | MICRO | https://doi.org/10.1109/MICRO.2016.7783743 |
| Perceptron-Based Prefetch Filtering for SPP (SPP+PPF) | 2020 | ISCA | https://doi.org/10.1109/ISCA45697.2020.00024 |
Best-Offset Hardware Prefetching (BOP) (Michaud, HPCA 2016)
- 传统 stride 预取器需要较长的训练时间才能锁定 stride,且只能跟踪单一 PC 的 stride
- 核心 insight:在一个 page 内,通过”回溯验证”(retrospective verification)的方式评估多个候选 offset 的有效性——对于每个 demand access 地址 A,检查 A-offset 是否曾出现在最近的 demand 访问中
- BOP 维护一个候选 offset 的评分表,周期性地评估每个 offset 的得分(即该 offset 成功预测的次数),选出得分最高的 best offset 作为全局预取 offset
- 以极低的硬件开销(约 2KB)获得了 DPC-2 竞赛冠军,在 SPEC CPU 2006 上相比无预取 IPC 提升约 10%
Efficiently Prefetching Complex Address Patterns — Variable Length Delta Prefetcher (VLDP) (Shevgoor et al., MICRO 2015)
- 很多应用的访存模式包含多个交替出现的 delta 值,简单的固定 stride 预取器无法捕获
- 核心 insight:利用可变长度的 delta 历史序列来预测下一个 delta,类似于文本压缩中的可变长度匹配
- VLDP 维护多张不同长度的 delta 预测表(1-delta, 2-delta, 3-delta…),通过最长匹配优先的策略选择最佳预测
- 在复杂的多 delta 模式工作负载上显著优于传统 stride 预取器,在 SPEC CPU 2006 上 IPC 提升约 8%
Multi-Lookahead Offset Prefetcher (MLOP) (Shakerinava & Bakhshalipour, DPC-3 2019)
- BOP 只选择单一最优 offset,在同时存在多种有效 offset 的场景下预取覆盖率受限
- 核心 insight:允许多个 offset 同时参与预取,并通过多步前瞻来发出更多预取请求
- MLOP 维护多个候选 offset 的评分表,根据评分动态选择多个 offset 同时预取,并支持多步 lookahead
- 在 DPC-3 竞赛中取得优秀成绩,特别是在同时存在多种访存 stride 的工作负载上
Signature Path Prefetcher (SPP) (Kim et al., MICRO 2016)
- 传统 stride/delta 预取器只关注最近一个或几个 delta,无法利用更长的历史 delta 模式
- 核心 insight:将连续的 page 内 delta 序列压缩(哈希)为一个固定位宽的 signature,利用 signature 查表预测后续 delta 路径,支持多步递归前瞻
- SPP 使用 Signature Table (ST) 记录每个 page 的当前 signature,使用 Pattern Table (PT) 存储从每个 signature 出发的候选 delta 及其置信度,支持 lookahead path 的递归预取
- 在 SPEC CPU 2006 上相比 stride 预取器 IPC 提升约 7%,在复杂非规则 delta 模式上表现尤为突出
Perceptron-Based Prefetch Filtering for SPP (SPP+PPF) (Bhatia et al., ISCA 2020 / DPC-3)
- SPP 在多步递归前瞻中会产生大量低置信度的预取候选,这些无用预取会污染缓存并浪费带宽
- 核心 insight:使用 perceptron 模型综合多种特征(PC signature、page address、delta、置信度等)来判断每个候选预取是否值得发出
- 在 SPP 框架基础上增加了基于感知机的过滤层,训练权重表以在线学习哪些预取特征组合对应有用预取
- 相比原始 SPP,准确率大幅提升,整体 IPC 显著改善;在 DPC-3 竞赛中取得了顶尖成绩
三、Spatial 预取器(空间区域预取方法)
| Title | Year | From | URL |
|---|---|---|---|
| Spatial Memory Streaming (SMS) | 2006 | ISCA | https://doi.org/10.1109/ISCA.2006.38 |
| Bingo: Elastic Data Prefetching for Hardware-Efficient Spatial Data Prefetching | 2019 | HPCA | https://doi.org/10.1109/HPCA.2019.00045 |
| DSPatch: Dual Spatial Pattern Prefetcher | 2019 | MICRO | https://doi.org/10.1145/3352460.3358325 |
| Access Map Pattern Matching (AMPM) Prefetch | 2011 | ICS | https://doi.org/10.1145/1995896.1995947 |
| Merging Similar Patterns for Hardware Prefetching (PMP) | 2022 | MICRO | https://dl.acm.org/doi/10.1109/MICRO56248.2022.00071 |
Spatial Memory Streaming (SMS) (Somogyi et al., ISCA 2006)
- 许多应用对一个 spatial region(如 4KB page 或 2KB region)内的多个 cache line 有不规则但可重复的访问 footprint
- 核心 insight:记录 PC 触发的 spatial region 的完整访问 footprint(bitmap),当相同 PC 再次触发新 region 时,回放(replay)之前记录的 footprint
- SMS 使用 Active Generation Table (AGT) 追踪当前活跃 region 的 footprint,Generation Complete 后存入 Pattern History Table (PHT),以 PC+offset 为索引
- 在 SPEC CPU 2000/2006 上覆盖率极高,尤其对 OLTP、图数据库等空间访问密集型工作负载效果显著;但存储开销较大
Bingo: Elastic Data Prefetching for Hardware-Efficient Spatial Data Prefetching (Bakhshalipour et al., HPCA 2019)
- SMS 需要大量存储记录每个 spatial region 的 footprint,在硬件上不够实际
- 核心 insight:相同 PC 触发的不同 region 的访问 footprint 高度相似,可以用 PC + trigger offset 作为索引来大幅压缩 footprint 的存储
- Bingo 通过 Event Table 和 Footprint Table 的两级结构,在仅约 10KB 的硬件开销下实现接近理想 SMS 的预取覆盖率
- 以远低于 SMS 的硬件开销取得了与 SMS 相当的性能,是空间预取器设计中硬件效率最高的方案之一
DSPatch: Dual Spatial Pattern Prefetcher (Bera et al., MICRO 2019)
- 单一的空间 footprint 记录方式在不同程序阶段的 footprint 发生变化时适应性不足
- 核心 insight:维护两种互补的 spatial pattern 记录方式——基于 PC 和基于 page offset——并动态选择更准确的一种
- DSPatch 同时维护 PC-based 和 offset-based 两组 spatial pattern,通过 anchor 机制和准确率反馈在两者之间切换
- 在 SPEC CPU 2017 和 GAP 基准上综合表现优于 SMS 和 BOP,尤其在程序行为动态变化的场景中
Access Map Pattern Matching (AMPM) Prefetch (Ishii et al., ICS 2011)
- 传统预取器难以同时处理多种混合访存模式(如同一 page 内既有 stride 又有不规则访问)
- 核心 insight:为每个 memory page 维护一个 access map(位图),记录哪些 cache line 已被访问,然后通过模式匹配在 map 中发现 stride 和复杂模式
- AMPM 对每个 hot page 维护一个 access/prefetch 状态位图,扫描 map 中的访问模式来生成预取地址
- 获得了 DPC-1 竞赛冠军;能够同时捕获多种不同 stride 的混合访问模式
四、Temporal 预取器(时间关联预取方法)
| Title | Year | From | URL |
|---|---|---|---|
| Prefetching Using Markov Predictors | 1997 | ISCA | https://doi.org/10.1145/264107.264207 |
| Practical Off-Chip Meta-Data for Temporal Memory Streaming (STeMS) | 2009 | HPCA | https://doi.org/10.1109/HPCA.2009.4798239 |
| Linearizing Irregular Accesses for Temporal Prefetching (ISB) | 2013 | MICRO | https://doi.org/10.1145/2540708.2540730 |
| Domino: Temporal Data Prefetching Using Irregular Patterns of Correlated Misses | 2018 | MICRO | https://doi.org/10.1109/MICRO.2018.00057 |
| Profile-guided temporal prefetching (Prophet) | 2025 | ISCA | https://dl.acm.org/doi/epdf/10.1145/3695053.3731070 |
Prefetching Using Markov Predictors (Joseph & Grunwald, ISCA 1997)
- 规则的 stride/stream 预取器无法处理指针追踪等不规则访存模式
- 核心 insight:可以将 miss 地址序列建模为 Markov 链——miss 地址 A 之后最可能出现的 miss 地址 B 是可以通过历史统计学习的
- 提出使用关联表(correlation table)记录 miss 地址之间的转移概率,在当前 miss 发生时查表预取最可能的后续 miss 地址
- 这是时间关联预取(temporal prefetching)的开创性工作,为后续 GHB、STMS、ISB、Domino 等一系列时间预取器奠定了理论基础
Practical Off-Chip Meta-Data for Temporal Memory Streaming (STeMS) (Wenisch et al., HPCA 2009)
- 时间预取器需要存储大量的 miss 地址序列历史,片上存储远远不够
- 核心 insight:将完整的 temporal stream 元数据存储在片外 DRAM 中,通过索引结构只在片上缓存当前活跃的少量 stream
- STeMS 通过 Sampled Temporal Memory Streaming 方法,在片上只维护少量的 stream 头指针和一小段活跃序列,大部分元数据存储在专用的片外 DRAM 区域
- 在 OLTP、Web 服务器等 irregular 访存密集型工作负载上取得了显著的 miss 覆盖率
Linearizing Irregular Accesses for Temporal Prefetching — Irregular Stream Buffer (ISB) (Jain & Lin, MICRO 2013)
- 时间预取器存储完整 miss 地址序列的存储开销过大,且序列重放需要精确匹配
- 核心 insight:将不规则的 physical address 序列映射到一个线性化的”structural address”空间,使得时间关联的地址在结构空间中变为连续的,从而可以用简单的 stream buffer 进行预取
- ISB 通过训练单元和预测单元,利用 PC-localized correlation 将 physical address pair 映射为结构地址,之后用常规 stream buffer 机制预取
- 大幅减少了时间预取的存储开销,在 irregular workload 上性能接近理想的全 miss stream 回放方案
Domino: Temporal Data Prefetching Using Irregular Patterns of Correlated Misses (Bakhshalipour et al., MICRO 2018)
- 完整时间序列的存储和匹配开销过大(如 STMS),限制了时间预取的可扩展性
- 核心 insight:将完整的 miss 序列分解为成对(pair-wise)的关联关系,每对只需记录 (trigger, target) 即可
- Domino 将 miss stream 分解为相邻 miss 对的关联表,通过链式查找进行多步预取
- 以约 SMS 十分之一的存储开销达到了接近完整 temporal stream 回放的覆盖率
五、PC-Classifier / Hybrid 预取器(基于 PC 分类的混合方法)
| Title | Year | From | URL |
|---|---|---|---|
| Bouquet of Instruction Pointers: Instruction Pointer Classifier-based Spatial Hardware Prefetching (IPCP) | 2020 | ISCA (DPC-3) | https://doi.org/10.1109/ISCA45697.2020.00023 |
| Berti: An Accurate Local-Delta Data Prefetcher | 2022 | HPCA | https://doi.org/10.1109/HPCA53966.2022.00072 |
| Kill the Program Counter: Reconstructing Program Behavior in the Processor Cache Hierarchy | 2020 | ASPLOS | https://doi.org/10.1145/3373376.3378456 |
Bouquet of Instruction Pointers — IPCP (Pakalapati & Panda, ISCA 2020 / DPC-3)
- 不同的 load 指令(PC)展现出截然不同的访存模式类型(常量 stride、复杂 stride、全局 stream 等),用单一预取策略无法最优覆盖所有类型
- 核心 insight:对每个 PC 的历史行为进行分类(constant stride / complex stride / global stream),然后为每个类别分配最合适的预取策略
- IPCP 使用 IP Table 记录每个 PC 的分类和相关历史信息,constant stride 用 stride 预取,complex stride 用 delta signature 预取,global stream 用 stream 预取
- 赢得 DPC-3 预取竞赛第一名;在综合得分上超过所有其他参赛方案,证明了 PC 分类方法的有效性
Berti: An Accurate Local-Delta Data Prefetcher (Navarro-Torres et al., HPCA 2022)
- 现有 delta 预取器在选择使用哪个 delta 进行预取时缺乏对预取及时性(timeliness)的考量
- 核心 insight:对于同一个 PC,不同的 delta 对应不同的预取距离(time distance);应选择在预取到达时间与 demand 到达时间匹配最好的 delta
- Berti 为每个 PC 维护 delta history 和 time stamp history,通过比较 delta 对应的预取延迟与历史延迟来选择最优 delta
- 以极低的硬件开销取得了 DPC-3 竞赛的顶级覆盖率和准确率,核心创新在于将 timeliness 纳入 delta 选择标准
Kill the Program Counter: Reconstructing Program Behavior in the Processor Cache Hierarchy (Pakalapati & Panda, ASPLOS 2020)
- 在 L2/LLC 层级中,PC 信息通常不可用(因为 L1 已经过滤),限制了 PC-based 预取策略
- 核心 insight:可以利用 L2 miss 的地址模式信息来重构等效的 PC 分类信息,无需实际传递 PC 值
- 提出利用 cache 层级中可获取的地址 pattern 来推断程序行为分类,使 L2/LLC 预取器也能利用 PC-like 信息
- 使得高层级缓存预取器也能享受类似 L1 级别 PC-based 预取的精确性,是解决 L2 预取器缺少 PC 信息的关键工作
六、基于机器学习的预取方法
| Title | Year | From | URL |
|---|---|---|---|
| Pythia: A Customizable Hardware Prefetching Framework Using Online Reinforcement Learning | 2021 | MICRO | https://doi.org/10.1145/3466752.3480114 |
| Learning Memory Access Patterns (Voyager) | 2020 | ICML | https://proceedings.mlr.press/v119/hashemi20a.html |
| A Hierarchical Neural Model of Data Prefetching | 2021 | ASPLOS | https://doi.org/10.1145/3445814.3446752 |
| TransFetch: A Transformer-Based Hardware Prefetcher | 2022 | ICS | https://doi.org/10.1145/3524059.3532372 |
Pythia: A Customizable Hardware Prefetching Framework Using Online Reinforcement Learning (Bera et al., MICRO 2021)
- 传统预取器依赖固定的手工规则,难以泛化到多样化的访存行为
- 核心 insight:将预取决策建模为在线强化学习问题——agent 观察程序上下文状态(PC, delta, page offset 等),选择预取 action(target delta),并根据预取是否被使用获得 reward
- Pythia 使用在线 RL agent 和基于 CMAC 函数逼近的 Q-learning,动态学习最优预取策略;硬件开销仅约 1% 面积
- 在 SPEC CPU 和 GAP 基准上相比最佳固定规则预取器 IPC 提升 5-10%,且在不同工作负载间鲁棒性更好
Learning Memory Access Patterns — Voyager (Hashemi et al., ICML 2020)
- 复杂应用(如图遍历、指针追踪)的访存模式存在长距离依赖,传统预取器无法捕获
- 核心 insight:基于 Attention 机制的序列模型能有效捕获 miss 地址序列中的长距离时间依赖关系
- Voyager 使用 Attention-based 神经网络对 miss 地址序列建模,预测下一个 miss 的 page + offset
- 在指针追踪等复杂不规则模式上大幅优于传统预取器;但推理延迟和模型规模是硬件化的主要挑战
A Hierarchical Neural Model of Data Prefetching (Zeng & Guo, ASPLOS 2021)
- 访存模式同时包含 page-level 和 offset-level 两个层级的规律,单层模型难以同时建模
- 核心 insight:使用层级化的神经网络架构,分别建模 page-level 的粗粒度模式和 offset-level 的细粒度模式
- 提出双层 LSTM/Attention 模型:上层预测目标 page,下层预测目标 offset
- 在不规则访存场景上覆盖率大幅提升;硬件实现需要定制的神经网络加速单元
TransFetch: A Transformer-Based Hardware Prefetcher (Wu et al., ICS 2022)
- 基于 LSTM 的预取模型参数量大、推理延迟高,不满足硬件预取的实时性约束
- 核心 insight:轻量化的 Transformer 编码器可以在保持预测精度的同时降低推理延迟
- 使用简化的 Transformer encoder 进行访存地址预测,通过模型压缩和量化降低硬件开销
- 相比 Voyager 推理延迟降低约 3-5 倍,在部分工作负载上精度有提升
七、预取管理与反馈控制
| Title | Year | From | URL |
|---|---|---|---|
| Feedback Directed Prefetching: Improving the Performance and Bandwidth-Efficiency of Hardware Prefetchers | 2007 | HPCA | https://doi.org/10.1109/HPCA.2007.346185 |
| Triage: Characterizing and Balancing Accuracy and Timeliness of Prefetching | 2019 | IEEE CAL | https://doi.org/10.1109/LCA.2019.2916520 |
| Perceptron-Based Prefetch Filtering | 2012 | ISCA | https://doi.org/10.1109/ISCA.2012.6237009 |
Feedback Directed Prefetching (FDP) (Srinath et al., HPCA 2007)
- 静态配置的预取器激进程度无法适应程序行为的动态变化
- 核心 insight:通过运行时监测三个关键指标——准确率(accuracy)、延迟性(lateness)和缓存污染(pollution)——动态调节预取行为
- FDP 实时统计上述三个指标,据此动态调整预取 degree 和 distance,在极端情况下关闭预取
- 预取管理领域的奠基工作,在 SPEC CPU 上平均性能提升约 30%,被后续几乎所有预取管理工作引用
Triage: Characterizing and Balancing Accuracy and Timeliness of Prefetching (Jimenez, IEEE CAL 2019)
- 准确率和及时性之间存在根本矛盾——提高 prefetch distance 可以改善及时性但降低准确率
- 核心 insight:需要同时量化和平衡这两个指标,而非只优化其中一个
- 提出了同时评价和平衡预取准确率与及时性的方法论和指标
- 为预取器设计和管理提供了重要的评价框架
Perceptron-Based Prefetch Filtering (Jimenez, ISCA 2012)
- 预取器发出的大量无用预取浪费带宽并污染缓存
- 核心 insight:类似分支预测中的 perceptron,使用感知机模型根据多种程序上下文特征对预取请求分类(useful vs useless)
- 提出 perceptron-based filter,综合 PC、address、delta 等特征在线训练分类器,过滤无用预取
- 开创了将 ML 技术引入预取过滤的先河,为 SPP+PPF 等后续工作奠定基础
八、综述与基准平台
| Title | Year | From | URL |
|---|---|---|---|
| A Survey of Recent Hardware Prefetching Techniques | 2023 | ACM Computing Surveys | https://doi.org/10.1145/3593428 |
| A Survey of Hardware Prefetching Techniques for On-Chip Caches | 2016 | ACM Computing Surveys | https://doi.org/10.1145/2907071 |
| ChampSim: A Trace-Based Simulator for Microarchitectural Studies | 2023 | IEEE CAL | https://doi.org/10.1109/LCA.2023.3311530 |
A Survey of Recent Hardware Prefetching Techniques (Liao et al., ACM Computing Surveys 2023)
- 按 stride-based、delta/offset-based、spatial、temporal、RL/ML-based 等维度全面综述了近年主要预取器设计
- 覆盖了 2010-2023 年间几乎所有重要的硬件预取器论文,并对预取管理策略进行了专门讨论
A Survey of Hardware Prefetching Techniques for On-Chip Caches (Mittal, ACM Computing Surveys 2016)
- 较早期的全面综述,覆盖了 2000-2015 年间的主要硬件预取技术
- 按预取器类型、预取层级、评估方法等维度进行分类,对 stride、stream、correlation、spatial 等经典方法有详细分析
ChampSim: A Trace-Based Simulator for Microarchitectural Studies (Gober et al., IEEE CAL 2023)
- 预取器研究需要标准化的模拟器和基准
- ChampSim 是 DPC 系列竞赛的官方模拟器,已成为预取器研究的事实标准
- 详细规范了 ChampSim 的架构和使用方法,为预取器研究的可复现性提供基础
Patents
| Title | Year | Inc. | Number |
|---|---|---|---|
| Stream buffers for high-performance computer memory system | 1998 | Cray Research (now HPE) | US5761706A |
| Microprocessor with improved data stream prefetching | 2009 | MIPS Technologies (now ARM) | US7512740B2 |
| Prefetch Instruction Mechanism for Processor | 2001 | AMD (now GlobalFoundries) | US6253306B1 |
| Method and apparatus for selectively prefetching based on resource availability | 2010 | Sun Microsystems (now Oracle) | US7707359B2 |
| Specifying an access hint for prefetching limited use data in a cache hierarchy | 2012 | IBM | US8176254B2 |
| Adaptive hardware prefetcher control | 2015 | ARM | US9043573B2 |
| Apparatus and method for managing multiple prefetchers | 2019 | AMD | US10430342B2 |
| Machine learning based hardware prefetching | 2021 | Intel | US11080194B2 |
| Adaptive multi-prefetcher management using performance feedback | 2022 | ARM | US11321235B2 |
| Prefetcher arbitration based on prefetch accuracy metrics | 2023 | AMD | US11593275B2 |
简介
Stream buffers for high-performance computer memory system (Cray/HPE, US5761706A, 1998)
- 早期向量处理器中 cache miss 延迟严重限制了性能
- 核心 insight:利用 stream buffer 检测连续/strided 的地址访问模式,提前将后续 cache line 预取到独立缓冲区
- 设计了带有过滤控制器的 stream buffer,包含历史表追踪近期访问,检测到地址间的固定关系后自动预取
- 这是 stream buffer 硬件预取的早期重要专利
Microprocessor with improved data stream prefetching (MIPS/ARM, US7512740B2, 2009)
- 传统 stream prefetcher 只能跟踪简单的顺序模式,对非连续 stream 覆盖不足
- 核心 insight:通过硬软件结合的方式,允许程序员指定 stream 参数(cache 层级、淘汰策略、优先级等)来精细控制预取行为
- 设计了可配置的 stream prefetch unit,支持多路 stream 追踪并根据 load/store 操作自动同步预取进度
Prefetch Instruction Mechanism for Processor (AMD/GlobalFoundries, US6253306B1, 2001)
- 软件预取指令在实现上需要处理 fault、blocking、寄存器修改等问题
- 核心 insight:将预取指令设计为 non-faulting、non-blocking、non-modifying 的轻量操作
- 利用处理器现有的向量解码路径实现预取指令,不增加 load 执行单元的复杂性
Method and apparatus for selectively prefetching based on resource availability (Sun/Oracle, US7707359B2, 2010)
- 预取请求可能在系统资源紧张时反而降低性能
- 核心 insight:动态监测系统资源(缓存空间、带宽)的可用性,资源不足时自动抑制预取
- 设计了资源感知的条件预取机制,支持 override 能力让关键预取仍可强制执行
Specifying an access hint for prefetching limited use data in a cache hierarchy (IBM, US8176254B2, 2012)
- 临时使用的数据被预取后会不必要地长期占据缓存
- 核心 insight:通过在预取指令中嵌入 access hint 标记数据的使用模式,将临时数据直接标记为 LRU
- 预取数据进入缓存时直接被标记为最近最少使用,新数据到达时最先被替换
Adaptive hardware prefetcher control (ARM, US9043573B2, 2015)
- ARM 平台上不同应用对预取的需求差异巨大
- 核心 insight:利用硬件性能计数器的反馈实现自适应控制,可动态启用/禁用/调节多个预取器
- 设计了基于 PMU 反馈的自适应预取控制框架
Apparatus and method for managing multiple prefetchers (AMD, US10430342B2, 2019)
- 现代处理器同时运行多个预取器(stride, stream, spatial 等),需要统一管理
- 设计了多预取器管理装置,包括优先级分配、冲突检测和带宽分配机制
Machine learning based hardware prefetching (Intel, US11080194B2, 2021)
- 传统规则预取器设计空间有限,难以适应多样化工作负载
- 提出在硬件预取器中嵌入轻量级 ML 模型来预测访存模式
Adaptive multi-prefetcher management using performance feedback (ARM, US11321235B2, 2022)
- 多预取器系统中各预取器的贡献随工作负载动态变化
- 基于 IPC、miss rate、带宽等运行时反馈动态调整各预取器的激活状态和激进程度
Prefetcher arbitration based on prefetch accuracy metrics (AMD, US11593275B2, 2023)
- 多个预取器同时产生候选地址需要仲裁
- 基于每个预取器的历史准确率进行仲裁,优先执行高准确率预取器的请求