Архитектуры многопроцессорных систем

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

Существует три основные архитектуры многопроцессорных систем: многопроцессорные, магистральные и матричные архитектуры

Архитектура простых многопроцессорных систем выполняется по схеме с общей шиной. Два или более процессоров и один или несколько модулей памяти размещены на общей шине. Каждый процессор, для обмена с памятью, проверяет, свободна ли шина, и, если она свободна, он занимает ее. Если шина занята, процессор ждет, пока она освободится. При увеличении числа процессоров производительность системы будет ограничена пропускной способностью шины. Чтобы решить эту проблему, каждый процессор снабжается собственной локальной памятью (рис. 1(а)), куда помещаются тексты исполняемых программ и локальные переменные, обрабатываемые данным процессором. Общее запоминающее устройство используется для хранения общих переменных и общего системного программного обеспечения. Таким образом, нагрузка на общую шину значительно снижается.

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

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

Магистральная архитектура многопроцессорных систем является самой распространенной при построении высокопроизводительных вычислительных систем. Процессор такой системы имеет несколько функциональных обрабатывающих устройств, выполняющих арифметические и логические операции, и быструю регистровую память для хранения обрабатываемых данных. Данные, считанные из памяти, размещаются в регистрах и из них загружаются в обрабатывающие устройства. Результаты вычислений помещаются в регистры и используются как исходные данные для дальнейших вычислений. Таким образом, получается конвейер преобразования данных: регистры - обрабатывающие устройства - регистры - ... Архитектура магистрального суперкомпьютера приведена на рис. 1(в). Число функциональных устройств здесь равно шести ("Сложение", "Умножение" и т.д.), однако в реальных системах их количество может быть иным. Устройство планирования последовательности выполнения команд распределяет данные, хранящиеся в регистрах, на функциональные устройства и производит запись результатов снова в регистры. Конечные результаты вычислений записываются в общее запоминающее устройство.

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

Инструменты