Удаление кэша из кеша L1 при выселении L2

У меня основной вопрос о политике, которой следует система памяти.

Рассмотрим ядро ​​с частными кэшами L1 и L2. После кэша L2 у нас есть шина, по которой проходит трафик когерентности. Теперь, если строка кэша для адреса (X) исключена из кеша L2, необходимо ли исключить этот адрес из кеша L1 ??

Причиной исключения может быть то, что это помогает поддерживать инвариант протокола согласованности [если строка в l2 показывает недопустимую, это ядро ​​не содержит этого адреса].


person prathmesh.kallurkar    schedule 05.02.2013    source источник


Ответы (1)


Есть три разных дизайна, и все они используются.

  1. Исключительно: данные в кэше L1 никогда не находятся в кэше L2. Данные из кэша L2 никогда не находятся в кэше L1.

  2. Включительно: данные в кэше L1 также должны находиться в кэше L2.

  3. Ни то, ни другое: данные в кэше L1 могут находиться или не находиться в кэше L2.

У каждого из них есть свои преимущества и недостатки. Инклюзивная схема позволяет протоколу согласованности кеша игнорировать кеш L1 - если данных нет в кэше L2, их нет в кэше L1. Но эксклюзивная схема позволяет наиболее эффективно использовать драгоценную кэш-память.

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

person David Schwartz    schedule 05.02.2013
comment
У меня есть сомнения относительно размера строки. не могли бы вы прояснить тот же stackoverflow .com / questions / 14707803 / - person prathmesh.kallurkar; 05.02.2013
comment
Не могли бы вы предоставить дополнительные сведения по этому поводу: инклюзивные проекты становятся все более популярными, потому что более быстрая межъядерная синхронизация становится более важной, чем наличие немного большего эффективного размера кеша? - person rph; 24.06.2016