Протоколы согласованности кэша (примеры)
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Здесь перечислены примеры протоколов согласованности для кэш-памяти. Для простоты все транзакции со статусом « промах » чтения и записи, которые явно происходят из состояния « I » (или промаха тега), на диаграммах не показаны. Они отображаются непосредственно в новом состоянии. Многие из следующих протоколов имеют лишь историческую ценность. На данный момент основными используемыми протоколами являются протоколы типа R-MESI/MESIF и HRT-ST-MESI (тип MOESI) или их подмножество или расширение.
Проблема согласованности кэша
[ редактировать ]В таких системах, как многопроцессорная система , многоядерная система и система NUMA выделенный кэш для каждого процессора , ядра или узла , где используется , может возникнуть проблема согласованности, когда одни и те же данные хранятся более чем в одном кэше. Эта проблема возникает, когда данные изменяются в одном кэше. Эту проблему можно решить двумя способами:
- Сделать недействительными все копии в других кэшах (широковещательная рассылка недействительна)
- Обновите все копии в других кэшах (широковещательная запись), при этом память может обновляться (сквозная запись) или не обновляться (обратная запись).
Примечание. Когерентность обычно применяется только к данным (как операндам), а не к инструкциям (см. Самомодифицирующийся код ).
Схемы можно классифицировать по:
- Схема Snoopy, схема каталогов и общие кэши
- Протокол записи и обратной записи (на основе владения)
- Протокол обновления и аннулирования
- Вмешательство против невмешательства
- Протокол «грязного» и «негрязного» обмена (MOESI и MESI)
Для обеспечения согласованности данных используются три подхода.
- Наблюдение за шиной или отслеживание - обычно используется для SMP на базе шины - симметричной многопроцессорной системы / многоядерных систем.
- На основе каталогов – передача сообщений – может использоваться во всех системах, но обычно в системе NUMA и в больших многоядерных системах.
- Общий кеш – обычно используется в многоядерных системах.
Протокол согласованности Snoopy
[ редактировать ]Протокол, используемый в системах на основе шины, таких как системы SMP.
СМП – симметричные многопроцессорные системы
[ редактировать ]Системы, работающие под управлением одной ОС ( операционной системы ) с двумя или более однородными процессорами и с централизованной общей основной памятью.
Каждый процессор имеет свой собственный кэш, который действует как мост между процессором и основной памятью . Соединение осуществляется с использованием системной шины или перемычки («xbar») или комбинации двух предыдущих подходов: шины для адреса и перемычки для данных (перекрестная перемычка данных). [1] [2] [3]
Узким местом этих систем является трафик и пропускная способность памяти. Пропускную способность можно увеличить за счет использования большого пути шины данных, перекрестия данных, чередования памяти (параллельный доступ к нескольким банкам) и транзакций неупорядоченных данных. Трафик можно уменьшить, используя кэш, который действует как «фильтр» по сравнению с общей памятью, то есть кэш является важным элементом общей памяти в системах SMP.
В многопроцессорных системах с отдельными кэшами, которые используют общую память, одни и те же данные могут храниться более чем в одном кэше. Проблема согласованности данных может возникнуть, если данные изменяются только в одном кэше.
Протоколы, обеспечивающие когерентность нескольких процессоров, называются протоколами когерентности кэша .
Обычно в SMP согласованность основана на подходе «Наблюдение за автобусом» или « Снупи » (в честь персонажа Арахиса Снупи ).
В системе отслеживания все кэши отслеживают (или отслеживают) транзакции шины, чтобы перехватить данные и определить, есть ли у них копия в кэше.
различные протоколы когерентности кэша . Для поддержания согласованности данных между кэшами используются [4]
Эти протоколы обычно классифицируются только на основе состояний кэша (от 3 до 5 и 7 или более) и транзакций между ними, но это может создать некоторую путаницу.
Это определение является неполным, поскольку в нем отсутствует важная и существенная информация о действиях, которые они производят. Эти действия могут быть вызваны процессором или контроллером шины (например, вмешательство, аннулирование, широковещательная рассылка и т. д.). Тип действий зависит от реализации. Состояния и правила транзакций не отражают всю информацию о протоколе. Например, протокол MESI с совместным вмешательством для немодифицированных данных и протокол MESI без вмешательства различаются (см. ниже). В то же время некоторые протоколы с разными состояниями могут быть практически одинаковыми. Например, протоколы MESI Illinois с 4 состояниями и MERSI (R-MESI) IBM/MESIF-Intel с 5 состояниями представляют собой лишь разные реализации одной и той же функциональности (см. ниже).
Наиболее распространенными протоколами являются MESI с 5 состояниями с 4 состояниями и MOESI , где каждая буква обозначает одно из возможных состояний кэша. Другие протоколы используют некоторое их подмножество, но с разными реализациями и другой, но эквивалентной терминологией. Термины MESI, MOESI или любое их подмножество обычно относятся к классу протоколов, а не к конкретному.
Состояния кэша
[ редактировать ]Государства МЭСИ и МОЭСИ часто и чаще называют разными именами.
- M = модифицированный или D = грязный или DE = грязный эксклюзивный или EM = эксклюзивный модифицированный
- изменено только в одном кэше – при замене требуется обратная запись.
- данные хранятся только в одном кэше, но данные в памяти не обновляются (недействительные, не чистые).
- O = Владелец или SD = Общий грязный или SM = Общий измененный или T = Помеченный
- измененный, потенциально общий, принадлежащий, при замене требуется обратная запись.
- данные могут храниться не только в кеше, но данные в памяти не обновляются (недействительны, не чисты). Только один кэш является «владельцем», остальные кэши имеют статус «Действительный» (S/V/SC). При запросе на чтение шины данные предоставляются «владельцем» вместо памяти.
- E = Эксклюзивно или R = Зарезервировано или VE = Действительно-эксклюзивно или EC = Эксклюзивно Чисто или Me = Эксклюзивно
- чистый, только в одном кэше.
- Данные хранятся только в одном кэше и чистятся в памяти.
- S = общий или V = действительный или SC = общий чистый
- общий или действительный
- Данные потенциально могут быть переданы другим кэшам. Данные могут быть чистыми или грязными. Термин «чистый» в SC вводит в заблуждение, поскольку может быть также и грязным (см. протокол Dragon ).
- Я = Неверно .
- Недействительная строка кэша. Если строка кэша отсутствует (нет совпадения тегов), она считается эквивалентной недействительной, поэтому недействительные данные означают, что данные присутствуют, но недействительны или отсутствуют в кеше.
Особые состояния:
- F = переслать или R = недавние
- Дополнительные состояния MESI протокола
- Последние прочитанные данные. Это особое «Действительное» состояние, которое является «Владельцем» немодифицированных общих данных , используемых в некоторых расширенных протоколах MESI (MERSI или R-MESI IBM, [5] [6] МЕСИФ – Интел [7] [8] ). Состояние R/F используется для разрешения «вмешательства», когда значение чистое, но используется многими кэшами. Этот кэш отвечает за вмешательство ( совместное вмешательство ). При запросе на чтение шины данные предоставляются из этого кэша, а не из памяти. MERSI и MESIF — это один и тот же протокол с разной терминологией ( F вместо R ). Иногда R называют « последним общим ( SL » ). [9] [10]
- Состояние R = Recent используется не только в протоколе MERSI = R-MESI , но и в ряде других протоколов. Это состояние можно использовать в сочетании с другими состояниями. Например, RT-MESI , HR-MESI , HRT-MESI , HRT-ST-MESI . [6] [11] [12] Все протоколы, использующие это состояние, будут обозначаться как тип R-MESI .
- H = Hover – H-MESI (дополнительное состояние протокола MESI) [11]
- Состояние Hover ( H ) позволяет строке кэша сохранять тег адреса в каталоге, даже если соответствующее значение в записи кэша является недопустимой копией. допустимой операции «Чтение» или «Запись», запись обновляется допустимой копией, и ее состояние изменяется в S. Если соответствующее значение попадает на шину (совпадение адресного тега) из- за
- Это состояние можно использовать в сочетании с другими состояниями. Например, HR-MESI , HT-MESI , HRT-MESI , HRT-ST-MESI . [6] [11] [12]
Различные протоколы когерентности
[ редактировать ]Протоколы | |
---|---|
И протокол | Написать через |
MSI-протокол | Протокол синапса [4] |
протокол МЭИ | IBM PowerPC 750 , [13] MPC7400 [6] |
Протокол МЧС | Протокол Светлячка [4] |
Протокол МЕСЯЦЕВ | Пентиум II [14] PowerPC, Intel Harpertown (Xeon 5400) |
протокол MOSI | Протокол Беркли [4] |
Протокол MOESI | АМД64 , [15] МОЭСИ, [16] Т-МЕСЯЦ IBM [12] |
Используемая терминология | |
---|---|
Иллинойский протокол | D-VE-SI (= расширенный MESI) [4] [17] |
Запись один раз или запись сначала | D-R-V-I (= MESI) [4] [18] [19] |
Протокол Беркли | D-SD-V-I (= MOSI) [4] |
Протокол синапса | D-V-I (= MSI) [4] |
Протокол Светлячка | D-VE-S (= MES) ДЕК [4] |
Протокол Дракона | D-SD (SM ?)-SC-VE (= MOES) Ксерокс [4] |
Протокол Bull HN ISI | D-SD-R-V-I (= MOESI) [20] |
Протоколы MERSI (IBM) / MESIF (Intel) | |
Протокол HRT-ST-MESI | H=Hover, R=Recent,T=Tagged, ST=Shared-Tagged – IBM [11] [12]
– Примечание. Основными терминами являются SD-DRVI и MOESI, поэтому будут использоваться обе. |
POWER4 IBM-протокол | Mu-T-Me-MSS L -I (L2 семь состояний) [9]
(*) Особое состояние — запрос резервирования для загрузки и сохранения двойного слова (для 64-битных реализаций). |
Операции Snoopy по согласованности
[ редактировать ]- Автобусные транзакции
- Характеристики данных
- Операции с кэшем
Автобусные транзакции
[ редактировать ]Основными операциями являются:
- Написать через
- Обратная запись
- Написать Выделить
- Запись без выделения
- Вмешательство в кэш
- Совместное вмешательство
- Грязное вмешательство
- Аннулирование
- Запись-трансляция
- Интервенционное вещание
Написать через
- Строка кэша обновляется как в кэше, так и в ММ или только в ММ ( пишите no-allocate ).
- Простота реализации, высокая пропускная способность. Это лучше для одиночной записи.
Обратная запись
- Данные записываются только в кэш. Данные подлежат обратной записи в MM только тогда, когда данные заменяются в кэше или когда этого требуют другие кэши (см. Политика записи ).
- Лучше выполнять множественную запись в одной и той же строке кэша.
- Промежуточное решение: сквозная запись для первой записи, обратная запись для следующей ( однократная запись и Bull HN ISI). [20] протоколы).
Написать Выделить
- При промахе данные считываются от «владельца» или из ММ, затем данные записываются в кэш (обновление-частичная запись) (см. Политика записи ).
Запись без выделения
- При промахе данные записываются только в ММ без задействования кеша, или, как в протоколе Bull HN ISI , в «владельца», который находится в кэше D или SD (обновление владельца), если они есть, иначе в MM.
- Write-no-Allocate обычно ассоциируется с Write Through.
- Вмешательство в кэш
- (или коротко « вмешательство »)
- – Shared Intervention – совместное-чистое вмешательство (по немодифицированным данным)
- – При промахе чтения данные предоставляются владельцем E или R / F или также S вместо MM (см. протоколы Illinois , тип IBM R-MESI и Intel MESIF).
- – Shared Intervention – совместное-чистое вмешательство (по немодифицированным данным)
- – Грязное вмешательство (по измененным данным)
- – При промахе чтения данные предоставляются владельцем M (D) или O (SD) или E (R) (*) вместо MM (например, протокол MOESI, RT-MESI, …).
- – Грязное вмешательство (по измененным данным)
- (*) – Не для E (R) в первоначальном предложении протокола MOESI. [16] и в некоторых других реализациях MOESI-Type.
- – « Вмешательство » лучше по сравнению с « невмешательством », поскольку транзакции кэш-кэш выполняются намного быстрее, чем доступ MM, и, кроме того, экономят пропускную способность памяти (уменьшение трафика памяти). Таким образом, расширенный MESI Illinois и тип R-MESI / MESIF намного лучше, чем протокол MOESI (см. MESI и MOESI ниже).
- Аннулирование
- – При попадании записи в состоянии S (V) или O (SD) (общий) отправляется транзакция шины, чтобы сделать недействительными все копии в других кэшах ( Write-invalidate ).
- Запись-рассылка (Запись-обновление)
- – При попадании записи в состоянии S (V) или O (SD) (общий) запись пересылается в другие кэши для обновления их копий (например, Intel Nehalem [22] Протокол Дракона , Firefly (DEC).
- – Примечание – Операция обновления других кэшей иногда также называется Snarfing . Кэши отслеживают шину, и если происходит попадание в кеш, этот кеш захватывает данные, которые проходят по шине, и обновляет свой кеш. Также обновление состояния H in ( H-MESI ) можно определить как привязку . В первом случае это происходит при операции широковещательной записи, во втором случае — как при операциях чтения, так и при записи.
- Интервенционное вещание
- Запись недействительна против трансляции
- – Недействительность записи лучше, когда несколько операций записи, обычно частичная запись, выполняются процессором до того, как строка кэша будет прочитана другим процессором.
- – Запись-широковещательная передача (обновление) лучше, когда есть один производитель и много потребителей данных, но хуже, когда кэш заполнен данными, которые в следующий раз не будут прочитаны снова (увеличивается трафик шины, увеличивается взаимодействие с кэшем ).
- - Аннулирование является распространенным решением.
Характеристики данных
[ редактировать ]Существует три характеристики кэшированных данных:
- Срок действия
- Эксклюзивность
- Право собственности
- Срок действия
- – Любая недействительная строка кэша, то есть MOES/D-SD-RV.
- Эксклюзивность
- – Данные действительны только в одном кэше (данные не являются общими) в состоянии M (D) или E (R), при этом MM не очищается в случае M (D) и очищается в случае E (R).
- Право собственности
- – Кэш, который отвечает за предоставление данных запроса вместо MM (Вмешательство) – В зависимости от протокола кэш, который должен выполнить вмешательство, может быть S - E - M в MESI Illinois или R / F - E - M в Тип R-MESI / MESIF или M (D) или O (SD), а также E (R) (*) в протоколах типа MOESI (например, AMD64 , [16] Бык HN ISI [20] – см. операцию «Промах чтения» ниже).
(*) – в зависимости от реализации.
Примечание. Не путайте более строгое определение «владельца» в протоколе MOESI с более общим определением .
Операции с кэшем
[ редактировать ]Операции с кэшем:
- Читать хит
- Читать Мисс
- Написать хит
- Напишите мисс
- Читать хит
- – Данные считываются из кэша. Состояние не изменилось
- – Внимание : поскольку это очевидная операция, впоследствии она больше не будет учитываться, в том числе и на диаграммах транзакций состояний.
- Читать Мисс
- – Запрос на чтение данных отправляется на шину
- – Есть несколько ситуаций:
- Данные хранятся только в мм.
- – Данные считываются из ММ.
- – Кэш установлен E (R) или S (V)
- – E специальная линия шины (« Общая линия » используется (R), если для обнаружения « отсутствия совместного использования данных ») . Используется во всех протоколах, имеющих состояние E (R), за исключением протоколов Write-Once и Bull HN ISI (см. «Write Hit» ниже).
- Данные хранятся в ММ и в одном или нескольких кэшах в состоянии S (V) или в R/F в типа R-MESI/MESIF протоколах .
- – Есть три ситуации:
- – Протокол Иллинойса – приоритет сети используется для временного и произвольного назначения права собственности на S. копию
- Данные предоставляются выбранным кэшем. Запрос кэша установлен S ( совместное вмешательство с очисткой MM). - — Тип R-MESI/ протоколы MESIF — копия находится в состоянии R / F ( совместный владелец )
– Данные предоставляются R / F- кешем. Кэш отправки изменяется в S , а запрашивающий кеш устанавливается R / F (при промахе чтения «владение» всегда переходит к последнему запрашивавшему кеш) – совместное вмешательство . - – Во всех остальных случаях данные предоставляются памятью, а запрашивающий кэш устанавливается S (V).
- Данные хранятся в ММ и только в одном кэше в E (R) состоянии .
- – Данные предоставляются кэшем E (R) или MM, в зависимости от протокола.
– Из E (R) в расширенном MESI (например, Illinois , Pentium (R) II [14] ), тип R-MESI / MESIF и из той же реализации MOESI (например, AMD64 )
– Запрашивающий кэш устанавливается на S (V) или R / F в типа R-MESI/MESIF протоколах , а кэш E (R) изменяется на S (V) или на I в протоколе MEI. - – Во всех остальных случаях данные предоставляются ММ.
- Данные, измененные в одном или нескольких кэшах, при этом ММ не очищены.
- Тип протокола MOESI — данные хранятся в M (D) или в O (SD) , а остальные кэши — в S (V).
- – Данные отправляются в запрашивающий кэш от «владельца» M (D) или O (SD). Для запрашивающего кэша устанавливается S (V), а M (D) изменяется на O (SD).
- – ММ не обновляется.
- Протоколы типа MESI и MEI — данные хранятся в M (D) , а остальные кэши — в состоянии S (V).
- – Есть два решения:
- – Данные передаются из кэша M (D) в запрашивающий кэш, а также в MM (например, Illinois , Pentium(R) II [14] )
- – Операция выполняется в два этапа: запрашивающая транзакция останавливается, данные отправляются из кэша M (D) в MM, затем может продолжиться транзакция ожидания и данные считываются из MM (например, протоколы MESI и MSI Synapse ).
- – Все кэши установлены S (V)
- Написать хит
- – Данные записываются в кэш
- – Есть несколько ситуаций:
- Кэш в S (V) , R/F или O (SD) (совместное использование)
- – Написать аннулировать
- – Копировать обратно
- – Данные записываются в кэш, и на шину отправляется недействительная транзакция, чтобы сделать недействительными все остальные кэши.
- – Кэш установлен M (D)
- – Сквозная запись ( однократная запись , Bull HN ISI )
- – Данные записываются в кэш и в ММ, что делает недействительными все остальные кэши. Кэш установлен R (E)
- – Копировать обратно
- — Написание трансляции (например, Firefly , Dragon )
- - Данные записываются в кэш, и широковещательная транзакция отправляется на шину для обновления всех остальных кэшей, имеющих копию.
- – Кэш устанавливается M (D), если «общая линия» отключена, в противном случае устанавливается O (SD). Все остальные копии установлены S (V)
- Кэш в E (R) или M (D) состоянии (эксклюзивность)
- – Запись может выполняться локально без каких-либо других действий. Состояние устанавливается (или остается) M (D)
- Напишите мисс
- – Написать Распределить
- – Чтение с намерением изменить операцию ( RWITM )
- – Как и операция промаха чтения плюс команда недействительности, затем кэш записывается (обновляется)
- – Запрашивающий кэш установлен M (D), все остальные кэши становятся недействительными.
- — Написание трансляции (например, Firefly , Dragon )
- – Как при промахе чтения. Если «общая линия» отключена, данные записываются в кэш и устанавливается M (D), в противном случае, как при попадании записи – широковещательная рассылка записи.
- – Чтение с намерением изменить операцию ( RWITM )
- – Запись без выделения
- – Данные отправляются в MM или, как в протоколе Bull HN ISI , только в кеш D (M) или SD (O), если они есть, минуя кеш.
- – Написать Распределить
Протоколы согласованности
[ редактировать ]- – предупреждение – для простоты все транзакции в состоянии «промах» чтения и записи, которые явно произошли из состояния I (или промаха тега), на диаграммах не изображены. Они изображены непосредственно на новом состоянии.
- – Примечание – Многие из следующих протоколов имеют лишь историческую ценность. В настоящее время основными используемыми протоколами являются тип R-MESI/MESIF и HRT-ST-MES (тип MOESI) или их подмножество.
————————————————————————————————————————
Протокол МЕСЯЦЕВ
[ редактировать ]States MESI = D-R-V-I
- – Использование «общей линии» шины для обнаружения «общей» копии в других кэшах.
- Операции процессора
- Читать Мисс
- Существует две альтернативные реализации: стандартный MESI (без вмешательства) и расширенный MESI (с вмешательством).
- 1 – MESI «без вмешательства» (например, PowerPC 604 [24] )
- – Если в кэше есть копия М , транзакция останавливается и ждет, пока кэш М обновит ММ, после чего транзакция может продолжиться и данные считываются из ММ. Оба кеша установлены S
- – иначе данные считываются из ММ. Если «общая линия» включена, кэш установлен S иначе E
- 2 – МЭСИ «Вмешательство» от М и Е (например, Pentium (R) II [14] )
- – Если в кэше имеется копия M или E (эксклюзивность), данные передаются в запрашивающий кэш из M или из E (Вмешательство). Если кэш отправки — M, данные также одновременно записываются в MM (обратное копирование). Все кэши установлены S
- – иначе данные считываются из ММ. Если «общая линия» включена, кэш установлен S иначе E
- Написать хит
- – Если кеш имеет тип M или E (эксклюзивность), запись может выполняться локально без каких-либо других действий.
- – в противном случае данные записываются в кеш, и на шину отправляется недействительная транзакция, чтобы сделать недействительными все остальные кеши.
- – Кэш установлен M
- Напишите мисс
- – Операция RWITM отправляется на шину. Операция выполняется в два этапа: «Промах чтения» с командой «Недействительность», чтобы сделать недействительными все остальные кэши, а затем, как и «Запись попадания» с состоянием M (см. Операция кэширования — Промах записи ).
- Автобусные транзакции
- Автобусное чтение
- – если M и «без вмешательства», данные отправляются в MM (обратное копирование)
- – если М и «Вмешательство» данные отправляются в запрашивающий кэш и в ММ (Copy Back)
- – если E (*) и «Вмешательство» данные отправляются в запрашивающий кэш
- – Состояние изменяется (или остается) в S
- Чтение шины – ( RWITM )
- – Как в «Читании в автобусе».
- – Кэш установлен «Недействительный» ( I )
- Недействительная транзакция шины
- Кеш установлен «Недействительно» ( I )
- Операции
- – Написать Распределить
- – Вмешательство : от М – Е (*)
- – Написать недействительно
- – Обратное копирование : замена M
- (*) – продленные МЕСЯЦЫ
————————————————————————————————————————
Протокол MOESI
[ редактировать ]States MEOSI = D-R-SD-V-I = T-MESI IBM [12]
- – Использование «общей линии» шины для обнаружения «общей» копии в других кэшах.
- Операции процессора
- Читать Мисс
- – Если в другом кэше имеется копия M , O или E (*), данные предоставляются из этого кэша (вмешательство). Запрашивающий кеш устанавливается S , M меняется на O , а E на S.
- – иначе данные считываются из ММ.
- – Если «общая линия» включена, запрашивающий кэш установлен S else E
- Написать хит
- – Если кеш имеет тип M или E (эксклюзивность), запись может выполняться локально без каких-либо других действий.
- – иначе O или S (совместное использование) транзакция «Инвалидация» отправляется на шину, чтобы сделать недействительными все остальные кеши.
- – Кэш установлен (или остаётся) M
- Напишите мисс
- – Операция RWITM отправляется на шину
- – Данные передаются от «владельца» или от ММ, как при Read Miss, затем записывается (обновляется) кэш.
- – Для кэша установлено значение M , а для всех остальных кэшей установлено значение I.
- Автобусные транзакции
- Автобусное чтение
- – Если кэш — M , O или E (*), данные отправляются в запрашивающий кэш (вмешательство). Если кеш равен E, состояние изменяется в S , в противном случае устанавливается (или остается) O.
- – иначе состояние изменится или останется в S
- Чтение шины – ( RWITM )
- – Если кэш M или O или E (*), данные отправляются на шину (Вмешательство)
- – Кэш установлен «Недействительный» ( I )
- Недействительная транзакция шины
- – Кэш установлен «Недействительный» ( I )
- Операции
- Написать Выделить
- Вмешательство : со стороны МЧС (*)
- Написать недействительно
- Обратное копирование : замена МО
- – (*) реализация зависит от E
————————————————————————————————————————
Иллинойский протокол
[ редактировать ]States MESI = D-R-V-I [4]
- – Характеристики:
- – Это расширение протокола MESI
- – Использование сетевого приоритета для совместного вмешательства (вмешательство в общие данные)
- – Отличия от MESI: помимо E и M , вмешательство также от S (см. Read Miss – пункт 1 )
- Операции
- - Написать Распределить
- - Вмешательство : со стороны МЧС
- - Написать недействительно
- - Обратное копирование : замена M
————————————————————————————————————————
Протокол однократной записи (или первой записи)
[ редактировать ]States D-R-V-I (MESI) [4] [18] [19]
- – Характеристики:
- – Не используется «общая линия» (протокол для стандартной или немодифицируемой шины)
- – Запись насквозь при первом попадании записи в состоянии V , затем копирование обратно.
- Операции процессора
- Читать Мисс
- – Если в другом кэше имеется копия D , данные предоставляются этим кэшем (вмешательство) и в то же время записываются также в MM (обратное копирование).
- – иначе данные считываются из ММ
- – все кэши установлены V
- Написать хит
- – Если кэш D или R (эксклюзивность), запись может выполняться локально без каких-либо других действий, и состояние устанавливается (или остается) D
- – иначе V (первое попадание записи) данные записываются в кэш и в MM (сквозная запись), что делает недействительными все остальные кэши (запись-недействительна). – Кэш установлен R
- Напишите мисс
- – Подобно промаху чтения, но с командой «недействительности» ( RWITM ) плюс попадание записи в состоянии D (обновление). Кэш установлен D , а все остальные кеши установлены как «Недействительные» ( I ).
- – Примечание – Сквозная запись выполняется только в режиме «Промах записи». Следует отметить, что в этом случае транзакция шины в любом случае необходима для аннулирования других кэшей, и поэтому этим фактом можно воспользоваться для обновления также MM. Вместо этого в «Write Hit» больше не требуется транзакция, поэтому «Write Through» станет бесполезной операцией в случае повторного обновления кеша.
- Автобусные транзакции
- Автобусное чтение
- – Если кэш равен D, данные отправляются в запрашивающий кэш (вмешательство) и в MM (обратное копирование). Кэш установлен V
- – иначе состояние изменится или останется в V
- Чтение шины – ( RWITM )
- – Если кэш равен D, данные отправляются на шину (Вмешательство)
- – Кэш установлен «Недействительный» ( I )
- Недействительная транзакция шины
- – Кэш установлен «Недействительный» ( I )
- Операции
- Написать Выделить
- Вмешательство : от D
- Write Through : первое попадание записи в V. состоянии
- Написать недействительно
- Обратное копирование : замена D
————————————————————————————————————————
Протокол Bull HN ISI
[ редактировать ](Бык-Ханивелл Италия)
Штаты D-SD-RVI (MOESI)
Запатентованный протокол (Ф. Зулиан) [20]
- – Характеристики:
- – Расширение MOESI однократной записи протокола
- - Запись без выделения при промахе с D или SD обновлением
- - Без использования RWITM
- - Не используется «общая линия»
- Операции процессора
- Читать Мисс
- - Как и у MOESI с включенной "Общей линией" и вмешательством только со стороны "владельца" D или SD но не со стороны R
- Написать хит
- - Если кеш имеет тип D или R , как в случае с MOESI, запись может выполняться локально без каких-либо других действий. Кэш установлен (или остается) D
- - Если SD или V (первая запись), как и в случае с Write-Once , данные записываются в кэш и в MM (сквозная запись), что делает недействительными все остальные кэши (Write-Invalidate) – Кеш установлен R
- - Напишите мисс
- - Данные отправляются на шину минуя кэш (Write-no-allocate)
- - Если существует копия «владельца» D или SD , «владелец» обновляется (см. «Write-no-Allocate – обновление владельца» ), в то время как другие кэши становятся недействительными. «Владелец» устанавливается (или остается) D . Память остается «грязной»
- - иначе данные отправляются в MM, делая недействительными все остальные кеши (Write-Invalidate)
- - Напишите мисс
- Автобусные транзакции
- Автобусное чтение
- - Как у МОЭСИ с вмешательством только "владельца" Д или СД
- Чтение шины (запись обновления/запись недействительна)
- - Если кеш D или SD , кеш обновляется, в противном случае устанавливается «Недействительный» ( I )
- Операции
- Запись без выделения : при промахе
- Написать обновление : при пропуске
- Write Through : сначала записать, затем скопировать обратно.
- Запись обновления/запись недействительной
- Вмешательство : из SD-D
- Обратное копирование : замена D или замена SD с аннулированием
- Обс. - Это единственный протокол, который имеет транзакции OE (SD-R), а также единственный, который использует функцию записи без выделения, выделяемую при промахе.
————————————————————————————————————————
Протокол синапса
[ редактировать ]Состояния DVI (MSI) [4]
- - Характеристики:
- - Характеристика этого протокола заключается в том, что у каждой строки кэша в MM имеется однобитовый тег, указывающий, что кэш имеет строку в D. состоянии
- - Этот бит предотвращает возможное состояние гонки, если D- кэш не отвечает достаточно быстро, чтобы запретить ответ MM перед обновлением.
- - Данные всегда поступают из ММ
- - Не используется «общая линия»
- - Характеристика этого протокола заключается в том, что у каждой строки кэша в MM имеется однобитовый тег, указывающий, что кэш имеет строку в D. состоянии
- Операции процессора
- Читать Мисс
- - Если в другом кэше есть копия D , транзакция чтения отклоняется (без подтверждения). Копия D записывается обратно в MM и меняет свое состояние в V , затем запрашивающий кэш повторно отправляет новую транзакцию чтения, и данные считываются из MM.
- - иначе данные считываются из ММ.
- - Кэш установлен V
- Написать хит
- - Если кэш равен D , запись может выполняться локально без каких-либо других действий.
- - else V , как и Read Miss, включает передачу данных из памяти с дополнительной командой аннулирования ( RWITM ). Это делается только для того, чтобы сделать недействительными другие копии V , поскольку этот протокол не поддерживает транзакцию недействительности.
- - Кэш установлен D . Все остальные копии кэшей установлены как «Недействительные» ( I ).
- Напишите мисс ( RWITM )
- - Как и в случае с промахом чтения, но с командой аннулирования. Строка кэша приходит из ММ, затем кэш пишется (обновляется). Кэш установлен D . Все остальные кеши установлены как «Недействительные» ( I ).
- Автобусные транзакции
- Автобусное чтение
- - Если кэш равен D , данные отправляются в MM (обратное копирование). Кэш установлен V
- - иначе состояние остается в V
- Чтение шины ( RWITM )
- - Если кеш D, данные отправляются в MM (обратное копирование)
- - Кэш ( D или V ) установлен как «Недействительный» ( I )
- Операции
- Написать Выделить
- Вмешательство : без вмешательства
- Запись недействительна : ( RWITM )
- Нет недействительной транзакции
- Обратное копирование : замена D
————————————————————————————————————————
Протокол Беркли
[ редактировать ]States D-SD-V-I (MOSI) [4]
- - Характеристики:
- - Как и MOESI без E. состояния
- - Не используется «общая линия»
- Операции процессора
- Читать Мисс
- - Данные предоставляет "владелец", то есть из Д или из СД еще из ММ. D изменен в SD
- - Кэш установлен V
- Написать хит
- - Если кеш D (эксклюзивность), запись может происходить локально без каких-либо других действий.
- - иначе ( SD или V ) по шине отправляется транзакция «Инвалидация», чтобы сделать недействительными другие кеши.
- - Кэш установлен (или остается) D
- Напишите мисс
- - Операция RWITM отправляется на шину
- - Как и при Read Miss, данные поступают от "владельца", D или SD или от MM, затем кэш обновляется
- - Кэш установлен D . все остальные кэши установлены I
- Автобусные транзакции
- Автобусное чтение
- - Если кэш D или SD, данные отправляются в запрашивающий кэш (вмешательство). Кэш установлен (или остается) на SD
- - иначе кеш останется в V
- Чтение шины – ( RWITM )
- - Если кэш D или SD, данные отправляются на шину (Вмешательство)
- - Кэш установлен «Недействительный» ( I )
- Недействительная транзакция шины
- - Кэш установлен «Недействительный» ( I )
- Операции
- Написать Выделить
- Вмешательство : от D-SD
- Написать недействительно
- Обратное копирование : замена D-SD
————————————————————————————————————————
Протокол Firefly (DEC)
[ редактировать ]Штаты D-VE-S (MES) [4]
- - Характеристики:
- - Нет состояния «Недействительно»
- - "Запись-трансляция"+"Запись через"
- - Использование «общей линии»
- - «Запись-трансляция» позволяет избежать необходимости состояния «Недействительно».
- - Одновременное вмешательство из всех кешей (совместное и грязное вмешательство – по немодифицированным, измененным данным)
- - Этот протокол требует синхронной шины
- Операции процессора
- Читать Мисс
- - Любой другой кэш является «владельцем», то есть все остальные кэши с копией поставляются одновременно с датой на шину (одновременное вмешательство – время шины фиксировано так, что все они отвечают в одном и том же цикле), в противном случае данные поставляется от ММ.
- - При наличии кэша D данные одновременно отправляются и в ММ (Copy Back)
- - При наличии копий в других тайниках "Общая линия" устанавливается "вкл."
- - Если «Общая линия» включена, все кэши установлены S , иначе запрашивающий кэш установлен VE .
- Написать хит
- - Если кеш D или VE (эксклюзивность), запись может выполняться локально без каких-либо других действий, а кеш установлен D.
- - иначе S , на шину отправляется «широковещательная рассылка» для обновления всех остальных кэшей и MM (сквозная запись)
- - При наличии копии в другом кэше "Общая линия" устанавливается "вкл". Если «Общая линия» отключена, кэш установлен VE , иначе все кэши установлены S
- Напишите мисс
- - Операция производится в два этапа. Прочтите «Мисс», затем «Напишите хит».
- - Если данные поступают из кэша (общая линия включена), на шину отправляется «широковещательная запись» для обновления всех остальных кэшей и MM (сквозная запись). Все кэши установлены S
- - иначе кэш установлен D
- Автобусные транзакции
- Автобусное чтение
- - При попадании ( D или VE или S ) данные отправляются на шину (вмешательство), а в случае D данные записываются также в ММ. Кэш установлен S
- Автобусное чтение
- - При попадании ( D или VE или S ) данные отправляются на шину (Вмешательство).
- - Все кэши установлены S
- Написать трансляцию
- - Кэш пополняется новыми данными. Состояние остается S
- Операции
- Написать Выделить
- Вмешательство : из D-VE-S (из всех «действительных» кэшей)
- Запись-трансляция – Запись через
- Copy-Back : замена D и любая транзакция с кешем D
————————————————————————————————————————
Протокол Dragon (Xerox)
[ редактировать ]Штаты D-SD-VE-SC (МОЧС) [4]
Примечание. Состояние SC , несмотря на термин «чистый», может быть «чистым» или «грязным», как и состояние S других протоколов. SC и S являются эквивалентами
- - Характеристики:
- - Нет состояния «Недействительно»
- - «Запись-трансляция» (нет «Запись через»)
- - Использование «общей линии»
- - «Запись-трансляция» позволяет избежать необходимости состояния «Недействительно».
- Операции процессора
- Читать Мисс
- - Данные предоставляет "владелец", то есть из Д или из СД еще из ММ. D изменен в SD
- - Если «общая линия» включена, кэш установлен SC , иначе VE.
- Написать хит
- - Если кэш D или VE (эксклюзивность), запись может происходить локально без каких-либо других действий. Кэш установлен (или остается) D
- - в противном случае SD или SC (совместное использование) данные записываются в кэш, и на шину отправляется «широковещательная запись» для обновления всех остальных кэшей – ММ не обновляется (нет сквозной записи)
- - При наличии копии в другом кэше "Общая линия" устанавливается "вкл."
- - Если «Общая линия» включена, кэш установлен , иначе D. SD Все остальные возможные копии кэшей устанавливаются SC.
- Напишите мисс
- - Как и при Read Miss, данные поступают от "владельца", D или SD или от MM, затем кэш обновляется
- - При наличии копии в другом кэше "Общая линия" устанавливается "вкл".
- - Если «Общая линия» включена, обновленные данные передаются в другие кэши, и состояние устанавливается SD . Все остальные кэши установлены SC
- - иначе кэш D
- Автобусные транзакции
- - Автобусное чтение
- - Если кэш D или SD, данные отправляются в запрашивающий кэш (вмешательство). Кэш установлен (или остается) SD
- - иначе кэш остается SC
- - Автобусное чтение
- Автобусное чтение
- - Если кэш D или SD, данные отправляются на шину (Вмешательство)
- - Кэш установлен SC
- Написать трансляцию
- - Кэш пополняется новыми данными. Кэш остается SC
- Операции
- Написать Выделить
- Вмешательство : со стороны D-SD (но не со стороны VE)
- Write-вещание
- Обратное копирование : замена D-SD
————————————————————————————————————————
Протоколы MERSI (IBM) / MESIF (Intel)
[ редактировать ] Государства MERSI или R-MESI
Штаты МЕСИФ
Запатентованные протоколы – IBM (1997 г.) [6] – Интел (2002 г.) [8]
- - MERSI и MESIF — один и тот же идентичный протокол (разное только состояние имени, F вместо R )
- - Характеристики:
- - Та же функциональность Иллинойса протокола
- - Новое состояние R (последние) / F (пересылающие) является « владельцем » «совместно чистых» данных (с обновленным MM).
- - «Общее владение» (на чистые данные) не назначается сетевым приоритетом, как в случае с Illinois , но оно всегда назначается последнему кэшу с Read Miss, устанавливая его состояние R / F.
- - «Владение» временно теряется в случае замены R / F . «Владение» снова переназначается следующему промаху чтения с «общим чистым» кэшем.
- - Использование «общей линии»
- Операции
- Написать Выделить
- Вмешательство : со стороны MER/F
- Написать недействительно
- Обратное копирование : замена M
————————————————————————————————————————
МЭСИ против МОЭСИ
[ редактировать ]MESI и MOESI — самые популярные протоколы.
Распространено мнение, что MOESI является расширением протокола MESI и, следовательно, является более сложным и более производительным. Это справедливо только в сравнении со стандартным МЭСИ, то есть МЭСИ с «неразделенным вмешательством». MESI с «совместным вмешательством», как, например, MESI Illinois или эквивалентные протоколы с 5 состояниями MERSI/MESIF , гораздо более производительны, чем протокол MOESI .
В MOESI операции кэш-кэш выполняются только с измененными данными. MESI Illinois типа и MERSI/MESIF Вместо этого в протоколах операции кэш-кэш всегда выполняются как с чистыми, так и с измененными данными. В случае измененных данных вмешательство осуществляется «владельцем» M, но право собственности не теряется , поскольку они переносятся в другой кэш (кэш R/F в MERSI/MESIF или выбранный кэш типа Illinois ). Разница лишь в том, что ММ необходимо обновить. Но и в MOESI эту транзакцию следует выполнить позже в случае замены, если за это время не произойдет никаких других модификаций. Однако это меньший предел по сравнению с транзакциями в памяти из-за отсутствия вмешательства, как в случае чистых данных для протокола MOESI. (см., например, «Оценка эффективности между MOESI (Шанхай) и MESIF Nehalem-EP» [21] )
Наиболее продвинутые системы используют только протокол R-MESI/MESIF или более полные RT-MESI , HRT-ST-MESI и протоколы IBM POWER4 , которые представляют собой расширенное объединение протоколов MESI и MOESI.
Примечание. Кэш-кэш является эффективным подходом в многопроцессорных/многоядерных системах, напрямую связанных между собой, но менее эффективен в удаленном кэше , как в системах NUMA , где стандартный MESI предпочтителен. Пример в протоколе POWER4 IBM «совместное вмешательство» осуществляется только «локально», а не между удаленными модулями.
————————————————————————————————————————
Протокол РТ-МЭСИ
[ редактировать ] Государства РТ-МЭСИ
Запатентованный протокол IBM [11] [12]
- Характеристики:
- - Объединение МЭСИ и МОЭСИ
- - Совместное вмешательство + Грязное вмешательство (как на чистых, так и на грязных данных)
- - Та же функциональность протокола R-MESI с новым состоянием T = Tagged, эквивалентным O. состоянию
- - Миграция «Грязного владельца»
- - «Владелец» (как общий, так и грязный) всегда является последним запрашивающим кеш (у нового «владельца» ( LRU ) меньше вероятность скорого освобождения по сравнению со старым)
- - «Владельцами» являются T , M , E , R (все, кроме S )
- - Использование «общей линии»
Операции процессора
- Читать Мисс
- - Если в другом кэше имеется копия M или T (грязное владение), данные предоставляются из этого кэша (грязное вмешательство). Запрашивающий кеш устанавливается на T , а предыдущие M или T изменяются на S.
- - Если в другом кэше имеется копия E или R (совместное владение), данные предоставляются из этого кэша (совместное вмешательство). Запрашиваемые данные устанавливаются в R , а E или R изменяются в S.
- — иначе данные считываются из MM и кэш R. устанавливается
- Написать хит
- - Если кеш M или E (эксклюзивность), запись может происходить локально без каких-либо других действий.
- - иначе T или R или S (совместное использование) транзакция «Инвалидация» отправляется на шину, чтобы сделать недействительными все остальные кеши.
- - Кэш установлен (или остается) M и все остальные кэши установлены I
- Напишите мисс
- - Операция RWITM отправляется на шину
- - Данные подаются от "владельца" или от ММ как при Read Miss, затем данные записываются (обновляются) в кэш.
- - Для кэша установлено значение M , а для всех остальных кэшей установлено значение I.
- Автобусные транзакции
- Автобусное чтение
- - Если кэш T или M или R или E, данные отправляются в запрашивающий кэш (вмешательство).
- - Кэш установлен (или остается) в S
- Чтение шины – ( RWITM )
- - Если кэш T или M или R или E, данные отправляются в запрашивающий кэш (вмешательство)
- - Кэш установлен «Недействительный» ( I )
- Недействительная транзакция шины
- - Кэш установлен «Недействительный» ( I )
- Операции
- Написать Выделить
- Вмешательство : со стороны TMRE
- Написать недействительно
- Обратное копирование : замена TM
————————————————————————————————————————
Протокол РТ-СТ-МЕСИ
[ редактировать ]Это усовершенствование RT-MESI. протокола [12] и это подмножество HRT-ST-MESI протокола [11]
- S T = общие теги
- - Использование состояния «Shared-Tagged» позволяет поддерживать вмешательство после освобождения строки кэша с тегами.
- - В случае замены T (освобождения строки кэша) данные необходимо записать обратно в MM и, таким образом, потерять «владение». новое состояние ST Чтобы избежать этого, можно использовать предыдущий T устанавливается ST . В вместо S. Read Miss S T является кандидатом на замену владения в случае T. освобождения Транзакция T «Копировать обратно» останавливается (без обновления MM) кэшем ST , который меняет свое состояние в T . В случае нового чтения из другого кэша последний устанавливается в T предыдущий T изменяется в ST , а предыдущий ST изменяется в S. ,
Дополнительное улучшение можно получить, используя ST более : ST1 … , ST2 чем , STn состояние .
- - При Read Miss T меняется в S T1 и все индексы остальных S Ti увеличиваются на "1.
- - В случае T освобождения S T1 останавливает транзакцию «Копировать обратно», меняет свое состояние в T и все индексы остальных S Ti уменьшаются на «1».
- - В случае освобождения, например S Tk , цепочка будет прервана, и все S Ti с индексом больше «k» автоматически освобождаются с точки зрения ST , и будут рассматриваться де-факто только как простые состояния S даже если они установлены как S T . Все это потому, что только S T1 вмешивается, чтобы заблокировать и заменить себя T . Например, если у нас есть тип ситуации , ST3 , новая ST4 с T заменой ST2 без , T , если , ситуация будет T , ST2 , ST1 ST3 заменен какого-либо ST1 будет .
————————————————————————————————————————
Протокол HRT-ST-MESI
[ редактировать ]IBM запатентовала полный протокол HRT-ST-MESI [11] [12]
- Я указываю = Неверный тег (*) – Неверные данные
- Состояние H = Действительный тег – Неверные данные
- Состояние I устанавливается при инициализации кэша и его состояние меняется только после промаха чтения или записи процессора. После он больше не вернется в это состояние.
- H имеет ту же функциональность, что и состояние I , но в дополнение к этому имеет возможность захватывать любую транзакцию шины, соответствующую тегу каталога, и обновлять кэш данных.
- После первого использования I заменяется на H. в своих функциях
- - Основные особенности:
- - Написать ответ
- - Вмешательство в обмен как чистыми, так и грязными данными – от TMRE
- - Резервные состояния Tagged (Shared-Tagged)
- - Неверное H (Hover). автоматическое обновление состояния
(*) – Примечание. Тег для определения всегда действителен, но до первого обновления строки кэша он считается недействительным, чтобы избежать обновления кэша даже тогда, когда эта строка еще не требовалась и не использовалась.
————————————————————————————————————————
POWER4 IBM-протокол
[ редактировать ]Состояния MT-Me-SI -Mu-S L = RT-MESI+Mu [9]
- - Использование «общей линии»
- Используется в многоядерных/модульных системах – многокэш L2. [9]
- Этот протокол эквивалентен протоколу RT-MESI для систем с несколькими кэшами L2 в многомодульных системах.
- S L — «Общая последняя запись», эквивалентная R на RT-MESI.
- Я — «Действительный эксклюзив» = E
- Mu – незапрошенное измененное состояние
- - особое состояние – запрос резервирования для загрузки и сохранения двойного слова (для 64-битных реализаций)
- «Совместное вмешательство» со стороны осуществляется SL только между кэшами L2 одного и того же модуля.
- «Грязное вмешательство» от T осуществляется только между кэшами L2 одного и того же модуля.
- Операции
- - Написать Распределить
- - Вмешательство : от MT-VE-S L = MOES L
- - Написать недействительно
- - Обратное копирование : замена MT
- - Примечание: T и S L – вмешательство только в локальном модуле.
————————————————————————————————————————
Общие соображения по протоколам
[ редактировать ]В некоторых условиях наиболее эффективным и полным протоколом оказывается протокол HRT-ST-MESI .
- - Написать ответ
- - Вмешательство как с грязными, так и с общими чистыми данными
- - Резервные состояния состояния Tagged (Shared-Tagged)
- - Неверное H (Hover). автоматическое обновление состояния
Ссылки
[ редактировать ]- ^ Патент США 5701413 «Многопроцессорная система с общей памятью».
- ^ Патент ЕР 0923032А1 , «Способ передачи данных в многопроцессорной вычислительной системе с блоком перемычки».
- ^ «Спецификация и проверка протокола арбитража шины PowerScale: промышленный эксперимент с LOTOS, глава 2, стр. 4» (PDF) .
- ^ Jump up to: а б с д и ж г час я дж к л м н тот п , Арчибальд, Джеймс; Баер, Жан-Лу (1986). «Протоколы когерентности кэша: оценка с использованием многопроцессорной имитационной модели» (PDF) . Транзакции ACM в компьютерных системах . 4 (4). Ассоциация вычислительной техники (ACM): 273–298. дои : 10.1145/6513.6514 . ISSN 0734-2071 . S2CID 713808 .
- ^ Jump up to: а б « Руководство пользователя RISC-микропроцессора MPC7400» » (PDF) .
- ^ Jump up to: а б с д и ж г Патент США 5996049 , «Протокол когерентности кэша с недавно прочитанным состоянием для данных и инструкций».
- ^ Jump up to: а б " "Введение в Intel® QuickPath Interconnect" " (PDF) .
- ^ Jump up to: а б Патент США 6922756 : «Состояние пересылки для использования в обеспечении согласованности кэша в многопроцессорной системе».
- ^ Jump up to: а б с д «Микроархитектура системы POWER4» (PDF) . cc.gatech.edu . 08.10.2008. Архивировано из оригинала (PDF) 7 ноября 2013 г.
- ^ "Справочник ядра кэша IBM PowerPC 476FP L2"
- ^ Jump up to: а б с д и ж г Патент США 6275908 «Протокол согласованности кэша, включая состояние HR».
- ^ Jump up to: а б с д и ж г час Патент США 6334172 «Протокол когерентности кэша с тегированным состоянием для измененных значений».
- ^ " "MPC750UM/D 12/2001 Ред. 1 Руководство пользователя семейства RISC-микропроцессоров MPC750" " (PDF) .
- ^ Jump up to: а б с д Шенли, Т. (1998). Системная архитектура Pentium Pro и Pentium II . Серия Mindshare по системной архитектуре ПК. Аддисон-Уэсли. п. 160. ИСБН 978-0-201-30973-7 .
- ^ Руководство программиста по архитектуре AMD64 . Том. 2: Системное программирование. АМД. Май 2013 г. - через Интернет-архив.
- ^ Jump up to: а б с Суизи, П.; Смит, Эй Джей (1986). «Класс совместимых протоколов согласованности кэша и их поддержка будущей шиной IEEE» (PDF) . Новости компьютерной архитектуры ACM SIGARCH . 14 (2). Ассоциация вычислительной техники (ACM): 414–423. дои : 10.1145/17356.17404 . ISSN 0163-5964 . S2CID 9713683 .
- ^ Папамаркос, Марк С.; Патель, Джанак Х. (1984). «Решение когерентности с низкими издержками для мультипроцессоров с частной кэш-памятью» . Материалы 11-го ежегодного международного симпозиума по компьютерной архитектуре - ISCA '84 . Нью-Йорк, Нью-Йорк, США: ACM Press. стр. 348–354. дои : 10.1145/800015.808204 . ISBN 0818605383 .
- ^ Jump up to: а б Гудман, Джеймс Р. (1983). «Использование кэш-памяти для уменьшения трафика памяти процессора» (PDF) . Материалы 10-го ежегодного международного симпозиума по компьютерной архитектуре - ISCA '83 . Нью-Йорк, Нью-Йорк, США: ACM Press. стр. 124–131. дои : 10.1145/800046.801647 . ISBN 0897911016 .
- ^ Jump up to: а б Хван, К. (2011). Усовершенствованная компьютерная архитектура, 2E . Серия McGraw-Hill по информатике. Образование Макгроу Хилл. п. 301. ИСБН 978-0-07-070210-3 .
- ^ Jump up to: а б с д Патент EP 0396940B1 , Ферруччо Зулиан, «Кэш-память и соответствующий протокол согласованности».
- ^ Jump up to: а б Хакенберг, Дэниел; Молка, Дэниел; Нагель, Вольфганг Э. (12 декабря 2009 г.). «Сравнение архитектур кэша и протоколов согласованности в многоядерных системах SMP x86-64» (PDF) . Материалы 42-го ежегодного международного симпозиума IEEE/ACM по микроархитектуре . Нью-Йорк, штат Нью-Йорк, США: ACM. стр. 413–422. дои : 10.1145/1669112.1669165 . ISBN 9781605587981 .
- ^ Jump up to: а б Рольф, Трент (2009), Организация кэша и управление памятью компьютерной архитектуры Intel Nehalem (PDF)
- ^ Дэвид Кантер (28 августа 2007 г.), «Общий системный интерфейс: будущее межсоединение Intel» , Real World Tech : 5 , получено 12 августа 2012 г.
- ^ «Оптимизация протокола когерентности кэша MESI для многопоточных приложений на небольших симметричных многопроцессорных системах» . Резюме Нила Тибревала . 12 декабря 2003 г. Архивировано из оригинала 22 октября 2016 г.