Примером может служить протокол, используемый в кэш-памяти МП i486.


В таблице 3 перечисляются состояния MESI и их свойства.

 

Таблица 3. Четыре состояния MESI
Состояние MESI Кэш-строка действительна? Значения в памяти Есть копия в кэш-памяти другого узла Запрос на запись обращается к 1)
М да недействительны нет кэш-памяти
E да действительны нет кэш-памяти
S да действительны возможно кэш/подсистема памяти
I нет неизвестно возможно подсистема памяти
1) подсистема памяти – это основная память или кэш L2

 

Состояние строки кэш используется, во-первых, для определения процессором ВМ возможности локального, без выхода на шину, доступа к данным в кэш-памяти, а во-вторых, – для управления механизмом когерентности.

Для управления режимом работы механизма когерентности используется бит WT, единичное состояние которого задает режим сквозной (write-through) записи, а состояние 0 – режим обратной (write-back) записи в кэш-память. Но действие бита WT=1,являетсяне прямым, а реализуемым через запрет на использование состояний E и M, в которых всегда используется обратная запись. Для строк в состояниях I используется сквозная запись без размещения, в состояниях S – с размещением (с модификацией строки в кэш памяти).

При исполнении команд чтения и записи состояние строки кэш-памяти, к которой выполняется доступ, определяется таблицей 4.

 

Таблица 4 Переходы состояний кэш памяти
Исх. состояние строки Состояние после чтения Состояние после записи
I Если WT=0, тогда Е, иначе S; Обновление строки путем ее чтения из основной памяти Сквозная запись в основную память; I
S S Сквозная запись в основную память; Если WT= 0тогда Е, иначе S
Е Е Мзадержанная (обратная) запись
М М М задержанная (обратная) запись

 

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

При WT=0(режим обратной записи) состояние строки кэш определяется как E.

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

При WT=1(режим сквозной записи) состояние кэш-строки определяется как S,но по сути оно могла бы определиться какЕ.

Дальнейшие операции записи и чтения при WT=1оставляют кэш-строку в состоянииS,для которого определена только сквозная запись.

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

почтительным.

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

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

На рисунке 7.9 показана соответствующая диаграмма переходов.

 

Обозначения: R№ – Изменение состояния строк при операциях чтения. W№ – Изменение состояния строк при операциях записи. SR№ – Изменение состояния строк кэшей других процессоров при чтении (Операции просмотров при чтении). SW№ – Изменение состояния строк кэшей других процессоров при записи (Операции просмотров при записи).

Рис. 7.9. Протокол MESI – диаграмма состояний.

 

Основные переходы.

При запросах на чтение (R):

Чтение (R1): М в М.Запрос на чтение приводит к кэш-попаданию, данные находятся в кэш-памяти и передаются в процессор.

Чтение (R2): Е в Е. Как и в предыдущем случае, запрос на чтение приводит к кэш-попаданию, данные находятся в кэш-памяти и передаются в процессор.

Чтение (R3): S в S.Запрос на чтение приводит к кэш-попаданию, данные находятся в кэш-памяти и передаются в процессор. Суммируя эти случаи, можно сказать, что, согласно принципу организации кэш-памяти, кэш-попадание при запросе на чтение не влияет на состояние кэш-памяти и не изменяет хранящуюся в памяти информацию.

Чтение (R4): I в E.Запрос на чтение приводит к кэш-промаху, данных в кэш-памяти нет. Кэш-контроллер запускает внешний цикл чтения для того, чтобы прочитать строку из памяти и заполнить строку кэш-памяти. (Строка кэш-памяти заполняется только при кэш-промахах). Адрес внешнего цикла чтения доступен контролерам всех устройств кэш-памяти. При этом возможны случаи попадания (в других кэшах в строки, в состояниях M, E или S). При отрицательных результатах просмотров производится операция заполнения кэш-строки и приWT = 0(Установлен режим обратной записи) состояние строки определяется как E. Запись производится и в строку кэш-памяти, и в строку основной памяти.

Чтение (R5): I в S.Как и в предыдущем случае, запрос на чтение приводит к кэш-промаху, данных в кэш-памяти нет. Кэш-контроллер запускает внешний цикл чтения для того, чтобы прочитать строку из памяти и заполнить строку кэш. При этом адрес внешнего цикла чтения также доступен контролерам всех кэшей. При этом возможны случаи попадания (в других кэшах в строки, в состояниях M, E или S). При любых результатах просмотров при WT = 1(режим сквозной записи) производится чтение памяти с отправкой данных в процессор, а состояние строки кэш определяется как S.

При попаданиях в режимах просмотров других кэшей в состояниях: M или E производится сохранение данных этих строк в памяти и определение их состояний, как S.

Чтение (SR1): М в S.

Чтение (SR2): E в S.

При запросах на запись (W):

Запись (W1): М в М.Запрос на запись приводит к кэш-попаданию, данные находятся в кэш-памяти и перезаписываются. Согласно протоколу MESI, это соответствует стратегии кэш-памяти с отложенной записью, поэтому на внешнюю шину не посылается запрос на выполнение цикла отложенной записи.

Запись (W2): Е в М.Как и в предыдущем случае, запрос на запись приводит к кэш-попаданию, благодаря чему перезапись кэш-строки не требуется. Кэш-контроллер перезаписывает кэш-строку и отмечает ее как модифицированную. Согласно протоколу MESI, этот случай также соответствует стратегии кэш-памяти с отложенной записью, поэтому запрос на выполнение цикла отложенной записи на внешнюю шину не посылается.

Запись (W3): S в E.Запрос на запись приводит к кэш-попаданию. Поскольку исходная строка помечена как разделяемая, она может храниться и в других кэш-блоках. Согласно протоколу MESI, разделяемые строки в кэшах других процессоров должны быть объявлены недействительными. Кэш-контроллер обновляет кеш-строку своего процессора и при WT = 0 определяет ее как E, запускает цикл записи на внешнюю шину для перевода кэш-строк других процессоров, опознавших адрес строки записи, в состояние Iи обновленияоперативной памяти.

Запись (SW3): S в I.При попаданиях в режимах просмотров других блоков кэш-памяти в состояниях Sпроизводится изменение их состояния на I.

Запись (W4): S в S.В этом случае запрос на запись тоже приводит к кэш-попаданию. Поскольку исходная строка помечена как разделяемая, она может храниться и в других блоках кэш-памяти. Согласно протоколу MESI, разделяемые строки в блоках кэш-памяти других процессоров должны быть объявлены недействительным. Кэш-контроллер обновляет кеш-строку своего процессора и при WT = 1 определяет ее как S, запускает цикл записи на внешнюю шину для перевода кэш-строк других процессоров, опознавших адрес строки записи, в состояние Iи обновленияоперативной памяти.

Запись (SW4): S в I.При попаданиях в режимах просмотров других кэшей в состояниях: Sпроизводится определение их состояний, как I.

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

 



Дата добавления: 2021-01-26; просмотров: 356;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.01 сек.