Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
370313.rtf
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
23.78 Mб
Скачать

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

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

классический 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. Однако они предъявляют некоторые специфические требования к ОС, которая должна оптимизировать загрузку процессоров таким образом, чтобы процесс, выполняемый на одном ЦП, как можно реже использовал информацию, находящуюся в локальной оперативной памяти другого ЦП