Логический мультиконтроллер с распределенным параллельно-конвейерным барьерным синхронизатором

Иллюстрации

Показать все

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

Реферат

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

Известна микроконтроллерная сеть, содержащая M*N однотипных модулей, объединенных в матричную структуру, где N - число модулей в строке матричной структуры сети, М - число строк, каждый модуль которой включает блок памяти программ, регистр адреса, регистр команд, мультиплексор логических условий, коммутатор адреса, блок синхронизации, с первого по третий элементы ИЛИ, регистр вектора соответствия, буферный регистр, первый и второй дешифраторы номера вершины синхронизации, блок элементов ИЛИ, первый и второй одновибраторы, элемент задержки, группу блоков управления синхронизацией, каждый из которых содержит триггер наличия соседа слева, триггер наличия соседа снизу, группу элементов НЕ, группу элементов И, с первого по пятый элементы ИЛИ, первый и второй элементы И, коммутатор, триггер и триггер разрешения запуска (патент РФ №2280887, МПК8 G05B 19/18, G06F 9/28; заявл. 15.02.2005, опубл. 27.07.2006. Бюл. №21).

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

Наиболее близкой к предлагаемому логическому мультиконтроллеру с распределенным параллельно-конвейерным барьерным синхронизатором по технической сущности является микроконтроллерная сеть, содержащая М*N однотипных модулей, объединенных в матричную структуру, где N - число модулей в строке матричной структуры сети, М - число строк, каждый модуль которой включает блок памяти программ, регистр адреса, регистр команд, мультиплексор логических условий, коммутатор адреса, блок синхронизации, с первого по третий элементы ИЛИ, регистр вектора соответствия, буферный регистр, первый и второй дешифраторы номера вершины синхронизации, блок элементов ИЛИ, первый и второй одновибраторы, элемент задержки, группу блоков модулей управления синхронизацией, мультиплексор каналов синхронизации, регистр конфигурации, первый и второй мультиплексоры, дешифратор каналов синхронизации, генератор сигналов управления синхронизацией, первую и вторую группы элементов И (патент РФ №2336553 МПК9 G06F 9/28, G06F 15/173, G06F 1/10; заявл. 17.04.2007, опубл. 20.10.2008. Бюл. №29).

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

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

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

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

Модуль логического мультиконтроллера с распределенным параллельно-конвейерным барьерным синхронизатором (фиг.1) включает блок 1 памяти программ, регистр 2 адреса, регистр 3 команд, мультиплексор 4 логических условий, регистр 5 вектора соответствия, коммутатор 6 адреса, буферный регистр 7, первый 8 и второй 9 дешифраторы номера вершины синхронизации, блок 10 синхронизации, блок элементов ИЛИ 11, первый 14, второй 12, третий 13, четвертый 23 и пятый 30 элементы ИЛИ, первый 16 и второй 15 одновибраторы, первый 17, второй 25 и третий 31 элементы задержки, группу 18.1-18.p блоков управления синхронизацией, первую 19.1-19.m и вторую 20.1-20.m группы элементов И, триггер 21 конфигурации, элемент И 22, триггер 24, первый 26 и второй 27 счетчики номера активной группы, первый 28 и второй 29 дешифраторы номера активной группы, первую 32.1-32.m и вторую 33.1-33.m группы элементов ИЛИ, причем вход 49 кода операции модуля соединен со вторым информационным входом коммутатора 6 адреса, выход которого подключен к информационному входу регистра 2 адреса, выход которого подключен к адресному входу блока 1 памяти программ, выход которого соединен с информационным входом регистра 3 команд, выход 3.8 метки конца программы которого соединен с управляющими входами коммутатора 6 адреса, выходы 3.1 кода логического условия и 3.2 модифицируемого разряда адреса регистра 3 команд подключены к адресному и второму информационному входам мультиплексора 4 логических условий соответственно, первый информационный вход которого соединен со входом 47 логических условий модуля, первый вход блока 10 синхронизации соединен со входом 51 пуска модуля, выход 3.3 немодифицируемой части адреса регистра 3 команд в объединении с выходом мультиплексора 4 логических условий подключены к первому входу блока 11 элементов ИЛИ и к информационному входу буферного регистра 7, выход которого соединен со вторым входом блока 11 элементов ИЛИ, выход которого соединен с первым информационным входом коммутатора 6 адреса, выход 3.4 микроопераций регистра 3 команд подключен к выходу 69 микроопераций модуля, вход 48 вектора соответствия модуля соединен с информационным входом регистра 5 вектора соответствия, групповые выходы с первого по р-й которого соединены со вторыми входами блоков 18.1-18.p управления синхронизацией соответственно, первый выход 3.5 номера вершины синхронизации регистра 3 команд соединен со входом дешифратора 8 номера вершины синхронизации, групповые выходы с первого по р-й которого соединены с третьими входами блоков 18.1-18.p управления синхронизацией соответственно, второй выход 3.6 номера вершины синхронизации регистра 3 команд соединен со входом дешифратора 9 номера вершины синхронизации, групповые выходы с первого по р-й которого соединены с девятыми входами блоков 18.1-18.p управления синхронизацией соответственно, выход элемента ИЛИ 14 соединен со входом синхронизации буферного регистра 7 и со входом одновибратора 16, выход которого подключен ко входу сброса регистра 3 команд и ко второму входу блока 10 синхронизации, первый выход которого соединен с первым входом элемента ИЛИ 12, выход которого подключен ко входу синхронизации регистра 2 адреса, выход 3.7 метки конца участка регистра 3 команд соединен со входом одновибратора 15, выход которого соединен с третьим входом блока 10 синхронизации, второй выход которого подключен ко входу сброса буферного регистра 7 и ко второму входу элемента ИЛИ 13, вход 50 настройки модуля соединен со вторым входом элемента ИЛИ 12, со входом синхронизации регистра 5 вектора соответствия, а также со входом элемента 17 задержки, выход которого подключен к первому входу элемента ИЛИ 13, выход которого подключен ко входу синхронизации регистра 3 команд, входы 52.1-52.m модуля соединены с первыми входами элементов И 19.1-19.m соответственно, входы 53.1-53.m модуля соединены со вторыми входами элементов И 19.1-19.m соответственно, входы 54.1-54.m модуля соединены с первыми входами элементов И 20.1-20.m соответственно, входы 55.1-55.m модуля соединены со вторыми входами элементов И 20.1-20.m соответственно, выходы элементов И 19.1-19.m соединены с первыми входами блоков 18.1-18.p управления синхронизацией, выходы элементов И 20.1-20.m соединены с восьмыми входами блоков 18.1-18.p управления синхронизацией, первый 58 и второй 59 входы модуля соединены с информационным входом и входом синхронизации триггера 21 конфигурации соответственно, прямой выход которого соединен с шестыми входами блоков 18.1-18.p управления синхронизацией и с первым входом элемента И 22, выход которого соединен с первым входом элемента ИЛИ 23, третий вход 60 модуля соединен со вторым входом элемента И 22, со входами инкремента счетчиков 26 и 27 номера активной группы, с пятыми входами блоков 18.1-18.p управления синхронизацией, а также является первым выходом 67 модуля, четвертый вход 61 модуля соединен со вторым входом элемента ИЛИ 23, выход которого соединен с входом установки триггера 24, прямой выход которого соединен с первым входом элемента ИЛИ 30 и через элемент 25 задержки подключен ко входу сброса триггера 24, пятый вход 62 модуля соединен со вторым входом элемента ИЛИ 30, выход которого соединен со входом элемента 31 задержки, выход которого является вторым выходом 68 модуля, шестой вход 63 модуля соединен с информационным входом счетчика 26 номера активной группы, выход которого соединен со входом дешифратора 28 номера активной группы, выходы с первого по р-й которого соединены с четвертыми входами блоков 18.1-18.р управления синхронизацией соответственно, седьмой вход 64 модуля соединен с входом синхронизации счетчика 26 номера активной группы, восьмой вход 65 модуля соединен с информационным входом счетчика 27 номера активной группы, выход которого соединен со входом дешифратора 29 номера активной группы, выходы с первого по р-й которого соединены с седьмыми входами блоков 18.1-18.p управления синхронизацией соответственно, девятый вход 66 модуля соединен с входом синхронизации счетчика 29 номера активной группы, первые групповые выходы блоков 18.1-18.p управления синхронизацией соединены соответственно с первого по р-й входами элементов ИЛИ 32.1-32.m соответственно, вторые групповые выходы блоков 18.1-18.p управления синхронизацией соединены соответственно с первого по р-й входами элементов ИЛИ 33.1-33.m соответственно, третьи групповые выходы блоков 18.1-18.р управления синхронизацией соединены с групповыми входами элемента ИЛИ 14 с первого по р-й соответственно, выходы элементов ИЛИ 32.1-32.m являются выходами 56.1-56.m модуля соответственно, а выходы элементов ИЛИ 33.1-33.m являются выходами 57.1-57.m модуля соответственно.

Блок 18.i управления синхронизацией (фиг.2), , содержит барьерные блоки 34.1-34.m, причем с первого по m-й разряды первого, второго, третьего, восьмого и девятого входов блока управления синхронизацией соединены с первым, вторым, третьим, восьмым и девятым входами барьерных блоков 34.1-34.m соответственно, четвертый, пятый, шестой и седьмой входы блока управления синхронизацией соединены соответственно с четвертым, пятым, шестым и седьмым входами барьерных блоков 34.1-34.m, первый, второй и третий выходы барьерных блоков 34.1-34.m соединены с первого по m-й разрядами первого, второго и третьего групповых выходов блока управления синхронизацией соответственно.

Барьерный блок 34.j, , каждого блока управления синхронизацией (фиг.2) содержит элемент ИЛИ 35, первый 36, второй 39 и третий 40 элементы И, триггер 37, элемент И-НЕ 38, причем первый вход барьерного блока подключен к первому входу элемента И 36, второй вход которого соединен с выходом элемента ИЛИ 35, первый и второй входы которого являются вторым и третьим входами барьерного блока соответственно, четвертый вход которого подключен к третьему входу элемента И 36, выход которого соединен с информационным входом триггера 37 признака завершения барьера, а также является первым выходом барьерного блока, пятый вход которого подключен к входу синхронизации триггера 37 признака завершения барьера, инверсный выход которого соединен с первым входом элемента И-НЕ 38, второй вход которого является шестым входом барьерного блока, а выход подключен к первому входу элемента И 39, выход которого является вторым выходом барьерного блока, седьмой и восьмой входы которого соединены со вторым и третьим входами элемента И 39 соответственно, выход которого подключен к первому входу элемента И 40, второй вход и выход которого являются девятым входом и третьим выходом барьерного блока соответственно.

Схема блока 10 синхронизации (фиг.4) не отличается от прототипа.

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

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

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

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

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

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

Как и в прототипе, в предлагаемом ЛМК адреса приема управления формируются непосредственно модулями, реализующими запускаемые участки (модулями - приемниками управления), в результате самонастройки. Адрес начала следующего ((е+1)-го) участка, выполняемого (i.j)-м модулем, указывается в заключительной команде предшествующего (е-го) участка программы. Для задания адресов начальных участков модулей используются команды настройки формата Ф1 (фиг.5), где «НВС» означает «номер вершины синхронизации», т.е. номер барьера. За каждым модулем ЛМК закрепляется 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 формируется (1.N)-м (правым верхним) модулем ЛМК (см. фиг.3). В исходном состоянии dq=0 (параллельные участки не завершены) и, следовательно, .

Процесс барьерной синхронизации включает две фазы: формирование признака завершения синхронизируемых участков и передачу этого признака всем модулям ЛМК.

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

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

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

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

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

Принципы организации межмодульной передачи управления и синхронизации параллельных участков в предлагаемом ЛМК поясняются примером реализации параллельного алгоритма логического управления, представленного на фиг.6а. Алгоритм включает 20 параллельных и последовательных участков , принадлежность которых определенному модулю задается верхним индексом i.j. В рассматриваемый алгоритм входят барьеры а 1, а 2,…, а 10; барьеры а 8, а 9, a 10 (показанные пунктиром) являются фиктивными, поскольку им соответствуют переходы между отдельными участками. Пары барьеров а 2 и а 8, а 3 и а 4, а 5 и а 9, a 10 и а 6 являются параллельными и синхронизируются независимо. ЛМК, реализующий данный алгоритм, имеет вид матрицы с конфигурацией 3×3 модуля.

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

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

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

Назначение элементов и блоков модуля логического мультиконтроллера (фиг.1) с 1 по 17 не отличается от прототипа.

Назначение остальных элементов и блоков сводится к следующему.

Блок 18.i управления синхронизацией, , служит для группировки однотипных барьерных блоков 34.j (фиг.2), , и организационно является ячейкой i-й группы слоев синхронизации (группы барьеров).

Группа элементов И 19.1-19.m (фиг.1) служит для организации распространения сигналов опроса состояния множеств параллельных участков от соседних модулей, расположенных сверху и справа от текущего.

Группа элементов И 20.1-20.m предназначена для организации распространения сигналов запуска модулей, ожидающих завершения соответствующих множеств параллельных участков, от соседних модулей слева и снизу от текущего.

Триггер 21 конфигурации служит для хранения признака (флага) позиции модуля (его значение равно «1» только для нижнего левого, т.е. (M.1)-го модуля).

Элемент И 22, элементы ИЛИ 23, 30, триггер 24, элементы задержки 25 и 31 предназначены для формирования сигнала управления переключением групп слоев синхронизации (блоков управления синхронизацией).

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

Дешифраторы 28, 29 номера активной группы предназначены для активизации групп слоев синхронизации (блоков управления синхронизацией) в зависимости от значения счетчиков 26, 27.

Группа элементов ИЛИ 32.1-32.m служит для формирования и выдачи сигнала синхронизации влево и вниз от текущего модуля.

Группа элементов ИЛИ 33.1-33.m предназначена для передачи сигнала завершения барьера вправо и вверх от текущего модуля.

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

Назначение элементов барьерного блока 34.i (фиг.2), , состоит в следующем.

Элемент ИЛИ 35.i совместно с элементом И 36.i управляют распространением сигнала опроса состояния барьера в зависимости от состояния текущего модуля ЛМК.

Триггер 37.i служит для фиксации и хранения текущего значения признака завершения соответствующего барьера.

Элемент И-НЕ 38.i разрешает/запрещает считывание значения из триггера 37.i в зависимости от расположения модуля ЛМК в структуре мультиконтроллера.

Элемент И 39.i управляет распространением сигнала запуска модулей ЛМК, ожидающих завершения соответствующего множества параллельных участков.

Элемент И 40.i предназначен для формирования сигнала запуска для текущего модуля ЛМК.

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

Первоначально элементы памяти (регистры, триггеры и счетчики) всех модулей ЛМК находятся в состоянии логического нуля. Исключение составляет только регистр 3, на выходе 3.8 которого находится единичный уровень сигнала, и триггер 44 блока 10 синхронизации (фиг.4). На входах 52 модулей (i.N),