Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Организация когерентности системы кэш-памяти в многопроцессорных системах с общей оперативной памятью



Наибольшая эффективность использования кэш-памяти достигается при использовании обратной записи.

Проблема когерентности (согласованности) первичных модулей кэш- памяти возникает в многопроцессорных системах при параллельной обработке массивов разделяемых данных, именно при использовании обратной записи. Но при записи данных одним процессором с обратной записью, данные в оперативной памяти и, возможно, в локальных модулях других процессоров становятся устаревшими, т.е. нарушается когерентность данных кэш-памяти с данными не только в оперативной памяти, но и с данными в кэш-памяти других процессорах.

Проблема когерентности памяти для мультипроцессоров и устройств ввода/вывода имеет много аспектов. Обычно в малых мультипроцессорах системах используется аппаратный механизм, позволяющий решить эту проблему при помощи протоколов наблюдения. Существуют два класса таких протоколов:

1. Протоколы на основе справочника (directory based). Информация о состоянии блока физической памяти содержится только в одном месте, называемом справочником (физически справочник может быть распределен по узлам системы).

2. Протоколы наблюдения (snooping). Каждый кэш, который содержит копию данных некоторого блока физической памяти, имеет также соответствующую копию служебной информации о его состоянии.

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

Имеется множество протоколов наблюдения для реализации когерентности локальных блоков кэш-памяти.

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

Это самый простой протокол наблюдения. На практике обычно используются более сложные протоколы.

Для примера рассмотрим протокол когерентности, разработанный для систем кэш-памяти для многопроцессорных систем на основе МП IA-486.

Это один из вариантов протокола MESI (Modified, Exclusive, Shared, Invalid).

Протокол был разработан для кэш-памяти c обратной записью. Одной из основных задач протокола MESI является откладывание на максимально возможный срок операции обратной записи кэшированных данных в основную память.

Варианты протоколов MESI

Протокол MESI приписывает каждой кэш-строке одно из четырех состояний, которые контролируются двумя битами MESI. Аббревиатура MESI означает Modified (модифицированная), Exclusive (эксклюзивная), Shared (разделяемая), Invalid (недействительная). Эти четыре термина определяют четыре возможных состояния кэш-строки. Состояние кэш-строки может быть изменено:

· процессором (посредством операций чтения, записи или внутренней проверки),

· внешними логическими устройствами, например, другими процессорами или контроллером кэш-памяти L2 (посредством внешней проверки).





Дата публикования: 2014-11-03; Прочитано: 390 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...