stringtranslate.com

Тайник жертвы

Кэш -жертва — это небольшой, обычно полностью ассоциативный кеш, размещенный на пути пополнения кеша ЦП , в котором хранятся все блоки, удаленные из этого уровня кеша, первоначально предложенный в 1990 году. В современных архитектурах эта функция обычно выполняется уровнями 3 или 3. Тайники 4-го уровня.

Обзор

Кэширование жертв — это аппаратный метод повышения производительности кэшей, предложенный Норманом Джуппи . Как упоминалось в его статье: [1] 

При отсутствии кэширования между кэшем и путем его повторного заполнения размещается полностью ассоциативный кэш. Промахи в кэше, попавшие в кэш промахов, имеют штраф в один цикл, в отличие от штрафа за многие тактовые промахи без кэша промахов. Кэширование жертвы — это улучшение кэширования промахов, при котором в небольшой полностью ассоциативный кеш загружается жертва промаха, а не запрошенная строка кэша.  [1]

Кэш жертвы — это аппаратный кеш, предназначенный для уменьшения конфликтных промахов и улучшения задержки попадания для кешей с прямым отображением. Он используется на пути пополнения кэша уровня 1, так что любая строка кэша , которая удаляется из кэша, кэшируется в кэше жертвы. Таким образом, кэш жертвы заполняется только тогда, когда данные выбрасываются из кэша уровня 1. В случае промаха на уровне 1 пропущенная запись ищется в кэше жертвы. Если полученный доступ оказался удачным, содержимое строки кэша уровня 1 и соответствующей строки кэша жертвы меняются местами.

Хотя первоначально Джоупи предложил повысить производительность кэша с прямым отображением уровня 1, современные микропроцессоры с многоуровневой иерархией кэша используют кэш уровня 3 или 4, который действует как кэш-жертва для кэша, расположенного выше него в иерархии памяти. Intel Crystal Well [2] своих процессоров Haswell представила встроенный кеш 4-го уровня, который служит кэшем-жертвой для кеша 3-го уровня процессора. [3] Кэш уровня 3 размером 4–12 МБ используется в качестве кэша жертвы в микропроцессорах POWER5 (IBM).

Фон

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

Кэши с прямым отображением имеют более быстрое время доступа, чем ассоциативные кеши. Однако, когда несколько блоков кэша в памяти сопоставляются с одной и той же строкой кэша в кэше с прямым отображением, они в конечном итоге вытесняют друг друга при доступе к любому из них. Это известно как проблема конфликта кэша. Эта проблема решается за счет повышения ассоциативности кэша. Но есть предел, до которого можно увеличить ассоциативность из-за сложности ее реализации. Таким образом, для решения проблемы конфликта кэша для кэша с ограниченной ассоциативностью используется кэш-жертва.

Выполнение

Поведение кеша-жертвы при соответствующем взаимодействии с кешем соответствующего уровня показано ниже:

Попадание в кэш: нет действий

Промах в кэше, попадание в жертву: блок находится в кэше жертвы, а блоки в кэше заменяются друг другом. Эта новая запись в кэше жертвы становится самым последним использованным блоком.

Пример реализации

Промах в кэше, промах в жертве: блок переносится в кэш со следующего уровня. Блок, исключенный из кеша, сохраняется в кеше жертвы.

Пример:

Предположим, что это кэш L1 с прямым отображением, в котором блоки A и B указывают на один и тот же набор. Он связан с двухзаписным полностью ассоциативным кэшем жертвы с блоками C и D в нем.

След, по которому нужно идти: А, Б, А, Б…

На диаграмме видно, что в случае попадания в кэш жертвы (VC) блоки A и B меняются местами. Наименее используемый блок VC остается без изменений. Следовательно, это создает иллюзию ассоциативности с кэшем L1 с прямым отображением, что, в свою очередь, уменьшает количество конфликтных промахов.

В случае двух кешей, L1 и L2, с монопольной политикой кэширования (L2 не кэширует те же области памяти, что и L1), L2 действует как кэш-жертва для L1.

Влияние на производительность

Измеряя улучшение производительности за счет использования кэша жертвы, Джуппи [1] предположил, что кеш с прямым отображением уровня 1 дополнен полностью ассоциативным кешем. Для используемого им набора тестов в среднем 39% промахов кэша данных уровня 1 оказываются конфликтными промахами, а в среднем 29% промахов инструкций уровня 1 оказываются конфликтными промахами. [1] Поскольку конфликтные промахи составляют большой процент от общего количества промахов, обеспечение дополнительной ассоциативности путем дополнения кэша уровня 1 кэшем жертвы обязательно значительно улучшит общий коэффициент промахов .

[4] Экспериментальные результаты получены на основе двухстороннего и полностью ассоциативного кэша с прямым отображением размером 32 КБ, дополненного кэшем жертвы размером 256 блоков (8 КБ) и запуска на нем 8 случайно выбранных тестов SPEC 95. Хотя результаты нельзя обобщить для всех тестов, добавление кэша-жертвы обеспечивает снижение частоты промахов в диапазоне от 10% до 100% для всех конфигураций кэша. Однако результаты, похоже, стабилизируются после размера кэша жертвы в 50 блоков, что подтверждает наблюдение Джуппи [1] о том, что преимущества кэша жертвы достигают плато после первых нескольких блоков жертвы.

Снижение частоты промахов для кэша размером 64 КБ оказывается значительно меньшим, что доказывает, что кэширование жертвы не масштабируется до бесконечности. [4]

При сравнении различных конфигураций кэша было обнаружено, что в некоторых случаях добавление небольшого кэша-жертвы может дать выигрыш в производительности, эквивалентный тому, который наблюдается при умножении размера кэша на 2. [4]

Рекомендации

  1. ^ abcde Jouppi, NP (1 мая 1990 г.). Повышение производительности кэша с прямым отображением за счет добавления небольшого полностью ассоциативного кэша и буферов предварительной выборки . 17-й ежегодный международный симпозиум по компьютерной архитектуре, 1990 г. Труды. стр. 364–373. дои : 10.1109/ISCA.1990.134547. ISBN 0-8186-2047-1.
  2. ^ «Продукты (ранее Crystal Well)» . Intel® ARK (спецификации продукта) . Проверено 16 ноября 2016 г.
  3. ^ Шимпи, Ананд Лал. «Обзор графики Intel Iris Pro 5200: протестирован Core i7-4950HQ» . Проверено 16 ноября 2016 г.
  4. ^ abc «Кэширование жертв для больших кешей и современных рабочих нагрузок». 1996. CiteSeerX 10.1.1.27.9810 .  {{cite journal}}: Требуется цитировать журнал |journal=( помощь )