Разделение и распределение памяти

 

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

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

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

Многопроцессорные системы с общей модульной опера­тивной памятью данных эффективны при решении такого класса задач, данные в которых могут быть размещены в различных модулях общей оперативной памяти. Тогда процессоры системы смогут работать с этими модулями с малыми взаимными помехами.

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

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