Элемента данных в памяти, хранящееся в двух разных процессорах,



Доступно этим процессорам только через их индивидуальные кэши. На

Рис. 2.8 показан простой пример, иллюстрирующий эту проблему.

Проблема когерентности памяти для мультипроцессоров и устройств

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

Протоколы на основе справочника (directory based).

Информация о состоянии блока физической памяти содержится только в одном месте, называемом справочником (физически справочник может быть распределен по узлам системы). Этот подход будет рассмотрен в разд. 10.3.

Протоколы наблюдения (snooping). Каждый кэш , который

Содержит копию данных некоторого блока физической памяти, имеет

Также соответствующую копию служебной информации о его состоянии. Централизованная система записей отсутствует. Обычно КЭШи расположены на общей (разделяемой) шине и контроллеры всех КЭШей наблюдают за шиной (просматривают ее) для определения того, не содержат ли они копию соответствующего блока.

                                                                                                                  стр.40      

А) Когерентное состояние кэша и основной памяти.

Б) Предполагается использование кэш-памяти с обратной записью, когда ЦП записывает значение 320 в ячейку X. В результате X содержит новое значение, а в основной памяти осталось старое значение 88. При попытке вывода X из памяти будет получено старое значение.

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

Необходимости гарантировать, что любое считывание элемента данных

Возвращает последнее по времени записанное в него значение. Это     

Стр.41

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

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

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

Операция чтения ячейки памяти одним процессором, которая

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


Дата добавления: 2018-04-15; просмотров: 350; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!