Есть ли в Intel Q8200 предварительный выбор кэша?

344
RicoRico

Процессоры Intel на основе микроархитектуры Intel должны поддерживать аппаратную предварительную выборку кэша .

Я использую Q8200, но я не могу найти какой-либо вариант в BIOS, чтобы включить / отключить предварительный выборщик. Также я модифицировал MSR 0x1A0, но, похоже, он не оказывает влияния на производительность (я измерял ее с помощью теста памяти).

Таким образом, я подозреваю, что Q8200 не имеет аппаратной предварительной выборки кеша. Кроме того, в технических данных о предварительной выборке кеша серии Q8000 никогда не упоминается.

Может ли кто-то подтвердить или опровергнуть мои сомнения?

0
Что ты на самом деле пытаешься сделать? Journeyman Geek 7 лет назад 1
Измерьте влияние на кэш отдельных процессов в системе Linux в реальном времени. Однако предварительный сборщик может испортить мое измерение. RicoRico 7 лет назад 0

1 ответ на вопрос

2
Margaret Bloom

Intel Core 2 Quad 8200 базируется на Intel Core микроархитектуры .

Рассматривая события счетчика производительности для этой микроархитектуры (Глава 19.10 Руководства Intel 3 ), вы можете найти событие с именем L2_LD (Core, Prefetch, Cache Line State), которое читает

Это событие подсчитывает запросы чтения из кэша L2, поступающие из кэша данных L1 и средств предварительной выборки L2 . Событие может подсчитывать вхождения:
• Для этого ядра или для обоих ядер.
• В связи с запросами по требованию и запросами аппаратной предварительной выборки L2 вместе или по отдельности.
• Доступ к строкам кэша при разных состояниях MESI.

Кэш-память второго уровня - это кэш последнего уровня для Yorkfield-6M (ядро, реализующее микроархитектуру Core).

Глава 35.1 также подтверждает, что MSR IA32_MISC_ENABLE (1a0h) имеет бит 9 для отключения средств предварительной выборки.


Таким образом, предварительные сборщики там.

Лист данных предназначен для инженеров-электриков, он не описывает функциональность процессора, так как он слишком сложен, поэтому его стоит разделить на второй том.

Сравнительный анализ поведения внутренних процессоров, таких как предварительная выборка, довольно сложен. Предварительная выборка запускается только по определенным шаблонам.
Вам лучше измерять с помощью событий производительности запросы кэш-памяти L2 из-за предварительной выборки.

Как этого добиться, выходит за рамки этого ответа, но вы можете взглянуть на инструмент Perf .

Проблема в том, что после отключения предварительной выборки через 0x1a0, инструмент `perf` продолжает регистрировать события предварительной выборки, поэтому я не уверен, что счетчики производительности не надежны в этом случае, или изменение 0x1a0 не работает. RicoRico 7 лет назад 0
@RicoRico Какие события вы использовали? После быстрого просмотра руководств Intel я бы использовал события `-e rD029, rC029`, где первый подсчитывает эталон L2 только из-за PF, а второй подсчитывает эталон L2 без PF (` rF029` считал бы оба) , Я не эксперт по * perf *, поэтому проверьте [этот вопрос] (https://stackoverflow.com/questions/16062244/using-perf-to-monitor-raw-event-counters) о правильном синтаксисе, чтобы указать пользовательские события. В этом случае номер события - 0x29, а * umasks * - 0xd0, 0xc0 и 0xf0 соответственно. Margaret Bloom 7 лет назад 1
@RicoRico Amend: Маски должны быть 0xdf, 0xcf, 0xff. И поэтому события должны быть `-e rDF29, rCF29, rFF29` Margaret Bloom 7 лет назад 1
Спасибо! Счетчики производительности по умолчанию, используемые `perf`, вероятно, не являются правильными. Отключение предварительной выборки работает и rDF29 сообщает 0! RicoRico 7 лет назад 0

Похожие вопросы