Разделение и распределение памяти
Одной из отличительных особенностей многопроцессорной вычислительной системы является сеть обмена, с помощью которой процессоры соединяются с памятью.
Рассмотрим структурную организацию однородных одноуровневых микропроцессорных систем, архитектура которых определяется организацией связи процессоров с оперативной памятью данных и организацией межпроцессорного обмена.
По способу организации связи процессоров с оперативной памятью данных все системы относятся к одному из трех типов: с общей (равнодоступной), индивидуальной (раздельной), индивидуальной основной и общей вспомогательной оперативной памятью данных.
Многопроцессорные системы с общей модульной оперативной памятью данных эффективны при решении такого класса задач, данные в которых могут быть размещены в различных модулях общей оперативной памяти. Тогда процессоры системы смогут работать с этими модулями с малыми взаимными помехами.
Система обладает наибольшей универсальностью, если информация, хранимая в любом модуле памяти, доступна любому процессору и устройству ввода-вывода. Эта универсальность достигается за счет аппаратурных затрат на организацию коммутации между любыми модулями памяти, процессорами и устройствами ввода-вывода. Затраты на такой матричный коммутатор растут пропорционально произведению числа модулей памяти на число процессоров и устройств ввода-вывода.
Структурная схема многопроцессорной системы с общей модульной памятью и матричным коммутатором приведена на рис. 18.
Рис. 18. Многопроцессорная система с матричной архитектурой
Каждый из процессоров П1,...,Пmимеет доступ к любому модулю оперативной памяти ОЗУ1,...,ОЗУn. Последние работают параллельно и допускают n одновременных обращений со стороны процессоров или устройств ввода-вывода. При обращении нескольких процессоров или устройств ввода-вывода к одному и тому же модулю памяти возникает конфликтная ситуация и коммутатор обслуживает первым устройство с наивысшим приоритетом.
Многопроцессорные системы с индивидуальной (раздельной) памятью данных эффективны для решения класса задач, где имеются четко разделимые подмножества данных, размещаемых в соответствующих модулях памяти. Структурная схема многопроцессорной системы с индивидуальной памятью приведена на рис. 19.
Рис. 19. Многопроцессорная система с индивидуальной памятью
Каждый процессор П1,...,Пmобращается к своему модулю оперативной памяти ОЗУ1,...,ОЗУm. Однако для редкого обмена данными между процессорами предусмотрены блоки обмена БО и вспомогательная общая оперативная память ОЗУ. Операции обмена инициируются процессорами.
На рис. 20 приведена схема многопроцессорной системы с индивидуальной памятью и одномодульной общей памятью данных. Такая система особенно эффективна для многопрограммной работы с коллективным использованием большого архива базовых данных. Устройство управления памятью регулирует возможные конфликты при одновременном обращении нескольких процессоров к общей одномодульной памяти данных.
Рис. 20. Многопроцессорная система с общей памятью данных
Способы коммутации
На быстроту обмена информацией между модулями, а следовательно, и на производительность системы большое влияние оказывает способ коммутации процессоров. По способу коммутации все конкретные многопроцессорные системы относятся к одному из типов: структура с матричным коммутатором, общая магистральная структура (общая шина), матричная структура, последовательная конвейерная структура.
Многопроцессорные системы с матричным коммутатором (рис. 18) обладают наибольшей универсальностью. Широко распространены многопроцессорные системы, содержащие программируемый (универсальный) коммутатор, к которому подключаются входы и выходы всех процессоров и запоминающих устройств. В такой системе путем программирования может быть реализована практически любая из многочисленных структур многопроцессорных систем, однако она требует мощной системы коммутации, что связано со значительными аппаратными затратами.
Общая магистральная структура (рис. 21) отличается тем, что несколько процессоров подключаются к одной магистрали, которая осуществляет связь между любыми процессорами. Организация межпроцессорных связей на основе общей магистрали является одним из распространенных способов построения многопроцессорных систем. Такая система является наиболее простой, дешевой и легко наращиваемой.
Рис. 21. Магистральная многопроцессорная система
Одновременно через общую магистраль информация передается между двумя устройствами, т. е. магистраль используется подключенными к ней устройствами в режиме разделения времени. Это является причиной возникновения конфликтов, при которых несколько устройств одновременно претендуют на занятие магистрали, что вызывает простой оборудования и уменьшает производительность системы. Для повышения пропускной способности магистрали иногда создают систему с несколькими параллельными магистралями.
Многопроцессорная система с матричной структурой представлена на рис. 22. Каналы связи организованы по принципу близкодействия: жесткие связи между собой имеют только соседние процессоры, а между отдаленными процессорами каналы связи отсутствуют. Обмен информацией между ними возможен только через цепочку процессоров.
Рис. 22. Матричная многопроцессорная система
Последовательная конвейерная структура многопроцессорной системы (рис. 23) содержит цепочку последовательно соединенных процессоров, так что информация на выходе одного является входной информацией для другого. Процессоры образуют процессорный конвейер (трубопровод). На вход конвейера доставляется поток данных (операнды из памяти). Каждый процессор обрабатывает соответствующую часть задачи, передавая результаты соседнему процессору, который использует их в качестве исходных данных. Таким образом, решение задач для некоторых исходных данных развертывается последовательно в конвейерной цепочке. Это обеспечивается подведением к каждому процессору своего потока команд, т. е. имеется множественный поток команд.
Рис. 23. Конвейерная многопроцессорная система
Если трубопровод заполнен, выходной процессор (Пm) выдает результаты для последовательности входных данных через очень короткие интервалы времени, хотя действительное время прохождения задачи через конвейер может быть существенно большим.
Кроме рассмотренной классификации многопроцессорных систем, широко используется классификация по признаку одинарности или множественности потоков команд и данных. Так, в соответствии с этой классификацией рассмотренную конвейерную систему (см. рис. 23) можно отнести к системам с одинарным потоком данных и множественным потоком команд.
В матричной структуре (см. рис. 22) имеется несколько потоков данных и один общий поток команд, т. е. все процессоры выполняют одновременно одну и ту же команду, но над разными операндами, доставляемыми процессорам из памяти несколькими потоками данных (рис. 24).
Имеются структуры многопроцессорных систем, в которых существует несколько потоков данных и несколько потоков команд.
Отметим, что однопроцессорная система в соответствии с рассматриваемым признаком классификации содержит одинарный поток данных.
Рис. 24. Организация обработки данных в матричной системе