Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 3.doc
Скачиваний:
15
Добавлен:
25.03.2015
Размер:
412.67 Кб
Скачать

Лекция 3.

Тема. Аппаратные способы решения проблемы когерентности.

План лекции.

  1. Аппаратные способы решения проблемы когерентности.

  2. Совместно используемая кэш-память.

  3. Некэшируемые данные.

  4. Широковещательная запись.

  5. Протоколы наблюдения: сквозной, обратной и однократной записи, Synapse, Berkeley, Illinois, Firefly, Dragon, MESI.

  6. Протоколы на основе справочника.

1. Аппаратные способы решения проблемы когерентности

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

Для обеспечения идентичности копий данных в кэше и основной памяти в однопроцессорных системах применяется одна из двух стратегий: сквозная запись (write through) или обратная запись (write back). При сквозной записи новая информация одновременно заносится как в кэш, так и в основную память. При обратной записи все изменения производятся только в кэш-памяти, а обновление содержимого основной памяти происходит лишь при удалении блока из кэш-памяти путем пересылки удаляемого блока в соответствующее место основной памяти. В случае мультипроцессорной системы, когда копии совместно исполь-зуемых данных могут находиться сразу в нескольких кэшах, необходимо обес-печить когерентность всех копий. Ни сквозная, ни обратная запись не предус-матривают такой ситуации, и для ее разрешения опираются на другие приемы, а именно: запись с аннулированием (write invalidate) и запись с обновлением (write update). Последняя также называется записью с трансляцией (write broadcast).

В варианте записи с аннулированием, если какой-либо процессор произво-дит изменения в одном из блоков своей кэш-памяти, все имеющиеся копии этого блока в других локальных кэшах аннулируются, то есть помечаются как недосто-верные. Для этого бит достоверности измененного блока (строки) во всех прочих кэшах устанавливается в 0. Запись с аннулированием иллюстрирует рис. 3.1, на котором показано исходное состояние системы памяти, где копия переменной x имеется во всех кэшах (рис. 3.1, а), а также ее состояние после записи нового значения x в кэш с номером 2 (рис. 3.1, б).

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

Рис. 3.1. Запись с аннулированием: а – исходное состояние; б – после изменения значения x в кэш-памяти 2.

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

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

Рис. 3.2. Запись с обновлением: а – исходное состояние; б – после изменения значения x в кэш-памяти 2.

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

В общем случае для поддержания когерентности в мультипроцессорных системах имеются следующие возможности:

  • совместно используемая кэш-память;

  • некэшируемые данные;

  • широковещательная запись;

  • протоколы наблюдения;

  • протоколы на основе справочника.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]