Кэш-когерентность (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
- Когерентность (согласованность) кэш-памяти устанавливает порядок, в котором процессы модифицируют одну и ту же переменную, в то время как операции записи в разные переменные могут осуществляться параллельно.
- Таким образом, когерентность – последовательная согласованность локальной области памяти. Эта модель строго слабее модели последовательной согласованности.
Архитектура NUMA (ссNUMA) - Попытка объединения достоинств компьютеров с общей и распределенной памятью реализована в архитектурах организации памяти non uniform memory access – технологиях NUMA и ccNUMA (cache-coherent NUMA).
- Идея в том, чтобы создать механизм, позволяющий всю совокупную, (вообще говоря, неоднородную, физическую память компьютера рассматривать (виртуально) как единую адресуемую память.
- При этом сохраняется преимущество работы с единым адресным пространством и одновременно ослабляются ограничения на число параллельных узлов. Таким образом, архитектуры NUMA и ccNUMA представляют нечто среднее между SMP и MPP. В таких системах память физически распределена, но логически общедоступна.
- NUMA-системы состоят из однородных базовых модулей (плат); каждый из модулей имеет небольшое число процессоров и блок памяти. Модули объединены с помощью высокоскоростного коммутатора. Поддерживается единое адресное пространство, аппаратно поддерживается доступ к удаленной памяти (к памяти других модулей).
- Время доступа к памяти определяется её физическом расположением: доступ к локальной памяти процессора в несколько раз быстрее, чем к удаленной. Если поддерживается когерентность кэшей во всей системе (обычно это так), говорят об архитектуре cc-NUMA (cache-coherent NUMA). Для поддержки кэш-когерентности используются специальные аппаратные решения.
Do'stlaringiz bilan baham: |