Элемента данных в памяти, хранящееся в двух разных процессорах,
Доступно этим процессорам только через их индивидуальные кэши. На
Рис. 2.8 показан простой пример, иллюстрирующий эту проблему.
Проблема когерентности памяти для мультипроцессоров и устройств
ввода/вывода имеет много аспектов. Обычно в малых мультипроцессорах используется аппаратный механизм, называемый протоколом , позволяющий решить эту проблему. Такие протоколы называются протоколами когерентности кэш- памяти . Существуют два класса таких протоколов:
Протоколы на основе справочника (directory based).
Информация о состоянии блока физической памяти содержится только в одном месте, называемом справочником (физически справочник может быть распределен по узлам системы). Этот подход будет рассмотрен в разд. 10.3.
Протоколы наблюдения (snooping). Каждый кэш , который
Содержит копию данных некоторого блока физической памяти, имеет
Также соответствующую копию служебной информации о его состоянии. Централизованная система записей отсутствует. Обычно КЭШи расположены на общей (разделяемой) шине и контроллеры всех КЭШей наблюдают за шиной (просматривают ее) для определения того, не содержат ли они копию соответствующего блока.
стр.40
А) Когерентное состояние кэша и основной памяти.
|
|
Б) Предполагается использование кэш-памяти с обратной записью, когда ЦП записывает значение 320 в ячейку X. В результате X содержит новое значение, а в основной памяти осталось старое значение 88. При попытке вывода X из памяти будет получено старое значение.
В) Внешняя память вводит в ячейку памяти Y новое значение 260,а в кэш-памяти осталось старое значение Y. В мультипроцессорных системах, использующих процессоры с кэш- памятью, подсоединенные к централизованной общей памяти, протоколы наблюдения приобрели популярность, поскольку для опроса состояния кэшей они могут использовать заранее существующее физическое соединение - шину памяти. Неформально, проблема когерентности памяти состоит в
Необходимости гарантировать, что любое считывание элемента данных
Возвращает последнее по времени записанное в него значение. Это
Стр.41
Определение не совсем корректно, поскольку невозможно требовать, чтобы операция считывания мгновенно видела значение, записанное в этот элемент данных некоторым другим процессором. Если, например,
Операция записи на одном процессоре предшествует операции чтения той же ячейки на другом процессоре в пределах очень короткого интервала времени, то невозможно гарантировать, что чтение вернет записанное значение данных, поскольку в этот момент времени записываемые данные могут даже не покинуть процессор. Вопрос о том, когда точно записываемое значение должно быть доступно процессору, выполняющему чтение, определяется выбранной моделью согласованного (непротиворечивого) состояния памяти и связан с реализацией синхронизации параллельных вычислений. Поэтому с целью упрощения предположим, что мы требуем только, чтобы записанное операцией записи значение было доступно операции чтения, возникшей немного позже записи и что операции записи данного процессора всегда видны в порядке их выполнения.
|
|
С этим простым определением согласованного состояния памяти мы можем гарантировать когерентность путем обеспечения двух свойств:
Операция чтения ячейки памяти одним процессором, которая
Следует за операцией записи в ту же ячейку памяти другим процессором получит записанное значение, если операции чтения и записи достаточно отделены друг от друга по времени.
Дата добавления: 2018-04-15; просмотров: 350; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!