Проблемы когерентности КЭШ- памяти в большой машине Курс «Основы БЭВМ» Автор: Галямова Е.В.
Содержание лекции Кэширование разделяемых данных – проблема когерентности Методы решения проблемы Алгоритмы взаимодействия между основной и кэш-памятью Алгоритм MESI
Типовая архитектура мультипроцессорной системы с общей памятью L1 L2 MSC MBA STI P0P9 … P10P19…
Мультипроцессорная когерентность кэш-памяти
Когерентность кэш-памяти = согласованное состояние памяти Гарантия того, что любое считывание элемента данных возвращает последнее по времени записанное в этот элемент значение Два условия обеспечения когерентности Отдаленность операций записи и чтения во времени Сериализация операций
Протоколы когерентности кэш-памяти Существуют два класса таких протоколов: Протоколы на основе справочника (directory based). Информация о состоянии блока физической памяти содержится только в одном месте, называемом справочником (физически справочник может быть распределен по узлам системы). Протоколы наблюдения (snooping). Каждый кэш, который содержит копию данных некоторого блока физической памяти, имеет также соответствующую копию служебной информации о его состоянии. Централизованная система записей отсутствует.
Протоколы поддержания когерентности кэш Запись с аннулированием Запись с обновлением Write update protocol Write broadcast protocol
Запись с аннулированием Промах кэш-памяти вызывает выборку новой копии данных, поэтому процессор должен иметь достоверную (valid) копию данных в своем кэше
Запись с обновлением Промах кэш-памяти вызывает выборку новой копии данных процессор должен иметь достоверную (valid) копию данных в своем кэше
Протоколы поддержания когерентности кэш Запись с аннулированием Запись с обратным копированием Запись с обновлением Сквозная запись Write update protocol Write broadcast protocol
Реализация протокола: Использование механизма шины: Для выполнения операции процессор захватывает шину и транслирует по ней адрес Все процессоры непрерывно наблюдают за шиной Соответствующие адресу данные в кэше либо аннулируются, либо обновляются Доступ к шине строго регламентируется Строгая последовательность выполнения записей
Промах кэш-памяти Сквозная запись Последнее записанное значение может быть выбрано из основной памяти Запись с обратным копированием Каждый процессор наблюдает и контролирует адреса на шине
Стратегия управления кэш-памятью выбор метода отображения основной памяти в кэше; алгоритмы взаимодействия между медленной основной и быстрой кэш- памятью; выбор стратегии замещения информации в кэше.
Реализация процесса наблюдения за когерентностью кэш-памяти Бит модификации Modified/dirty bit Бит разделяемые или частных данных private/Exclusive bit Бит состояния Shared bit Бит достоверности valid/Invalid bit MESI
Каждая строка кэш-памяти ВМ может находиться в одном из следующих состояний: M E S I Состояние строки используется, –во-первых, для определения процессором ВМ возможности локального, без выхода на шину, доступа к данным в кэш-памяти, а, –во-вторых, - для управления механизмом когерентности
Для управления режимом работы механизма поддержки когерентности используется бит WT: состояние 1 которого задает режим сквозной (write-through) записи, а состояние 0 - режим обратной (write-back) записи в кэш- память Промах чтения в кэш-памяти заставляет вызвать строку из основной памяти и сопоставить ей состояние Е или S. Кэш-память заполняется только при промахах чтения. При промахе записи транзакция записи помещается в буфер и посылается в основную память при предоставлении шины.
Переходы состояний кэш памяти 1 Исходное состояние строки Состояние после чтенияСостояние после записи I Если WT=1, тогда Е, иначе S; Обновление строки путем ее чтения из основной памяти Сквозная запись в основную память; I SS Сквозная запись в основную память; Если WT=1 тогда Е, иначе S ЕЕМ МММ
Принудительный перевод строки в состояние I Исходное состояние INV=0INV=1 III SSI ЕSI М S; обратная запись строки I; обратная запись строки
Способы размещения блоков (строк) в кэш-памяти Способы размещения блоков (строк) основной памяти в кэш-памяти Кэш-память с прямым отображением Direct-mapped cache Частично (или множественно) ассоциативная кэш Set-associative cache Полностью ассоциативная кэш Fully associative cache
Сервер IBM z990 L1 – протокол со сквозной записью L2 – контроллер MSC для поддержания когерентности памяти всех узлов (MESI)