Механизм когерентности обобщенного кольцевого гиперкуба

Страница: 3/6

• регистры 64 - 256 слов со временем доступа 1 такт процессора;

• кэш 1 уровня — 8к слов с временем доступа 1—2 такта;

• кэш 2 уровня — 256к слов с временем доступа 3—5 тактов;

• основная память - до 4 Гигаслов с временем доступа 12-55 тактов. Кэш имеет совокупность строк (cache-lines), каждая из которых со­стоит из фиксированного количества адресуемых единиц памяти (бай­тов, слов) с последовательными адресами. Типичный размер строки:

16, 32, 64, 128, 256 байтов.

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

Это, так называемые, кэш-память с прямым отображением (direct-mapped ,cache), частично ассоциативная кэш-память (set-associative cache) и ас­социативная кэш-память (fully associative cache).

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

1.2.2. Многопроцессорный подход

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

1.2.2.1. Сосредоточенная память

Рассмотрим реализацию одного из алгоритмов поддержки когерент­ности кэшей, известного как MESI (Modified, Exclusive, Shared, Invalid) [б]. Алгоритм MES1 представляет собой организацию когерентности кэш­памяти с обратной записью. Этот алгоритм предотвращает лишние пере­дачи данных между кэш-памятью и основной памятью. Так, если данные в кэш-памяти не изменялись, то незачем их пересылать. Зададим некоторые начальные условия и введем определения. Итак, каждый ВМ имеет собственную локальную кэш-память, имеется общая разделяемая основная память, все ВМ подсоединены к основной памя­ти посредством шины. К шине подключены также внешние устройства. Важно понимать, что все действия с использованием транзакций шины, производимые ВМ и внешними устройствами, с копиями строк, как в каждой кэш-памяти, так и в основной памяти, доступны для отслежи­вания всем ВМ. Это является следствием того, что в каждый момент на шине передает только один, а воспринимают все, подключенные к шине абоненты. Поэтому, если для объединения ВМ используется не шина, а другой тип коммутационной среды, то для работоспособности алгорит­ма MES1 необходимо обеспечение вышеуказанного порядка выполне­ния транзакций. Каждая строка кэш-памяти ВМ может находиться в одном из сле­дующих состояний:

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

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

S - строка множественно копированная или разделяемая (доступна по чтению и записи в этом ВМ, в основной памяти и в кэш-памятях других ВМ, в которых содержится ее копия);

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

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

Реферат опубликован: 9/03/2006