|
Проблемы поддержания когерентности данных. Способы их решения.
Когерентность кэша — свойство кэшей, означающее целостность данных, хранящихся в локальных кэшах для разделяемого ресурса. Когерентность определяет поведение чтений и записей в одно и то же место памяти.
Протоколы поддержки когерентности отвечают за поддержание корректности данных между всеми кэшами в системе. Протокол поддерживает когерентность памяти согласно выбранной модели.
Главная трудность заключается в том, что данные в двух различных кэш-устройствах должны быть согласованными. Это означает, что каждый запрос к определенному адресу в памяти должен всегда предоставлять наиболее поздние данные, относящиеся к этому адресу. Поэтому наиболее часто проблема согласованности памяти возникает в многопроцессорных системах. Для поддержки согласованности кэш-памяти на аппаратном уровне был разработан протокол 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 лет моих рыночных исследований сводились к попыткам вычислить, когда этот... ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между... Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:
|