ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 24.12.2021

Просмотров: 1744

Скачиваний: 7

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Мультипроцессорная когерентность кэш-памяти  5 1 1

Рис. 11.10. Протокол Berkeley

Для постоянно читаемой и обновляемой строки в протоколе однократной за-

писи необходимы считывание этой строки в кэш, ее локальная модификация в кэше

и обратная запись в память. Вся процедура требует двух операций на шине: чтения

из основной памяти (ОП) и обратной записи в ОП. С другой стороны, протокол
Berkeley исходит из получения прав на строку. Далее блок модифицируется в кэше.
Если до удаления из кэша к строке не производилось обращение, число циклов
шины будет таким же, как и в протоколе однократной записи. Однако более веро-

ятно, что строка будет запрошена опять, тогда с позиций одиночной кэш-памяти
обновление строки кэша нуждается только в одной операции чтения на шине. Та-
ким образом, протокол Berkeley пересылает строки непосредственно между кэша-

ми, в то время как протокол однократной записи передает блок из исходного кэша

в основную память, а затем из ОП в запросившие кэши, что имеет следствием об-
щую задержку системы памяти [141],

Протокол Illinois.

 Протокол Illinois, предложенный Марком Папамаркосом

[175], также направлен на снижение трафика шины и, соответственно, времени

ожидания процессором доступа к шине. Здесь, как и в протоколе Berkeley, главен-
ствует идея прав владения блоком, но несколько измененная. В протоколе Illinois
правом владения обладает любой кэш, где есть достоверная копия блока данных.

В этом случае у одного и того же блока может быть несколько владельцев. Когда

такое происходит, каждому процессору назначается определенный приоритет и ис-

точником информации становится владелец с более высоким приоритетом.

Как и в предыдущем случае, сигнал аннулирования формируется, лишь когда

копии данного блока имеются и в других кэшах. Возможные сценарии для прото-
кола Illinois представлены на рис. 11.11,


background image

5 1 2 Глава 11. Организация памяти вычислительных систем

Рис.  1 1 . 1 1 . Протокол Illinois

Каждый раз когда какой-либо процессор производит запись в свою кэш-память,

изменяемая строка переводится в состояние «измененная частная» (PD, Private
Dirty). Если блок данных является совместно используемым, на шину посылается

сигнал аннулирования и во всех локальных кэшах, где есть копия данного блока,

эти копии переводятся в состояние «недействительная» (I, Invalid). Если при за-
писи случился промах, процессор получает копию из кэша текущего владельца

запрошенного блока. Лишь после означенных действий процессор производит за-

пись в свой кэш. Как видно, в этой части имеет место полное совпадение с прото-
колом Berkeley,

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

чтобы получить наиболее свежую версию последнего, и переводит свою новую
копию в состояние «эксклюзивная»- (Е, Exclusive) при условии, что он является
единственным владельцем строки. Б противном случае статус меняется на «разде-
ляемая» (S, Shared).

Существенно, что протокол расширяем и тесно привязан как к коэффициенту

кэш-промахов, так и к объему данных, которые являются общим достоянием муль-
типроцессорной системы.

Протокол Firefly.

 Протокол был предложен Такером и др.

 [211]

 и реализован

в мультипроцессорной системе Firefly Multiprocessor Workstation, разработанной
в исследовательском центре Digital Equipment Corporation.

В протоколе Firefly используется запись с обновлением. Возможные состояния

строки кэша совпадают с состояниями протокола Illinois (рис. 11,12). Отличие со-
стоит в том, что стратегия обратной записи применяется только к тем строкам,
которые находятся в состоянии PD или Е, в то время как применительно к строкам


background image

Мультипроцессорная когерентность кэш-памяти  5 1 3

в состоянии S действует сквозная запись. Наблюдающие кэши при обновле-
нии своих копий используют процедуру сквозной записи. Кроме того, наблю-

дающие кэши, обнаружившие у себя копию строки, возбуждают специальную

«разделяемую» линию шины с тем, чтобы записывающий контроллер мог при-
нять решение о том, в какое состояние переводить строку, в которую была про-

изведена запись. «Разделяемая» линия при кэш-промахе чтения служит для
информирования контроллера локальной кэш-памяти о месте, откуда посту-
пила копия строки: из основной памяти или другого кэша. Таким образом, со-
стояние S применяется только к тем данным, которые действительно исполь-
зуются совместно [162, 212].

Рис. 11.12. Протокол Firefly

Протокол имеет преимущества перед ранее описанными в том, что стратегия

сквозной записи привлекается лишь по логической необходимости. Когда ячейка
перестает быть совместно используемой, нужна только одна дополнительная опе-
рация записи, которая производится последней кэш-памятью, содержащей эту
ячейку. Это приводит к тому, что протокол Firefly существенно экономнее по тра-
фику шины по сравнению с прочими протоколами [211]. С другой стороны, стра-
тегия сквозной записи остается в силе до тех пор, пока строка кэша будет совмест-

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

Протокол Dragon.

 Протокол применен в мультипроцессорной системе Xerox

Dragon и представляет собой независимую версию протокола Firefly.

17 Заk. 470

 ;


background image

5 1 4 Глава 11. Организация памяти вычислительных систем

В протоколе реализована процедура записи с обновлением. Строка кэша может

иметь одно из пяти состояний [162,212]:

- Invalid (I) —

 копия, хранящаяся в кэше, недействительна;

-

 Read Private (RP) —

 существует лишь одна копия блока, и она совпадает с содер-

жимым основной памяти;

- Private Dirty

 (PD) — существует лишь одна копия блока, и она не совпадает с со-

держимым основной памяти;

- Shared Clean

 (SC) — имеется несколько копий блока, и все они идентичны со-

держимому основной памяти;

- Shared Dirty

 (SO) — имеется несколько копий блока, не совпадающих с содер-

жимым основной памяти.
Дополнительное состояние SO предназначено для предотвращения записи

в основную память. Диаграмма состояний для данного протокола приведена на
рис. 11.13.

Рис. 11.13. Протокол Dragon

Протокол

 MESI.

 Безусловно, среди известных протоколов наблюдения самым

популярным является протокол MESI (Modified/Exclusive/Shared/Invalid). Про-

токол MESI широко распространен в коммерческих микропроцессорных систе-

мах, например на базе микропроцессоров Pentium и PowerPC. Так, его можно обна-
ружить во внутреннем кэше и контроллере внешнего кэша i82490 микропроцессора

Pentium, в процессоре i860 и контроллере кэш-памяти МС88200 фирмы Motorola,

Протокол был разработан для кэш-памяти с обратной записью. Одной из ос-

новных задач протокола MESI является откладывание на максимально возмож-


background image

Мультипроцессорная когерентность кэш-памяти  5 1 5

ный срок операции обратной записи кэшированных данных в основную память

ВС. Это позволяет улучшить производительность системы за счет минимизации

ненужных пересылок информации между кэшами и основной памятью.

Протокол MESI приписывает каждой кэш-строке одно из четырех состояний,

которые контролируются двумя битами состояния MESI в теге данной строки.
Статус кэш-строки может быть изменен как процессором, для которого эта кэш-
память является локальной, так и другими процессорами мультипроцессорной

системы. Управление состоянием кэш-строк может быть возложено и на внешние
логические устройства. Одна из версий протокола предусматривает использова-

ние ранее рассмотренной схемы однократной записи.

Рис. 11.14, Протокол MESI —диаграмма состояний без учета однократной записи

Согласно протоколу MESI, каждая строка бывает в одном из четырех возмож-

ных состояний (в дальнейшем будем ссылаться на эти состояния с помощью букв
М, Е, S и I):

-Модифицированная

 (М, Modified) — данные в кэш-строке, помеченной как М,

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

кэшах — недостоверна.

- Эксклюзивная

 (Е, Exclusive) — данная строка в кэше не подвергалась измене-

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


Смотрите также файлы