Jump to content

Протокол MOESI

(Подробное описание см. в разделе Протоколы когерентности кэша (примеры) )

В вычислениях MOESI («Modified Owned Exclusive Shared Invalid») представляет собой протокол полной когерентности кэша , который охватывает все возможные состояния, обычно используемые в других протоколах. В дополнение к четырем общим состояниям протокола MESI , существует пятое состояние «Принадлежность», представляющее данные, которые одновременно изменяются и передаются. Это позволяет избежать необходимости записывать измененные данные обратно в основную память перед их общим доступом. Хотя в конечном итоге данные все равно придется записать обратно, обратная запись может быть отложена.

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

Как обсуждалось в AMD64 Руководстве программиста по архитектуре Vol. 2 « Системное программирование » , [1] каждая строка кэша находится в одном из пяти состояний:

Модифицированный
Этот кэш имеет единственную действительную копию строки кэша, и в эту копию были внесены изменения. Кэшированную копию можно свободно изменять.
В собственности
Эта строка является одной из нескольких копий в системе. Этот кеш не имеет разрешения на изменение копии , но строка изменяется (грязная) относительно основной памяти, и этот кеш несет исключительную ответственность за обеспечение того, чтобы основная память в конечном итоге обновлялась. Строка кэша может быть переведена в состояние «Изменено» после признания недействительными всех общих копий или переведена в состояние «Общее» путем записи изменений обратно в основную память. Собственные строки кэша должны отвечать на запрос отслеживания данными, чтобы гарантировать, что устаревшая копия в основной памяти не используется.
Эксклюзивный
В этом кэше имеется единственная копия строки, но строка чистая (немодифицированная). В него можно записать, переведя его в измененное состояние.
Общий
Эта строка является одной из нескольких копий в системе. Этот кэш не имеет разрешения на изменение копии. В отличие от протокола MESI, строка общего кэша может быть «грязной» по отношению к памяти; если да, то один из кэшей имеет копию в состоянии «Владеет», и этот кэш отвечает за окончательное обновление основной памяти. Если ни один кэш не содержит строку в состоянии «Владеет», копия памяти актуальна. Строку кэша нельзя записывать, но сначала ее необходимо перевести в состояние «Исключительно» или «Изменено», сделав недействительными все остальные кэшированные копии. (Если строка кэша ранее была «Владеющей», ответ на недействительность укажет на это, и состояние станет «Изменено», поэтому обязательство в конечном итоге записать данные обратно в память не забывается.) Ее также можно отбросить (перевести в недействительное состояние). ) в любое время.
Неверный
Этот блок недействителен; его необходимо получить, чтобы удовлетворить любую попытку доступа.

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

М ТО И С я 
М  Красный ХН Красный ХН Красный ХН Красный ХН Зеленая галочкаИ
ТО  Красный ХН Красный ХН Красный ХН Зеленая галочкаИ Зеленая галочкаИ
И  Красный ХН Красный ХН Красный ХН Красный ХН Зеленая галочкаИ
С  Красный ХН Зеленая галочкаИ Красный ХН Зеленая галочкаИ Зеленая галочкаИ
я  Зеленая галочкаИ Зеленая галочкаИ Зеленая галочкаИ Зеленая галочкаИ Зеленая галочкаИ

(Порядок, в котором обычно перечисляются штаты, служит только для того, чтобы аббревиатура «MOESI» могла произноситься.)

Этот протокол, более сложная версия более простого протокола MESI , позволяет избежать необходимости записывать «грязную» строку кэша обратно в основную память , когда другой процессор пытается ее прочитать. Вместо этого состояние Owned позволяет процессору передавать измененные данные непосредственно другому процессору. Это полезно, когда связь между двумя процессорами значительно лучше, чем с основной памятью. Примером могут служить многоядерные процессоры с поядерными кэшами L2.

Хотя MOESI может быстро поделиться грязными строками из кеша, ему может быть сложно быстро поделиться чистыми строками из кеша. Если строка кэша чиста по отношению к памяти и находится в совместно используемом состоянии, то не существует очевидного единственного кандидата в кэш, способного ответить на запрос на чтение, поэтому запрос на чтение может быть заполнен из памяти. (Это решается протоколом MESIF , который можно объединить с MOESI для создания MOESIF.)

Если процессор желает выполнить запись в собственную строку кэша, он должен уведомить об этом другие процессоры, которые совместно используют эту строку кэша. Стандартная реализация просто говорит им сделать свои копии недействительными, переводя собственную копию в состояние «Изменено», когда это будет завершено, но в качестве альтернативы она может использовать политику сквозной записи , говоря им обновить свои копии новым содержимым. Это частичная сквозная запись, которая не затрагивает основную память; собственная копия процессора остается в состоянии Owned.

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

См. также

[ редактировать ]
  1. ^ «Руководство программиста по архитектуре AMD64, том 2, «Системное программирование» » (PDF) . стр. 169–172. Архивировано из оригинала (PDF) 19 июня 2017 года . Проверено 28 августа 2015 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6f482ec984c74c97e07c55a85e37e76b__1720741980
URL1:https://arc.ask3.ru/arc/aa/6f/6b/6f482ec984c74c97e07c55a85e37e76b.html
Заголовок, (Title) документа по адресу, URL1:
MOESI protocol - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)