Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Проблемы поддержания когерентности данных. Способы их решения.





 

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

 

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

 

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

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

M (Модифицированная)– данные в строке модифицированы, но не переписаны в ОП. Данные достоверны только в данной кэш-памяти.

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

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

I (Недействительная) – строка не содержит достоверных данных.

 

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

Рисунок 8.5. Переходы из одного состояния MESI в другое

Запрос на чтение

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

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

S в S (R3): запрос на чтение приводит к кэш-попаданию, данные находятся в кэш-памяти и передаются в процессор.

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

I в S (R5): как и в предыдущем случае

I в I (R6): запрос на чтение приводит к кэш-промаху, данных в кэш-памяти нет. Однако заполнение кэш-строки не может быть выполнено кэш-контроллером. Таким образом, строка остается недействительной.

Запрос на запись

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

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

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

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

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

Просмотр

M в S (S1): цикл проверки обнаруживает модифицированную кэш-строку, поэтому недействительной она не объявляется. Соответствующая кэш-строка перезаписывается в основную память.

M в I (S2): цикл проверки обнаруживает модифицированную кэш-строку; на этот раз она объявляется недействительной. Соответствующая кэш-строка перезаписывается в основную память.

E в S (S3): цикл проверки обнаруживает кэш-строку, помеченную как эксклюзивная. Она не изменялась и поэтому не должна перезаписываться в основную память. Эта операция служит для пересылки строки, которая вначале находилась только в одной кэш-памяти, во вторую.

E в I (S4): в цикле проверки была обнаружена кэш-строка, помеченная как эксклюзивная. Она не изменялась, поэтому ее также не надо перезаписывать в основную память. В противоположность предыдущему случаю, кэш-строка должна быть объявлена недействительной,

S в S (S5): в цикле проверки была обнаружена кэш-строка, помеченная как разделяемая.

S в I (S6): в цикле проверки была обнаружена кэш-строка, помеченная как разделяемая. Она не изменялась и поэтому не должна перезаписываться в основную память при последующем объявлении ее недействительной.

I в I (S7): в цикле проверки была обнаружена кэш-строка, помеченная как недействительная, т.е. не содержащая достоверной информации.







Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам...

Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...

ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.