<<
>>

Протокол MESI

Одним из популярных протоколов отложенной записи является протокол MESI (Invalid, Shared, Exclusive, Modified — недействительный, разделяемый, эксклюзивный, модифицированный), названный так по первым буквам четырех возможных состояний элементов кэша [159].
В его основе лежит более ранний протокол однократной записи [77]. Протокол MESI используется в Pentium 4 и других процессорах для слежения за шиной. В соответствии с этим протоколом каждый элемент кэша может находиться в одном из следующих четырех состояний:

+ недействительный — элемент кэша содержит недействительные данные;

+ разделяемый — элемент может храниться в нескольких кэшах, память обновлена;

+ эксклюзивный — элемент находится только в данном кэше (ни в каких других кэшах его нет), память обновлена;

+ модифицированный — элемент действителен, основная память недействительна, копий элемента не существует.

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

8.22, а). При последующих считываниях процессор использует эту строку, не обращаясь к шине. Другой процессор может вызвать ту же строку и поместить ее в кэш. В этом случае первый держатель строки (процессор 1) благодаря слежению узнает, что он уже не единственный держатель строки, и объявляет по шине, что у него копия. Обе копии помечаются как разделяемые (рис. 8.22, б). Другими словами, состояние «разделяемая» означает, что память обновлена, и строка после чтения находится в одном или нескольких кэшах. При последующих чтениях разделяемой строки процессор не использует шину и не меняет состояние строки.

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

В этом случае процессор помещает на шину специальный сигнал, сообщая всем другим процессорам о том, что их копии более недействительны, при этом копия в кэше самого процессора 2 переходит в состояние «модифицирована» (рис. 8.22, в). В память эта строка не записывается. Отметьте, что если указанная строка является эксклюзивной, никакого сигнала о недействительности на шину передавать не нужно, поскольку других копий этой строки не существует.

Далее выясним, что происходит, когда эту строку считывает процессор 3. Процессор 2, который в данный момент является держателем строки, знает, что копия в памяти недействительна, поэтому он передает на шину сигнал о том, чтобы процессор 3 ждал, пока он запишет строку обратно в память. Сразу после записи процессор 3 вызывает из памяти копию только что записанной строки, и в обоих кэшах строка помечается как разделяемая (рис. 8.22, г). Когда затем процессор 2 снова записывает эту строку (рис. 8.22, в), ее копия в кэше процессора 3 становится недействительной.

Наконец, пусть теперь слово в строке записывает процессор 1. Процессор 2 видит, что делается попытка записи, и выставляет на шину сигнал, который сообщает процессору 1, чтобы тот подождал, пока процессор 2 запишет свою строку в память. После окончания записи процессор 2 помечает собственную копию строки как недействительную, поскольку знает, что другой процессор собирается ее изменить. Возникает ситуация, в которой процессор выполняет запись в некэшированную строку. Если применяется политика заполнения по записи, строка будет загружена в кэш и помечена как модифицированная (рис. 8.22, е). Если политика заполнения по записи не применяется, запись происходит непосредственно в память, и строка вообще нигде не кэшируется.

Рис. 8.22. Иллюстрация протокола МЕЭ1

<< | >>
Источник: Таненбаум Э.. Архитектура компьютера. 5-е изд. 2007

Еще по теме Протокол MESI:

  1. Глава 4. Киотский протокол в Украине
  2. § 6. Протокол судебного заседания
  3. Судебные протоколы вообще
  4. Пример обработки протокола.
  5. Базовый протокол устранения проблемы с BSFF
  6. В. Г. Олифер, Н. А. Олифер. 54 Компьютерные сети. Принципы, технологии, протоколы: Учебник для вузов. 3-е изд, 2006
  7. Определение пятое
  8. Основания
  9. Определение семнадцатое
  10. 3.1. Общие положения
  11. Основания
  12. Основания