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

Иллюстрации

Показать все

Изобретение относится к автоматике и вычислительной технике и может найти применение при построении распределенных систем программного управления технологическими процессами, роботами и робототехническими комплексами, а также подсистем логического управления многоуровневых иерархических АСУ и мультипроцессорных систем широкого класса. Технической задачей изобретения является расширение области применения микроконтроллерной сети за счет обеспечения возможности простого наращивания числа ее модулей. Благодаря регулярности межмодульных связей, добавление нового столбца или строки модулей не требует введения новых физических связей. Возможность такого наращивания позволяет сети быстро адаптироваться к реализации более сложных алгоритмов управления. В микроконтроллерную сеть, содержащую M*N однотипных модулей, объединенных в матричную структуру, где N - число модулей в строке матричной структуры сети, М - число строк, при этом каждый модуль включает блок памяти программ, регистр адреса, регистр команд, мультиплексор логических условий, коммутатор адреса, блок синхронизации, с первого по третий элементы ИЛИ, регистр вектора соответствия, буферный регистр, первый и второй дешифраторы номера вершины синхронизации, блок элементов ИЛИ, первый и второй одновибраторы, элемент задержки, введена группа блоков управления синхронизацией, а каждый блок управления синхронизацией включает в себя триггер наличия соседа слева, триггер наличия соседа снизу, группу элементов НЕ, группу элементов И, с первого по пятый элементы ИЛИ, первый и второй элементы И, коммутатор, триггер и триггер разрешения запуска. 1 з.п. ф-лы, 8 ил.

Реферат

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

Известна распределенная система для программного управления технологическими процессами, содержащая M*N каналов (модулей), каждый из которых включает блок памяти программ, коммутатор адреса, регистры адреса и команд, мультиплексор логических условий, блоки синхронизации и анализа, буферный запоминающий блок, два блока элементов И и элемент И (а.с. 1605212 СССР, кл. G 05 B 19/18; опубл. 07.11.90, БИ №41).

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

Наиболее близкой к предлагаемой сети по технической сущности является дискретная микроконтроллерная сеть, содержащая M*N однотипных модулей, объединенных в матричную структуру, где N - число модулей в строке матричной структуры сети, М - число строк, каждый модуль которой включает блок памяти программ, регистр адреса, регистр команд, мультиплексор логических условий, коммутатор адреса, блок синхронизации, с первого по третий элементы ИЛИ, регистр вектора соответствия, буферный регистр, первый и второй дешифраторы номера вершины синхронизации, первую и вторую группы элементов И, группу элементов ИЛИ, блок элементов ИЛИ, первый и второй одновибраторы, элемент задержки, блок элементов НЕ (патент РФ 2168198, МПК 6 G 05 В 19/18, G 06 F 9/28, опубл. 27/05/2001).

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

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

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

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

Модуль микроконтроллерной сети (фиг.1) включает блок 1 памяти программ, регистр 2 адреса, регистр 3 команд, мультиплексор 4 логических условий, коммутатор 6 адреса, блок 10 синхронизации, первый 14 второй 12 третий 13 элементы ИЛИ, регистр 5 вектора соответствия, буферный 7 регистр, первый 8 и второй 9 дешифраторы номера вершины синхронизации, блок 11 элементов ИЛИ, первый 16 и второй 15 одновибраторы, элемент 17 задержки, причем вход 33 кода операции модуля соединен с первым информационным входом коммутатора 6 адреса, выход которого подключен к информационному входу регистра 2 адреса, выход которого подключен к адресному входу блока 1 памяти программ, выход которого соединен с информационным входом регистра 3 команд, выход 3.8 метки конца программы которого соединен с управляющими входами коммутатора 6 адреса, выходы 3.2 кода логического условия и 3.1 модифицируемого разряда адреса регистра 3 команд подключены к управляющему и первому информационному входам мультиплексора 4 логических условий соответственно, второй информационный вход которого соединен с входом 32 логических условий модуля, первый вход блока 10 синхронизации соединен со входом 34 пуска модуля, выход 3.3 немодифицируемой части адреса регистра 3 команд в объединении с выходом мультиплексора 4 логических условий подключены к первому входу блока 11 элементов ИЛИ и к информационному входу буферного регистра 7, выход которого соединен со вторым входом блока 11 элементов ИЛИ, выход которого соединен со вторым информационным входом коммутатора 6 адреса, выход 3.4 микроопераций регистра команд подключен к выходу 43 микроопераций модуля, вход 39 вектора соответствия модуля соединен с информационным входом регистра 5 вектора соответствия, выходы с первого по n-й которого подключены к третьим входам блоков 18.1-18.n управления синхронизацией соответственно, первые входы блоков 18.1-18.n управления синхронизацией являются входами 41.1-41.n наличия соседа слева сети, вторые входы блоков 18.1-18.n управления синхронизацией являются входами 42.1-42.n наличия соседа снизу сети, первый выход 3.5 номера вершины синхронизации регистра 3 команд соединен со входом первого дешифратора 8 номера вершины синхронизации, выходы с первого по n-й которого соединены с шестыми входами блоков 18.1-18.n управления синхронизацией соответственно, второй выход 3.6 номера вершины синхронизации регистра 3 команд соединен со входом второго дешифратора 9 номера вершины синхронизации, выходы с первого по n-й которого подключены к седьмым входам блоков 18.1-18.n управления синхронизацией соответственно, четвертые входы блоков 18.1-18.n управления синхронизацией являются первой группой входов 35.1-35.n модуля соответственно, пятые входы блоков 18.1-18.n управления синхронизацией являются второй группой входов 36.1-36.n модуля соответственно, восьмые входы блоков 18.1-18.n управления синхронизацией являются третьей группой входов 37.1-37.n модуля соответственно, девятые входы блоков 18.1-18.n управления синхронизацией являются четвертой группой входов 38.1-38.n модуля соответственно, первые выходы блоков 18.1-18.n управления синхронизацией являются первой группой выходов 44.1-44.n модуля соответственно, вторые выходы блоков 18.1-18.n управления синхронизацией являются второй группой выходов 45.1-45.n модуля соответственно, третьи выходы блоков 18.1-18.n управления синхронизацией являются третьей группой выходов 46.1-46.n модуля соответственно, четвертые выходы блоков 18.1-18.n управления синхронизацией соединены со входами первого элемента ИЛИ 14 с первого по n-й соответственно, выход которого соединен со входом синхронизации буферного регистра 7 и со входом первого одновибратора 16, выход которого подключен ко входу сброса регистра 3 команд и ко второму входу блока 10 синхронизации, первый выход которого соединен с первым входом второго элемента ИЛИ 12, выход которого подключен ко входу синхронизации регистра 2 адреса, выход 3.7 метки конца участка регистра 3 команд соединен со входом второго одновибратора 15, выход которого соединен с третьим входом блока 10 синхронизации, второй выход которого подключен ко входу сброса буферного регистра 7 и к первому входу третьего элемента ИЛИ 13, вход настройки модуля 40 соединен со вторым входом второго элемента ИЛИ 12, со входом синхронизации регистра 5 вектора соответствия, а также со входом элемента задержки 17, выход которого подключен ко второму входу третьего элемента ИЛИ 13, выход которого подключен ко входу синхронизации регистра 5 команд.

Блок управления синхронизацией (фиг.2) содержит триггер 21.1 наличия соседа слева, триггер 21.2 наличия соседа снизу, группа элементов НЕ 31.1, 31.2, 31.3, 31.4, группа элементов И 23.1, 23.2, 23.3, 23.4, элементы ИЛИ первый 19, второй 20, третий 24, четвертый 28, пятый 26, первый 22 и второй 37 элементы И, коммутатор 25, триггер 30 и триггер 29 разрешения запуска, причем первый вход блока управления синхронизацией подключен ко входу установки триггера 21.1 наличия соседа слева, и через первый элемент НЕ 31.1 группы ко входу сброса триггера 21.1 наличия соседа слева, прямой выход которого подключен к первому входу первого элемента И 23.1 группы, выход которого является вторым выходом блока управления синхронизацией, инверсный выход триггера 21.1 наличия соседа слева подключен ко второму входу второго элемента И 23.2 группы, выход которого соединен со вторым входом второго элемента ИЛИ 20, второй вход блока управления синхронизацией подключен ко входу установки триггера 21.2 наличия соседа снизу, и через второй элемент НЕ 31.2 группы ко входу сброса триггера 21.2 наличия соседа снизу, прямой выход которого соединен с первым входом третьего элемента И 23.3 групп, выход которого является третьим выходом блока управления синхронизацией, инверсный выход триггера 21.2 наличия соседа снизу подключен ко второму входу четвертого элемента И 23.4 группы, выход которого подключен к первому входу первого элемента ИЛИ 19, третий вход блока управления синхронизацией подключен к первому входу пятого элемента ИЛИ 26, выход которого соединен с третьим входом первого элемента И 22, четвертый вход блока управления синхронизацией подключен ко второму входу первого элемента ИЛИ 19, выход которого подключен к первому входу первого элемента И 22, пятый вход блока управления синхронизацией подключен к первому входу второго элемента ИЛИ 20, выход которого подключен ко второму входу первого элемента И 22, выход которого подключен к первому входу коммутатора 25, и через третий элемент НЕ 31.3 группы подключен к третьему входу коммутатора 25, шестой вход блока управления синхронизацией подключен ко входу установки триггера 29 разрешения запуска, седьмой вход блока управления синхронизацией подключен ко входу синхронизации триггера 30, и через четвертый элемент НЕ 31.4 группы к информационному входу триггера 30, выход которого подключен ко второму входу второго элемента И 37, выход триггера 30 подключен ко второму и четвертому входу коммутатора 25, выход коммутатора 25 является первым и четвертым выходами блока управления синхронизацией, выход коммутатора 25 подключен ко входу синхронизации триггера 29 разрешении запуска, информационный вход триггера 29 разрешения запуска соединен с шиной логического нуля, прямой выход триггера 29 разрешения запуска соединен со вторым входом пятого элемента ИЛИ 26, выход коммутатора 25 подключен к первому входу второго элемента И 37, выход которого подключен ко второму входу четвертого элемента ИЛИ 28, выход которого подключен ко второму входу первого элемента И 23.1 группы и к первому входу второго элемента И 23.2 группы, выход второго элемента И 37 подключен ко второму входу третьего элемента ИЛИ 24, восьмой вход блока управления синхронизацией подключен к первому входу третьего элемента ИЛИ 24, выход которого подключен ко второму входу третьего элемента И 23.3 группы и к первому входу четвертого элемента И 23.4 группы, девятый вход блока управления синхронизацией подключен к первому входу четвертого элемента ИЛИ 28.

Общие особенности функциональной организации микроконтроллерной сети состоят в следующем.

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

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

В процессе выполнения участков программ модули МКС обрабатывают команды двух типов: операционные и коммуникационные. Операционные команды (эти команды имеют формат Ф2 (фиг.5)) обеспечивают выдачу управляющих воздействий на объект управления и инициируют исполнение требуемых микроопераций. Коммуникационные команды (формат Ф3 (фиг.5)) служат для организации взаимодействия и координации различных модулей, включая запуск участков, закрепленных за другими модулями (межмодульную передачу управления), и синхронизацию параллельных участков программ.

Организация межмодульного взаимодействия в предлагаемой МКС немного отличается от прототипа. Так же как и в прототипе, в рассматриваемой МКС межмодульная передача управления в явном виде отсутствует; выполняется только процедура синхронизации. При этом запуск участков программ, реализуемых различными модулями, происходит при выполнении соответствующих условий синхронизации. Таким условием при запуске участков, непосредственно следующих за подмножеством других (параллельных) участков, является синхронизация (завершение) всех участков данного подмножества. При запуске участков, следующих за единственным участком, в качестве условия выступает завершение этого единственного участка.

Для задания момента активизации некоторого участка (где е - порядковый номер данного участка для (i.j)-го модуля, k - номер программы), этому участку ставится в соответствии номер непосредственно предшествующей ему вершины синхронизации at (если активизируемому участку непосредственно предшествует единственный участок программы, то вершина at считается фиктивной). Запуск участка происходит после выполнения вершины at, т.е. как только завершаются все непосредственно предшествующие ему участки программы.

В предлагаемой сети указанные адреса формируются непосредственно модулями, реализующими запускаемые участки (модулями - приемниками управления), в результате самонастройки. Адрес начала следующего ((е+1)-го) участка, выполняемого (i.j)-м модулем, указывается в заключительной команде предшествующего (е-го) участка программы. Для задания адресов начальных участков модулей используются команды настройки формата Ф1 (фиг.4). За каждым модулем сети закрепляется Q таких команд, Q - число программ, реализуемых микроконтроллерной сетью (число программ в реализуемом комплексе). Каждая из Q команд настройки определяет адрес первой команды, выполняемой (i.j)-м модулем при реализации k-й программы, т.е. адрес начального участка (i.j)-го модуля. (Если (i.j)-й модуль не участвует в процессе выполнения k-й программы, то команда Ф1 содержит только нули). Команды настройки Ф1 размещаются в блоке 1 памяти программ (фиг.1) по начальным адресам от 1 до Q включительно. Команда настройки, а следовательно, и реализуемая программа однозначно задается адресом при обращении к блоку 1.

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

Для обеспечения синхронизации произвольных групп параллельных участков за каждым модулем МКС закрепляется вектор, задающий соответствие между множеством вершин синхронизации программы и данным модулем. (i.j)-му модулю сети, , , в общем случае соответствует Q различных векторов, каждый из которых отвечает определенной программе. Вектор соответствия для (i.j)-го модуля и k-й программы имеет вид

где

nk - число вершин синхронизации в k-й программе.

Значение компоненты вектора Si.j(k) определяется следующим образом:

, если за (i.j)-м модулем закреплен некоторый участок программы, завершающийся в q-й вершине синхронизации;

, если (i.j)-й модуль не реализует ни одного участка, завершающегося в q-й вершине синхронизации, или q-я вершина синхронизации отсутствует в k-й программе (что возможно при nk<q).

Синхронизация группы параллельных участков , завершающихся (сходящихся) в q-й вершине синхронизации, осуществляется на основе циклического распространения сигнала dq завершения группы участков в q-м канале управления синхронизацией МКС. Сигнал dq формируется (i.N)-м модулем сети (фиг.3). В исходном состоянии dq=0 (параллельные участки не завершены) и, следовательно, .

Процесс синхронизации включает две фазы - формирование признака окончания синхронизируемых участков и передачу этого признака всем модулям МКС. Первая из указанных фаз начинается с подачи единичного сигнала . В отличие от прототипа, где данный сигнал одновременно подается модулям с номерами 1.1, 2.1,...,M.1 и М.2, М.3,...,M.N и последовательно распространяется через все модули МКС в направлении от (M.1)-го модуля вверх и вправо до (1.N)-го модуля, в рассматриваемой МКС сигнал распространяется через все модули МКС к модулям с номерами 1.1, 2.1,...,M.1 и М.2, М.3,...,M.N. Таким образом, происходит избавление от обратных связей (1.N)-го модуля с крайними левыми и крайними нижними модулями, вследствие чего появляется возможность наращивания МКС путем присоединения дополнительных модулей.

Единичный сигнал распространяется от (1.N)-го модуля вниз и влево через все модули МКС ко всем крайним левым и крайним нижним клеткам. Крайние клетки определяются триггерами наличия соседа слева и наличия соседа снизу . Если , то это значит, что присутствует связь с соседом слева, и сигнал передается этому соседу. Если , то это значит, что присутствует связь с соседом снизу, и сигнал передается этому соседу. В противном случае единичный сигнал по обратной связи передается на выход модуля следующим образом: на верхний, если сигнал пришел сверху, и на правый, если сигнал пришел справа. Затем начинается обратное распространение единичного сигнала через МКС к модулю (1.N).

Распространение сигнала через некоторый модуль mi.j происходит следующим образом. Если , то появление единичных сигналов на нижнем и левом входах (i.j)-го модуля обусловливает формирование единичного сигнала на его выходе. Если , то формирование единичного сигнала на выходе (i.j)-го модуля происходит только при условии завершения участка , реализуемого (i.j)-м модулем.

Состояние участка определяется значением сигнала - признака , если участок завершен; в противном случае. В случае, если участок не завершен, на выходе (i.j)-го модуля устанавливается нулевой сигнал. Данный сигнал формирует нулевые сигналы на выходах всех модулей, расположенных выше и/или правее (i.j)-го модуля. На выходе (1.N)-го модуля, соответственно, также будет нулевой сигнал dq=0. Как только происходит завершение участка , единичный сигнал передается на выход (i.j)-го модуля и поступает на (i-1.j)-й и (i.j+1)-й модули.

После завершения всех параллельных участков группы Bq сигнал пройдет на входы (1.N)-го модуля и на выходе (1.N)-го модуля, таким образом, будет сформирован сигнал dq=1, сообщающий об окончании синхронизируемых параллельных участков. На этом первая фаза синхронизации завершается.

Вторая фаза синхронизации начинается с инвертирования сигнала dq. Получаемый нулевой сигнал также распространяется от (1.N)-го модуля вниз и влево через все модули МКС ко всем крайним левым и крайним нижним клеткам, как и в предыдущей фазе, затем сигнал распространяется через все модули МКС до модуля с номером 1.N. В процессе распространения сигнала происходит запуск всех модулей, ожидающих завершение параллельных участков группы Bq. Признаком запуска модуля является переход сигнала из единицы в нуль (1→0). Вторая фаза и процесс синхронизации параллельных участков в целом завершаются после появления нулевого сигнала на выходе (1.N)-го модуля.

Принципы организации межмодульной передачи управления и синхронизации параллельных участков в предлагаемой МКС поясняются примером реализации параллельного алгоритма управления, представленного на фиг.6а. Алгоритм включает 20 параллельных и последовательных участков , принадлежность которых определенному модулю задается верхним индексом i.j. В рассматриваемый алгоритм входят вершины синхронизации a1, а2,...,а11; вершины a7, a8, а9, а10, а11 (показанные пунктиром) являются фиктивными, поскольку им соответствуют переходы между отдельными участками. МКС содержит 3×3 модулей.

Таблица настройки модулей, определяющая адреса начальных участков , а также номера вершин синхронизации аt, после достижения которых должен быть обеспечен запуск соответствующих модулей, представлена на фиг.6б. В соответствии с данной таблицей запуск модулей m1.1, m3.2 и m3.3 происходит после выполнения вершины синхронизации a1, т.е. после завершения участка , запуск модуля m1.2 осуществляется после достижения вершины синхронизации a7, т.е. после завершения участка и т.д. Модуль m2.2 активизируется непосредственно в момент запуска МКС независимо от состояния других модулей.

Таблица векторов соответствия для рассматриваемого алгоритма показана на фиг.6в. Согласно данной таблице модуль m1.1 реализует участки, завершающиеся в вершинах синхронизации а2, a4 и а5, модуль m1.2 - участки, сходящиеся в вершинах а3, а4 и а6, и т.д.

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

Назначение элементов и блоков модуля микроконтроллерной сети (фиг.1), за исключением блоков 18.1-18.n, не отличается от прототипа.

Назначение элементов блоков 18.1-18.n (фиг.2) состоит в седующем.

Элементы ИЛИ 19, 20, 24, 28 служат для обеспечивания циркуляции сигналов управления синхронизацией параллельных участков между модулями МКС.

Триггеры наличия соседа слева 21.1 и наличия соседа снизу 21.2 вместе с элементами НЕ 31.1 и 31.2 служат для индикации наличия соседних микроконтроллеров слева и снизу соответственно, и при отсутствии соседних микроконтроллеров, совместно с элементами И 23.1, 23.2, 23.3, 23.4, блокируют распространение сигналов управления синхронизацией.

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

Коммутатор 25 вместе с элементом НЕ 31.3 служит для инвертирования сигнала управления синхронизацией.

Элемент ИЛИ 26 служит для объеденения сигналов с триггера разрешения запуска и с третьего входа блока управления синхронизацией.

Элемент И 27 служит для разрешения/блокировки прохождения сигнала управления синхронизацией в направлении, противоположном направлению его поступления.

Триггер 29 разрешения запуска служит для фиксации сигнала окончания параллельного участка текущего модуля.

Триггер 30 вместе с элементом НЕ 31.4 служит для хранения признака расположения текущего модуля.

Рассмотрим процесс функционирования микроконтроллерной сети подробно.

Первоначально элементы памяти (регистры и триггеры) всех модулей МКС находятся в состоянии логического нуля. Исключение составляют триггеры 49 блоков 10 синхронизации (фиг.3), а также разряды 3.8 регистров 3 (фиг.1), установленные в единичное состояние. Исходя из указанного состояния элементов памяти блоки 10 синхронизации модулей выключены, коммутаторы 6 настроены на прием информации с входов 33, а на всех выходах модулей находятся сигналы логического нуля.

Работа сети начинается с настройки модулей на выполнение требуемой программы. Предположим, что эта программа имеет номер k. Настройка (i.j)-го модуля на выполнение k-й программы сводится к установлению адреса (адреса первой команды), а также к определению номера вершины синхронизации аt, после достижения которой должен осуществляться запуск (i.j)-го модуля.

Процесс настройки начинается с подачи на вход 33 (i.j)-го модуля (фиг.1) кода операции. Код операции (КОП), представляющий собой код номера выполняемой программы (k), через коммутатор 6 передается на информационный вход регистра 2. Одновременно на вход 40 модуля подается импульс настройки. Указанный импульс через элемент ИЛИ 12 поступает на вход синхронизации регистра 2 и задним фронтом фиксирует КОП в данном регистре. Далее КОП с выхода регистра 2 подается на адресный вход блока 1 и формирует на его выходе команду настройки Ф1) (фиг.5), соответствующую k-й программе.

В то же самое время импульс настройки через элемент 17 задержки и элемент ИЛИ 13 (фиг.1) передается на вход синхронизации регистра 3 и задним фронтом производит запись считанной из блока 1 команды в регистр 3. После фиксации команды на выходах 3.2 и 3.3 регистра 3 образуется адрес , а на выходе 3.6 формируется код номера (t) вершины синхронизации (НВС) аt. На остальных выходах регистра 3 устанавливаются нулевые сигналы.

Нулевой сигнал с выхода 3.8 регистра 3 перенастраивает коммутатор 6 на прием информации с выхода блока элементов ИЛИ 11. Поскольку на выходе 3.1 регистра 3 присутствует нулевой код