Смекни!
smekni.com

Основы информатики 3 2 (стр. 15 из 43)

Топологии многопроцессорных систем

Типы многопроцессорных систем различаются прежде всего подходом к организации системной шины, связывающей, как и в однопроцессорных системах, ЦП и НМС. В настоящее время наиболее распространены три варианта архитектуры многопроцессорных систем:

общая шина (shared bus);

звездообразная топология (star topology), или топология «точка—точка» (point-to-point topology);

коммутируемая топология (switch-based topology). Наиболее простая — топология общей шины.

Как следует из названия, все ЦП в системе подключаются последовательно к общей системной шине и соответственно вынуждены делить между собой ее полосу пропускания. Этим определяются как преимущества, так и недостатки этой архитектуры. Одновременно с экономией на количестве проводников и общей стоимости разработки возникает проблема пропускной способности системной шины, который столь существенен, что при большом количестве ЦП (начиная с восьми) такая топология просто неприменима, так как задержки при обращении к памяти слишком велики из-за очереди на обращение к шине. Компенсацией недостаточной пропускной способности системной шины может служить добавление значительных локальных объемов кэш-памяти к каждому ЦП. Общая шина наиболее оправданна в системах с двумя процессорами. В четырехпроцессорных системах объемы кэш-памяти каждого ЦП приходится увеличивать в 2-4 раза, что приводит к существенному росту стоимости конечной системы.

В звездообразной топологии каждый ЦП располагает выделенной системной шиной, а поэтому отсутствует необходимость в разделении доступа. Системные шины всех ЦП подключаются непосредственно к набору микросхем. Хотя такая архитектура и позволяет минимизировать зависимость производительности ЦП от пропускной способности системной шины, но налагает очень высокие требования на НМС и системную плату в целом, усложняя их проектирование и увеличивая стоимость производства. Тем не менее и этот подход не позволяет подключить большое количество ЦП — звездообразная топология применяется, как правило, в системах с двумя или четырьмя процессорами.

Довольно интересный пример звездообразной топологии — четырехпроцессорные серверы Fujitsu PRIME-POWER 450. В их основу положен принцип скоростного универсального коммутатора, работающего на тактовой частоте 220 МГц, который и выполняет все основные функции набора микросхем. К нему по выделенным 128-бит 220-МГц шинам (110 МГц с применением технологии DDR) подключаются ЦП SPARC64 V с тактовой частотой 2 ГГц и выше. Далее к нему же подключаются два контроллера оперативной памяти (DDR SDRAM 110 МГц), каждый из которых располагает своим 128-бит каналом данных, и два моста шины PCI — по 110-МГц 64-бит каналам. Эта схема обеспечивает скоростной обмен данными между всеми узлами, но добавление, например, еще четырех ЦП и двух контроллеров оперативной памяти потребует серьезной перепроектировки коммутатора.

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

Рассмотрим коммутируемую топологию на примере 16-процессорных серверов HP AlphaServer GS160. В основе архитектуры лежит так называемый Quad Building Block (QBB), содержащий четыре ЦП Alpha 21264B (EV68C) с тактовой частотой до 1,22 ГГц, до 16 Мбайт B-cache на каждый ЦП, четыре модуля регистровой SDRAM ЕСС общим объемом до 32 Гбайт, два модуля стабилизатора питания, два 64-бит 33-МГц РСI-интерфейса, собственно коммутатор и интерфейс GlobalPort для связи с другими коммутаторами.

Четыре таких QBB объединяют в двухуровневую древовидную структуру через главный коммутатор, находящийся на отдельном модуле и обеспечивающий пропускную способность между двумя отдельно взятыми QBB по 1,75 Гбайт/с в каждом направлении.

Особняком стоят системы, в которых контроллер оперативной памяти, а часто и контроллеры периферийных шин интегрированы в ядро ЦП, а поэтому необходимость в системной шине отпадает. Такие системы строятся по NUMA-архитектуре, о которой пойдет речь дальше. Их можно рассматривать как представителей коммутируемой топологии.

Доступ к памяти в многопроцессорных системах

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

классический SMP (Symmetrical Multi-Processing, симметричная многопроцессорность);

распределенный SMP (distributed SMP);

NUMA (Non-Uniform Memory Access, неоднородный доступ к памяти).

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

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

Следует понимать, что, несмотря на некоторое сходство, распределенная SMP — не частный случай коммутируемой архитектуры: в последней могут быть реализованы как SMP, так и NUMA. Например, в вычислительном комплексе Intel Profusion восемь ЦП Intel Xeon разделены на две группы по четыре ЦП и связаны коммутатором, к которому подключается НМС с контроллером оперативной памяти. Таким образом, при обращении к памяти все процессоры равноправны и Intel Profusion представляет собой классическую SMP-систему. А вот описанный выше сервер HP AlphaServer GS160 спроектирован по принципу распределенной многопроцессорности.

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

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

16. Устройство памяти. Устройства образующие оперативную память

Основная память. Главным устройством памяти для компьютеров второго поколения и для многих больших компьютеров третьего поколения был магнитный сердечник – крохотное колечко магнитного материала размером с бусинку. С помощью тонких проводов, прошивающих колечки в вертикальном и горизонтальном направлениях, из этих сердечников вяжется сетка внутри компьютера. Каждый сердечник хранит магнитный заряд. Направление магнитного потока определяет состояние 1 или 0. Запоминающее устройство на сердечниках было изобретено в 1948 Э.Уонгом и широко использовалось в 1950–1960-х годах.

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

Важным дополнением к микропроцессору является память на интегральных схемах. Существуют два основных класса этой памяти: оперативное запоминающее устройство с произвольной выборкой (ОЗУ) и постоянное запоминающее устройство (ПЗУ).

ОЗУ работают быстро: микропроцессор может получать доступ к ним за 10–20 нс. Обычные коммерческие модули ОЗУ хранят до 256 Мб (1 Мб равен 1 048 576 байт). ОЗУ надежны и работают годами, выполняя миллиарды операций. ОЗУ помнят только то, что вы сообщили им в последний раз; все остальное стирается. ОЗУ потребляют довольно мало энергии, если сравнивать их с другими интегральными схемами примерно тех же размеров и плотности упаковки. Некоторые ОЗУ расходуют так мало энергии, что достаточно маленькой батарейки, чтобы активизировать или хотя бы поддерживать их память после отключения основного источника энергии. Эти ОЗУ часто используются в небольших портативных компьютерах и калькуляторах.