Читайте также:
|
|
Большинство предложенных способов борьбы с некогерентностью ориентированы на динамическое (в процессе вычислений) разпознавание и устранение несогласованности копий совместно используемых данных с помощью специальной аппаратуры. Аппаратные методы обеспечивают более высокую производительность, поскольку издержки, связанные с некогерентностью имеют место только при возникновении этой ситуации. Аппаратные механизмы преодоления проблемы некогерентности принято называть протоколами когерентности кэш – памяти.
Для обеспечения идентичности копий данных в кэше и основной памяти в однопроцессорных системах применяется одна из двух стратегий - сквозная запись (write through) и обратная запись (write back) При сквозной записи все изменения одновременно заносятся как кэш так и в основную память. При обратной записи все изменения производятся только в кэш памяти, а обновление содержимого основной памяти производится лишь при удалении блока из кэш памяти путем пересылки удаляемого блока в соответствующее место основной памяти. В случае мультипроцессорных систем, когда копии совместно используемых данных могут находится сразу в нескольких КЭшах, необходимо обеспечить когерентность всех копий. Для ее решения используются другие приемы в отличие от однопроцессорных. К ним относится метод записи с аннулированием (write invalidate) и запись с обновлением (write update).
В варианте записи с аннулированием, если какой – либо процессор производит изменения в одном из блоков своей кэш – памяти, все имеющиеся копии этого блока в других локальных кешах аннулируются, т.е помечаются, как недостоверные.. Для этого существует бит недостоверности, который устанавливается в 0 во всех прочих КЭШах. Если в последствии другой процессор попытается прочитать данные из своей копии такого блока, то произойдет кэш – промах. Следствием этого должно быть занесение в локальную КЭШ – память читающего процессора корректной копии блока. Некоторые схемы когерентности позволяют получить корректную копию непосредственно из той локальной кэш – памяти, где блок подвергся модификации. Если такая возможность отсутствует, новая копия берется из основной памяти. В случае сквозной записи это может быть сделано сразу –же., а при использовании обратной записи модифицированный блок предварительно должен быть переписан в основную память.
Запись с обновлением предполагает что любая запись в локальный КЭШ немедленно дублируется и во всех остальных КЭШах, содержащих копию измененного блока (немедленное обновление блока в основной памяти не является обязательным).
Стратегия записи с обновлением требует широковещательной передачи новых данных по сети межсоединений, что осуществимо не при любой топологии сети
В общем случае для поддержания когерентности в мультипроцессорных системах имеются следующие возможности:
· Совместно используемая кэш – память;
· Некэшируемые данные;
· Широковещательная запись;
· Протоколы на основе справочника.
Дата добавления: 2015-09-10; просмотров: 125 | Поможем написать вашу работу | Нарушение авторских прав |