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

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

Info

Publication number
RU2450328C1
RU2450328C1 RU2010151589/08A RU2010151589A RU2450328C1 RU 2450328 C1 RU2450328 C1 RU 2450328C1 RU 2010151589/08 A RU2010151589/08 A RU 2010151589/08A RU 2010151589 A RU2010151589 A RU 2010151589A RU 2450328 C1 RU2450328 C1 RU 2450328C1
Authority
RU
Russia
Prior art keywords
input
output
module
synchronization
inputs
Prior art date
Application number
RU2010151589/08A
Other languages
English (en)
Inventor
Абдулрахман Мохаммед Али Аль-Хади (RU)
Абдулрахман Мохаммед Али Аль-Хади
Сергей Викторович Волобуев (RU)
Сергей Викторович Волобуев
Игорь Валерьевич Зотов (RU)
Игорь Валерьевич Зотов
Сергей Анатольевич Муратов (RU)
Сергей Анатольевич Муратов
Original Assignee
Государственное образовательное учреждение высшего профессионального образования "Юго-Западный государственный университет" (ЮЗГУ)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Государственное образовательное учреждение высшего профессионального образования "Юго-Западный государственный университет" (ЮЗГУ) filed Critical Государственное образовательное учреждение высшего профессионального образования "Юго-Западный государственный университет" (ЮЗГУ)
Priority to RU2010151589/08A priority Critical patent/RU2450328C1/ru
Application granted granted Critical
Publication of RU2450328C1 publication Critical patent/RU2450328C1/ru

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

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

Description

Изобретение относится к автоматике и вычислительной технике и может найти применение при построении распределенных систем программного управления и многопроцессорных систем широкого класса.
Известна микроконтроллерная сеть, содержащая 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 - число модулей в строке матричной структуры, М - число строк, включающий блок памяти программ, регистр адреса, регистр команд, мультиплексор логических условий, коммутатор адреса, блок синхронизации, с первого по третий элементы ИЛИ, регистр вектора соответствия, буферный регистр, первый и второй дешифраторы номера вершины синхронизации, блок элементов ИЛИ, первый и второй одновибраторы, первый элемент задержки, первую и вторую группы элементов И, группу из р блоков управления синхронизацией (где
Figure 00000001
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),
Figure 00000002
, содержит барьерные блоки 34.1-34.m, причем с первого по m-й разряды первого, второго, третьего, восьмого и девятого входов блока управления синхронизацией соединены с первым, вторым, третьим, восьмым и девятым входами барьерных блоков 34.1-34.m соответственно, четвертый, пятый, шестой и седьмой входы блока управления синхронизацией соединены соответственно с четвертым, пятым, шестым и седьмым входами барьерных блоков 34.1-34.m, первый, второй и третий выходы барьерных блоков 34.1-34.m соединены с первого по m-й разрядами первого, второго и третьего групповых выходов блока управления синхронизацией соответственно.
Барьерный блок 34.j,
Figure 00000003
, каждого блока управления синхронизацией (фиг.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) служат для организации взаимодействия и координации различных модулей, включая запуск участков, закрепленных за другими модулями (межмодульную передачу управления), и барьерную синхронизацию.
Как и в прототипе, в рассматриваемом ЛМК межмодульная передача управления в явном виде (т.е. с обменом адресами перехода) отсутствует, фактически выполняется только процедура барьерной синхронизации. При этом запуск участков программ, реализуемых различными модулями, происходит при выполнении соответствующих условий синхронизации. Например, при запуске участков, непосредственно следующих за множеством других (параллельных) участков, является завершение всех участков данного множества (условие достижения барьера). При запуске участков, следующих за единственным участком, в качестве условия выступает завершение этого единственного участка.
Для задания момента активизации некоторого участка
Figure 00000004
(где e - порядковый номер данного участка для (i.j)-го модуля, k - номер программы) этому участку ставится в соответствие номер непосредственно предшествующей ему вершины синхронизации (далее в описании - барьера) a t; если активизируемому участку непосредственно предшествует единственный участок программы, то барьер a t считается фиктивным. Запуск участка
Figure 00000005
происходит после выполнения барьера a t, т.е. как только завершаются все непосредственно предшествующие ему участки программы.
Как и в прототипе, в предлагаемом ЛМК адреса приема управления формируются непосредственно модулями, реализующими запускаемые участки (модулями - приемниками управления), в результате самонастройки. Адрес
Figure 00000006
начала следующего ((е+1)-го) участка, выполняемого (i.j)-м модулем, указывается в заключительной команде предшествующего (е-го) участка программы. Для задания адресов начальных участков модулей
Figure 00000007
используются команды настройки формата Ф1 (фиг.5), где «НВС» означает «номер вершины синхронизации», т.е. номер барьера. За каждым модулем ЛМК закрепляется Q таких команд, Q - число программ, реализуемых мультиконтроллером (число программ в реализуемом комплексе). Каждая из Q команд настройки определяет адрес
Figure 00000008
первой команды, выполняемой (i.j)-м модулем при реализации k-й программы, т.е. адрес начального участка (i.j)-го модуля. Отметим, что если (i.j)-й модуль не участвует в процессе выполнения k-й программы, то команда Ф1 полностью состоит из нулей. Команды настройки Ф1 размещаются в блоке 1 памяти программ (фиг.1) по начальным адресам от 1 до Q включительно. Команда настройки, а следовательно, и реализуемая программа однозначно задается адресом при обращении к блоку 1.
Процесс синхронизации параллельных участков в предлагаемом ЛМК осуществляется на основе распространения и опроса сигналов завершения множества параллельных участков. Каждый такой сигнал распространяется в отдельном канале (слое) синхронизации, который соответствует одному барьеру. Слой синхронизации представляет собой совокупность элементов (барьерных блоков) различных модулей ЛМК и соответствующих связей, обеспечивающих протекание процесса синхронизации определенного множества параллельных участков.
Как и в прототипе, в рассматриваемом ЛМК слои синхронизации разбиты на группы. Однако, в отличие от прототипа, в котором в один момент времени может работать только одна группа слоев, внутри которой сигналы синхронизации различных барьеров распространяются независимо и параллельно, в предлагаемом техническом решении в один момент времени активны две группы слоев. Смена групп происходит циклически.
Для обеспечения синхронизации произвольных множеств параллельных участков за каждым модулем ЛМК закрепляется вектор, задающий соответствие между множеством барьеров программы и данным модулем. (i.j)-му модулю мультиконтроллера,
Figure 00000009
,
Figure 00000010
, в общем случае соответствует Q различных векторов, каждый из которых отвечает определенной программе. Вектор соответствия для (i.j)-го модуля и k-й программы имеет вид
Figure 00000011
,
где
Figure 00000012
, nk - число барьеров в k-й программе.
Значение компоненты вектора Si.j(k) определяется следующим образом:
Figure 00000013
, если за (i.j)-м модулем ЛМК закреплен некоторый участок программы, завершающийся q-м барьером;
Figure 00000014
, если (i.j)-й модуль ЛМК не реализует ни одного участка, завершающегося q-м барьером, или q-й барьер отсутствует в k-й программе (что возможно при nk<q).
Синхронизация множества участков
Figure 00000015
, завершающихся q-м барьером, осуществляется на основе распространения сигнала dq завершения множества участков в q-м слое синхронизации. Сигнал dq формируется (1.N)-м (правым верхним) модулем ЛМК (см. фиг.3). В исходном состоянии dq=0 (параллельные участки не завершены) и, следовательно,
Figure 00000016
.
Процесс барьерной синхронизации включает две фазы: формирование признака завершения синхронизируемых участков и передачу этого признака всем модулям ЛМК.
Первая из указанных фаз начинается с формирования номера активной группы слоев uq, в которой находится q-й слой синхронизации. Таким образом, происходит включение группы слоев uq и выполнение синхронизации соответствующих множеств параллельных участков. После этого единичный сигнал
Figure 00000017
распространяется от (1.N)-го модуля вниз и влево через все модули ЛМК ко всем крайним левым и крайним нижним модулям вплоть до (М.1)-го модуля ЛМК (см. фиг.3).
Распространение сигнала
Figure 00000018
через (i.j)-й модуль ЛМК происходит следующим образом. Если
Figure 00000019
, то появление единичных сигналов
Figure 00000018
на верхнем и правом входах (i.j)-го модуля обусловливает формирование единичного сигнала
Figure 00000018
на его выходе. Если
Figure 00000020
, то формирование единичного сигнала
Figure 00000018
на выходе (i.j)-го модуля происходит только при условии завершения участка
Figure 00000021
сходящегося к q-му барьеру и реализуемого (i.j)-м модулем ЛМК.
Состояние участка
Figure 00000022
определяется значением сигнала - признака
Figure 00000023
, если участок
Figure 00000024
завершен;
Figure 00000025
в противном случае. В случае если участок
Figure 00000026
не завершен, на выходе (i.j)-го модуля устанавливается нулевой сигнал. Данный сигнал формирует нулевые сигналы на выходах всех модулей ЛМК, расположенных не выше и не правее (i.j)-го модуля. На входе (М.1)-го (левого нижнего) модуля (см. фиг.3), соответственно, также будет нулевой сигнал. Как только происходит завершение участка
Figure 00000027
, единичный сигнал
Figure 00000018
передается на выход (i.j)-го модуля и поступает в (i+1.j)-й и (i.j-1)-й модули.
После завершения всех параллельных участков множества Bq единичный сигнал
Figure 00000018
пройдет на входы (М.1)-го модуля ЛМК и с помощью импульса управления зафиксируется в этом модуле. На выходе (М.1)-го модуля ЛМК, таким образом, будет сформирован сигнал dq=1, сообщающий об окончании синхронизируемых параллельных участков. На этом первая фаза синхронизации завершается.
Вторая фаза синхронизации начинается с переключения всех модулей ЛМК на группу слоев uq, в которой находится q-й слой синхронизации, и появления на выходе (М.1)-го модуля единичного сигнала dq. Этот сигнал распространяется (фиг.3) от (М.1)-го модуля вверх и вправо через ЛМК ко всем крайним правым и крайним верхним модулям до модуля с номером (1.N). В процессе распространения сигнала происходит запуск модулей ЛМК, ожидающих завершения параллельных участков множества Bq. Вторая фаза и процесс синхронизации параллельных участков в целом завершаются после появления нулевого сигнала на выходе (1.N)-го модуля и переключения на следующую группу слоев синхронизации.
Принципы организации межмодульной передачи управления и синхронизации параллельных участков в предлагаемом ЛМК поясняются примером реализации параллельного алгоритма логического управления, представленного на фиг.6а. Алгоритм включает 20 параллельных и последовательных участков
Figure 00000028
, принадлежность которых определенному модулю задается верхним индексом i.j. В рассматриваемый алгоритм входят барьеры а 1, а 2,…, а 10; барьеры а 8, а 9, a 10 (показанные пунктиром) являются фиктивными, поскольку им соответствуют переходы между отдельными участками. Пары барьеров а 2 и а 8, а 3 и а 4, а 5 и а 9, a 10 и а 6 являются параллельными и синхронизируются независимо. ЛМК, реализующий данный алгоритм, имеет вид матрицы с конфигурацией 3×3 модуля.
Таблица настройки модулей, определяющая адреса начальных участков
Figure 00000029
, а также номера барьеров a t, после достижения которых должен быть обеспечен запуск соответствующих модулей, представлены на фиг.6б. В соответствии с данной таблицей запуск модулей m1.1, m3.2 и m3.3 происходит после выполнения барьера а 1, т.е. после завершения участка
Figure 00000030
, запуск модуля m1.2 осуществляется после достижения барьера а 8, т.е. после завершения участка
Figure 00000031
, и т.д. Модуль m2,2 активизируется непосредственно в момент запуска ЛМК независимо от состояния других модулей, поскольку реализует начальный последовательный участок алгоритма
Figure 00000032
.
Таблица векторов соответствия для рассматриваемого алгоритма показана на фиг.6в. Согласно данной таблице модуль m1.1 реализует участки, завершающиеся в барьерах а 2, а 5 и a 6
Figure 00000033
, модуль m1,2 - участки, сходящиеся в барьерах а 4, а 5 и a 7
Figure 00000034
и т.д.
Более подробно процессы синхронизации и запуска параллельных участков описываются далее при рассмотрении функционирования ЛМК.
Назначение элементов и блоков модуля логического мультиконтроллера (фиг.1) с 1 по 17 не отличается от прототипа.
Назначение остальных элементов и блоков сводится к следующему.
Блок 18.i управления синхронизацией,
Figure 00000035
, служит для группировки однотипных барьерных блоков 34.j (фиг.2),
Figure 00000036
, и организационно является ячейкой 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,
Figure 00000037
, предназначен для управления прохождением сигналов завершения множества параллельных участков и активизации модулей ЛМК для одного из барьеров (организационно этот блок является ячейкой одного слоя управления синхронизацией).
Назначение элементов барьерного блока 34.i (фиг.2),
Figure 00000038
, состоит в следующем.
Элемент ИЛИ 35.i совместно с элементом И 36.i управляют распространением сигнала опроса состояния барьера в зависимости от состояния текущего модуля ЛМК.
Триггер 37.i служит для фиксации и хранения текущего значения признака завершения соответствующего барьера.
Элемент И-НЕ 38.i разрешает/запрещает считывание значения из триггера 37.i в зависимости от расположения модуля ЛМК в структуре мультиконтроллера.
Элемент И 39.i управляет распространением сигнала запуска модулей ЛМК, ожидающих завершения соответствующего множества параллельных участков.
Элемент И 40.i предназначен для формирования сигнала запуска для текущего модуля ЛМК.
Рассмотрим процесс функционирования ЛМК подробно.
Первоначально элементы памяти (регистры, триггеры и счетчики) всех модулей ЛМК находятся в состоянии логического нуля. Исключение составляет только регистр 3, на выходе 3.8 которого находится единичный уровень сигнала, и триггер 44 блока 10 синхронизации (фиг.4). На входах 52 модулей (i.N),
Figure 00000039
, входах 53 модулей (1.i),
Figure 00000040
, входах 54 модулей (i.1),
Figure 00000041
, входах 55 модулей (M.i),
Figure 00000042
, (фиг.1, 3) также установлены сигналы высокого уровня. Исходя из указанного состояния элементов памяти блоки 10 синхронизации всех модулей выключены, коммутаторы 6 настроены на прием информации с входов 49, а на всех выходах модулей находятся сигналы логического нуля. Цепи приведения элементов памяти модуля в исходное состояние для упрощения на фиг.1, 2 условно не показаны.
Перед началом работы происходит конфигурирование ЛМК. Для этого через вход 58 (М.1)-го (нижнего левого) модуля (фиг.1, 3) на информационный вход триггера 21 передается единичный сигнал и фиксируется в нем по заднему фронту импульса, пришедшего с входа 59 (М.1)-го модуля. Единичное значение в триггере 21 указывает, что данный модуль является в структуре ЛМК нижним левым. В триггерах 21 остальных модулей остается нулевое значение. Одновременно во всех модулях происходит запись кода «0…01» в счетчики 27. Для этого код «0…01» подается на входы 65 модулей, а на входы 66 модулей подается импульс, который фиксирует указанный код в счетчиках 27. В счетчиках 26 всех модулей при этом сохраняется нулевое значение. На этом процесс конфигурирования ЛМК заканчивается.
По завершении конфигурирования начинается настройка модулей ЛМК на выполнение требуемой (k-й) программы. Настройка (i.j)-го модуля на выполнение k-й программы сводится к установлению адреса первой выполняемой команды
Figure 00000043
, а также к определению номера барьера a t, после достижения которого должен осуществляться запуск этого модуля.
Настройка (i.j)-го модуля начинается с подачи на его вход 49 (фиг.1) кода операции. Код операции (КОП), представляющий собой код номера выполняемой программы (k), через коммутатор 6 передается на информационный вход регистра 2. Одновременно на вход 50 (i.j)-го модуля подается импульс настройки. Указанный импульс через элемент ИЛИ 12 поступает на вход синхронизации регистра 2 и задним фронтом фиксирует КОП в данном регистре. Далее КОП с выхода регистра 2 подается на адресный вход блока 1 и формирует на его выходе команду настройки формата Ф1 (фиг.5), соответствующую k-й программе.
В то же самое время импульс настройки через элемент 17 задержки и элемент ИЛИ 13 (фиг.1) передается на вход синхронизации регистра 3 и задним фронтом производит запись считанной из блока 1 команды в регистр 3. После фиксации команды на выходах 3.2 и 3.3 регистра 3 образуется адрес
Figure 00000044
, а на выходе 3.6 формируется код номера (t) барьера (НВС) a t. На остальных выходах регистра 3 устанавливается нулевой уровень сигнала. Отметим, что для модуля ЛМК, реализующего начальный участок k-й программы, задание кода НВС не требуется, поскольку этот модуль активизируется непосредственно в момент запуска мультиконтроллера независимо от условий синхронизации. Поэтому на выходе 3.6 регистра 3 (фиг.1, 3) рассматриваемого модуля устанавливается нулевой код.
Нулевой сигнал с выхода 3.8 регистра 3 перенастраивает коммутатор 6 на прием информации с выхода блока элементов ИЛИ 11. Поскольку на выходе 3.1 регистра 3 присутствует нулевой код (проверка логических условий в ходе настройки не производится), адрес
Figure 00000045
без изменений передается через блок элементов ИЛИ 11. Далее этот адрес проходит через коммутатор 6 и устанавливается на информационном входе регистра 2.
Одновременно производится запись в регистр 5 значения вектора соответствия Si.j(k) (устанавливается соответствие между (i.j)-м модулем и множеством барьеров k-й программы). Вектор Si.j(k) подается на вход 48 модуля и по заднему фронту импульса настройки с входа 50 модуля заносится в регистр 5.
Параллельно с описанными действиями код номера барьера a t с выхода 3.6 регистра 3 подается на вход дешифратора 9. В результате на t-м выходе дешифратора 9 появляется единичный сигнал. Этот сигнал проходит в блок 18.ut управления синхронизацией, отвечающий за синхронизацию t-го барьера, и далее поступает в барьерный блок 34.c(ut) (фиг.2), непосредственно обеспечивающий синхронизацию t-го барьера, где с(ut) - порядковый номер барьерного блока внутри блока 18.ut управления синхронизацией. В барьерном блоке 34.с(ut) данный единичный сигнал открывает элемент И 40.c(ut), тем самым обеспечивая возможность последующего опроса уровня сигнала на выходе элемента И 39.c(ut), соответствующего состоянию t-го барьера.
На этом процесс настройки (i.j)-го модуля на выполнение k-й программы завершается. Аналогичным образом протекает настройка остальных модулей ЛМК, причем настройка различных модулей выполняется параллельно. На входы 49 всех модулей подается один и тот же КОП; однако векторы соответствия для разных модулей в общем случае различны. В результате настройки для каждого модуля определяется момент его запуска при выполнении мультиконтроллером k-й программы, задается соответствующий адрес первой команды и, кроме того, устанавливается подмножество барьеров k-й программы, в которых завершаются участки, реализуемые модулем.
После завершения настройки осуществляется запуск ЛМК. Для запуска ЛМК на вход 51 одного из его модулей, а именно модуля, реализующего начальный участок k-й программы, подается импульс пуска (фиг.1). Допустим, что указанный модуль имеет номер (i.j) (в примере на фиг.6 это модуль m2.2). Импульс пуска со входа 51 (i.j)-го модуля передается на первый вход блока 10 синхронизации. Далее этот импульс проходит (фиг.4) через элемент ИЛИ 41, воздействует на вход установки триггера 42 и переводит этот триггер в единичное состояние. Единичный сигнал с прямого выхода триггера 42 поступает на вход генератора 43 и разрешает формирование на его выходе последовательности импульсов.
Первый импульс с выхода генератора 43 проходит через элемент И 45 на первый выход блока синхронизации (элемент 45 открыт единичным сигналом с прямого выхода триггера 44). По заднему фронту этого же импульса триггер 44 переключается в нулевое состояние. В результате происходит блокировка элемента И 45 и открытие элемента И 46. Второй импульс с выхода генератора 43 через открытый элемент 46 проходит на второй выход блока синхронизации. Задний фронт данного импульса вновь возвращает триггер 44 в исходное (единичное) состояние. Третий импульс снова проходит на первый выход блока синхронизации, а четвертый импульс - на второй выход и т.д. Таким образом, на выходах блока 10 синхронизации начинается генерация двух сдвинутых друг относительно друга последовательностей импульсов синхронизации t1 и t2.
Первый импульс t1 с первого выхода блока 10 синхронизации (фиг.1) через элемент ИЛИ 12 проходит на вход синхронизации регистра 2 и фиксирует в данном регистре адрес
Figure 00000046
, поступающий с выхода коммутатора 6. Адрес
Figure 00000047
с выхода регистра 2 поступает на адресный вход блока 1 и формирует на его выходе первую команду k-й программы.
Первый импульс t2 со второго выхода блока 10 синхронизации проходит через элемент ИЛИ 13 и, поступая затем на вход синхронизации регистра 3, записывает в этот регистр команду, считанную из блока 1. Одновременно этот же импульс подается на вход сброса буферного регистра 7 и подтверждает его нулевое состояние. Таким образом, (i.j)-й модуль и ЛМК в целом начинают исполнение k-й программы.
Дальнейшее функционирование ЛМК будем рассматривать в предположении, что (i.j)-й модуль выполняет некоторый (в общем случае не начальный) участок k-й программы, например участок
Figure 00000048
, завершающийся барьером a q. Кроме того, будем считать, что одновременно с (i.j)-м модулем могут функционировать и некоторые другие модули ЛМК (остальные модули находятся в пассивном состоянии или в состоянии ожидания).
Как и в прототипе, в процессе выполнения участка
Figure 00000049
(i.j)-й модуль может обрабатывать команды форматов Ф2, Ф3 или Ф4 (фиг.5). Обработка команды формата Ф2 соответствует режиму собственно выполнения участка программы (режим А), команда Ф3 определяет режим завершения участка программы и перехода в состояние ожидания запуска (режим В), а команда Ф4 задает режим завершения программы в целом (режим С). Рассмотрим работу модуля в каждом из названных режимов.
Режим А. Записанная в регистр 3 команда имеет формат Ф2 (фиг.5). В этом случае на выходе 3.4 регистра 3 (фиг.1) формируется код микроопераций (МО), на выходах 3.2 и 3.3 образуется адрес следующей команды Асл (на выходе 3.3 - немодифицируемая часть, а на выходе 3.2 - модифицируемый разряд адреса следующей команды, изменяемый в точках ветвления программ), на выходе 3.1 устанавливается код опрашиваемого логического условия (ЛУ), а на выходах 3.5-3.8 появляются сигналы логического нуля.
Код МО с выхода 3.4 регистра 3 передается на выход 69 модуля и, поступая далее на вход объекта управления, инициирует выполнение требуемых микроопераций. Нулевые сигналы с выходов 3.5 и 3.6 регистра 3 воздействуют на входы дешифраторов 8 и 9 соответственно и формируют на всех их выходах нулевые сигналы. Нулевой сигнал с выхода 3.8 регистра 3 поступает на управляющие входы коммутатора 6 и настраивает его на прием адреса следующей команды с выхода блока элементов ИЛИ 11.
Одновременно с описанными действиями происходит формирование исполнительного адреса следующей команды. Указанный адрес образуется из адреса следующей команды Асл путем замещения его модифицируемого (младшего) разряда значением опрашиваемого ЛУ. Новое значение младшего разряда формируется на выходе мультиплексора 4. Процесс формирования этого значения протекает следующим образом. Модифицируемый разряд (AM) адреса Асл с выхода 3.2 регистра 3 подается на первый информационный вход мультиплексора 4, а код ЛУ с выхода 3.1 поступает на адресный вход мультиплексора 4. Если код ЛУ отличен от нулевого, то на выход мультиплексора 4 передается значение соответствующего ЛУ с входа 47 модуля. Если же код ЛУ нулевой, то на выход мультиплексора 4 поступает значение АМ с выхода 3.2 регистра 3. Значение с выхода мультиплексора 4 в объединении с немодифицируемой (старшей) частью адреса следующей команды (АН) с выхода 3.3 регистра 3 образует исполнительный адрес следующей команды
Figure 00000050
.
Адрес
Figure 00000050
через блок элементов ИЛИ 11 и открытый коммутатор 6 проходит на информационный вход регистра 2. Очередной импульс синхронизации t1 с первого выхода блока 10 синхронизации фиксирует адрес
Figure 00000050
в регистре 2. Адрес
Figure 00000050
с выхода регистра 2 поступает на адресный вход блока 1 и обеспечивает считывание из блока 1 очередной команды k-й программы. Следующий импульс t2 со второго выхода блока 10 синхронизации через элемент ИЛИ 13 подается на вход синхронизации регистра 3 и записывает в этот регистр считанную команду.
На этом работа (i.j)-го модуля в режиме А заканчивается. Считанная команда снова может иметь формат Ф2 либо может быть командой формата Ф3 или Ф4.
Режим B. Записанная в регистр 3 команда имеет формат Ф3 (фиг.5). В этом случае (i.j)-й модуль завершает выполнение некоторого участка
Figure 00000051
, производит самонастройку на реализацию очередного участка k-й программы и переходит в состояние ожидания. В ходе самонастройки (i.j)-й модуль устанавливает адрес
Figure 00000052
начала очередного ((е+1)-го) участка
Figure 00000053
(здесь е - порядковый номер участка
Figure 00000054
для (i.j)-го модуля) и фиксирует номер (t) барьера a t (после достижения которого должен осуществляться запуск (i.j)-го модуля).
На выходе 3.7 регистра 3 появляется единичная метка конца участка программы (Мку), индицирующая формат считанной команды, на выходах 3.2 и 3.3 регистра 3 формируется адрес
Figure 00000055
, на выходе 3.1 образуется код ЛУ, а на выходах 3.4 и 3.8 устанавливаются сигналы логического нуля. В то же время на выходах 3.5 и 3.6 регистра 3 формируются коды номеров барьеров: на выходе 3.5 - номер (q) барьера a q, завершающего выполненный модулем участок
Figure 00000056
; на выходе 3.6 - номер (t) барьера a t, определяющего момент очередного запуска (i.j)-го модуля (допустимым является случай, когда t=q).
В примере на фиг.6 после выполнения участка
Figure 00000057
на выходе 3.5 регистра 3 модуля m2.2 будет сформирован номер барьера а 1, на выходе 3.6 будет установлен номер барьера а 2, за которым следует очередной участок
Figure 00000058
, выполняемый модулем m2.2. Адрес начала этого участка
Figure 00000059
будет зафиксирован на выходах 3.2 и 3.3 регистра 3. После завершения участка
Figure 00000060
на выходе 3.5 регистра 3 модуля m2.2 будет установлен НВС a 4, а на выходе 3.6 - НВС a 7, за которой следует очередной участок модуля m2.2 - участок
Figure 00000061
Аналогичным образом происходит самонастройка других модулей.
Код номера барьера a q с выхода 3.5 регистра 3 поступает на вход дешифратора 8 и возбуждает единичный сигнал
Figure 00000062
- признак завершения участка
Figure 00000063
- на его q-м выходе (организационно q-й выход дешифратора 8 входит в его uq-й групповой, m-разрядный выход, подключенный к блоку 18.uq управления синхронизацией). Единичный сигнал
Figure 00000064
поступает в блок 18.uq и далее в барьерный блок 34.c(uq) (фиг.2), проходя затем через элемент ИЛИ 35.c(uq) (на втором входе элемента 35.c(uq) присутствует сигнал
Figure 00000065
с q-го выхода регистра 5). Далее единичный сигнал
Figure 00000066
поступает на второй вход элемента И 36.c(uq) и тем самым индицирует окончание участка
Figure 00000067
. В свою очередь, код НВС a t с выхода 3.6 регистра 3 (фиг.1) подается на вход дешифратора 9 и возбуждает сигнал логической единицы на его t-м выходе (организационно t-й выход дешифратора 9 входит в его ut-й групповой, m-разрядный выход, подключенный к блоку 18.ut управления синхронизацией). Единичный сигнал с t-го выхода дешифратора 9 поступает в барьерный блок 34.с(ut) (фиг.2) на второй вход элемента И 40.с(ut), обеспечивая возможность последующего запуска (i.j)-го модуля при завершении участков, сходящихся в барьере a t.
В то же время нулевой сигнал с выхода 3.8 регистра 3 (фиг.1) настраивает коммутатор 6 на прием информации с выхода блока элементов ИЛИ 11, а положительный перепад уровня сигнала, возникающий на выходе 3.7 регистра 3, воздействует на одновибратор 15 и формирует на его выходе импульс. Данный импульс поступает на третий вход блока 10 синхронизации и, проходя затем на вход сброса триггера 42 (фиг.4), переключает этот триггер в состояние логического нуля. Нулевой сигнал с прямого выхода триггера 42 выключает генератор 43 и тем самым приостанавливает процесс формирования импульсов синхронизации t1 и t2 на выходах блока 10 синхронизации. Таким образом, процесс считывания команд из блока 1 временно прекращается (модуль переходит в состояние ожидания).
Одновременно с описанными действиями происходит формирование исполнительного адреса следующей команды (адреса, с которого произойдет фактический запуск (i.j)-го модуля после достижения t-го барьера). Указанный адрес образуется из адреса
Figure 00000068
путем модификации его младшего разряда (AM) значением логического условия с входа 47 модуля (фиг.1). Процесс формирования исполнительного адреса протекает так же как и при работе модуля в режиме А (см. выше). Полученный исполнительный адрес (обозначим его как
Figure 00000069
*) поступает на информационный вход буферного регистра 7, а также через блок элементов ИЛИ 11 и коммутатор 6 проходит на информационный вход регистра 2.
На этом работа модуля в режиме В заканчивается. Аналогичным образом происходит завершение других участков k-й программы, в том числе и участков
Figure 00000070
, z≠f, сходящихся в q-м барьере.
Рассмотрим работу ЛМК в режиме синхронизации множества параллельных участков, а также процесс запуска модулей при синхронизации. Для определенности будем рассматривать конкретное множество участков, например множество участков
Figure 00000071
, сходящихся в барьере a q. Будем считать, что участки
Figure 00000072
распределены между модулями ЛМК произвольным образом.
Процесс синхронизации базируется на конвейерном переключении групп слоев синхронизации, соответствующих различным группам барьеров. В общих чертах этот процесс уже рассматривался выше при обсуждении особенностей заявляемого решения. Ниже дается его детальное представление со ссылками на фиг.1-3.
Переключение групп слоев синхронизации начинается с подачи единичного импульса на вход 61 (М.1)-го модуля ЛМК. Этот импульс проходит через элемент ИЛИ 23 и устанавливает триггер 24 в единичное состояние. Затем единичный сигнал с прямого выхода триггера 24 проходит через элемент ИЛИ 30 и элемент 31 задержки на выход 68 (М.1)-го модуля, откуда далее поступает на вход 62 модуля (М-1.1) (т.е. вверх, см. фиг.1, 3). С входа 62 (М-1.1)-го модуля единичный сигнал, опять же через элемент ИЛИ 30 и элемент 31 задержки, поступает на вход 62 модуля (М-2.1) (снова вверх) и т.д. Таким образом сигнал управления проходит через модули ЛМК до модуля (1,1), а затем движется вправо вдоль строки матрицы и достигает (1.N)-го (верхнего правого) модуля (см. пунктирные стрелки на фиг.3). Параллельно с этим единичный сигнал с выхода триггера 24 модуля (М.1) через элемент 25 задержки поступает на вход сброса триггера 24 и устанавливает его в нулевое состояние.
Единичный сигнал управления, достигнув модуля (1.N), поступает с выхода 68 на вход 60 этого же модуля (см. пунктирные стрелки на фиг.3) и распространяется без задержки через все модули ЛМК влево вдоль верхней строки и вниз по всем столбцам, инкрементируя при этом задним фронтом значения счетчиков 26 и 27 всех модулей. Таким образом, значения этих счетчиков увеличиваются и указывают на следующую группу барьеров. Одновременно этот же сигнал управления задним фронтом фиксирует текущие значения признаков синхронизации в триггерах 37 барьерных блоков 34.i всех модулей. Достигнув (М.1)-го модуля, единичный сигнал, через элемент И 22 (он открыт единичным сигналом с прямого выхода триггера 21) и элемент ИЛИ 23, снова устанавливает триггер 24 в единичное состояние, что приводит к генерации нового сигнала управления, который будет распространяться в ЛМК аналогичным образом и переключать модули на очередную группу слоев.
Длительность задержки 25 определяет длительность единичного сигнала управления и составляет порядка 10-20 задержек двухходового логического элемента выбранной элементной базы (эквивалентного вентиля). Длительность задержки 31 равна времени прохождения сигнала синхронизации через элемент И 36 (фиг.2) и элемент ИЛИ 32.i (фиг.1). Таким образом, время прохождения сигнала управления через модуль устанавливается равным времени передачи модулем признака завершения параллельных участков. Это обеспечивает возможность динамического изменения периода переключения групп барьерных модулей в зависимости от числа модулей ЛМК без необходимости внесения схемных изменений.
Теперь более подробно остановимся на самом процессе барьерной синхронизации.
Синхронизация q-го барьера начинается с появления значения uq на выходе счетчика 26 всех модулей ЛМК, что означает переключение на uq-ю группу слоев синхронизации (группу барьеров). При этом начинается первая фаза синхронизации - формирование признака dq окончания участков множества Bq (в исходном состоянии, т.е. до начала выполнения k-й программы, все сигналы
Figure 00000073
будут нулевыми, поскольку в каждом множестве
Figure 00000074
имеется хотя бы один не завершенный участок). Значение uq с выхода счетчика 26 поступает на вход дешифратора 28, формирует сигнал высокого уровня на его uq-м выходе и тем самым разрешает прохождение сигнала
Figure 00000075
через элемент И 36.c(uq).
Формирование признака
Figure 00000076
завершения параллельных участков начинается с (1.N)-го модуля.
Если
Figure 00000077
, т.е. (1.N)-й модуль не реализует участков из множества Bq (и, соответственно, не должен оказывать влияние на процесс синхронизации), то на выходе элемента ИЛИ 35.c(uq) (фиг.2) образуется единичный сигнал. Этот сигнал поступает на второй вход элемента И 36.с(uq). На третьем входе данного элемента также находится единичный сигнал с соответствующего выхода дешифратора 28. Таким образом, уровень сигнала на выходе элемента И 36.c(uq) зависит исключительно от сигнала с выхода элемента И 19.c(uq) (фиг.1). Поскольку на входах 52.c(uq) и 53.c(uq) (1.N)-го модуля ЛМК всегда присутствует единичный уровень сигнала (см. исходное состояние), на выходе элемента И 36.с(uq) (фиг.2) формируется единичный сигнал
Figure 00000078
.
Если для (1.N)-го модуля ЛМК
Figure 00000079
, т.е. за (1.N)-м модулем закреплен некоторый участок
Figure 00000080
множества Bq, то прохождение признака
Figure 00000081
через элемент И 36.c(uq) зависит исключительно от значения
Figure 00000082
на q-м выходе дешифратора 8. Если участок
Figure 00000083
завершен, то
Figure 00000084
и на выходе элемента ИЛИ 35.c(uq) появляется единичный сигнал. Соответственно, единичный сигнал будет и на выходе элемента И 36.c(uq). В случае если участок
Figure 00000083
не завершен, то
Figure 00000085
и на выходе элемента ИЛИ 35.c(uq) поддерживается нулевой сигнал. Этот сигнал блокирует элемент И 36.с(uq) и формирует на его выходе нулевой сигнал (передача сигнала
Figure 00000086
через элемент И 36.c(uq) заблокирована). Нулевой сигнал на выходе элемента И 36.c(uq) сохраняется до тех пор, пока не будет завершен участок
Figure 00000087
.
Единичный сигнал
Figure 00000088
с выхода элемента И 36.c(uq) через элемент ИЛИ 32.c(uq) (фиг.1) поступает на выход 56.c(uq) (1.N)-го модуля ЛМК. Далее сигнал
Figure 00000089
распространяется через остальные модули ЛМК. Сигнал
Figure 00000089
с выхода 56.c(uq) (1.N)-го модуля поступает на входы 52.c(uq) и 53.c(uq) модулей (2.N) и (1.N-1) соответственно (фиг.1, 3). С этих входов сигнал проходит через элементы И 19.c(uq) модулей (2.N) и (1.N-1) и поступает на первый вход элементов И 36.c(uq) (фиг.2). На третьем входе элементов И 36.с(uq) этих модулей также установлена единица. Значение на втором входе элементов И 36.c(uq) определяются так же как и в случае с модулем (1.N) (см. выше). Таким же образом сигнал
Figure 00000089
с выходов 56.c(uq) модулей (2.N) и (1.N-1) распространится по ЛМК вниз и влево (фиг.3), вплоть до модуля с номером (М.1).
Если на момент переключения ЛМК на uq-ю группу барьеров все модули ЛМК, участвующие в q-м барьере, уже завершили свои участки программы
Figure 00000090
, то через определенное время на выходе элемента И 19.c(uq) (М.1)-го модуля установится единичный сигнал. Далее, пройдя через элемент И 36.c(uq) (фиг.2), по заднему фронту сигнала управления с входа 60 (М.1)-го модуля ЛМК единичный сигнал запишется в триггер 37.c(uq). Это будет означать, что первая фаза синхронизации для q-го барьера завершена. Параллельные участки программы выполнены, признак dq сформирован, и можно запускать модули ЛМК, ожидающие завершения q-го барьера.
Одновременно с фиксацией сигнала в триггере 37.c(uq) (М.1)-го модуля сигнал управления инкрементирует счетчик 27 (фиг.1) во всех модулях ЛМК, после чего на выходе счетчика 27 установится значение uq. Значение uq с выхода счетчика 27 (i.j)-го модуля поступает на дешифратор 29 и инициирует появление на его uq-м выходе единичного сигнала. Данная единица разрешает прохождение сигнала запуска через элемент И 39.c(uq) (фиг.2). Для q-го барьера начнется вторая фаза синхронизации.
Нулевой сигнал с инверсного выхода триггера 37.c(uq) (М.1)-го модуля ЛМК поступает на первый вход элемента И-НЕ 38.c(uq), инициируя появление на его выходе единичного сигнала. Этот сигнал поступает на первый вход элемента И 39.c(uq). На третьем входе элемента И 39.с(uq) также присутствует единица. Поскольку для крайних левых модулей на входах 55 находится единица, а для крайних нижних модулей единичный сигнал постоянно присутствует на входах 54, то единичный сигнал на втором входе элемента И 39.c(uq) (М.1)-го модуля ЛМК обусловливает появление на выходе элемента сигнала dq=1. Сигнал dq=1, пройдя через элемент ИЛИ 33.с(uq) (фиг.1), появляется на выходе 57.c(uq) (М.1)-го модуля и поступает на входы 54.c(uq) и 55.c(uq) модулей (М-1.1) и (М.2) соответственно. Поскольку на втором входе элементов И-НЕ 38.c(uq) модулей (М-1.1) и (М.2) установлен нулевой уровень, элементы И 39.c(uq) открыты. Признак dq=1 с выхода элементов И 20.c(uq) (фиг.1) через элементы И 39.c(uq) (фиг.2) и ИЛИ 33.c(uq) (фиг.1) поступает на выходы 57.c(uq) модулей (М-1.1), (М.2) и распространяется далее через все модули ЛМК вплоть до модуля (1.N).
В случае если триггер 37.c(uq) (M.1)-го модуля ЛМК содержит ноль (параллельные участки не завершены), то на инверсном выходе триггера 37.c(uq) и, соответственно, на первом входе элемента И-НЕ 38.c(uq) устанавливается единица. Поскольку для (М.1)-го модуля ЛМК на втором входе элемента И-НЕ 38.c(uq) также установлена единица (т.к. триггер 21 (фиг.1) установлен в единичное состояние), то нулевым сигналом с выхода элемента И-НЕ 38.c(uq) (фиг.2) блокируется распространение признака dq.
В процессе распространения единичного сигнала dq от (М.1)-го модуля через ЛМК происходит запуск модулей, ожидающих завершение множества участков Bq. Эти модули реализуют участки k-й программы, непосредственно следующие за участками множества Bq. Например, если
Figure 00000091
(фиг.6а), то такими участками будут
Figure 00000092
,
Figure 00000093
и
Figure 00000094
; соответственно, будет осуществляться запуск модулей m2.3, m1.1 и m3.1.
Запуск модулей ЛМК рассмотрим на примере функционирования некоторого модуля с номером (i.j).
Если активизация (i.j)-го модуля после окончания множества участков Bq не требуется, то на выходе 3.6 регистра 3 (фиг.1) данного модуля присутствует код, отличный от кода НВС a q (этот код может быть нулевым, если (i.j)-й модуль выполняет некоторый участок k-й программы, и ненулевым, если (i.j)-й модуль завершил выполнение некоторого участка, сходящегося в µ-м барьере, µ≠q). Соответственно на q-м выходе дешифратора 9 находится нулевой сигнал. Этот сигнал блокирует элемент И 40.c(uq) (фиг.2) и нулевое значение на его выходе никак не влияет на уровень сигнала на выходе элемента ИЛИ 14 (фиг.1). Запуск (i.j)-го модуля не производится.
Если (i.j)-й модуль должен быть активизирован после окончания множества участков Bq (т.е. по достижении барьера a q), то на выходе 3.6 регистра 3 этого модуля находится код НВС a q (установленный при работе модуля в режиме В). Соответственно на q-м выходе дешифратора 9 присутствует сигнал логической единицы, который открывает элемент И 40.c(uq) (фиг.2). Как только на выходе элемента И 40.c(uq) возникает положительный перепад уровня сигнала, на выходе элемента ИЛИ 14 (фиг.1) также формируется положительный перепад уровня сигнала. Данный перепад воздействует на одновибратор 16 и возбуждает на его выходе импульс пуска модуля. Одновременно этот же перепад распространяется на вход синхронизации буферного регистра 7 и фиксирует в данном регистре адрес запуска (i.j)-го модуля
Figure 00000095
, сформированный при завершении (i.j)-м модулем е-го участка k-й программы (см. режим В). Адрес с выхода регистра 7 подтверждает информацию на выходе блока элементов ИЛИ 11.
В тот же момент импульс с выхода одновибратора 16 поступает на второй вход блока 10 синхронизации и, проходя далее через элемент ИЛИ 41 (фиг.4) на вход установки триггера 42, переключает данный триггер в единичное состояние. Единичный сигнал, образующийся на прямом выходе триггера 42, включает генератор 43. Таким образом, на выходах блока 10 синхронизации возобновляется формирование импульсов синхронизации t1 и t2.
Одновременно импульс с выхода одновибратора 16 (фиг.1) подается на вход сброса регистра 3 и устанавливает его в нулевое состояние. На всех выходах регистра 3 образуются нулевые сигналы. В результате на всех выходах дешифраторов 8 и 9 формируется нулевой уровень сигнала. Нулевые сигналы с выходов дешифратора 9 блокируют элементы И 39.c(uq) (фиг.1, 2), что приводит к нулевому уровню на выходе элемента ИЛИ 14. Адресный код на первом входе блока элементов ИЛИ 11 также становится нулевым. Однако на выходе блока элементов ИЛИ 11 по-прежнему сохраняется адрес
Figure 00000096
, поступающий с выхода регистра 7. Соответственно указанный адрес сохраняется и на информационном входе регистра 2.
Далее первый импульс t1 с первого выхода блока 10 синхронизации через элемент ИЛИ 12 поступает на вход синхронизации регистра 2 и задним фронтом записывает в него адрес
Figure 00000097
. Адрес с выхода регистра 2 подается на адресный вход блока 1 и обеспечивает считывание первой команды (е+1)-го участка. Первый импульс t2 со второго выхода блока 10 синхронизации сбрасывает буферный регистр 7 и, поступая одновременно через элемент ИЛИ 13 на вход синхронизации регистра 3, фиксирует в этом регистре считанную из блока 1 команду. Таким образом, (i.j)-й модуль приступает к выполнению (е+1)-го участка k-й программы. Записанная в регистр 3 команда может иметь либо формат Ф2, либо формат Ф3, либо формат Ф4 (фиг.5). Соответственно (i.j)-й модуль может перейти в один из трех возможных режимов - А, В или С.
Режим С. Функционирование ЛМК в данном режиме аналогично прототипу. В этот режим модуль переходит после записи в регистр 3 команды формата Ф4 (фиг.5). Работа модуля в режиме С сводится к индикации завершения k-й программы и переходу в пассивное состояние. На выходе 3.8 регистра 3 (фиг.1) образуется единичный сигнал - метка конца программы (Мкп), на выходе 3.7, как и в режиме В, появляется единичная метка конца участка Мку. На всех остальных выходах регистра 3 формируется нулевой уровень сигнала.
Нулевые сигналы с выходов 3.5 и 3.6 регистра 3 формируют нулевой уровень сигнала на выходах дешифраторов 8 и 9. Единичная метка Мкп с выхода 3.8 регистра 3 подается на управляющие входы коммутатора 6 и настраивает его на прием очередного КОП с входа 49 модуля.
Одновременно переход сигнала на выходе 3.7 регистра 3 из нуля в единицу возбуждает импульс на выходе одновибратора 15. Этот импульс поступает на третий вход блока 10 синхронизации, переводит триггер 42 (фиг.4) в нулевое состояние и тем самым запрещает формирование импульсов синхронизации t1 и t2 на выходах блока 10 синхронизации (фиг.1). Считывание команд из блока 1 прекращается.
Аналогичным образом завершается функционирование и других модулей ЛМК. Выполнение k-й программы в целом заканчивается после перехода в пассивное состояние последнего из модулей. После этого ЛМК может переходить к выполнению очередной программы.
Оценим максимальное время синхронизации представленного ЛМК по сравнению с прототипом. Для ЛМК размерностью 5×5 при количестве блоков управления синхронизацией р=2 и p=8 быстродействие предложенного решения составляет соответственно ≈150 и ≈580 задержек эквивалентного вентиля, тогда как для прототипа эти значения равны ≈390 и ≈1170. Кроме того, вследствие упрощения подсистемы переключения групп барьеров уменьшилась аппаратная сложность устройства. Так при количестве барьерных блоков n=16, разбитых на р=4 групп, аппаратная сложность предложенного решения составляет ≈290 эквивалентных вентилей, при n=64 и p=8-≈870 эквивалентных вентилей. Соответствующие значения у прототипа составляют ≈840 и ≈2500 эквивалентных вентилей. Аппаратная сложность рассчитывалась без учета элементов и блоков 1-17, поскольку они присутствуют в обоих решениях. Количество линий связи, необходимых для соединения соседних модулей, в предложенном решении меньше, поскольку счетчики 26, 27 переключения групп барьерных модулей инкрементируются в каждом модуле ЛМК независимо, а не передается их значение от модуля к модулю, как в прототипе.
Таким образом, исходя из всего вышесказанного, предлагаемое изобретение обеспечивает решение заявленной технической задачи, а именно повышение скорости выполнения барьерной синхронизации. Совмещение фазы формирования признака завершения параллельных участков в одной группе барьеров и запуск ожидающих завершения модулей ЛМК в другой позволяет практически вдвое сократить время синхронизации.

Claims (3)

1. Логический мультиконтроллер с распределенным параллельно-конвейерным барьерным синхронизатором, содержащий M·N однотипных модулей, объединенных в матричную структуру (где N - число модулей в строке матричной структуры сети, М - число строк), каждый модуль которого включает блок памяти программ, регистр адреса, регистр команд, мультиплексор логических условий, коммутатор адреса, блок синхронизации, с первого по третий элементы ИЛИ, регистр вектора соответствия, буферный регистр, первый и второй дешифраторы номера вершины синхронизации, блок элементов ИЛИ, первый и второй одновибраторы, первый элемент задержки, первую и вторую группы элементов И, группу из р блоков управления синхронизацией (где
Figure 00000098
, n - максимальное число вершин синхронизации в реализуемых программах, m - количество барьерных блоков в одном блоке управления синхронизацией,   - операция округления вверх), причем вход кода операции модуля соединен со вторым информационным входом коммутатора адреса, выход которого подключен к информационному входу регистра адреса, выход которого подключен к адресному входу блока памяти программ, выход которого соединен с информационным входом регистра команд, выход метки конца программы которого соединен с управляющими входами коммутатора адреса, выходы кода логического условия и модифицируемого разряда адреса регистра команд подключены к адресному и второму информационному входам мультиплексора логических условий соответственно, первый информационный вход которого соединен со входом логических условий модуля, первый вход блока синхронизации соединен со входом пуска модуля, выход немодифицируемой части адреса регистра команд в объединении с выходом мультиплексора логических условий подключены к первому входу блока элементов ИЛИ и к информационному входу буферного регистра, выход которого соединен со вторым входом блока элементов ИЛИ, выход которого соединен с первым информационным входом коммутатора адреса, выход микроопераций регистра команд подключен к выходу микроопераций модуля, вход вектора соответствия модуля соединен с информационным входом регистра вектора соответствия, групповые выходы с первого по р-й которого соединены со вторыми входами блоков управления синхронизацией с первого по р-й соответственно, первый выход номера вершины синхронизации регистра команд соединен со входом первого дешифратора номера вершины синхронизации, групповые выходы с первого по р-й которого соединены с третьими входами блоков управления синхронизацией с первого по р-й соответственно, второй выход номера вершины синхронизации регистра команд соединен со входом второго дешифратора номера вершины синхронизации, групповые выходы с первого по р-й которого соединены с девятыми входами блоков управления синхронизацией с первого по р-й соответственно, выход первого элемента ИЛИ соединен со входом синхронизации буферного регистра и со входом первого одновибратора, выход которого подключен ко входу сброса регистра команд и ко второму входу блока синхронизации, первый выход которого соединен с первым входом второго элемента ИЛИ, выход которого подключен ко входу синхронизации регистра адреса, выход метки конца участка регистра команд соединен со входом второго одновибратора, выход которого соединен с третьим входом блока синхронизации, второй выход которого подключен ко входу сброса буферного регистра и ко второму входу третьего элемента ИЛИ, вход настройки модуля соединен со вторым входом второго элемента ИЛИ, со входом синхронизации регистра вектора соответствия, а также со входом первого элемента задержки, выход которого подключен к первому входу третьего элемента ИЛИ, выход которого подключен ко входу синхронизации регистра команд, первая группа входов модуля с первого по m-й соединена с первыми входами первой группы элементов И с первого по m-й соответственно, вторая группа входов модуля с первого по m-й соединена со вторыми входами первой группы элементов И с первого по m-й соответственно, третья группа входов модуля с первого по m-й соединена с первыми входами второй группы элементов И с первого по m-й соответственно, четвертая группа входов модуля с первого по m-й соединена со вторыми входами второй группы элементов И с первого по m-й соответственно, выходы первой группы элементов И с первого по m-й соединены с первыми входами блоков управления синхронизацией с первого по р-й, выходы второй группы элементов И с первого по m-й соединены с восьмыми входами блоков управления синхронизацией с первого по р-й, отличающийся тем, что в каждый модуль дополнительно введены триггер конфигурации, элемент И, триггер, второй и третий элементы задержки, первый и второй счетчики номера активной группы, первый и второй дешифраторы номера активной группы, четвертый и пятый элементы ИЛИ, первая и вторая группы элементов ИЛИ, причем первый и второй входы модуля соединены с информационным входом и входом синхронизации триггера конфигурации соответственно, прямой выход которого соединен с шестыми входами блоков управления синхронизацией с первого по р-й и с первым входом элемента И, выход которого соединен с первым входом четвертого элемента ИЛИ, третий вход модуля соединен со вторым входом элемента И, со входами инкремента первого и второго счетчиков номера активной группы, с пятыми входами блоков управления синхронизацией с первого по р-й, а также является первым выходом модуля, четвертый вход модуля соединен со вторым входом четвертого элемента ИЛИ, выход которого соединен с входом установки триггера, прямой выход которого соединен с первым входом пятого элемента ИЛИ и через второй элемент задержки подключен ко входу сброса триггера, пятый вход модуля соединен со вторым входом пятого элемента ИЛИ, выход которого соединен со входом третьего элемента задержки, выход которого является вторым выходом модуля, шестой вход модуля соединен с информационном входом первого счетчика номера активной группы, выход которого соединен со входом первого дешифратора номера активной группы, выходы с первого по р-й которого соединены с четвертыми входами блоков управления синхронизацией с первого по р-й соответственно, седьмой вход модуля соединен с входом синхронизации первого счетчика номера активной группы, восьмой вход модуля соединен с информационным входом второго счетчика номера активной группы, выход которого соединен со входом второго дешифратора номера активной группы, выходы с первого по р-й которого соединены с седьмыми входами блоков управления синхронизацией с первого по р-й соответственно, девятый вход модуля соединен с входом синхронизации второго счетчика номера активной группы, первые групповые выходы блоков управления синхронизацией с первого по р-й соединены соответственно с первого по р-й входами с первого по m-й элементов первой группы элементов ИЛИ соответственно, вторые групповые выходы блоков управления синхронизацией с первого по р-й соединены соответственно с первого по р-й входами с первого по m-й элементов второй группы элементов ИЛИ соответственно, третьи групповые выходы блоков управления синхронизацией с первого по р-й соединены с групповыми входами первого элемента ИЛИ с первого по р-й соответственно, выходы первой группы элементов ИЛИ с первого по m-й являются выходами первой группы выходов модуля с первого по m-й соответственно, а выходы второй группы элементов ИЛИ с первого по m-й являются выходами второй группы выходов модуля с первого по m-й соответственно.
2. Логический мультиконтроллер с распределенным параллельно-конвейерным барьерным синхронизатором по п.1, отличающийся тем, что каждый блок управления синхронизацией содержит группу барьерных блоков с первого по m-й, причем с первого по m-й разряды первого, второго, третьего, восьмого и девятого входов блока управления синхронизацией соединены с первым, вторым, третьим, восьмым и девятым входами барьерных блоков с первого по m-й соответственно, четвертый, пятый, шестой и седьмой входы блока управления синхронизацией соединены соответственно с четвертым, пятым, шестым и седьмым входами барьерных блоков с первого по m-й, первый, второй и третий выходы барьерных блоков с первого по m-й соединены с первого по m-й разрядами первого, второго и третьего групповых выходов блока управления синхронизацией соответственно.
3. Логический мультиконтроллер с распределенным параллельно-конвейерным барьерным синхронизатором по п.2, отличающийся тем, что каждый барьерный блок содержит элемент ИЛИ, с первого по третий элементы И, триггер признака завершения барьера, элемент И-НЕ, причем первый вход барьерного блока подключен к первому входу первого элемента И, второй вход которого соединен с выходом элемента ИЛИ, первый и второй входы которого являются вторым и третьим входами барьерного блока соответственно, четвертый вход которого подключен к третьему входу первого элемента И, выход которого соединен с информационным входом триггера признака завершения барьера, а также является первым выходом барьерного блока, пятый вход которого подключен к входу синхронизации триггера признака завершения барьера, инверсный выход которого соединен с первым входом элемента И-НЕ, второй вход которого является шестым входом барьерного блока, а выход подключен к первому входу второго элемента И, выход которого является вторым выходом барьерного блока, седьмой и восьмой входы которого соединены со вторым и третьим входами второго элемента И соответственно, выход которого подключен к первому входу третьего элемента И, второй вход и выход которого являются девятым входом и третьим выходом барьерного блока соответственно.
RU2010151589/08A 2010-12-15 2010-12-15 Логический мультиконтроллер с распределенным параллельно-конвейерным барьерным синхронизатором RU2450328C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2010151589/08A RU2450328C1 (ru) 2010-12-15 2010-12-15 Логический мультиконтроллер с распределенным параллельно-конвейерным барьерным синхронизатором

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2010151589/08A RU2450328C1 (ru) 2010-12-15 2010-12-15 Логический мультиконтроллер с распределенным параллельно-конвейерным барьерным синхронизатором

Publications (1)

Publication Number Publication Date
RU2450328C1 true RU2450328C1 (ru) 2012-05-10

Family

ID=46312379

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2010151589/08A RU2450328C1 (ru) 2010-12-15 2010-12-15 Логический мультиконтроллер с распределенным параллельно-конвейерным барьерным синхронизатором

Country Status (1)

Country Link
RU (1) RU2450328C1 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2634199C1 (ru) * 2016-05-05 2017-10-24 Федеральное государственное бюджетное образовательное учреждение высшего образования "Юго-Западный государственный университет" (ЮЗГУ) Параллельный логический мультиконтроллер

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0990980A2 (en) * 1990-11-09 2000-04-05 Seagate Technology, Inc. Multiple microcontroller hard disk drive control architecture
EP1255201A1 (en) * 2001-05-01 2002-11-06 Sun Microsystems, Inc. Shared memory multiprocessing system employing mixed broadcast snooping and directory based coherency protocols
RU2210804C2 (ru) * 2001-08-08 2003-08-20 Научно-исследовательский институт многопроцессорных вычислительных систем при Таганрогском государственном радиотехническом университете Мультиконтроллер распределенной памяти
RU2280887C1 (ru) * 2005-02-15 2006-07-27 Государственное образовательное учреждение высшего профессионального образования Курский государственный университет Микроконтроллерная сеть

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0990980A2 (en) * 1990-11-09 2000-04-05 Seagate Technology, Inc. Multiple microcontroller hard disk drive control architecture
EP1255201A1 (en) * 2001-05-01 2002-11-06 Sun Microsystems, Inc. Shared memory multiprocessing system employing mixed broadcast snooping and directory based coherency protocols
RU2210804C2 (ru) * 2001-08-08 2003-08-20 Научно-исследовательский институт многопроцессорных вычислительных систем при Таганрогском государственном радиотехническом университете Мультиконтроллер распределенной памяти
RU2280887C1 (ru) * 2005-02-15 2006-07-27 Государственное образовательное учреждение высшего профессионального образования Курский государственный университет Микроконтроллерная сеть

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2634199C1 (ru) * 2016-05-05 2017-10-24 Федеральное государственное бюджетное образовательное учреждение высшего образования "Юго-Западный государственный университет" (ЮЗГУ) Параллельный логический мультиконтроллер

Similar Documents

Publication Publication Date Title
CN101632128B (zh) 具有数据镜像备份的存储器装置的页面编程操作的设备和方法
US5329179A (en) Arrangement for parallel programming of in-system programmable IC logical devices
US20120086627A1 (en) Display Device with Bi-directional Shift Registers
RU2450328C1 (ru) Логический мультиконтроллер с распределенным параллельно-конвейерным барьерным синхронизатором
KR940011594B1 (ko) 공유 제어 기억부를 가진 멀티프로세서 제어기 및 그 동기화 방법
EP1388048B1 (en) Storage system for use in custom loop accellerators
RU2336556C1 (ru) Микроконтроллерная сеть
CN112699075A (zh) 通讯方法、装置、计算机设备和可读存储介质
RU2634199C1 (ru) Параллельный логический мультиконтроллер
RU2280887C1 (ru) Микроконтроллерная сеть
US7843503B2 (en) System and method for reading information in a set of electronic components connected to a communication bus, and application to reading a matrix of pixels
RU2168198C1 (ru) Микроконтроллерная сеть
RU2151421C1 (ru) Модуль мультимикроконтроллерной сети
CN112908233B (zh) 地址锁存器、显示装置及地址锁存方法
RU2112269C1 (ru) Модульное устройство для программного управления
SU1631542A1 (ru) Мультимикропрограммна управл юща система
RU2156492C1 (ru) Отказоустойчивый мультимикроконтроллер
RU2112272C1 (ru) Модуль микроконтроллерной сети
RU2111528C1 (ru) Микропрограммное устройство управления
Szász et al. The Nontrivial Problem of Matching in Redundant Digital Systems
RU2116665C1 (ru) Модуль мультимикропрограммной системы
RU2152071C1 (ru) Модуль системы микропрограммного управления
RU2185656C2 (ru) Распределенная система для программного управления
RU2110827C1 (ru) Дискретная микроконтроллерная сеть
RU2198417C2 (ru) Распределенная система для программного управления

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20121216