Главная страница  |  Описание сайта  |  Контакты
ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА
ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА

ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА

Патент Российской Федерации
Суть изобретения: Изобретение относится к вычислительной технике и может быть использовано при построении систем широкого назначения на базе множества микропроцессоров. В предлагаемой вычислительной системе достигается повышение производительности и расширение функциональных возможностей. Это обеспечивается, во-первых, за счет увеличения одновременно работающих микропроцессоров, реализующих распределенную обработку информации, и, во-вторых, в результате автоматической организации их гибкого взаимодействия, обеспечивающего распараллельное выполнение операций. Для этого вычислительная система содержит M вычислительных блоков, каждый из которых содержит M микропроцессорных модулей, M модулей локальной памяти и контроллер ввода-вывода, а также управляющий процессор, главный коммутатор и M модулей общей памяти. 1 з. п. ф-лы, 5 табл. 15 ил.
Поиск по сайту

1. С помощью поисковых систем

   С помощью Google:    

2. Экспресс-поиск по номеру патента


введите номер патента (7 цифр)

3. По номеру патента и году публикации

2000000 ... 2099999   (1994-1997 гг.)

2100000 ... 2199999   (1997-2003 гг.)
Номер патента: 2042193
Класс(ы) патента: G06F15/16
Номер заявки: 5014271/24
Дата подачи заявки: 08.10.1991
Дата публикации: 20.08.1995
Заявитель(и): Институт кибернетики им.В.М.Глушкова АН Украины (UA)
Автор(ы): Булавенко Олег Николаевич[UA]; Коваль Валерий Николаевич[UA]; Палагин Александр Васильевич[UA]; Рабинович Зиновий Львович[UA]; Авербух Анатолий Базильевич[UA]; Балабанов Александр Степанович[UA]; Дидык Петр Иванович[UA]; Любарский Валерий Федорович[UA]; Мушка Вера Михайловна[UA]
Патентообладатель(и): Институт кибернетики им.В.М.Глушкова АН Украины (UA)
Описание изобретения: Изобретение относится к вычислительной технике и может быть использовано при построении систем широкого назначения на базе множества микропроцессором (МП).
Известны многопроцессорные системы, построенные из нескольких традиционных процессоров с общей оперативной памятью. При этом соединение процессоров и памяти организуется через общую магистраль или через специальный коммутатор (который, в частности, может быть реализован в составе многовходовой памяти).
Число процессоров в таких системах невелико ввиду ограниченной пропускной способности магистрали или из-за высокой стоимости коммутатора при большом числе коммутируемых устройств. Другими недостатками подобных систем являются сложная организация управления ресурсами, трудности распределения задач между процессорами и необходимость специальных механизмов синхронизации процессоров. Для облегчения решения этих проблем один из процессоров временно или постоянно назначается ведущим, входит в привилегированный режим и получает доступ к системным очередям, таблицам и управляющим программам. Обычно взаимодействие между процессорами осуществляется с помощью запуска задач (подзадач) и обмена сообщениями через память.
С целью повышения степени распараллеливания задач были разработаны матричные системы (ILLIAC-4, BSP, ПС-2000) и конвейерные процессоры (CDC STAR, CRAY). Матричная система содержит множество процессорных элементов (арифметических устройств), которые жестко (покомандно) управляются из единого центрального устройства управления. Обрабатываемые данные распределены по модулям локальной памяти процесcорных элементов. Эффективное использование большого числа процессорных элементов достигается только для определенного класса задач и алгоритмов при их соответствующей подготовке.
Недостатком таких систем является интенсивный поток управляющей информации, поскольку выполнение каждой операции в процессорном элементе задается командой из центрального устройства управления. Недостатком является также интенсивные потоки данных между процессорными элементами при выполнении тех операций, которые требуют перегруппировки данных (например, при перемножении матриц). Большое число процессорных элементов при их централизованном управлении эффективно используются только в задачах определенного класса, поэтому такие системы считаются специализированными.
Для повышения эффективности подобных систем и расширения сферы их применения предлагались различные усовершенствования. Например, для упрощения функций центрального устройства управления в машине ПС-2000 в каждый процессорный элемент введено устройство адресной арифметики. Кроме того, в каждом процессорном элементе расширены функции узла активации и увеличена регистровая память. В машине М-10 с целью расширения функциональных возможностей системы при почти неизменной структуре оборудования ввели дополнительный режим управления. В этом режиме центральное устройство управления выдает процессорным элементам не единую команду, а связку команд ("векторную" команду), так что каждый процессорный элемент выполняет отдельную, предназначенную ему команду из связки. При этом соответственно усложняется оборудование сопряжения устройств.
Подобные усовершенствования хотя и придают гибкость работе системы, но не могут устранить принципиальных недостатков, связанных с полной централизацией управления и интенсивным потоком управляющей информации между центральным устройством управления и процессорными элементами. Процессорные элементы выполняют функции арифметических устройств и не способны к автономной работе по выполнению некоторых функций. Это ограничивает функциональные возможности системы.
Появление дешевых однокристальных 16- и 32-разрядных МП позволяет снизить аппаратные затраты, стоимость и габариты многопроцессорных систем. Ввиду того, что универсальные МП являются устройствами, предназначенными для автономного выполнения собственных программ, в мультимикропроцессорных системах обычно отсутствует центральное устройство управления. Взаимодействие МП осуществляется обычно через общую память с помощью механизма межпроцессорных прерываний. Для организации их совместной работы один из МП назначается ведущим. В мультимикропроцессорных системах для снижения нагрузки на общую магистраль и повышения степени параллельности следует предоставить локальный модуль памяти каждому МП.
Известна система, построенная из нескольких МП с локальной памятью, подключенных к общей памяти через общую магистраль. Причем для повышения производительности системы за счет снижения конфликтов циклы работы МП, магистрали и общей памяти согласованы таким образом, что до четырех МП могут параллельно без конфликтов работать с общей памятью. Тем не менее ввиду ограниченной пропускной способности магистрали число объединяемых МП не может превышать четырех-семи. Кроме того, ввиду отсутствия центрального устройства управления и параллельных каналов обмена информацией в этой системе невозможно организовать синхронную работу МП для параллельного выполнения трудоемких алгоритмов над большими массивами и сложными структурами данных.
Однако возможности эффективной организации совместной работы в таких системах ограничены пропускной способностью общей шины, связывающей МП с общей памятью, где размещаются их общие переменные.
Для устранения этого ограничения в других вычислительных системах, содержащих множество процессоров, работающих в так называемом режиме МКМД "множество команд множество данных", для осуществления программной синхронизации их работы применяется специальный управляющий процессор со своей управляющей памятью, отслеживающий граф последовательного исполнения фрагментов программы. Причем точками синхронизации являются точка входа в подпрограмму и точка выхода из подпрограммы. Исполнительными процессорами обработки данных являются МП, способные независимо исполнять набор инструкций. Однако управляющий процессор не обладает возможностью пошагового, синхронного управления микропроцессорными элементами, что ограничивает область применения этих систем.
Наиболее близким по технической сущности и достигаемому эффекту к изобретению является устройство, содержащее группу из N микропроцессорных модулей (МПМ) (N < 7), группу из N модулей локальной памяти (МЛП), контроллер ввода-вывода, модуль общей памяти, причем каждый МПМ соединен первой группой информационных и управляющих входов-выходов соответственно с группой информационных и управляющих входов-выходов МЛП, вторые группы информационных и управляющих входов-выходов каждого МПМ соединены с группой информационных и управляющих входов-выходов модуля общей памяти, а третья группа информационных и управляющих входов-выходов одного из N МПМ соединена с входом контроллера ввода-вывода.
Недостатками такой системы являются ограниченное (до четырех-семи) число одновременно работающих МП и ограниченные функциональные возможности ввиду неприспособленности системы для высокопараллельной обработки больших массивов и сложных структур данных.
Задача, на решение которой направлено изобретение, состоит в повышении производительности и расширении функциональных возможностей вычислительной системы за счет увеличения числа одновременно работающих на базе общей шины групп МП и организации гибкого их взаимодействия посредством специального управляющего процессора и коммутаторов при обработке больших массивов простых и сложных структур данных.
Поставленная задача достигается тем, что в вычислительную систему, содержащую первый вычислительный блок, включающий N МПМ, N МЛП и контроллер ввода-вывода, причем первая группа информационных и управляющих входов-выходов каждого МПМ соединена соответственно с группой информационных и управляющих входов-выходов каждого МЛП, вторая группа информационных и управляющих входов-выходов первого из N МПМ соединена с группой информационных и управляющих входов-выходов контроллера ввода-вывода, а третьи группы информационных и управляющих входов-выходов N МПМ являются первыми группами информационных и управляющих входов-выходов первого вычислительного блока, введены М 1 вычислительных блоков, управляющий процессор, главный коммутатор и М модулей общей памяти, каждый из которых включает N входных коммутаторов и N модулей оперативной памяти (МОП), причем четвертые группы информационных и управляющих входов-выходов N МПМ являются соответственно с второй по (N + 1)-ю группами информационных и управляющих входов-выходов каждого вычислительного блока, а пятые группы информационных и управляющих входов-выходов N МПМ являются соответственно с (N + 2)-й по (2N + 1)-ю группами информационных и управляющих входов-выходов каждого вычислительного блока, N x M групп информационных и управляющих входов-выходов управляющего процессора соединены соответственно с второй по (N + 1)-ю группами информационных и управляющих входов-выходов каждого из М вычислительных блоков, первая группа информационных и управляющих входов-выходов М вычислительных блоков соединена соответственно с первой по М-ю группами информационных и управляющих входов-выходов главного коммутатора, первая группа информационных и управляющих входов-выходов N входных коммутаторов соединена соответственно с группой информационных и управляющих входов-выходов N МОП, вторые группы информационных и управляющих входов-выходов N входных коммутаторов являются соответственно с первой по N-ю группами информационных и управляющих входов-выходов каждого модуля общей памяти, третья группа информационных и управляющих входов-выходов N входных коммутаторов является соответственно с (N + 1)-й по 2N-ю группами информационных и управляющих входов-выходов каждого модуля общей памяти, а с первой по N-ю группы информационных и управляющих входов-выходов М модулей общей памяти соединены соответственно с (N + 2)-й по (2N + 1)-ю группами информационных и управляющих входов-выходов М вычислительных блоков и с (N + 1)-й по 2N-ю группы информационных и управляющих входов-входов М модулей общей памяти соединены соответственно с (М + 1)-й по N(M + 1)-ю группами информационных и управляющих входов-выходов главного коммутатора, информационный вход-выход управляющего процессора образует информационный вход-выход вычислительной системы.
Управляющий процессор содержит блок конвейерных регистров команд и данных, блок дешифрации команд, блок микропрограммного управления, блок буферных регистров микрокоманд, блок конвейерных регистров памяти микрокоманд, модуль памяти микрокоманд, дешифратор выбора конвейерных регистров, мультиплексор сигналов условий, дешифратор выбора регистров связи, буферный регистр операнда, арифметико-логическое устройство (АЛУ), блок модификации адреса памяти команд и данных, блок сравнения, блок буферных регистров связи, буферный регистр данных, межбуферный регистр связи, буферный регистр адреса, блок обработки прерываний, блок выдачи сигналов синхронизации, МЛП команд и данных, контроллер оперативной памяти, буферный регистр связи, синхронизатор, причем первая группа разрядов информационного выхода блока конвейерных регистров памяти микрокоманд соединена с группой информационных входов блока буферных регистров микрокоманд, вторая группа разрядов с группой входов дешифратора выбора регистров связи, третья группа разрядов с группой управляющих входов блока буферных регистров связи, четвертая группа разрядов с первой группой входов блока сравнения, пятая группа разрядов с первой группой информационных входов мультиплексора сигналов условий, шестая группа разрядов с первой группой входов блока модификации адреса памяти команд и данных, седьмая группа разрядов с первой группой информационных входов АЛУ, восьмая группа разрядов с первой группой входов блока микропрограммного управления, девятая группа разрядов с группой информационных входов блока конвейерных регистров команд и данных, десятая группа разрядов с первой группой входов блока дешифрации команд, одиннадцатая группа разрядов с группой входов дешифратора выбора конвейерных регистров, двенадцатая группа разрядов с первой группой информационных входов буферного регистра операндов, тринадцатая группа разрядов с первой группой входов блока обработки прерываний, четырнадцатая группа разрядов с первой группой информационных входов буферного регистра адреса, пятнадцатая группа разрядов с первой группой входов контроллера оперативной памяти, шестнадцатая группа разрядов с первой группой информационных входов буферного регистра данных, семнадцатая группа разрядов с первой группой информационных входов буферного регистра связи, восемнадцатая группа разрядов с первой группой входов блока выдачи сигналов синхронизации, девятнадцатая группа разрядов с управляющим входом межбуферного регистра связи, первая и вторая группы выходов блока конвейерных регистров команд и данных соединены соответственно с второй группой входов блока дешифрации команд и второй группой информационных входов АЛУ, первая группа информационных входов-выходов блока конвейерных регистров команд и данных соединена с второй группой информационных входов буферного регистра операнда, второй группой информационных входов-выходов буферного регистра данных, первой группой информационных входов-выходов МЛП команд и данных, второй группой входов контроллера оперативной памяти, второй группой информационных входов-выходов буферного регистра связи и группой информационных входов модуля памяти микрокоманд, вторая группа информационных входов-выходов блока конвейерных регистров команд и данных соединена с третьей группой информационных входов АЛУ, первой группой информационных входов-выходов блока буферного регистра связи, с второй группой входов блока модификации адреса памяти команд и данных, второй группой входов блока выдачи сигналов синхронизации и четвертой группой входов блока сравнения, выход дешифратора выбора конвейерных регистров соединен с группой управляющих входов блока конвейерных регистров команд и данных, первая и вторая группы управляющих выходов блока микропрограммного управления соединены соответственно с первой группой управляющих входов блока дешифрации команд и группой управляющих входов блока буферных регистров микрокоманд, третья группа выходов блока микропрограммного управления соединена с группой управляющих входов модуля памяти микрокоманд, группа выходов блока дешифрации команд, группа выходов блока буферных регистров микрокоманд и первая группа выходов блока сравнения образуют вторую группу входов блока микропрограммного управления, выход модуля памяти микрокоманд соединен с информационным входом блока конвейерных регистров памяти микрокоманд, управляющий выход мультиплексора сигналов условий соединен с входом сигналов условий блока микропрограммного управления, выход дешифратора выбора регистров связи соединен с второй группой управляющих входов блока буферных регистров связи, группа выходов буферного регистра операнда соединена с четвертой группой информационных входов АЛУ, управляющий выход АЛУ и управляющий выход блока обработки прерываний соединены соответстенно с вторым и третьим управляющими входами мультиплексора сигналов условий, группа информационных входов-выходов АЛУ соединена с первой группой информационных входов-выходов межбуферного регистра связи и группой информационных входов-выходов буферного регистра данных, вторая группа входов-выходов блока модификации адреса памяти команд и данных соединена с вторыми группами информационных входов-выходов межбуферного регистра связи, буферного регистра адреса, блока обработки прерываний, выход группы буферного регистра адреса соединен с третьей группой входов контроллера оперативной памяти, выход которого соединен с управляющим входом МЛП команд и данных, первая группа выходов блока обработки прерываний соединена с третьей группой входов блока сравнения, первая группа выходов блока выдачи сигналов синхронизации соединена с второй группой входов блока сравнения, выход синхронизатора соединен с синзронизирующими входами блока конвейерных регистров команд и данных, блока дешифрации команд, блока микропрограммного управления, блока буферных регистров микрокоманд, блока конвейерных регистров памяти микрокоманд, дешифратора выбора конвейерных регистров, буферного регистра операнда, АЛУ, блока модификации адреса памяти команд и данных, блока сравнения, блока буферных регистров связи, буферного регистра данных, межбуферного регистра связи, буферного регистра адреса, блока обработки прерываний, блока выдачи сигналов синхронизации, буферного регистра связи, третья группа информационных входов-выходов буферного регистра связи является внешней магистралью данных управляющего процессора, с второй по (1 + + М * N)-ю группы информационных входов-выходов блока буферных регистров связи, с второго по (1 + MN)-й управляющие выходы блока выдачи сигналов синхронизации и с второго по (1 + MN)-й управляющие входы блока обработки прерываний образуют соответственно группы информационных и управляющих входов-выходов управляющего процессора, управляющие разряды групп информационных и управляющих входов-выходов управляющего процессора объединены через элемент МОНТАЖНОЕ ИЛИ с входом синхронизатора, второй выход дешифратора выбора регистров связи соединен с вторым входом синхронизатора.
МПМ содержит второй буферный регистр адреса, второй буферный регистр данных, вторую и третью защелки, контроллер резидентной шины, контроллер однопользовательской шины, четвертую и пятую группы информационных и управляющих входов-выходов, причем группа адресных выходов МП соединена с информационным входом второго буферного регистра адреса, разряды группы разрешения адреса выходов блока декодирования и управления соединены соответственно с входом контроллера резидентной шины и входом контроллера однопользовательской шины, первый разряд группы управляющих выходов контроллера резидентной шины соединен с управляющим входом второго буферного регистра адреса, второй разряд с управляющим входом второго буферного регистра данных, информационные выходы второго буферного регистра данных соединены с информационным входом второй защелки, а информационный выход последней соединен с информационными входами-выходами данных МП, которые подключены к информационным входам второго буферного регистра данных, информационные выходы третьей защелки соединены с информационными входами-выходами данных МП, информационные выходы данных МП, а также управляющий вход-выход контроллера однопользовательской шины, информационный вход третьей защелки образуют четвертую группу информационных и управляющих входов-выходов МПМ, выход второго буферного регистра адреса, информационный вход-выход второго буферного регистра данных и третий разряд группы управляющих выходов контроллера резидентной шины образуют пятую группу информационных и управляющих входов-выходов МПМ.
Входной коммутатор содержит схему сравнения, элемент И-ИЛИ, первый, второй, третий и четвертый элементы И, первый, второй, третий и четвертый блоки магистральных элементов, первую, вторую и третью группы информационных и управляющих входов-выходов. Первая группа информационных и управляющих входов-выходов входного коммутатора образуется группами выходов первого и четвертого блоков магистральных элементов и информационных входов второго и третьего блоков магистральных элементов. Вторая группа информационных и управляющих входов-выходов входного коммутатора образуется группами информационных входов первого блока магистральных элементов и выходов второго блока магистральных элементов, а управляющие входы соединены соответственно с первыми входами первого и второго элементов И. Третья группа информационных и управляющих входов-выходов входного коммутатора образуется группами информационных входов четвертого блока магистральных элементов и выходов третьего блока магистральных элементов, а управляющие входы соединены соответственно с первыми входами третьего и четвертого элементов И. Разряд запроса второй группы информационных и управляющих входов-выходов и разряд запроса третьей группы информационных и управляющих входов-выходов соединены соответственно с первыми и вторыми входами схемы сравнения и первой группы И элемента И-ИЛИ. Первый и второй выходы схемы сравнения соединены соответственно с третьим входом первой группы И элемента И-ИЛИ и входом второй группы И элемента И-ИЛИ. Выход элемента И-ИЛИ соединен с вторыми входами первого и второго элементов И. Выход первого элемента И и выход второго элемента И соединены соответственно с управляющим входом первого и второго блоков магистральных элементов. Третий выход схемы сравнения соединен с вторыми входами третьего и четвертого элементов И, а выходы последних соединены соответственно с управляющим входом третьего и четвертого блоков магистральных элементов.
Главный коммутатор содержит М блоков коммутации, с первой по М-ю группы информационных и управляющих входов-выходов, с (М + 1)-й по N(M + 1)-ю группы информационных и управляющих входов-выходов.
С первой по М-ю группы информационных и управляющих входов-выходов главного коммутатора соединены соответственно с первой по М-ю группами информационных и управляющих входов-выходов М блоков коммутации. С (М + 1)-й по (N + M)-ю группы информационных и управляющих входов-выходов главного коммутатора соединены соответственно с (М + 1)-й по (N + M)-ю группами информационных и управляющих входов-выходов первого блока коммутации. С (N + M + 1)-й по (N + M + 4)-ю группы информационных и управляющих входов-выходов главного коммутатора соединены соответственно с (М + 1)-й по (N + M)-ю группами информационных и управляющих входов-выходов второго блока коммутации. С (N * M + 1)-й по N(M + 1)-ю группы информационных и управляющих входов-выходов главного коммутатора соединены соответственно с (М + 1)-й по (N + M)-ю группами информационных и управляющих входов-выходов М-го блока коммутации. Вторая группа разрядов и нулевой разряд управляющего выхода первого блока коммутации соединены с второй группой управляющего входа второго блока коммутации, третья группа разрядов и нулевой разряд с М-й группой управляющего входа третьего блока коммутации, М-я группа разрядов и нулевой разряд с первой группой управляющего входа М-го блока коммутации. Первая группа разрядов и нулевой разряд управляющего выхода второго блока коммутации соединены с первой группой управляющего входа первого блока коммутации, третья группа разрядов и нулевой разряд с второй группой управляющего входа третьего блока коммутации, М-я группа разрядов и нулевой разряд М-й группой управляющего входа М-го блока коммутации. Первая группа разрядов и нулевой разряд управляющего выхода третьего блока коммутации соединены с М-й группой управляющего входа первого блока коммутации, вторая группа разрядов и нулевой разряд с первой группой управляющего входа второго блока коммутации, М-я группа разрядов и нулевой разряд с второй группой управляющего входа М-го блока коммутации. Первая группа разрядов и нулевой разряд управляющего выхода М-го блока коммутации соединены с второй группой управляющего входа первого блока коммутации, вторая группа разрядов и нулевой разряд с М-й группой управляющего входа второго блока коммутации, третья группа разрядов и нулевой разряд с первой группой управляющего входа третьего блока коммутации.
Повышение производительности вычислительной системы достигается путем увеличения числа параллельно функционирующих вычислительных модулей, объединенных главным коммутатором, и организации параллельной работы модулей общей памяти с МПМ с помощью управляющего процессора, введением в последний параллельно функционирующих АЛУ, модификации адреса команд и микрокоманд, обработки прерываний, а также организации конвейерного режима исполнения как обычных, так и векторно-матричных операций.
Расширение функциональных возможностей вычислительной системы достигается путем увеличения возможного числа путей обмена информацией между модулями общей оперативной памяти и МПМ, синхронизации во времени передаваемых данных при переключении таких путей с помощью МПМ и управляющего процессора, путем введения микропрограммной памяти с перезаписью и организации аппаратной поддержки реализации структур внутреннего языка высокого уровня в управляющем процессоре.
На фиг. 1 представлена функциональная схема предлагаемой вычислительной системы; на фиг. 2 функциональная схема управляющего процессора; на фиг. 3 блока конвейерных регистров команд и данных; на фиг. 4 блока дешифрации команд; на фиг. 5 блока сравнения; на фиг. 6 блока буферных регистров связи; на фиг. 7 блока выдачи сигналов синхронизации; на фиг. 8 функциональная схема МПМ; на фиг. 9 функциональная схема входного коммутатора; на фиг. 10 функциональная схема главного коммутатора; на фиг. 11 функциональная схема первого блока коммутации; на фиг. 12 второго узла выбора модуля памяти; на фиг. 13 показаны пути передачи информации.
Вычислительная система (фиг. 1) содержит вычислительные блоки 1.1-1.М, включающие МПМ 2.1-2.N, МЛП 3.1-3.N и контроллер 4 ввода-вывода, управляющий процессор 5, модули 6.1-6.М общей памяти, каждый из которых включает входные коммутаторы 7.1-7. N, МОП 8.1-8. N, и главный коммутатор 9. Первые группы 10.1-10.N информационных и управляющих входов-выходов каждого из МПМ 2.1-2.N соединены соответственно с группой информационных и управляющих входов-выходов каждого из МЛП 3.1-3.N. Вторая группа 11.1 информационных и управляющих входов-выходов первого 2.1 из N МПМ в каждом вычислительном блоке 1.1-1.М соединена с группой информационных и управляющих входов-выходов контроллера 4 ввода-вывода. Третьи группы 12.1-12.N информационных и управляющих входов-выходов МПМ 2.1-2.N являются первыми группами 15.1-15.М информационных и управляющих входов-выходов вычислительных блоков 1.1-1.М. Четвертые группы 13.1-13. N информационных и управляющих входов-выходов МПМ 2.1-2.N являются соответственно с второй 16.1.М по (N + 1)-ю 16.N.M группами информационных и управляющих входов-выходов каждого из вычислительных блоков 1.1-1.М. Пятые группы 14.1-14. N информационных и управляющих входов-выходов МПМ 2.1-2.N являются соответственно с (N + 2)-й 17.1.М по (2N + 1)-ю 17.N.M группами информационных и управляющих входов-выходов каждого из вычислительных блоков 1.1-1. М. С второй 16.1.М по (N + 1)-ю 16.N.M группы информационных и управляющих входов-выходов вычислительных блоков 1.1-1.М соединены соответственно с M * N группами информационных и управляющих входов-выходов управляющего процессора 5. Первая группа 15.1 информационных и управляющих входов-выходов каждого из вычислительных блоков 1.1-1.М соединена соответственно с первой 15.1 по М-ю 15.М группами информационных и управляющих входов-выходов главного коммутатора 9. Первая группа 18.1 информационных и управляющих входов-выходов входных коммутаторов 7.1-7.N в каждом модуле 6.1-6.М общей памяти соединена соответственной с группой информационных и управляющих входов-выходов МОП 8.1-8.N. Вторые группы 19.1-19.N информационных и управляющих входов-выходов входных коммутаторов 7.1-7.N являются соответственно с первой 17.1. М по N-ю 17.N.M группами информационных и управляющих входов-выходов каждого модуля 6.1-6.М общей памяти. Третьи группы 20.1-20.N информационных и управляющих входов-выходов входных коммутаторов 7.1-7.N являются соответственно с (N + 1)-й 21.1.М по 2N-ю 21.N.M группами информационных и управляющих входов-выходов каждого модуля общей памяти. С (N + 2)-й 17.1.М по (2N + 1)-ю 17. N. M группы информационных и управляющих входов-выходов вычислительных блоков 1.1-1.М соединены соответственно с первой 17.1.M по N-ю 17.N. M группами информационных и управляющих входов-выходов модулей 6.1-6.М общей памяти. С (N + 1)-й 21.1.М по 2N-ю 21.N.M группы информационных и управляющих входов-выходов модулей 6.1-6.М общей памяти соединены соответственно с (М + 1)-й 21.1.М по N(M + 1)-ю 21.N.M группами информационных и управляющих входов-выходов главного коммутатора 9. Информационный вход-выход 22 управляющего процессора 5 образует информационный вход-выход вычислительной системы.
Управляющий процессор 5 (фиг. 2) содержит блок 23 конвейерных регистров команд и данных, блок 24 дешифрации команд, блок 25 микропрограммного управления, блок 26 буферных регистров микрокоманд, блок 27 конвейерных регистров памяти микрокоманд, модуль 28 памяти микрокоманд, дешифратор 29 выбора конвейерных регистров, мультиплексор 30 сигналов условий, дешифратор 31 выбора регистров связи, буферный регистр 32, АЛУ 33, блок 34 модицикации адреса памяти команд и данных, блок 35 сравнения, блок 36 буферных регистров связи, буферный регистр 37 данных, межбуферный регистр 38 связи, буферный регистр 39 адреса, блок 40 обработки прерываний, блок 41 выдачи сигналов синхронизации, МЛП 42 команд и данных, контроллер 43 оперативной памяти, буферный регистр 44 связи, синхронизатор 45.
Первая группа разрядов информационного выхода блока 27 конвейерных регистров памяти микрокоманд соединена с группой информационных входов блока 26 буферных регистров микрокоманд, вторая группа разрядов с группой входов дешифратора 31 выбора регистров связи, третья группа разрядов с группой 46 управляющих входов блока 36 буферных регистров связи, четвертая группа разрядов с первой группой 47 входов блока 35 сравнения, пятая группа разрядов с первой группой 48 информационных входов мультиплексора 30 сигналов условий, шестая группа разрядов с первой группой 49 входов блока 34 модификации адреса памяти команд и данных, седьмая группа разрядов с первой группой 50 информационных входов АЛУ 33, восьмая группа разрядов с первой группой 51 входов блока 25 микропрограммного управления, девятая группа разрядов с группой 52 информационных входов блока 23 конвейерных регистров команд и данных, десятая группа разрядов с группой 53 входов блока 24 дешифрации команд, одиннадцатая группа разрядов с группой входов дешифратора 29 выбора конвейерных регистров, двенадцатая группа разрядов с первой группой 54 информационных входов буферного регистра 32 операндов, тринадцатая группа разрядов с первой группой 55 входов блока 40 обработки прерываний, четырнадцатая группа разрядов с первой группой 56 информационных входов буферного регистра 39 адреса, пятнадцатая группа разрядов с первой группой 57 входов контроллера 43 оперативной памяти, шестнадцатая группа разрядов с первой группой 58 информационных входов буферного регистра 37 данных, семнадцатая группа разрядов с первой группой 59 информационных входов буферного регистра 44 связи, восемнадцатая группа разрядов с первой группой 60 входов блока 41 выдачи сигналов синхронизации, девятнадцатая группа разрядов с управляющим входом межбуферного регистра 38 связи. Первая 61 и вторая 62 группы выходов блока 23 конвейерных регистров команд и данных соединены соответственно с второй группой 61 входов блока 24 дешифрации команд и второй группой 62 информационных входов АЛУ 33. Первая группа 63 информационных входов-выходов блока 23 конвейерных регистров команд и данных соединена с второй группой 63 информационных входов буферного регистра 32 операндов, второй группой 63 информационных входов-выходов буферного регистра 37 данных, первой группой 63 информационных входов-выходов МЛП 42 команд и данных, второй группой 63 входов контроллера 43 оперативной памяти, второй группой 63 информационных входов-выходов буферного регистра 44 связи и группой 63 информационных входов модуля 28 памяти микрокоманд. Вторая группа 64 информационных входов-выходов блока 23 конвейерных регистров команд и данных соединена с третьей группой 64 информационных входов АЛУ 33, первой группой 64 информационных входов-выходов блока 36 буферных регистров связи, с второй группой 64 входов блока 34 модификации адреса памяти команд и данных, второй группой 64 входов блока 41 выдачи сигналов синхронизации и четвертой группой 64 входов блока 35 сравнения. Выход дешифратора 29 выбора конвейерных регистров соединен с группой 65 управляющих входов блока 23 конвейерных регистров команд и данных. Первая 66 и вторая 67 группы управляющих выходов блока 25 микропрограммного управления соединены соответственно с первой группой 66 управляющих входов блока 24 дешифрации команд и группой 67 управляющих входов блока 26 буферных регистров микрокоманд, третья группа 68 выходов блока 25 микропрограммного управления соединена с группой 68 управляющих входов модуля 28 памяти микрокоманд. Группа 69 выходов блока 24 дешифрации команд, группа 70 выходов блока 26 буферных регистров микрокоманд и первая группа 71 выходов блока 35 сравнения образуют вторую группу 72 входов блока 25 микропрограммного управления. Выход модуля 28 памяти микрокоманд соединен с информационным входом блока 27 конвейерных регистров памяти микрокоманд, управляющий выход мультиплексора 30 сигналов условий соединен с входом сигналов условий блока 25 микропрограммного управления, выход дешифратора 31 выбора регистров связи соединен с второй группой 73 управляющих входов блока 36 буферных регистров связи. Группа выходов буферного регистра 32 операндов соединена с четвертой группой 74 информационных входов АЛУ 33. Управляющий выход АЛУ и управляющий выход 75 блока 40 обработки прерываний соединены соответственно с вторым и третьим 75 управляющими входами мультиплексора 30 сигналов условий. Группа 76 информационных входов-выходов АЛУ 33 соединена с первой группой 76 информационных входов-выходов межбуферного регистра 38 связи и группой 76 информационных входов-выходов буферного регистра 37 данных. Вторая группа 77 входов-выходов блока 34 модификации адреса памяти команд и данных соединена с вторыми группами 77 информационных входов-выходов межбуферного регистра 38 связи, буферного регистра 39 адреса, блока 40 обработки прерываний. Выход группы буферного регистра 39 адреса соединен с третьей группой 78 входов контроллера 43 оперативной памяти, выход которого соединен с управляющим входом МЛП 42 команд и данных. Первая группа 79 выходов блока 40 обработки прерываний соединена с третьей группой 79 входов блока 35 сравнения. Первая группа 80 выходов блока 41 выдачи сигналов синхронизации соединена с второй группой 80 входов блока 35 сравнения. Выход 81 синхронизатора 45 соединен с синхронизирующими входами 81 блока 23 конвейерных регистров команд и данных, блока 24 дешифрации команд, блока 25 микропрограммного управления, блока 26 буферных регистров микрокоманд, блока 27 конвейерных регистров памяти микрокоманд, дешифратора 29 выбора конвейерных регистров, буферного регистра 32 операндов, АЛУ 33, блока 34 модификации адреса памяти команд и данных, блока 35 сравнения, блока 36 буферных регистров связи, буферного регистра 37 данных, межбуферного регистра 38 связи, буферного регистра 39 адреса, блока 40 обработки прерываний, блока 41 выдачи сигналов синхронизации, буферного регистра 44 связи. Третья группа 22 информационных входов-выходов буферного регистра 44 связи является внешней магистралью 22 данных управляющего процессора 5. С второй 82.1 по (1 + MN)-ю 82.MN группы информационных входов-выходов блока 36 буферных регистров связи, с второго 83.1 по (1 + MN)-й 83. MN управляющие выходы блока 41 выдачи сигналов синхронизации и с второго 84.1 по (1 + MN)-й 84.MN управляющие входы блока 40 обработки прерываний образуют соответственно группы 16.1-16.MN информационных и управляющих входов-выходов управляющего процессора 5. Управляющие разряды групп 16.1М-16.MN информационных и управляющих входов-выходов управляющего процессора 5 объединены через элемент МОНТАЖНОЕ ИЛИ 85 с входом синхронизатора 45. Второй выход дешифратора 31 выбора регистров связи соединен с вторым входом 86 синхронизатора 45.
Блок 23 конвейерных регистров команд и данных (фиг. 3) содержит первый буферный регистр 87, первый буферный регистр 88 микрокоманд, второй буферный регистр 89 микрокоманд, второй буферный регистр 90, буферный регистр 91 поля кода операции, тетрадный А-регистр 92, тетрадный В-регистр 93 первую 61 и вторую 62 группы выходов, первую 63 и вторую 64 группы информационных входов-выходов, группу 52 информационных входов, группу 65 управляющих входов, синхронизирующий вход 81.
Первая группа 63 информационных входов-выходов блока 23 конвейерных регистров команд и данных подключена к первому информационному входу-выходу буферного регистра 87. Вторая группа 64 информационных входов-выходов блока 23 конвейерных регистров команд и данных соединена с вторым информационным входом-выходом второго буферного регистра 90. Первая группа разрядов группы 52 информационных входов блока 23 конвейерных регистров команд и данных соединена с информационным входом первого буферного регистра 88 микрокоманд, вторая группа разрядов с информационным входом буферного регистра 89 микрокоманд, третья группа разрядов с управляющим входом первого буферного регистра 87, четвертая группа разрядов с управляющим входом второго буферного регистра 90, пятая группа разрядов с управляющим входом буферного регистра 91 поля кода операции. Группа 65 управляющих входов блока 23 конвейерных регистров команд и данных соответствующими разрядами соединена с управляющими входами первого 88, второго 89 буферных регистров микрокоманд, тетрадным А-регистром 92, тетрадным В-регистром 93. Синхронизирующий вход 81 блока 23 конвейерных регистров команд и данных подключен к синхронизирующим входам первого 87 и второго 90 буферных регистров, первого 88 и второго 89 буферных регистров микрокоманд, буферного регистра 91 поля кода операции, тетрадного А-регистра 92, тетрадного В-регистра 93. Второй информационный вход-выход первого буферного регистра 87 соединен соответствующими разрядами с первым информационным входом-выходом второго буферного регистра 90, первой группой информационных входов буферного регистра 91 поля кода операции, информационным входом тетрадного А-регистра 92 и информационным входом тетрадного В-регистра 93. Второй выход данных тетрадного А-регистра 92 соединен с второй группой информационных входов буферного регистра 91 кода операции. Второй выход данных тетрадного В-регистра 93 соединен с третьей группой информационных входов буферного регистра 91 поля кода операции. Выходы буферного регистра 91 поля кода операции образуют первую группу 61 выходов блока 23 конвейерных регистров команд и данных. Выходы первого 88 и второго 89 буферных регистров микрокоманд, выход тетрадного А-регистра 92, выход тетрадного В-регистра 93 образуют вторую группу 62 выходов блока 23 конвейерных регистров команд и данных.
Блок 24 дешифрации команд (фиг. 4) содержит буферный регистр 94 кода операции, первый 95, второй 96 и третий 97 регистры дешифрации тетрад, первую группу 53 входов, вторую группу 61 входов, первую группу 66 управляющих входов, синхронизирующий вход 81 и группу 69 выходов.
Первая группа 53 входов блока дешифрации команд соединена с управляющим входом буферного регистра 94 кода операции. Первая группа разрядов выхода буферного регистра 94 кода операции соединена с информационным входом первого регистра 95 дешифрации тетрад, вторая группа разрядов выхода с информационным входом второго регистра 96 дешифрации тетрад, третья группа разрядов выхода с информационным входом третьего регистра 97 дешифрации тетрад. Первая группа 66 управляющих входов блока 24 дешифрации команд соответствующими разрядами соединена с первым 95, вторым 96 и третьим 97 регистрами дешифрации тетрад. Синхронизирующий вход 81 блока 24 дешифрации команд соединен с синхронизирующими входами буферного регистра 94 кода операции, первым 95, вторым 96 и третьим 97 регистрами дешифрации тетрад. Выходы первого 95, второго 96 и третьего 97 регистров дешифрации тетрад образуют группу 69 выходов блока 24 дешифрации команд.
Блок 35 сравнения (фиг. 5) содержит дешифратор 98 кода вектора прерываний, схему 99 сравнения, первый 100 и второй 101 трехстабильные буферные регистры, первую 47, вторую 80, третью 79 и четвертую 64 группы входов, синхронизирующий вход 81 и первую группу 71 выходов.
Вторая группа 80 входов и четвертая группа 64 входов блока 35 сравнения соединены соответственно с группами первого и второго входов схемы 99 сравнения. Третья группа 79 входов блока 35 сравнения соединена с входом дешифратора 98 кода вектора прерываний. Группа выходов дешифратора 98 кода вектора прерываний подключена к информационному входу первого трехстабильного буферного регистра 100. Группа выходов схемы 99 сравнения подключена к информационному входу второго трехстабильного буферного регистра 101. Первая группа 47 входов блока 35 сравнения соответствующими разрядами соединена с управляющими входами схемы 99 сравнения, первого 100 и второго 101 трехстабильных буферных регистров. Синхронизирующий вход 81 блока 35 сравнения соединен с синхронизирующим входом первого 100 и второго 101 трехстабильных буферных регистров. Выходы первого 100 и второго 101 трехстабильных буферных регистров соединены с первой группой 71 выходов блока 35 сравнения.
Блок 36 буферных регистров связи (фиг. 6) содержит буферный регистр 102, M * N буферных регистров 103.1-103.M * N, группу 46 управляющих входов, вторую группу 73 управляющих входов, синхронизирующий вход 81, первую группу 64 информационных входов-выходов и с второй 82.1 по (1 + M * N)-ю 82.NM группы информационных входов-выходов.
Первая группа 64 информационных входов-выходов блока 36 буферных регистров связи подключена к первому информационному входу-выходу буферного регистра 102. Группа 46 управляющих входов блока 36 буферных регистров связи соединена соответствующими разрядами с управляющим входом буферного регистра 102 и с первыми управляющими входами M * N буферных регистров 103.1-103.M * N. Вторая группа 73 управляющих входов блока 36 буферных регистров связи соединена соответствующими разрядами с вторыми управляющими входами M * N буферных регистров 103.1-103.M * N. Синхронизирующий вход 81 блока 36 буферных регистров связи соединен с синхровходами буферного регистра 102 и M * N буферных регистров 103.1-103.M * N. Второй информационный вход-выход буферного регистра 102 соединен с первым информационным входом-выходом M x N буферных регистров 103.1-103. M * N. Вторые информационные входы-выходы М * N информационных буферных регистров 103.1-103. M * N образуют соответственно с второй 82.1 по (1 + М * N)-ю группы 82.M * N информационных входов-выходов блока 36 буферных регистров связи.
Блок 41 выдачи сигналов синхронизации (фиг. 7) содержит регистр 104 маски и мультиплексор 105 выбора кода условий, первую группу 60 входов, вторую группу 64 входов, синхронизирующий вход 81, первую группу 80 выходов и с второго 83.1 по (1 + М * N)-й 83.M * N управляющие выходы.
Вторая группа 64 входов блока 41 выдачи сигналов синхронизации соединена с информационным входом регистра 104 маски. Синхронизирующий вход 81 блока 41 выдачи сигналов синхронизации соединен с синхровходом регистра 104 маски. Первая группа 106 разрядов второго 108 выхода регистра 104 маски соединена с первым входом 106 мультиплексора 105 выбора кода условий, вторая группа 107 разрядов с вторым входом 107 мультиплексора 105 выбора кода условий. Первая группа 60 входов блока 41 выдачи сигналов синхронизации соответствующими разрядами соединена с управляющим входом регистра 104 маски и управляющим входом мультиплексора 105 выбора кода условий. Выходы мультиплексора 105 выбора кода условий образуют первую группу 80 выходов блока 41 выдачи сигналов синхронизации. Первые выходы 109 регистра 104 маски образуют с второго 83.1 по (1 + M * N)-й 83.M * N управляющие выходы блока 41 выдачи сигналов синхронизации.
МПМ 2.2 (фиг. 8) содержит МП 110, блок 111 декодирования и управления, арбитр 112 общей шины, буферный регистр 113 адреса, буферный регистр 114 данных, защелку 115 и введенные контроллер 116 резидентной шины, второй буферный регистр 117 адреса, второй буферный регистр 118 данных, вторую защелку 119, контроллер 120 однопользовательской шины, третью защелку 121, первую группу 10.2 информационных и управляющих входов-выходов, третью группу 12.2 информационных и управляющих входов-выходов, четвертую группу 13.2 информационных и управляющих входов-выходов, пятую группу 14.2 информационных и управляющих входов-выходов.
Группа 122 адресных выходов МП 110 соединена с информационным входом второго буферного регистра 117 адреса. Первый разряд группы 123 разрешения адреса выходов блока 111 декодирования и управления соединен с входом 124 контроллера 116 резидентной шины, второй разряд с входом 125 контроллера 120 однопользовательской шины. Первый разряд группы 126 управляющих выходов контроллера 116 резидентной шины соединен с управляющим входом 127 второго буферного регистра 117 адреса, второй разряд с управляющим входом 128 второго буферного регистра 118 данных. Информационные выходы 129 второго буферного регистра 118 данных соединены с информационным входом второй защелки 119, а информационный выход 130 последней соединен с информационными входами-выходами 131 данных МП 110, которые подключены к информационным входам 132 второго буферного регистра 118 данных. Информационные выходы 133 третьей защелки 121 соединены с информационными входами-выходами 131 данных МП 110. Информационные выходы 134 данных информационных входов-выходов 131 данных МП 110, а также управляющий вход-выход 135 контроллера 120 однопользовательской шины и информационный вход 136 третей защелки 121 образуют четвертую группу 13.2 информационных и управляющих входов-выходов МПМ 2.2. Выход 137 второго буферного регистра 117 адреса, третий разряд 138 группы 126 управляющих выходов контроллера 116 резидентной шины, информационный вход-выход 139 второго буферного регистра 118 данных образуют пятую группу 14.2 информационных и управляющих входов-выходов МПМ.
Входной коммутатор 7.2 (фиг. 9) содержит схему 140 сравнения, элемент И-ИЛИ 141, первый 142, второй 143, третий 144 и четвертый 145 элементы И, первый 146, второй 147, третий 148 и четвертый 149 блоки магистральных элементов, первую 18.2, вторую 19.2 и третью 20.2 группы информационных и управляющих входов-выходов.
Первая группа 18.2 информационных и управляющих входов-выходов входного коммутатора 7.2 образуется группами выходов первого 146 и четвертого 149 блоков магистральных элементов и информационных входов второго 147 и третьего 148 блоков магистральных элементов. Вторая группа 19.2 информационных и управляющих входов-выходов входного коммутатора 7.2 образуется группами информационных входов первого блока 146 магистральных элементов и выходов второго блока 147 магистральных элементов, а управляющие входы соединены соответственно с первыми входами первого 142 и второго 143 элементов И. Третья группа 20.2 информационных и управляющих входов-выходов входного коммутатора образуется группами информационных входов четвертого блока 149 магистральных элементов и выходов третьего блока 148 магистральных элементов, а управляющие входы соединены соответственно с первыми входами третьего 144 и четвертого 145 элементов И. Разряд запроса второй группы 19.2 информационных и управляющих входов-выходов и разряд запроса третьей группы 20.2 информационных и управляющих входов-выходов соединены соответственно с первыми и вторыми входами схемы 140 сравнения и первой группы И элемента И-ИЛИ 141. Первый 150 и второй 151 выходы схемы 140 сравнения соединены соответственно с третьим входом первой группы И элемента И-ИЛИ 141 и входом второй группы И элемента И-ИЛИ 141. Выход элемента И-ИЛИ 141 соединен с вторыми входами первого 142 и второго 143 элементов И. Выход первого элемента И 142 и выход второго элемента И 143 соединены соответственно с управляющими входами первого 146 и второго 147 блоков магистральных элементов. Третий выход 152 схемы 140 сравнения соединен с вторыми входами третьего 144 и четвертого 145 элементов И, а выходы последних соединены соответственно с управляющими входами третьего 148 и четвертого 149 блоков магистральных элементов.
Главный коммутатор 9 (фиг. 10) содержит М блоков 153.1-153.М коммутации, с первой 15.1 по М-ю 15.М группы информационных и управляющих входов-выходов, с (М + 1)-й 21.1.1 по N(M + 1)-ю 21.N.M группы информационных и управляющих входов-выходов.
С первой 15.1 по М-ю 15.М группы информационных и управляющих входов-выходов главного коммутатора 9 соединены соответственно с первой по М-ю группами информационных и управляющих входов-выходов М блоков 153.1-153.М коммутации. С (М + 1)-й 21.1.1 по (N + M)-ю 21.N.1 группы информационных и управляющих входов-выходов главного коммутатора 9 соединены соответственно с (М + 1)-й 21.1.1 по (N + M)-ю 21.N.1 группами информационных и управляющих входов-выходов первого блока 153.1 коммутации. С (N + M + 1)-й 21.1.2 по (N + M + 4)-ю 21.N.2 группы информационных и управляющих входов-выходов главного коммутатора соединены соответственно с (М + 1)-й 21.1.2 по (N + M)-ю 21. N. 2 группами информационных и управляющих входов-выходов второго блока 153.2 коммутации. С (N * M + 1)-й 21.1.М по N(M + 1)-ю 21.N.M группы информационных и управляющих входов-выходов главного коммутатора 9 соединены соответственно с (М + 1)-й 21.1.М по (N + M)-ю 21.N.M группами информационных и управляющих входов-выходов М-го блока 153.М коммутации. Вторая группа разрядов и нулевой разряд управляющего выхода 154.1 первого блока 153.1 коммутации соединены с второй группой 154.1.2 управляющего входа второго блока 153.2 коммутации, третья группа разрядов и нулевой разряд с М-й группой 154.1.3 управляющего входа третьего блока 153.3 коммутации, М-я группа разрядов и нулевой разряд с первой группой 154.1.М управляющего входа М-го блока 153.М коммутации. Первая группа разрядов и нулевой разряд управляющего выхода 154.2 второго блока 153.2 коммутации соединены с первой группой 154.2.1 управляющего входа первого блока 153.1 коммутации, третья группа разрядов и нулевой разряд с второй группой 154.2.3 управляющего входа третьего блока 153.3 коммутации, М-я группа разрядов и нулевой разряд с М-й группой 154.2. М управляющего входа М-го блока 153.М коммутации. Первая группа разрядов и нулевой разряд управляющего выхода 154.3 третьего блока 153.3 коммутации соединены с М-й группой 154.3.1 управляющего входа первого блока 153.1 коммутации, вторая группа разрядов и нулевой разряд с первой группой 154.3.2 управляющего входа второго блока 153.2 коммутации, М-я группа разрядов и нулевой разряд с второй группой 154.3.М управляющего входа М-го блока 153.М коммутации. Первая группа разрядов и нулевой разряд управляющего выхода 154.М М-го блока 153.М коммутации соединены с второй группой 154.М.1 управляющего входа первого блока 153.1 коммутации, вторая группа разрядов и нулевой разряд с М-й группой 154.М.2 управляющего входа второго блока 153.2 коммутации, третья группа разрядов и нулевой разряд с первой группой 154.М.3 управляющего входа третьего блока 153.3 коммутации.
Первый блок 153.1 коммутации (фиг. 11) содержит дешифратор 155 модуля памяти, N узлов 156.1-156.N выбора модуля памяти, с первой 15.1 по М-ю 15.М группы информационных и управляющих входов-выходов, с (М + 1)-й 21.1.1 по (N + M)-ю 21.N.1 группы информационных и управляющих входов-выходов, управляющий выход 154.1 и первую 154.2.1, вторую 154.М.1, М-ю 154.3.1 группы управляющих входов.
С первой 15.1 по М-ю 15.М группы информационных и управляющих входов-выходов первого блока 153.1 коммутации соединены соответственно с первой 15.1 по М-ю 15. М группами информационных и управляющих входов-выходов N узлов 156.1-156. N выбора модуля памяти. Группа разрядов первой группы 15.1 информационных и управляющих входов-выходов первого блока 153.1 коммутации соединена с входом 157.1 дешифратора 155 модуля памяти. Выходы 154.1.0 и 154.1.11-154.1.1N дешифратора 155 модуля памяти соединены соответственно с первым и вторым управляющими входами N узлов 156.1-156.N выбора модуля памяти, а выходы 154.1.0 и 154.1.21-154.1.2N, 154.1.0 и 154.1.31-154.1.3N, 154.1.0 и 154.1. М1-154.М.N образуют управляющий выход 154.1 первого блока 153.1 коммутации. Нулевой и первый разряды первой группы 154.2.1 управляющего входа первого блока 153.1 коммутации соединены соответственно с третьим 154.2.0 и четвертым 154.2.11 управляющими входами первого узла 156.1 выбора модуля памяти, нулевой и второй разряды с третьим 154.2.0 и четвертым 154.2.12 управляющими входами второго узла 156.2 выбора модуля памяти, нулевой и N-й разряды с третьим 154.2.0 и четвертым 154.2.N управляющими входами N-го узла 156. N выбора модуля памяти. Нулевой и первый разряды второй группы 154.М.1 управляющего входа первого блока 153.1 коммутации соединены соответственно с пятым 154.М.0 и шестым 154.М.11 управляющими входами первого узла 156.1 выбора модуля памяти, нулевой и второй разряды с пятым 154. М. 0 и шестым 154.М.12 управляющими входами второго узла 156.2 выбора модуля памяти, нулевой и N-й разряды с пятым 154.М.0 и шестым 154.М.1N управляющими входами N-го узла 156.N выбора модуля памяти. Нулевой и первый разряды М-й группы 154.3.1 управляющего входа первого блока 153.1 коммутации соединены соответственно с седьмым 154.3.0 и восьмым 154.3.11 управляющими входами первого узла 156.1 выбора модуля памяти, нулевой и второй разряды с седьмым 154.3.0 и восьмым 154.3.12 управляющими входами второго узла 156.2 выбора модуля памяти, нулевой и N-й разряды с седьмым 154.3.0 и восьмым 154.3. N управляющими входами N-го узла 156.N выбора модуля памяти. Группа выходов N узлов 156.1-156.N выбора модуля памяти являются соответственно с (М + 1)-й 21.1.1 по (N + M)-ю 21.N.1 группами информационных и управляющих входов-выходов первого блока 153.1 коммутации.
Второй узел 156.2 выбора модуля памяти (фиг. 12) содержит М элементов ИЛИ 158, М 1 элементов НЕ 159, группу 160 элементов И-ИЛИ, элемент ИЛИ-НЕ 161, первый 162, второй 163, третий 164, М-й 165, (М + 1)-й 166 блоки магистральных элементов, с первой 15.1 по М-ю 15.М группы информационных и управляющих входов-выходов, первый 154.1.0, второй 154.1.12, третий 154.2.0, четвертый 154.2.12, пятый 154.М.0, шестой 154.М.12, седьмой 154.3.0, восьмой 154.3.12 управляющие входы, (М + 2)-ю группу 21.2.1 информационных и управляющих входов-выходов.
Первая группа 15.1 информационных и управляющих входов-выходов второго узла 156.2 выбора модуля памяти соединена с первым входом первого И группы 160 элементов И-ИЛИ и выходом первого блока 162 магистральных элементов. Вторая группа 15.2 информационных и управляющих входов-выходов второго узла 156.2 выбора модуля памяти соединена с первым входом второго И группы 160 элементов И-ИЛИ и выходом второго блока 163 магистральных элементов. Третья группа 15.3 информационных и управляющих входов-выходов второго узла 156.2 выбора модуля памяти соединена с первым входом М-го И группы 160 элементов И-ИЛИ и выходом третьего блока 163 магистральных элементов. М-я группа 15.М информационных и управляющих входов-выходов второго узла 156.2 выбора модуля памяти соединена с первым входом третьего И группы 160 элементов И-ИЛИ и выходом М-го блока 165 магистральных элементов. Первый 154.1.0, третий 154.2.0, пятый 154.М.0, седьмой 154.3.0 управляющие входы второго узла 156.2 выбора модуля памяти соединены соответственно с первыми входами N элементов ИЛИ 158. Второй управляющий вход 154.1.12 второго узла 156.2 выбора модуля памяти соединен с вторым входом первого элемента ИЛИ 158 и входом первого элемента НЕ 159. Четвертый управляющий вход 154.2.12 второго узла 156.2 выбора модуля памяти соединен с вторым входом второго элемента ИЛИ 158 и входом второго элемента НЕ 159. Шестой управляющий вход 154.М.12 второго узла 156.2 выбора модуля памяти соединен с вторым входом М-го элемента ИЛИ 158 и входом третьего элемента НЕ 159. Восьмой управляющий вход 154.3.12 второго узла 156.2 выбора модуля памяти соединен с вторым входом М-го элемента ИЛИ 158. Выход первого элемента ИЛИ 158 соединен с вторым входом первого И группы 160 элементов И-ИЛИ. Выход первого элемента НЕ 159 соединен с вторыми входами второго И, третьего И и М-го И группы 160 элементов И-ИЛИ. Выход второго элемента НЕ 159 соединен с третьими входами третьего И и М-го И группы 160 элементов И-ИЛИ. Выход (М 1)-го элемента НЕ 159 соединен с М-м входом М-го И группы 160 элементов И-ИЛИ. Выход второго элемента ИЛИ 158 соединен с третьим входом второго И группы 160 элементов И-ИЛИ. Выход третьего элемента ИЛИ 158 соединен с четвертым входом третьего И группы 160 элементов И-ИЛИ. Выход М-го элемента ИЛИ 158 соединен с (М + 1)-м входом М-го И группы 160 элементов И-ИЛИ. Разряд разрешения записи в каждой с первой 15.1 по М-ю 15.М группе информационных и управляющих входов-выходов узла 156.2 выбора модуля памяти соединен соответственно с входом элемента ИЛИ-НЕ 161 и управляющими входами первого 162, второго 163, третьего 164 и М-го 165 блоков магистральных элементов. Выход группы 160 элементов И-ИЛИ соединен с группами информационных входов (М + 1)-го блока 160 магистральных элементов. Выход элемента ИЛИ-НЕ 161 соединен с управляющим входом (М + 1)-го блока 166 магистральных элементов. Выходы (М + 1)-го блока 166 магистральных элементов и информационные входы первого 162, второго 163, третьего 164 и М-го 165 блоков магистральных элементов образуют (М + 2)-ю группу 21.2.1 информационных и управляющих входов-выходов узла 156.2 выбора модуля памяти.
Управляющий процессор 5 (фиг. 2) прпедназначен для аппаратно-программного управления и синхронизации работы МПМ 2.1-2.N как в режиме синхронного (аппаратного, потактового), так и асинхронного (программного, по выходам из подпрограмм МП) взаимодействия, а также для анализа результатов такого взаимодействия. Управляющий процессор 5 реализует язык высокого уровня (например, С) в качестве своего внутреннего машинного языка, являясь интерпретатором этого языка и эффективным исполнителем операционной системы (управление ресурсами, например), составленной на этом языке. В своей локальной памяти команд и данных управляющий процессор 5 содержит управляющие структуры интерпретатора языка высокого уровня таблицы, стеки, операционной системы очереди, сообщения, а также карты прохождения запросов пользователей и их программы, другие управляющие структуры.
Блок 23 конвейерных регистров команд и данных (фиг. 3) предназначен для предварительной буферизации и синхронизации прохождения команд и данных между блоками управляющего процессора. Прохождение информации в блоке конвейерных регистров команд и данных следующее. Команды, выбираемые из МЛП 42 команд и данных, поступают для буферизации на первый буферный регистр 87 через первую группу информационных входов-выходов пословно. Коды, выбираемые как данные из модуля 28 памяти микрокоманд ("Поле константы"), поступают для буферизации соответственно на первый 88 и второй 89 буферные регистры микрокоманд с трехстабильными выходами потетрадно через первую группу разрядов группы 52 информационных входов. В зависимости от содержимого группы 65 управляющих входов данные на вторую группу 62 выходов поступают либо с первого 88 или второго 89 буферных регистров, либо с тетрадного А-регистра 92 или тетрадного В-регистра 93. В зависимости от содержимого группы 65 управляющих входов данные с первого буферного регистра 87 могут поступать либо на второй буферный регистр 90, либо на буферный регистр 91 поля кода операции, либо на входы тетрадного А-регистра 92 или тетрадного В-регистра 93. В зависимости от содержимого группы 65 управляющих входов (поле микрокоманды "Управляющие стробы") данные с второй группы 64 информационных входов-выходов поступают на второй информационный вход-выход второго буферного регистра 90 и далее либо на второй информационный вход первого буферного регистра 87, либо на входы тетрадного А-регистра 92 или на вход тетрадного В-регистра 93.
Принятые по первому такту синхросигнала однобайтные команды, содержащие только поле кода операции, по второму такту синхронизации заносятся на буферный регистр 91 поля кода операции. Если последующая за текущей однобайтовой командой будет принята также однобайтовая команда, то она буферизуется по второму синхротакту на тетрадные А-регистр 92 и В-регистр 93, а затем при очередном такте синхросигнала подается через второй вход мультиплексора (входы D2, D3) буферного регистра 91 поля кода операции на первую группу 61 выходов. Если текущая команда длиной два байта, то согласно форматам команд (табл. 2) она содержит одно или более тетрадных полей, которые передаются только на тетрадные А-регистр 92 и В-регистр 93, откуда далее передаются на вторую группу 62 выходов. Если текущая команда длиной три или четыре байта, то наряду с тетрадными А-регистром 92 и В-регистром 93 для буферизации операндов используется второй буферный регистр 90.
Блок 24 (фиг. 4) дешифрации команд предназначен для дешифрации кода операций команд управляющего процессора 5 и передачи его в виде, например, 12-разрядного кода на блок 25 микропрограммного управления. При дешифрации учитывается, что часть кодов отводится для формирования адресов переходов в блоке 25 микропрограммного управления.
Поступающие на буферный регистр 94 кода операции, например, 8 бит кода поля операции распределяются по трем тетрадным регистрам 95, 96, 97 дешифрации тетрад, имеющим высокоимпендансные выходы для сопряжения с группой выходов 69 шины для формирования кодов адреса. Под каждый код операции в памяти 28 микрокоманд может быть отведено переменное число ячеек. Для простоты определяют, например, восемь ячеек (и шаг между последующими кодами поля операции команды также должен быть равен восьми). Поэтому в этом случае 8 бит кода операции поступают на 11 4 биты регистров 97, 96, 95 дешифрации тетрад.
Блок 25 микропрограммного управления предназначен для формирования и модификации адреса микрокоманды, выбираемой из модуля 28 памяти микрокоманд. Режим нормального приращения адреса может прерываться по сигналам прерывания, формируемых блоком 40 обработки прерываний и АЛУ 33, подаваемых через мультиплексор 30 сигналов условий. При этом блоком 35 сравнения на вход блока 25 микропрограммного управления через вторую группу 72 входов подаются коды для формирования адресов переходов в модуле 28 памяти микрокоманд. Блок 25 микропрограммного управления может быть построен на базе серийно выпускаемых микросхем типа К1804ВУ4 с управлением из поля микрокоманды "Управление секвенсором".
Модуль 28 памяти микрокоманд предназначен для хранения многоразрядных микрокоманд (см. формат микрокоманды, фиг. 14) и может быть построен на микросхемах типа К565РУ5. Выбираемые из модуля 28 микрокоманды предварительно буферизируются на регистрах в блоке 27 конвейерных регистров памяти микрокоманд для создания режима конвейерной работы.
Блок 26 буферных регистров микрокоманд предназначен для создания трехстабильного выхода при формировании линий второй группы 72 входов блока 25 микропрограммного управления.
Дешифратор 29 выбора конвейерных регистров предназначен для управления занесением кода на тетрадные А-регистр 92 и В-регистр 93. Возможен выбор одного из тетрадных регистров либо обоих одновременно.
АЛУ 33 предназначено для выполнения логических и арифметических операций над операндами, получаемыми как из модуля 28 памяти микрокоманд, так и из МЛП 42 команд и данных, а также из блока 36 буферных регистров связи. Операнды из МЛП 42 команд и данных могут поступать с трех направлений: через блок 23 конвейерных регистров команд и данных, буферный регистр 32 операндов, буферный регистр 37 данных, который также является выходным при передаче результата из АЛУ в МЛП 42 команд и данных. АЛУ 33 может быть построено на секционированных микросхемах К1804ВС2, К1804ВР1, К1804ВР2. Оно может выполнять за один такт одну из девяти логических или семи арифметических операций, или девяти специальных функций, содержит файл быстрых регистров на 16 слов. Выбор любого из регистров может производиться через блок 23 конвейерных регистров команд и данных как из микрокоманды, так и из команды.
АЛУ 33 может выполнять операции как над байтами, так и над словами (например, 16/32 бита). В первом случае только восемь младших разрядов буферного регистра 32 операндов или второго буферного регистра 90 блока 23 конвейерных регистров команд и данных используются для операций, во втором все разряды слова. Для задания режима байтовых операций АЛУ в микрокоманде используется поле "слово/байт". Управление выполнением операций в АЛУ осуществляется разрядами микрокоманды "Управление АЛУ". Для анализа результатов выполняемых операций в состав АЛУ 33 входит схема управления состоянием и сдвигом (микросхема К1804ВР2, например), в которой имеются регистры, содержащие информацию о наличии переноса, знаке числа, нулевом результате и переполнении. Управление выдачей битов состояния, работой мультиплексора и устройством сдвига этой микросхемы осуществляется полем микрокоманды "Управление состоянием и сдвигом" (см. формат микрокоманды, фиг. 14). АЛУ 33 может работать в режимах двух- и трехадресной обработки. Файл общих регистров АЛУ поэтому может использоваться как аппаратная верхушка стека выражений, размещенного в МЛП 42 команд и данных.
Блок 34 модификации адреса памяти команд и данных предназначен для выработки текущего адреса следующей команды или ее операндов, формирования указателей стеков при операциях с верхушками стеков за один такт процессора. Блок 34 модификации адреса памяти команд и данных функционируют синхронно и параллельно с АЛУ 33 и может быть построен на секционных микросхемах К1804ВС1 и К1804ВР1. Из 16 регистров общего назначения (РОН) микросхемы К1804ВС1 используются восемь (доступные программисту) в следующем раскладе (см. табл. 1).
Для задания виртуального адреса (дескриптора адреса) используется указатель, состоящий из кода смещения в сегменте D и кода номера сегмента S. Для аппаратной поддержки операций со стеком в ОЗУ в РОН хранятся указатели границ стека и текущий. Обмен со стеком всегда идет словами, поэтому адрес вершины стека всегда изменяется на +2 байта, +4 байта. Управление осуществляется полем "Управление модификацией адреса ОЗУ" микрокоманды. Результирующий адрес передается в контроллер 43 оперативной памяти через буферный регистр 39 адреса.
Блок 35 сравнения (фиг. 5) предназначен для формирования внутренних кодов сигналов прерывания, образующихся после выполнения команд управляющего процессора совместно с МПМ, при проверке кодов условий завершения выполнения команд МПМ, а также для формирования кодов внешних прерываний, поступающих от блока 40 обработки прерываний. Коды условий в виде слова состояния, поступающие от микропроцессорных элементов на M * N буферных регистров 103.1 103. M * N, последовательно сравниваются (отдельные поля в зависимости от кода операции команды управляющего процессора) с ожидаемым кодом условия, хранящимся на регистре 104 маски блока 41 выдачи сигналов синхронизации. Двоичные коды условий, поступающие из блока 41 выдачи сигналов синхронизации, через вторую группу 80 входов блока 35 сравнения подаются на схему 99 сравнения, куда также подаются коды состояния по четвертой группе 64 входов. Сравнение на "больше", "равно" или "меньше" определяется кодами поля микрокоманды "Сравнение >, <". Выдача сформированного кода перехода в зависимости от результата сравнения выдается по коду поля микрокоманды "Разрешение условия". Двоичные коды вектора прерываний, поступающие из блока 40 обработки прерываний, поступают через третью группу 79 входов блока 35 сравнения на дешифратор 98 кода вектора прерываний и далее на первый трехстабильный буферный регистр 100, который управляется кодами поля микрокоманды "Разрешение прерывания", поступающими через первую группу 47 входов.
Блок 36 буферных регистров связи (фиг. 6) предназначен для связи управляющего процессора с МПМ для передачи данных и управляющей информации. Причем со стороны управляющего процессора 5 в МПМ 2.1-2.N передаются как коды команд с операндами МП так и данные, а со стороны МПМ коды состояний МП после выполнения их команд и данные результата выполнения операции. Возможна передача кодов из управляющего процессора 5 одновременно во все "активные" в данный момент МПМ либо выборочная передача разных кодов в разные МПМ. Вожможна передача в управляющий процессор одновременно или разновременно кодов состояний каждого МП из каждого МПМ, а также с помощью МП данных из МЛП 3.1-3.N или модулей 6.1-6.М общей памяти. Выбор режима приема-выдачи со стороны управляющего процессора 5 осуществляется из поля микрокоманды "Управление приемом-выдачей". Со стороны каждого МПМ 2.1-2. N возможен асинхронный выбор "своего" одного из M * N буферных регистров 103.1-103.M * N для занесения в них кодов состояний или данных результатов операций. При выполнении параллельных команд буферные регистры 103.1 103M * N резервируются на все время выполнения, так как при этом организуется жесткий режим конвейерного исполнения оборудования управляющего процессора 5 и МПМ 2.1-2.N. При передаче из управляющего процессора одинаковых кодов во все МПМ 2.1-2.N (например, адресов операндов или самих операндов) они поступают через первую группу 64 информационных входов-выходов на буферный регистр 102.1 и далее через внутреннюю магистраль на все выбранные буферные регистры 103.1 103.М * N, с которых данные через вторую 82.1 по (1 + MN)-ю 82.MN группы информационно-управляющих входов-выходов поступают на локальные шины МПМ 2.1-2.N.
В случае приема кодов состояний и данных результатов из МПМ 2.1-2.N эти данные могут поступать с второй 82.1 по (1 + М * N)-ю 82.МN групп информационно-управляющих входов-выходов на буферные регистры 103.1 103. M * N, а затем через внутреннюю магистраль последовательно на буферный регистр 102, с выхода которого на первую группу 64 информационных входов-выходов. Управление направлением передачи осуществляется со стороны управляющего процессора 5 из поля микрокоманды "Управление приемом-выдачей" через группу 46 управляющих входов, а выбором одного или всех М*N буферных регистров 103.1.103.М*N через вторую группу 73 управляющих входов. Управление приемом со стороны МПМ 2.1-2. N осуществляется через группы управляющих линий соответственно с второй 82.1 по (1+MN)-ю 82.MN групп информационно-управляющих входов-выходов.
Межбуферный регистр 38 связи предназначен для связи блока 34 модификации адреса памяти команд и данных по входу-выходу 77 через буферный регистр 37 данных с МЛП 42 команд и данных для сохранения или восстановления своих общих регистров при прерываниях на программном уровне, управляется полем "Управление буферными регистрами" микрокоманды.
Блок 40 обработки прерываний предназначен для формирования многоуровневой (например 16-ти уровней при 16 МПМ в системе) структуры прерываний. При этом код и сигнал условия прерывания, вырабатываемые блоком 40 обработки прерываний поступают соответственно в блок 35 сравнения и блок 25 микропрограммного управления через мультиплексор 30 сигналов условий, где формируется код, преобразуемый затем блоком 25 микропрограммного управления в замещающий адрес микрокоманды в модуле 28 памяти микрокоманд. Блок 40 обработки прерываний может быть построен на базе БИС К1804ВН1, которая управляется из микрокоманды полем "Управление БП". Внешние запросы на прерывания от МПМ 2.1-21.N поступают по группе с второй 84.1 по (1-MN)-ю 84М*N управляющих входов. Для сохранения своего регистра состояния блок 40 обработки прерываний связан через вторую группу 77 информационных входов-выходов, межбуферный регистр 38 связи, буферный регистр 37 данных с МЛП 42 команд и данных. Обработка запросов на прерывания осуществляется на микропрограммном уровне. Сначала микропрограмма перехода сохраняет в стеке счетчики микрокоманд блока 25 микропрограммного управления, в стеке МЛП 42 команд и данных счетчик команд и содержимое регистра состояний БИС блока 40 обработки прерываний. Затем блок 40 обработки прерываний считывает вектор прерываний от МПМ 2.1-2.N и согласно выбранному приоритету происходит обработка сигналов прерывания: загрузка из стека счетчика команд (СК) в блок 34 модификации адреса памяти команд и данных. СК указывает адрес первой из команд обработки прерываний. По завершении программы обработки прерываний осуществляется возврат к прерванной микропрограмме. Ее шаги: извлечение из стека блока 25 микропрограммного управления значения счетчика микрокоманд, СК, содержимого регистра состояния БИС блока 40 обработки прерываний и переход к микропрограмме выборки следующей команды.
Блок 41 выдачи сигналов синхронизации предназначен для указания выбора МПМ 2.1-2.N в качестве активных во время первой фазы выполнения параллельных команд управляющего процессора 5. Для этого используются с второго 83.1 по (1+MN)-й 83. МN управляющие выходы. Во время второй фазы выполнения параллельных команд управляющего процессора этот же блок используется для выдачи шаблонов кодов условий, поставляемых параллельной командой управляющего процессора (см. табл. 2). С помощью мультиплексора 105 выбора кода условий осуществляется сканирование выдачи шаблонов через первую группу 80 выходов.
МЛП 42 команд и данных предназначен для хранения кодов команд внутреннего языка управляющего процессора 5, стеков состояний, управления, вычисления и таблиц переменных, полученных в результате трансляции конструкций входного языка высокого уровня. МЛП 42 команд и данных организован как ОЗУ динамического типа, управляемое контроллером 43 оперативной памяти (например, типа К8010ВТ3), который, в свою очередь, управляется полем микрокоманды "Управление ОЗУ".
Синхрогенератор 45 предназначен для синхронизации передачи данных между регистрами и блоками управляющего процессора и может быть реализован на базе БИС К1804ГГ1. Режим торможения синхрогенератора позволяет организовать совместный конвейерный режим работы управляющего процессора и МПМ.
МПМ 2.1-2. N (фиг.8) предназначены для исполнения подпрограмм пользователей и операционной системы (например, подпрограмм ввода-вывода) на языке команд МП (например, систем INTEL). В своей локальной памяти МПМ содержит часто используемые подпрограммы операционной системы, математические функции, библиотечные функции языка программирования (например, функции распределения памяти, обработки списков, сортировки и т.п.). МПМ функционирует под управлением управляющего процессора 5, исполняя его директивы (например, команды вызова библиотечных подпрограмм). Получив адрес входа в подпрограмму, МПМ затем самостоятельно исполняет ее и завершает ее выходом из подпрограммы и исполнением команды "Ожидание" (WAIТ для систем INTEL, например).
При инициализации МПМ через блок 111 декодирования и управления происходит обращение единичным уровнем к соответствующему контроллеру для выхода на общую память, управляющий процессор или системную шину. При обращении к общей памяти сигнал с блока декодирования и управления поступает на контроллер 116 резидентной шины, который управляет выходами сигналов разрешения адреса (второй буферный регистр 117 адреса, данных (второй буферный регистр 118 данных) и выходами сигналов управления операциями чтения-записи на резидентной шине. При выходе на управляющий процессор, получив обращение, контроллер 120 однопользовательской шины управляет выходами сигналов разрешения передачи данных, выходами сигналов управления и операциями чтения-записи на однопользовательской шине. Обращение к локальной памяти осуществляется по выставленному адресу. Для координации доступа МПМ к системной шине арбитрами 112 шины осуществляется арбитраж системной шины.
Входной коммутатор 7.2 (фиг.9) предназначен для коммутации передачи информации и управления, например, между МПМ 2.2 (фиг.1) и МОП 8.2, с одной стороны, или главным коммутатором 9 и МОП 8.2, с другой стороны. Режим работы входного коммутатора 7.2 определяется схемой 140 сравнения, на входы которой подаются разряды запроса с второй группы 19.2 и третьей группы 20.2 информационных и управляющих входов-выходов. Схема 140 имеет три выхода результатов анализа, комбинации которых рассмотрим подробно. При поступлении запроса по второй группе 19.2 информационных и управляющих входов-выходов входного коммутатора 7.2 формируетя сигнал "Единица" на втором выходе 151 схемы 140 сравнения, который через элемент И-ИЛИ 141 разрешает работу первого элемента И 142 и второго элемента И 143. При наличии сигнала "Запись" он поступает через первый элемент И 142 на управляющий вход первого блока 146 магистральных элементов (сигнал на управляющем входе второго блока 147 магистральных элементов отсутствует), и осуществляется передача информации и управления с МПМ 2.2 (вторая группа 19.2) к МОП 8.2 (первая группа 18.2). При наличии сигнала "Чтение" он через второй элемент И 143 поступает на управляющий вход второго блока 147 магистральных элементов (на управляющем входе первого блока 146 магистральных элементов сигнал отсутствует), информация из МОП 8.2 (первая группа 18.2) передается в МПМ 2.2 (вторая группа 19.2). В случае отсутствия сигналов на управляющих входах первого 146 и второго 147 блоков магистральных элементов они находятся в высокоимпедансном состоянии. Управляющие сигналы на вторую группу 19.2 входного коммутатора 7.2 поступают с выхода пятой группы 14.2 МПМ 2.2 и одновременно вырабатываться не могут.
При поступлении запроса в третьей группе 20.2 формируется сигнал "Единица" на третьем выходе 152 схемы 140 сравнения, которая разрешает работу третьего 144 и четвертого 145 элементов И. Срабатывание третьего 148 и четвертого 149 блоков магистральных элементов осуществляется от сигналов на управляющих входах третьей группы 20.2 через элемент И-ИЛИ 141, третий элемент И 144 и четвертый элемент И 145 аналогично первого 146 и второго 147 блоков магистральных элементов. По этому входу осуществляется передача информации и управления с главного коммутатора 9 (третья группа 20.2) к МОП 8.2 (первая группа 18.2) или обратно. Управляющие сигналы на третью группу 20.2 входного коммутатора 7.2 поступают с выхода (М+2)-й группы 21.1.1 главного коммутатора 9.
При одновременном запросе во второй группе 19.2 и третьей группе 20.2 формируется сигнал "Единица" на первом выходе 150 схемы 140 сравнения, который через элемент И-ИЛИ 141 разрешает работу первого 142 и второго 143 элементов И. В схеме предусмотрено, что при одновременном запросе приоритет представляется второй группе 19.2 информационных и управляющих входов-выходов (т.е. "своему" МПМ 2.2.
Главный коммутатор 9 (фиг.10) предназначен для коммутации информационных и управляющих сигналов, поступающих с вычислительных блоков 1.1-1. М (используя первые группы 15.1-15.М информационных и управляющих входов-выходов) на соответствующие модули 6.1-6.М общей памяти (используя с (М+1)-й 21.1. М по N(M+1)-ю 21.N.M группы, а также в обратном направлении (чтение из памяти).
В главном коммутаторе 9 выполняются следующие три режима работы. Все вычислительный блоки 1.1-1.М могут одновременно по заданному приоритету обратиться к i-му МОП 8.1-8.N в i-м модуле 6.1-6.М общей памяти по записи или чтению. i-й вычислительный блок может передать информацию во все МОП 8.1-8.N в каждом из модулей 6.1-6.М общей памяти одновременно, т.е. осуществить тиражирование информации. Из i-го вычислительного блока возможна передача информации последовательно во все МОП 8.1-8.N.
В первом режиме главный коммутатор 9 работает следующим образом. Входная информация с первой 15.1 по М-ю 15.М групп информационных и управляющих входов-выходов поступает одновременно на М блоков 153.1-153.М коммутации. Пусть, например, требуется записать информацию с вычислительных блоков 1.1-1. М в МОП 8.2 модуля 6.1 общей памяти. Управляющие разряды (старшие разряды адреса) в каждом блоке коммутации поступают на дешифратор 155 модуля памяти (фиг.11), который дает разрешающий сигнал на выходах 154.1.12, 154.М. 12 и 154.3.12. Все эти сигналы поступают на первый блок 153.1 коммутации в узел 156.2 выбора модуля памяти. Разрешающие сигналы поступают на второй 154.1.12, четвертый 154.2.12, шестой 154.М.12 и восьмой 154.3.12 управляющие входы узла 156.2 выбора модуля памяти (фиг.12). Из схемы видно, что через первый элемент ИЛИ 158 разрешающий сигнал поступает на первый И группы 160 элементов И-ИЛИ одновременно, на выходе первого элемента НЕ 159 получен инверсный сигнал, который закрывает все остальные И группы 160 элементов И-ИЛИ. Сигнал "Разрешение записи" с первой группы 15.1 информационных и управляющих входов-выходов через элемент ИЛИ-НЕ 161 поступает на управляющий вход (М+1)-го блока 166 магистральных элементов и, следовательно, на (М+2),й группе 21.2.1 информационных и управляющих входов-выходов главного коммутатора 9 получают информацию для записи в память с вычислительного блока 1.1. Видно, что наивысшим приоритетом обладает "свой" вычислительный блок при обращении к "своему" блоку общей памяти. Последовательность приоритетов данного модуля общей памяти следующая: вторым может обратиться вычислительный блок справа, третьим вычислительный блок слева и т.д. следовательно, в нашем примере последовательность следующая: 1.1, 1.2, 1.М, 1.3.
Во втором режиме главный коммутатор 9 работает следующим образом. Пусть, например, необходимо произвести запись из вычислительного блока 1.1 во все МОП 8.1-8.N всех модулей 6.1-6.М общей памяти. В этом случае в первом блоке 153.1 коммутации на выходе 154.1.0 дешифратора 155 модуля памяти будет разрешающий сигнал, который поступает на все узлы 156.1-156.N выбора модуля памяти, а через управляющий выход 154.1 поступает на все остальные блоки 153.2-153. М коммутации. На фиг.12 видно, что через первый элемент ИЛИ 158 будет разрешение на первой группе 160 элементов И-ИЛИ. В дальнейшем работа аналогична первому режиму. Таким образом, с (М+1)-й 21.1.1 по N(M+1)-ю 21.N. M групп информационных и управляющих входов-выходов главного коммутатора 9 будет одинаковая информация, которая может быть записана во все модули 6.1-6.М общей памяти.
Третий режим работы главного коммутатора 9 является частным случаем первого режима работы.
Модули 6.1-6.М общей памяти предназначены для хранения данных, представленных в виде символьных, цифровых или битовых наборов либо в виде таблиц или списковых структур, либо в виде других сложных структур данных (например, объектов, содержащих другие структуры данных).
Функционирование блоков управляющего процессора 5 осуществляется под управлением микрокоманд большой разрядности, например 128 бит (см. формат микрокоманды, фиг. 14). Такая микрокоманда позволяет распараллелить работу АЛУ 33, блока 34 модификации адреса памяти команд и данных, блока 35 сравнения, блока 40 обработки прерываний, блока 23 конвейерных регистров команд и данных, что позволяет совместисть отдельные шаги выборки, дешифрации и исполнения команд управляющего процессора 5. Форматы основных команд приведены в табл. 2. Синхронизацию работы отдельных блоков также осуществляют микропрограммный интерпретатор команд управляющего процессора.
Организация конвейерного исполнения внутрипроцессорных команд управляющего процессора 5 рассмотрим на примере одно-, двух- и четырехбайтовых команд (см. табл.2).
Однобайтовая команда используется для работы со стеком. Например, сложение двух слов, расположенных на верхушке стека, выполняется командой с форматом в один байт, который указывает только код операции. При длине слова, например, в 32 бита на каждом запросе из ОЗУ выбирается четыре однобайтовых команды.
Предполагается, что в общих регистрах R1, R2 АЛУ 33, являющихся аппаратной верхушкой стека, уже находятся два операнда. Сложение выполняется за один такт. Результат помещается в регистр R1. Глубина просмотра "вперед" при этом составляет четыре уровня (см. табл.3). Как видно из таблицы, при установившемся шаге 5 происходит запрос следующей, пятой, команды Е, буферизация на регистре кода операции команды С, дешифрация команды В, исполнение команды А, т.е. исполнение занимает один такт управляющего процессора 5.
Аналогичное исполнение просматривается и для двубайтовых команд, например для команды сложения содержимого двух общих регистров (см. табл.4). В этом случае для шага 4 идет буферизация команды С, буферизация команды В, буферизация поля кода операции на регистре 90 кода операции, операндов на тетрадном А-регистре 92, на тетрадном В-регистре 93, дешифрация команды А, модификация адреса ОЗУ в блоке 34 модификации адреса памяти команд и данных.
Организацию конвейерного исполнения команд при управлении МПМ рассмотрим на примере выполнения параллельной команды сложения двух векторов. Взаимодействие управляющего процессора 5 с МПМ осуществляется за две фазы. На первой фазе в МПМ пересылаются поле кода операции для МПМ (например, JMP-переход межсегментный), код адреса перехода. На второй фазе ожидается от МПМ код завершения операции. Для этого необходима следующая последовательность команд управляющего процессора:
А) SETM установить маску активности МПМ и код операции JMP;
Б) MOVE переслать адрес подпрограммы;
В) SETC установить код условия.
Сначала по команде А) осуществляется пересылка кода маски на регистр маски и кода операции МПМ на регистр связи. По коду маски выбранные МПМ входят в цикл начальной установки регистров и состояния МПМ (см. описание работы МПМ). Затем последующая пересылка операнда (адреса подпрограммы) по команде Б) выполняется по запросам МПМ.
Наконец на второй фазе осуществляется проверка кодов условия завершения выполнения команды (последней в подпрограмме) путем засылки кода шаблона в регистр маски по команде В) и выполнения сравнения блоком 35 сравнения. При этом результирующие коды завершения из МПМ пересылаются на буферные регистры 103.1.103.MN и далее через четвертую группу 64 входов на блок 35 сравнения, на который, с другой стороны, поступает шаблон кода условий через вторую группу 80 входов с мультиплексора 105 блока 41 выдачи сигналов синхронизации. Шаги: выбрать один из регистров связи и переслать его содержимое на буферный регистр 101; сравнить схемой 99 сравнения коды, поступающие с буферного регистра 103 и с мультиплексора 105; выставить на мультиплексор 30 сигналов условий запрос в блок 25 микропрограммного управления, а на трехстабильный регистр 100 кода адреса перехода по результату сравнения. Пошаговое исполнение используемых команд в управляющем процессоре показано в табл.5.
Управляющий процессор 5 осуществляет выборку МПМ через регистр 104 маски по сигналу единичного уровня на входе RESET MП. Для инициализации в рабочем режиме этот сигнал должен быть выдержан не менее четырех тактов СИ (для МП серии INTEL. По этому сигналу МП прекращает выполнение внутренних операций и переключает в неактивное состояние шинные выводы адреса данных и управления. После перехода сигнала на входе RESEТ МП в нулевое состояние выполняется начальная установка регистров МП, для чего трубуется до восьми тактов СИ. По завершении начальной установки МП переходит к выполнению программы (команды), расположенной по адресу FFFFOH, который присвоен каждому буферному регистру связи. Обычно в буферном регистре размещается команда межсегментного перехода (типа JMP для МП систем INTEL), но может быть размещена любая команда целиком или по частям. В конце выполняемой подпрограммы (или после команды) помещается команда останова (типа HLT для систем INTEL). Во время останова МП не выдает никаких управляющих сигналов. Выход из состояния ОСТАНОВ возможен по сигналам запросов шины МП, после чего следует переход в состояние ЗАХВАТ, а затем возврат в состояние ОСТАНОВ. Другой возможный путь выхода из состояния ОСТАНОВ это по сигналу начальной установки по входу МП RESET или по сигналу запроса прерывания по входу INT.
Возможна синхронизация взаимодействия управляющего процессора 5 и МПМ (типа INTEL) на программном уровне с помощью команды WAIT. При значении сигнала TEST-1 МПМ ожидает (выполняя холостые такты) сигнала низкого уровня TEST= 0 (длительностью не менее 5 тактов СИ МП), который устанавливается под действием команды SETM, выполняемой управляющим процессором 5. При таком взаимодействии не нарушается содержимое общих регистров МП, благодаря чему создаются условия для повышения производительности.
Со своей стороны МПМ может выставить сигнал прерывания для управляющего процессора 5 через контроллер 120 шины (например, БИС К1810 ВГ88), работающий в однопользовательском режиме. Управляющие сигналы: запрос на прерывание и направление передачи передаются по шине 135 и далее на блок 40 обработки прерываний и буферные регистры 103.1.103.MN соответственно. Причем данные передаются очерез буферные регистры 103.1.103.MN по магистрали 134 МПМ.
Конвейерный режим взаимодействия между управляющим процессором и МПМ предполагает синхронизацию шагов выполнения. Такая синхронизация осуществляется путем управления тактового генератора (например, К1801ГГ1) управляющего процессора 5, его режимом работы "Ожидание", при котором происходит динамическое растягивание микроцикла. Для организации режима "Ожидание" используются входы генератора ROWJ, EWJ, RA и выход WJ. Генератор притормаживается каждый раз после того, как в управляющий процессор 5 осуществляется передача кода из МПМ на один или все буферные регистры 103.1.103.NM путем подачи на второй вход 86 (EWJ, RQWJ) синхронизатора 45 сигнала нулевого уровня с дешифратора 31 выбора регистров связи. Выдача сигналов синхронизации со стороны МП 110 МПМ (например, 1.1) выполняется по сигналам состояния QS0, QS1 заполнения очереди команд (коды QS0, QS1=11), выставляемых в качестве сигналов запроса о выдаче в МП 110 с соответствующего буферного регистра 103.i очередного кода (например, четырех байт). Этот сигнал синхронизации со стороны канала МП передается нулевым уровнем на вход RA ("Готов"), что приводит к возобновлению нормальной работы тактового генератора. Управляющий процессор 5 обращается к МПМ с помощью своей команды SETM "Установить маску активности" через регистр маски. Единичные выходы регистра маски соединены с входами RESET каждого МП. Необходимы четыре такта СИ МП для его перезапуска. Через указанное время команда SETM сменяется следующей командой MOVE ("Переслать"), что вызывает сброс сигнала по входу RESET МП в ноль. Далее МП требуется не менее восьми тактов СИ для переустановки своих регистров и очереди команд. К концу этого периода первое слово, передаваемое из управляющего процессора 5, уже находится в буферном регистре 103.1.
Распределение адресного пространства в системе осуществляется секционированием адресов. Каждый МПМ обладает полным, доступным МП адресным пространством (например, для МП INTEL 80386 это 2**32=4Гбайта). Возможное виртуальное адресное пространство больше и поддерживается МП, такими как, например, типа INTEL 80386, 80486 и др.), но, в конечном счете, оно преобразуется в физический адрес, определяемый разрядностью адреса. Таким образом, каждый модуль локальной или общей памяти адресуется как по входу, так и в его пределах (пословно или побайтно) своим уникальным адресом, соотнесенным для каждого МП, т.е. с точки зрения каждого МП каждый модуль общей памяти адресуется по своей шкале. Это дает возможность выделить область "собственных" адресов модулей общей памяти и областей периферийных адресов "справа" и "слева", причем последние по приоритету доступа уступают доступу к "собственным" адресам. На этом принципе основывается приоритетный закон распределения доступа типа "батерфляй". Адрес данного, общего для всех МПМ, размещенного в модуле общей памяти, вычисляется с учетом смещения в расположении модуля общей памяти относительно МПМ, т.е. формируется в этом случает независимое адресное пространство общей памяти системы. Адреса данных могут подготавливаться управляющим процессором 5 или самими МПМ.
Подготовленная для параллельной обработки программа решения задачи включает виртуальное распределение памяти для МПМ на разных этапах ее решения. Причем управление решением задачи можно распределять по уровням. Верхним уровнем управления заведует управляющий процессор 5, а более низкими уровнями МПМ, выделяемые как управляющие. Например, для алгоритма, содержащего n ветвей, вычисления по отдельным ветвям распределяются управляющим процессором 5, и он фиксирует результаты по каждой из ветвей. Распределение вычислений в пределах ветви может осуществляться одним из МПМ, который "держит" соответствующую подпрограмму в своем поле зрения, т.е. подитоживает результаты отдельных фрагментов вычислений, производимых рабочими МПМ.
При анализе решения большого класса задач на различных архитектурах и структурах машин видно, что весьма желательно для достижения высокого быстродействия решения задач иметь следующие дополнительные (кроме обычных "каждый с каждым") возможности коммутации и пересылки данных: пересылка данных из одного МПМ во все остальные (т.е. тиражирование данных); пересылка данных из n-1 МПМ в один из них, например n (т.е. сборка данных); пересылка разных данных из разных МПМ одновременно в разные МПМ.
Предлагаемая система позволяет производить указанные пересылки данных путем соответствующей коммутации. При этом ведущий МПМ указывает соответствующие адреса данных (адреса модулей памяти и адреса слов в пределах модуля), с помощью которых осуществляется настройка входным и главным коммутаторами 9 магистралей передачи данных (см. работу главного коммутатора 9.
На фиг.13 показаны возможные пути перемещения данных и управляющей информации в рассматриваемой вычислительной системе. Управляющий процессор 5 передает команды и принимает данные о состоянии от МПМ 1.1, по магистралям 16.1. М.N. Каждый МПМ имеет выход на "собственный" модуль общей памяти через входной коммутатор (например, 7.1), выход на МЛП, а через общую шину и через главный коммутатор 9 выход на все модули общей памяти, в том числе и к "собственному" модулю общей памяти через второй вход входного коммутатора. В каждом вычислительном блоке МПМ могут связываться друг с другом по общей шине для передачи управляющих данных. Если пути передачи данных через главный коммутатор 9 не пересекаются, т.е. нет одновременного обращения к одному и тому же модулю общей памяти, то возможна одновременная передача данных из каждого вычислительного блока одним из МПМ, "захватившим" в данный момент шинную магистраль. Коммутационные возможности главного коммутатора 9 позволяют соединить любой из МПМ со всеми модулями общей памяти для передачи одинаковой информации (дублирование) путем выставления им нулевого адреса. Выбор того или иного пути передачи данных определяется только адресным кодом, выставляемым МПМ. Если пути передачи данных через главный коммутатор пересекаются, т.е. имеется одновременное обращение нескольких МПМ к одному и тому же модулю общей памяти, то вступает в действие приоритетный принцип доступа, разрешающий доступ тому МПМ, который физически ближе расположен к запрашиваемому модулю общей памяти.
Теоретически нет предела числу МП, объединяемых при построении многопроцессорных систем на основе предлагаемой структуры (практически предел определяется объемом используемого оборудования, потребляемой мощностью и надежностными характеристиками этого оборудования). Причем наращивание числа МП в отличие от чисто шинной архитектуры увеличивает пропускную способность системы в целом при обмене данными с памятью пропорционально числу задействованных МПМ (в худшем случае пропорционально числу вычислительных блоков), а при межпроцессорных взаимодействиях пропорционально числу М вычислительных блоков. Кроме того, для программирования работы такой системы могут быть использованы как специальные программные средства языковые и операционные, так и обычные средства поддержки работы многопроцессорных систем.
Вычислительная система работает следующим образом.
В управляющем процессоре 5 инициируется работа интерпретатора языка высокого уровня (например, языка С), который выбирая команды-операторы из МЛП 42 команд и данных, выполняет их и передает управляющие директивы через магистраль 16.1.16.NM связи на входы выбранных МПМ. Системные подпрограммы, размещенные в МЛП МПМ, выполняют действия на языке команд МП, указанные соответствующими аргументами в директивах, переданными из управляющего процессора 5. МПМ возвращают через магистраль 16.1.16.MN связи управляющему процессору 5 результаты условий завершения исполнения своих подпрограмм, помещая коды условий на буферные регистры 103.1.103.MN связи. Затем задействованные МПМ переходят в состояние "Ожидание", ожидая последующих управляющих воздействий либо со стороны управляющего процессора 5, либо со стороны одного из МПМ объединенных общей шиной. Управляющий процессор 5, последовательно просматривая коды условий по каждому МПМ, принимает соответствующие решения о дальнейших действиях согласно основному алгоритму.
Пользователь вводит свою задачу через ПЭВМ-секретарь. Далее компилятор по данной задаче составляет сопровождение команды управления потоком данных и ресурсами, которые с другими командами, полученными в результате трансляции предложений языка высокого уровня (например, С), составляют программу на внутреннем языке. Эта программа загружается в управляющий процессор 5 через буферный регистр 44 в МЛП 42 команд и данных с помощью микропрограммного загрузчика, входящего в состав ядра интерпретатора ЯВУ, резидентно находящегося в ПЗУ части памяти 27 микрокоманд.
Для оценки эффективности предлагаемой системы рассмотрим несколько задач как благоприятных, так и неблагоприятных для предлагаемой системы. Из числа неблагоприятных рассмотрим задачу нахождения суммы элементов вектора. Пусть имеется n=16 чисел вектора и каждое числое занимает одно (например, 32-разрядное) слово в памяти. Пусть имеют р=4 число МПМ в одном вычислительном блоке и всего таких блоков два. Для сравнения берут структуру прототипа как систему из р=8 МПМ, подсоединенных через общую шину к общему МОП.
Необходимо сделать следующие шаги для получения результата. Попарно суммируя элементы вектора, результат поместить на место одного из исходных элементов вектора; общий результат поместить в область памяти первого МПМ.
Выполнение операций на структуре прототипа. Предполагается, что в МЛП находятся необходимые подпрограммы сложения двух чисел, обращения к памяти обработки прерываний и др. Также предполагается, что один из МПМ (любой) может становиться ведущим управляющим модулем, который определяет и инициирует согласно алгоритму работу других МПМ, а также начальную загрузку системы данными. Также полагают, что организуется циклическая упорядоченная система доступа к общей шине с фиксированными приоритетами, образуемая арбитрами МПМ, например, в порядке возрастания приоритета доступа от их младшего номера к старшему. Ведущий (управляющий) МПМ активизирует работу других МПМ через общую память путем засылки вектора переменных активизации в область общих переменных. Обращаясь к этому вектору в порядке приоритета доступа по общей шине, МПМ считывают свои управляющие биты и в случае единичного их состояния активизируют свои подпрограммы чтения из ОП, записи в ОП или/и сложения двух чисел. Таким образом, каждому рабочему циклу предшествует управляющий цикл рассылки вектора управления. Также предполагается, что используется принцип конвейерного взаимодействия МПМ с модулем общей памяти, заложенный в прототипе, когда на обращение к памяти отводится один такт процессора, а остальные такты являются подготовительными. Вычисления, таким образом, разбиваются на отдельные парные циклы управляющий и рабочий. В первой паре циклов сначала активизируются восемь МПМ (в том числе и управляющий), подготавливая подпрограммы чтения из модуля общей памяти восьми пар чисел, что делается на втором цикле прохода, и на все это затрачивается время 6Тсз.упро.ш+7Тс.упр, и затем производится сложение и запись результата в память. На это затрачено время Т+8Тзз.упро.ш+ +7Тс.упр.
Общее время, затрачиваемое на суммирование восьми пар чисел, 16Тс+Т+8Тз+ +3То.ш+3Тз.упр+14Тс.упр, где Тс время считывания из модуля общей памяти; Тз время записи в модуль общей памяти; Т время выполнения арифметической операции в МПМ; То.ш время захвата общей шины; Тз.упр.- время записи вектора управления; Тс.упр. время считывания вектора управления.
На четвертом, пятом и шестом парных цикалах прохода будет выполнено суммирование восьми чисел и получен результат из четырех чисел это сделают четыре МПМ, и на это затрачено время 8Тс+Т+4Тз+3То.ш+3Тз.упр.+6Тс.упр.
На следующих трех парных циклах прохода еще два МПМ получают из четырех чисел результат в виде двух чисел. На это уйдет время 4Ис+Т+2Тз+3То.ш+3Тз.упр.+ +2Тс.упр.
Наконец на последующих трех парных циклах будет получена результирующая сумма за время 2Тс+Т+Тз+3То.ш+3Тз.упр.+ +Тс.упр.
Общее время составит величину Т1=(16Тс+Т+8Тз+3То.ш+3Тз.упр.+14Тс.упр.)+ +(8Тс+Т+4Тз+3То.ш+3Тз.упр.+6Тс.упр)+ +(4Тс+Т+2Тз+3То.ш+3Тз.упр.+2Тс.упр.)+ +(2Тс+Т+Тз+3То.ш+3Тз.упр.с.упр.)=30Тс+4Т+15Тз+12То.ш+12Тз.упр.+ 23Тс.упр.
Выполнение на структуре предлагаемой системы. Предполагается, что размещение управляющих данных в локальных памятях МПМ такое же, как в случае структуры прототипа, а загрузчик разместил в каждом модуле общей памяти по два числа. Однако, управление и инициализация выполняются отдельным управляющим процессором 5 параллельно по выбранным МПМ и занимает время Тв.у. Выбранные МПМ, работая параллельно в каждой из двух вычислительных секций, выбирают из одноименных модулей общей памяти пару чисел элементов вектора, производят суммирование и помещают результат на место одного из исходных элементов вектора. На суммирование восьми пар чисел затрачено время (за два цикла) 2Тс+Т+Т3+2Тв.у., где Тв.у. время, затраченное управляющим процессором 5 на инициализацию в МПМ подпрограмм.
В следующие два цикла прохода будет произведено суммирование двух чисел из двух разных модулей общей памяти одним из МПМ, например четным. Причем одно из чисел для суммирования считывается МПМ из "собственного" модуля общей памяти за время Тс, а другое число из соседнего, нечетного модуля общей памяти за время Тсш, где Тш время, затраченное на обращение по общей шине через главный 9 и входной коммутаторы. В каждой секции при этом выполнено по два суммирования, и общие временные затраты составят величину (2Тсш+Т+Тз)+2Тв.у.
В следующие два цикла в каждой из двух секций будет выполнено по одному суммированию одним из четных МПМ. Будет затрачено время 2Тсш+Т+Тз+2Тв.у.
Наконец за последние два цикла будет получен результат за время 2Тсш+Т+ + Тз+2Тв.у.
Общее время составит величину Т2+8Тс+4Т+3Тш+4Тз+8Тв.у.
Для оценки величины выигрыша положим конкретные значения:
Т=1 такт (время выполнения арифметической операции а МПМ);
Тс=2 такта (время считывания из модуля общей памяти);
Тз=3 такта (время записи в модуль общей памяти);
То.ш=4 такта (время захвата общей шины);
Тз.упр.=3 такта (время записи вектора управления в общую память);
Тс.упр.=2 такта (время считывания вектора управления из общей памяти);
Тш= 4 такта (время обращения по общей шине через коммутаторы в модуль общей памяти);
Тв.у.=5 тактов (время инициализации подпрограмм в МПМ).
Подставляя значения, получают
Т1=30*2+4*1+15*3+12*4+12*3+23*2=239;
Т2=8*2+4*1+3*4+4*3+5*8=84, выигрыш составит К=Т12=239/84=2,8 раза.
Для оценки производительности системы при синхронном управлении МПМ рассмотрим алгоритм сложения двух ориентированных массивов. Весь алгоритм на языке СИ, например, может быть выражен так: for (i=1; i=N; i++)
a[1]b[i]+c[i]
Организация размещения данных в модулях общей памяти представлена на фиг.15.
При последовательном исполнении для указанного оператора можно выделить следующие шаги:
a[1]b[1]+c[1]
a[2]b[2]+c[2] a[N]b[N]+c[N] т.е. всего N раз.
Для параллельного исполнения указанных операций необходимо использовать в общем случае К МПМ, работающих синхронно с К модулями общей памяти. Для случая, когда К<N, имеют следующие шаги:
О.включить все МПМ; i=1;
1. загрузить регистр АХ (для МП 80386) из ячейки а+4;
2. прибавить к содержимому АХ содержимое ячейки а+2;
3. записать результат в ячейку а;
4. j=i+k;
5. если j<N, то перейти к шагу 1, иначе к шагу 6;
6. конец.
В случае прототипа шаги 1, 2, 3 алгоритма будут выполнены за время Т1= (2tc+t+tз)+tо.ш+3tупр на вычисление одного элемента.
На структуре предлагаемой системы шаги 1, 2, 3 алгоритма будут выполнены за время Т2=(2tc+t+tз)+tв.у над К элементами одновременно. Выигрыш составит около К раз, так как tо.ш+3tупр.tв.у.
Приведенный алгоритм характерен для операций над массивами, в том числе и над матрицами смежности, представляющими графовые структуры, которые широко применяются в задачах искусственного интеллекта. Данный алгоритм является благоприятным для исполнения на предлагаемой системе.
Опишем выполнение крупных логических операций (подзадач), в которых используется параллелизм работы МПМ в сочетании с режимом работы каждого МПМ по программе, записанной в МЛП, над данными, размещенными в одноименном модуле общей памяти.
Примером хорошо распараллеливаемой операции является поиск по ключу. В качестве алгоритма поиска можно взять линейный поиск. Ясно, что достоинства предложенной системы полно раскрываются при поиске в большом массиве слов или записей. В качестве ключа может выступать определенный набор разрядов или, в частности, все слово целиком.
Выполнение этой подзадачи выполняется в два этапа. На предварительном этапе загружаются программы и данные. В МЛП всех МПМ загружается подпрограмма поиска. Массив слов данных загружается в общую память, равномерно распределяясь по всем модулям. Основной этап выполнения (собственно поиск) запускается директивой управляющего процессора 5, после чего все МПМ одновременно и независимо выполняют поиск в одноименных модулях общей памяти. Таким образом, никаких конфликтов обращений к памяти не возникает. Когда МПМ обнаруживает слово с заданным значением ключа, он извещает об этом управляющий процессор, который в свою очередь останавливает работу всех МПМ.
Другая крупная операция сортировка массива по значению ключа. Пусть необходимо расположить все слова большого массива в порядке возрастания значения ключа. Выполнение этой подзадачи состоит из нескольких этапов. На предварительном этапе в МЛП всех МПМ загружаются подпрограмма сортировки, программа сортирующего слияния и процедура предъявления слов (объясняется ниже). В качестве алгоритма сортировки можно взять известный алгоритм сортировки вставками, например алгоритм Шелла. В память управляющего процессора 5 загружаются подпрограмма сортирующего слияния и процедуры запуска и опроса МПМ. Массив слов данных равномерно распределяется по всем модулям общей памяти.
Пусть имеется 16 МПМ. Тогда собственно выполнение подзадачи состоит из пяти этапов (хотя возможна и другая организация выполнения).
Первый этап. Управляющий процессор 5 запускает директивой автономную работу всех МПМ 2.1-2.N. Каждый МПМ сортирует соответствующую часть массива (подмассив), которая расположена в одноименном модуле общей памяти. В результате в каждом модуле общей памяти будет сформирован подмассив, упорядоченный по возрастанию значения ключа.
Второй этап. Выполняется попарное слияние подмассивов. Половина МПМ работает, другая половина простаивает. Пусть работают МПМ с нечетными номерами 2.1, 2.3,2.15. Каждый из них объединяет два сортированных подмассива в один сортированный подмассив. Например, МПМ с номером 2.1 объединяет подмассивы, размещенные в модулях общей памяти с номерами 0 и 1. Вообще i-й МПМ объединяет подмассивы, размещенные в i-м и в (i+1)-м модулях общей памяти. Таким образом, половина обращений каждого МПМ производится к одноименному модулю общей памяти (непосредственно через входной коммутатор), а другая половина обращений производится к неодноименному модулю памяти (через главный коммутатор 9. В качестве алгоритма работы на этом этапе целесообразно взять "двухпутевое слияние".
Третий этап. Работает каждый четвертый МПМ, используя тот же самый алгоритм слияния, что и на предыдущем этапе. Если на предыдущем этапе подмассивы записаны в модули общей памяти с нечетными номерами, то для упрощения доступа к памяти на данном этапе целесообразно использовать МПМ также с нечетными номерами, например 2.1, 2.5, 2.9, 2.13. В результате выполнения этого этапа из восьми сортированных подмассивов будет сформировано четыре сортированных подмассива.
Четвертый этап. Работают два МПМ, сливая две пары подмассивов, сформированных на предыдущем этапе. В итоге формируются два сортированных подмассива.
Пятый этап. Два подмассива сливаются в один итоговый сортированный массив. Массив формирует управляющий процессор 5 по тому же алгоритму. При этом он обращается за данными к тем МПМ, которые имеют кратчайший доступ к подмассивам. МПМ, получив директиву управляющего процессора, выдает на шину очередное слово подмассива и инкрементирует в своем регистре адрес для выборки следующего слова. Кроме того, МПМ контролирует конец подмассива, сигнализируя об этом управляющему процессору специальным кодом условий.
Опишем еще одну крупную ассоциативную операцию, которую можно применять при работе с реляционными базами данных. Эту операцию можно условно назвать "поиск всех однофамильцев". Смысл этой операции в том, чтобы найти в массиве все множества слов, у которых совпадает значение ключа. Примером такой операции может быть поиск всех совместимых изделий или поиск всех фирм-конкурентов, или поиск фирм, у которых совпадают поставщики, и т.д.
Первые четыре этапа выполнения этой операции совпадают с соответствующими этапами вышеописанного алгоритма сортирвоки. В результате выполнения четырех этапов получают два сортированных подмассива. На пятом этапе работает управляющий процессор 5 и два МПМ, которые осуществляют доступ к двум подмассивам. Управляющий процессор запрашивает слова от МПМ в той же последовательности, что и при сортирующем слиянии. Однако в отличие от сортирующего слияния здесь вместо формирования слитого массива формируется множество новых подмассивов слов, у которых совпадают значения ключей. Для этого управляющий процессор 5 дополнительно выполняет проверку значений ключей на равенство. При выполнении алгоритма управляющий процессор использует два регистровых стека данных (по два слова каждый) для просматриваемых слов двух подмассивов соответственно. Два регистра управляющего процессора хранят номера задействованных МПМ, а один регистр используется как указатель для выбора одного МПМ. Пусть, например, в алгоритме задействованы первый и девятый МПМ. Тогда при нулевом значении регистра указателя слова запрашиваются из первого МПМ и отправляются в первый стек, а при единичном значении из девятого модуля во второй стек.
Оценим эффективность системы на примере описанных операций поиска и сортировки. При выполнении описанных операций используются гибкость режимов управления и параллелизм работы модулей системы. При этом повышение производительности достигается за счет следующих факторов.
На самых трудоемких этапах выполнения используется параллельная работа всех или многих МПМ. Например, собственно сортировка неупорядоченных подмассивов выполняется на первом этапе всеми 16 МПМ.
Работа каждого МПМ выполняется с высоким быстродействием за счет того, что, во-первых, в максимально возможной степени используется программа, записанная в локальной памяти данного МПМ, и, во-вторых, не менее половины обращений за данными удовлетворяются одноименным (т.е. ближайшим) модулем общей памяти.
Даже в тех случаях, когда основную часть работы выполняет сам управляющий процессор 5 (например, на последнем этапе операций сортировки и операции "поиска всех однофамильцев"), некоторые вспомогательные функции передаются МПМ (выборка данных из памяти, инкрементирование адреса, контроль конца подмассива). Благодаря этому упрощается работа основного алгоритма и повышается быстродействие.
Оценка производительности системы при выполнении описанных операций. При выполнении операции поиска работают все 16 МПМ одновременно и независимо, выполняя поиск в соответствующих подмассивах. Если подмассивы велики, то при расчете производительности поиска можно пренебречь временем начальной установкой и завершением операции, т.е. время опредяется собственно временем поиска. Как известно, время поиска прямо пропорционально размеру массива. Если система содержит 16 МПМ, то каждый МПМ выполняет поиск в одной шестнадцатой части массива. Поэтому время поиска в среднем сокращается в 16 раз.
Оценим время выполнения операции сортировки. Если используется алгоритм Шелла, то время сортировки массива оценивается величиной N5/3, где N размер сортируемого массива. В описанном варианте операции сортировки на первом этапе каждый МПМ сортирует одну шестнадцатую часть массива. Поэтому время первого этапа равно (N/16)5/3. Время выполнения "двухпутевого слияния" прямо пропорционально размеру получаемого слитого массива. Поэтому время выполнения второго этапа операции составит N/8, время третьего этапа N/4, время четвертого этапа N/2, а время пятого N единиц времени. Таким образом, время выполнения нашей операции сортировки массива оценивается величиной (N/16)5/3+N+N/2+N/4+N/8.
Выполнение всей операции сортировки одним процессором потребовало бы времени N5/3. При N=1024 получают время однопроцессорного выполнения алгоритма 104000 и время выполнения в нашей системе 1000+1920=2920. При размере массива 16384 оценки времени соответственно равны 10500000 и 134700. Такое сильное ускорение объясняется тем, что для сравниваемых систем выбраны различные стратегии решения. Для более правильного сравнения необходимо в однопроцесорной системе также сортировать массив по частям и затем выполнять слияние. Естественно сортировку частей массива придется при этом делать последовательно, что займет приблизительно в 16 раз больше времени, чем в 16-процессорной системе.
Затраты времени на операцию "поиск всех однофамильцев" приблизительно такие же, как для сортировки, так как эти операции почти совпадают по выполнению.
Таким образом, в предложенной системе при выполнении описанных логических операций обеспечивается почти линейный рост производительности при увеличении числа МПМ.
Формула изобретения: 1. ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА, содержащая первый вычислительный блок, включающий N микропроцессорных модулей, N модулей локальной памяти и контроллер ввода-вывода, причем первая группа информационных и управляющих входов-выходов каждого микропроцессорного модуля соединена соответственно с группой информационных и управляющих входов-выходов каждого модуля локальной памяти, вторая группа информационных и управляющих входов-выходов первого из N микропроцессорных модулей соединена с группой информационных и управляющих входов-выходов контроллера ввода-вывода, а третьи группы информационных и управляющих входов-выходов N микропроцессорных модулей являются первыми группами информационных и управляющих входов-выходов первого вычислительного блока, отличающаяся тем, что в нее введены M 1 вычислительных блоков, управляющий процессор, главный коммутатор и M модулей общей памяти, каждый из которых включает N входных коммутаторов и N модулей оперативной памяти, причем четвертые группы информационных и управляющих входов-выходов N микропроцессорных модулей являются соответственно с второй по (N + 1)-ю группами информационных и управляющих входов-выходов каждого вычислительного блока, а пятые группы информационных и управляющих входов-выходов N микропроцессорных модулей являются соответственно с N + 2 по (-2N + 1)-ю группами информационных и управляющих входов-выходов каждого вычислительного блока, N · M групп информационных и управляющих входов-выходов управляющего процессора соединены соответственно с второй по (N + 1)-ю группу информационных и управляющих входов-выходов каждого из M вычислительных блоков, первая группа информационных и управляющих входов-выходов M вычислительных блоков соединена соответственно с первой по M-ю группами информационных и управляющих входов-выходов главного коммутатора, первая группа информационных и управляющих входов-выходов N входных коммутаторов соединены соответственно с группой информационных и управляющих входов-выходов N модулей оперативной памяти, вторые группы информационных и управляющих входов-выходов N входных коммутаторов являются соответственно с первой по N-ю группами информационных и управляющих входов-выходов каждого модуля общей памяти, третья группа информационных и управляющих входов-выходов N входных коммутаторов является соответственно с (N + 1)-й по 2N-ю группами информационных и управляющих входов-выходов каждого модуля общей памяти, а с первой по N-ю группы информационных и управляющих входов-выходов M модулей общей памяти соединены соответственно с (N + 2)-й по (2N + 1)-ю группами информационных и управляющих входов-выходов M вычислительных блоков и с (N + 1) по 2N-ю группами информационных и управляющих входов-выходов M модулей общей памяти, соединены соответственно с (M + 1)-й по N (M + 1)-ю группами информационных и управляющих входов-выходов главного коммутатора, информационный вход-выход управляющего процессора образует информационный вход-выход вычислительной системы.
2. Вычислительная система по п. 1, отличающаяся тем, что управляющий процессор содержит блок конвейерных регистров команд и данных, блок дешифрации команд, блок микропрограммного управления, блок буферных регистров микрокоманд, блок конвейерных регистров памяти микрокоманд, модуль памяти микрокоманд, дешифратор выбора конвейерных регистров, мультиплексор сигналов условий, дешифратор выбора регистров связи, буферный регистр операнда, арифметико-логическое устройство, блок модификации адреса памяти команд и данных, блок сравнения, блок буферных регистров связи, буферный регистр данных, межбуферный регистр связи, буферный регистр адреса, блок обработки прерываний, блок выдачи сигналов синхронизации, модуль локальной памяти команд и данных, контроллер оперативной памяти, буферный регистр связи, синхронизатор, причем, первая группа разрядов информационного выхода блока конвейерных регистров памяти микрокоманд соединена с группой информационных входов блока буферных регистров микрокоманд, вторая группа разрядов с группой входов дешифратора выбора регистров связи, третья группа разрядов с группой управляющих входов блока буферных регистров связи, четвертая группа разрядов с первой группой входов блока сравнения, пятая группа разрядов с первой группой информационных входов мультиплексора сигналов условий, шестая группа разрядов с первой группой входов блока модификации адреса памяти команд и данных, седьмая группа разрядов с первой группой информационных входов арифметико-логического устройства, восьмая группа разрядов с первой группой входов блока микропрограммного управления, девятая группа разрядов с группой информационных входов блока конвейерных регистров команд и данных, десятая группа разрядов с первой группой входов блока дешифрации команд, одиннадцатая группа разрядов с группой входов дешифратора выбора конвейерных регистров, двенадцатая группа разрядов с первой группой информационных входов буферного регистра операндов, тринадцатая группа разрядов с первой группой входов блока обработки прерываний, четырнадцатая группа разрядов с первой группой информационных входов буферного регистра адреса, пятнадцатая группа разрядов с первой группой входов контроллера оперативной памяти, шестнадцатая группа разрядов с первой группой информационных входов буферного регистра данных, семнадцатая группа разрядов с первой группой информационных входов буферного регистра связи, восемнадцатая группа разрядов с первой группой входов блока выдачи сигналов синхронизации, девятнадцатая группа разрядов с управляющим входом межбуферного регистра связи, первая группа, вторая группа выходов блока конвейерных регистров команд и данных соединены соответственно со второй группой входов блока дешифрации команд и второй группой информационных входов арифметико-логического устройства, первая группа информационных входов-выходов блока конвейерных регистров команд и данных соединена с второй группой информационных входов буферного регистра операнда, второй группой информационных входов буферного регистра данных, первой группой информационных входов-выходов модуля локальной памяти команд и данных, второй группой входов контроллера оперативной памяти, второй группой информационных входов-выходов буферного регистра связи и группой информационных входов модуля памяти микрокоманд, вторая группа информационных входов-выходов блока конвейерных регистров команд и данных соединена с третьей группой информационных входов арифметико-логического устройства, первой группой информационных входов-выходов блока буферного регистра связи, с второй группой входов блока модификации адреса памяти команд и данных, второй группой входов блока выдачи сигналов синхронизации и четвертой группой входов блока сравнения, выход дешифратора выбора конвейерных регистров соединен с группой управляющих входов блока конвейерных регистров команд и данных, первая группа, вторая группа управляющих выходов блока микропрограммного управления соединены соответственно с первой группой управляющих входов блока дешифрации команд и группой управляющих входов блока буферных регистров микрокоманд, третья группа выходов блока микропрограммного управления соединена с группой управляющих входов модуля памяти микрокоманд, группа выходов дешифрации блока команд, группа выходов блока буферных регистров микрокоманд и первая группа выходов блока сравнения образуют вторую группу входов блока микропрограммного управления, выход модуля памяти микрокоманд соединен с информационным входом блока конвейерных регистров памяти микрокоманд, управляющий выход мультиплексора сигналов условий соединен с входом сигналов условий блока микропрограммного управления, выход дешифратора выбора регистров связи соединен с второй группой управляющих входов блока буферных регистров памяти, группа выходов буферного регистра операнда соединена с четвертой группой информационных входов арифметико-логического устройства, управляющий вход арифметико-логического устройства и управляющий выход блока обработки прерываний соединены соответственно со вторым и третьим управляющими входами мультиплексора сигналов условий, группа информационных входов-выходов арифметико-логического устройства соединена с первой группой информационных входов-выходов межбуферного регистра связи и группой информационных входов-выходов буферного регистра данных, вторая группа входов-выходов блока модификации адреса памяти команд и данных соединена с вторыми группами информационных входов-выходов межбуферного регистра связи, буферного регистра адреса, блока обработки прерываний, выход группы буферного регистра адреса соединен с третьей группой входов контроллера оперативной памяти, а выход которого соединен с управляющим входом модуля локальной памяти команд и данных, первая группа выхода блока обработки прерываний соединена с третьей группой входов блока сравнения, первая группа выходов блока выдачи сигналов синхронизации соединена с второй группой входов блока сравнения, выход синхронизатора соединен с синхронизирующими входами блока конвейерных регистров команд и данных, блока дешифрации команд, блока микропрограммного управления, блока буферных регистров микрокоманд, блока конвейерных регистров памяти микрокоманд, дешифратора выбора конвейерных регистров, буферного регистра операнда, арифметико-логического устройства, блока модификации адреса памяти команд и данных, блока сравнения, блока буферных регистров связи, буферного регистра данных, межбуферного регистра связи, буферного регистра адреса, блока обработки прерываний, блока выдачи сигналов синхронизации, буферного регистра связи, третья группа информационных входов-выходов буферного регистра связи является внешней магистралью данных управляющего процессра, с второй по (1 + M · N)-ю группы информационных входов-выходов блока буферных регистров связи с второго по (1 + M · n)-ю управляющие выходы блока выдачи сигналов синхронизации и с второго по (1 + M · N)-й управляющие входы блока обработки прерываний образуют соответственно группы информационных и управляющих входов-выходов управляющего процессора, управляющие разряды групп информационных и управляющих входов-выходов управляющего процессора объединены через элемент МОНТАЖНОЕ ИЛИ с входом синхронизатора, второй выход дешифратора выбора регистров связи соединен с вторым входом синхронизатора.