Изобретение относится к автоматике и вычислительной технике и может быть использовано при построении управляющих и вычислительных систем высокой производительности, АСУТП, а также других систем, к которым предъявляются жесткие требования по надежности.
Известно модульное устройство для программного управления и контроля, содержащее блок памяти, счетчик адреса, регистр микроопераций, два мультиплексора, два регистра логических условий, два коммутатора, шифратор, два дешифратора, генератор тактовых импульсов, два триггера, регистр номера, демультиплексор, блок элементов ИЛИ, группу элементов ИЛИ, два элемента ИЛИ и два элемента И (а.с. 1647519 СССР, G 05 B 19/18, опубл. 07.05.91, БИ. N 17).
Недостатком известного устройства является значительное число внешних входов и выходов.
Наиболее близкой к предлагаемому устройству по технической сущности является распределенная система для программного управления, содержащая nxm модулей, где n - число строк, m - число столбцов, причем i-й модуль системы содержит первый, второй, третий и четвертый блоки памяти, блок выбора, блок сообщений, блок анализа, коммутатор адреса, регистр адреса, регистр команд, мультиплексор логических условий, мультиплексор выбора программ, блок синхронизации, блок элементов запрета, блок элементов И, элемент И, элемент ИЛИ (патент 2122229 РФ, G 05 B 19/18, G 06 F 9/28, опубл. 20.11.98, БИ N 32).
Недостатком известной системы является узкая область применения, обусловленная, во-первых, отсутствием средств, обеспечивающих возможность согласования моментов (синхронизацию) окончания групп параллельных участков программ, закрепленных за различными модулями, что может привести к одновременному выполнению несовместимых команд (участков). Во-вторых, отсутствием средств, обеспечивающих возможность непрерывного функционирования системы при возникновении отказов отдельных модулей. То есть отсутствуют средства, позволяющие автоматически, без управления от машины верхнего уровня, осуществлять не только перенастройку модулей на определяемые отказовой ситуацией алгоритмы управления, но и перезагрузку принятых каждым модулем сообщений в соответствии с новыми настройками. Под отказом модуля понимается искажение управляющей информации, подаваемой им на объект управления (средства взаимодействия модулей считаются работоспособными).
Технической задачей изобретения является расширение области применения распределенной системы за счет введения технических средств, обеспечивающих как возможность синхронизации завершения параллельных участков программ, так и непрерывное функционирование системы при возникновении отказов отдельных модулей.
Техническая задача решается тем, что в распределенную систему для программного управления, содержащую nxm модулей, где n - число строк, m - число столбцов, причем i-й модуль системы содержит первый, второй, третий и четвертый блоки памяти, блок выбора, блок сообщений, блок анализа, коммутатор адреса, регистр адреса, регистр команд, мультиплексор логических условий, мультиплексор выбора программ, блок синхронизации, блок элементов запрета, блок элементов И, первый элемент И, первый элемент ИЛИ, причем первый выход блока синхронизации соединен с синхронизирующим входом регистра адреса, выход которого соединен со входами первого, второго, третьего и четвертого блоков памяти, второй выход блока синхронизации соединен с синхронизирующим входом регистра команд, выходы первого и второго полей которого соединены соответственно с первым и вторым информационными входами мультиплексора логических условий, выход третьего поля регистра команд соединен с первым информационным входом коммутатора адреса, выход которого соединен с информационным входом регистра адреса, вход логических условий модуля соединен с управляющим входом мультиплексора логических условий, выход пятого поля регистра команд соединен с информационным входом блока элементов запрета, выход которого соединен с пятым информационным выходом модуля, первый выход блока сообщений соединен со вторым информационным входом коммутатора адреса, выход пятого поля регистра команд соединен с информационным входом блока элементов И, выход которого и выход элемента И соединены с первым информационным входом блока анализа, управляющий выход которого соединен с первым входом первого элемента ИЛИ, третий выход блока синхронизации соединен со вторым входом первого элемента И, выход шестого поля регистра команд соединен с инверсным управляющим входом блока элементов запрета, прямым управляющим входом блока элементов И и первым входом первого элемента И, первый информационный выход блока анализа соединен с первым информационным входом блока сообщений, выходы блоков памяти с первого по четвертый соединены с информационными входами мультиплексора выбора программ с первого по четвертый соответственно, выход мультиплексора выбора программ соединен с информационным входом регистра команд, выход седьмого поля регистра команд соединен с прямым и инверсным управляющими входами коммутатора адреса и первым управляющим входом блока сообщений, третий выход блока выбора соединен со вторым входом первого элемента ИЛИ, выход которого соединен с третьим управляющим выходом модуля, управляющие входы модуля с первого по пятый соединены со входами блока выбора с первого по пятый соответственно, первый и второй выходы блока выбора соединены соответственно с первым и вторым управляющими выходами модуля, второй информационный выход q-го модуля k-го столбца соединен со вторым информационным входом q-го модуля (k+1)-го столбца, первый информационный выход p-го модуля (j+1)-й строки соединен с первым информационным входом p-го модуля j-й строки, четвертый информационный выход (q+1)-го модуля (k+1)-го столбца соединен с четвертым информационным входом (q+1)-го модуля k-го столбца, третий информационный выход (p+1)-го модуля j-й строки соединен с третьим информационным входом (p+1)-го модуля (j+1)-й строки, первый управляющий выход первого модуля p-го столбца соединен со вторым управляющим входом модулей p-го столбца с первого по n-й, первый управляющий выход (j+1)-го модуля p-го столбца соединен с третьим управляющим входом j-го модуля p-го столбца, второй управляющий выход k-го модуля q-й строки соединен с четвертым управляющим входом (k+1)-го модуля q-й строки, второй управляющий выход k-го модуля j-й строки соединен с пятым управляющим входом (k+1)-го модуля (j+1)-й строки, четвертый управляющий вход модулей первого столбца с первого по n-й, третий управляющий вход модулей n-й строки с первого по m-й, пятый управляющий вход модулей первой строки с первого по m-й и первого столбца со второго по n-й соединены с источником логического нуля, дополнительно введены второй, третий и четвертый элементы ИЛИ, второй элемент И, схема сравнения, одновибратор, триггер, регистр, первый и второй элементы задержки, демультиплексор, мультиплексор.
Причем выход мультиплексора логических условий соединен с первым входом четвертого элемента ИЛИ, выход которого соединен с первым информационным входом коммутатора адреса, выход четвертого поля регистра команд соединен с управляющим входом схемы сравнения, выход которой соединен со вторым входом четвертого элемента ИЛИ и первым входом второго элемента И, выход которого, выход четвертого элемента ИЛИ, выход третьего поля регистра команд и выход первого элемента И соединены с восьмым информационным входом блока сообщений, шестой выход которого соединен со вторым информационным входом схемы сравнения, первый информационный вход которой соединен с выходом пятого поля регистра команд, первый выход блока синхронизации соединен со вторым входом второго элемента И.
Первый управляющий вход модуля соединен с третьим информационным входом регистра, выходы которого с первого по третий соединены с управляющими входами блока анализа с первого по третий соответственно, шестой управляющий вход модуля соединен со вторым входом второго элемента ИЛИ, выход которого соединен с четвертым управляющим выходом модуля, седьмой и восьмой управляющие входы которого соединены соответственно с первым и вторым входами третьего элемента ИЛИ, выход которого соединен с пятым управляющим выходом модуля, первый, второй, третий и четвертый информационные входы которого соединены соответственно с первым, вторым, третьим и четвертым информационными входами демультиплексора, первый, второй, третий и четвертый выходы мультиплексора соединены соответственно с первым, вторым, третьим и четвертым информационными выходами модуля.
Первый управляющий вход модуля соединен с первым входом блока синхронизации и входом одновибратора, выход которого соединен с первым входом второго элемента ИЛИ, четвертый и пятый выходы блока выбора соединены соответственно с первым и вторым информационными входами регистра, первый и второй выходы которого соединены с первым и вторым управляющими входами мультиплексора выбора программ соответственно и со вторым и третьим управляющими входами блока сообщений соответственно, девятый управляющий вход модуля соединен с входом второго элемента задержки, S-входом триггера и входом первого элемента задержки, выход которого соединен с R-входом триггера, прямой выход которого соединен со вторым входом блока синхронизации, R-входом регистра команд, четвертым управляющим входом блока анализа, четвертым управляющим входом блока сообщений, управляющим входом демультиплексора и управляющим входом мультиплексора.
Выход второго элемента задержки соединен с синхронизирующим входом регистра, выходы первой группы выходов демультиплексора с первого по четвертый соединены с информационными входами блока анализа со второго по пятый соответственно, выходы второй группы выходов демультиплексора с первого по четвертый соединены с информационными входами блока сообщений с четвертого по седьмой соответственно, информационные выходы блока анализа со второго по пятый соединены со входами первой группы информационных входов мультиплексора с первого по четвертый соответственно, шестой и седьмой информационные выходы блока анализа соединены соответственно со вторым и третьим информационными входами блока сообщений.
Выходы блока сообщений со второго по пятый соединены со входами второй группы информационных входов мультиплексора с первого по четвертый соответственно, четвертый управляющий выход k-го модуля q-й строки соединен с шестым управляющим входом (k+1)-го модуля q-й строки, четвертый управляющий выход m-го модуля q-й строки соединен с седьмым управляющим входом модулей q-й строки с первого по m-й, пятый управляющий выход (j+1)-ro модуля p-го столбца соединен с восьмым управляющим входом j-го модуля p-го столбца, пятый управляющий выход первого модуля p-го столбца соединен с девятым управляющим входом модулей p-го столбца с первого по n-й, шестой управляющий вход модулей первого столбца с первого по n-й, восьмой управляющие входы модулей n-й строки с первого по m-й соединены с источником логического нуля.
Сущность изобретения заключается в следующем. В распределенной системе из nxm модулей n-я строка и m-й столбец являются резервными. Местоположение модуля в матрице определятся его физическим адресом (ФА) - (i,j) (где - номер строки, - номер столбца матрицы, содержащих модуль). Каждый модуль (i, j) может выполнять как собственный алгоритм функционирования, так и алгоритмы функционирования трех соседних модулей - верхнего (i-1, j)-го, левого (i,j-1)-го и диагонального (i-1,j-1)-го в случае их отказов или изменения алгоритмов функционирования. Наряду с ФА для идентификации модулей системы используется так называемый логический адрес (ЛА). Модуль (i,j) имеет ЛА (i',j'), если он реализует алгоритм модуля с ФА (i',j'). При отсутствии отказов резервные модули не задействованы (они не имеют собственных алгоритмов функционирования), ФА и ЛА всех модулей совпадают.
При возникновении отказов распределенная система перестраивается путем изменения алгоритмов функционирования модулей по следующим правилам:
в каждом столбце самому нижнему отказавшему модулю присваивается статус "вертикальный отказ", а всем остальным отказавшим модулям - "горизонтальный отказ";
если в любой строке имеется более одного модуля со статусом "горизонтальный отказ", то фиксируется фатальный отказ (ФО) распределенной системы - перестройка невозможна;
в каждом столбце всем модулям ниже модуля со статусом "вертикальный отказ" (в том числе и резервным) присваивается статус "вертикальная перестройка";
в каждой строке всем модулям правее модуля со статусом "горизонтальный отказ" (в том числе и резервным) присваивается статус "горизонтальная перестройка";
ЛА модулей со статусом "горизонтальная перестройка" приобретают значение ФА модулей, стоящих от них слева;
ЛА модулей со статусом "вертикальная перестройка", приобретают значение ФА модулей, стоящих от них сверху;
ЛА всех отказавших модулей полагается нулевым.
Показанные выше шаги последовательного выполнения перестройки на самом деле выполняются параллельно при помощи комбинационных схем.
Если (i,j)-й модуль не отказал, то после перестройки (реконфигурации) он может выполнять либо собственный алгоритм, либо алгоритм одного из трех соседей: верхнего (i-1,j)-го, диагонального (i-1,j-1)-го или левого (i,j-1)-го. Если алгоритм (i,j)-го модуля не выполняется им самим, то он выполняется одним из его трех соседей: правым (i,j+1)-м, диагональным (i+1,j+1)-м или нижним (i+1,j)-м.
При возникновении новых отказов перестройка системы осуществляется повторно, и так до тех пор, пока не произойдет фатальный отказ.
Взаимодействие модулей распределенной системы осуществляется путем обмена сообщениями. Сообщения между модулями передаются по четырем направлениям и содержат адрес программы, которую должен выполнить модуль-приемник, ФА модуля-приемника и специальный бит обхода (первоначально устанавливаемый в нуль).
При отсутствии в распределенной системе отказов сообщение последовательно передается от модуля-источника в модуль с ФА, равным адресу в сообщении (АС). Этот модуль будет являться модулем-приемником. Передача сообщения сначала осуществляется по столбцу (по вертикали). В ходе передачи каждый транзитный модуль сравнивает свой ЛА с АС. Если они равны, то данный модуль является модулем-приемником и сообщение передано. Иначе, модуль сравнивает вертикальную составляющую своего ФА (т.е. номер соответствующего ему столбца) с вертикальной составляющей АС. Если они не равны, он передает сообщение в соседний по вертикали модуль в сторону уменьшения разницы между вертикальными составляющими адресов. При совпадении вертикальных составляющих АС и ФА модуля направление передачи сообщения меняется на горизонтальное и сообщение аналогичным образом (путем сравнения горизонтальных составляющих ФА модулей и АС) передается по горизонтали в модуль-приемник.
При наличии в распределенной системе отказавших модулей сообщение так же, как и при отсутствии отказов, передается сначала в модуль с ФА, равным АС. При этом так как ЛА модулей могут не совпадать с их ФА, то сообщение может быть принято модулем-приемником до достижения сообщением модуля с ФА, равным АС. Если ЛА модуля с ФА, равным АС, равен АС, то он как и при отсутствии отказов является модулем-приемником. Если они не равны, то, следовательно, алгоритм данного модуля выполняется одним из его трех соседей: правым (i, j+1)-м, правым по диагонали (i+1,j+1)-м или нижним (i+1,j)-м и модуль-приемник следует искать среди них. Для идентификации этапа поиска модуля-приемника бит обхода в сообщении устанавливается в единицу. Затем сообщение последовательно передается в модуль (i,j+1), из него - в модуль (i+1,j+1) и из последнего - в модуль (i+1,j). При этом каждый модуль сравнивает свой ЛА с АС и в случае их совпадения прекращает передачу сообщения - модуль-приемник найден. В случае несовпадения адресов даже в модуле (i+1,j) генерируется фатальный отказ распределенной системы - перестройка системы невозможна.
Синхронизация окончания параллельных участков осуществляется на основе предварительного определения условий синхронизации - количества параллельных участков, сходящихся к каждой из вершин слияния. Для каждой вершины слияния задается ведущий модуль - один из модулей, за которым закреплен параллельный участок. Остальные модули по отношению к указанной вершине рассматриваются как ведомые.
Каждый из ведомых модулей по окончании параллельного участка передает в ведущий модуль сообщение синхронизации, а ведущий модуль при приеме таких сообщений увеличивает значение счетчика сообщений синхронизации на единицу. При завершении параллельного участка ведущим модулем он выполняет команду синхронизации. Команда синхронизации содержит в своем формате число, равное количеству ведомых модулей. Ведущий модуль сравнивает это число со значением счетчика и при их совпадении переходит к выполнению следующей команды и обнуляет счетчик, а при несовпадении ожидает завершения параллельных участков всеми ведомыми модулями.
Непрерывность функционирования распределенной системы обеспечивается за счет переразмещения (перезагрузки) в ходе перестройки принятых каждым модулем сообщений и слов состояний синхронизации. При этом, после переназначения логических адресов каждый модуль в случае несовпадения АС в принятых им ранее сообщениях со своим ЛА передает их и принимает соответственно сообщения с АС равными своему ЛА. Передача сообщений производится по кольцевым маршрутам по часовой стрелке. При этом начальное направление выдачи определяется АС принятых ранее сообщений, а направление приема - ЛА модуля. После перезагрузки сообщений перестройка заканчивается, и система продолжает функционирование. При этом каждый модуль начинает свою работу с повтора последней программы управления. Перезагрузка слов состояний синхронизации осуществляется параллельно перезагрузке сообщений.
Введение второго и третьего элементов ИЛИ, одновибратора, триггера, регистра и первого и второго элементов задержки необходимо для распределенной синхронизации процесса реконфигурации в модулях.
Введение демультиплексора и мультиплексора необходимо для изменения маршрутов передачи сообщений при реконфигурации.
Введение четвертого элемента ИЛИ, второго элемента И и схемы сравнения необходимо для синхронизации окончания параллельных участков.
Сущность изобретения поясняется чертежами, где на фиг. 1 представлена функциональная схема i-го модуля распределенной системы для программного управления; на фиг. 2 - функциональная схема блока выбора; на фиг. 3 - функциональная схема блока анализа; на фиг. 4 - функциональная схема блока сообщений; на фиг. 5 - функциональная схема блока синхронизации; на фиг. 6 - функциональная схема блока памяти сообщений; на фиг. 7 - функциональная схема блока выбора направления передачи информации; на фиг. 8 - функциональная схема блока памяти константы; на фиг. 9 - формат команды обработки (а) и формат операционной части команды обмена (б); на фиг. 10 - структурная схема распределенной системы; на фиг. 11 - пример пошагового выполнения реконфигурации распределенной системы; на фиг. 12 - процесс передачи сообщения; на фиг. 13 - процесс перезагрузки сообщений.
i-й модуль распределенной системы для программного управления (фиг. 1) содержит первый 3, второй 4, третий 5 и четвертый 6 блоки памяти, блок 20 выбора, блок 23 сообщений, блок 22 анализа, коммутатор 1 адреса, регистр 2 адреса, регистр 8 команд, мультиплексор 9 логических условий, мультиплексор 7 выбора программ, блок 13 синхронизации, блок 10 элементов запрета, блок 11 элементов И, первый 12 и второй 16 элементы И, первый 25.1, второй 25.2, третий 25.3 и четвертый 25.4 элементы ИЛИ, схему 15 сравнения, одновибратор 14, триггер 18, регистр 19, первый элемент задержки 17.1, второй элемент задержки 17.2, демультиплексор 21, мультиплексор 24.
Причем первый управляющий вход 26 модуля соединен с третьим информационным входом регистра 19, выходы которого с первого по третий соединены с управляющими входами блока 22 анализа с первого по третий соответственно, шестой управляющий вход 31 модуля соединен со вторым входом элемента ИЛИ 25.2, выход которого соединен с четвертым управляющим выходом 43 модуля, седьмой 32 и восьмой 33 управляющие входы которого соединены соответственно с первым и вторым входами элемента ИЛИ 25.3, выход которого соединен с пятым управляющим выходом 44 модуля, первый 36, второй 37, третий 38 и четвертый 39 информационные входы которого соединены соответственно с первым, вторым, третьим и четвертым информационными входами демультиплексора 21.
Первый, второй, третий и четвертый выходы мультиплексора 24 соединены соответственно с первым 45, вторым 46, третьим 47 и четвертым 48 информационными выходами модуля, первый управляющий вход 26 модуля соединен с первым входом блока 13 синхронизации и с входом одновибратора 14, выход которого соединен с первым входом элемента ИЛИ 25.2.
Девятый управляющий вход 34 модуля соединен со входом второго элемента задержки 17.2, выход которого соединен с синхронизирующим входом регистра 19, S-входом триггера 18 и входом первого элемента задержки 17.1, выход которого соединен с R-входом триггера 18, прямой выход которого соединен со вторым входом блока 13 синхронизации, R-входом регистра 8 команд, четвертым управляющим входом блока 22 анализа, четвертым управляющим входом блока 23 сообщений, управляющим входом демультиплексора 21 и управляющим входом мультиплексора 24.
Выходы первой группы выходов демультиплексора 21 с первого по четвертый соединены с информационными входами блока 22 анализа со второго по пятый соответственно, выходы второй группы выходов демультиплексора 21 с первого по четвертый соединены с информационными входами блока 23 сообщений с четвертого по седьмой соответственно, информационные выходы блока 22 анализа со второго по пятый соединены со входами первой группы информационных входов мультиплексора 24 с первого по четвертый соответственно, первый, шестой и седьмой информационные выходы блока 22 анализа соединены соответственно с первым, вторым и третьим информационными входами блока 23 сообщений, выходы блока 23 сообщений со второго по пятый соединены со входами второй группы информационных входов мультиплексора 24 с первого по четвертый соответственно.
Первый выход блока 13 синхронизации соединен с синхронизирующим входом регистра 2 адреса, выход которого соединен со входами первого 3, второго 4, третьего 5 и четвертого 6 блоков памяти, первый выход блока 13 синхронизации соединен с вторым входом элемента И 16 и синхронизирующим входом регистра 8 команд, выходы первого и второго полей которого соединены соответственно с первым и вторым информационными входами мультиплексора 9 логических условий, выход которого соединен с первым входом элемента ИЛИ 25.4, выход которого и выход третьего поля регистра 8 команд соединены с первым информационным входом коммутатора 1 адреса, выход которого соединен с информационным входом регистра 2 адреса.
Вход 35 логических условий модуля соединен с управляющим входом мультиплексора 9 логических условий, выход четвертого поля регистра 8 команд соединен с управляющим входом схемы 15 сравнения, выход которой соединен со вторым входом элемента ИЛИ 25.4 и первым входом элемента И 16, выход которого, выход элемента ИЛИ 25.4, выход третьего поля регистра 8 команд и выход элемента И 12 соединены с восьмым информационным входом блока 23 сообщений, шестой выход которого соединен со вторым информационным входом схемы 15 сравнения, первый информационный вход которой соединен с выходом пятого поля регистра 8 команд.
Выход пятого поля регистра 8 команд соединен с информационным входом блока 10 элементов запрета, выход которого соединен с пятым информационным выходом 49 модуля, первый выход блока 23 сообщений соединен со вторым информационным входом коммутатора 1 адреса, выход пятого поля регистра 8 команд соединен с информационным входом блока 11 элементов И, выход которого и выход элемента И 12 соединены с первым информационным входом блока 22 анализа, управляющий выход которого соединен с первым входом элемента ИЛИ 25.1.
Третий выход блока синхронизации 13 соединен со вторым входом элемента И 12, выход шестого поля регистра 8 команд соединен с инверсным управляющим входом блока 10 элементов запрета, прямым управляющим входом блока 11 элементов И и первым входом элемента И 12, выходы блоков 3, 4, 5 и 6 памяти соединены с информационными входами мультиплексора 7 выбора программ с первого по четвертый соответственно, выход мультиплексора 7 выбора программ соединен с информационным входом регистра 8 команд, выход седьмого поля регистра 8 команд соединен с прямым и инверсным управляющими входами коммутатора 1 адреса и первым управляющим входом блока 23 сообщений.
Четвертый и пятый выходы блока 20 выбора соединены соответственно с первым и вторым информационными входами регистра 19, первый и второй выходы которого соединены с первым и вторым управляющими входами мультиплексора 7 выбора программ соответственно и со вторым и третьим управляющими входами блока 23 сообщений соответственно, третий выход блока 20 выбора соединен со вторым входом элемента ИЛИ 25, выход которого соединен с третьим управляющим выходом 42 модуля, первый 26, второй 27, третий 28, четвертый 29 и пятый 30 управляющие входы модуля соединены со входами блока 20 выбора с первого по пятый соответственно, первый и второй выходы блока 20 выбора соединены соответственно с первым 40 и вторым 41 управляющими выходами модуля.
Блок 20 выбора (фиг. 2) содержит элемент запрета 50, первый 51 и второй 52 элементы И, первый 53 и второй 54 элементы ИЛИ, элемент И-ИЛИ 55, причем выход элемента И-ИЛИ 55 соединен с четвертым выходом блока, второй вход блока соединен с прямым входом элемента запрета 50, выход которого соединен с первым инверсным и вторым прямым входами элемента И-ИЛИ 55 и пятым выходом блока, первый и третий входы блока соединены с первым и вторым входами элемента ИЛИ 53 соответственно и с первым и вторым входами элемента И 51 соответственно, выход элемента ИЛИ 53 соединен с инверсным входом элемента запрета 50 и первым выходом блока, четвертый вход которого соединен со вторым входом элемента ИЛИ 54, вторым входом элемента И 52 и первым прямым входом элемента И-ИЛИ 55, второй инверсный вход которого соединен с пятым входом блока, выход элемента И 51 соединен с первым входом элемента ИЛИ 54 и первым входом элемента И 51, выход которого соединен с третьим выходом блока, выход элемента ИЛИ 54 соединен со вторым выходом блока.
Блок 22 анализа (фиг. 3) содержит группу 56.1 - 56.5 блоков памяти сообщений, мультиплексор 57, блок 58 выбора направления передачи информации, блок 59 памяти константы, триггер 60, буферный регистр 61 с полями: операционным 61.1, вертикального адреса 61.2, горизонтального адреса 61.3 и бита обхода 61.4, демультиплексор 62, выходной демультиплексор 63, дешифратор 64, счетчик 65, распределитель импульсов 66, первый элемент запрета 67, второй элемент запрета 69, первый элемент ИЛИ 68, второй элемент ИЛИ 70.
Причем выход элемента ИЛИ 68 соединен с прямым входом элемента запрета 69 и инверсным входом элемента запрета 67, выход которого соединен с первым входом элемента ИЛИ 70, выход которого соединен с входом сброса (R-входом) триггера 60, четвертый управляющий вход блока соединен со вторым входом элемента ИЛИ 70 и инверсным входом элемента запрета 69, выход которого соединен с входом установки (S-входом) триггера 60, прямой выход триггера 60 соединен с управляющим входом распределителя импульсов 66, четвертый выход которого соединен со счетным входом счетчика 65.
Выходы счетчика 65 соединены со входами дешифратора 64 и управляющими входами мультиплексора 57, выход которого соединен с информационным входом буферного регистра 61, синхронизирующий вход которого соединен со вторым выходом распределителя импульсов 66, первый - третий входы блока 59 памяти константы соединены соответственно с первым - третьим управляющими входами блока, первый и второй выходы блока 59 памяти константы соединены с первым и четвертым входами блока 58 выбора направления передачи информации соответственно и с шестым и седьмым информационными выходами блока соответственно, второй и третий выходы блока 58 выбора направления передачи информации соединены соответственно с первым и вторым управляющими входами выходного демультиплексора 63, второй, третий и пятый входы блока 58 выбора направления передачи информации соединены соответственно с выходами 61.2, 61.3 и 61.4 буферного регистра 61, выходы 61.1, 61.2 и 61.3 буферного регистра 61, пятый выход блока 58 выбора направления передачи информации и третий выход распределителя импульсов 66 соединены с информационным входом демультиплексора 62.
Второй выход демультиплексора 62 соединен с первым информационным выходом блока, первый выход демультиплексора 62 соединен с информационным входом выходного демультиплексора 63, первый - четвертый выходы которого соединены соответственно со вторым - пятым информационными выходами блока, первый - пятый информационные входы которого соединены с информационными и первыми управляющими входами блоков 56.1 - 56.5 памяти сообщений соответственно, информационные выходы которых соединены с соответствующими информационными входами мультиплексора 57.
Управляющие выходы блоков 56.1 - 56.5 памяти сообщений соединены со входами элемента ИЛИ 68, третий выход распределителя импульсов 66 соединен с прямым входом элемента запрета 67, первый выход блока 58 выбора направления передачи информации соединен с управляющим входом демультиплексора 62, четвертый выход блока 58 выбора направления передачи информации соединен с управляющим выходом блока, первый выход распределителя импульсов 66 соединен с тактовыми входами блоков 56.1 - 56.5 памяти сообщений, выходы дешифратора 64 с первого по пятый соединены со вторыми управляющими входами блоков 56.1 - 56.5 памяти сообщений соответственно.
Блок 23 сообщений (фиг. 4) содержит первый 71, второй 86, тритий 87, четвертый 88 и пятый 89 демультиплексоры, первый блок регистров 72.1 - 72.l (где l - максимальная глубина очереди), второй блок регистров 84.1 - 84.l, группу блоков элементов ИЛИ 73.1 - 73.(l-1), первую группу элементов И 74.1 - 74. l, вторую группу элементов И 75.1 - 75.l, группу элементов ИЛИ 76.1 - 76. l, элемент ИЛИ 77, первый 78.1 и второй 78.2 одновибраторы, распределитель импульсов 79, первую 80.1, вторую 80.2 и третью 80.3 схемы сравнения, блок 81 элементов запрета, первый 82.1 и второй 82.2 элементы И, первый 83.1 и второй 83.2 дешифраторы, первый 90, второй 91, третий 92, четвертый 93, пятый 94 и шестой 85 мультиплексоры.
Причем первый управляющий вход блока соединен с входом одновибратора 78.1, выход которого соединен с первым входом элемента ИЛИ 77, выход которого соединен с инверсным управляющим входом демультиплексора 71, первым входом элемента И 82.2 и первыми входами элементов ИЛИ 76.1 - 76.l, выходы которых соединены с синхронизирующими входами регистров 72.1 - 72.l соответственно, четвертый управляющий вход блока соединен с инверсным управляющим входом одновибратора 78.1, с вторым входом элемента И 82.2 и управляющим входом мультиплексора 90, выход которого соединен с информационным входом демультиплексора 71 и со вторыми входами элементов И 75.1 - 75.l, выходы которых соединены со вторыми входами элементов ИЛИ 76.1 - 76.l соответственно.
Первый, . . . , (l-1)-й выходы демультиплексора 71 соединены с первыми входами блоков элементов ИЛИ 73.1 - 73.(l-1) соответственно, выходы блоков элементов ИЛИ 73.2 - 73.(l-1) соединены с информационными входами регистров 72.2 - 72.(l-1) соответственно и регистров 84.2 - 84.(l-1) соответственно, выход блока элементов ИЛИ 73.1 соединен с первым информационным входом мультиплексора 85, выход которого соединен с информационным входом регистра 72.1 и регистра 84.1, выход регистра 84.1 соединен с шестым выходом блока, l-й выход демультиплексора 71 соединен с информационным входом регистра 72.l и регистра 84.l, первый информационный вход блока соединен с информационным и инверсным управляющим входами блока 81 элементов запрета и первым и вторым входами элемента И 82.1, выход которого соединен с инкрементирующим входом регистра 84.1.
Выход блока 81 элементов запрета соединен с первым информационным входом мультиплексора 90, инверсные выходы блока регистров 72.1 - 72.l соединены со входами элементов И 74.1-74. l соответственно, выходы которых соединены с первыми входами элементов И 75.1-75.l соответственно и адресным входом демультиплексора 71, прямые выходы регистров 72.2 - 72.l и выходы регистров 84.2 - 84.l соединены со вторыми входами блоков элементов ИЛИ 73.1 - 73.(l-1) соответственно, прямой выход регистра 72.1 соединен с первыми входами схем 80.1, 80.2 и 80.3 сравнения и первым выходом блока, второй информационный вход которого соединен со вторым входом схемы 80.1 сравнения, инверсный выход которой соединен со входом распределителя импульсов 79, первый выход которого, прямой выход регистра 72.1 и выход регистра 84.1 соединены со вторыми входами мультиплексоров 91, 92, 93 и 94.
Выходы мультиплексоров 91, 92, 93 и 94 соединены соответственно с третьим, четвертым, пятым и вторым выходами блока, третий информационный вход которого соединен со вторыми входами схем 80.2 и 80.3 сравнения, инверсные выходы схем 80.2 и 80.3 сравнения соединены соответственно с первым и вторым входами дешифратора 83.2, выходы которого с первого по четвертый соединены с управляющими входами мультиплексоров 91, 94, 92 и 93 соответственно, информационные входы блока с четвертого по седьмой соединены с информационными входами демультиплексоров 86, 87, 88 и 89 соответственно, первые выходы демультиплексоров 86, 87, 88 и 89 соединены с первыми информационными входами мультиплексоров 91, 92, 93 и 94 соответственно.
Второй и третий управляющие входы блока соединены соответственно с первым и вторым входами дешифратора 83.1, выходы которого с первого по четвертый соединены с управляющими входами демультиплексоров 86, 87, 88 и 89 соответственно, вторые выходы демультиплексоров 86, 87, 88 и 89 соединены со вторым информационным входом мультиплексора 90, второй выход распределителя импульсов 79 соединен со вторым входом элемента ИЛИ 77, восьмой информационный вход блока соединен со вторым информационным и управляющим входами мультиплексора 85, третьим входом элемента ИЛИ 76.1 и входом одновибратора 78.2, выход которого соединен со входом сброса регистра 84.1, выход элемента И 82.2 соединен с синхронизирующими входами блока регистров 84.1 - 84.l.
Блок 13 синхронизации (фиг. 5) содержит элемент ИЛИ-НЕ 95, распределитель импульсов 96, причем первый и второй входы блока соединены соответственно с первым и вторым входами элемента ИЛИ-НЕ 95, выход которого соединен со входом распределителя импульсов 96, первый, второй и третий выходы которого соединены соответственно с первым, вторым и третьим выходами блока.
Первый 56.1 - пятый 56.5 блоки памяти сообщений (фиг. 6) содержат блок регистров 97.1 - 97. K (где K - максимальная глубина очереди сообщений), группу блоков элементов ИЛИ 98.1 - 98.(K-1), первый блок элементов И 99.1 - 99.K, второй блок элементов И 100.1 - 100.K, блок элементов ИЛИ 101.1 - 101. K, демультиплексор 102, элемент И 103, элемент И-НЕ 104, причем тактовый и второй управляющий входы блока соединены с первым и вторым входами элемента И 103 соответственно, выход которого соединен со вторыми входами элементов ИЛИ 101.1 - 101. K и инверсным управляющим входом демультиплексора 102, первый выход которого соединен с информационным входом регистра 97.K. Второй - K-й выходы демультиплексора 102 соединены со вторыми входами блоков элементов ИЛИ 98. (K-1) - 98.1 соответственно, выходы которых соединены с информационными входами регистров 97.(K-1) - 97.1 соответственно. Инверсные выходы регистров 97.1 - 97.K соединены со входами элементов И 99.1 - 99.K соответственно, выходы которых соединены с адресным входом демультиплексора 102 и входами элемента И-НЕ 104, выход которого соединен с управляющим выходом блока, информационный выход которого соединен с прямым выходом регистра 97.1.
Прямые выходы регистров 97.K - 97.2 соединены с первыми входами блоков элементов ИЛИ 98.(K-1) - 98.1 соответственно. Первый управляющий вход блока соединен со вторыми входами элементов И 100.1 - 100.K, первые входы которых соединены с выходами элементов И 99.1 - 99.K соответственно. Выходы элементов И 100.1 - 100.K соединены с первыми входами элементов ИЛИ 101.1 - 101.K соответственно, выходы которых соединены со входами синхронизации регистров 97.1 - 97.K. соответственно. Информационные входы блока соединены с информационными входами демультиплексора 102.
Блок 58 выбора направления передачи информации (фиг. 7) содержит первую 105, вторую 106 и третью 107 схемы сравнения, мультиплексор 108, шифратор 109, первый 110, второй 111, третий 112, четвертый 113, пятый 114 и шестой 115 элементы И, элемент ИЛИ 116, причем пятый вход блока соединен со вторым входом элемента ИЛИ 116, выход которого соединен с управляющим входом мультиплексора 108, пятым выходом блока и третьим входом шестого элемента И 115, выход которого соединен с четвертым выходом блока, первый вход блока соединен с первым входом схемы 105 сравнения, выход "Равно" которой соединен с первым выходом блока, второй и третий входы которого соединены соответственно с первыми входами схем 106 и 107 сравнения, четвертый вход блока соединен со вторыми входами схем 106 и 107 сравнения, выход "Больше" схемы 106 сравнения соединен с четвертым входом первой группы информационных входов мультиплексора 108, выход "Меньше" схемы 106 сравнения соединен со вторым входом первой группы информационных входов мультиплексора 108 и первыми входами элементов И 110 и 111, выходы которых соединены соответственно со вторым и первым входами второй группы информационных входов мультиплексора 108.
Выход "Равно" схемы 106 сравнения соединен со вторыми входами элементов И 112, 113 и 114, выход "Больше" схемы 107 сравнения соединен с первым входом элемента И 112, выход которого соединен с первым входом первой группы информационных входов мультиплексора 108, выходы "Меньше" и "Равно" схемы 107 сравнения соединены со вторыми входами элементов И 110 и 111 соответственно и первыми входами элементов И 113 и 114 соответственно, выход элемента И 113 соединен с третьим входом первой группы информационных входов мультиплексора 108 и вторым входом элемента И 115, первый вход которого соединен с выходом "Не равно" схемы 105 сравнения, выход элемента И 114 соединен с четвертым входом второй группы информационных входов мультиплексора 108 и первым входом элемента ИЛИ 116, первый - четвертый выходы мультиплексора 108 соединены соответственно с первым - четвертым входами шифратора 109, первый и второй выходы которого соединены соответственно со вторым и третьим выходами блока, второй вход схемы 105 сравнения подключен ко второму и третьему входам блока.
Блок 59 памяти константы (фиг. 8) содержит блок 117 хранения физического адреса, группу блоков 118.1 - 118.3 хранения физического адреса, мультиплексор 119, выход которого соединен с первым выходом блока, первый - третий входы которого соединены с первым - третьим адресными входами мультиплексора 119 соответственно, второй - четвертый информационные входы которого соединены с выходами блоков 118.1 - 118.3 группы блоков хранения физического адреса соответственно, выход блока 117 хранения физического адреса соединен с первым информационным входом мультиплексора 119 и вторым выходом блока, на пятом - восьмом информационных входах мультиплексора 119 постоянно присутствует потенциал логического нуля.
Рассмотрим процесс функционирования распределенной системы.
Так как система состоит из однотипных модулей, ее работу рассмотрим на примере функционирования отдельного модуля, например модуля с физическим адресом (i,j), причем работу последнего будем рассматривать во взаимосвязи с другими модулями системы.
Запуск и останов системы осуществляется соответственно подачей и отключением напряжения питания. Первоначально элементы памяти (i,j)-го модуля находятся в нулевом состоянии, за исключением разряда 8.7 регистра 8 команд, определяющего признак конца программы управления, и регистра 72.1 в блоке 23 сообщений, содержащего адрес первой команды.
После запуска системы нулевые сигналы с первого управляющего входа 26 модуля и выхода триггера 18 поступают соответственно через первый и второй входы блока 13 синхронизации (фиг. 5) на первый и второй входы элемента ИЛИ-НЕ 95, на выходе которого образуется единичный сигнал, который поступает на вход распределителя импульсов 96. На выходах распределителя импульсов 96 (а следовательно, и блока 13 синхронизации) начинается формирование трех импульсных последовательностей, сдвинутых друг относительно друга на треть периода.
Первый тактовый импульс с первого выхода блока 13 синхронизации (фиг. 1) поступает на синхронизирующий вход регистра 2 адреса и осуществляет запись в него информации с первого выхода блока 23 сообщений через коммутатор 1 адреса. С выхода регистра 2 адрес команды поступает на входы первого 3, второго 4, третьего 5 и четвертого 6 блоков памяти и обеспечивает считывание первой команды программы управления. Считывание производится как из блока 3, так и из блоков 4, 5 и 6, однако передача команд на информационный вход регистра 8 осуществляется только из одного блока.
Выбор блока памяти, а следовательно, и назначение алгоритма функционирования модуля осуществляется путем настройки мультиплексора 7. Настройка выполняется блоком 20 выбора алгоритма функционирования (работа блока 20 рассматривается ниже).
В случае если отказавшие модули отсутствуют (фиг. 10) или имеются, но не требуют перестройки текущего модуля на реализацию другого алгоритма (например, фиг. 11, модуль с ФА (2,3)), команды соответствующей программы считываются из блока 3. В противном случае текущий модуль переходит к выполнению программы, размещенной либо в блоке 4 (например, фиг. 11, модуль с ФА (3,4)), либо 5 (например, фиг. 11, модуль с ФА (5,4)), либо 6 (например, фиг. 11, модуль с ФА (5,1)). Сигналы с четвертого и пятого выходов блока 20 выбора поступают на адресные входы мультиплексора 9, что обеспечивает передачу на его выход команды из соответствующего блока памяти программ.
Рассмотрим процесс обработки команды. Переданная команда по тактовому импульсу со второго выхода блока 13 синхронизации записывается в регистр 8 команд (формат считанной команды представлен на фиг. 9а). В зависимости от содержимого полей считанной команды, модуль может функционировать одним из следующих способов.
1. Предположим, в поле 8.6 регистра 8 команд отсутствует признак передачи управления, а в поле 8.4 регистра 8 команд отсутствует признак синхронизации. Операционная часть команды с поля 8.5 регистра 8 команд поступает через блок элементов запрета 10 на информационный выход 49 модуля для управления. Поля 8.1, 8.2 и 8.3 регистра 8 команд формируют адрес очередной команды с использованием мультиплексора 9 логических условий.
Адрес следующей команды, получаемый объединением значения младшего (модифицируемого) разряда адреса с выхода мультиплексора 9 через элемент И 25.4 и немодифицированных разрядов с выхода 8.3 регистра 8, через коммутатор 1 поступает на информационный вход регистра 2 и фиксируется в данном регистре с приходом следующего импульса с первого выхода блока 13. После записи этого адреса в регистр 2 осуществляется переход к считыванию и выполнению очередной команды программы управления. Считываемая команда выполняется аналогично рассмотренному выше.
С выдачей последней команды программы управления в поле 8.7 регистра 8 команд заносится единичная метка - признак окончания программы. Единичный сигнал с выхода 8.7 регистра 8 поступает на первый управляющий вход блока 23 и передним фронтом возбуждает на выходе одновибратора 78.1 импульс. Этот импульс через элемент ИЛИ 77, а затем элементы ИЛИ 76.1 - 76.l подается на синхронизирующие входы регистров 72.1 - 72.l и обеспечивает сдвиг очереди сообщений. В регистр 72.1 поступает адрес очередной программы. Одновременно сигнал выхода 8.7 регистра 8 поступает на управляющие входы коммутатора 1 и коммутирует его выход с первым информационным выходом блока 23.
2. Если в поле 8.6 считанной команды присутствует единичный признак передачи управления, то эта команда является командой обмена (передачи управления) и на выходе 8.5 операционного поля регистра 8 формируется сообщение K. Формат операционной части команды обмена представлен на фиг. 9б. Сообщение K имеет вид
K = ФАпр•Боб•Ак,
где ФАпр - физический адрес модуля-приемника информации;
Боб - бит обхода (первоначально равный нулю);
Ак - адрес программы, которую должен выполнить модуль-приемник;
• - знак конкатенации.
В свою очередь
ФАпр = ФАстлб•ФАстр,
где ФАстлб - физический номер модуля в столбце (вертикальная составляющая адреса);
ФАстр - физический номер модуля в строке (горизонтальная составляющая адреса).
Единичная метка с выхода 8.6 регистра 8 поступает на управляющий вход блока элементов И 11 и первый вход элемента И 12 (фиг. 1) и разрешает тем самым прохождение информации с поля 8.5 регистра 8 команд через блок элементов И 11 на первый информационный вход блока 22 анализа (фиг. 3) с целью последующей выдачи на один из выходов 45, ..., 48 (фиг. 1) через мультиплексор 24 (работа блока 22 анализа рассмотрена ниже). Вместе с выдаваемым сообщением с выхода блока 13 синхронизации через элемент И 12 (фиг. 1) поступает тактовый импульс. Параллельно этот импульс поступает на восьмой информационный вход блока 23 сообщений (фиг. 4), переключает мультиплексор 85 и передним фронтом через элемент ИЛИ 76.1 осуществляет запись адреса очередной команды в регистр 72.1 (это исключает повторную передачу управления после перестройки системы).
3. Если в поле 8.4 считанной команды присутствует единичный признак синхронизации, то эта команда является командой синхронизации. Адрес очередной команды формируется полем 8.3 и выходом схемы 15 сравнения (мультиплексор 9 маскируется нулевыми сигналами в поле 8.1) и равен адресу текущей команды синхронизации при нулевом сигнале на выходе схемы 15 сравнения. Единичный сигнал с выхода поля 8.4 регистра 8 поступает на управляющий вход схемы 15 сравнения и разрешает ее работу. Схема 15 сравнения сравнивает значение с выхода поля 8.5 регистра команд, содержащего ожидаемое число сообщений синхронизации, и слово состояния синхронизации (количество принятых сообщений синхронизации) с шестого выхода блока 23 сообщений, где оно хранится в регистре 84.1. Пока они не равны, модуль будет продолжать выполнение текущей команды синхронизации. При их совпадении адрес очередной команды изменится и модуль перейдет к ее выполнению. При этом, после записи передним фронтом адреса очередной команды в регистр 2 адреса тактовый импульс с первого выхода блока 13 синхронизации через элемент И 16 и восьмой вход блока 23 сообщений (фиг. 4) задним фронтом возбуждает на выходе одновибратора 78.1 единичный импульс, который устанавливает в нуль регистр 84.1 и тем самым подготавливает модуль для выполнения очередной команды синхронизации.
Обмен командами в распределенный системе для программного управления осуществляется (фиг. 10) в четырех направлениях. По каждому из направлений в блоке 22 анализа (фиг. 3) имеется блок памяти сообщений, причем блок 56.1 памяти сообщений предназначен для хранения сообщений от собственного модуля.
Рассмотрим процесс приема и выдачи сообщений. Допустим, сообщение поступает на информационный вход блока 56.2 памяти сообщений.
Предположим, что в текущий момент все регистры 97.1-97.K обнулены (фиг. 6). На выходах элементов И 99.1 - 99.K находятся единичные сигналы. Эти сигналы, поступая на вход элемента И-НЕ 104, формируют на его выходе сигнал логического нуля (этот сигнал индицирует отсутствие сообщений в блоке 56.2). Кроме того, рассматриваемые сигналы подаются на адресный вход демультиплексора 102 и коммутируют его информационный вход с K-м выходом. Эти же сигналы открывают элементы 100.1 - 100.K.
Сообщение с информационного входа блока через демультиплексор 106 и блок элементов ИЛИ 98.1 передается и фиксируется на информационном входе регистра 97.1. Одновременно на первом управляющем входе блока появляется тактовый импульс, сопровождающий данное сообщение. Этот импульс через открытые элементы И 100.1 - 100.K и элементы ИЛИ 101.1 - 101.K поступает на входы синхронизации регистров 97.1 - 97.K и задним фронтом производит запись поступающего сообщения в регистр 97.1 (состояние остальных регистров при этом не изменяется, поскольку на первом - (K-1) выходах демультиплексора 102 находятся нулевые коды). На выходе элемента 99.1 появляется сигнал логического нуля. Сигналы с выходов элементов И 99.1- 99.K поступают на вход элемента И-НЕ 104, формируя на его выходе сигнал логической единицы, индицирующий наличие сообщения в блоке. Одновременно эти же сигналы подаются на адресный вход демультиплексора 102, коммутируют его информационный вход с (K-1)-м выходом и тем самым обеспечивают возможность записи последующего сообщения в регистр 97.2. Кроме того, нулевой сигнал с выхода элемента И 99.1 блокирует элемент И 100.1 и запрещает модификацию содержимого регистра 97.1. Таким образом на информационном выходе блока появляется поступившее сообщение, а на управляющий выход поступает единичный сигнал.
Единичный сигнал с управляющего выхода блока 56.2 через элемент ИЛИ 68 (фиг. 3) и элемент запрета 69 устанавливает триггер 60 в единичное состояние и тем самым разрешает формирование тактовых импульсов на выходе распределителя импульсов 66 для синхронизации работы блока 22 анализа.
Синхронизация работы блока 22 анализа происходит по четырем импульсным последовательностям. Цикл работы состоит из четырех фаз, каждая из которых начинается тактовым импульсом соответствующей импульсной последовательности.
По первому импульсу с четвертого выхода распределителя 66 содержимое счетчика 65 увеличивается на единицу. Код с выхода счетчика 65 формирует унитарный код на выходе дешифратора 64 блока памяти сообщений 56.k, а также коммутирует выход мультиплексора 57 с его информационным входом, соответствующим блоку 56. k. Сообщение из этого блока через мультиплексор 57 передается на информационный вход регистра 61.
Тактовый импульс со второго выхода распределителя 66 фиксирует считанное сообщение в регистре 61.
После записи сообщения в регистр 61 осуществляется выбор направления дальнейшей передачи сообщения. Этот выбор определяется соотношением вертикальных и горизонтальных составляющих ФА и АС и выполняется блоком 58. ФА поступает на второй выход блока 59 с выхода блока 117 (фиг. 8). Если отказы в системе отсутствуют и на всех управляющих входах мультиплексора 119 присутствуют сигналы логического нуля, этот же адрес через мультиплексор 119 передается на первый выход блока 59.
Выбор направления передачи информации осуществляется следующим образом. АС сравнивается с ЛА модуля. Сравнение ЛА модуля и АС производится схемой сравнения 105 блока 58 (фиг. 7). Если адреса равны, то данный модуль является модулем-приемником и на выходе "Равно" схемы сравнения 105 появляется единичный сигнал, который разрешает прием сообщения текущим модулем.
Если адреса не равны, то модуль должен передать сообщение другому модулю и единичный сигнал появится на выходе "Не равно" схемы сравнения 105 и поступит на первый вход элемента И 115. Одновременно схема 106 сравнивает вертикальные составляющие АС и ФА модуля, а схема 107 сравнивает горизонтальные составляющие этих адресов. По результатам сравнения на выходах блока формируются сигналы, определяющие способ передачи поступившего сообщения. Эти сигналы вырабатываются комбинационной схемой, состоящей из мультиплексора 108, шифратора 109, элементов И 110 - 114, элемента ИЛИ 116 в соответствии с табл. 5. Сигналы на втором и третьем выходах блока 58 кодируют направление передачи сообщения и, поступая затем на адресные входы демультиплексора 63, обеспечивают выдачу сообщения в соответствующем направлении. На четвертом выходе блока 58 формируется единичный сигнал при наличии ситуации фатального отказа (табл. 5), т.е. модуль-приемник не был найден ни в одном из модулей по причине сбоев при перестройке. На пятом выходе блока 58 формируется бит обхода (табл. 5).
Если на первом выходе блока 58 присутствует сигнал логической единицы, то сообщение через демультиплексор 62 передается на первый информационный выход блока анализа для последующей обработки текущим модулем. В противном случае сообщение с выходов регистра 61 через демультиплексор 62 передается на один из четырех выходов демультиплексора 63.
Одновременно с выбором направления передачи считанного сообщения производится сдвиг информации в выбранном блоке памяти сообщений (в нашем примере - в блоке 56.2). Сдвиг информации в блоках 56.1 - 56.5 синхронизируется импульсом с первого выхода распределителя 66.
Следующий импульс с третьего выхода распределителя 66 синхронизирует прием выдаваемого сообщения либо текущим модулем, либо одним из модулей-соседей, поступая соответственно через демультиплексор 62 на первый информационный выход блока 22 анализа либо через демультиплексор 62 и демультиплексор 63 на второй, третий, четвертый или пятый информационные выходы блока анализа. Одновременно этот импульс поступает на прямой вход элемента запрета 67 и в случае отсутствия сообщений в блоках 56.1 - 56.5 проходит через элемент ИЛИ 70 на вход сброса триггера 60 и тем самым выключает распределитель 66.
Рассмотрим процесс обработки сообщения, принятого модулем. С первого информационного выхода блока 22 анализа (фиг. 1) принятое сообщение поступает на первый информационный вход блока 23 сообщений и, в зависимости от типа, обрабатывается одним из следующих способов.
1. Если в формате сообщения (фиг. 9б) код сообщения равен нулю, то это сообщение передачи управления. Нулевой код сообщения поступает на инверсный управляющий вход блока 81 элементов запрета (фиг. 4) и разрешает прохождение сообщения через мультиплексор 90 на информационный вход демультиплексора 71. При этом поступающий с сообщением синхронизирующий импульс поступает на вторые входы элементов И 75.1-75.l и далее, в зависимости от состояния регистров 72.1 - 72.l, через элементы 76.1 - 76.l на синхронизирующие входы тех регистров 72.1 - 72.l, которые не содержат сообщений, обеспечивая тем самым запись сообщения с соответствующего выхода демультиплексора 71 в первый свободный регистр блока регистров 72.1 - 72.l.
2. Если в формате сообщения (фиг. 9б) код сообщения равен единице, то это сообщение синхронизации. Единичный код сообщения поступает на инверсный управляющий вход блока 81 элементов запрета (фиг. 4) и запрещает дальнейшее прохождение сообщения. Одновременно единичный код сообщения поступает на второй вход элемента И 82.1 и разрешает прохождение поступившего с сообщением синхронизирующего импульса на инкрементирующий вход регистра 84.1, хранящего слово состояния синхронизации. Передним фронтом синхронизирующий импульс увеличивает значение регистра 84.1 на единицу, фиксируя поступившее сообщение синхронизации.
Рассмотрим работу системы при возникновении отказов. Под отказом модуля понимается искажение управляющей информации, подаваемой им на объект управления (отказ блоков 1-12, 15, 16, 25.4 и соответствующих связей). Средства взаимодействия модулей считаются работоспособными. Отслеживание правильности функционирования блоков 1-12, 15, 16, 25.4 и их связей, фиксация модулей, в которых нарушено правильное функционирование указанных блоков, и останов системы в случае фатального отказа обеспечиваются внешними по отношению к системе средствами контроля и управления. Состояние (i,j)-го модуля (работоспособен/неработоспособен) индицируется состоянием внешнего триггера отказа.
Допустим, отказавшим является модуль (i-1,j), находящийся сверху над текущим, а все остальные модули распределенной системы работоспособны. Исходя из логики работы системы текущий модуль (i,j) должен принять на себя функции верхнего (i-1,j)-го модуля и в дальнейшем считывать команды из блока 6 памяти, причем возобновить работу он должен с повторения той программы управления, которую выполнял (i-1,j)-й модуль до появления отказа.
Внешние средства контроля, обнаружив отказ, фиксируют его переводом триггера отказа (i-1,j)-го модуля в единичное состояние. Единичный сигнал с триггера отказа поступает на вход 26 (i-1,j)-го модуля, с которого подается через первый вход блока 13 синхронизации (фиг. 5) на первый вход элемента ИЛИ-НЕ 95, на выходе которого образуется нулевой сигнал, который выключает распределитель импульсов 96. Передача управляющих сигналов на объект управления прекращается - модуль выключен. Дальнейшее включение модуля оказывается невозможным из-за присутствия постоянного единичного сигнала с триггера отказа на первом входе элемента ИЛИ-НЕ 95.
Одновременно сигнал с триггера отказа поступает на вход одновибратора 14 и инициирует синхронный останов всех работоспособных модулей. Импульс с выхода одновибратора 14 поступает через элемент ИЛИ 25.2 на выход 43 (i-1,j)-го модуля и передается вправо (i-1,j+1)-му модулю (фиг. 1, 10). Поступая на вход 31 (i-1, j+1)-го модуля, импульс через элемент ИЛИ 25.2 поступает на выход 43 (i-1, j+1)-го модуля и передается аналогичным образом по строке вправо до (i-1,m)-го модуля. С выхода 43 (i-1,m)-го модуля импульс поступает на вход 32 модулей (i-1)-й строки с первого по m-й и передается через элемент ИЛИ 25.3 на выход 44 этих модулей. С выхода 44 модулей (i-1)-й строки с первого по m-й импульс поступает на вход 33 модулей (i-2)-й строки с первого по m-й соответственно и передается через элемент ИЛИ 25.3 на выход 44 этих модулей. Аналогичным образом импульс с выхода 44 модулей (i-2)-й строки с первого по m-й передается вверх до модулей первой строки с первого по m-й соответственно. С выхода 44 модулей первой строки с первого по m-й импульс одновременно поступает на вход 34 модулей всех строк с первого по m-й соответственно.
Далее импульс с входов 34 поступает на S-вход триггеров 18 и устанавливает их в единичное состояние. Одновременно импульс поступает на вход элементов задержки 17.1, где задерживается на время, достаточное для выполнения перестройки системы. Кроме этого, импульс поступает на вход элементов задержки 17.2, где задерживается на время, достаточное для настройки блоков 20 выбора (фиг. 1). Описанный выше процесс распространения импульса происходит одновременно во всех модулях системы.
Единичный сигнал с прямых выходов триггеров 18 поступает через второй вход блоков 13 синхронизации (фиг. 5) на второй вход элемента ИЛИ-НЕ 95, на выходе которого образуется нулевой сигнал, который выключает распределители импульсов 96. (Передача управляющих сигналов на объекты управления временно прекращается).
Единичный сигнал с входа 26 (i-1,j)-го модуля поступает на первый вход блока 20 выбора и инициирует перестройку системы. Блок 20 выбора (фиг. 2) работает следующим образом. На первый вход блока 20 с выхода триггера отказа поступает сигнал об отказе собственного модуля. На второй, третий, четвертый и пятый входы блока 20 с управляющих входов 27, 28, 29 и 30 модуля соответственно поступают также сигналы от других модулей. Назначение сигналов на входах блока 20 описывается в табл. 1. Комбинационная схема блока 20, состоящая из элементов 50-55, на основе сигналов на первом-пятом входах определяет согласно таблице истинности (табл. 4) состояния первого-пятого выходов блока 20, назначение которых описывается в табл. 2. Сигналы с первого и второго выходов блока 20 через управляющие выходы 40 и 41 соответственно поступают в другие модули. Сигнал с третьего выхода блока 20 поступает через элемент ИЛИ 25 и управляющий выход 42 модуля внешним средствам контроля. Его единичное значение определяет невозможность реконфигурации распределенной системы - фатальный отказ, по которому внешние средства управления выключают распределенную систему. Сигналы с четвертого и пятого выходов блока 20 определяют алгоритм, по которому будет функционировать модуль (табл. 3).
В нашем случае на первом выходе блока 20 и соответственно на выходе 40 (i-1,j)-го модуля появится единичный сигнал (табл. 4), который, пройдя вверх через модули j-го столбца с (i-2)-го по первый, поступает на вход 27 текущего (i,j)-го модуля, с которого поступает на второй вход блока 20 и обеспечивает образование на четвертом и пятом выходах блока 20 кода "11" (табл. 4). Через время задержки, достаточное для настройки блоков 20 выбора всех модулей системы, на выходе элемента задержки 17.2 появляется импульс, который поступает на синхронизирующий вход регистра 19 и обеспечивает запись в него кода "11" с четвертого и пятого выходов блока 20 выбора и нулевого сигнала с триггера отказа. Код "11" с первого и второго выходов регистра 19 подается на управляющие входы мультиплексора 7 и коммутирует его выход с выходом блока 6 (табл. 3). Одновременно данный код совместно с нулевым сигналом с третьего выхода регистра 19 передается на первый, второй и третий управляющие входы блока 22 анализа и инициирует изменение ЛА модуля (i,j).
Рассматриваемый код поступает на первый и второй входы блока 59 (фиг. 3, 8). Далее единичные сигналы с первого и второго входов этого блока поступают соответственно на первый и второй управляющие входы мультиплексора 119 и, учитывая, что на третьем управляющем входе мультиплексора 119 находится сигнал логического нуля, коммутирует его выход с выходом блока 118.3. В данном блоке постоянно хранится код физического адреса вышестоящего модуля (i-1, j) (аналогично блоки 118.1 и 118.2 хранят коды ФА соответственно соседнего модуля слева (i,j-1) и соседнего модуля слева по диагонали (i-1,j-1)). Теперь на первом выходе блока 58 появляется новый ЛА текущего модуля, равный (i-1,j).
Аналогично рассмотренному выше изменяются ЛА всех нижестоящих модулей, в том числе и резервного.
Одновременно с выключением распределителя импульсов 96 единичный сигнал с выхода триггера 18 поступает на управляющие входы демультиплексора 21, мультиплексора 24, четвертый управляющий вход блока 22 анализа, четвертый управляющий вход блока 23 сообщений и R-вход регистра 8 команд, чем перестраивает модуль на перезагрузку принятых сообщений и слова состояния синхронизации.
1. С четвертого входа блока 22 анализа (фиг. 3) единичный сигнал поступает через элемент ИЛИ 70 на R-вход триггера 60, устанавливает его в нулевое состояние и выключает распределитель импульсов 66. Одновременно этот сигнал поступает на инверсный вход элемента запрета 69 и запрещает подачу на S-вход триггера 60 единичного сигнала. Передача сообщений временно прекращается.
2. Единичный сигнал поступает на управляющий вход демультиплексора 21 и соединяет первый 36, второй 37, третий 38 и четвертый 39 информационные входы модуля с информационными входами блока 23 сообщений с четвертого по седьмой соответственно.
3. Единичный сигнал поступает на управляющий вход мультиплексора 24 и соединяет выходы блока 23 сообщений с первого по четвертый с первым 45, вторым 46, третьим 47 и четвертым 48 информационными выходами модуля соответственно.
4. С четвертого управляющего входа блока 23 сообщений (фиг. 4) единичный сигнал поступает на инверсный управляющий вход одновибратора 78.1 и
запрещает его работу, а также поступает на управляющий вход мультиплексора 90 и подключает один из информационных входов с четвертого по седьмой к информационному входу демультиплексора 71 в зависимости от кода на входах дешифратора 83.1. Так как на входах дешифратора 23 с четвертого и пятого выходов блока 20 анализа соответственно присутствует код "11", то с информационным входом демультиплексора 71 соединен седьмой информационный вход блока и соответственно четвертый информационный вход 39 модуля, куда будут поступать сообщения и слово состояния синхронизации от (i,j-1)-го модуля. Прямой выход регистра 72.1 и выход регистра 84.1 подключаются к одному из информационных выходов блока со второго по пятый в зависимости от настройки дешифратора 83.2, которая определяется схемами сравнения 80.2 и 80.3. Схемы сравнения 80.2 и 80.3 сравнивают соответственно вертикальную и горизонтальную составляющие АС в принятых сообщениях с прямого выхода регистра 72.1 с вертикальной и горизонтальной составляющими ФА модуля со второго и третьего информационных входов блока. Так как мы предполагаем, что система отказала первый раз, то АС и ФА будут совпадать, следовательно, на входе дешифратора 83.2 будет код "00" и прямой выход регистра 72.1 и выход регистра 84.1 будут подсоединен к третьему выходу блока и соответственно ко второму информационному выходу 46 модуля, откуда сообщения и слово состояния синхронизации будут поступать нижнему (i,j+1)-му модулю.
5. Единичный сигнал поступает на R-вход регистра 8 команд, чем обнуляет его, а разряд 8.7 устанавливает в единичное состояние.
Пятый и шестой входы блока остаются соединенными соответственно с четвертым и пятым выходами блока, что обеспечивает трансляцию сообщений и слов состояний синхронизации других модулей.
Рассмотрим процесс перезагрузки сообщений. АС и ЛА модуля сравниваются схемой 80.1 сравнения и, если они не равны (как в нашем случае), то единичный сигнал с инверсного выхода схемы сравнения 80.1 запускает распределитель импульсов 79, который начинает выдавать две последовательности импульсов, сдвинутые на половину периода. Первая последовательность синхронизирует передачу сообщений, вторая - сдвиг сообщений. Таким образом будет осуществляться передача принятых (i,j)-м модулем сообщений (i,j+1)-му модулю, который должен взять на себя после реконфигурации системы функции (i,j)-го модуля. Передача будет осуществляться до тех пор, пока АС не сравняется с ЛА модуля, то есть все ранее принятые сообщения будут переданы.
Рассмотрим дополнительный пример перезагрузки сообщений, иллюстрируемый на фиг. 13. На нем представлена система с восьмью одновременно отказавшими модулями с ФА (1.3), (2.2), (2.4), (3.3), (4.1), (4.3), (4.4) и (5.3). Предполагается, что до их появления отказов в системе не было. Следовательно, АС принятых сообщений во всех модулях будут совпадать с ФА модулей и сообщения соответственно первоначально выдаются вправо. Сообщения выдаются всеми модулями, у которых ЛА не совпадает с ФА, то есть кроме модулей с ФА (1.1), (1.2), (2.1), (2.3), (3.1) и (3.3). Выдача сообщений от резервных модулей не показана, так как они не имеют модулей-приемников. Модули с ФА (1.4) - (1.6), (2.5), (2,6), (3.4), (3.6) и (4.6) имеют ЛА, равные ФА соседних модулей слева, поэтому настраиваются на прием сообщений слева от этих модулей. Модули с ФА (4.5), (5.4) и (5.5) имеют ЛА соседних модулей по диагонали (3.4), (4.3) и (4.4) соответственно, поэтому настраиваются на прием сообщений сверху через вышестоящие модули, которые передают сообщения транзитом. Модули с ФА (4.2), (5.1), (5.2) и (6.1) - (6.5) имеют ЛА вышестоящих модулей, поэтому настраиваются на прием сообщений справа, при этом сообщения проходят транзитом через два модуля. Таким образом, перезагрузка принятых каждым модулем сообщений осуществляется по кольцевым маршрутам параллельно.
Перезагрузка слов состояний синхронизации осуществляется аналогично и параллельно перезагрузке сообщений. При этом регистры 84.2 - 84.l используются как транзитные, и после перезагрузки слова состояний синхронизации переместятся в регистры 84.1 соответствующих модулей.
Рассмотрим возобновление нормального функционирования системы. Через время задержки, достаточное для перестройки системы и перезагрузки принятых сообщений всех модулей, на выходе элемента задержки 17.1 всех модулей появляется импульс, который поступает на R-вход триггера 18 и устанавливает его в нулевое состояние, нулевой сигнал с выхода триггера 18 через второй вход блока 13 синхронизации (фиг. 5) поступает на второй вход элемента ИЛИ-НЕ 95, на выходе которого в работоспособных модулях образуется единичный сигнал, который запускает распределитель импульсов 96. Работоспособные модули вновь начинают функционировать - перестройка системы завершена.
Одновременно с запуском распределителя импульсов 96 нулевой сигнал с выхода триггера 18 поступает на управляющие входы демультиплексора 21, мультиплексора 24, четвертый управляющий вход блока 22 анализа и четвертый управляющий вход блока 23 сообщений, чем перестраивает модуль на нормальный режим работы - обработку команд и обмен сообщениями.
1. С четвертого входа блока 22 анализа (фиг. 3) нулевой сигнал поступает через элемент ИЛИ 70 на R-вход триггера 60 и инверсный вход элемента запрета 69 и тем самым разрешает подачу на S-вход триггера 60 единичного сигнала. Передача сообщений возобновляется.
2. Нулевой сигнал поступает на управляющий вход демультиплексора 21 и соединяет первый 36, второй 37, третий 38 и четвертый 39 информационные входы модуля с информационными входами блока 22 анализа со второго по пятый соответственно.
3. Нулевой сигнал поступает на управляющий вход мультиплексора 24 и соединяет информационные выходы блока 22 анализа со второго по пятый с первым 45, вторым 46, третьим 47 и четвертым 48 информационными выходами модуля соответственно.
4. С четвертого управляющего входа блока 23 сообщений (фиг. 4) нулевой сигнал поступает на инверсный управляющий вход одновибратора 78.1 и разрешает его работу, а также поступает на управляющий вход мультиплексора 90 и подключает первый информационный вход к информационному входу демультиплексора 71.
5. Нулевой сигнал поступает на R-вход регистра 8 команд и разрешает запись в него команд.
Рассмотрим пример процесса обработки передаваемых сообщений в системе с отказавшими модулями. Пример передачи сообщения при наличии отказов в распределенной системе иллюстрируется на фиг. 12. Сообщение должно быть передано от модуля-источника (5,2) в модуль-приемник с ЛА (2,4). Поэтому оно передается в модуль (2,4), который был бы модулем-приемником при отсутствии отказов в распределенной системе. Сначала из модуля (5,2) сообщение передается по вертикали через модули (4,2) и (3,2) в модуль (2,2), в котором вертикальные составляющие АС и ФА модуля сравняются. Затем сообщение передается по горизонтали через модуль (2,3) в модуль (2,4), ФА которого равен АС. Так как этот модуль отказал, то его ЛА равен (0,0) и не равен АС. Поэтому бит обхода устанавливается в единицу и сообщение передается первому из трех соседей ((2,5), (3,5) и (3,4)) модуля (2,4) - модулю (2,5). Так как ЛА этого модуля равен (2,4), то, следовательно, он выполняет алгоритм модуля (2,4) и является истинным модулем-приемником сообщения. Модуль-приемник найден и передача сообщения прекращается.
Итак, после перестройки система в целом продолжает исполнение множества программ. При возникновении новых отказов система перестраивается аналогично рассмотренному; перестройка осуществляется вплоть до достижения ситуации фатального отказа. Таким образом, введение дополнительных технических средств позволяет обеспечить синхронизацию завершения параллельных участков программ, а также непрерывность функционирования системы за счет переразмещения принятых сообщений и слов состояния синхронизации между модулями при возникновении отказов.
название | год | авторы | номер документа |
---|---|---|---|
РАСПРЕДЕЛЕННАЯ СИСТЕМА ДЛЯ ПРОГРАММНОГО УПРАВЛЕНИЯ | 2000 |
|
RU2185656C2 |
РАСПРЕДЕЛЕННАЯ СИСТЕМА ДЛЯ ПРОГРАММНОГО УПРАВЛЕНИЯ | 2000 |
|
RU2198417C2 |
РАСПРЕДЕЛИТЕЛЬНАЯ СИСТЕМА ДЛЯ ПРОГРАММНОГО УПРАВЛЕНИЯ | 1997 |
|
RU2122229C1 |
МОДУЛЬ МАТРИЧНОЙ КОММУНИКАЦИОННОЙ СЕТИ | 2000 |
|
RU2168755C1 |
МУЛЬТИМИКРОКОНТРОЛЛЕРНАЯ СИСТЕМА | 1997 |
|
RU2120135C1 |
РАСПРЕДЕЛЕННАЯ СИСТЕМА ДЛЯ ПРОГРАММНОГО УПРАВЛЕНИЯ | 1998 |
|
RU2133054C1 |
ДИСКРЕТНАЯ МИКРОКОНТРОЛЛЕРНАЯ СЕТЬ | 1997 |
|
RU2110827C1 |
МОДУЛЬ КОММУНИКАЦИОННОЙ СЕТИ, ПРЕДНАЗНАЧЕННЫЙ ДЛЯ ПЕРЕДАЧИ СООБЩЕНИЙ, ОБМЕНА СООБЩЕНИЯМИ И ОРГАНИЗАЦИИ ВЕЩАТЕЛЬНЫХ РЕЖИМОВ ОБМЕНА СООБЩЕНИЯМИ | 2000 |
|
RU2178584C1 |
МОДУЛЬ МАТРИЧНОГО КОММУТАТОРА | 1996 |
|
RU2116664C1 |
МИКРОКОНТРОЛЛЕРНАЯ СЕТЬ | 1999 |
|
RU2168198C1 |
Изобретение относится к автоматике и вычислительной технике и может быть использовано при построении управляющих и вычислительных систем высокой производительности, АСУТП, а также других систем, к которым предъявляются жесткие требования по надежности. Техническим результатом является расширение области применения распределенной системы за счет введения технических средств, обеспечивающих синхронизацию завершения параллельных участков программ и непрерывное функционирование системы при возникновении отказов отдельных модулей. Для этого устройство содержит nxm модулей, где n - число строк, m - число столбцов, причем i-й модуль системы содержит блоки памяти, блок выбора, блок сообщений, блок анализа, коммутатор адреса, регистр адреса, регистр команд, мультиплексор логических условий, мультиплексор выбора программ, блок синхронизации, блок элементов запрета, блок элементов И, элементы И, элементы ИЛИ, схему сравнения, одновибратор, триггер, регистр, элементы задержки, демультиплесор, мультиплексор. 5 з.п. ф-лы, 13 ил., 5 табл.
Аппарат для очищения воды при помощи химических реактивов | 1917 |
|
SU2A1 |
Печь для непрерывного получения сернистого натрия | 1921 |
|
SU1A1 |
Аппарат для очищения воды при помощи химических реактивов | 1917 |
|
SU2A1 |
Кипятильник для воды | 1921 |
|
SU5A1 |
Очаг для массовой варки пищи, выпечки хлеба и кипячения воды | 1921 |
|
SU4A1 |
Авторы
Даты
2000-09-20—Публикация
1999-03-22—Подача