核心i3中的硬件预取

时间:2011-07-12 09:38:13

标签: core prefetch

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

2 个答案:

答案 0 :(得分: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)HW预取器”。在附录A.4,表A-6中的相应条目(事件4EH)中有更多关于此主题的文字,其中描述了Westmere处理器的性能计数器。

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

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

启用和禁用预取程序的工具将在以下内容中讨论: How do I programmatically disable hardware prefetching?

答案 1 :(得分:1)

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

来自评论的链接:https://software.intel.com/en-us/articles/disclosure-of-hw-prefetcher-control-on-some-intel-processors披露部分英特尔处理器的H / W预取控制权 - Vish Viswanathan(英特尔),2014年9月24日

  

本文公开了MSR设置,可用于控制基于以下微体系结构的英特尔处理器上可用的各种h / w预取程序:Nehalem,Westmere,Sandy Bridge,Ivy Bridge,Haswell和Broadwell。

     

上述处理器支持4种类型的h / w预取程序,用于预取数据。有2个预取器与L1数据高速缓存(也称为DCU DCU预取器,DCU IP预取器)相关联,2个预取器与L2高速缓存相关联(L2硬件预取器,L2相邻高速缓存行预取器)

     

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