2010-02-16 26 views
5

是有办法以编程禁用硬件预AMD的系统上像您可以在一个Intel体系如this topic编程禁止硬件预取

专门针对的AMD Opteron巴塞罗那或伊斯坦布尔架构所讨论的。

回答

3

所有AMD家庭10H处理器(包括巴塞罗那和伊斯坦布尔)有两种不同的硬件预取。

  1. 第一个是传统的数据高速缓存预取器,它可以识别连续的上升或下降缓存行访问流。可以通过将MSRC001_1022的位13设置为“1”来禁用它。

  2. 其他硬件预取器是“内存控制器预取器”。这是一个更通用的预取器,但只能在内存控制器内运行(即它不会将预取数据发送到内核 - 它只是让内存控制器在内核请求时更快地将其返回)。

    • 该预取器的主控制器位于PCI配置空间中,功能2偏移量11Ch,功能2中的附加控制,巴塞罗那之后的处理器的偏移量1B0h。
    • 我已经通过/ dev/mem设备驱动程序通过更新PCI配置空间中的值来成功禁用和重新启用“实时”巴塞罗那系统上的此预取程序。 (不要在家中尝试此操作)
    • 内存控制器预取程序的活动由硬件性能计数器事件1F0h以及UnitMasks 02和04显示。
    • 请注意,上海/伊斯坦布尔/ MagnyCours“连贯地”操作(意味着高速缓存一致性探测操作与内存预取一起发出),而巴塞罗那的内存控制器预取器不会发出高速缓存一致性操作(直到核心对高速缓存行的请求到达时才会发出它们)在内存控制器)。

的东西上面的BIOS和内核开发人员指南中介绍了家庭10h架构处理器:http://support.amd.com/us/Processor_TechDocs/31116.pdf