Кэш-когерентность (3): согласование памяти - Строгая согласованность вычислений означает: операция чтения должна возвращать значение переменной, соответствующее последней по времени операции записи.
- В однопроцессорных системах или в системах с одним модулем обеспечение строго согласованности вполне естественно.
- В распределенных системах ситуация осложняется отсутствием «единого времени», которое позволило бы полностью упорядочить действия процессоров, но неминуемо привело бы к снижению производительности.
- Поэтому необходимы модели с более слабыми требованиями к согласованности.
- Последовательная согласованность.
- Модель предложена Лэмпортом в 1979.
- Все процессы наблюдают одну и ту же последовательность обращений к памяти.
- Практически это означает, что один процессор, выполняющий запись, ожидает от других процессоров подтверждения модификации или объявления модифицируемых данных несостоятельными.
- Это обеспечивает единый порядок записей, видимый всеми процессорами.
- Последовательная согласованность не гарантирует, что операция чтения возвратит значение, записанное чуть раньше другим процессом.
Кэш-когерентность (4): согласование памяти - Пусть имеется вычислительная система с параллельными процессорами П1, П2,П3, П4. с общей памятью. Каждый процессор выполняет операции записи (w – write) и чтения (r – read) относительно ячейки памяти с адресом х.
-
- Пример последовательной согласованности (по горизонтали - время)
- П1 w(x) 2 w(x) 1
- П2 r(x) 2 r(x) 1
- П3 r(x) 2 r(x) 1
- Пример нарушения последовательной согласованности
- П1 w(x) 1
- П2 w(x) 2
- П3 r(x) 1 r(x) 2
- П4 r(x) 2 r(x) 1
- Когерентность (согласованность) кэш-памяти устанавливает порядок, в котором процессы модифицируют одну и ту же переменную, в то время как операции записи в разные переменные могут осуществляться параллельно.
- Таким образом, когерентность – последовательная согласованность локальной области памяти. Эта модель строго слабее модели последовательной согласованности.
Do'stlaringiz bilan baham: |