核心i3中的硬件预取技术

3

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

2个回答

6
英特尔 Core i3 处理器绝对支持硬件预取,但英特尔的文档通常缺乏详细信息。品牌名称“Core i3”既适用于基于“Nehalem”的处理器,也适用于基于“Sandy Bridge”的处理器,因此您必须检查具体型号以了解正在处理哪个处理器。
更复杂的是,新型英特尔处理器(Nehalem/Westmere/Sandy Bridge)有几种不同的硬件预取器-至少在《Intel架构软件开发人员手册》第3B卷(出版编号253669)中提到了三种。表30-25“MSR_OFFCORE_RSP_x请求类型字段定义”中提到了“DCU prefetch”和“L2 prefetchers”。这些也在附录A-2、表A-2中提到,该表描述了Core i7、i5和i3处理器的性能计数器事件。表A-2中的事件4EH提到了有“L1 streamer和IP-Based(IPP)HW prefetchers”。在相应条目(事件4EH)的附录A.4、表A-6中还有关于此主题的几个词语,该表描述了Westmere处理器的性能计数器。
同一文档中的附录B-2、表B-3讨论了英特尔Core微架构的MSR(模型专用寄存器),但看起来许多这些寄存器也适用于新版本。寄存器1A0h显示了4位控制预取行为:
- 第9位:硬件预取禁用 - 第19位:相邻缓存线预取禁用 - 第37位:DCU预取禁用 - 第39位:IP预取禁用
讨论启用和禁用预取器的工具见: How do I programmatically disable hardware prefetching?

1
是的,在Core i3/i7机器中存在硬件预取器,但您无法在i3/i7中禁用它们。有两种方法可以禁用预取操作:(1)通过更改msr位 (2)通过bios。Intel停止支持在i3/i7中禁用预取的两种方式。
评论中的链接: https://software.intel.com/en-us/articles/disclosure-of-hw-prefetcher-control-on-some-intel-processors 披露了一些英特尔处理器上硬件预取控制的细节 - Vish Viswanathan (Intel),2014年9月24日
这篇文章揭示了可用于控制基于以下微架构的Intel处理器上可用的各种硬件预取器的MSR设置:Nehalem、Westmere、Sandy Bridge、Ivy Bridge、Haswell和Broadwell。
上述处理器支持4种类型的硬件预取器以进行数据预取。与L1数据缓存(也称为DCU DCU预取器、DCU IP预取器)相关联的有2个预取器,与L2缓存相关联的有2个预取器(L2硬件预取器、L2相邻缓存行预取器)。
每个核心上都有一个具有地址0x1A4的特定型号寄存器(MSR),可用于控制这4个预取器。该寄存器中的位0-3可用于启用或禁用这些预取器。此MSR的其他位是保留位。

bholanath,你能添加一些参考资料吗?在哪个i3/i7 Intel停止了支持(有i3-XXX,i3-2YYY,i3-3ZZZ,i3-4WWW型号,i5和i7也是如此)? - osgx
http://arbidprobramming.blogspot.in/2012/11/disable-hardware-prefetching-in-intel.html - bholanath
1
这篇来自英特尔的新文章(https://software.intel.com/en-us/articles/disclosure-of-hw-prefetcher-control-on-some-intel-processors)描述了我们可以在英特尔Core i5和其他近期处理器中禁用硬件预取器。 - bholanath

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接