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