Дискретная микроконтроллерная сеть

Реферат

 

Изобретение относится к автоматике и вычислительной технике и может найти применение при построении распределенных систем программного управления технологическими процессами. Технической задачей изобретения является расширение области применения системы на основе организации возможности синхронизации завершения параллельных участков программ. Дискретная микроконроллерная сеть содержит m n модулей, где n - число модулей в строке матричной организации сети; m - число строк, содержащих блок памяти программ; блок анализа, регистр-счетчик адреса, регистр команд, коммутатор адреса, мультиплексор логических условий, блок синхронизации, блоки элементов И, элементы И, триггер, элементы ИЛИ и блок управления синхронизацией параллельных участков. 4 з.п. ф-лы, 11 ил., 1 табл.

Изобретение относится к автоматике и вычислительной технике и может найти применение при построении распределенных систем программного управления технологическими процессами, роботами и робототехническими комплексами, а также подсистем логического управления многоуровневых иерархических АСУ и мультипроцессорных систем широкого класса.

Известно модульное устройство для программного управления и контроля, содержащее блок памяти, счетчик адреса, регистр микроопераций, мультиплексоры адреса и логических условий, два регистра логических условий, два коммутатора, два дешифратора, шифратор, генератор тактовых импульсов, триггеры пуска и управления, демультиплексор, регистр номера, группу элементов ИЛИ, блок элементов ИЛИ, два элемента ИЛИ и два элемента И [1].

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

Известно также устройство для программного управления, включающее блок памяти микрокоманд, счетчики адреса и времени задержки, регистр микроопераций, дешифратор направления передачи управления, коммутатор направления приема адреса, триггер режима, шифратор направления приема управления, элемент запрета, шину микроопераций, четыре элемента ИЛИ и два элемента И [2].

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

Наиболее близким к предлагаемому является распределенная система для программного управления технологическими процессами, содержащая m n каналов (модулей), каждый из которых включает блок памяти программ, коммутатор адреса, регистры адреса и команд, мультиплексор логических условий, блоки синхронизации и анализа, буферный запоминающий блок, два блока элементов И и элемент И [3].

Недостатком этой системы является узкая область применения, связанная с отсутствием возможности согласования моментов (синхронизации) окончания и инициализации групп параллельных участков программ, закрепленных за различными модулями (отсутствие возможности синхронизации параллельных участков программ для широкого спектра применений является недопустимым, поскольку обусловливает возможность одновременного выполнения несовместимых команд (участков)).

Технической задачей изобретения является расширение области применения системы на основе организации возможности синхронизации завершения параллельных участков программ.

Техническая задача решается тем, что каждый из m n модулей дискретной микроконтроллерной сети, содержащий блок памяти программ, блок анализа, регистр-счетчик адреса, регистр команд, коммутатор адреса, мультиплексор логических условий, блок синхронизации, первый и второй блоки элементов И, первый элемент И, причем выход коммутатора адреса соединен с информационным входом регистра-счетчика адреса, выход которого соединен с адресным входом блока памяти программ, выход которого подключен к информационному входу регистра команд, выходы кода логического условия и модифицируемой части адреса которого подключены соответственно к управляющему и первому информационному входам мультиплексора логических условий, второй информационный вход которого является входом логических условий модуля, выход мультиплексора логических условий в объединении с выходом немодифицируемой части адреса регистра команд подключен к первому информационному входу коммутатора адреса, первый и второй управляющие входы которого соединены с выходом признака конца программы регистра команд, выход признака формата команды которого соединен с первым входом первого элемента И, а также с управляющими входами первого и второго блоков элементов И, первый управляющий вход модуля соединен с первым входом блока синхронизации, первый выход которого подключен к второму входу первого элемента И, второй выход блока синхронизации соединен с входом синхронизации регистра команд, операционный выход которого подключен к информационным входам первого и второго блоков элементов И, выход первого блока элементов И является операционным выходом модуля, выход второго блока элементов И в объединении с выходом первого элемента И подключен к первому входу блока анализа, второй и третий входы которого являются соответственно первым и вторым информационными входами модуля, первый и второй информационные выходы блока анализа являются соответственно первым и вторым информационными выходами модуля, дополнительно включает блок управления синхронизацией параллельных участков, триггер, третий и четвертый блоки элементов И, с второго по седьмой элементы И, с первого по третий элементы ИЛИ, причем выход признака конца программы регистра команд подключен к выходу конца операции модуля, к третьему управляющему входу коммутатора адреса и к первому входу первого элемента ИЛИ, выход которого соединен с первым входом второго элемента И, выход которого подключен к второму входу блока синхронизации, третий выход которого соединен с первыми входами третьего и четвертого элементов И, вторые входы которых подключены соответственно к прямому и инверсному выходам триггера, выход третьего элемента И соединен со счетными входами триггера и регистра-счетчика адреса, выход четвертого элемента И соединен с входом синхронизации регистра-счетчика адреса, выход признака передачи управления регистра команд подключен к второму входу первого элемента ИЛИ и к первому входу второго элемента ИЛИ, выход которого соединен с четвертым, пятым и шестым управляющими входами коммутатора адреса, второй и третий информационные входы которого соединены соответственно с входом кода операции модуля и с выходом третьего блока элементов И, выход признака конца параллельного участка регистра команд подключен к информационному входу второго блока элементов И, к третьему входу первого элемента ИЛИ и к второму входу второго элемента ИЛИ, старшие разряды третьего информационного выхода блока анализа соединены с первыми входами третьего и четвертого блоков элементов И, младший разряд третьего информационного выхода блока анализа соединен с первыми входами пятого, шестого и седьмого элементов И и с вторыми входами третьего и четвертого блоков элементов И, первый управляющий выход блока анализа подключен к вторым входам шестого и седьмого элементов И, второй управляющий выход блока анализа подключен к второму входу пятого элемента И, второй управляющий вход модуля соединен с первым входом третьего элемента ИЛИ, второй вход которого подключен к выходу седьмого элемена И, выход третьего элемента ИЛИ подключен к третьему входу блока синхронизации, первый выход которого соединен с вторым входом второго элемента И, выход четвертого блока элементов И подключен к информационному входу блока управления синхронизацией параллельных участков, первый и второй входы синхронизации которого соединены соответственно с выходами шестого и пятого элементов И, первый выход блока управления синхронизацией параллельных участков подключен к третьему входу третьего элемента ИЛИ и к входу установки триггера, второй выход и управляющий вход блока управления синхронизацией параллельных участков являются соответственно выходом состояния модуля и входом настройки модуля.

Сущность предлагаемого изобретения состоит в следующем.

Дискретная микроконтроллерная сеть (ДМС) формируется из набора однотипных модулей, объединяемых в матричную структуру, и предназначается для программного (микропрограммного) управления сложными объектами, поведение которых предполагает одновременное развитие и взамодействие множества процессов. Каждый модуль ДМС выполняется в виде СБИС и имеет два входных и два выходных информационных канала, используемых для подключения к другим аналогичным модулям и обмена управляющей информацией. С целью обеспечения возможности идентификации модулей ДМС им присваиваются номера вида I.J, где I и J имеют смысл соответственно номера (кода номера) строки и номера столбца матричной структуры, содержащих данный модуль, "." - символ объединения (конкатенации) кодов.

Программа (комплекс программ), реализуемая ДМС, разбивается на множество параллельных и последовательных участков, которые группируются и распределяются между различными модулями. В процессе выполнения выделенных участков программ модули ДМС вырабатывают команды двух типов: операционные (K1), которые передаются непосредственно на вход объекта управления и инициируют исполнение требуемых (микро)операций, и коммуникационные (K2), которые используются для организации взаимодействия различных модулей. Реализация команд типа K2 сводится к формированию и выдаче управляющих сообщений, обеспечивающих инициализацию параллельных или последовательных участков программ или индицирующих завершение выполнения параллельных участков.

Передача сообщений в ДМС осуществляется транзитным способом. Маршруты передачи сообщений являются фиксированными, а выбор направления ретрансляции сообщений на каждом транзитном отрезке маршрута определяется соотношением кода номера приемника K.L, указываемого в адресной части сообщения, и кода номера текущего транзитного модуля I.J.

Подмножество коммуникационных команд К2 включает команды трех следующих подтипов: команды инициализации последовательных участков (передачи управления) (К21), команды инициализации параллельных участков (К22) и команды - квитанции завершения параллельных участков (К23). Реализация команд типов К21 и К22 состоит в выдаче управляющих сообщений, обеспечивающих соответственно запуск последовательного или параллельного участка программы, закрепленного за определенным модулем сети. Адрес начала инициализируемого участка программы указывается в формате сообщения.

Синхронизация окончания параллельных участков осуществляется на основе предварительной нумерации вершин слияния Vq реализуемых алгоритмов управления (программ) и определения условий синхронизации, а именно указания количества параллельных участков, сходящихся к каждой из вершин слияния Vq (количества ожидаемых событий Wq). Для каждой вершины слияния Vq задается ведущий модуль M(Vq), в качестве которого используется один из модулей, за которым закреплен параллельный участок, завершающийся вершиной Vq. Остальные модули по отношению к указанной вершине рассматриваются как ведомые.

Модули ДМС (независимо от присвоенного им статуса: ведущий или ведомый) после окончания выполнения соответствующих параллельных участков вырабатывают квитанции К23, включающие номер вершины слияния Vq, соответствующей завершенным участкам, и переходят в состояние ожидания. Квинтанции завершения К23 передаются ведущему модулю M(Vq). Модуль M(Vq) принимает квитанции К23 от других модулей и по мере их поступления уменьшает величину W'q - текущее количество ожидаемых событий. В момент поступления последней квинтации и соответственно окончания всех требуемых параллельных участков величина W'q принимает нулевое значение, модуль M(Vq) выходит из состояния ожидания, восстанавливает исходное значение W'q и возобновляет выполнение закрепленных за ним участков программы.

На фиг. 1 изображена функциональная схема модуля ДМС; на фиг. 2 - функциональная схема блока анализа; на фиг. 3 - функицональная схема блока управления синхронизацией параллельных участков; на фиг. 4 - функциональная схема блока памяти сообщений; на фиг. 5 -функциональная схема блока выбора направления передачи сообщения; на фиг. 6 - функциональная схема блока синхронизации; на фиг. 7 - функциональная схема распределителя импульсов, синхронизирующего работу блока анализа; на фиг. 8 - функциональная схема генератора константы; на фиг. 9 - форматы (микро)команд, реализуемые модулями ДМС; на фиг. 10 - структурная схема ДМС; на фиг. 11 - временные диаграммы работы блока управления синхронизацией параллельных участков.

Модуль дискретной микроконтроллерной сети (фиг. 1) содержит блок 1 памяти программ, блок 2 анализа, регистр-счетчик 4 адреса, регистр 5 команд, коммутатор 6 адреса, мультиплексор 7 логических условий, блок 8 синхронизации, первый 10 и второй 11 блоки элементов И, первый элемент И 14, причем выход коммутатора 6 адреса соединен с информационным входом регистра-счетчика 4 адреса, выход которого соединен с адресным входом блока 1 памяти программ, выход которого подключен к информационному входу регистра 5 команд, выходы 5.1 кода логического условия и 5.2 модифицируемой части адреса которого подключены соотвественно к управляющему и первому информационному входам мультиплексора 7 логических условий, второй информационный вход которого является входом 26 логических условий модуля, выход мультиплексора 7 логических условий в объединении с выходом 5.3 немодифицируемой части адреса регистра 5 команд подключен к первому информационному входу коммутатора 6 адреса, первый и второй управляющие входы которого соединены с выходом 5.8 признака конца программы регистра 5 команд, выход 5.5 признака формата команды которого соединен с первым входом элемента И 14, а также с управляющими входами блоков элементов И 10 и 11, первый управляющий вход 25 модуля соединен с первым входом блока 8 синхронизации, первый выход которого подключен к второму входу элемента И 14, второй выход блока 8 синхронизации соединен с входом синхронизации регистра 5 команд, операционный выход 5.4 которого подключен к информационным входам блоков элементов И 10 и 11, выход блока элементов И 10 является операционным выходом 27 модуля, выход блока элементов И 11 в объединении с выходом элемента И 14 подключен к первому входу блока 2 анализа, второй и третий входы которого являются соответственно первым 28 и вторым 29 информационными входами модуля, первый и второй информационные выходы блока 2 анализа являются соответственно первым 30 и вторым 31 информационными выходами модуля, и дополнительно включает блок 3 управления синхронизацией параллельных участков (БУСПУ), триггер 9, третий 12 и четвертый 13 блоки элементов И, второй 15, седьмой 16, шестой 17, пятый 18, третий 19.1 и четвертый 19.2 элементы И, третий 20, первый 21 и второй 22 элементы ИЛИ, причем выход 5.8 признака конца программы регистра 5 команд подключен к выходу 34 конца операции модуля, к третьему управляющему входу коммутатора 6 адреса и к первому входу элемента ИЛИ 21, выход которого соединен с первым входом элемента И 15, вхыод которого подключен к второму входу блока 8 синхронизации, третй выход которого соединен с первыми входами элементов И 19.1 и 19.2, вторые входы которых подключены соответственно к прямому и инверсному выходам триггера 9, выход элемента И 19.1 соединен со счетными входами триггера 9 и регистра-счетчика 4 адреса, выход элемента И 19.2 соединен с входом синхронизации регистра-счетчика 4 адреса, выход 5.6 признака передачи управления регистра 5 команд подключен к второму входу элемента ИЛИ 21 и к первому входу элемента ИЛИ 22, выход которого соединен с четвертым, пятым и шестым упарвляющими входами коммутатора 6 адреса, второй и третий информационные входы которого соединены соответственно с входом 23 кода операции модуля и с выходом блока элементов И 12, выход 5.7 признака конца параллельного участка регистра 5 команд подключен к информационному входу блока элементов И 11, к третьему входу элемента ИЛИ 21 и к второму входу элемента ИЛИ 22, старшие разряды третьего информационного выхода блока 2 анализа соединены с первыми входами блоков элементов И 12 и 13, младший разряд третьего информационного выхода блока 2 анализа соединен с первыми входами элементов И 16, 17 и 18 и с вторыми входами блоков элементов И 12 и 13, первый управляющий выход блока 2 анализа подключен к вторым входам элементов И 16 и 17, второй управляющий выход блока 2 анализа подключен к второму входу элемента И 18, второй управляющий вход 24 модуля соединен с первым входом элемента ИЛИ 20, второй вход которого подключен к выходу элемента И 16, выход элемента ИЛИ 20 подключен к третьему входу блока 8 синхронизации, первый выход которого соединен с вторым входом элемента И 15, выход блока элементов И 13 подключен к информационному входу БУСПУ 3, первый и второй входы синхронизации которого соединены соответственно с выходами элементов И 17 и 18, первый выход БУСПУ 3 подключен к третьему входу элемента ИЛИ 20 и к входу установки триггера 9, второй выход и управляющий вход БУСПУ 3 являются соответственно выходом 33 состояния модуля и входом 32 настройки модуля.

Блок анализа (фиг. 2) предназначен для анализа управляющих сообщений, определения направлений их передачи и выдачи в устанавливаемых в ходе анализа направлениях и содержит блоки памяти сообщений 35 - 37, мультиплексор 38, генератор 39 константы, блок 40 выбора направления передачи сообщения, триггер 41 управления, распределитель 42 импульсов, счетчик 43, дешифратор 44, регистр 45, демультиплексоры 46 и 47, блок элементов И 49, элемент ИЛИ 50, элемент И 51, причем управляющие выходы памяти сообщений 35, 36 и 37 подключены к выходам элемента ИЛИ 50, выход которого соединен с входом установки триггера 41 управления и инверсным входом элемента И 51, выход которого соединен с входом сброса триггера 41 управления, прямой выход которого соединен с входом распределителя 42 импульсов, первый выход которого подключен к входу счетчика 43, второй выход распределителя 42 импульсов соединен с выходом синхронизации регистра 45, третий выход распределителя 42 импульсов соединен с информационным входом демультиплексора 47, выход счетчика 43 соединен с адресным входом мультиплексора 38 и с входом дешифратора 44, выходы с первого по третий которого подключены к управляющим входам блоков памяти сообщений 35-37 соответственно, информационные входы и входы синхронизации записи которых соединены с первым-третьим входами блока анализа соответственно, информационные выходы блоков памяти сообщений 35, 36 и 37 подключены к первому, второму и третьему информационным входам мультиплексора 38 соответственно, выход которого соединен с информационным входом регистра 45, первый выход которого подключен к информационному входу демультиплексора 46 и к первому входу блока 40 выбора направления передачи сообщения, второй вход которого соединен с выходом генератора 39 константы, первый выход блока 40 выбора направления передачи сообщения подключен к адресным входам демультиплексора 46 и 47, а второй выход соединен с первым входом блока элементов И 49, выход которого является третьем информационным выходом блока анализа, второй выход регистра 45 соединен с вторым входом блока элементов И 49 и с информационным входом демультиплексора 46, первый и второй выходы которого подключены соответственно к первому и второму информационным выходом блока анализа, а также дополнительно введенные триггер 48 и элементы И 52.1, 52.2, 53.1, 53.2, причем четвертый выход распределителя 42 импульсов соединен с выходом установки триггера 48, третий выход распределителя 42 импульсов подключен к входам сдвига блоков памяти сообщений 35-37 и к первому входу элемента И 52.1, выход которого является первым управляющим выходом блока анализа, пятый выход распределителя 42 импульсов соединен с прямым входом элемента И 51 и с первым входом элемента И 52.2, выход которого является вторым управляющим выходом блока анализа, пятый выход распределителя 42 импульсов соединен со счетным входом триггера 48, прямой выход которого подключен к управляющему входу генератора 39 константы, информационный вход которого является входом 54 идентификации модуля, второй выход блока 40 выбора направления передачи сообщения соединен с вторыми входами элементов И 52.1 и 52.2 и с инверсными входами элементов И 53.1 и 53.2, прямые входы которых подключены к первому и второму выходам демультиплексора 47 соответственно, выходы элементов И 53.1 и 53.2 соединены с первым и вторым информационными выходами блока анализа соответственно.

Блок управления синхронизацией параллельных участков (БУСПУ) (фиг. 3) предназначен для приема квитанций завершения параллельных участков программ, модификации условий синхронизации, соответствующих различным вершинам слияния, и формирования сигнала запуска модуля при выполнении условий синхронизации параллельных участков и содержит блоки 55 постоянной и 56 оперативной памяти условий синхронизации (БППУС и БОПУС), формирователь 57 адреса, триггер 58 режима, генератор 59 настройки, триггер 60 готовности, счетчик 61, коммутатора 62 и 63, элементы И 64 и 65, элементы ИЛИ 66 и 67, одновибраторы 68, 69 и 70, причем управляющий вход БУСПУ подключен к входу сброса триггера 60 готовности и к входу одновибратора 68, выход которого соединен с входом сброса счетчика 61 и с первым входом элемента ИЛИ 67, выход которого подключен к счетному входу триггера 58 режима, прямой выход которого подключен к прямому и инверсному управляющим входам коммутатора 62 и к первому, второму и третьему управляющим входам коммутатора 63, выход которого подключен к информационному входу БОПУС 56, выход которого соединен с информационным входом счетчика 61, инверсный выход которого соединен с первым входом элемента И 64, прямой выход счетчика 61 соединен с первым информационным входом коммутатора 63 и первым информационным входом коммутатора 62, второй информационный вход которого соединен с выходом формирователя 57 адреса, вход которого является информационным входом БУСПУ, выход коммутатора 62 соединен с адресным входом БОПУС 56 и адресным входом БППУС 55, старшие разряды выхода которого подключены к второму и третьему информационным входам коммутатора 63, а младший разряд (выход) 55.1 соединен с первым входом элемента И 65 и информационным (D) входом триггера 60 готовности, прямой выход которого подключен к второму выходу БУСПУ и к второму входу элемента И 64, выход которого подключен к четвертому и пятому управляющим входам коммутатора 63 и к входу одновибратора 69, выход которого является первым выходом БУСПУ, первый вход синхронизации БУСПУ соединен с выходом синхронизации счетчика 61 и с выходом одновибратора 70, выход которого подключен к вычитающему входу счетчика 61, второй вход синхронизации БУСПУ соединен с первым входом элемента ИЛИ 66, выход которого подключен к входу записи БОПУС 56, инверсный выход триггера 58 режима соединен с входом генератора 59 настройки, первый выход которого соединен с суммирующим входом счетчика 61, второй выход генератора 59 настройки подключен к второму входу элемента ИЛИ 66, к выходу синхронизации триггера 60 готовности и к второму входу элемента И 65, выход которого соединен с вторым входом элемента ИЛИ 67, при этом триггер 60, одновибратор 69 и счетчик 61 срабатывают по фронту, а триггер 58 и одновибраторы 69 и 70 - по срезу управляющих импульсов.

Блок памяти сообщений (БПС) (фиг. 4) служит для приема, хранения и выдачи управляющих сообщений в порядке их поступления и содержит регистры 71.1-71. K (где K - максимальная длина очереди сообщений), блоки элементов ИЛИ 72.1-72. K-1, элементы И 73.1-73.K, 74.1-74.K, элементы ИЛИ 75.1-75.K, демультиплекстор 76, элемент И 77, элемент И-НЕ 78, причем информационный вход демультиплестора 76 является информационным входом БПС, выходы с первого по (K-1)-й демультиплексора 76 соединены с первыми входами блоков элементов ИЛИ 72.1-72. K-1 соответственно, вторые входы которых подключены к прямым выходам регистров 71.2-71.K соответственно, выходы блоков элементов ИЛИ 72.1-72. K-1 подключены к информационным входам регистров 71.1-71.K-1 соответственно, K-й выход демультиплекстора 76 подключен к информационному входу регистра 71.K, вход синхронизации записи БПС подключен к первым входам элементов И 74.1-74.K, выходы которых соединены с первыми входами элементов ИЛИ 75.1-75. K соответственно, выходы которых соединены с входами синхронизации регистров 71.1-71.K соответственно, инверсные выходы которых подключены к входам элементов И 73.1-73.K соответственно, выходы которых соединены с адресным входом демультиплексора 76, с вторыми входами элементов И 74.1-74.K соответственно, а также с входами элемента И-НЕ 78, выход которого является управляющим выходом БПС, первый и второй входы элемента И 77 являются соответственно входом сдвига и управляющим входом БПС, выход элемента И 77 подключен к вторым входам элементов ИЛИ 75.1-75.K и к управляющему входу демультиплекстора 76, прямой выход регистра 71.1 является информационным выходом БПС.

Блок выбора направления передачи сообщения (БВНПС) (фиг. 5) служит для формирования кода направления передачи сообщений и содержит схемы сравнения 79.1 и 79.2, элемент И 80 и неполный дешифратор 81, причем первые и вторые входы схем сравнения 79.1 и 79.2 подключены соответственно к второму и первому входам БВНПС, а выходы соединены с входами дешифратора 81, выход которого является первым выходом блока, выходы равенства схем сравнения 79.1 и 79.2 подключены соответственно к первому и второму входам элемента И 80, выход которого является вторым выходом БВНПС.

Блок синхронизации (БС) (фиг. 6) предназначен для формирования трех сдвинутых относительно друг друга импульсных последовательностей, синхронизирующих работу различных узлов модуля, и включает триггер 82, генератор 83 импульсов, счетчик 84, дешифратор 85 и элемент ИЛИ 86, причем первый вход элемента ИЛИ 86 является первый входом БС, выход элемента ИЛИ 86 соединен с входом сброса триггера 82, вход установки которого является третьим входом БС, прямой выход триггера 82 подключен к управляющему входу генератора 83 импульсов, выход которого подключен к управляющему входу дешифратора 85 и к счетном у входу счетчика 84, выход которого соединены с соответствующими информационными входами дешифратора 85, выходы с первого по третий которого являются выходами с третьего по первый БС соответственно, а второй вход элемента ИЛИ 86 дополнительно является вторым входом БС.

Распределитель импульсов (РИ) (фиг. 7) предназначен для формирования пяти сдвинутых относительно друг друга импульсных последовательностей, синхронизирующих работу элементов блока анализа и блока управления синхронизацией параллельных участков (в рабочем режиме), и содержит счетчик 87, дешифратор 88 и генератор 89 импульсов, вход которого является входом РИ, а выход подключен к управляющему входу дешифратора 88 и счетному входу счетчика 87, выходы которого соединены с соответствующими информационными входами дешифратора 88, первый, второй и третий выходы которого являются соответственно первым, вторым и пятым выходами РИ, четвертый и пятый выходы дешифратора 88 дополнительно являются четвертым и третьим выходами РИ соответственно.

Генератор константы (ГК) (фиг. 8) реализует функции приема, хранения и выдачи кода I.J номера модуля и включает регистры 90.1, 90.2 и блоки элементов И 91.1 и 92.2, причем входы регистров 90.1 и 90.2 образуют информационный вход ГК, а выходы подключены к информационным входам блоков элементов И 91.1 и 91.2 соответственно, управляющие входы которых соединены с управляющим входом ГК, а выходы образуют выход ГК.

Назначение элементов дополнительно введенного блока управления синхронизацией параллельных участков (фиг. 3) состоит в следующем.

Блок 55 постоянной памяти условий синхронизации (БППУС) служит для постоянного хранения и выдачи кодов исходных условий синхронизации Wq, соответствующих различным вершинам слияния Vq, для которых текущий модуль является ведущим. Информация на выходе блока 55 появляется сразу после установления на его адресном входе соответствующего адреса.

Блок 56 оперативной памяти условий синхронизации (БОПУС) служит для хранения, выдачи и приема кодов текущих условий синхронизации W'q, соответствующих вершинам слияния параллельных участков Vq, закрепленным за данным модулем. Информация на выходе блока 56 появляется сразу после установления на его адресном входе соответствующего адреса, а запись модифицированных условий синхронизации в блок 56 осуществляется в момент подачи на вход записи W импульса синхронизации.

Формирователь 57 адреса предназначен для преобразования кода номера вершины слияния Vq в адрес A(Vq) ячейки БОПУС 56 и ячейки БППУС 55, в которых размещены коды соответственно текущего W'q и исходного Wq условий синхронизации, соответствующих вершине Vq. Формирователь 57 может выполняться на основе программируемой логической матрицы (ПЛМ).

Триггер 58 режима служит для индикации текущего режима работы блока управления синхронизацией параллельных участков (устройства) и управления работы генератора 59 и коммутаторов 62, 63. Триггер 58 переключается в новое состояние по срезу (заднему фронту) импульса на его входе.

Генератор 59 настройки обеспечивает формирование двух сдвинутых относительно друг друга во времени импульсных последовательностей a1 и 2a, синхронизирующих работу блока управления синхронизацией параллельных участков в режиме настройки (перезаписи информации из блока 55 в блок 56).

Триггер 60 готовности служит для формирования сигнала окончания процесса настройки устройства (сигнала готовности), а также блокировки элемента И 64 и срабатывает по положительному перепаду уровня сигнала на его выходе синхронизации (C).

Счетчик 61 реализует две следующие функции: а) обеспечивает формирование адреса в ходе перезаписи информации из блока 55 в блок 56 (в режиме настройки устройства); б) обеспечивает формирование кодов модифицированных условий синхронизации при поступлении квитанций окончания параллельных участков от различных модулей ДМС (в рабочем режиме).

Модифицированное условие синхронизации образуется в результате считывания из блока 56 текущего кода W'q и уменьшения его на единицу . Счетчик 61 является реверсивным, работает в режиме приема информации в параллельном коде, в режиме прямого счета (+1) и в режиме обратного счета (-1) и срабатывает по фронту соответствующих импульсов синхронизации.

Коммутатор 62 служит для коммутации адресных входов блоков 55 и 56 либо с прямым выходом счетчика 61 (режим настройки), либо с выходом формирователя 57 адреса (рабочий режим) в зависимости от состояния триггера 58 режима.

Элемент И 64 предназначен для формирования сигнала, подтверждающего окончание требуемых параллельных участков, т.е. выполнение условия синхронизации .

Коммутатор 63 служит для коммутации информационного входа блока 56 либо с прямым выходом счетчика 61 (рабочий режим), либо с выходом блока 55 (режим настройки или рабочий режим: восстановление кода исходного условия синхронизации Wq в блоке 56 при окончании всех требуемых параллельных участков) в зависимости от состояния триггера 58 и уровня сигнала на выходе элемента И 64.

Элемент И 65 предназначен для формирования сигнала переключения триггера 58 при завершении работы устройства в режиме настройки (перезаписи кодов условий синхронизации из блока 55 в блок 56). Факт окончания процесса настройки отмечается появлением единичного признака на специальном выходе 55.1 блока 55.

Одновибратор 68 служит для формирования импульса l начальной установки счетчика 61 и переключения триггера 58 режима и вырабатывает импульс по отрицательному перепаду уровня сигнала на его входе.

Элемент ИЛИ 66 служит для формирования импульса синхронизации записи информации в блок 56.

Элемент ИЛИ 67 обеспечивает объединение сигналов переключения триггера 58 режима, поступающих с выходов элемента И 65 и одновибратора 68.

Одновибратор 69 обеспечивает формирование импульса пуска модуля при выполнении условия синхронизации параллельных участков и срабатывает по положительному перепаду уровня сигнала на его входе.

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

Дискретная микроконтроллерная сеть (ДМС) состоит из mn однотипных модулей, объединенных в матричную структуру (фиг. 10), причем первый информационный вход 28 модуля i.j, , соединен с вторым информационным выходом 31 модуля i, j-1, а первый информационный вход 28 модуля i.1 подключен к второму информационному выходу 31 модуля i.n, второй информационный вход 29 модуля k.1, , соединен с первым информационным выходом 30 модуля k+1. l, а второй информационный вход 29 модуля m.l подключен к первому информационному выходу 30 модуля 1.l.

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

Первоначально (фиг. 1-8) регистры 71.1-71. K блоков памяти сообщений 35-37, счетчики 43, 84 и 87, триггеры 9, 41, 48, 82 находятся в нулевом состоянии, триггеры 58 и 60 - в единичном состоянии, счетчик 61 - в состоянии "11...1", все разряды регистра 5 за исключением разряда 5.8, установленного в состояние логической единицы, находятся в состоянии логического нуля, а состояние регистра-счетчика 4, регистра 45, регистров 90.1 и 90.2 не определено (цепи начальной установки на фиг. 1-8 условий не показаны). В блоке 1 (в ячейках с ненулевыми адресами) размещены команды форматов, представленных на фиг. 9, образующие параллельные и последовательные участки программ, закрепленные за рассматриваемым модулем. В ячейках блока 55 размещены коды условий синхронизации (коды Wq) вершин слияния Vq, для которых текущий модуль является ведущим. Состояние ячеек блока 56 не определено (произвольно).

Функционирование ДМС начинается с настройки ее модулей, которая реализуется устройством управления верхнего уровня (УУВУ), например центральным процессором, и включает два этапа. На первом этапе настройки осуществляется установка (загрузка) номеров модулей матричной структуры, на втором - перезапись информации из ячеек блоков 55 в соответствующие ячейки блоков 56.

Этап 1. Код номера текущего модуля I.J формируется УУВУ и в сопровождении импульса синхронизации подается на вход 54 модуля (фиг. 2). С входа 54 код номера модуля I.J передается на информационный вход генератора 39 констант и далее код номера строки модуля I поступает (фиг. 8) на информационный вход регистра 90.1, а код номера столбца J - на информационный вход регистра 90.2. Импульс синхронизации с информационного выхода генератора 39 поступает на входы синхронизации регистров 90.1, 90.2 и обеспечивает установку (запись) кода I.J. Аналогичным образом осуществляется установка номеров других модулей.

Этап 2. Реализация данного этапа настройки начинается с приходом на вход 32 модуля импульса настройки n (фиг. 1). Импульс n передается на управляющий вход блока 3 (БУСПУ) и, поступая (фиг. 3) на вход сброса триггера 60, переключает его в нулевое состояние. Нулевой сигнал с прямого выхода триггера 60 поступает на выход 33 модуля и индицирует тем самым начало процесса настройки. Этот же сигнал поступает на второй вход элемента И 64 и формирует (подтверждает) на его выходе сигнал логического нуля.

Одновременно импульс настройки n с управляющего входа БУСПУ поступает на вход одновибратора 68 и задним фронтом (срезом) возбуждает на его выходе импульс l. Импульс l распространяется на вход сброса счетчика 61 и устанавливает его в нулевое состояние. В то же время импульс l с выхода одновибратора 68 через элемент ИЛИ 67 проходит на счетный вход триггера 58 и срезом переводит его в состояние логического нуля, соответствующее режиму настройки модуля. Нулевой сигнал с прямог