Jump to content

MSI-протокол

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

В MSI каждый блок, содержащийся в кеше, может иметь одно из трех возможных состояний:

  • Изменено : блок был изменен в кэше . В этом случае данные в кеше несовместимы с резервным хранилищем (например, памятью ). Кэш с блоком в состоянии «M» несет ответственность за запись блока в резервное хранилище при его вытеснении.
  • Общий : этот блок не модифицируется и существует в состоянии «только для чтения» как минимум в одном кэше. Кэш может удалить данные без записи их в резервное хранилище.
  • Недействителен : этот блок либо отсутствует в текущем кэше, либо был признан недействительным запросом шины, и его необходимо извлечь из памяти или другого кэша, если блок должен храниться в этом кэше. [1]

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

Когда запрос на чтение поступает в кэш для блока в состояниях «M» или «S», кэш предоставляет данные. Если блока нет в кеше (в состоянии «I»), он должен проверить, что блок не находится в состоянии «M» ни в каком другом кеше. Различные архитектуры кэширования решают эту проблему по-разному. Например, в шинных архитектурах часто выполняется отслеживание , при котором запрос на чтение передается всем кэшам. Другие архитектуры включают каталоги кэша , у которых есть агенты (каталоги), которые знают, в каких кэшах последними были копии определенного блока кэша. Если в другом кэше блок находится в состоянии «M», он должен записать данные обратно в резервное хранилище и перейти в состояния «S» или «I». Как только любая строка «M» записывается обратно, кеш получает блок либо из резервного хранилища, либо из другого кеша с данными в состоянии «S». Затем кэш может предоставить данные запрашивающей стороне. После подачи данных блок кэша находится в состоянии «S».

Когда запрос на запись поступает в кэш для блока в состоянии «M», кэш изменяет данные локально. Если блок находится в состоянии «S», кэш должен уведомить любые другие кэши, которые могут содержать блок в состоянии «S», о том, что они должны удалить этот блок. Это уведомление может осуществляться посредством отслеживания шины или каталога, как описано выше. Затем данные могут быть локально изменены. Если блок находится в состоянии «I», кэш должен уведомить любые другие кэши, которые могут содержать блок в состояниях «S» или «M», о том, что они должны удалить этот блок. Если блок находится в другом кэше в состоянии «M», этот кэш должен либо записать данные в резервное хранилище, либо передать их в запрашивающий кэш. Если на этом этапе в кеше еще нет локального блока, блок считывается из резервного хранилища перед изменением в кеше. После изменения данных блок кэша находится в состоянии «М».

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

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

Государственная машина

[ редактировать ]
Диаграмма состояний запросов процессора по протоколу MSI

Запросы процессора к кешу включают в себя:

  • PrRd: запрос процессора на чтение блока кэша.
  • PrWr: запрос процессора на запись блока кэша.
Диаграмма состояний шинных транзакций для протокола MSI

Кроме того, есть запросы со стороны автобусов. К ним относятся:

  • BusRd: когда в кэше процессора происходит промах чтения, он отправляет запрос BusRd на шину и ожидает получить взамен блок кэша.
  • BusRdX: когда в кэше процессора происходит промах записи, он отправляет запрос BusRdX на шину, который возвращает блок кэша и делает блок недействительным в кэшах других процессоров.
  • BusUpgr: когда в кэше процессора происходит запись, он отправляет запрос BusUpgr на шину, чтобы сделать недействительным блок в кэшах других процессоров.
  • Очистка: запрос, указывающий, что весь блок кэша записывается обратно в память. [2]

Государственные переходы:

  • Неверный :
    • На PrRd выдается BusRd и состояние меняется на Shared .
    • На PrWr выдается BusRdX, и состояние меняется на Modified .
    • В BusRd, BusRdX или BusUpgr недопустимый блок остается Invalid .
  • Поделился :
    • В PrRd блок остается в состоянии Shared .
    • На PrWr выдается BusUpgr и состояние меняется на Modified .
    • На BusRd блок остается в состоянии Shared .
    • В BusRdX или BusUpgr блок переходит в Invalid .
  • Изменено :
    • В PrRd или PrWr блок остается в состоянии «Изменено» .
    • На BusRd блок кэша сбрасывается на шину, и его состояние меняется на Shared .
    • В BusRdX блок кэша сбрасывается на шину, и его состояние меняется на Invalid . [2]
    • BusUpgr невозможен. Обратите внимание, что, находясь в состоянии «Изменено» в одном конкретном процессоре, блок кэша должен находиться в состоянии «Недействительно» во всех других процессорах, поскольку состояние «Изменение» разрешено либо ни в одном процессоре, либо только в одном процессоре. Это эффективно сводит на нет возможность BusUpgr на шине, что потребует, чтобы этот блок находился в состоянии Shared в одном из процессоров, которые, как показано выше, выдают PrWr.

Использование

[ редактировать ]

Этот протокол аналогичен тому, который используется в машине SGI 4D. [3]

Варианты

[ редактировать ]

Современные системы используют варианты протокола MSI для уменьшения объема трафика в когерентном соединении. Протокол MESI добавляет «эксклюзивное» состояние для уменьшения трафика, вызванного записью блоков, которые существуют только в одном кэше. Протокол MOSI добавляет состояние «В собственности», чтобы уменьшить трафик, вызванный обратной записью блоков, которые читаются другими кэшами. Протокол MOESI выполняет обе эти задачи.

См. также

[ редактировать ]
  1. ^ Фуксен, Р. (01 октября 2010 г.). «Как пройти сертификацию многоядерных платформ IMA: текущий статус и потенциальные решения». 29-я конференция по цифровым авиационным системам . стр. 5.E.3–1-5.E.3-11. дои : 10.1109/DASC.2010.5655461 . ISBN  978-1-4244-6616-0 . S2CID   16461614 .
  2. ^ Jump up to: а б Солихин, Ян (2016). Основы параллельной многоядерной архитектуры . Чепмен и Холл / Серия CRC по вычислительной науке.
  3. ^ Со, Тэвон (декабрь 2006 г.). «ИНТЕГРАЦИЯ И ОЦЕНКА ПРОТОКОЛОВ СВЯЗАННОСТИ КЕША ДЛЯ МНОГОПРОЦЕССОРНЫХ SOCS» (PDF) .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 349f9a3c6b29e43136af73e9390d55c5__1704256920
URL1:https://arc.ask3.ru/arc/aa/34/c5/349f9a3c6b29e43136af73e9390d55c5.html
Заголовок, (Title) документа по адресу, URL1:
MSI protocol - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)