Однократная запись (согласованность кеша) - Write-once (cache coherence)

В согласованность кеша протокольная литература, Однократная запись был первым Протокол MESI определены. У него есть оптимизация выполнения сквозной записи при первой записи и обратной записи при всех последующих записях, что снижает общее автобус трафик в последовательных записях в память компьютера. Впервые он был описан Джеймс Р. Гудман в [1] (1983). Протоколы согласованности кэша - важная проблема в Симметричная многопроцессорная обработка системы, где каждый ЦПУ поддерживает тайник памяти.

состояния

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

  • Недействительным: В этом блоке есть несвязная копия памяти.
  • Действительный: Этот блок имеет последовательную копию памяти. Данные могут быть общими, но их содержание не изменяется.
  • Зарезервированный: Блок является единственной копией памяти, но все еще согласован. При замене блока обратная запись не требуется.
  • Грязный: Блок является единственной копией памяти, и он несвязный. Этот экземпляр был написан один или несколько раз. Это единственное состояние, которое генерирует обратную запись при замене блока в кэше.

Эти состояния имеют точно такое же значение, что и четыре состояния Протокол MESI (они просто перечислены в обратном порядке), но это упрощенная форма, которая позволяет избежать операции чтения для владения. Вместо этого все аннулирование выполняется путем записи в основную память.

Для любой данной пары кэшей разрешенные состояния данной строки кэша следующие (сокращенно в порядке, указанном выше):

я V р D
яЗеленая галочкаYЗеленая галочкаYЗеленая галочкаYЗеленая галочкаY
VЗеленая галочкаYЗеленая галочкаYКрасный XNКрасный XN
рЗеленая галочкаYКрасный XNКрасный XNКрасный XN
DЗеленая галочкаYКрасный XNКрасный XNКрасный XN

Переходы

Протокол следует некоторым правилам перехода для каждого события:

Схема перехода при однократной записи
Переход "WM" из Недействительным состояние ошибочное; запись должна быть записана в память, и поэтому строка в Зарезервированный штат.
  • Прочитать хит: Информация предоставляется текущим кешем. Без изменения состояния.
  • Читать пропустить: Данные читаются из основной памяти. Чтение высматривал другими тайниками; если у кого-то из них есть строка в Грязный В этом состоянии чтение прерывается на время, достаточное для записи данных обратно в память, прежде чем ему будет разрешено продолжить. Любые копии в Грязный или Зарезервированный состояния установлены на Действительный штат.
  • Написать хит: Если информация в кеше находится в Грязный или Зарезервированный состояние, строка кэша обновляется на месте, и ее состояние устанавливается на Грязный без обновления памяти. Если информация в Действительный состояние, выполняется операция сквозной записи, обновляя блок, и память, и состояние блока изменяется на Зарезервированный. Другие кеши отслеживают запись и устанавливают свои копии на Недействительным.
  • Написать мисс: Частичная запись строки кэша обрабатывается как промах при чтении (если необходимо получить незаписанную часть строки кэша), за которым следует попадание записи. Остальные кеши останутся в Недействительным состояние, а текущий кеш в Зарезервированный штат.

Это вариант протокола MESI, но здесь нет явной операции чтения для владения или аннулирования широковещательной передачи, чтобы поместить строку в кеш в Эксклюзивный состояние без выполнения записи в основную память. Вместо этого первая запись в Действительный (a.k.a. Общий) строка кэша выполняет сквозную запись в память, что неявно делает недействительными другие кеши. После этого строка находится в Зарезервированный (Эксклюзивный) состояние, и дальнейшая запись может выполняться без ссылки на основную память, оставляя строку кеша в Грязный (Изменено) штат.

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

  • Archibald, J .; Баер, Дж. Л. (ноябрь 1986 г.). «Протоколы согласованности кэша: оценка с использованием модели многопроцессорной имитации». ACM Trans. Comput. Syst. 4 (4): 273–298. Дои:10.1145/6513.6514.
  • Гудман, Дж. Р. (1983). «Использование кэш-памяти для уменьшения трафика между процессором и памятью». Материалы 10-го ежегодного международного симпозиума по компьютерной архитектуре - ISCA '83. Международный симпозиум по компьютерной архитектуре: Стокгольм, Швеция, 13–17 июня 1983 г., стр. 124–131. Дои:10.1145/800046.801647. ISBN  0-89791-101-6.