Изобретение относится к автоматике и вычислительной технике и может найти применение при построении распределенных систем программного управления технологическими процессами, роботами и робототехническими комплексами, а также подсистем логического управления многоуровневых иерархических АСУ и мультипроцессорных систем широкого класса.
Известна дискретная микроконтроллерная сеть, содержащая M*N однотипных модулей, объединенных в матричную структуру, где N - число модулей в строке матричной структуры сети, М - число строк, каждый модуль которой включает блок памяти программ, регистр адреса, регистр команд, мультиплексор логических условий, коммутатор адреса, блок синхронизации, с первого по третий элементы ИЛИ, регистр вектора соответствия, буферный регистр, первый и второй дешифраторы номера вершины синхронизации, первую и вторую группы элементов И, группу элементов ИЛИ, блок элементов ИЛИ, первый и второй одновибраторы, элемент задержки, блок элементов НЕ (патент РФ №2168198, МПК7 G05B 19/05, G06F 9/28; заявл. 13.09.1999; опубл. 27.05.2001, БИ №15).
Недостатком указанной сети является узкая область применения в связи с ее ограниченной наращиваемостью. Добавление в эту сеть нового столбца или строки модулей возможно только при введении в нее новых физических связей.
Наиболее близкой к предлагаемой сети по технической сущности является микроконтроллерная сеть, содержащая M*N однотипных модулей, объединенных в матричную структуру, где N - число модулей в строке матричной структуры сети, М - число строк, каждый модуль которой включает блок памяти программ, регистр адреса, регистр команд, мультиплексор логических условий, коммутатор адреса, блок синхронизации, с первого по третий элементы ИЛИ, регистр вектора соответствия, буферный регистр, первый и второй дешифраторы номера вершины синхронизации, блок элементов ИЛИ, первый и второй одновибраторы, элемент задержки, группу блоков управления синхронизацией, каждый из которых включает триггер наличия соседа слева, триггер наличия соседа снизу, группу элементов НЕ, группу элементов И, с первого по пятый элементы ИЛИ, первый и второй элементы И, коммутатор, триггер и триггер разрешения запуска (патент РФ №2280887, МПК8 G05B 19/18, G06F 9/28; заявл. 15.02.2005, опубл. 27.07.2006, БИ №21).
Недостатком указанной сети является высокая сложность межмодульного интерфейса, что ограничивает область ее применения.
Технической задачей заявляемого изобретения является расширение области применения микроконтроллерной сети за счет уменьшения сложности межмодульного интерфейса. В предлагаемой сети благодаря мультиплексированию межмодульных связей предназначенных для распространения сигналов завершения параллельных участков, уменьшается общее количество физических связей. Это дает возможность выполнения микроконтроллерной сетью алгоритмов более широкого класса, включая алгоритмы с большим числом синхронизируемых параллельных участков.
Техническая задача решается тем, что в каждый модуль микроконтроллерной сети, содержащей M*N однотипных модулей, объединенных в матричную структуру, где N - число модулей в строке матричной структуры сети, М - число строк, включающий блок памяти программ, регистр адреса, регистр команд, мультиплексор логических условий, коммутатор адреса, блок синхронизации, с первого по третий элементы ИЛИ, регистр вектора соответствия, буферный регистр, первый и второй дешифраторы номера вершины синхронизации, блок элементов ИЛИ, первый и второй одновибраторы, элемент задержки, причем вход кода операции модуля соединен с первым информационным входом коммутатора адреса, выход которого подключен к информационному входу регистра адреса, выход которого подключен к адресному входу блока памяти программ, выход которого соединен с информационным входом регистра команд, выход метки конца программы которого соединен с управляющими входами коммутатора адреса, выходы кода логического условия и модифицируемого разряда адреса регистра команд подключены к адресному и первому информационному входам мультиплексора логических условий соответственно, второй информационный вход которого соединен со входом логических условий модуля, первый вход блока синхронизации соединен со входом пуска модуля, выход немодифицируемой части адреса регистра команд в объединении с выходом мультиплексора логических условий подключены к первому входу блока элементов ИЛИ и к информационному входу буферного регистра, выход которого соединен со вторым входом блока элементов ИЛИ, выход которого соединен со вторым информационным входом коммутатора адреса, выход микроопераций регистра команд подключен к выходу микроопераций модуля, вход вектора соответствия модуля соединен с информационным входом регистра вектора соответствия, первый выход номера вершины синхронизации регистра команд соединен со входом первого дешифратора номера вершины синхронизации, второй выход номера вершины синхронизации регистра команд соединен со входом второго дешифратора номера вершины синхронизации, выход первого элемента ИЛИ соединен со входом синхронизации буферного регистра и со входом первого одновибратора, выход которого подключен ко входу сброса регистра команд и ко второму входу блока синхронизации, первый выход которого соединен с первым входом второго элемента ИЛИ, выход которого подключен ко входу синхронизации регистра адреса, выход метки конца участка регистра команд соединен со входом второго одновибратора, выход которого соединен с третьим входом блока синхронизации, второй выход которого подключен ко входу сброса буферного регистра и к первому входу третьего элемента ИЛИ, вход настройки модуля соединен со вторым входом второго элемента ИЛИ, со входом синхронизации регистра вектора соответствия, а также со входом элемента задержки, выход которого подключен ко второму входу третьего элемента ИЛИ, выход которого подключен ко входу синхронизации регистра команд, дополнительно введены группа из р блоков модулей управления синхронизацией ( где n - максимальное число вершин синхронизации в реализуемых программах, m - количество модулей управления синхронизацией в одном блоке, - операция округления вверх), мультиплексор каналов синхронизации, регистр конфигурации, первый и второй мультиплексоры, дешифратор каналов синхронизации, генератор сигналов управления синхронизацией, первая и вторая группы элементов И, причем первая группа входов модуля с первого по m-й соединена с первыми входами первой группы элементов И с первого по m-й соответственно, вторая группа входов модуля с первого по m-й соединена со вторыми входами первой группы элементов И с первого по m-й соответственно, выходы которых соединены с первыми входами блоков модулей управления синхронизацией с первого по р-й, вторые входы блоков модулей управления синхронизацией с первого по р-й соединены с выходами дешифратора каналов синхронизации с первого по р-й соответственно, третьи входы блоков модулей управления синхронизацией с первого по р-й соединены с первым выходом регистра конфигурации и с адресным входом первого мультиплексора, четвертые входы блоков модулей управления синхронизацией с первого по р-й соединены с групповыми выходами первого дешифратора номера вершины синхронизации с первого по р-й соответственно, пятые входы блоков модулей управления синхронизацией с первого по р-й соединены с групповыми выходами регистра вектора соответствия с первого по р-й соответственно, третья группа входов модуля с первого по m-й соединена с первыми входами второй группы элементов И с первого по m-й соответственно, четвертая группа входов модуля с первого по m-й соединена со вторыми входами второй группы элементов И с первого по m-й соответственно, выходы которых соединены с шестыми входами блоков модулей управления синхронизацией с первого по р-й, первый и второй входы модуля соединены с информационным входом и входом синхронизации регистра конфигурации соответственно, второй выход которого соединен с седьмыми входами блоков модулей управления синхронизацией с первого по р-й, третий выход регистра конфигурации соединен с адресным входом второго мультиплексора, выход которого соединен с первым входом первого мультиплексора, старшие разряды выхода которого соединены со входом дешифратора каналов синхронизации и с адресным входом мультиплексора каналов синхронизации, младший разряд выхода первого мультиплексора соединен с восьмыми входами блоков модулей управления синхронизации с первого по р-й, а также в объединении со старшими разрядами выхода первого мультиплексора соединен с выходом модуля, младшие разряды выхода мультиплексора каналов синхронизации с первого по m-й являются первой группой выходов модуля с первого по m-й соответственно, а старшие разряды с первого по m-й являются второй группой выходов модуля с первого по m-й соответственно, групповые выходы второго дешифратора номера вершины синхронизации с первого по р-й соединены с девятыми входами блоков модулей управления синхронизацией с первого по р-й соответственно, первый и второй выходы которых соединены со входами мультиплексора каналов синхронизации с первого по р-й соответственно, третьи выходы блоков модулей управления синхронизацией с первого по р-й соединены с групповыми входами первого элемента ИЛИ с первого по р-й соответственно, третий и четвертый входы модуля соединены соответственно с первым и вторым входами второго мультиплексора, входы модуля с пятого по восьмой соединены с входами генератора сигналов управления синхронизацией с первого по четвертый соответственно, выходы которого соединены со вторым входом первого мультиплексора, генератор сигналов управления синхронизацией каждого модуля содержит генератор импульсов, счетчик задержки, компаратор задержки, триггер, счетчик групп, регистр задержки, регистр групп, компаратор групп, причем первый вход генератора сигналов управления синхронизацией является входом запуска генератора импульсов, выход которого подключен к счетному входу счетчика задержки, выход которого подключен к первому входу компаратора задержки, выход которого подключен к входу сброса счетчика задержки, к первому выходу генератора сигналов управления синхронизацией, а также к счетному входу триггера, прямой выход которого подключен к счетному входу счетчика групп, второй и третий входы генератора сигналов управления синхронизацией подключены соответственно к информационному входу и входу синхронизации регистра задержки, выход которого подключен ко второму входу компаратора задержки, также второй вход генератора сигналов управления синхронизацией подключен к информационному входу регистра групп, вход синхронизации которого является четвертым входом генератора сигналов управления синхронизацией, выход регистра групп подключен к первому входу компаратора групп, выход которого подключен ко входу сброса счетчика групп, выход которого подключен к второму входу компаратора групп, а также является вторым выходом генератора сигналов управления синхронизацией, каждый блок модулей управления синхронизацией содержит модули управления синхронизацией с первого по m-й, причем разряды с первого m-й первого, четвертого, пятого, шестого, девятого входов блока модулей управления синхронизацией соединены с первым, четвертым, пятым, шестым, девятым входами модулей управления синхронизацией с первого по m-й соответственно, второй, третий, седьмой, восьмой входы блока модулей управления синхронизацией соединены соответственно с вторым, третьим, седьмым, восьмым входами модулей управления синхронизацией с первого по m-й, первый, второй, третий выходы модулей управления синхронизацией с первого по m-й соединены с разрядами с первого по m-й первого, второго, третьего выходов блока модулей управления синхронизацией соответственно, каждый модуль управления синхронизацией содержит с первого по третий элементы И, с первого по третий элементы НЕ, с первого по третий элементы ИЛИ, элемент запрета, коммутатор сигнала запуска, триггер признака завершения группы параллельных участков, причем первый вход модуля управления синхронизацией подключен к первому входу первого элемента И, выход которого подключен к прямому входу элемента запрета, выход которого подключен к первому входу первого элемента ИЛИ, выход которого соединен с первым входом второго элемента И, выход которого является первым выходом модуля управления синхронизацией, второй вход модуля управления синхронизацией подключен к второму входу первого элемента И и ко входу первого элемента НЕ, выход которого подключен к первому входу второго элемента ИЛИ, выход которого подключен к первому входу коммутатора сигнала запуска, выход которого является вторым выходом модуля управления синхронизацией, а также подключен к первому входу третьего элемента И, выход которого является третьим выходом модуля управления синхронизацией, третий вход модуля управления синхронизацией подключен ко второму входу первого элемента ИЛИ и к инверсному входу элемента запрета, четвертый и пятый входы модуля управления синхронизацией подключены соответственно к первому и второму входам третьего элемента ИЛИ, выход которого подключен ко второму входу второго элемента И, шестой вход модуля управления синхронизацией подключен ко второму входу второго элемента ИЛИ, седьмой вход модуля управления синхронизацией подключен к третьему входу коммутатора сигнала запуска, а также через второй элемент НЕ ко второму входу коммутатора сигнала запуска, восьмой вход модуля управления синхронизацией подключен ко входу синхронизации триггера признака завершения группы параллельных участков, инверсный выход которого подключен к четвертому входу коммутатора сигнала запуска, информационный вход триггера признака завершения группы параллельных участков через третий элемент НЕ подключен к выходу первого элемента И, второй вход третьего элемента И является девятым входом модуля управления синхронизацией.
Сущность изобретения поясняется чертежами, где на фиг.1 представлена функциональная схема модуля микроконтроллерной сети, на фиг.2 изображена функциональная схема блока модулей управления синхронизацией, на фиг.3 изображена функциональная схема модуля управления синхронизацией, на фиг.4 изображена функциональная схема генератора сигналов управления синхронизацией, на фиг.5 изображена функциональная схема блока синхронизации, на фиг.6 дана структурная схема микроконтроллерной сети, на фиг.7 приведены форматы (микро)команд, реализуемые модулем микроконтроллерной сети, на фиг.8 представлен иллюстративный пример, поясняющий принципы реализации параллельных алгоритмов (программ) в микроконтроллерной сети.
Модуль микроконтроллерной сети (фиг.1) включает блок 1 памяти программ, регистр 2 адреса, регистр 3 команд, мультиплексор 4 логических условий, коммутатор 6 адреса, блок 10 синхронизации, первый 14, второй 12, третий 13 элементы ИЛИ, регистр 5 вектора соответствия, буферный регистр 7, первый 8 и второй 9 дешифраторы номера вершины синхронизации, блок элементов ИЛИ 11, первый 16 и второй 15 одновибраторы, элемент 17 задержки, группу блоков 18.1-18-р модулей управления синхронизацией, мультиплексор 32 каналов синхронизации, регистр 33 конфигурации, первый 34 и второй 36 мультиплексоры, дешифратор 35 каналов синхронизации, генератор 37 сигналов управления синхронизацией, первую 73.1-73.m и вторую 74.1-74.m группы элементов И, причем вход 53 кода операции модуля соединен с первым информационным входом коммутатора 6 адреса, выход которого подключен к информационному входу регистра 2 адреса, выход которого подключен к адресному входу блока 1 памяти программ, выход которого соединен с информационным входом регистра 3 команд, выход 3.8 метки конца программы которого соединен с управляющими входами коммутатора 6 адреса, выходы 3.1 кода логического условия и 3.2 модифицируемого разряда адреса регистра 3 команд подключены к адресному и первому информационному входам мультиплексора 4 логических условий соответственно, второй информационный вход которого соединен со входом 52 логических условий модуля, первый вход блока 10 синхронизации соединен со входом 55 пуска модуля, выход 3.3 немодифицируемой части адреса регистра 3 команд в объединении с выходом мультиплексора 4 логических условий подключены к первому входу блока элементов ИЛИ 11 и к информационному входу буферного регистра 7, выход которого соединен со вторым входом блока элементов ИЛИ 11, выход которого соединен со вторым информационным входом коммутатора 6 адреса, выход 3.4 микроопераций регистра 3 команд подключен к выходу 72 микроопераций модуля, вход 68 вектора соответствия модуля соединен с информационным входом регистра 5 вектора соответствия, первый выход 3.5 номера вершины синхронизации регистра 3 команд соединен со входом дешифратора 8 номера вершины синхронизации, второй выход 3.6 номера вершины синхронизации регистра 3 команд соединен со входом дешифратора 9 номера вершины синхронизации, выход элемента ИЛИ 14 соединен со входом синхронизации буферного регистра 7 и со входом одновибратора 16, выход которого подключен ко входу сброса регистра 3 команд и ко второму входу блока 10 синхронизации, первый выход которого соединен с первым входом элемента ИЛИ 12, выход которого подключен ко входу синхронизации регистра 2 адреса, выход 3.7 метки конца участка регистра 3 команд соединен со входом одновибратора 15, выход которого соединен с третьим входом блока 10 синхронизации, второй выход которого подключен ко входу сброса буферного регистра 7 и к первому входу элемента ИЛИ 13, вход 54 настройки модуля соединен со вторым входом элемента ИЛИ 12, со входом синхронизации регистра 5 вектора соответствия, а также со входом элемента 17 задержки, выход которого подключен ко второму входу элемента ИЛИ 13, выход которого подключен ко входу синхронизации регистра 3 команд, входы 56.1-56.m первой группы 56 входов модуля соединены с первыми входами элементов И 73.1-73.m соответственно, входы 57.1-57.m второй группы 57 входов модуля соединены со вторыми входами элементов И 73.1-73.m соответственно, выходы которых соединены с первыми входами блоков 18.1-18.р модулей управления синхронизацией, вторые входы которых соединены с выходами дешифратора 35 каналов синхронизации с первого по р-й соответственно, третьи входы блоков 18.1-18.р модулей управления синхронизацией соединены с первым выходом регистра 33 конфигурации и с адресным входом мультиплексора 34, четвертые входы блоков 18.1-18.р модулей управления синхронизацией соединены с групповыми выходами дешифратора 8 номера вершины синхронизации с первого по р-й соответственно, пятые входы блоков 18.1-18.р модулей управления синхронизацией соединены с групповыми выходами регистра 5 вектора соответствия с первого по р-й соответственно, входы 58.1-58.m третьей группы 58 входов модуля соединены с первыми входами элементов И 74.1-74.m соответственно, входы 59.1-59.m четвертой группы 59 входов модуля соединены со вторыми входами элементов И 74.1-74.m соответственно, выходы которых соединены с шестыми входами блоков 18.1-18.р модулей управления синхронизацией, первый 60 и второй 61 входы модуля соединены с информационным входом и входом синхронизации регистра 33 конфигурации соответственно, второй выход которого соединен с седьмыми входами блоков 18.1-18.р модулей управления синхронизацией, третий выход регистра 33 конфигурации соединен с адресным входом мультиплексора 36, выход которого соединен с первым входом мультиплексора 34, старшие разряды выхода которого соединены со входом дешифратора 35 каналов синхронизации и с адресным входом мультиплексора 32 каналов синхронизации, младший разряд выхода мультиплексора 34 соединен с восьмыми входами блоков 18.1-18.р модулей управления синхронизации, а также в объединении со старшими разрядами выхода мультиплексора 34 соединен с выходом 71 модуля, младшие разряды выхода мультиплексора 32 каналов синхронизации с первого по m-й являются выходами 69.1-69.m первой группы выходов 69 модуля соответственно, а старшие разряды с первого по m-й являются выходами 70.1-70.m второй группы выходов 70 модуля соответственно, групповые выходы дешифратора 9 номера вершины синхронизации с первого по р-й соединены с девятыми входами блоков 18.1-18.р модулей управления синхронизацией соответственно, первый и второй выходы которых соединены со входами мультиплексора 32 каналов синхронизации с первого по р-й соответственно, третьи выходы блоков 18.1-18.р модулей управления синхронизацией соединены с групповыми входами элемента ИЛИ 14 с первого по р-й соответственно, третий 62 и четвертый 63 входы модуля соединены соответственно с первым и вторым входами мультиплексора 36, входы 64, 65, 66, 67 модуля соединены с входами генератора 37 сигналов управления синхронизацией с первого по четвертый соответственно, выходы которого соединены со вторым входом мультиплексора 34.
Блок модулей управления синхронизацией (фиг.2) содержит модули 19.1-19.m управления синхронизацией, причем разряды с первого m-й первого, четвертого, пятого, шестого, девятого входов блока модулей управления синхронизацией соединены с первым, четвертым, пятым, шестым, девятым входами модулей 19.1-19.m управления синхронизацией соответственно, второй, третий, седьмой, восьмой входы блока модулей управления синхронизацией соединены соответственно с вторым, третьим, седьмым, восьмым входами модулей 19.1-19.m управления синхронизацией, первый, второй, третий выходы модулей 19.1-19.m управления синхронизацией соединены с разрядами с первого по m-й первого, второго, третьего выходов блока модулей управления синхронизацией соответственно.
Модуль управления синхронизацией (фиг.3) содержит первый 22, второй 21, третий 31 элементы И, первый 25, второй 28, третий 29 элементы НЕ, первый 20, второй 26, третий 24 элементы ИЛИ, элемент 23 запрета, коммутатор 27 сигнала запуска, триггер 30 признака завершения группы параллельных участков, причем первый вход модуля управления синхронизацией подключен к первому входу элемента И 22, выход которого подключен к прямому входу элемента 23 запрета, выход которого подключен к первому входу элемента ИЛИ 20, выход которого соединен с первым входом элемента И 21, выход которого является первым выходом модуля управления синхронизацией, второй вход модуля управления синхронизацией подключен к второму входу элемента И 22 и ко входу элемента НЕ 25, выход которого подключен к первому входу элемента ИЛИ 26, выход которого подключен к первому входу коммутатора 27 сигнала запуска, выход которого является вторым выходом модуля управления синхронизацией, а также подключен к первому входу элемента И 31, выход которого является третьим выходом модуля управления синхронизацией, третий вход модуля управления синхронизацией подключен ко второму входу элемента ИЛИ 20 и к инверсному входу элемента 23 запрета, четвертый и пятый входы модуля управления синхронизацией подключены соответственно к первому и второму входам элемента ИЛИ 24, выход которого подключен ко второму входу элемента И 21, шестой вход модуля управления синхронизацией подключен ко второму входу элемента ИЛИ 26, седьмой вход модуля управления синхронизацией соединен с третьим входом коммутатора 27 сигнала запуска, а также через элемент НЕ 28 подключен ко второму входу коммутатора 27 сигнала запуска, восьмой вход модуля управления синхронизацией подключен ко входу синхронизации триггера 30 признака завершения группы параллельных участков, инверсный выход которого подключен к четвертому входу коммутатора 27 сигнала запуска, информационный вход триггера 30 признака завершения группы параллельных участков через элемент НЕ 29 подключен к выходу элемента И 22, второй вход элемента И 31 является девятым входом модуля управления синхронизацией.
Генератор сигналов управления синхронизацией (фиг.4) включает генератор 38 импульсов, счетчик 39 задержки, компаратор 40 задержки, триггер 41, счетчик 42 групп, регистр 43 задержки, регистр 44 групп, компаратор 45 групп, причем первый вход генератора сигналов управления синхронизацией является входом запуска генератора 38 импульсов, выход которого подключен к счетному входу счетчика 39 задержки, выход которого подключен к первому входу компаратора 40 задержки, выход которого подключен к входу сброса счетчика 39 задержки, к первому выходу генератора сигналов управления синхронизацией, а также к счетному входу триггера 41, прямой выход которого подключен к счетному входу счетчика 42 групп, второй и третий входы генератора сигналов управления синхронизацией подключены соответственно к информационному входу и входу синхронизации регистра 43 задержки, выход которого подключен ко второму входу компаратора 40 задержки, также второй вход генератора сигналов управления синхронизацией подключен к информационному входу регистра 44 групп, вход синхронизации которого является четвертым входом генератора сигналов управления синхронизацией, выход регистра 44 групп подключен к первому входу компаратора 45 групп, выход которого подключен ко входу сброса счетчика 42 групп, выход которого подключен к второму входу компаратора 45 групп, а также является вторым выходом генератора сигналов управления синхронизацией.
Структура блока 10 синхронизации (фиг.5) не отличается от прототипа.
Общие особенности функциональной организации предлагаемой микроконтроллерной сети состоят в следующем.
Микроконтроллерная сеть (МКС) формируется из множества однотипных модулей, объединенных в матричную структуру (фиг.6). Каждый модуль МКС (микроконтроллер) выполняется в виде СБИС с внутренней перепрограммируемой памятью программ и имеет множество входных и выходных информационных каналов, предназначенных для подключения к другим аналогичным модулям и обмена управляющей информацией. Модули сети идентифицируются условными номерами вида i.j, где i и j имеют смысл соответственно номера строки и номера столбца матричной структуры, содержащих данный модуль, "." - символ конкатенации. (В дальнейшем модуль с номером i.j именуется так же, как (i.j)-й модуль или модуль mi.j.)
МКС служит для управления сложными объектами, поведение которых описывается комплексом программ и предполагает параллельное протекание и взаимодействие множества процессов. Комплекс программ, реализуемый сетью, разбивается на множество параллельных и последовательных участков, которые распределяются между различными модулями. Каждый модуль реализует некоторое подмножество участков.
В процессе выполнения участков программ модули МКС обрабатывают команды двух типов: операционные и коммуникационные. Операционные команды (эти команды имеют формат Ф2 (фиг.7)) обеспечивают выдачу управляющих воздействий на объект управления и инициируют исполнение требуемых микроопераций. Коммуникационные команды (формат Ф3 (фиг.7)) служат для организации взаимодействия и координации различных модулей, включая запуск участков, закрепленных за другими модулями (межмодульную передачу управления), и синхронизацию параллельных участков программ.
Организация межмодульного взаимодействия в предлагаемой МКС несколько отличается от прототипа. Так же как и в прототипе, в рассматриваемой МКС межмодульная передача управления в явном виде отсутствует, явно выполняется только процедура синхронизации. При этом запуск участков программ, реализуемых различными модулями, происходит при выполнении соответствующих условий синхронизации. Таким условием при запуске участков, непосредственно следующих за подмножеством других (параллельных) участков, является синхронизация (завершение) всех участков данного подмножества. При запуске участков, следующих за единственным участком, в качестве условия выступает завершение этого единственного участка.
Для задания момента активизации некоторого участка (е) (где е - порядковый номер данного участка для (i.j)-го модуля, k - номер программы) этому участку ставится в соответствие номер непосредственно предшествующей ему вершины синхронизации аt (если активизируемому участку непосредственно предшествует единственный участок программы, то вершина at считается фиктивной). Запуск участка (е) происходит после выполнения вершины at, т.е. как только завершаются все непосредственно предшествующие ему участки программы.
В предлагаемой сети адреса приема управления формируются непосредственно модулями, реализующими запускаемые участки (модулями - приемниками управления), в результате самонастройки. Адрес (е+1) начала следующего ((е+1)-го) участка, выполняемого (i.j)-м модулем, указывается в заключительной команде предшествующего (е-го) участка программы. Для задания адресов начальных участков модулей {(1)} используются команды настройки формата Ф1 (фиг.7). За каждым модулем сети закрепляется Q таких команд, Q - число программ, реализуемых микроконтроллерной сетью (число программ в реализуемом комплексе). Каждая из Q команд настройки определяет адрес (1) первой команды, выполняемой (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 формируется (1.n)-м модулем сети (фиг.6). В исходном состоянии dq=0 (параллельные участки не завершены) и, следовательно, .
Процесс синхронизации включает две фазы - формирование признака окончания синхронизируемых участков и передачу этого признака всем модулям МКС.
Первая из указанных фаз начинается с формирования номера группы каналов uq, в которой находится q-й канал, генератором 37 сигналов управления синхронизацией (ГСУС), расположенным в (1.N)-м модуле, и распространения этого номера от него вниз и влево через МКС до модуля с номером M.1. Таким образом, происходит включение группы каналов синхронизации uq. После этого единичный сигнал распространяется от (1.N)-го модуля вниз и влево через все модули МКС ко всем крайним левым и крайним нижним модулям вплоть до (M.1)-го модуля.
Распространение сигнала через некоторый модуль mi.j происходит следующим образом. Если , то появление единичных сигналов на верхнем и правом входах (i.j)-го модуля обусловливает формирование единичного сигнала на его выходе. Если , то формирование единичного сигнала на выходе (i.j)-го модуля происходит только при условии завершения участка , реализуемого (i.j)-м модулем.
Состояние участка определяется значением сигнала - признака , если участок завершен; в противном случае. В случае если участок не завершен, на выходе (i.j)-го модуля устанавливается нулевой сигнал. Данный сигнал формирует нулевые сигналы на выходах всех модулей, расположенных не ниже и не правее (i.j)-го модуля. На входе (М.1)-го модуля соответственно также будет нулевой сигнал . Как только происходит завершение участка , единичный сигнал передается на выход (i.j)-го модуля и поступает в (i+1.j)-й и (i.j-1)-й модули.
После завершения всех параллельных участков группы Bq единичный сигнал пройдет на входы (M.1)-го модуля и зафиксируется в триггере 30 q-го модуля управления синхронизацией (фиг.3), а на выходе (М.1)-го модуля (фиг.6), таким образом, будет сформирован сигнал dq=1, сообщающий об окончании синхронизируемых параллельных участков. На этом первая фаза синхронизации завершается.
Вторая фаза синхронизации начинается с появления на выходе (M.1)-го модуля нулевого сигнала , который распространяется от (M.1)-го модуля вверх и вправо через все модули МКС ко всем крайним правым и крайним верхним модулям до модуля с номером 1.N. В процессе распространения сигнала происходит запуск всех модулей, ожидающих завершение параллельных участков группы Bq. Вторая фаза и процесс синхронизации параллельных участков в целом завершаются после появления нулевого сигнала на выходе (1.N)-го модуля и переключения на следующую группу каналов синхронизации.
Принципы организации межмодульной передачи управления и синхронизации параллельных участков в предлагаемой МКС поясняются примером реализации параллельного алгоритма управления, представленного на фиг.8а. Алгоритм включает 20 параллельных и последовательных участков (е), принадлежность которых определенному модулю задается верхним индексом i.j. В рассматриваемый алгоритм входят вершины синхронизации a1, a2,...,а10; вершины a8, a9, а10 (показанные пунктиром) являются фиктивными, поскольку им соответствуют переходы между отдельными участками. МКС содержит 3×3 модулей. Пары вершин а2 и a8, а3 и а4, а5 и а9, а10 и а6 являются параллельными и синхронизируются независимо.
Таблица настройки модулей, определяющая адреса начальных участков (1), а также номера вершин синхронизации аt, после достижения которых должен быть обеспечен запуск соответствующих модулей, представлена на фиг.8б. В соответствии с данной таблицей запуск модулей m1.1, m3.2 и m3.3 происходит после выполнения вершины синхронизации a1, т.е. после завершения участка (1), запуск модуля m1.2 осуществляется после достижения вершины синхронизации а8, т.е. после завершения участка (1), и т.д. Модуль m2.2 активизируется непосредственно в момент запуска МКС независимо от состояния других модулей.
Таблица векторов соответствия для рассматриваемого алгоритма показана на фиг.8в. Согласно данной таблице модуль m1.1 реализует участки, завершающиеся в вершинах синхронизации а2, а5 и а6, модуль m1.2 - участки, сходящиеся в вершинах a4, а5 и a7, и т.д.
Более подробно процессы синхронизации и запуска параллельных участков описываются при рассмотрении соответствующих режимов функционирования модуля МКС.
Назначение элементов и блоков модуля микроконтроллерной сети (фиг.1) с 1 по 17 не отличается от прототипа.
Блоки 18.1-18-р модулей управления синхронизацией (фиг.2) обеспечивают группировку однотипных модулей 19.1-19.m управления синхронизацией.
Модуль 19.j управления синхронизацией (фиг.3), принадлежащий блоку 18.i , предназначен для управления прохождением сигналов завершения групп параллельных участков и активизации модулей МКС для одной из вершин синхронизации aq.
Мультиплексор 32 (фиг.1) обеспечивает попеременную коммутацию выходов 69 и 70 модуля с первым, вторым выходами блоков 18.1-18.р в зависимости от номера r группы каналов синхронизации, поступающего от мультиплексора 34, с целью организации каналов прохождения сигналов завершения групп параллельных участков и активизации модулей МКС для соответствующего подмножества вершин синхронизации.
Регистр 33 необходим для хранения трехразрядного кода настройки конфигурации, соответствующего положению текущего модуля в матричной структуре МКС.
Мультиплексоры 34 и 36 служат для выбора источника сигналов управления синхронизацией в зависимости от содержимого регистра 33.
Дешифратор 35 предназначен для активизации одного из блоков 18.1-18.р в зависимости от номера r группы каналов синхронизации с выхода мультиплексора 34.
Генератор 37 сигналов управления синхронизацией введен с целью формирования номеров групп каналов синхронизации и импульсов опроса состояния групп параллельных участков.
Элементы И 73.1-73.m служат для организации распространения сигналов опроса состояния групп параллельных участков в МКС от соседних модулей сверху и справа от текущего.
Элементы И 74.1-74.m предназначены для организации распространения сигналов запуска модулей МКС, ожидающих завершения соответствующих групп параллельных участков, от соседних модулей слева и снизу от текущего.
Назначение элементов модуля 19.i управления синхронизацией (фиг.3) состоит в следующем.
Элементы ИЛИ 20, И 22, запрета 23 служат для формирования сигнала опроса состояния группы параллельных участков, закрепленной за модулем 19.i.
Элемент И 21 совместно с элементом ИЛИ 24 управляют распространением сигнала опроса состояния группы параллельных участков в зависимости от состояния текущего модуля МКС.
Элементы НЕ 25, ИЛИ 26, НЕ 28 и коммутатор 27 управляют распространением сигнала запуска модулей МКС по завершении группы параллельных участков через текущий модуль сети.
Триггер 30 вместе с элементом НЕ 29 служат для фиксации сигнала завершения группы параллельных участков.
Элемент И 31 обеспечивает блокировку запуска текущего модуля МКС при завершении группы параллельных участков.
Назначение элементов и блоков генератора 37 сигналов управления синхронизацией (фиг.4) заключается в следующем.
Генератор 38 импульсов служит для формирования последовательности импульсов, управляющих переключением счетчика 39.
Счетчик 39, компаратор 40 и регистр 43 служат для отсчета заданного времени задержки, отводимого для подключения очередной группы каналов синхронизации, и формирования короткого импульса по завершении отсчитанного времени.
Триггер 41 выполняет функцию делителя частоты на 2 и управляет переключением счетчика 42.
Счетчик 42, регистр 44 и компаратор 45 обеспечивают перебор номеров групп каналов синхронизации.
Рассмотрим процесс функционирования микроконтроллерной сети подробно.
Первоначально элементы памяти (регистры, триггеры и счетчики) всех модулей МКС находятся в состоянии логического нуля. Исключение составляют триггеры 49 блоков 10 синхронизации (фиг.5), триггеры 41 генераторов 37 (фиг.4), триггеры 30 модулей 19.i (фиг.3), а также разряды 3.8 регистров 3 (фиг.1), установленные в единичное состояние. Исходя из указанного состояния элементов памяти, блоки 10 синхронизации модулей выключены, коммутаторы 6 настроены на прием информации с входов 53, а на всех выходах модулей находятся сигналы логического нуля.
Перед началом работы происходит настройка конфигурации МКС. Для этого на вход 60 каждого модуля (фиг.1) подается трехразрядный код настройки, определяющий расположение данного модуля в сети. Код поступает на информационный вход регистра 33 и записывается в него по заднему фронту импульса, приходящего со входа 61 модуля. Первый разряд этого кода равен единице для (М.1)-го модуля (фиг.6) и нулю для всех остальных модулей. Второй разряд кода равен единице только для (1.N)-го модуля. Третий разряд кода равен единице для всех модулей первой строки (крайних верхних) и нулю для всех модулей последнего столбца (крайних правых); для всех остальных модулей значение данного разряда произвольно.
Первый разряд кода настройки из регистра 33 (фиг.1) проходит во все модули 19.i управления синхронизацией. В результате все коммутаторы 27 (фиг.3) модуля M.1 переключаются на прием сигнала от триггера 30. Второй разряд кода настройки из регистра 33 (фиг.1) поступает на адресный вход мультиплексора 34 и коммутирует его выход с выходом ГСУС 37 (в модуле 1.N) или с выходом мультиплексора 36 (в остальных модулях). Третий разряд кода из регистра 33 воздействует на адресный вход мультиплексора 36 и настраивает его на прием сигналов с входа 62 или 63 модуля. Для модулей верхней строки этот разряд единичный, поэтому в них мультиплексор 36 принимает сигналы с входа 63 модуля (согласно фиг.6 этот вход правый). В модулях последнего столбца этот разряд содержит ноль, поэтому их мультиплексор 36 принимает сигналы с входа 62 модуля (согласно фиг.6 этот вход верхний).
Кроме того, в ходе настройки конфигурации в регистр 43 ГСУС (фиг.4) (1.N)-го модуля с входа 65 по заднему фронту импульса с входа 66 записывается величина задержки, которая определяет частоту смены групп каналов синхронизации и зависит от размерности МКС. Данная величина устанавливается таким образом, чтобы период следования тактовых импульсов Тc с первого выхода ГСУС 37 был не меньше суммы длительностей прохождения тактового импульса от (1.N)-го модуля до модуля 1.М и сигнала dq от (М.1)-го модуля до модуля 1.N. Интервал смены групп каналов синхронизацией равен 2Тс. За первые Тс сигнал dq проходит от (1.N)-го модуля до модуля с номером M.1 и собирает информацию о завершении параллельных участков модулями МКС, за вторые Тс сигнал от (M.1)-го модуля распространяется через МКС до (1.N)-го модуля и запускает те модули, которые ожидают завершения q-й вершины синхронизации.
После описанных выше действий на вход 65 модуля 1.N подается код pk числа групп каналов, которые будут задействованы при работе k-й программы. Величина рk зависит от числа nk вершин синхронизации в реализуемой программе и от количества m каналов синхронизаций в группе и равна По заднему фронту импульса с входа 67 значение pk записывается в регистр 44 ГСУС (фиг.4).
По завершении настройки конфигурации начинается настройка модулей МКС на выполнение требуемой (k-й) программы. Настройка (i.j)-го модуля на выполнение k-й программы сводится к установлению адреса (1) (адреса первой команды), а также к определению номера вершины синхронизации аt, после достижения которой должен осуществляться запуск (i.j)-го модуля.
Процесс настройки модулей на выполнение k-й программы начинается с подачи на вход 53 (i.j)-го модуля (фиг.1) кода операции. Код операции (КОП), представляющий собой код номера выполняемой программы (k), через коммутатор 6 передается на информационный вход регистра 2. Одновременно на вход 54 модуля подается импульс настройки. Указанный импульс через элемент ИЛИ 12 поступает на вход синхронизации регистра 2 и задним фронтом фиксирует КОП в данном регистре. Далее КОП с выхода регистра 2 подается на адресный вход блока 1 и формирует на его выходе команду настройки Ф1 (фиг.7), соответствующую k-й программе.
В то же самое время импульс настройки через элемент 17 задержки и элемент ИЛИ 13 (фиг.1) передается на вход синхронизации регистра 3 и задним фронтом производит запись считанной из блока 1 команды в регистр 3. После фиксации команды на выходах 3.2 и 3.3 регистра 3 образуется адрес (1), а на выходе 3.6 формируется код номера (t) вершины синхронизации (НВС) аt. На остальных выходах регистра 3 устанавливаются нулевые сигналы.
Нулевой сигнал с выхода 3.8 регистра 3 перенастраивает коммутатор 6 на прием информации с выхода блока элементов ИЛИ 11. Поскольку на выходе 3.1 регистра 3 присутствует нулевой код (проверка логических условий в ходе настройки не производится), адрес (1) без изменений проходит через блок элементов ИЛИ 11. Далее этот адрес передается через коммутатор 6 и устанавливается на информационном входе регистра 2.
В то же время код номера вершины синхронизации аt с выхода 3.6 регистра 3 подается на вход дешифратора 9. В результате на t-м выходе дешифратора 9 образуется единичный сигнал. Этот сигнал проходит в блок 18.ut (здесь и дальше будем считать, что ut - номер группы каналов синхронизации, содержащей t-ю вершину, c(ut) - порядковый номер модуля управления синхронизацией в ut-й группе каналов синхронизации, непосредственно отвечающего за синхронизацию t-й вершины; элементы, содержащиеся в c(ut)-м модуле управления синхронизацией, также будем обозначать с номером c(ut)). Далее он проходит в модуль 19.с(ut) и попадает на вход элемента И 31.c(ut) (фиг.3). Тем самым обеспечивается возможность опроса уровня сигнала на выходе коммутатора 27.c(ut). Для модуля МКС, который реализует начальный участок k-й программы, задание кода НВС не требуется, поскольку этот модуль активизируется непосредственно в момент запуска МКС независимо от условий синхронизации. Поэтому на выходе 3.6 регистра 3 (фиг.1, 3) рассматриваемого модуля устанавливается нулевой код. В нем все элементы И 31 будут закрыты.
Одновременно с описанными выше действиями производится запись в регистр 5 модуля значения вектора Si.j(k) (устанавливается соответствие между (i.j)-м модулем и множеством вершин синхронизации k-й программы). Вектор Si.j(k) подается на вход 68 модуля и по заднему фронту импульса настройки с входа 54 модуля заносится в регистр 5. На этом процесс настройки (i.j)-го модуля на выполнение k-й программы завершается.
Аналогичным образом протекает процесс настройки остальных модулей МКС, причем настройка различных модулей выполняется одновременно. На входы 53 всех модулей подается один и тот же КОП; векторы соответствия для разных модулей в общем случае различны. В результате настройки для каждого модуля определяется момент его запуска при выполнении сетью k-й программы, задается соответствующий адрес (адрес первой команды) и, кроме того, устанавливается подмножество вершин синхронизации k-й программы, в которых завершаются участки, реализуемые модулем.
После завершения настройки осуществляется запуск МКС. Для запуска сети на вход 55 одного из ее модулей, реализующего начальный участок k-й программы, подается импульс пуска (фиг.1). Допустим, что указанный модуль имеет номер i.j (в примере на фиг.8 это модуль m2.2). Импульс пуска с входа 55 (i.j)-го модуля передается на первый вход блока 10 синхронизации. Далее этот импульс проходит через элемент ИЛИ 46 (фиг.5), воздействует на вход установки триггера 47 и переводит этот триггер в единичное состояние. Единичный сигнал с прямого выхода триггера 47 поступает на вход генератора 48 и разрешает формирование на его выходе последовательности импульсов.
Первый импульс с выхода генератора 48 проходит через элемент И 50 на первый выход блока синхронизации (элемент 50 открыт единичным сигналом с прямого выхода триггера 49). По заднему фронту этого же импульса триггер 49 переключается в нулевое состояние. В результате происходит блокировка элемента И 50 и открытие элемента И 51. Второй импульс с выхода генератора 48 через открытый элемент 51 проходит на второй выход блока синхронизации. Задний фронт данного импульса вновь возвращает триггер 49 в исходное (единичное) состояние. Третий импульс снова проходит на первый выход блока синхронизации, а четвертый импульс - на второй выход и т.д. Таким образом, на выходах блока 10 синхронизации начинается генерация двух сдвинутых друг относительно друга последовательностей импульсов синхронизации t1 и t2.
Первый импульс t1 с первого выхода блока 10 синхронизации (фиг.1) через элемент ИЛИ 12 проходит на вход синхронизации регистра 2 и фиксирует в данном регистре адрес (1), поступающий с выхода коммутатора 6. Адрес (1) с выхода регистра 2 поступает на адресный вход блока 1 и формирует на его выходе первую команду k-й программы.
Первый импульс t2 со второго выхода блока 10 синхронизации проходит через элемент ИЛИ 13 и, поступая затем на вход синхронизации регистра 3, записывает в этот регистр считанную из блока 1 команду. Одновременно этот же импульс подается на вход сброса буферного регистра 7 и подтверждает его нулевое состояние. Таким образом, (i.j)-й модуль и микроконтроллерная сеть в целом начинают исполнение k-й программы.
Одновременно с запуском модуля сети, реализующего начальный участок k-й программы, происходит включение ГСУС 37 (фиг.4) (1.N)-го модуля. Поскольку изначально счетчики 39 и 42 (фиг.4) сброшены, на выходах ГСУС 37 присутствует нулевой код. Этот код через мультиплексор 34 (фиг.1) поступает на адресный вход мультиплексора 32 и коммутирует его выходы с первым входом. Таким образом, активизируется первая группа каналов синхронизации и осуществляется синхронизация участков для вершин, входящих в эту группу. Далее на вход 64 (1.N)-го модуля (фиг.1, 6) подается единичный уровень сигнала, запускающий генератор 38 импульсов (фиг.4). Импульсы с этого генератора последовательно увеличивают содержимое счетчика 39, пока оно не сравняется с величиной задержки, содержащейся в регистре 43. При совпадении кодов в регистре 43 и счетчике 39 на выходе компаратора 40 устанавливается единичный сигнал. Этот сигнал через первый выход ГСУС 37 (фиг.1), мультиплексор 34 передается во все модули 19.i управления синхронизацией (фиг.3) и устанавливается на входах синхронизации триггеров 30, подготавливая их к последующему переключению. Одновременно этот же сигнал (фиг.4) сбрасывает счетчик 39, в результате чего на выходе компаратора 40 возникает отрицательный перепад уровня сигнала. В результате происходит переключение триггеров 30 в модулях 19.i (фиг.3) и сброс триггера 41 в ГСУС (фиг.4). Отрицательный перепад на прямом выходе триггера 41 вызывает увеличение значения счетчика 42. Таким образом, на второй выход ГСУС из счетчика 42 поступает код номера следующей группы каналов синхронизации.
После некоторого времени, когда значения счетчика 39 и регистра 43 опять сравняются, единичный сигнал с выхода компаратора 40 переключит триггер 41 в единичное состояние, а затем снова в нулевое. Перепад сигнала с выхода триггера 41 вновь инкрементирует счетчик 42, что приведет к изменению значения на его выходе. Таким образом, происходит переключение на следующую группу каналов синхронизации. Как только значение с выхода счетчика 42 сравняется с количеством групп каналов рk, которое хранится в регистре 44, на выходе компаратора 45 установится единица, которая сбросит счетчик 42 обратно в нулевое состояние. Далее процесс повторится согласно описанному.
Дальнейшее функционирование МКС будем рассматривать в предположении, что (i.j)-й модуль выполняет некоторый (в общем случае не начальный) участок k-й программы, например участок , завершающийся вершиной синхронизации aq. Кроме того, будем считать, что одновременно с (i.j)-м модулем могут функционировать и некоторые другие модули МКС (остальные модули находятся в пассивном состоянии или в состоянии ожидания).
В процессе выполнения участка (i.j)-й модуль может обрабатывать команды форматов Ф2, Ф3 или Ф4 (фиг.7). Обработка команды формата Ф3 соответствует режиму собственно выполнения участка программы (режим А), команда Ф3 определяет режим завершения участка программы (режим В), а команда Ф4 задает режим завершения программы в целом (режим С). Рассмотрим работу модуля в каждом из названных режимов.
Режим А. Записанная в регистр 3 команда имеет формат Ф2 (фиг.7). В этом случае на выходе 3.4 регистра 3 (фиг.1) формируется код микроопераций (МО), на выходах 3.2 и 3.3 образуется адрес следующей команды Асл (на выходе 3.3 - немодифицируемая часть, а на выходе 3.2 - модифицируемый разряд адреса следующей команды, изменяемый в точках ветвления программ), на выходе 3.1 устанавливается код опрашиваемого логического условия (ЛУ), а на выходах 3.5-3.8 появляются сигналы логического нуля.
Код МО с выхода 3.4 регистра 3 передается на выход 72 модуля и, поступая далее на вход объекта управления, инициирует выполнение требуемых микроопераций. Нулевые сигналы с выходов 3.5 и 3.6 регистра 3 воздействуют на входы дешифраторов 8 и 9 соответственно и формируют на всех их выходах нулевые сигналы. Нулевой сигнал с выхода 3.8 регистра 3 поступает на управляющие входы коммутатора 6 и настраивает его на прием адреса следующей команды с выхода блока элементов ИЛИ 11.
Одновременно с описанными действиями происходит формирование исполнительного адреса следующей команды. Указанный адрес образуется из адреса следующей команды Асл путем замещения его модифицируемого (младшего) разряда значением опрашиваемого ЛУ. Новое значение младшего разряда формируется на выходе мультиплексора 4. Процесс формирования этого значения протекает следующим образом. Модифицируемый разряд (Ам) адреса Асл с выхода 3.2 регистра 3 подается на первый информационный вход мультиплексора 4, а код ЛУ с выхода 3.1 поступает на адресный вход мультиплексора 4. Если код ЛУ отличен от нулевого, то на выход мультиплексора 4 передается значение соответствующего ЛУ с входа 52 модуля. Если же код ЛУ нулевой, то на выход мультиплексора 4 поступает значение Ам с выхода 3.2 регистра 3. Значение с выхода мультиплексора 4 в объединении с немодифицируемой (старшей) частью адреса следующей команды (Ан) с выхода 3.3 регистра 3 образует исполнительный адрес следующей команды Асл*.
Адрес Асл* через блок элементов ИЛИ 11 и открытый коммутатор 6 проходит на информационный вход регистра 2. Очередной импульс синхронизации t1 с первого выхода блока 10 синхронизации фиксирует адрес Асл* в регистре 2. Адрес Асл* с выхода регистра 2 поступает на адресный вход блока 1 и обеспечивает считывание из блока 1 очередной команды k-й программы. Следующий импульс t2 со второго выхода блока 10 синхронизации через элемент ИЛИ 13 подается на вход синхронизации регистра 3 и записывает в этот регистр считанную команду.
На этом работа (i.j)-го модуля в режиме А заканчивается. Считанная команда снова может иметь формат Ф2 либо может быть командой формата Ф3 или Ф4.
Режим В. Записанная в регистр 3 команда имеет формат Ф3 (фиг.7). В этом случае (i.j)-й модуль завершает выполнение некоторого участка , производит самонастройку на реализацию очередного участка k-й программы и переходит в состояние ожидания. В ходе самонастройки (i.j)-й модуль устанавливает адрес (е+1) начала очередного ((е+1)-го) участка (здесь е - порядковый номер участка для (i.j)-го модуля) и фиксирует номер (t) вершины синхронизации at (после достижения которой должен осуществляться запуск (i.j)-го модуля).
На выходе 3.7 регистра 3 появляется единичная метка конца участка программы (Мку), индицирующая формат считанной команды, на выходах 3.2 и 3.3 регистра 3 формируется адрес (е+1), на выходе 3.1 образуется код ЛУ, а на выходах 3.4 и 3.8 устанавливаются сигналы логического нуля. В то же время на выходах 3.5 и 3.6 регистра 3 формируются номера (коды номеров) вершин синхронизации: на выходе 3.5 - номер (q) вершины синхронизации aq, завершающей выполненный модулем участок ; на выходе 3.6 - номер (t) вершины синхронизации аt, определяющей момент очередного запуска (i.j)-го модуля (допустимым является случай, когда t=q).
В примере на фиг.8 после выполнения участка (1) на выходе 3.5 регистра 3 модуля т2.2 будет сформирован номер вершины a1, на выходе 3.6 будет установлен номер вершины а2, за которой следует очередной участок (2), выполняемый модулем m2.2. Адрес начала этого участка (2) будет зафиксирован на выходах 3.2 и 3.3 регистра 3. После завершения участка (2) на выходе 3.5 регистра 3 модуля m2.2 будет установлен НВС а4, а на выходе 3.6 - НВС а7, за которой следует очередной участок модуля m2.2 - участок (3). Аналогичным образом происходит самонастройка других модулей.
Код номера вершины синхронизации aq с выхода 3.5 регистра 3 поступает на вход дешифратора 8 и возбуждает единичный сигнал - признак завершения участка - на его q-м выходе. Единичный сигнал поступает в модуль 19.c(uq) (фиг.3) и проходит через элемент ИЛИ 24.c(uq) (на втором входе элемента 24.c(uq) присутствует сигнал =0 с q-го выхода регистра 5). Далее сигнал поступает на второй вход элемента И 21.c(uq) и тем самым индицирует окончание участка . В свою очередь, код НВС at с выхода 3.6 регистра 3 подается на вход дешифратора 9 и возбуждает сигнал логической единицы на его t-м выходе. Единичный сигнал с t-го выхода дешифратора 9 поступает на второй вход элемента И 31.с(ut) модуля 19.c(ut) (фиг.3), обеспечивая возможность последующего запуска (i.j)-го модуля при завершении участков, сходящихся в вершине синхронизации аt.
В то же время нулевой сигнал с выхода 3.8 регистра 3 (фиг.1) настраивает коммутатор 6 на прием информации с выхода блока элементов ИЛИ 11, а положительный перепад уровня сигнала, возникающий на выходе 3.7 регистра 3, воздействует на одновибратор 15 и формирует на его выходе импульс. Данный импульс поступает на третий вход блока 10 синхронизации и, проходя затем на вход сброса триггера 47 (фиг.5), переключает этот триггер в состояние логического нуля. Нулевой сигнал с прямого выхода триггера 47 выключает генератор 48 и тем самым приостанавливает процесс формирования импульсов синхронизации t1 и t2 на выходах блока 10 синхронизации. Таким образом, процесс считывания команд из блока 1 временно прекращается (модуль переходит в состояние ожидания).
Одновременно с описанными действиями происходит формирование исполнительного адреса следующей команды (адреса, с которого произойдет фактический запуск (i.j)-го модуля после достижения t-й вершины синхронизации). Указанный адрес образуется из адреса (е+1) путем модификации его младшего разряда (АМ) значением логического условия с входа 52 модуля (фиг.1). Процесс формирования исполнительного адреса протекает так же, как и при работе модуля в режиме А (см. выше). Полученный исполнительный адрес (обозначим его как (е+1)*) поступает на информационный вход буферного регистра 7, а также через блок элементов ИЛИ 11 и коммутатор 6 проходит на информационный вход регистра 2.
На этом работа модуля в режиме В заканчивается. Аналогичным образом происходит завершение других участков k-й программы, в том числе и участков , , сходящихся в q-й вершине синхронизации.
Рассмотрим работу МКС в режиме синхронизации группы параллельных участков, а также процесс запуска модулей при синхронизации. Для определенности будем рассматривать конкретную группу участков, например, группу участков , сходящихся в вершине синхронизации aq. Будем считать, что участки , ,..., распределены между модулями МКС произвольным образом.
Процесс синхронизации параллельных участков, сходящихся в q-й вершине, начинается с появления на выходе ГСУС 37 (1.N)-го модуля (фиг.4) номера uq очередной группы каналов синхронизации, которая содержит модуль управления синхронизацией 19.c(uq), отвечающий за процесс синхронизации q-й вершины. Этот номер через мультиплексор 34 (фиг.1) поступает на адресный вход мультиплексора 32 и обеспечивает прохождение сигналов с uq-го входа на выходы мультиплексора. Также номер uq появляется на выходе 71 модуля 1.N и передается на входы 63 и 62 модулей 1.N-1 и 2.N соответственно (фиг.6). Далее номер uq проходит через мультиплексоры 36 и 34 (фиг.1) каждого из этих модулей, поступает на их выходы 71 и передается модулям, расположенным ниже и правее и т.д. Таким образом, номер uq передается на все модули МКС, вплоть до модуля с номером M.1. Номер uq, поступая на входы какого-либо модуля, проходя через мультиплексоры 36, 34, поступает на вход дешифратора 35 и возбуждает на его uq-м выходе единичный сигнал. Этот сигнал проходит на входы элементов И 22 (фиг.3) всех модулей управления синхронизацией, содержащихся в блоке 18.uq, и через элементы НЕ 25 на входы элементов ИЛИ 26. Поступая на входы элементов И 22, он разрешает опрос сигналов, проходящих через элементы И 73.1-73.m (фиг.1) со входов 56.1-56.m, 57.1-57.m модуля МКС. Также поступая на элементы ИЛИ 26 (фиг.3), он разрешает распространение сигнала с входов 58.1-58.m, 59.1-59.m модуля. Номер uq, кроме того, воздействует на мультиплексор 32 каждого модуля и переключает его на uq-й вход. Таким образом, происходит настройка на uq-ю группу каналов синхронизации во всей МКС.
После переключения мультиплексора 32 (1.N)-го модуля начинается первая фаза синхронизации - формирование признака dq окончания участков группы Bq. (В исходном состоянии, т.е. до начала выполнения k-й программы, все сигналы d1, d2,..., будут нулевыми, поскольку в каждой группе B1, В2,..., имеется хотя бы один не завершенный участок. Уровень сигналов dz, z=nk+1, nk+2,..., n, при выполнении k-й программы несуществен.) С элемента запрета 23.c(uq) (1.N)-го модуля (фиг.3) через элемент ИЛИ 20.c(uq) единичный сигнал поступает на первый вход элемента И 21.c(uq). Значение на втором входе элемента И 21..c(uq) зависит от сигнала с q-го выхода регистра 5 и сигнала с q-го выхода дешифратора 8.
Если , т.е. (1.N)-й модуль не реализует участков из группы синхронизируемых участков Bq (и соответственно не должен оказывать влияние на процесс синхронизации), то на выходе элемента ИЛИ 24.c(uq) образуется единичный сигнал. Этот сигнал поступает на второй вход элемента И 21.c(uq) и, так как на другом входе данного элемента также находятся единичный сигнал, формирует единичный сигнал на его выходе (т.е. фактически ретранслирует сигналы с входов 56.с и 57.с на выход элемента И 21.c(uq)).
Если =0, т.е. за (1.n)-м модулем закреплен некоторый участок группы Bq, то сигнал на выходе элемента ИЛИ 24.c(uq) определяется сигналом , который поступает с q-го выхода дешифратора 8 на первый вход элемента ИЛИ 24.c(uq) (формирование сигнала описано выше). Если участок завершен, то и на выходе элемента ИЛИ 24.c(uq) появляется единичный сигнал. Соответственно единичный сигнал будет и на выходе элемента И 21.c(uq) (сигналы ретранслируются на выход элемента И 21.c(uq)). Однако в случае если участок не завершен, то и на выходе элемента ИЛИ 24.c(uq) поддерживается нулевой сигнал. Этот сигнал блокирует элемент И 21.c(uq) и формирует на его выходе нулевой сигнал (передача сигналов на выход элемента И 21.c(uq) заблокирована). Нулевой сигнал на выходе элемента И 21.c(uq) сохраняется до тех пор, пока не будет завершен участок .
Единичный сигнал с выхода элемента 21.c(uq) пройдет через мультиплексор 32 и появится на выходе 69.с модуля 1.N (фиг.1). Далее сигнал начинает распространение через остальные модули МКС. Сигнал с (1.N)-го модуля поступает на входы 56.с и 57.с модулей 2.N и 1.N-1 соответственно (фиг.1, 6). С этих входов сигнал проходит через элемент И 73.с (для крайних правых модулей на входах 57 находится единица, для крайних верхних модулей единичный сигнал постоянно присутствует на входах 56) и поступает на первый вход элемента И 22.c(uq) (фиг.3). Т.к. на втором входе элемента 22.c(uq) также установлена единица, то единичный сигнал через элемент запрета 23.c(uq) и элемент ИЛИ 20.c(uq) поступает на первый вход элемента И 21.c(uq). Значение на втором входе элемента И 21.c(uq) определяются так же, как и в случае с модулем 1.N (см. выше). С выхода 69.с модуля 2.N (фиг.1, 6) сигнал поступит на входы модулей 3.N и 2.N-1, а с выхода 69.с модуля 1.N-1 сигнал поступит на входы модулей 2.N-1 и 1.N-2. Далее таким же образом сигнал распространится по МКС вниз и влево, вплоть до модуля с номером М.1.
С входов 56.с и 57.с (M.1)-го модуля через элемент И 73.с единичный сигнал поступает на вход элемента И 22.c(uq) (фиг.3), а затем с его выхода через элемент НЕ 29.c(uq) появляется на информационном входе триггера 30.c(uq). В это время ГСУС 37 (1.N)-го модуля выдает импульс на первом выходе, который, как и номер uq группы каналов синхронизации, проходит через всю сеть и достигает входов 62, 63 (1.M)-го модуля. С одного из этих входов импульс проходит через мультиплексоры 36 и 34 (фиг.1) и задним фронтом записывает в триггер 30.c(uq) нулевой сигнал, находящийся на его входе. Этим завершается первый этап процесса синхронизации - формирование признака окончания участков группы Bq.
Сигналу dq дается ограниченное время для прохождения через МКС от (1.N)-го модуля до модуля M.1, и вне зависимости от значения сигнала dq на первом выходе ГСУС 37 (1.N)-го модуля через каждый интервал времени Тс возникает новый импульс. Если во время достижения импульсом входа синхронизации триггера 30.c(uq) модуля M.1 сигнал равен нулю (какой-то модуль МКС не завершил еще участок программы, сходящийся в q-й вершине синхронизации), то триггер 30.c(uq) модуля M.1 останется в единичном состоянии, вторая фаза синхронизации не начнется, и через время Тс произойдет переключение на следующую группу каналов синхронизации.
Вторая фаза синхронизации - запуск модулей МКС, ожидающих завершения участков программы, сходящихся в q-й вершине, начинается с записи в триггер 30.c(uq) модуля M.1 (фиг.3) нулевого значения и с появления на инверсном выходе триггера 30.c(uq) единицы.
Единичный сигнал с инверсного выхода триггера 30.c(uq) модуля M.1 через коммутатор 27.c(uq) и мультиплексор 32 (фиг.1) поступает на выход 70.с модуля. Далее единичный сигнал dq поступает на входы 58.с и 59.с модулей М-1.1 и М.2 соответственно (на входах 58 крайних левых модулей и на входах 59 крайних нижних модулей постоянно установлена единица). С входов 58.с и 59.с единичный сигнал проходит через элемент И 74.с и появляется на втором входе элемента ИЛИ 26.c(uq) (фиг.3). С выхода элемента 26.c(uq) единичный сигнал dq проходит через коммутатор 27.c(uq) и мультиплексор 32 (фиг.1) и поступает на выходы 70.с модулей М-1.1 и М.2 (фиг.6). С выхода модуля М-1.1 сигнал dq поступает на входы модулей М-2.1 и М-1.2, а с выхода (М.2)-го модуля - на входы модулей М-1.2 и М.3. И так далее единичный сигнал dq проходит через все модули МКС, пока не достигнет модуля с номером 1.N.
В процессе распространения единичного сигнала dq от (М.1)-го модуля через МКС происходит запуск модулей, ожидающих завершение группы участков Bq. Эти модули реализуют участки k-й программы, непосредственно следующие за участками группы Bq. Например, если , (фиг.8а), то такими участками будут (1), (3) и (2); соответственно будет осуществляться запуск модулей m2.3, m1.1 и m3.1.
Запуск модулей МКС рассмотрим на примере функционирования некоторого модуля с номером (i.j).
Если активизация (i.j)-го модуля после окончания группы участков Bq не требуется, то на выходе 3.6 регистра 3 (фиг.1) данного модуля присутствует код, отличный от кода НВС aq (этот код может быть нулевым, если (i.j)-й модуль выполняет некоторый участок k-й программы, и ненулевым, если (i.j)-й модуль завершил выполнение некоторого участка, сходящегося в μ-й вершине синхронизации, μ≠q. Соответственно на q-м выходе дешифратора 9 находится нулевой сигнал. Этот сигнал блокирует элемент И 31.c(uq) (фиг.1, 3) и нулевое значение на его выходе никак не влияет на уровень сигнала на выходе элемента ИЛИ 14. Запуск (i.j)-го модуля не производится.
Если (i.j)-й модуль должен быть активизирован после окончания группы участков Bq (т.е. по достижении вершины синхронизации aq), то на выходе 3.6 регистра 3 этого модуля находится код НВС aq (установленный при работе модуля в режиме В). Соответственно на q-м выходе дешифратора 9 присутствует сигнал логической единицы, который открывает элемент И 31.c(uq). Как только на выходе элемента И 31.c(uq) возникает положительный перепад уровня сигнала, на выходе элемента ИЛИ 14 также формируется положительный перепад уровня сигнала. Данный перепад воздействует на одновибратор 16 и возбуждает на его выходе импульс пуска модуля. Одновременно этот же перепад распространяется на вход синхронизации буферного регистра 7 и фиксирует в данном регистре адрес запуска (i.j)-го модуля (е+1)*, сформированный при завершении (i.j)-м модулем е-го участка k-й программы (см. режим В). Адрес с выхода регистра 7 подтверждает информацию на выходе блока элементов ИЛИ 11.
В тот же момент импульс с выхода одновибратора 16 поступает на второй вход блока 10 синхронизации и, проходя далее через элемент ИЛИ 46 (фиг.5) на вход установки триггера 47, переключает данный триггер в единичное состояние. Единичный сигнал, образующийся на прямом выходе триггера 47, включает генератор 48. Таким образом, на выходах блока 10 синхронизации возобновляется формирование импульсов синхронизации t1 и t2.
Одновременно импульс с выхода одновибратора 16 (фиг.1) подается на вход сброса регистра 3 и устанавливает его в нулевое состояние. На всех выходах регистра 3 образуются нулевые сигналы. В результате на всех выходах дешифраторов 8 и 9 формируется нулевой уровень сигнала. Нулевые сигналы с выходов дешифратора 9 блокируют элементы И 31.c(uq) (фиг.1, 3), что приводит к нулевому уровню на выходе элемента ИЛИ 14. Адресный код на первом входе блока элементов ИЛИ 11 также становится нулевым. Однако на выходе блока элементов ИЛИ 11 по-прежнему сохраняется адрес (е+1)*, поступающий с выхода регистра 7. Соответственно указанный адрес сохраняется и на информационном входе регистра 2.
Далее первый импульс t1 с первого выхода блока 10 синхронизации через элемент ИЛИ 12 поступает на вход синхронизации регистра 2 и задним фронтом записывает в него адрес (е+1)*. Адрес с выхода регистра 2 подается на адресный вход блока 1 и обеспечивает считывание первой команды (е+1)-го участка. Первый импульс t2 со второго выхода блока 10 синхронизации сбрасывает буферный регистр 7 и, поступая одновременно через элемент ИЛИ 13 на вход синхронизации регистра 3, фиксирует в этом регистре считанную из блока 1 команду. Таким образом, (i.j)-й модуль приступает к выполнению (е+1)-го участка k-й программы. Записанная в регистр 3 команда может иметь либо формат Ф2, либо формат Ф3, либо формат Ф4 (фиг.7). Соответственно (i.j)-й модуль может перейти в один из трех возможных режимов - А, В или С.
Режим С. В этот режим модуль переходит после записи в регистр 3 команды формата Ф4 (фиг.7). Работа модуля в режиме С сводится к индикации завершения k-й программы и переходу в пассивное состояние. На выходе 3.8 регистра 3 (фиг.1) образуется единичный сигнал - метка конца программы (Мкп), на выходе 3.7, как и в режиме В, появляется единичная метка конца участка Мку. На всех остальных выходах регистра 3 формируется нулевой уровень сигнала.
Нулевые сигналы с выходов 3.5 и 3.6 регистра 3 формируют нулевой уровень сигнала на выходах дешифраторов 8 и 9. Единичная метка Мкп с выхода 3.8 регистра 3 подается на управляющие входы коммутатора 6 и настраивает его на прием очередного КОП с входа 53 модуля.
Одновременно переход сигнала на выходе 3.7 регистра 3 из нуля в единицу возбуждает импульс на выходе одновибратора 15. Этот импульс поступает на третий вход блока 10 синхронизации, переводит триггер 47 (фиг.5) в нулевое состояние и тем самым запрещает формирование импульсов синхронизации t1 и t2 на выходах блока 10 синхронизации (фиг.1). Считывание команд из блока 1 прекращается.
Аналогичным образом завершается функционирование и других модулей МКС. Выполнение k-й программы в целом заканчивается после перехода в пассивное состояние последнего из модулей. После этого сеть может переходить к выполнению очередной программы.
Оценим сложность межмодульного интерфейса модуля предлагаемой МКС и сравним ее с прототипом при определенных значениях числа n вершин синхронизации и числа р групп каналов синхронизации. Так при n=32 и р=4 количество входов/выходов интерфейса прототипа равно 224, а при n=128 и р=8-896. Сложность межмодульного интерфейса предлагаемого модуля МКС при тех же значениях n и p равна 57 и 108 соответственно. Аппаратная сложность и быстродействие у обоих модулей МКС при этом остаются соизмеримыми.
Таким образом, исходя из всего вышесказанного, предлагаемое изобретение обеспечивает решение заявленной технической задачи, а именно уменьшение сложности межмодульного интерфейса. В предлагаемой сети благодаря мультиплексированию межмодульных связей, предназначенных для распространения сигналов завершения параллельных участков, между группами каналов синхронизации уменьшается общее количество физических связей.
название | год | авторы | номер документа |
---|---|---|---|
ЛОГИЧЕСКИЙ МУЛЬТИКОНТРОЛЛЕР С РАСПРЕДЕЛЕННЫМ ПАРАЛЛЕЛЬНО-КОНВЕЙЕРНЫМ БАРЬЕРНЫМ СИНХРОНИЗАТОРОМ | 2010 |
|
RU2450328C1 |
МИКРОКОНТРОЛЛЕРНАЯ СЕТЬ | 2005 |
|
RU2280887C1 |
МИКРОКОНТРОЛЛЕРНАЯ СЕТЬ | 1999 |
|
RU2168198C1 |
ДИСКРЕТНАЯ МИКРОКОНТРОЛЛЕРНАЯ СЕТЬ | 1997 |
|
RU2110827C1 |
Параллельный логический мультиконтроллер | 2016 |
|
RU2634199C1 |
МУЛЬТИМИКРОКОНТРОЛЛЕРНАЯ СИСТЕМА | 1997 |
|
RU2120135C1 |
МОДУЛЬ МУЛЬТИМИКРОКОНТРОЛЛЕРНОЙ СЕТИ | 1999 |
|
RU2151421C1 |
ОТКАЗОУСТОЙЧИВЫЙ МУЛЬТИМИКРОКОНТРОЛЛЕР | 1999 |
|
RU2156492C1 |
Устройство для ускоренного вычисления матрицы неполного параллелизма | 2016 |
|
RU2634200C1 |
МОДУЛЬ МИКРОКОНТРОЛЛЕРНОЙ СЕТИ | 1997 |
|
RU2112272C1 |
Изобретение относится к автоматике и вычислительной технике и может найти применение при построении распределенных систем программного управления технологическими процессами, роботами и робототехническими комплексами, а также подсистем логического управления многоуровневых иерархических АСУ и мультипроцессорных систем широкого класса. Техническим результатом является расширение области применения микроконтроллерной сети за счет уменьшения сложности межмодульного интерфейса. Устройство содержит M*N однотипных модулей, объединенных в матричную структуру, где N - число модулей в строке матричной структуры сети, М - число строк, при этом каждый модуль микроконтроллерной сети включает блок памяти программ, регистр адреса, регистр команд, мультиплексор логических условий, коммутатор адреса, блок синхронизации, элементы ИЛИ, регистр вектора соответствия, буферный регистр, дешифраторы номера вершины синхронизации, блок элементов ИЛИ, одновибраторы, элемент задержки, группу блоков модулей управления синхронизацией, мультиплексор каналов синхронизации, регистр конфигурации, мультиплексоры, дешифратор каналов синхронизации, генератор сигналов управления синхронизацией, две группы элементов И. 2 н. и 2 з.п. ф-лы, 8 ил.
я1. Микроконтроллерная сеть, содержащая M×N однотипных модулей, объединенных в матричную структуру (где N - число модулей в строке матричной структуры сети, М - число строк), каждый модуль которой включает блок памяти программ, регистр адреса, регистр команд, мультиплексор логических условий, коммутатор адреса, блок синхронизации, с первого по третий элементы ИЛИ, регистр вектора соответствия, буферный регистр, первый и второй дешифраторы номера вершины синхронизации, блок элементов ИЛИ, первый и второй одновибраторы, элемент задержки, причем вход кода операции модуля соединен с первым информационным входом коммутатора адреса, выход которого подключен к информационному входу регистра адреса, выход которого подключен к адресному входу блока памяти программ, выход которого соединен с информационным входом регистра команд, выход метки конца программы которого соединен с управляющими входами коммутатора адреса, выходы кода логического условия и модифицируемого разряда адреса регистра команд подключены к адресному и первому информационному входам мультиплексора логических условий соответственно, второй информационный вход которого соединен со входом логических условий модуля, первый вход блока синхронизации соединен со входом пуска модуля, выход немодифицируемой части адреса регистра команд в объединении с выходом мультиплексора логических условий подключены к первому входу блока элементов ИЛИ и к информационному входу буферного регистра, выход которого соединен со вторым входом блока элементов ИЛИ, выход которого соединен со вторым информационным входом коммутатора адреса, выход микроопераций регистра команд подключен к выходу микроопераций модуля, вход вектора соответствия модуля соединен с информационным входом регистра вектора соответствия, первый выход номера вершины синхронизации регистра команд соединен со входом первого дешифратора номера вершины синхронизации, второй выход номера вершины синхронизации регистра команд соединен со входом второго дешифратора номера вершины синхронизации, выход первого элемента ИЛИ соединен со входом синхронизации буферного регистра и со входом первого одновибратора, выход которого подключен ко входу сброса регистра команд и ко второму входу блока синхронизации, первый выход которого соединен с первым входом второго элемента ИЛИ, выход которого подключен ко входу синхронизации регистра адреса, выход метки конца участка регистра команд соединен со входом второго одновибратора, выход которого соединен с третьим входом блока синхронизации, второй выход которого подключен ко входу сброса буферного регистра и к первому входу третьего элемента ИЛИ, вход настройки модуля соединен со вторым входом второго элемента ИЛИ, со входом синхронизации регистра вектора соответствия, а также со входом элемента задержки, выход которого подключен ко второму входу третьего элемента ИЛИ, выход которого подключен ко входу синхронизации регистра команд, отличающаяся тем, что в каждый модуль дополнительно введены группа из р блоков модулей управления синхронизацией (где n - максимальное число вершин синхронизации в реализуемых программах, m - количество модулей управления синхронизацией в одном блоке, - операция округления вверх), мультиплексор каналов синхронизации, регистр конфигурации, предназначенный для хранения кода настройки конфигурации, соответствующего положению текущего модуля в матричной структуре, первый и второй мультиплексоры, дешифратор каналов синхронизации, генератор сигналов управления синхронизацией, первая и вторая группы элементов И, причем первая группа входов модуля с первого по m-й, предназначенная для приема сигналов опроса состояния групп параллельных участков от соседних модулей сверху от текущего, соединена с первыми входами первой группы элементов И с первого по m-й соответственно, вторая группа входов модуля с первого по m-й, предназначенная для приема сигналов опроса состояния групп параллельных участков от соседних модулей справа от текущего, соединена со вторыми входами первой группы элементов И с первого по m-й соответственно, выходы которых соединены с первыми входами блоков модулей управления синхронизацией с первого по р-й, вторые входы блоков модулей управления синхронизацией с первого по р-й соединены с выходами дешифратора каналов синхронизации с первого по р-й соответственно, третьи входы блоков модулей управления синхронизацией с первого по р-й соединены с первым выходом регистра конфигурации и с адресным входом первого мультиплексора, четвертые входы блоков модулей управления синхронизацией с первого по р-й соединены с групповыми выходами первого дешифратора номера вершины синхронизации с первого по р-й соответственно, пятые входы блоков модулей управления синхронизацией с первого по р-й соединены с групповыми выходами регистра вектора соответствия с первого по р-й соответственно, третья группа входов модуля с первого по m-й, предназначенная для приема сигналов запуска текущего модуля от модуля, расположенного слева от текущего, соединена с первыми входами второй группы элементов И с первого по m-й соответственно, четвертая группа входов модуля с первого по m-й, предназначенная для приема сигналов запуска текущего модуля от модуля, расположенного снизу от текущего, соединена со вторыми входами второй группы элементов И с первого по m-й соответственно, выходы которых соединены с шестыми входами блоков модулей управления синхронизацией с первого по р-й, первый и второй входы модуля, предназначенные соответственно для приема кода настройки, определяющего расположение данного модуля в сети, и сигнала синхронизации, по которому указанный код настройки записывается в регистр конфигурации, соединены с информационным входом и входом синхронизации регистра конфигурации соответственно, второй выход которого соединен с седьмыми входами блоков модулей управления синхронизацией с первого по р-й, третий выход регистра конфигурации соединен с адресным входом второго мультиплексора, выход которого соединен с первым входом первого мультиплексора, старшие разряды выхода которого соединены со входом дешифратора каналов синхронизации и с адресным входом мультиплексора каналов синхронизации, младший разряд выхода первого мультиплексора соединен с восьмыми входами блоков модулей управления синхронизации с первого по р-й, а также в объединении со старшими разрядами выхода первого мультиплексора соединен с выходом модуля, младшие разряды выхода мультиплексора каналов синхронизации с первого по m-й являются первой группой выходов модуля с первого по m-й соответственно, а старшие разряды с первого по m-й являются второй группой выходов модуля с первого по m-й соответственно, групповые выходы второго дешифратора номера вершины синхронизации с первого по р-й соединены с девятыми входами блоков модулей управления синхронизацией с первого по р-й соответственно, первый и второй выходы которых соединены со входами мультиплексора каналов синхронизации с первого по р-й соответственно, третьи выходы блоков модулей управления синхронизацией с первого по р-й соединены с групповыми входами первого элемента ИЛИ с первого по р-й соответственно, третий и четвертый входы модуля, предназначенные для приема от модулей, расположенных соответственно сверху и справа, номера очередной группы каналов синхронизации, соединены соответственно с первым и вторым входами второго мультиплексора, пятый вход модуля, предназначенный для запуска генератора управления синхронизацией, шестой вход модуля, предназначенный для приема информации при конфигурации генератора управления синхронизацией, а также седьмой и восьмой входы модуля, предназначенные для управления конфигурацией генератора управления синхронизацией, соединены с входами генератора сигналов управления синхронизацией с первого по четвертый соответственно, два выхода которого соединены со вторым входом первого мультиплексора.
МИКРОКОНТРОЛЛЕРНАЯ СЕТЬ | 2005 |
|
RU2280887C1 |
МИКРОКОНТРОЛЛЕРНАЯ СЕТЬ | 1999 |
|
RU2168198C1 |
ДИСКРЕТНАЯ МИКРОКОНТРОЛЛЕРНАЯ СЕТЬ | 1997 |
|
RU2110827C1 |
Многоканальное устройство для программного управления технологическими процессами | 1990 |
|
SU1784940A1 |
JP 2006031731 A, 02.02.2006 | |||
US 4648064 A, 03.03.1987. |
Авторы
Даты
2008-10-20—Публикация
2007-04-17—Подача