распределительная система для программного управления
Классы МПК: | G05B19/18 числовое управление, те автоматически действующие устройства, в частности станки, например при обеспечении производственно-технических условий, таких как выполнение позиционирования, перемещения или координируемых операций с помощью программируемых данных в числовой форме G06F9/28 увеличение операционной скорости, например с помощью нескольких устройств микроуправления, работающих параллельно |
Автор(ы): | Колосков В.А., Миневич Л.М., Зотов И.В., Медведева М.В., Титов В.С. |
Патентообладатель(и): | Курский государственный технический университет |
Приоритеты: |
подача заявки:
1997-09-09 публикация патента:
20.11.1998 |
Изобретение относится к автоматике и вычислительной технике и может быть использовано при построении управляющих и вычислительных систем высокой производительности, а также АСУТП. Технический результат заключается в расширении области применения распределенной системы за счет введения технических средств, позволяющих осуществить ее реконфигурацию при возникновении отказов отдельных модулей. Технический результат достигается за счет того, что в известную систему, содержащую n x m идентичных модулей, где n - число строк, m - число столбцов, причем i-й модуль системы содержит блок памяти программ, буферный запоминающий блок сообщений, блок анализа, коммутатор адреса, регистр адреса, регистр команд, мультиплексор логических условий, блок синхронизации, первый и второй блоки элементов И, элемент И, дополнительно введены три блока памяти программ, мультиплексор выбора программ, блок выбора алгоритма функционирования, элемент ИЛИ. 4 з.п. ф-лы, 5 табл., 12 ил.
Рисунок 1, Рисунок 2, Рисунок 3, Рисунок 4, Рисунок 5, Рисунок 6, Рисунок 7, Рисунок 8, Рисунок 9, Рисунок 10, Рисунок 11, Рисунок 12, Рисунок 13, Рисунок 14, Рисунок 15, Рисунок 16
Формула изобретения
1. Распределенная система для программного управления, содержащая n m модулей, где n - число строк, m - число столбцов, причем i-й модуль системы содержит первый блок памяти программ, буферный запоминающий блок сообщений, блок анализа, коммутатор адреса, регистр адреса, регистр команд, мультиплексор логических условий, блок синхронизации, первый и второй блоки элементов И, элемент И, причем первый управляющий вход модуля соединен с первым входом блока синхронизации, первый выход которого соединен с синхронизирующим входом регистра адреса, выход которого соединен со входом первого блока памяти программ, синхронизирующий вход регистра команд соединен со вторым выходом блока синхронизации, выход поля проверяемых логических условий регистра команд соединен с первым информационным входом мультиплексора логических условий, выход модифицируемого разряда адреса регистра команд соединен со вторым информационным входом мультиплексора логических условий, выход которого соединен со входом модифицируемого разряда адреса первого информационного входа коммутатора адреса, выход которого соединен с информационным входом регистра адреса, вход логических условий модуля соединен с управляющим входом мультиплексора логических условий, выход поля немодифицируемых разрядов адреса регистра команд соединен со входами немодифицируемых разрядов адреса первого информационного входа коммутатора адреса, выход операционного поля регистра команд соединен с информационным входом первого блока элементов И, выход которого соединен с первым информационным выходом модуля, второй управляющий вход модуля соединен с третьим входом блока синхронизации, информационный выход буферного запоминающего блока сообщений соединен со вторым информационным входом коммутатора адреса, выход операционного поля регистра команд соединен с информационным входом второго блока элементов И, выход которого и выход элемента И соединены с первым информационным входом блока анализа, первый управляющий выход которого соединен с первым управляющим входом буферного запоминающего блока сообщений, управляющий выход которого соединен с четвертым входом блока синхронизации, третий выход которого соединен с первым входом элемента И, выход поля передачи управления регистра команд соединен с инверсным управляющим входом первого блока элементов И, прямым управляющим входом второго блока элементов И и вторым входом элемента И, выход поля конца программы регистра команд соединен с прямым и инверсным управляющими входами коммутатора адреса, вторым входом блока синхронизации и вторым управляющим входом буферного запоминающего блока сообщений, первый информационный выход блока анализа соединен с первым информационным входом буферного запоминающего блока сообщений, первый информационный вход модуля соединен со вторым информационным входом буферного запоминающего блока сообщений, второй и третий информационные входы модуля соединены соответственно со вторым и третьим информационными входами блока анализа, второй и третий информационные выходы которого соединены соответственно со вторым и третьим информационным выходами модуля, отличающаяся тем, что каждый модуль дополнительно содержит второй - четвертый блоки памяти программ, мультиплексор выбора программ, блок выбора алгоритма функционирования, элемент ИЛИ, причем входы второго - четвертого блоков памяти программ соединены с выходом регистра адреса, выходы первого - четвертого блоков памяти программ соединены соответственно с первым - четвертым информационными входами мультиплексора выбора программ, выход которого соединен с информационным входом регистра команд, четвертый выход блока выбора алгоритма функционирования соединен с первым управляющим входом мультиплексора выбора программ и с первым управляющим входом блока анализа, пятый выход блока выбора алгоритма функционирования подключен ко второму управляющему входу мультиплексора выбора программ и ко второму управляющему входу блока анализа, третий выход блока выбора алгоритма функционирования соединен с первым входом элемента ИЛИ, выход которого соединен с третьим управляющим выходом модуля, второй управляющий выход блока анализа соединен со вторым входом элемента ИЛИ, четвертый и пятый информационные входы модуля соединены соответственно с четвертым и пятым информационными входами блока анализа, четвертый и пятый информационные выходы которого соединены соответственно с четвертым и пятым информационными выходами модуля, третий - седьмой управляющие входы модуля соединены соответственно с первым - пятым входами блока выбора алгоритма функционирования, четвертый управляющий вход модуля соединен с третьим управляющим входом блока анализа, первый и второй выходы блока выбора алгоритма функционирования соединены соответственно с первым и вторым управляющими выходами модуля, второй информационный выход j-го модуля k-го столбца соединен со вторым информационным входом (j + 1)-го модуля k-го столбца, третий информационный выход (j + 1)-го модуля k-го столбца соединен с третьим информационным входом j-го модуля k-го столбца, четвертый информационный выход p-го модуля q-й строки соединен с четвертым информационным входом (p + 1)-го модуля q-й строки, пятый информационный выход (p + 1)-го модуля q-й строки соединен с пятым информационным входом p-го модуля q-й строки, первый управляющий выход первого модуля k-го столбца соединен с третьим управляющим входом модулей k-го столбца с первого по n-й, первый управляющий выход (i + 1)-го модуля k-го столбца соединен с пятым управляющим входом i-го модуля k-го столбца, второй управляющий выход p-го модуля q-й строки соединен с шестым управляющим входом (p + 1)-го модуля q-й строки, второй управляющий выход p-го модуля s-й строки соединен с седьмым управляющим входом (p + 1)-го модуля (s + 1)-й строки, а шестой управляющий вход модулей первого столбца с первого по n-й, пятый управляющий вход модулей n-й строки с первого по m-й, седьмой управляющий вход модулей первой строки с первого по m-й и первого столбца со второго по n-й предназначены для подачи сигнала логического нуля. 2. Система по п.1, отличающаяся тем, что блок выбора алгоритма функционирования содержит первый - третий элементы И, первый и второй элементы ИЛИ, элемент И-ИЛИ, выход которого соединен с пятым выходом блока, первый вход которого соединен с прямым входом первого элемента И, выход которого соединен со вторыми входами первой и второй групп входов элемента И-ИЛИ и четвертым выходом блока, второй и третий входы которого соединены соответственно с первым и вторым входами первого элемента ИЛИ соответственно и с первым и вторым входами второго элемента И соответственно, выход первого элемента ИЛИ соединен с инверсным входом первого элемента И и первым выходом блока, четвертый вход которого соединен со вторым входом второго элемента ИЛИ, вторым входом третьего элемента И и первым входом первой группы входов элемента И-ИЛИ, первый вход второй группы входов которого соединен с пятым входом блока, выход второго элемента И соединен с первым входом второго элемента ИЛИ и первым входом третьего элемента И, выход которого соединен с третьим выходом блока, выход второго элемента ИЛИ соединен со вторым выходом блока. 3. Система по п.1, отличающаяся тем, что блок анализа содержит первый - пятый блоки памяти сообщений, мультиплексор, блок выбора направления передачи информации, блок памяти константы, триггер, буферный регистр, первый и второй блоки элементов И, выходной демультиплексор, дешифратор, счетчик, распределитель импульсов, элемент И, элемент ИЛИ, выход которого соединен с входом установки триггера и инверсным входом элемента И, выход которого соединен с входом сброса триггера, прямой выход триггера соединен с управляющим входом распределителя импульсов, четвертый выход которого соединен со счетным входом счетчика, выходы счетчика соединены со входами дешифратора и управляющими входами мультиплексора, выход которого соединен с информационным входом буферного регистра, синхронизирующий вход которого соединен со вторым выходом распределителя импульсов, первый - третий входы блока памяти константы соединены соответственно с первым - третьим управляющими входами блока анализа, первый и второй выходы блока памяти константы соединены соответственно с первым и четвертым входами блока выбора направления передачи информации, второй и третий выходы которого соединены соответственно с первым и вторым управляющими входами выходного демультиплексора, второй, третий и пятый входы блока выбора направления передачи информации соединены соответственно с выходом поля вертикального адреса, выходом поля горизонтального адреса и выходом поля бита обхода буферного регистра, выход операционного поля буферного регистра и третий выход распределителя импульсов соединен с информационными входами первого и второго блоков элементов И, выход второго блока элементов И соединен с первым информационным выходом блока анализа, выходы полей вертикального и горизонтального адреса буферного регистра соединены с информационным входом первого блока элементов И, выход которого и пятый выход блока выбора направления передачи информации подключены к информационному входу выходного демультиплексора, первый - четвертый выходы которого соединены соответственно со вторым - пятым информационными выходами блока анализа, первый - пятый информационные входы которого соединены с информационным и первым управляющим входами соответствующих блоков памяти сообщений, информационные выходы блоков памяти сообщений с первого по пятый соединены с соответствующими информационными входами мультиплексора, управляющие выходы блоков памяти сообщений соединены со входами элемента ИЛИ, третий выход распределителя импульсов соединен с прямым входом элемента И, первый выход блока выбора направления передачи информации соединен с управляющими входами первого и второго блоков элементов И и первым управляющим выходом блока анализа, второй управляющий выход которого соединен с четвертым выходом блока выбора направления передачи информации, первый выход распределителя импульсов соединен с тактовыми входами первого - пятого блоков памяти сообщений, выходы дешифратора соединены со вторыми управляющими входами соответствующих блоков памяти сообщений. 4. Система по п.3, отличающаяся тем, что блок выбора направления передачи информации содержит первую - третью схемы сравнения, мультиплексор, шифратор, первый - шестой элементы И, первый и второй элементы ИЛИ, выход второго элемента ИЛИ соединен с пятым выходом блока, пятый вход которого соединен со вторым входом первого элемента ИЛИ и первым входом второго элемента ИЛИ, выход первого элемента ИЛИ соединен с управляющим входом мультиплексора и третьим входом шестого элемента И, выход которого соединен с четвертым выходом блока, первый вход которого соединен с первым входом первой схемы сравнения, выход "Равно" которой соединен с первым выходом блока, второй и третий входы которого соединены с первыми входами второй и третьей схем сравнения соответственно, четвертый вход блока соединен со вторыми входами второй и третьей схем сравнения, выход "Больше" второй схемы сравнения соединен с первым входом первой группы информационных входов мультиплексора, выход "Меньше" второй схемы сравнения соединен со вторым входом первой группы информационных входов мультиплексора и первыми входами первого и второго элементов И, выходы первого и второго элементов И соединены соответственно со вторым и третьим входами второй группы информационных входов мультиплексора, выход "Равно" второй схемы сравнения соединен со вторыми входами третьего - пятого элементов И, выход "Больше" третьей схемы сравнения соединен с первым входом третьего элемента И, выход которого соединен с третьим входом первой группы информационных входов мультиплексора, выходы "Меньше" и "Равно" третьей схемы сравнения соединены со вторыми входами первого и второго элементов И соответственно и первыми входами четвертого и пятого элементов И соответственно, выход четвертого элемента И соединен с четвертым входом первой группы информационных входов мультиплексора и вторым входом шестого элемента И, первый вход которого соединен с выходом "Не равно" первой схемы сравнения, выход пятого элемента И соединен с первым входом второй группы информационных входов мультиплексора, вторым входом второго элемента ИЛИ и первым входом первого элемента ИЛИ, первый - четвертый выходы мультиплексора соединены соответственно с первым - четвертым входами шифратора, первый и второй выходы которого соединены соответственно со вторым и третьим выходами блока, второй вход первой схемы сравнения подключен ко второму и третьему входам блока. 5. Система по п.3, отличающаяся тем, что блок памяти константы содержит блок хранения физического адреса, группу блоков хранения физического адреса, мультиплексор, выход которого соединен с первым выходом блока, первый - третий входы которого соединены с первым - третьим адресными входами мультиплексора соответственно, второй - четвертый информационные входы которого соединены с выходами первого - третьего блоков хранения физического адреса соответственно, выход блока хранения физического адреса соединен с первым информационным входом мультиплексора и вторым выходом блока, на пятом - восьмом информационных входах мультиплексора постоянно присутствует потенциал логического нуля.Описание изобретения к патенту
Изобретение относится к автоматике и вычислительной технике и может быть использовано при построении управляющих и вычислительных систем высокой производительности, АСУТП, а также других систем, к которым предъявляются жесткие требования по надежности. Известно модульное устройство для программного управления и контроля, содержащее блок памяти, счетчик адреса, регистр микроопераций, два мультиплексора, два регистра логических условий, два коммутатора, шифратор, два дешифратора, генератор тактовых импульсов, два триггера, регистр номера, демультиплексор, блок элементов ИЛИ, группу элементов ИЛИ, два элемента ИЛИ и два элемента И (а.с. 1647519 СССР G 05 B 19/18, опубл. 07.05.91, БИ N 17). Недостатком известного устройства является значительное число внешних входов и выходов. Наиболее близкой к предлагаемому устройству по технической сущности является распределенная система для программного управления технологическими процессами, содержащая nxm каналов (модулей), где n m, n - число модулей в строке матричной организации системы, а m - число строк, причем i-й модуль системы содержит блок памяти программ, буферный запоминающий блок сообщений, блок анализа, коммутатор адреса, регистр адреса, регистр команд, мультиплексор логических условий, блок синхронизации, первый блок элементов И, второй блок элементов И, элемент И, причем первый управляющий вход модуля соединен с первым входом блока синхронизации, первый выход которого соединен с синхронизирующим входом регистра адреса, выход которого соединен со входом блока памяти программ, выход блока памяти программ соединен с информационным входом регистра команд, синхронизирующий вход которого соединен со вторым выходом блока синхронизации, выход поля проверяемых логических условий регистра команд соединен с первым информационным входом мультиплексора логических условий, выход модифицируемого разряда адреса регистра команд соединен со вторым информационным входом мультиплексора логических условий, выход которого соединен со входом модифицируемого разряда адреса первого информационного входа коммутатора адреса, выход которого соединен с информационным входом регистра адреса, вход логических условий модуля соединен с управляющим входом мультиплексора логических условий, выход поля немодифицируемых разрядов адреса регистра команд соединен со входами немодифицируемых разрядов адреса первого информационного входа коммутатора адреса, выход операционного поля регистра команд соединен с информационным входом первого блока элементов И, выход которого соединен с первым информационным выходом модуля, выход поля конца программы регистра команд соединен с прямым и инверсным управляющими входами коммутатора адреса и вторым входом блока синхронизации, второй управляющий вход модуля соединен с третьим входом блока синхронизации, информационный выход буферного запоминающего блока сообщений соединен со вторым информационным входом коммутатора адреса, выход операционного поля регистра команд соединен с информационным входом второго блока элементов И, выход которого и выход элемента И соединены с первым входом блока анализа, управляющий выход которого соединен с управляющим входом буферного запоминающего блока сообщений, управляющий выход которого соединен с четвертым входом блока синхронизации, третий выход которого соединен с первым входом элемента И, выход поля передачи управления регистра команд соединен с инверсным управляющим входом первого блока элементов И, прямым управляющим входом второго блока элементов И и вторым входом элемента И, первый информационный выход блока анализа соединен с первым информационным входом буферного запоминающего блока сообщений, выход поля конца программы регистра команд соединен со вторым управляющим входом буферного запоминающего блока сообщений, первый информационный вход модуля соединен со вторым информационным входом буферного запоминающего блока сообщений, второй информационный вход модуля соединен со вторым входом блока анализа, второй информационный выход которого соединен со вторым информационным выходом модуля, третий информационный вход модуля соединен с третьим входом блока анализа, третий информационный выход которого соединен с третьим информационным выходом модуля, второй информационный выход j-го модуля k-й строки соединен со вторым информационным входом (j+1)-го модуля k-й строки, второй информационный выход n-го модуля k-й строки соединен со вторым информационным входом первого модуля k-й строки, третий информационный выход p-го модуля q-го столбца соединен с третьим информационным входом (p-1)-го модуля, третий информационный выход первого модуля q-го столбца соединен с третьим информационным входом m-го модуля q-го столбца (а.с. 1605212 СССР G 05 B 19/18, опубл. 07.11.90, БИ N 41). Недостатком известной системы является узкая область применения, обусловленная отсутствием средств, обеспечивающих возможность ее реконфигурации и восстановления работоспособности системы при возникновении отказов отдельных модулей. Под отказом модуля понимается искажение управляющей информации, подаваемой им на объект управления (средства взаимодействия модулей считаются работоспособными). Отказ по меньшей мере одного из модулей приводит к отказу системы в целом. Технической задачей изобретения является расширение области применения распределенной системы за счет введения технических средств, обеспечивающих ее реконфигурацию и восстановление работоспособности при возникновении отказов отдельных модулей. Техническая задача решается тем, что в распределенную систему для программного управления, содержащую nxm модуле, где n - число строк, m - число столбцов, причем i-й модуль системы содержит первый блок памяти программ, буферный запоминающий блок сообщений, блок анализа, коммутатор адреса, регистр адреса, регистр команд, мультиплексор логических условий, блок синхронизации, первый и второй блоки элементов И, элемент И, причем первый управляющий вход модуля соединен с первым входом блока синхронизации, первый выход которого соединен с синхронизирующим входом регистра адреса, выход которого соединен с входом первого блока памяти программ, синхронизирующий вход регистра команд соединен со вторым выходом блока синхронизации, выход поля проверяемых логических условий регистра команд соединен с первым информационным входом мультиплексора логических условий, выход модифицируемого разряда адреса регистра команд соединен со вторым информационным входом мультиплексора логических условий, выход которого соединен со входом модифицируемого разряда адреса первого информационного входа коммутатора адреса, выход которого соединен с информационным входом регистра адреса, вход логических условий модуля соединен с управляющим входом мультиплексора логических условий, выход поля немодифицируемых разрядов адреса регистра команд соединен со входами немодифицируемых разрядов адреса первого информационного входа коммутатора адреса, выход операционного поля регистра команд соединен с информационным входом первого блока элементов И, выход которого соединен с первым информационным выходом модуля, второй управляющий вход модуля соединен с третьим входом блока синхронизации, информационный выход буферного запоминающего блока сообщений соединен со вторым информационным входом коммутатора адреса, выход операционного поля регистра команд соединен с информационным входом второго блока элементов И, выход которого и выход элемента И соединены с первым информационным входом блока анализа, первый управляющий выход которого соединен с первым управляющим входом буферного запоминающего блока сообщений, управляющий выход которого соединен с четвертым входом блока синхронизации, третий выход которого соединен с первым входом элемента И, выход поля передачи управления регистра команд соединен с инверсным управляющим входом первого блока элементов И, прямым управляющим входом второго блока элементов И и вторым входом элемента И, выход поля конца программы регистра команд соединен с прямым и инверсным управляющими входами коммутатора адреса, вторым входом блока синхронизации и вторым управляющим входом буферного запоминающего блока сообщений, первый информационный выход блока анализа соединен с первым информационным входом буферного запоминающего блока сообщений, первый информационный вход модуля соединен со вторым информационным входом буферного запоминающего блока сообщений, второй информационный вход модуля соединен со вторым информационным входом блока анализа, второй информационный выход которого соединен со вторым информационным выходом модуля, третий информационный вход модуля соединен с третьим информационным входом блока анализа, третий информационный выход которого соединен с третьим информационным выходом модуля, дополнительно введены второй - четвертый блоки памяти программ, мультиплексор выбора программ, блок выбора алгоритма функционирования, элемент ИЛИ, причем входы второго - четвертого блоков памяти программ соединены с выходом регистра адреса, выходы первого - четвертого блоков памяти программ соединены соответственно с первым - четвертым информационными входами мультиплексора выбора программ, выход которого соединен с информационным входом регистра команд, четвертый выход блока выбора алгоритма функционирования соединен с первым управляющим входом мультиплексора выбора программ и с первым управляющим входом блока анализа, пятый выход блока выбора алгоритма функционирования подключен ко второму управляющему входу мультиплексора выбора программ и ко второму управляющему входу блока анализа, третий выход блока выбора алгоритма функционирования соединен с первым входом элемента ИЛИ, выход которого соединен с третьим управляющим выходом модуля, второй управляющий выход блока анализа соединен со вторым входом элемента ИЛИ, четвертый и пятый информационные выходы модуля соединены соответственно с четвертым и пятым информационными входами блока анализа, четвертый и пятый информационные выходы которого соединены соответственно с четвертым и пятым информационными выходами модуля, третий - седьмой управляющие входы модуля соединены соответственно с первым - пятым входами блока выбора алгоритма функционирования, четвертый управляющий вход модуля соединен с третьим управляющим входом блока анализа, первый и второй выходы блока выбора алгоритма функционирования соединены соответственно с первым и вторым управляющими выходами модуля, второй информационный выход j-го модуля k-го столбца соединен со вторым информационным входом (j+1)-го модуля k-го столбца, третий информационный выход (j+1)-го модуля k-го столбца соединен с третьим информационным входом j-го модуля k-го столбца, четвертый информационный выход p-го модуля q-й строки соединен с четвертым информационным входом (p+1)-го модуля q-й строки, пятый информационный выход (p+1)-го модуля q-й строки соединен с пятым информационным входом p-го модуля q-й строки, первый управляющий выход первого модуля k-го столбца соединен с третьим управляющим входом модулей k-го столбца с первого по n-й, первый управляющий выход (j+1)-го модуля k-го столбца соединен с пятым управляющим входом j-го модуля k-го столбца, второй управляющий выход p-го модуля q-й строки соединен с шестым управляющим входом (p+1)-го модуля q-й стоки, второй управляющий выход p-го модуля s-й строки соединен с седьмым управляющим входом (p+1)-го модуля (s+1)-й строки. На шестой управляющий вход модулей первого столбца с первого по n-й, на пятый управляющий вход модулей n-й строки с первого по m-й, на седьмой управляющий вход модулей первой строки с первого по m-й и первого столбца со второго по n-й подается сигнал логического нуля. Сущность изобретения заключается в следующем. В распределенной системе из nxm модулей n-я строка и m-й столбец являются резервными. Каждый модуль (i, j) (где - номер строки, - номер столбца матрицы, содержащих модуль) может выполнять как собственный алгоритм функционирования, так и алгоритм функционирования трех соседних модулей - верхнего (i-1, j)-го, левого (i, j-1)-го и левого по диагонали (i-1, j-1)-го, в случае их отказов или изменения алгоритмов функционирования. Местоположение модуля (i, j) в матрице определяется его физическим адресом (ФА). Наряду с ФА для идентификации модулей системы используется так называемый логический адрес (ЛА). Модуль (i, j) имеет ЛА (i", j"), если он реализует алгоритм модуля с ФА (i", j"). При отсутствии отказов резервные модули не задействованы (они не имеют собственных алгоритмов функционирования), ФА и ЛА всех модулей совпадают. При возникновении отказов отдельных модулей распределенная система перестраивается путем изменения алгоритмов функционирования модулей по следующим правилам:в каждом столбце самому нижнему оказавшему модулю присваивается статус "вертикальный отказ", а всем остальным отказавшим модулям - "горизонтальный отказ";
если в любой строке имеется более одного модуля со статусом "горизонтальный отказ", то фиксируется фатальный отказ (ФО) распределенной системы -"перестройка невозможна";
в каждом столбце всем модулям ниже модуля со статусом "вертикальный отказ" (в том числе и резервным) присваивается статус "вертикальная перестройка";
в каждой строке всем модулям правее модуля со статусов "горизонтальный отказ" (в том числе и резервным) присваивается статус "горизонтальная перестройка";
ЛА модулей со статусом "горизонтальная перестройка" приобретают значение ФА модулей, стоящих от них слева;
ЛА модулей со статусом "вертикальная перестройка" приобретают значение ФА модулей, стоящих от них сверху;
ЛА всех отказавших модулей полагается нулевым. Показанные выше шаги последовательного выполнения перестройки на самом деле выполняются параллельно при помощи комбинационных схем. После перестройки, если модуль (i, j) не отказал, то он может выполнять собственный алгоритм, либо алгоритм одного из трех соседей: верхнего (i-1, j)-го, верхнего по диагонали (i-1, j-1)-го или левого (i, j-1)-го. Если алгоритм модуля i, j) не выполняется им самим, то он выполняется одним из его трех соседей: правым (i, j+1)-м, правым по диагонали (i+1, j+1)-м или нижним (i+1, j)-м. При возникновении новых отказов перестройка распределенной системы осуществляется заново, и так до тех пор, по не произойдет фатальный отказ распределенной системы. Взаимодействие модулей распределенной системы осуществляется путем обмена сообщениями. Сообщения между модулями передаются по четырем направлениям и содержат адрес программы, которую должен выполнить модуль-приемник, ФА модуля-приемника и специальный бит обхода (первоначально устанавливаемый в нуль). При отсутствии в распределенной системе отказов сообщение последовательно передается от модуля-источника в модуль с ФА, равным адресу в сообщении (АС). Этот модуль будет являться модулем-приемником. Передача сообщения сначала осуществляется по столбцу (по вертикали). В ходе передачи каждый транзитный модуль сравнивает свой ЛА с АС. Если они равны, то данный модуль является модулем-приемником и сообщение передано. Иначе, модуль сравнивает вертикальную составляющую своего ФА (т. е. номер соответствующего ему столбца) с вертикальной составляющей АС. Если они не равны, он передает сообщение в соседний по вертикали модуль в сторону уменьшения разницы между вертикальными составляющими адресов. При совпадении вертикальных составляющих АС и ФА модуля направление передачи сообщения меняется на горизонтальное и сообщение аналогичным образом (путем сравнения горизонтальных составляющих ФА модулей и АС) передается по горизонтали в модуль-приемник. При наличии в распределенной системе отказавших модулей сообщение так же, как и при отсутствии отказов передается сначала в модуль с ФА, равным АС. При этом, так как ЛА модулей могут не совпадать с их ФА, то сообщение может быть принято модулем-приемником до достижения сообщением модуля с ФА, равным АС. Если ЛА модуля с ФА, равным АС, равен АС, то он как и при отсутствии отказов является модулем-приемником. Если они не равны, то, следовательно, алгоритм данного модуля выполняется одним из его трех соседей: правым (i, j+1)-м, правым по диагонали (i+1, j+1)-м или нижним (i+1, j)-м, и модуль-приемник следует искать среди них. Для идентификации этапа поиска модуля-приемника бит обхода в сообщении устанавливается в единицу. Затем сообщение последовательно передается в модуль (i, j+1), из него - в модуль (i+1, j+1) и из последнего - в модуль (i+1, j). При этом каждый модуль сравнивает слой ЛА с АС и в случае их совпадения прекращает передачу сообщения - модуль приемник найден. В случае несовпадения адресов даже в модуле (i+1, j) генерируется фатальный отказ распределенной системы - перестройка системы невозможна. Дополнительные (со второго по четвертый) блоки памяти используются для хранения копий программ (микропрограмм) соседних модулей. Введение блока выбора алгоритма функционирования и мультиплексора выбора программ необходимо для изменения алгоритма функционирования модуля при отказе или реконфигурации соседних модулей. Введение элемента ИЛИ необходимо для сборки сигналов о фатальном (неустранимом) отказе системы. Сущность изобретения поясняется чертежами, где на фиг. 1 представлена функциональная схема i-го модуля распределенной системы для программного управления; на фиг. 2 - функциональная схема блока выбора алгоритма функционирования; на фиг. 3 - функциональная схема буферного запоминающего блока сообщений; на фиг. 4 - функциональная схема блока анализа; на фиг. 5 - функциональная схема блока выбора направления передачи информации; на фиг. 6 - функциональная схема блока памяти константы; на фиг. 7 - функциональная схема блока синхронизации ; на фиг. 8 - функциональная схема блока памяти сообщений; на фиг. 9 - формат команды обработки (а) и формат операционной части команды обмена (б); на фиг. 10 - структурная схема распределенной системы; на фиг. 11 - процесс пошагового выполнения перестройки распределенной системы; на фиг. 12 - процесс передачи сообщения. i-й модуль распределенной системы для программного управления (фиг. 1) содержит первый 1, второй 12, третий 13 и четвертый 14 блоки памяти программ, блок 16 выбора алгоритма функционирования, буферный запоминающий блок 2 сообщений, блок 3 анализа, коммутатор 4 адреса, регистр 5 адреса, регистр 6 команд, мультиплексор 7 логических условий, мультиплексор 15 выбора программ, блок 8 синхронизации, первый блок элементов И 9, второй блок элементов И 10, элемент И 11, элемент ИЛИ 17, первый 18, второй 19, третий 20, четвертый 21 и пятый 22 информационные входы, первый 23, второй 24, третий 25, четвертый 26, пятый 27, шестой 28 и седьмой 29 управляющие входы, вход 30 логических условий, первый 31, второй 32, третий 33, четвертый 34 и пятый 35 информационные выходы, первый 36, второй 37 и третий 38 управляющие выходы, причем первый управляющий вход 23 модуля соединен с первым входом блока 8 синхронизации, первый выход которого соединен с синхронизирующим входом регистра 5 адреса, выход которого соединен с входами первого 1, второго 12, третьего 13 и четвертого 14 блоков памяти программ, синхронизирующий вход регистра 6 команд соединен со вторым выходом блока 8 синхронизации, выход 61 поля проверяемых логических условий регистра 6 команд соединен с первым информационым входом мультиплексора 7 логических условий, выход 62 модифицируемого разряда адреса регистра 6 команд соединен со вторым информационным входом мультиплексора 7 логических условий, выход которого соединен со входом модифицируемого разряда адреса первого информационного входа коммутатора 4 адреса, выход которого соединен с информационным входом регистра 5 адреса, вход 30 логических условий модуля соединен с управляющим входом мультиплексора 7 логических условий, выход 63 поля немодифицируемых разрядов адреса регистра 6 команд соединен со входами немодифицируемых разрядов адреса первого информационного входа коммутатора 4 адреса, выход 64операционного поля регистра 6 команд соединен с информационным входом блока 9 элементов И, выход которого соединен с первым информационным выходом 31 модуля, второй управляющий вход 24 модуля соединен с третьим входом блока 8 синхронизации, информационный выход буферного запоминающего блока 2 сообщений соединен со вторым информационным входом коммутатора 4 адреса, выход операционного поля 64 регистра 6 команд соединен с информационным входом второго блока 10 элементов И, выход которого и выход элемента И 11 соединены с первым информационным входом блока 3 анализа, первый управляющий выход которого соединен с первым управляющим входом буферного запоминающего блока 2 сообщений, управляющий выход которого соединен с четвертым входом блока 8 синхронизации, третий выход которого соединен с первым входом элемента И 11, выход поля 65передачи управления регистра 6 команд соединен с инверсным управляющим входом блока 9 элементов И, прямым управляющим входом блока 10 элементов И и вторым входом элемента И 11, первый информационный выход блока 3 анализа соединен с первым информационным входом буферного запоминающего блока 2 сообщений, первый информационный вход 18 модуля соединен со вторым информационным входом буферного запоминающего блока 2 сообщений, второй 19, третий 20, четвертый 21 и пятый 22 информационные входы модуля соединены соответственно со вторым - пятым информационными входами блока 3 анализа, второй - пятый информационные выходы которого соединены соответственно со вторым 32, третьим 33, четвертым 34 и пятым 35 информационными выходами модуля, выходы блоков 1, 12, 13 и 14 памяти программ соединены соответственно с первым - четвертым информационными входами мультиплексора 15 выбора программ, выход которого соединен с информационным входом регистра 6 команд, выход поля 66 конца программы регистра 6 команд соединен с прямым и инверсным управляющими входами коммутатора 4 адреса, вторым входом блока 8 синхронизации и вторым управляющим входом буферного запоминающего блока 2 сообщений, четвертый и пятый выходы блока 16 выбора алгоритма функционирования соединены с первым и вторым управляющими входами мультиплексора 15 выбора программ соответственно и с первым и вторым управляющими входами блока 3 анализа соответственно, третий выход блока 16 выбора алгоритма функционирования соединен с первым входом элемента ИЛИ 17, выход которого соединен с третьим управляющим выходом 38 модуля, второй управляющий выход блока 3 анализа соединен со вторым входом элемента ИЛИ 17, третий 25, четвертый 26, пятый 27, шестой 28 и седьмой 29 управляющие входы модуля соединены соответственно с первым - пятым входами блока 16 выбора алгоритма функционирования, четвертый управляющий вход 26 модуля соединен с третьим управляющим входом блока 3 анализа, первый и второй выходы блока 16 выбора алгоритма функционирования соединены соответственно с первым 36 и вторым 37 управляющими выходами модуля, второй информационный выход 32 j-го модуля k-го столбца соединен со вторым информационным входом 19 (j+1)-го модуля k-го столбца, третий информационный выход 33 (j+1)-го модуля k-го столбца соединен с третьим информационным входом 20 j-го модуля k-го столбца, четвертый информационный выход 34 p-го модуля q-й строки соединен с четвертым информационным входом 21 (p+1)-го модуля q-й строки, пятый информационный выход 35 (p+1)-го модуля q-й строки соединен с пятым информационным входом 22 p-го модуля q-й строки, первый управляющий выход 36 первого модуля k-го столбца соединен с третьим управляющим входом 25 модулей k-го столбца с первого по n-й, первый управляющий выход 36 (j+1)-го модуля k-столбца соединен с пятым управляющим входом 27 j-го модуля k-го столбца, второй управляющий выход 37 p-го модуля q-й строки соединен с шестым управляющим входом 28 (p+1)-го модуля q-й строки, второй управляющий выход 37 p-го модуля s-й строки соединен с седьмым управляющим входом 29 (p+1)-го модуля (s+1)-й строки. Блок 16 выбора алгоритма функционирования (фиг. 2) содержит первый 39, второй 40 и третий 41 элементы И, первый 42 и второй 43 элементы ИЛИ, элемент И-ИЛИ 44, причем выход элемента И-ИЛИ 44 соединен с пятым выходом блока, первый вход блока соединен с прямым входом элемента И 39, выход которого соединен со вторыми входами первой и второй групп входов элемента И-ИЛИ 44 и четвертым выходом блока, второй и третий входы блока соединены с первым и вторым входами элемента ИЛИ 42 соответственно и с первым и вторым входами элемента И 40 соответственно, выход элемента ИЛИ 42 соединен с инверсным входом первого элемента И 39 и первым выходом блока, четвертый вход которого соединен со вторым входом элемента ИЛИ 43, вторым входом элемента И-ИЛИ 44, первый вход второй группы входов которого соединен с пятым входом блока, выход элемента И 40 соединен с первым входом элемента ИЛИ 43 и первым входом элемента И 41, выход которого соединен с третьим выходом блока, выход элемента ИЛИ 43 соединен со вторым выходом блока. Буферный запоминающий блок 2 сообщений (фиг. 3) содержит коммутатор 45, демультиплексор 46, блок регистров 47.1 - 47.l (где l - максимальная глубина очереди), группу блоков элементов ИЛИ 48.1 - (48.l-1), первую группу элементов И 49.1 - 49.l, вторую группу элементов И 50.1 - 50.l, группу элементов ИЛИ 51.1 - 51.l, элемент ИЛИ 52, элемент И 53, одновибратор 54, причем выход одновибратора 54 соединен с инверсным управляющим входом демультиплексора 46 и первыми входами элементов ИЛИ 51.1 - 51.l, выходы которых соединены с синхронизирующими входами регистров 47.1 - 47.l соответственно, первый управляющий вход блока соединен с прямым и инверсным управляющими входами коммутатора 45, выход которого соединен с информационным входом демультиплексора 46, первый,..., (l-1)-й выходы которого соединены с первыми входами блоков элементов ИЛИ 48.1 - (48.l-1) соответственно, выходы которых соединены с информационными входами регистров 47.1 - (47.l-1) соответственно, l-й выход демультиплексора 46 соединен с информационным входом регистра 47. l, второй управляющий вход блока соединен со входом одновибратора 54, первый информационный вход блока соединен с первым информационным входом коммутатора 45 и первым входом элемента ИЛИ 52, инверсные выходы блока регистров 47.1 - 47.l соединены со входами элементов И 49.1 - 49.l соответственно, выходы которых соединены с первыми входами элементов И 50.1 - 50.l соответственно, адресным входом демультиплексора 46 и входами элемента И 53, выход которого соединен с управляющим выходом блока, второй информационный вход которого соединен со вторым информационным входом коммутатора 45 и вторым входом элемента ИЛИ 52, выход которого соединен со вторыми входами элементов И 50.1 - 50.l, выходы которых соединены со вторыми входами элементов ИЛИ 51.1 - 51.l соответственно, прямые выходы регистров 47.2 - 47.l соединены со вторыми входами блоков элементов ИЛИ 48.1 - (48.l-1) соответственно, прямой выход регистра 47.1 соединен с информационным выходом блока. Блок 3 анализа (фиг. 4) содержит группу 55.1 - 55.5 блоков памяти сообщений, мультиплексор 56, блок 57 выбора направления передачи информации, блок 58 памяти константы, триггер 59, буферный регистр 60 с полями: операционным 60.1, вертикального адреса 60.2, горизонтального адреса 60.3 и бита обхода 60.4, блок 61.1 элементов И, блок 61.2 элементом И, выходной демультиплексор 62, дешифратор 63, счетчик 64, распределитель импульсов 65, элемент И 66, элемент ИЛИ 67, причем выход элемента ИЛИ 67 соединен с входом установки (S-входом) триггера 59 и инверсным входом элемента И 66, выход которого соединен с входом сброса (R-входом) триггера 59, прямой выход триггера 59 соединен с управляющим входом распределителя импульсов 65, четвертый выход которого соединен со счетным входом счетчика 64, выходы счетчика 64 соединены со входами дешифратора 63 и управляющими входами мультиплексора 56, выход которого соединен с информационным входом буферного регистра 60, синхронизирующий вход которого соединен со вторым выходом распределителя импульсов 65, первый - третий входы блока 58 памяти константы соединены соответственно с первым - третьим управляющими входами блока, первый и второй выходы блока 58 памяти константы соединены соответственно с первым и четвертым входами блока 57 выбора направления передачи информации, второй и третий выходы которого соединены соответственно с первым и вторым управляющими входами выходного демультиплексора 62, второй, третий и пятый входы блока 57 выбора направления передачи информации соединены соответственно с выходами 602, 603 и 604 буферного регистра 60, выход 601 операционного поля буферного регистра 60 и третий выход распределителя импульсов 65 соединены с информационными входами блоков 61.1 и 61.2 элементов И, выход блока 61.2 элементов И соединен с первым информационным выходом блока, а выход блока 61.1 и пятый выход блока 57 выбора направления передачи информации подключены к информационному входу демультиплексора 62, выходы 602 и 603 буферного регистра 60 соединены с информационным входом блока 61.1 элементов И, первый - четвертый выходы демультиплексора 62 соединены соответственно со вторым - пятым информационными выходами блока, первый - пятый информационные входы которого соединены с информационными и первыми управляющими входами блоков 55.1 - 55.5 памяти сообщений соответственно, информационные выходы которых соединены с соответствующими информационными входами мультиплексора 56, управляющие выходы блоков 55.1 - 55.5 памяти сообщений соединены со входами элемента ИЛИ 67, третий выход распределителя импульсов 65 соединен с прямым входом элемента И 66, первый выход блока 57 выбора направления передачи информации соединен с управляющим входом блока 61 элементов И и первым управляющим выходом блока, второй управляющий выход которого соединен с четвертым выходом блока 57 выбора направления передачи информации, первый выход распределителя импульсов 65 соединен с тактовыми входами блоков 55.1 - 55.5 памяти сообщений, выходы дешифратора 63 с 1-го по 5-й соединены со вторыми управляющими входами блоков 55.1 - 55.5 памяти сообщений соответственно. Блок 57 выбора направления передачи информации (фиг. 5) содержит первую 68, вторую 69 и третью 70 схемы сравнения, мультиплексор 71, шифратор 72, первый 73, второй 74, третий 75, четвертый 76, пятый 77 и шестой 78 элементы И, первый элемент ИЛИ 79, второй элемент ИЛИ 80, причем выход элемента ИЛИ 80 соединен с пятым выходом блока, пятый вход которого соединен со вторым входом элемента ИЛИ 79 и первым входом элемента ИЛИ 80, выход элемента ИЛИ 79 соединен с управляющим входом мультиплексора 71 и третьим входом шестого элемента И 78, выход которого соединен с четвертым выходом блока, первый вход блока соединен с первым входом схемы 68 сравнения, выход "равно" которой соединен с первым выходом блока, второй и третий входы которого соединены соответственно с первыми входами схем 69 и 70 сравнения, четвертый вход блока соединен со вторыми входами схем 69 и 70 сравнения, выход "Больше" схемы 69 сравнения соединен с первым входом первой группы информационных входов мультиплексора 71, выход "Меньше" схемы 69 сравнения соединен со вторым входом первой группы информационных входов мультиплексора 71 и первыми входами элементов И 73 и 74, выходы которых соединены соответственно со вторым и третьим входами второй группы информационных входов мультиплексора 71, выход "Равно" схемы 69 сравнения соединен со вторыми входами элементов И 75, 76 и 77, выход "Больше" схемы 70 равнения соединен с первым входом элемента И 75, выход которого соединен с третьим входом первой группы информационных входов мультиплексора 71, выходы "Меньше" и "Равно" схемы 70 сравнения соединены со вторыми входами элементов И 73 и 74 соответственно и первыми входами элементов И 76 и 77 соответственно, выход элемента И 76 соединен с четвертым входом первой группы информационных входов мультиплексора 71 и вторым входом элемента И 78, первый вход которого соединен с выходом "Не равно" схемы 68 сравнения, выход элемента И 77 соединен с первым входом второй группы информационных входов мультиплексора 71, вторым входом элемента ИЛИ 80 и первым входом элемента ИЛИ 79, первый - четвертый выходы мультиплексора 71 соединены соответственно с первым - четвертым входами шифратора 72, первый и второй выходы которого соединены соответственно со вторым и третьим выходами блока 57 выбора направления передачи информации, второй вход схемы 68 сравнения подключен ко второму и третьему входам блока. Блок 58 памяти константы (фиг. 6) содержит блок 81 хранения физического адреса, группу блоков 82.1 - 82.3 хранения физического адреса, мультиплексор 83, выход которого соединен с первым выходом блока, первый - третий входы которого соединены с первым - третьим адресными входами мультиплексора 83 соответственно, второй - четвертый информационные входы которого соединены с выходами блоков 82.1 - 82.3 группы блоков хранения физического адреса соответственно, выход блока 81 хранения физического адреса соединен с первым информационным входом мультиплексора 83 и вторым выходом блока, на пятом - восьмом информационных входах мультиплексора 83 постоянно присутствует потенциал логического нуля. Блок 8 синхронизации (фиг. 7) содержит триггер 84 запуска, генератор 85 тактовых импульсов, счетчик 86, дешифратор 87, элементы И 88 и ИЛИ 89, причем первый вход блока соединен с S-входом триггера 84, выход которого соединен со входом генератора 85 тактовых импульсов, выход которого соединен с инкрементирующим входом счетчика 86 и управляющим входом дешифратора 87, первый и второй выходы счетчика 86 соединены соответственно с первым и вторым информационными входами дешифратора 87, первый - третий выходы которого соединены с первым - третьим выходами блока, второй и четвертый входы блока соединены соответственно с первым и вторым входами элемента И 88, выход которого соединен со вторым входом элемента ИЛИ 89, третий вход блока соединен с первым входом элемента ИЛИ 89, выход которого соединен с R-входом триггера 84. Первый 55.1 - пятый 55.5 блоки памяти сообщений (фиг. 8) содержат блок регистров 90.1 - 90. K (где K - максимальная глубина очереди сообщений), группу блоков элементов ИЛИ 91.1 - 91.(K-1), первый блок элементов И 92.1 - 92. K, второй блок элементов И 93.1 - 93.K, блок элементов ИЛИ 94.1 - 94.K, демультиплексор 95, элемент И 96, элемент И-НЕ 97, причем тактовый и второй управляющий входы блока соединены с первым и вторым входами элемента И 96 соответственно, выход которого соединен со вторыми входами элементов ИЛИ 94.1 - 94.K и инверсным управляющим входом демультиплексора 95, первый выход которого соединен с информационным входом регистра 90.K. Второй - K-й выходы демультиплексора 95 соединены со вторыми входами блоков элементов ИЛИ 91. (K-1) - 91.1 соответственно, выходы которых соединены с информационными входами регистров 90.(K-1) - 90.1 соответственно. Инверсные выходы регистров 90.1 - 90. K соединены со входами элементов И 92.1 - 92.K соответственно, выходы которых соединены с адресным входом демультиплексора 95 и входами элемента И-НЕ 97, выход которого соединен с управляющим выходом блока, информационный выход которого соединен с прямым выходом регистра 90.1. Прямые выходы регистров 90.K - 90.2 соединены с первым входами блоков элементов ИЛИ 91. (K-1) - 91.1 соответственно. Первый управляющий вход блока соединен со вторыми входами элементов И 93.1 - 93.K, первый входы которых соединены с выходами элементов И 92.1 - 92.K соответственно. Выходы элементов И 93.1 - 93. K соединены с первыми входами элементов ИЛИ 94.1 - 94.K соответственно, выходы которых соединены со входами синхронизации регистров 90.1 - 90.K соответственно. Информационные входы блока соединены с информационными входами демультиплексора 95. Рассмотрим процесс функционирования распределенной системы. Организация процесса управления осуществляется внешними по отношению к системе средствами управления и контроля (диспетчером). Диспетчером обеспечиваются, во-первых, как первоначальный пуск системы, так и пуски системы после выполнения перестроек; во-вторых, слежение за правильностью функционирования блоков и элементов 1, 2, 4 - 15 и их связей, отвечающих за формирование управляющих сигналов, передаваемых на объект управления, и фиксация неисправных модулей, в которых нарушено правильное функционирование указанных блоков и элементов, с помощью триггеров отказа для каждого из модулей, в-третьих, останов системы как после исполнения программ управления, так и после возникновения неисправностей в модулях. Система осуществляет программное управление как при отсутствии отказов модулей, так и при их наличии, и, кроме этого, перестройку (переназначением выполняемого алгоритма управления и логического адреса для каждого из модулей) после останова, вызванного отказами отдельных модулей. При реализации программного управления взаимодействие между исправными модулями в системе с отказавшими модулями осуществляется при исправной работе блоков 3, 16 и элемента ИЛИ 17, отвечающих за передачу сообщений между модулями, всех модулей системы. Так как система состоит из однотипных модулей, ее работу рассмотрим на примере функционирования отдельного модуля, например модуля с физическим адресом (i, j), причем работу этого модуля будем рассматривать во взаимосвязи с другими модулями системы. Первоначально элементы памяти модуля находятся в нулевом состоянии (за исключением разряда 66 регистра 6 команд, определяющего признак конца программы управления). Работа модуля начинается при подаче на информационный вход 18 (фиг. 1) кода операции, определяющего адрес первой команды программ управления. Этот код подается от диспетчера. Одновременно на управляющий вход 23 модуля поступает единичный сигнал запуска. Далее этот сигнал передается на первый вход блока 8 синхронизации. Сигнал с первого входа блока 8 синхронизации (фиг. 7) поступает на S-вход триггера 84, переводит этот триггер в единичное состояние и тем самым запускает генератор 85. Импульсы с выхода генератора 85 начинают поступать на инкрементирующий вход счетчика 86, а также на управляющий вход дешифратора 87. На выходе дешифратора 87 (а соответственно и блока 8 синхронизации) начинается формирование трех импульсных последовательностей, сдвинутых друг относительно друга на треть периода. Код операции с информационного входа 18 модуля (фиг. 1) поступает через коммутатор 45 буферного запоминающего блока 2 сообщений (фиг. 3) на информационный вход демультиплексора 46. Так как регистры 47.1 - 47.l находятся в нулевом состоянии, на выходах элементов И 49.1 - 49.l формируются сигналы логической единицы. Эти сигналы, поступая на адресный вход демультиплексора 46, разрешают запись информации в первый регистр 47.1 через блок элементов ИЛИ 48.1. Вместе с адресом программы (кодом операции) на информационный вход 18 модуля подается управляющий импульс. Этот импульс через элемент ИЛИ 52, элемент И 50.1 и элемент ИЛИ 51.1 поступает на синхронизирующий вход регистра 47.1 и производит запись в него поступившего кода операции. Состояние регистра 47.1 становится отличным от нулевого и на выходе элемента И 49.1 появляется сигнал логического нуля, который в объединении с единичными сигналами с выходов элементов 49.2 - 49.l предопределяет запись очередного кода операции во второй регистр 47.2 буферного запоминающего блока 2 сообщений. Сигналы с выходов элементов И 49.1 - 49.l также поступают на входы элемента И 53; на выходе элемента 53 формируется сигнал логического нуля, определяющий наличие информации в блоке 2. Первый тактовый импульс с первого выхода блока 8 синхронизации (фиг. 1) поступает на синхронизирующий вход регистра 5 адреса и осуществляет запись в него информации с информационного выхода буферного запоминающего блока 2 сообщений (с выхода регистра 47.1) через коммутатор 4 адреса. С выхода регистра 5 адрес команды поступает на входы первого 1, второго 12, третьего 13 и четвертого 14 блоков памяти программ и обеспечивает считывание первой команды программы управления. Считывание производится как из блока 1, так и из блоков 12, 13 и 14, однако передача команд на информационный вход регистра 6 осуществляется только из одного блока. Выбор блока памяти программ, а следовательно, и назначение алгоритма функционирования модуля осуществляется путем настройки мультиплексора 15. Настройка выполняется блоком 16 выбора алгоритма функционирования. Блок 16 выбора алгоритма функционирования (фиг. 2) работает следующим образом. На второй вход блока 16 с управляющего входа 26 модуля поступает сигнал от диспетчера с триггера отказа, соответствующего данному модулю. На первый, третий, четвертый и пятый входы блока 16 с управляющих входов 25, 27, 28 и 29 модуля соответственно поступают также сигналы от других модулей. Назначение сигналов на входах блока 16 описывается в табл. 1. Комбинационная схема блока 16, состоящая из элементов И 39 - 41, ИЛИ 42, 43 и И-ИЛИ 44, на основе сигналов на первом - пятом входах определяет согласно таблице истинности (табл. 3) состояния первого - пятого выходов блока 16, назначение которых описывается в табл. 2. Сигналы с первого и второго выходов блока 16 через управляющие выходы 36 и 37 соответственно поступают в другие модули. Сигнал с третьего выхода блока 16 поступает через элемент ИЛИ 17 и управляющий выход 38 модуля диспетчеру. Единичное его значение определяет невозможность перестройки распределенной системы - фатальный отказ. Сигналы с четвертого и пятого выходов блока 16 определяют алгоритм, по которому будет функционировать модуль (табл. 4). В случае если отказавшие модули отсутствуют (фиг. 10) или имеются, но не требуют перестройки текущего модуля на реализацию другого алгоритма (например фиг. 11, модуль с ФА (2, 3)), команды соответствующей программы считываются из блока 1. В противном случае текущий модуль переходит к выполнению программы, размещенной либо в блоке 12 (например фиг. 11, модуль с ФА (3, 4)), либо 13 (например фиг. 11, модуль с ФА (5, 1)), либо 14 (например фиг. 11, модуль с ФА (5, 4)). Сигналы с четвертого и пятого выходов блока 16 выбора алгоритма функционирования поступают на адресные входы мультиплексора 15, что обеспечивает передачу на его выход команды из соответствующего блока памяти программ. Рассмотрим процесс обработки команды. Переданная команда по тактовому импульсу со второго выхода блока 8 синхронизации записывается в регистр 6 команд (формат считанной команды представлен на фиг. 9а). В зависимости от содержимого полей считанной команды, модуль может функционировать одним из следующих способов. 1. Предположим, в поле 65 регистра 6 команд признак передачи управления отсутствует. Операционная часть команды с поля 64 регистра 6 команд поступает через блок элементов И 9 на информационный выход 31 модуля для управления. Поля 61б 62 и 63 регистра 6 команд формируют адрес очередной команды с использованием мультиплексора 7 логических условий. Адрес следующей команды, получаемый объединением значения младшего (модифицируемого) разряда адреса с выхода мультиплексора 7 и немодифицированных разрядов с выхода 63 регистра 6, через коммутатор 4 поступает на информационный вход регистра 5 и фиксируется в данном регистре с приходом следующего импульса с первого выхода блока 8. После записи этого адреса в регистр 5 осуществляется переход к считыванию и выполнению очередной команды программы управления. Считываемая команда выполняется аналогично рассмотренному выше. С выдачей последней команды программы управления в поле 66 регистра 6 команд заносится единичная метка - признак окончания программы. Единичный сигнал с выхода 66 регистра 6 поступает на второй управляющий вход блока 2 и передним фронтом возбуждает на выходе одновибратора 54 импульс. Этот импульс через элементы ИЛИ 51.1 - 51.l подается на синхронизирующие входы регистров 47.1 - 47.l и обеспечивает сдвиг очереди сообщений. В регистр 47.1 поступает адрес очередной программы. Одновременно сигнал выхода 66 регистра 6 поступает на управляющие входы коммутатора 4 и коммутирует его выход с информационным выходом блока 2. Кроме того этот сигнал поступает на второй вход блока 8 и открывает элемент И 88. Если выполнялась последняя программа, то после сдвига информации в блоке 2 очередь поступивших на обслуживание запросов становится пустой (нулевое состояние регистров 47.1 - 47.l). На выходах элементов И 49.1 - 49.l образуются сигналы логической единицы. Эти сигналы формируют единичный сигнал на выходе элемента И 53, который с выхода блока 2 (фиг. 1) поступает на четвертый вход блока 8 синхронизации (фиг. 7). На выходе элемента И 88 формируется сигнал логической единицы, который через элемент ИЛИ 89 устанавливает триггер 84 в нулевое состояние. Нулевой сигнал с прямого выхода триггера 84 выключает генератор 85 и модуль завершает свою работу. Работа модуля может также завершаться при поступлении на вход 24 сигнала останова от диспетчера, выявившего отказы в системе. Диспетчер инициализирует работу только работоспособных модулей после задержки, необходимой для формирования сигналов на выходах блока 16 и элемента ИЛИ 17. 2. Если в поле 65 считанной команды присутствует единичный признак передачи управления, то эта команда является командой обмена (передачи управления) и на выходе 64 операционного поля регистра 6 формируется сообщение K. Формат операционной части команды обмена представлен на фиг. 9б. Сообщение K имеет вид
K = ФAпрБобAк,
где
ФАпр - физический адрес модуля-приемника информации;
Боб - бит обхода (первоначально равный нулю);
Ак - адрес программы, которую должен выполнить модуль - приемник;
- знак конкатенации. В свою очередь
ФAпр=ФAстлбФAстр,
где
ФАстлб - физический номер модуля в столбце (вертикальная составляющая адреса);
ФАстр - физический номер модуля в строке (горизонтальная составляющая адреса). Единичная метка с выхода 65 регистра 6 поступает на управляющий вход блока элементов И 10 и второй вход элемента И 11 (фиг. 1) и разрешает тем самым прохождение информации с поля 64 регистра команд через блок элементов И 10 на первый информационный вход блока 3 анализа с целью последующей выдачи на один из выходов 32, ..., 35 (фиг. 4) (работа блока 3 анализа рассмотрена ниже). Вместе с выдаваемым сообщением с выхода блока 8 синхронизации через элемент И 11 (фиг. 1) поступает тактовый импульс. Обмен командами в распределенной системе для программного управления осуществляется (фиг. 10) в четырех направлениях. По каждому из направлений в блоке 3 анализа (фиг. 4) имеется блок памяти сообщений, причем блок 55.1 памяти сообщений предназначен для хранения сообщений от собственного модуля. Рассмотрим процесс приема и выдачи сообщений. Допустим, сообщение поступает на информационный вход блока 55.2 памяти сообщений. Предположим, что в текущий момент все регистры 90.1 - 90.K обнулены (фиг. 8). На выходах элементов И 92.1 - 92.K находятся единичные сигналы. Эти сигналы, поступая на вход элемента И-НЕ 97, формируют на его выходе сигнал логического нуля (этот сигнал индицирует отсутствие сообщений в блоке 55.2). Кроме того, рассматриваемые сигналы подаются на адресный вход демультиплексора 95 и коммутируют его информационный вход с K-м выходом. Эти же сигналы открывают элементы 93.1 - 93.K. Сообщение с информационного входа блока через демультиплексор 95 и блок элементов ИЛИ 91.1 передается и фиксируется на информационном входе регистра 90.1. Одновременно на первом управляющем входе блока появляется тактовый импульс, сопровождающий данное сообщение. Этот импульс через открытые элементы И 93.1 - 93.K и элементы ИЛИ 94.1 - 94.K поступает на входы синхронизации регистров 90.1 - 90.K и задним фронтом производит запись поступающего сообщения в регистр 90.1 (состояние остальных регистров при этом не изменяется, поскольку на первом - (K-1) выходах демультиплексора 95 находятся нулевые коды). На выходе элемента 92.1 появляется сигнал логического нуля. Сигналы с выходов элементов И 92.1 - 92.K поступают на вход элемента И-НЕ 97, формируя на его выходе сигнал логической единицы, индицирующий наличие сообщения в блоке. Одновременно эти же сигналы подаются на адресный вход демультиплексора 95, коммутируют его информационный вход с (K-1)-м выходом и тем самым обеспечивают возможность записи последующего сообщения в регистр 90.2. Кроме того, нулевой сигнал с выхода элемента И 92.1 блокирует элемент И 93.1 и запрещает модификацию содержимого регистра 90.1. Таким образом на информационном выходе блока появляется поступившее сообщение, а на управляющий выход поступает единичный сигнал. Единичный сигнал с управляющего выхода блока 55.2 через элемент ИЛИ 67 (фиг. 4) устанавливает триггер 59 в единичное состояние и тем самым разрешает формирование тактовых импульсов на выходе распределителя импульсов 65 для синхронизации работы блока 3 анализа. Синхронизация работы блока 3 анализа происходит по четырем импульсным последовательностям. Цикл работы состоит из четырех фаз, каждая из которых начинается тактовым импульсом соответствующей импульсной последовательности. По первому импульсу с четвертого выхода распределителя 65 содержимое счетчика 64 увеличивается на единицу. Код с выхода счетчика 64 формирует унитарный код на выходе дешифратора 63 блока памяти сообщений 55.k, а также коммутирует выход мультиплексора 56 с его информационным входом, соответствующим блоку 55. k. Сообщение из этого блока через мультиплексор 56 передается на информационный вход регистра 60. Тактовый импульс со второго выхода распределителя 65 фиксирует считанное сообщение в регистре 60. После записи сообщения в регистр 60 осуществляется выбор направления дальнейшей передачи сообщения. Этот выбор определяется соотношением вертикальных и горизонтальных составляющих ФА и АС и выполняется блоком 57. ФА поступает на второй выход блока 58 с выхода блока 81 (фиг. 6). Если отказы в системе отсутствуют и на всех управляющих входах мультиплексора 83 присутствуют сигналы логического нуля, этот же адрес через мультиплексор 83 передается на первый выход блока 58. Выбор направления передачи информации осуществляется следующим образом. АС сравнивается с ЛА модуля. Сравнение ЛА модуля и АС производится схемой сравнения 68 блока 57 (фиг. 5). Если адреса равны, то данный модуль является модулем-приемником и на выходе "Равно" схемы сравнения 68 появляется единичный сигнал, который разрешает прием сообщения текущим модулем. Если адреса не равны, то модуль должен передать сообщение другому модулю и единичный сигнал появится на выходе "Не равно" схемы сравнения 68, и поступит на первый вход элемента И 78. Одновременно схема 69 сравнивает вертикальные составляющие АС и ФА модуля, а схема 70 сравнивает горизонтальные составляющие этих адресов. По результатам сравнения на выходах блока формируются сигналы, определяющие способ передачи поступившего сообщения. Эти сигналы вырабатываются комбинационной схемой, состоящей из мультиплексора 71, шифратора 72, элементов И 73 - 78, элементов ИЛИ 79 и 80, в соответствии с табл. 5. Сигналы на втором и третьем выходах блока 57 кодируют направление передачи сообщения и, поступая затем на адресные входы демультиплексора 62, обеспечивают выдачу сообщения в соответствующем направлении. На четвертом выходе блока 57 формируется единичный сигнал при наличии ситуации фатального отказа (табл. 5), т.е. модуль-приемник не был найден ни в одном из модулей по причине сбоев при перестройке. Этот сигнал поступает далее диспетчеру, который выключает распределенную систему. На пятом выходе блока 57 формируется бит обхода (табл. 5). Если на первом выходе блока 57 присутствует сигнал логической единицы, то операционное поле сообщения через блок элементов И 61.2 передается на первый информационный выход блока анализа для последующей обработки текущим модулем. В противном случае блок элементов И 61.2 закрывается и сообщение с выходов регистра 60 передается на один из четырех выходов демультиплексора 62 через блок элементов И 61.1 (к передаваемому сообщению добавляется бит обхода). Одновременно с выбором направления передачи считанного сообщения производится сдвиг информации в выбранном блоке памяти сообщений (в нашем примере - в блоке 55.2). Сдвиг информации в блоках 55.1 - 55.5 синхронизируется импульсов с первого выхода распределителя 65. Следующий импульс с третьего выхода распределителя 65 синхронизирует прием выдаваемого сообщения либо текущим модулем, либо одним из модулей-соседей, поступая соответственно через блок 61.2 на первый информационный выход блока анализа, либо через блок 61.1 и демультиплексор 62 на второй, третий, четвертый или пятый информационные выходы блока анализа. Одновременно этот импульс поступает на прямой вход элемента И 66 и в случае отсутствия сообщений в блоках 55.1 - 55.5 проходит на вход сброса триггера 59 и тем самым выключает распределитель 65. Рассмотрим переназначение логических адресов модулей после останова, вызванного отказам модулей. Допустим отказавшим является модуль (i-1, j)-модуль находящийся сверху над текущим, а все остальные модули распределенной системы работоспособны. Исходя из логики работы системы текущий модуль должен принять на себя функции верхнего и в дальнейшем считывать команды из блока 13 (табл. 4). Диспетчер, обнаружив отказ, фиксирует его переводом триггера отказа модуля (i-1, j) в единичное состояние, осуществляет останов всех модулей системы и, тем самым, инициирует вычисление новых ЛА модулей. При этом на вход 26 модуля (i-1, j) поступает единичный сигнал о его отказе с триггера отказа. Указанный сигнал подается на третий управляющий вход блока 3 анализа, с которого передается на третий управляющий вход мультиплексора 83 (фиг. 6), коммутирует его выход с пятым, шестым, седьмым или восьмым информационными входами, на которых всегда находятся нулевые коды. Таким образом, на первом выходе блока 58 появляется нулевой логический адрес. Этот же сигнал проходит через элемент ИЛИ 42, поступает на выход 36 модуля и передается нижнему модулю (i, j). Поступая на вход 27 модуля (i, j), рассматриваемый сигнал обеспечивает образование на четвертом и пятом выходах блока 16 кода "10" (табл. 3). Этот код подается на управляющие входы мультиплексора 15 и коммутирует его выход с выходом блока 13 (табл. 4). Одновременно данный код передается на первый и второй управляющие входы блока 3 анализа и инициирует изменение ЛА модуля (i, j). Рассматриваемый код поступает на первый и второй входы блока 58 (фиг. 4, 6). Далее единичный сигнал со второго входа этого блока поступает на второй управляющий вход мультиплексора 83 и, учитывая, что на остальных управляющих входах мультиплексора 83 находятся сигналы логического нуля, коммутирует его выход с выходом блока 82.2. В данном блоке постоянно хранится код физического адреса вышестоящего модуля (i-1, j) (аналогично блоки 81.1 и 81.3 хранят коды ФА соответственно соседнего модуля слева (i, j-1) и соседнего модуля слева по диагонали (i-1, j-1). Теперь на первом выходе блока 58 появляется новый ЛА текущего модуля, равный (i-1, j). С другой стороны, сообщение, размещенное в регистре 60 отказавшего модуля (i-1, j) и имеющее АС (i-1, j), будет передано не на выход блока элементов И 61.2, а через блок 61.1 на выход демультиплексора 62 для дальнейшей передачи модулю с ЛА (i-1, j) (которым стал модуль с ФА (i, j)). Аналогично рассмотренному выше изменяются ЛА всех нижестоящих модулей, в том числе и резервного. После осуществления перестройки диспетчер запускает работоспособные модули, подавая единичный сигнал на входы 23. (Следует подчеркнуть, что перед запуском элементы памяти всех модулей приводятся в исходное состояние). Рассмотрим пример процесса обработки передаваемых сообщений в системе с отказавшими модулями. Пример передачи сообщения при наличии отказов в распределенной системе иллюстрируется на фиг. 12. Сообщение должно быть передано от модуля-источника (5, 2) в модуль-приемник с ЛА (2, 4). Поэтому оно передается в модуль (2, 4), который был бы модулем-приемником при отсутствии отказов в распределенной системе. Сначала из модуля (5, 2) сообщение передается по вертикали через модули (4, 2) и (3, 2) в модуль (2, 2) в котором вертикальные составляющие АС и ФА модуля сравняются. Затем сообщение передается по горизонтали через модуль (2, 3) в модуль (2, 4), ФА которого равен АС. Так как этот модуль отказал, то его ЛА равен (0,0) и не равен АС. Поэтому бит обхода устанавливается в единицу и сообщение передается первому из трех соседей ((2, 5), 3, 5) и (3, 4)) модуля (2, 4) - модулю (2, 5). Так как ЛА этого модуля равен (2, 4), то, следовательно, он выполняет алгоритм модуля (2, 4) и является истинным модулем-приемником сообщения. Модуль-приемник найден и передача сообщения прекращается. Таким образом, введение дополнительных технических средств позволяет существенно расширить область применения за счет сохранения работоспособности системы в целом при отказе ее модулей.
Класс G05B19/18 числовое управление, те автоматически действующие устройства, в частности станки, например при обеспечении производственно-технических условий, таких как выполнение позиционирования, перемещения или координируемых операций с помощью программируемых данных в числовой форме
Класс G06F9/28 увеличение операционной скорости, например с помощью нескольких устройств микроуправления, работающих параллельно