3

corei3是否支持通过硬件预取器进行硬件预取?如果是,我该如何启用/禁用它?

4

2 回答 2

6

英特尔酷睿 i3 处理器肯定支持硬件预取,尽管英特尔的文档在细节上往往非常薄弱。品牌名称“Core i3”既指基于“Nehalem”的处理器,也指基于“Sandy Bridge”的处理器,因此您必须查看具体型号才能知道您使用的是哪一款。

更复杂的是,较新的英特尔处理器(Nehalem/Westmere/Sandy Bridge)有几个不同的硬件预取器——英特尔架构软件开发人员手册第 3B 卷(出版物 253669)中至少提到了三个。表 30-25“MSR_OFFCORE_RSP_x 请求类型字段定义”提到了“DCU 预取”和“L2 预取器”。附录 A-2 的表 A-2 中也提到了这些,它描述了 Core i7、i5 和 i3 处理器的性能计数器事件。表 A-2 中的事件 4EH 提到同时存在“L1 流媒体和基于 IP (IPP) 的硬件预取器”。在附录 A.4 的表 A-6 的相应条目(针对事件 4EH)中还有一些关于此主题的词,其中描述了 Westmere 处理器的性能计数器。

同一份文档中的附录 B-2 表 B-3 讨论了英特尔酷睿微架构的 MSR(模型特定寄存器),但其中许多似乎延续到了较新的版本中。寄存器 1A0h 显示 4 位控制预取行为:

  • 位 9:硬件预取器禁用
  • 位 19:相邻高速缓存行预取禁用
  • 位 37:DCU 预取器禁用
  • 位 39:IP 预取器禁用

启用和禁用预取器的工具在: 如何以编程方式禁用硬件预取?

于 2012-03-12T19:42:33.623 回答
1

是的,Core i3/i7 机器中确实存在硬件预取器,但您不能在 i3/i7 中禁用它们。通过 bios 更改 msr 位 (2) 来禁用预取 (1) 的两种方法。英特尔停止支持在 i3/i7 中禁用这两种方式。

评论链接:https ://software.intel.com/en-us/articles/disclosure-of-hw-prefetcher-control-on-some-intel-processors披露一些英特尔处理器上的硬件预取器控制 - Vish Viswanathan(英特尔),2014 年 9 月 24 日

本文公开了 MSR 设置,可用于控制基于以下微架构的英特尔处理器上可用的各种硬件预取器:Nehalem、Westmere、Sandy Bridge、Ivy Bridge、Haswell 和 Broadwell。

上述处理器支持 4 种类型的硬件预取器来预取数据。有 2 个与 L1 数据缓存相关的预取器(也称为 DCU DCU 预取器、DCU IP 预取器)和 2 个与 L2 缓存相关的预取器(L2 硬件预取器、L2 相邻缓存行预取器)

每个内核上都有一个型号特定寄存器 (MSR),地址为 0x1A4,可用于控制这 4 个预取器。该寄存器中的位 0-3 可用于启用或禁用这些预取器。该 MSR 的其他位被保留。

于 2013-10-17T00:17:52.070 回答