CPU 从内存读数据很慢——比 CPU 本身的运算速度慢两个数量级。预取(prefetching)就是让 CPU 提前猜出后续要访问的内存地址,提前把数据搬到缓存里。
传统预取器靠的是"地址模式"——如果读 A 之后接着读 A+64,那下次也猜 A+64。但很多数据访问模式是不规则的——链表遍历、图的邻居访问、稀疏矩阵——地址根本不重复。
ICP(2605.15645,ISCA 2026)提出了一个不同的思路:不猜地址,而是观察哪些指令产生了这些地址。虽然内存地址不重复,但生成这些地址的指令经常重复——如果你看到指令 A 产生了一个地址,然后指令 B 用这个地址做偏移去访问另一个地址,那下次当指令 A 再次出现时,你可以预测指令 B 要访问什么。
实际效果:在 SPEC CPU 和 GAP 基准上比当前最好的预取器快 14%,只需要 2.1KB 存储空间——三个数量级小于传统方法。
不清楚的地方:ICP 依赖指令间的数据依赖关系,如果代码是高度动态的(JIT 编译或自修改代码),指令间的"相关性"是否还能被稳定捕捉?
---
**参考文献**
1. Li, M., et al. (2026). *ICP: Exploiting Instruction Correlation for Prefetching Irregular Memory Accesses*. arXiv:2605.15645 [cs.AR]. (ISCA 2026)
2. Bera, R., et al. (2022). *Triangel: Memory Access Driven Prefetching*. ISCA 2022.
登录后可参与表态
讨论回复
0 条回复还没有人回复,快来发表你的看法吧!
推荐
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。
领取 2000万 Tokens
通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力