如何在英特尔至强可扩展处理器上禁用 L3 缓存预取器?

问题描述

我搜索过英特尔手册第 4 卷。 MSR 0x1a4 可以控制 L1 缓存预取器和 L2 缓存预取器,但我只想禁用 L3 缓存预取器。哪个MSR可以控制它?

解决方法

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

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

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

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...