Что команды необходимы для очистки L1, L2 и кэша L3 в человечности?
Это может быть сделано, использовав оболочку, или мне нужен высокоуровневый язык?
От: Способ сбросить / очищает Оперативные памяти и кэш-память
, не возможно сделать это с полной эффективностью на уровне пользователя. Счетчики производительности в неядре могут использоваться для получения отображения физических адресов к частям L3 (CBos) для любого диапазона адресов, который пользователь может выделить и протестировать, но который только говорит Вам, которые CBO используется, не, какой класс конгруэтности в той части используется. Размер частей L3 предлагает простое отображение, но я не знаю ни о каких демонстрациях, которые подтверждают внутреннее отображение.
На грубом уровне, в системах Xeon E5 v3, читая массив, который является 4x больше, чем размер кэша L3, очистит почти 100% предшествующих данных из L1, L2 и кэшей L3. Это только требует привязки процесса (например, "taskset" или "numactl - physcpubind" в системах Linux).
Кэш-память L1, L2 и L3 - это термины, используемые для описания кэшей, используемых внутренне процессором и набором микросхем. Они прозрачны для системы, то есть наличие или отсутствие данных в кешах никогда не должно иметь каких-либо видимых побочных эффектов для выполнения программы или данных, возвращаемых какой-либо операцией. Следовательно, также нет способа их очистить, и если бы они были, это не имело бы заметного эффекта.
Эти кэши являются неотъемлемой частью функционирования процессора. Их содержимое обновляется, возможно, миллионы раз в секунду, в зависимости от выполняемых операций.