Архитектура многопроцессорных ЭВМ. Системный коммутатор. Архитектуры UMA и NUMA

Проблема системной шины и Системный коммутатор

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

Решением проблемы ожидания является Crossbar коммутатор — полносвязная матрица соединений, где каждый связан с каждым. Она позволяет нескольким процессорам параллельно и бесконфликтно обращаться к разным независимым банкам памяти, убирая простои системы.

Архитектура UMA (Uniform Memory Access)

Архитектура с однородным доступом к памяти:

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

При добавлении большого количества ядер коммутатор перегружается запросами, и общая производительность падает, так что UMA используется только для систем с небольшим числом процессоров

Архитектура NUMA (Non-Uniform Memory Access)

Архитектура с неоднородным доступом к памяти:

  • Принцип: Физически оперативная память разделена на локальные блоки, каждый из которых привязан к своему процессору. Все узлы объединены Crossbar коммутатором в единое адресное пространство.
  • Особенность: Время доступа к памяти неоднородно, зато работа процессоров со “своей” памяти происходит очень быстро. Ну и логично, что обращение к памяти другого узла через коммутатор требует больше времени.

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