программно отключить аппаратную предварительную выборку в системах AMD - PullRequest
5 голосов
/ 16 февраля 2010

есть способ программно отключить аппаратную предварительную выборку в системе AMD, как вы можете в системе Intel, как описано в в этой теме

Специально для архитектуры AMD Opteron Barcelona или Istanbul.

Ответы [ 2 ]

4 голосов
/ 13 марта 2012

Все процессоры AMD Family 10h (включая Барселону и Стамбул) имеют два разных аппаратных устройства предварительной выборки.

  1. Первый - это традиционный предварительный выборщик кэша данных, который распознает непрерывные потоки доступа к восходящей или нисходящей строке кэша. Его можно отключить, установив бит 13 в MSRC001_1022 на «1».

  2. Другой аппаратный предварительный выборщик - это предварительный выбор контроллера памяти. Это несколько более общий предварительный выборщик, но он работает только в контроллере памяти (т. Е. Он не отправляет предварительно выбранные данные в ядро ​​- он просто позволяет контроллеру памяти возвращать их быстрее, когда ядро ​​запрашивает их).

    • Основной элемент управления для этого устройства предварительной выборки находится в конфигурационном пространстве PCI, функция 2, смещение 11Ch, с дополнительным управлением в функции 2, смещение 1B0h для процессоров после «Барселоны».
    • Я успешно отключил и повторно включил этот предварительный выборщик в «живой» системе Barcelona, ​​обновив значения в пространстве конфигурации PCI через драйвер устройства / dev / mem. (Не пытайтесь делать это дома!)
    • Активность средства предварительной выборки контроллера памяти отображается событием счетчика производительности оборудования 1F0h с UnitMasks 02 и 04.
    • Обратите внимание, что средство предварительной выборки контроллера памяти для Shanghai / Istanbul / MagnyCours работает «согласованно» (это означает, что операции проверки когерентности кэша выполняются вместе с предварительной выборкой памяти), в то время как средство предварительной выборки контроллера памяти в Барселоне не выполняет операции согласования кэша (они не выдается до тех пор, пока запрос ядра на строку кэша не поступит в контроллер памяти).

Все вышеперечисленное документировано в BIOS и Руководстве разработчика ядра для процессоров семейства 10h: http://support.amd.com/us/Processor_TechDocs/31116.pdf

1 голос
/ 25 февраля 2010

используйте инструменты msr для изменения битов DC_CFG, как указано в документе поддержки AMD на p407

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

...