Понимание кэш-памяти второго уровня процессора и L2_REJECT_BUSQ_THIS_CORE_ALL_INVALID

Рассмотрим архитектуру Intel Core 2, которая имеет следующую топологию ядра:

Socket 0: ( 0 2 4 6 )
Socket 1: ( 1 3 5 7 )

Каждое ядро ​​имеет свой собственный кэш L1; L2 кеш группа выглядит так:

( 0 2 ) ( 4 6 ) ( 1 3 ) ( 5 7 )

1
, Я заметил, что в некоторых приложениях значение счетчика производительности L2_REJECT_BUSQ_THIS_CORE_ALL_INVALID довольно высокое. В этих приложениях пропадание кэша данных # L2 также велико. Также RESOURCE_STALLS_ROB_FULL также высока и составляет основную часть всех циклов остановки.

Правильно ли сказать, что, например, ядро ​​0 находит данные в L2 и пропускает их, тогда контроллер шины своего кэша L2 передает некоторые сообщения другим контроллерам шины L2, чтобы увидеть, находятся ли данные в их L2 или нет. Однако, из-за ограничения пропускной способности шины, в шине есть большой конфликт, так как очереди других шин продолжают заполняться, тогда ядро ​​0 должно повторно передавать сообщение поиска много раз? И если это правда, то вот почему L2_REJECT_BUSQ_THIS_CORE_ALL_INVALID так высоко? Или я переводю?

2
, Правильно ли предположить, что, если оставить в стороне эффект холодных промахов, если я выполню цикл с 100 промахами кэша данных L2 на ядре, вызвав 200 L2_REJECT_BUSQ_THIS_CORE_ALL_INVALID, затем выполняя более длинный цикл (например, с удвоенным числом итераций) с 200 потерями в кеше данных L2 приведет к 400 L2_REJECT_BUSQ_THIS_CORE_ALL_INVALID? Если нет, что может быть причиной неожиданной нелинейности?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]