首页 > 解决方案 > 如何在英特尔至强可扩展处理器上禁用 L3 缓存预取器?

问题描述

我已经搜索了英特尔手册 Vol.4。MSR0x1a4可以控制 L1 缓存预取器和 L2 缓存预取器,但我只想禁用 L3 缓存预取器。哪个MSR可以控制它?

标签: x86intelcpu-cacheprefetchmsr

解决方案


当前的 Intel 处理器中没有专用的 L3 预取器。但是,从 Sandy Bridge 开始,L2 流式预取器可以选择预取到 L3 缓存或 L2 缓存中。英特尔优化手册中对此进行了简要讨论。

LLC 预取可以单独禁用,但英特尔只向 BIOS 供应商披露了如何执行此操作。在任何一代的 Xeon SP 上,都有一个称为“LLC 预取”之类的 BIOS 选项,您可以使用它来启用或禁用 LLC 预取。如果禁用,它可能会降低 L2 流媒体的攻击性,但它仍然可以预取到 L2。您可能已经知道,英特尔已经披露了如何通过 MSR 寄存器完全禁用所有英特尔 x86 处理器上的所有 L1D 和 L2 预取器。

Xeon SP 上的其他相关预取机制包括如果预计对 L3 的访问将丢失,则将预取请求发送到本地托管的可缓存地址,以及类似地将预取请求发送到远程托管(特别是跨套接字)的可缓存位置。这些是有用的,因为 L2 未命中访问延迟的很大一部分用于 L3 查找操作以确定命中/未命中。还有一些 BIOS 选项可以控制这些预取机制。确切的名称取决于 BIOS 供应商。但请注意,在这些情况下,预取行会绕过 L3,就像任何其他核心发起的请求一样。但是,从技术上讲,此类预取请求是由 L3 发送的。

所有预取机制通常默认启用,除了 LLC Prefetch,它可能默认禁用。


推荐阅读