Главная страница
Навигация по странице:

  • Строгая

  • Последовательно-свободная

  • Неявная (аппаратная) когерентность

  • MESI

  • Операционные сети сущ. ОС. Обзор содержания дисциплины операционные системы Обсуждение функций и эксплуатационных требований к ос


    Скачать 356.76 Kb.
    НазваниеОбзор содержания дисциплины операционные системы Обсуждение функций и эксплуатационных требований к ос
    АнкорОперационные сети сущ
    Дата18.03.2021
    Размер356.76 Kb.
    Формат файлаdocx
    Имя файлаОС.docx
    ТипДокументы
    #186086
    страница14 из 16
    1   ...   8   9   10   11   12   13   14   15   16

    механизм управления распределением памяти и размещением данных

    (централизованный/распределенный, статический/ динамический).


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

    1. Строгая (strict): каждая операция чтения возвращает последнее записанное значение.

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

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

    4. Слабая (weak): вводит разграничение между обычным и синхронизованным доступом в память при выполнении состоятельности только для обращений к памяти в точках синхронизации различных уровней памяти. Разрешается несогласованность данных вне точек синхронизации.

    5. Свободная (release): уточняет модель слабой состоятельности и требует состоятельности только между парой операций синхронизации aquire - release. Операция acquire открывает критический интервал и обеспечивает исключительный доступ процессора к разделяемым данным. Операция release закрывает критический интервал и разрешает всем процессорам

    доступ к разделяемым данным. При этом операции синхронизации, выполняемые в разных процессорах, должны удовлетворять модели последовательной или процессорной состоятельности памяти.

    Свободная модель состоятельности памяти образует целый класс моделей. В ЭТОТ класс входят следующие модификации.

    Неторопливо-свободная (lazy release): модель свободной состоятельности, при которой модификация разделяемой памяти откладывается до момента непосредственного обращения к ней. Для данной модели характерно то, что при выполнении операции acquire передаются все предшествующие результаты команд записи, которые исполнялись до наступившего момента синхронизации.

    Нетерпеливо-свободная (eager release): модель свободной состоятельности с передачей изменений разделяемой памяти при выполнении операции release, независимо от того, когда эти изменения будут востребованы.

    Интервально-свободная (sсоре): модель свободной состоятельности с разбиением исполнения на глобальные и локальные интервалы гарантирует состоятельность разделяемых данных для всех процессоров только в конце каждого глобального интервала и для последовательности локальных интервалов внутри каждого процессора.

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

    Неявная (аппаратная) когерентность

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

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

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

    СОСРЕДОТОЧЕННАЯ ПАМЯТЬ

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

    Алгоритм MESI предполагает:

    • вычислитель имеет общую разделяемую память,

    • в каждом процессоре содержится локальная кэш-память,

    • все процессоры объединены между собой и с основной памятью посредством шины.

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

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

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

    М – строка модифицирована (доступна по чтению и записи только в данном процессоре, поскольку модифицирована командой записи по сравнению со строкой основной памяти);

    Е – строка монопольно копированная (доступна по чтению и записи в данном процессоре и в основной памяти);

    S – строка множественно копированная или разделяемая (доступна по чтению и записи в данном процессоре, основной памяти и в других процессорах, содержащих ее копию);

    I – строка, невозможная к использованию (не доступна ни по чтению, ни по записи).

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

    Для управления режимом работы механизма поддержки когерентности применяется бит WT, содержащийся в строке КЭШа. Состояние 1 бита WT задает режим сквозной записи (write-through), а состояние 0 – режим обратной записи (write-back) в кэш-память.

    Динамика состояний строки кэш-памяти, к которой выполняется доступ

    Исходное состояние

    строки

    Состояние после чтения

    Состояние после записи

    М

    M

    М

    Е

    E

    М

    S

    S

    Сквозная запись в основную память.

    Если WT=1 то Е иначе S

    I

    Если WT=1 то Е иначе S. Обновление строки путем чтения из основной

    памяти

    Сквозная запись в основную память, I

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

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

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

    Состояние М не изменяется командами чтения и записи.

    В состоянии Е чтение из строки сохраняет прежнее состояние, а запись переводит строку в состояние М.

    В состоянии S чтение из строки не изменяет ее состояние. Если установлен режим сквозной записи, то после завершения записи состояние строки меняется на Е. Если же установлен режим обратной записи, то выполняется сквозная запись в основную память, но состояние строки не изменяется.

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

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

    Изменение состояний строк под управлением сигнала INV


    Исходное состояние

    Измененное состояние

    INV=0

    INV=1

    М

    S, обратная запись строки

    I, обратная запись строки

    Е

    S

    I

    S

    S

    I

    I

    I

    I

    РАСПРЕДЕЛЕННАЯ ПАМЯТЬ

    Вычислительные системы с памятью, физически распределенной по вычислительным узлам (модулям), но имеющей единое пространство адресов (единую карту памяти), применяют различные алгоритмы реализации когерентности.

    Простейший из них заключается в том, что при каждом промахе в кэш:
    1. 1   ...   8   9   10   11   12   13   14   15   16


    написать администратору сайта