Однократная запись (согласованность кеша) - Write-once (cache coherence)
В согласованность кеша протокольная литература, Однократная запись был первым Протокол MESI определены. У него есть оптимизация выполнения сквозной записи при первой записи и обратной записи при всех последующих записях, что снижает общее автобус трафик в последовательных записях в память компьютера. Впервые он был описан Джеймс Р. Гудман в [1] (1983). Протоколы согласованности кэша - важная проблема в Симметричная многопроцессорная обработка системы, где каждый ЦПУ поддерживает тайник памяти.
состояния
В этом протоколе каждый блок в локальном кэше находится в одном из следующих четырех состояний:
- Недействительным: В этом блоке есть несвязная копия памяти.
- Действительный: Этот блок имеет последовательную копию памяти. Данные могут быть общими, но их содержание не изменяется.
- Зарезервированный: Блок является единственной копией памяти, но все еще согласован. При замене блока обратная запись не требуется.
- Грязный: Блок является единственной копией памяти, и он несвязный. Этот экземпляр был написан один или несколько раз. Это единственное состояние, которое генерирует обратную запись при замене блока в кэше.
Эти состояния имеют точно такое же значение, что и четыре состояния Протокол MESI (они просто перечислены в обратном порядке), но это упрощенная форма, которая позволяет избежать операции чтения для владения. Вместо этого все аннулирование выполняется путем записи в основную память.
Для любой данной пары кэшей разрешенные состояния данной строки кэша следующие (сокращенно в порядке, указанном выше):
я | V | р | D | |
---|---|---|---|---|
я | ||||
V | ||||
р | ||||
D |
Переходы
Протокол следует некоторым правилам перехода для каждого события:
- Прочитать хит: Информация предоставляется текущим кешем. Без изменения состояния.
- Читать пропустить: Данные читаются из основной памяти. Чтение высматривал другими тайниками; если у кого-то из них есть строка в Грязный В этом состоянии чтение прерывается на время, достаточное для записи данных обратно в память, прежде чем ему будет разрешено продолжить. Любые копии в Грязный или Зарезервированный состояния установлены на Действительный штат.
- Написать хит: Если информация в кеше находится в Грязный или Зарезервированный состояние, строка кэша обновляется на месте, и ее состояние устанавливается на Грязный без обновления памяти. Если информация в Действительный состояние, выполняется операция сквозной записи, обновляя блок, и память, и состояние блока изменяется на Зарезервированный. Другие кеши отслеживают запись и устанавливают свои копии на Недействительным.
- Написать мисс: Частичная запись строки кэша обрабатывается как промах при чтении (если необходимо получить незаписанную часть строки кэша), за которым следует попадание записи. Остальные кеши останутся в Недействительным состояние, а текущий кеш в Зарезервированный штат.
Это вариант протокола 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.