Next Page硬件预取器工作原理及相关技术细节咨询
关于Next Page预取器的疑问与相关信息
L2/L3硬件预取器的行为(包括激进程度、触发条件等)已有详尽文档记载,但关于据称会在顺序访问模式下预加载TLB的Next Page预取器,相关信息极为有限。除了英特尔论坛的一篇讨论外,几乎找不到其他有价值的资料,甚至英特尔软件开发手册中也无相关内容。我希望了解该预取器的以下信息:
- 如何检查我的处理器是否支持该功能?
- 它的触发条件是什么?是否是对虚拟地址空间中连续页面的首个缓存行进行访问(上述讨论称虚拟地址顺序访问时会触发页面预取)?
- 预取的激进程度如何?即会提前预取当前访问页面之后的多少个页面?这是否与设置的页面粒度(4 KiB、2 MiB等)有关?
《英特尔优化参考手册》[4.1.7 缓存与内存子系统]对此略有提及:
L1缓存包含三个独立的预取器。第一个在DL1加载缺失时执行简单的下一行预取。第二个是基于指令指针的预取器,能够检测各种大小的跨步访问模式。该预取器在线性地址空间中工作,因此能够跨越页面边界并在TLB缺失时启动地址转换。最后一个是Next Page预取器,它会检测可能跨越页面边界的访问并提前启动访问操作。这些预取器产生的L1数据缺失会向L2预取器传递额外信息,从而协同工作。
我了解到L1预取器可以跨越页面边界,并在TLB缺失时触发页表遍历!这适用于Gracemount微架构(英特尔Atom)。为何低电压/低性能处理器需要这类功耗较高的激进硬件单元,这本身就是一个值得探讨的问题。
内容的提问来源于stack exchange,提问作者idle_cycles
相关产品推荐
相关产品推荐

