如何在英特尔至强可扩展处理器上禁用 L3 缓存预取器?
How to disable L3 cache prefetcher on Intel Xeon Scalable Processor?
我已经搜索了 Intel 手册 Vol.4。 MSR 0x1a4
可以控制L1 cache prefetcher和L2 cache prefetcher,但我只想禁用L3 cache prefetcher。哪个MSR可以控制它?
当前的 Intel 处理器中没有专用的 L3 预取器。然而,从 Sandy Bridge 开始,L2 流式预取器可以选择预取到 L3 缓存或 L2 缓存中。英特尔优化手册中对此进行了简要讨论。
LLC 预取可以单独禁用,但英特尔只向 BIOS 供应商披露了如何执行此操作。在任何一代的 Xeon SP 上,都有一个名为“LLC 预取”的 BIOS 选项,您可以使用它来启用或禁用 LLC 预取。如果禁用,它可能会降低 L2 streamer 的攻击性,但它仍然可以预取到 L2 中。您可能已经知道,英特尔已经公开了如何通过 MSR 寄存器在所有英特尔 x86 处理器上完全禁用所有 L1D 和 L2 预取器。
Xeon SP 上的其他相关预取机制包括如果预计对 L3 的访问将丢失,则向本地托管的可缓存地址发送预取请求,以及类似地向远程托管(尤其是跨套接字)发送预取请求可缓存的位置。这些很有用,因为 L2 未命中访问延迟的很大一部分花费在用于 hit/miss 确定的 L3 查找操作上。还有一些 BIOS 选项可以控制这些预取机制。确切名称取决于 BIOS 供应商。但请注意,在这些情况下,预加载行会绕过 L3,就像任何其他核心发起的请求一样。不过,从技术上讲,这种预取请求是由 L3 发送的。
所有预取机制通常默认启用,LLC 预取除外,它可能默认禁用。
我已经搜索了 Intel 手册 Vol.4。 MSR 0x1a4
可以控制L1 cache prefetcher和L2 cache prefetcher,但我只想禁用L3 cache prefetcher。哪个MSR可以控制它?
当前的 Intel 处理器中没有专用的 L3 预取器。然而,从 Sandy Bridge 开始,L2 流式预取器可以选择预取到 L3 缓存或 L2 缓存中。英特尔优化手册中对此进行了简要讨论。
LLC 预取可以单独禁用,但英特尔只向 BIOS 供应商披露了如何执行此操作。在任何一代的 Xeon SP 上,都有一个名为“LLC 预取”的 BIOS 选项,您可以使用它来启用或禁用 LLC 预取。如果禁用,它可能会降低 L2 streamer 的攻击性,但它仍然可以预取到 L2 中。您可能已经知道,英特尔已经公开了如何通过 MSR 寄存器在所有英特尔 x86 处理器上完全禁用所有 L1D 和 L2 预取器。
Xeon SP 上的其他相关预取机制包括如果预计对 L3 的访问将丢失,则向本地托管的可缓存地址发送预取请求,以及类似地向远程托管(尤其是跨套接字)发送预取请求可缓存的位置。这些很有用,因为 L2 未命中访问延迟的很大一部分花费在用于 hit/miss 确定的 L3 查找操作上。还有一些 BIOS 选项可以控制这些预取机制。确切名称取决于 BIOS 供应商。但请注意,在这些情况下,预加载行会绕过 L3,就像任何其他核心发起的请求一样。不过,从技术上讲,这种预取请求是由 L3 发送的。
所有预取机制通常默认启用,LLC 预取除外,它可能默认禁用。