Реферат: Механизм когерентности обобщенного кольцевого гиперкуба с непосредственными связями

1. Изучить механизмы поддержания когерентности.

2. Рассмотреть КС типа обобщенный кольцевой гиперкуб.

3. Составить алгоритм механизма когерентности КС типа обобщенный кольцевой гиперкуб с непосредственными связями.

1. Общая часть

1.1. Механизмы поддержания когерентности

Механизмы реализации когерентности могут быть как явными, так и неявными для прикладного программиста.

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

Явное размещение данных ; явное указание доступа к данным. Програм­мист явно задает действия по поддержке когерентности памяти посред­ством передачи данных, программируемой с использованием специаль­ных команд "послать" (send) и "принять" (receive). Каждый процессор имеет свое собственное адресное пространство (память ВС распределе­на), а согласованность элементов данных выполняется путем установле­ния соответствия между областью памяти, предназначенной для пере­дачи командой send, и областью памяти, предназначенной для приема данных командой receive, в другом блоке памяти.

Неявное размещение данных; неявное указание доступа к данным. В ВС с разделяемой памятью механизм реализации когерентности прозрачен для прикладного программиста, и в программах отсутствуют какие-либо дру­гие команды обращения к памяти, кроме команд "чтение" (load) и "за­пись" (store). Используется единое физическое пространство или виртуальный адрес­. Архитектура ВС с разделяемой памятью имеет много привлекательных черт:

• однородность адресного пространства памяти, позволяющая при создании приложений не учитывать временные соотношения между об­ращениями к разным блокам иерархической памяти;

• создание приложений в привычных программных средах;

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

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

Явное размещение данных с указанием разделяемых модулями страниц; неявное указание доступа к данным посредством команд load, store.

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

После установления во всех компьютерах отображения страниц па­мяти, доступ к удаленным памятям выполняется посредством обычных команд чтения (load) и записи (store) как к обычным страницам вирту­альной памяти без обращений к операционной системе или библиоте­кам времени исполнения.

1.2. Механизмы неявной реализации когерентности

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

Реализация механизма когерентности в ВС с разделяемой памятью требует аппаратурно-временных затрат. Причем уменьшить временную составляющую затрат можно за счет увеличения аппаратурной состав­ляющей и наоборот. Уменьшение временной составляющей требует соз­дания специализированной аппаратуры реализации когерентности. Умень­шение аппаратурной составляющей предусматривает некоторый мини­мум аппаратных средств, на которых осуществляется программная реа­лизация механизма когерентности.

1.2.1. Однопроцессорный подход

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

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

Типовая современная иерархия памятей для однопроцессорных ВС имеет следующую структуру:

• регистры 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. Сосредоточенная память

К-во Просмотров: 165
Бесплатно скачать Реферат: Механизм когерентности обобщенного кольцевого гиперкуба с непосредственными связями