6

有没有办法像本主题中讨论的那样以编程方式在 AMD 系统上禁用硬件预取器,就像在 Intel 系统中一样

专门针对 AMD Opteron Barcelona 或 Istanbul 架构。

4

2 回答 2

5

所有 AMD 系列 10h 处理器(包括巴塞罗那和伊斯坦布尔)都有两个不同的硬件预取器。

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

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

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

上面的内容记录在 BIOS 和内核开发人员指南中,用于家庭 10h 处理器:http: //support.amd.com/us/Processor_TechDocs/31116.pdf

于 2012-03-12T20:11:19.643 回答
0

使用 msr 工具更改 p407 上 AMD 支持文档中指定的 DC_CFG 位

http://support.amd.com/us/Processor_TechDocs/31116.pdf

于 2010-02-25T06:31:34.087 回答