- Поскольку в SMP-узлах процессоры одновременно работают с данными, хранящимися в единой ОП узла, в SMP-архитектурах обязателен механизм поддержки когерентности данных.
- Когерентность данных означает, что в любой момент времени для каждого элемента данных во всей памяти узла существует только одно его значение, несмотря на то, что одновременно могут существовать несколько копий элемента данных, расположенных в разных видах памяти и обрабатываемых разными процессорами.
- Если устройство 1 в верхней части имеет копию блока памяти из предыдущего чтения, а устройство 2 изменяет этот блок памяти, копия данных в кэше 1го устройства становится устаревшей
Кэш-когерентность (2) - Механизм когерентности должен следить, чтобы операции с одним и тем же элементом данных выполнялись на разных процессорах последовательно, удаляя устаревшие копии.
- В современных SMP-архитектурах когерентность реализуется аппаратно.
- Когерентность с использованием справочника (directory). Информация о состоянии блока физической памяти содержится только в одном месте, называемом справочником (физически справочник может быть распределен по узлам системы).
- Перехват (snarfing). Когда из какого-либо одного кэша данные переписываются в оперативную память, контроллеры остальных получают сигнал об этом изменении ("перехватывают" информацию об изменении данных) и, если необходимо, изменяют соответствующие данные в своих кэшах.
- Когерентность с использованием отслеживания (snooping). Каждый кэш, который содержит копию данных некоторого блока физической памяти, имеет также соответствующую копию служебной информации о его состоянии. Централизованная система записей отсутствует. Обычно кэши расположены на общей (разделяемой) шине и контроллеры всех кэшей наблюдают за шиной (просматривают её) для определения того, не содержат ли они копию соответствующего блока.
Do'stlaringiz bilan baham: |