Некоторые протоколы когерентности для поддержания согласованности данных в мультипроцессорных системах:
Протокол MSI. 1 Базовый протокол согласованности кэша, используемый в многопроцессорной системе. 1 Буквы названия протокола определяют возможные состояния, в которых может находиться кэш: 1
Изменено — блок был изменён в кэше, то есть данные в кэше несовместимы с резервным хранилищем (памятью). 1
Общий — этот блок не модифицируется и присутствует по крайней мере в одном кэше. 1 Кэш может удалять данные, не записывая их в резервное хранилище. 1
Недопустимый — этот блок недопустим и должен быть извлечён из памяти или из другого кэша, если он должен быть сохранён в этом кэше. 1
Протокол MOSI. 1 Этот протокол является расширением протокола MSI. 1 Он добавляет следующее состояние в протокол MSI: Owned — указывает, что текущий процессор владеет этим блоком и будет обслуживать запросы от других процессоров для данного блока. 1
Протокол MESI. 13 Это наиболее широко используемый протокол согласованности кэша. 1 Каждая строка кэша помечена одним из следующих состояний: 1
Изменено — строка кэша присутствует только в текущем кэше и является загрязнённой, то есть её значение отличается от значения в основной памяти. 1
Исключающий — строка кэша присутствует только в текущем кэше и является чистой, то есть её значение соответствует значению основной памяти. 1
Общий — указывает, что эта строка кэша может храниться в других кэшах компьютера. 1
Недопустимый — указывает, что эта строка кэша недопустима. 1
Протокол MOESI. 1 Это протокол полной согласованности кэша, который охватывает все возможные состояния, обычно используемые в других протоколах. 1
Также существуют протоколы на основе справочника. 3 Они характерны для сложных мультипроцессорных систем с совместно используемой памятью, где процессоры объединены многоступенчатой иерархической сетью. 3 Такие протоколы предполагают сбор и отслеживание информации о содержимом всех локальных кэшей и обычно реализуются с помощью централизованного контроллера. 3