МегаПредмет

ПОЗНАВАТЕЛЬНОЕ

Сила воли ведет к действию, а позитивные действия формируют позитивное отношение


Как определить диапазон голоса - ваш вокал


Игровые автоматы с быстрым выводом


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


Целительная привычка


Как самому избавиться от обидчивости


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


Тренинг уверенности в себе


Вкуснейший "Салат из свеклы с чесноком"


Натюрморт и его изобразительные возможности


Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д.


Как научиться брать на себя ответственность


Зачем нужны границы в отношениях с детьми?


Световозвращающие элементы на детской одежде


Как победить свой возраст? Восемь уникальных способов, которые помогут достичь долголетия


Как слышать голос Бога


Классификация ожирения по ИМТ (ВОЗ)


Глава 3. Завет мужчины с женщиной


Оси и плоскости тела человека


Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д.


Отёска стен и прирубка косяков Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу.


Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) - В простых моделях рынка спрос и предложение обычно полагают зависящими только от текущей цены на товар.

Протоколы поддержки когерентности для распределенной общей памяти





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

Для поддержания когерентности памяти в NUMA-системах часто применяется протокол DASH, который рассмотрим подробнее.

Протокол DASH (Directory Architecture for SHared memory – «архитектура для общей памяти на основе справочника») был создан в Стенфордском университете в 1992 г. Как следует из названия, протокол DASH, в отличие от MESI, основывается на справочнике, а не на наблюдении.

Каждый ВМ для каждой резидентной строки ведет список модулей, в кэшах которых размещена ее копия.

С каждой строкой в резидентном для нее модуле связаны три ее возможных глобальных состояния:

1) «некэшированная», если копия строки не находится в кэше какого-либо удаленного ВМ;

2) «удаленно-разделенная», если копии строки размещены в кэшах удаленных ВМ;

3) «удаленно-измененная», если строка изменена операцией записи в каком-либо удаленном ВМ.

Кроме этого, каждая кэш-строка в удаленном ВМ находится в одном из трех локальных состояний:

1) «невозможная к использованию», если копии строки нет в кэше, или копия аннулирована;

2) «разделяемая», если в кэше есть неизмененная копия, которая, возможно, размещается также в кэшах других ВМ;

3) «измененная», если копия изменена операцией записи.

Каждый ВМ может читать из своего кэша, если состояние читаемой кэш-строки «разделяемая» или «измененная». Если строка находится в состоянии «невозможная к использованию», то в резидентный ВМ посылается запрос «промах чтения».

Если глобальное состояние строки в резидентном модуле «некэшированная» или «удаленно-разделенная», то копия строки посылается в запросивший удаленный модуль; сам запросивший модуль который вносится в список ВМ, содержащих копии рассматриваемой строки.

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

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

Если глобальное состояние строки в резидентном модуле «некэшированная», то строка отсылается запросившему удаленному ВМ, и этот модуль продолжает приостановленные вычисления.

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

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

Среди прочих протоколов на основе справочника можно назвать Tang, Censier, Archibald и другие.

 

Массово-параллельные ВС

 





©2015 www.megapredmet.ru Все права принадлежат авторам размещенных материалов.