Hardware - разное

       

Протокол MESI и функция вмешательства


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

Рисунок 4.
Диаграмма переходов состояний протокола MESI.

Состояние строки "Единственная" (Exclusive). Данные этой строки достоверны в этом кэше и недостоверны в любом другом кэше. Данные не модифицированы по отношению к памяти.

Состояние строки "Разделяемая" (Shared). Данные этой строки достоверны в этом кэше, а также в одном или нескольких удаленных кэшах.

Состояние строки " Модифицированная " (Modified). Данные этой строки достоверны только в этом кэше и были модифицированы. Данные недостоверны в памяти.

Состояние строки " Недостоверная " (Invalid). Достоверные данные не были найдены в данном кэше.

Для поддержки мультипроцессорной организации были реализованы несколько примитивов адресной шины. Это позволяет одному главному устройству шины передавать, а другим устройствам обнаруживать появление этих примитивов на шине. Устройство . владелец кэша наблюдает за адресной шиной во время глобального запроса и сравнивает целевой адрес с адресами тегов в своем кэше L2. Если происходит попадание, то выполняемые действия определяются природой запроса.

Как уже было отмечено, одной из функций тегов L2 является уменьшение накладных расходов, связанных с ответами на запросы механизма наблюдения. Доступ к тегам L2 разделяется между процессорами и адресной шиной. ТегиL2 практически выполняют роль фильтров по отношению к активностям наблюдения.
Это позволяет процессорам продолжать обработку вместо того, чтобы отвечать на каждый запрос наблюдения. Хотя теги L2 представляют собой разделяемый между процессором и шиной ресурс, его захват настолько кратковременен, что практически не приводит ни к каким конфликтам.

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

Для увеличения пропускной способности системы в PowerScale реализованы два способа выполнения функции вмешательства.

    • Немедленная кроссировка (Cross Immediate), которая используется, когда канал данных источника и получателя свободен и можно пересылать данные через коммутатор на полной скорости.
    • Поздняя кроссировка (Cross Late), когда ресурс (магистраль данных)занят, поэтому данные будут записываться в буфер коммутатора и позднее пересылаться запросчику.



Содержание раздела