You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

缓存行与下一页预取器的页大小感知机制及相关硬件算法问询

大页/基础页下缓存预取器行为及相关硬件细节解答

一、页大小信息的硬件传递与预留位

Intel 处理器

  • 页表项(PTE)中的 PS(Page Size)位 是核心标识:在各级页表(PML4、PDPT、PD、PT)中,不同层级的PS位用来区分页大小。比如PD中的PS位为1时对应2MB大页(基于4KB基础页),PDPT中的PS位为1时对应1GB大页。
  • TLB(Translation Lookaside Buffer)完成地址翻译后,会将页大小信息缓存到对应TLB条目中。处理器的内存子系统(包括预取器)在处理内存访问时,会直接从TLB获取该信息——毕竟预取请求的地址必须先经过地址翻译,TLB命中时会同时返回物理地址和页属性(含页大小)。
  • 由于TLB是上下文相关的(通过ASID或进程上下文切换刷新),每个进程的页表属性会被独立缓存,确保预取器获取的是当前进程对应的页大小信息。

AMD 处理器

  • AMD页表项中对应的是 PS位 或 PSE(Page Size Extension) 相关标记:页目录项中PS位置1对应2MB大页,页目录指针项中PS位置1对应1GB大页。
  • 逻辑和Intel类似,TLB条目中存储页大小属性,预取器在发起预取前会通过TLB获取当前访问地址所属的页大小,以此调整预取策略——比如大页下允许更大范围的预取,因为大页意味着连续的物理地址空间,不存在跨基础页的无效访问风险。

二、步长预取器的训练算法

步长预取器的具体实现属于厂商闭源细节,但结合公开技术文档和社区逆向分析,主流的训练逻辑有这些共性:

  • 滑动窗口采样:预取器会跟踪最近几次(通常4-8次)内存访问的地址,计算地址间的偏移量(步长),统计出现频率最高的步长值。
  • 置信度机制:当某个步长连续出现3次以上,预取器会判定这是稳定的访问模式,开始生成对应预取请求;如果后续访问打破该模式,置信度会逐步降低,直到停止该步长的预取。
  • 方向识别:除了步长大小,还会判断访问方向(递增/递减)。比如连续访问0x1000、0x1040、0x1080(步长64字节,对应标准缓存行大小),会识别为递增方向,预取下一个0x10c0的缓存行。
  • 边界约束:接近基础页边界时,预取器会停止跨页预取(避免触发TLB miss或无效页访问);而大页因地址范围更大,这类约束会大幅放宽。
  • 不同厂商有细节差异:比如Intel的L1数据预取器会区分小步长(单缓存行)和大步长(多缓存行),设置不同的训练阈值;AMD的预取器则会结合时间局部性和空间局部性调整训练敏感度。

内容的提问来源于stack exchange,提问作者Mani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 10:04:54