Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3 семестр / ЛР / лаб№3меси / методичка.doc
Скачиваний:
30
Добавлен:
30.04.2013
Размер:
733.18 Кб
Скачать

Стратегии обновления строк основной памяти

В таблице ниже приведены условия сохранения и обновления информации в ячейках кэш-памяти и основной памяти.

Табл. Условия сохранения и обновления информации

Режим работы

Наличие копии ячейки ОП в кэш-памяти

Информация в ячейке кэш-памяти

Информация в ячейке ОП

Чтение

Копия есть

Не изменяется

Не изменяется

Копии нет

Обновляется

Не изменяется

Сквозная запись

Копия есть

Обновляется

Обновляется

Копии нет

Не изменяется

Обновляется

Обратная запись

Копия есть

Обновляется

Не изменяется

Копии нет

Обновляется

Не изменяется

При чтении информация из некоторой ячейки основной памяти и наличие копии этой ячейки в кэш-памяти, вместо оригинала процессором считывается копия данных из КЭШ. Если копия данных в КЭШ отсутствует, то сначала она создаётся, и потом обращение происходит именно к копии. В этом случае информация ни в кэш-памяти, ни в основной памяти не изменяется.

При записи строк существует несколько методов обновления старой информации. Эти методы называются стратегией обновления строк основной памяти.

Сквозная запись. По методу сквозной записи обычно обновляется слово, хранящееся в основной памяти. Если в кэш-памяти существует копия этого слова, то она также обновляется. Если же в кэш-памяти отсутствует копия этого слова, то

  • либо из основной памяти в кэш-память пересылается строка, содержащая это слово (сквозная запись с распределением),

  • либо этого не допускается (сквозная запись без распределения).

Когда по методу сквозной записи из кэш-памяти удаляется блок, назначается для хранения строки ОП, то в основную память можно не возвращать удаляемый блок, так как копия там уже есть. Недостаток метода: эффект от использования кэш-памяти отсутствует, т.к. обращение всё время происходит к ОП.

Обратная запись. По методу обратной записи, если адрес объектов, по которым есть запрос обновления, существует в кэш-памяти, то обновляется только кэш-память, а основная память не обновляется. Если адреса объекта обновления нет в кэш-памяти, то в неё из основной памяти пересылается строка, содержащая этот адрес, после чего обновляется только кэш-память.

В случае замены строк по методу обратной записи удаляемую строку необходимо пересылать в основную память.

Если результат обновления строк кэш-памяти не возвращается в основную память, то содержимое основной памяти становится неадекватным вычислительному процессу.

Mesi-протоколы

В лабораторной работе моделируется мультипроцессорная система, состоящая из 4-х процессоров (каждый имеет свой кэш) и одной общей оперативной памяти, которая состоит из 12 блоков. Каждый кэш содержит 12 строк (одна строка может хранить в себе один блок ОП), см. рис. 3.3.

Однако для такой организации КЭШ в мультипроцессорных системах процессоры должны использовать механизмы кэш-согласования: если одни процессор изменил данные в кэш памяти, то все остальные процессоры при обращении к этим данным получат измененные копии. Один из способов организации кэш-согласования – использование протокола MESI [1,2,7,3].

В этом случае каждая строка кэш, в которой хранится блок оперативной памяти, снабжена признаком; перечислим их.

М - Modified (модифицированная) содержимое строки отличается от содержимого ОП, но в ней достоверная информация.

Е - Exclusive (единственная) содержимое строки совпадает с содержимым в ОП и присутствует в КЭШ одного процессора.

S - Shared (разделяемая) содержимое строки совпадает с содержимым в ОП и несколькими КЭШ.

I - Invalid (недействительная) содержимое строки не совпадает с содержимым ОП, информация в строке недостоверна.

КЭШ1

Оперативная память (ОП)

Блок1

Бл1

. . .

Бл12

MESI-протокол 1

Блок2

Процессор1

. . .

КЭШ2

Бл1

. . .

Бл12

MESI-протокол 2

Процессор2

КЭШ3

Бл1

. . .

Бл12

MESI-протокол 3

Процессор3

КЭШ4

Бл1

. . .

Бл12

MESI-протокол 4

Процессор4

Блок12

Рис.3.3. Обобщенная структура мультипроцессорной системы.

Таким образом, читая строки из ОП в КЭШ, модифицируя и удаляя их из КЭШ, ведётся постоянный контроль за состоянием локальных КЭШ каждого процессора и согласованием данных, расположенных в них с данными разделяемой ОП. MESI-признаки строк всё время изменяются согласно ситуации.

Соседние файлы в папке лаб№3меси