ТРЕХКАНАЛЬНАЯ ОТКАЗОУСТОЙЧИВАЯ СИСТЕМА НА БАЗЕ КОНФИГУРИРУЕМЫХ ПРОЦЕССОВ

Полезная модель относится к области вычислительной техники и может быть использована в резервированных отказоустойчивых системах на базе типовых конфигурируемых процессоров.
Наиболее близким аналогом предлагаемой полезной модели является трехканальная резервированная система (пат. РФ №1819116). Недостатком данной системы является то, что система позволяет работать с процессорными блоками со стационарной структурой, а использование типовых конфигурируемых процессоров позволяет адаптировать архитектуру процессорного блока к особенностям решаемой задачи.
Цель полезной модели - расширение функциональных возможностей трехканальной резервированной системы. Для достижения цели в известную систему вводится коммутатор переключения источников программ обработки информации, процессорные блоки выполнены на базе типовых конфигурируемых процессоров.
Сущность полезной модели состоит в следующем.
Информация, сформированная в пакеты, поочередно поступает в систему и обрабатывается в двух процессорных блоках вместо трех в мажоритарной структуре и результаты обработки сравниваются. В случае их несравнения принимается решение о неисправности (сбое или отказе) одного из процессорных блоков и пакет обрабатывается повторно во всех трех процессорных блоках, при этом результаты обработки пакета информации в трех процессорных блоках мажоритируются.
Например, при обработке пакетов А, В, С в первом цикле обработки в первом и втором процессорных блоках обрабатывается пакет А, а в третьем - пакет В. По окончании обработки пакетов результаты обработки пакета А из первого и второго процессорных блоков сравниваются, а из третьего процессорного блока заносятся в регистр хранения. Во втором цикле обработки в первом процессорном блоке повторно обрабатывается пакет В, а во втором и третьем - пакет С. По окончании обработки пакета В результат заносится в регистр хранения, а результаты обработки пакета С из второго и третьего процессорного блока сравниваются между собой.
Если пакет А был обработан в первом и втором процессорных блоках, причем коды результатов обработки из двух процессорных блоков совпали, то, не ожидая окончания обработки пакета В в третьем процессорном блоке, пакет В загружается для решения в первый процессорный блок. Это позволяет повысить производительность системы в случае, когда время обработки пакета В больше, чем время решения пакетов А и С.
Если во время первого цикла обработки информации встроенные средства контроля третьего процессорного блока зафиксировали его отказ или сбой, то во втором цикле пакет С не обрабатывается, а во всех трех процессорных блоках обрабатывается пакет В.
Система выходит из мажоритарного режима решения задач сразу после того, как все процессорные блоки выдали одинаковый результат решения одной задачи.
Система может работать в мажоритарном режиме также в случае, когда на ее выход поступает поток пакетов информации с меньшей интенсивностью, чем интенсивность обслуживания задач в системе.
Другими словами, если в системе находится один пакет, то он поступает на обслуживание сразу же во все три процессорных блока, не ожидая, пока поступит другой пакет.
При увеличении интенсивности потока пакетов информации их обслуживание производится по описанному алгоритму, что позволяет увеличить производительность системы.
Наряду с высокой производительностью система обладает способностью оперативно изменять алгоритмы обработки поступающей информации в соответствии с программами, загруженными из собственного ПЗУ программ или из внешних источников. Данные о необходимой программе поступают в систему вместе с обрабатываемой информацией. При этом процессорные блоки могут осуществлять обработку информации по различным программам.
Например, обработка пакета А в первом и втором процессорном блоке осуществляется в соответствии с одной программой, а пакет В в третьем процессорном блоке обрабатывается в соответствии с другой. При функционировании системы в мажоритарном режиме все процессорные блоки обрабатывают пакет по одной программе.
Трехканальная отказоустойчивая система (фиг.1) содержит процессорные блоки 1.1-1.3, построенные на базе типовых конфигурируемых процессоров, первую группу n регистров 2, регистр 3 результата задания команд, регистр 4 адреса микрокоманды, блок задания команд, выполненный в виде блока 5 памяти, триггер 6, мультиплексор 7, коммутатор сравнения 8, первый 9.1, второй 9.2 элементы сравнения, первый 10.1, второй 10.2, третий 10.3 коммутаторы первой группы коммутаторов, первый и второй счетчики адреса файлов конфигурации 46.1, 46.2, первый и второй конфигурационные ПЗУ 47.1, 47.2, коммутатор 48 для переключения источников файлов конфигурации процессоров, блок 11 приема, вторую группу коммутаторов 12.1-12.n-1, группу элементов И 13.1-13.n, элементы И 14-18, элементы ИЛИ 19, 20, группы n элементов ИЛИ 21, 22, элемент ИЛИ 23, выходы 24 квитирования, элемент И 25, дешифратор 26, седьмой и восьмой элементы И 45.1, 45.2, информационный вход 27 устройства, выход 28 неисправности процессорного блока, первый 29, второй 30 входы генератора импульсов, первый 31 и вторые 32 выходы процессорных блоков 1.1-1.3 соответственно, выход 33 занятости, вход 34 «Пуск», управляющие выходы 35 блока 5 памяти, выход 36 кода проверяемого логического устройства и выход 37 адреса очередной микрокоманды, информационная шина 38 мультиплексора 7, первый 49.1 и второй 49.2 выходы метки, адресные шины 50.1, 51.1, командные шины 50.2, 50.3 и 51.2, 51.3, выходы конфигурации 52.1 и 52.2, входы файлов конфигурации 53.1 и 53.2.
Блок 11 приема (фиг.2) содержит первый 39 и второй 40 регистры, схему сравнения 41, элемент И 42, элемент ИЛИ 43, формирователь импульсов в виде одновибратора 44.
Коммутатор 48 (фиг.3) переключения источников файлов конфигурации содержит пять коммутаторов 54.1, 54.2, 55.1, 55.2, 55.3. На первые входы данных коммутаторов 54.1 и 54.2 поступают файлы конфигурации из первого 47.1 и второго 47.2 конфигурационного ПЗУ соответственно. На вторые входы этих коммутаторов файлы конфигурации поступают от внешних источников. Если на командных шинах 50.2 и 51.2 установлен единичный сигнал, а на шинах 50.3 и 51.3 - нулевой файлы конфигурации загружаются из первого 47.1 и второго 47.2 конфигурационного ПЗУ, при наличии на командных шинах 50.3 и 51.3 единичного сигнала, а на шинах 50.2 и 51.2 - нулевой файлы конфигурации загружаются из внешнего источника. Выбор процессорного блока, в который загружается конфигурационный файл, осуществляется по управляющим сигналам с входов 35.6-35.11 блока задания команд, которые поступают на входы логических условий коммутаторов 55.1, 55.2, 55.3. Например, пакет А обрабатывается в первом и втором процессорных блоках, а в третьем - пакет В. При этом конфигурационный файл в первый и второй блоки поступает из ПЗУ 47.1 или от внешнего источника с входа 53.1 через коммутаторы 55.1 и 55.2, а в третий процессорный блок конфигурационный файл поступает из ПЗУ 47.2 или от внешнего источника с входа 53.2 через коммутатор 55.3. Если во всех трех блоках обрабатывается пакет А, то загружаемые конфигурационные файлы одинаковые.
Назначение отдельных элементов и блоков схемы.
Процессорные блоки 1.1-1.3 предназначены для обработки пакетов информации, поступающих на информационные входы. Работа процессорных блоков синхронизируется импульсами с входа 30.
На выходе 31.К (К=1, 2, 3) процессорного блока 1.К появится сигнал после того, как процессорный блок закончил обработку очередного пакета информации. На выходе 32.К процессорного блока 1.К появляется единичный
сигнал в случае, если встроенные средства контроля данного процессорного блока 1.К зафиксировали его отказ. Сигналы на выходах 31.1-31.3 могут появиться в любой момент времени. Снимаются единичные сигналы с выходов 31.1-31.3 по последнему фронту сигналов с входов 35.4 и 35.5 соответственно.
Регистры 2 предназначены для хранения кодов информационных пакетов, поступающих в систему для обработки.
Пакеты в регистры 2 поступают с выходов соответствующих коммутаторов 12, а в последний регистр 2-е информационного входа 27. Запись кодов пакетов происходит по заднему фронту импульсов с выходов соответствующих элементов ИЛИ 21.
Регистр 3 предназначен для хранения кода результата обработки пакета В в процессорном блоке 1.3 до тех пор, пока этот же пакет повторно не будет обработан в другом процессорном блоке.
Регистр 4 предназначен для хранения адреса выполняемой микрокоманды. Запись адреса происходит по заднему фронту импульса с выхода элемента И 15 при наличии разрешающего сигнала на его втором входе с прямого выхода триггера 6.
Блок 5 управления, выполненный в виде блока памяти, предназначен для хранения микрокоманд, осуществляющих управление работой системы. Каждая микрокоманда содержит три поля: поле управляющих сигналов, поле кода логических условий, поле адреса. Поле кода логических условий содержит код одного из логических условий, которое необходимо проверить в данном такте работы устройства. Поле адреса содержит адрес следующей микрокоманды, который может модифицироваться в зависимости от состояния процессорных блоков 1.1-1.3 ив соответствии со значениями проверяемых логических условий.
Триггер 6 предназначен для выработки разрешающего сигнала после перехода на вход 34 устройства команды «Пуск». Разрешающий сигнал с прямого выхода триггера 6 поступает на вход элемента И 15 и разрешает прохождение импульсов синхронизации через элемент И 15 на синхровход регистра 4 адреса микрокоманд.
Мультиплексор 7 предназначен для выдачи одного из проверяемых логических условий, поступающих на его информационные входы в соответствии с кодом ЛУ, выдаваемым блоком 5 памяти.
Коммутатор 8 позволяет сравнивать на второй схеме сравнения 9.2 коды результатов задачи в первом и втором процессорных блоках, если пакет обрабатывался одновременно во всех процессорных блоках.
Элементы сравнения 9.1-9.2 предназначены для сравнения кодов результатов обработки одного пакета в разных процессорных блоках. При сравнении кодов на выходе элемента 9.К появится единичный сигнал. На элементе сравнения 9.1 сравниваются коды пакетов, поступающие от процессорных блоков 1.3 и 1.2. На элементе сравнения 9.2 сравниваются коды результатов обработки пакетов в процессорных блоках 1.2 и 1.1, а также коды, поступающие с выхода регистра 3 и с выхода процессорного блока 1.1. В регистр 3 заносится код результата обработки информационного пакета при его обработке в К-м цикле, а с выхода процессорного блока 1.1 на элемент сравнения 9.3 поступает код результата обработки этого же пакета в последующем цикле.
Коммутаторы 10.1-10.3 передают в процессорные блоки коды пакетов для обработки в соответствии с управляющими сигналами, поступающими с выхода 35 блока 5 памяти.
Блок 11 приема (фиг.2) предназначен для приема измерительной информации с целью исключения выдачи в систему для решения ложной информации, т.к. информационные пакеты на вход 27 могут поступать в произвольный момент времени.
Рассмотрим работу блока 11 приема.
В начальном состоянии регистры 39, 40 находятся в нулевом состоянии. Для нормальной работы блока 11 необходимо, чтобы длительность импульса с входа 29 была больше длительности переходного процесса смены информации на входе 27.
По переднему фронту импульса с входа 29 информация с входа 27 запишется в регистр 39, а по заднему фронту того же импульса со входа 27 запишется в регистр 40. Если в течение длительности импульса с входа 29 не было момента смены информации на входе 27, то в регистрах 39, 40 будет записана тождественная информация, в результате чего на выходе элемента сравнения 41 будет единичный сигнал. Этот сигнал откроет элемент И 42 и очередной импульс со входа 30 пройдет на выход 24 блока 11 приема. Сигнал с входа 24 поступит в виде квитанции о том, что задача с входа 27 принята системой для обслуживания, код задачи снимается с входа 27. Если во время действия импульса с входа 29 на входе 27 произошла смена информации, то в регистрах 39, 40 будут записаны несовпадающие коды. Следовательно, на выходе элемента сравнения 41 не будет единичного сигнала, элемент И 42 будет закрыт, на вход 24 сигнал со входа 30 не пройдет. В следующем такте в регистры 39, 40 запишется тождественная информация и на выход 24 пройдет сигнал о приеме информации, после чего она снимается с входа 27.
Коммутаторы 12 предназначены для подачи на информационные входы соответствующих регистров 2 кодов пакетов в соответствии с управляющими сигналами. Информация в регистр 2.К (К=1,2,…,n) может быть записана в случае, если приходит пакет на информационный вход 27, а предыдущая информация была записана в регистр 2.К-1. Информация в регистр 2.К переписывается из регистра 2.К+1, если в цикле работы в системе был решен один пакет. Задача в регистр 2.К представляется из регистра 2.К+2 в случае, если в предыдущем цикле работы в системе были решены два пакета. Управляющие сигналы на коммутаторы 12 поступают с выхода 35 блока 5 памяти, а также с выхода элемента ИЛИ 19.
Элемент И 13 предназначен для выдачи сигнала, синхронизирующего запись пакета, поступающего с информационного выхода блока 11 приема для записи в соответствующий регистр 2.К. Синхронизирующий сигнал со входа 29 пройдет на выход элемента И 13.К в случае, если в регистре 2.К-1 записан код пакета (о чем свидетельствует единичный сигнал на выходе элемента ИЛИ 22.К-1) и если в регистре 2.К содержится нулевой код (о чем свидетельствует нулевой сигнал с выхода элемента 22.К).
Элемент И 14 предназначен для синхронизации прихода сигнала с выхода элемента ИЛИ 20.
Элемент И 15 предназначен для управления прохождением синхроимпульсов со входа 29 при наличии единичного разрешающего сигнала на прямом выходе триггера 6.
Элемент И 16 предназначен для формирования единичного сигнала после того, как процессорные блоки 1.1 и 1.2 закончат обработку информационного пакета. В этом случае процессорные блоки выставляют коды результатов обработки и сигналы готовности на соответствующих выходах 31.1 и 31.2.
Элемент И 17 предназначен для выдачи единичного сигнала в случае, когда все три процессорных блока 1.1-1.3 выдали одинаковые коды результатов обработки одного пакета.
Элемент И 18 предназначен для выдачи единичного сигнала после того, как все процессорные блоки закончили обработку пакета. В этом случае процессорные блоки выставляют коды результатов обработки и сигналы готовности на соответствующих выходах 31.1-31.3, после чего появятся единичные сигналы на выходах элементов И 16 и И 25.
Элемент ИЛИ 19 предназначен для выдачи единичного сигнала в случае, когда на информационный выход блока 11 выбора поступает код информационного пакета. Этот сигнал разрешает проход через коммутаторы 12 кода пакета с выхода блока 11 выбора и запрещает проход кодов пакетов с выходов других регистров 2. Это исключает логическое сложение кодов пакетов на выходах коммутаторов 12.
Элемент ИЛИ 20 предназначен для выдачи сигналов в случае, если в системе обработан один или два пакета информации, а следовательно, необходимо провести сдвиг информации в регистрах 2.
Элементы ИЛИ 21 предназначены для формирования сигналов записи информации в регистры 2 соответственно.
Элементы ИЛИ 22 предназначены для выдачи единичных сигналов о том, что в соответствующих регистрах 2 хранятся коды пакетов.
Элемент ИЛИ 23 предназначен для выдачи сигнала в случае, если хотя бы один из процессорных блоков выдал сигнал отказа.
Элемент И 25 предназначен для выдачи единичного сигнала в случае, когда второй 1.2 и третий 1.3 процессорные блоки закончили обработку пакета.
Дешифратор 26 предназначен для выдачи позиционного кода отказавшего процессорного блока в случае, если один пакет обрабатывался во всех процессорных блоках, и один из процессорных блоков выдал код результата обработки, не совпадающий с другими. В этом случае на выходе 35.1 блока 5 памяти появится единичный сигнал, который разрешает работу дешифратора 26.
По нулевому адресу (с выхода регистра 4) из блока 5 памяти считывается первая команда. Эта команда содержит только адрес выборки следующей команды, который поступает на информационные входы регистра 4.
Первое 47.1 и второе 47.2 конфигурационное ПЗУ предназначены для хранения файлов конфигурации и передачи этих файлов через коммутатор 48 в процессорные блоки 1.1-1.3. Выходная информация конфигурационных ПЗУ имеет два поля: поле программы, поле метки.
Первый 46.1 и второй 46.2 счетчики адреса файлов конфигурации необходимы для приема адреса-инициатора, который передается вместе с пакетом информации с адресных шин 50.1 и 51.1, его модификации и выдачи на вход первого 47.1 и второго 47.2 конфигурационных ПЗУ.
Коммутатор 48 позволяет осуществлять загрузку в процессорные блоки 1.1-1.3 файлов конфигурации из первого 47.1 и второго 47.2 конфигурационного ПЗУ или от внешнего источника, в зависимости от сигналов на входах командных шин 50.2, 50.3 и 51.2, 51.3, при этом выбор процессорного блока осуществляется в соответствии с управляющими сигналами на входах 35.6-35.11.
Элементы И45 необходимы для формирования импульсов на входы модификации адреса первого 46.1 и второго 46.2 счетчиков адреса файлов конфигурации по сигналам с входа первого генератора импульсов 29 при наличии нулевого сигнала на выходах метки 49.1 и 49.2 первого 47.1 и второго 47.2 ПЗУ соответственно.
Первый 49.1 и второй 49.2 выходы метки служат для выдачи единичного сигнала на инверсные входы элементов И45 по окончании копирования файлов конфигурации из ПЗУ 47 в процессорные блоки 1.1-1.3.
Входы управляющих сигналов 35.6-35.11 предназначены для приема управляющих сигналов от системы, в соответствии с которыми коммутатор 48 осуществлять загрузку файлов конфигурации в процессорные блоки 1.1-1.3.
Входы 53.1 и 53.2 предназначены для приема файлов конфигурации от внешнего источника.
Адресные шины 50.1, 51.1 необходимы для загрузки адреса-инициатора, который передается вместе с пакетом информации, в счетчик адреса файлов конфигурации 46.
Командные шины 50.2, 50.3 и 51.2, 51.3 служат для приема команд разрешающих загрузку файлов конфигурации в процессорные блоки 1.1-1.3 из первого 47.1 и второго 47.2 ПЗУ файлов конфигурации или от внешнего источника с входов 53.1 и 53.2.
Выходы конфигурации 52.1 и 52.2 необходимы для выдачи файлов конфигурации из первого 47.1 и второго 47.2 конфигурационного ПЗУ на соответствующие входы коммутатора 48.
Работает система следующим образом.
В начальном состоянии регистры 2 и регистр 4 обнулены. Процессорные блоки 1.1-1.3 находятся в исходном состоянии, на их выходах 31.1-31.3 и 32.1-32.3 - нулевые сигналы.
Цепи установки в исходное состояние на рис.1 условно не показаны.
Обработка информации в системе начинается с момента прохода сигнала «Пуск» на вход 34 триггера 6. До этого в систему могут поступать пакеты информации для хранения в регистрах 2. Поступление пакетов информации в систему синхронизируется импульсами с входов 29, 30. При поступлении сигнала «Пуск» на вход 34 по очередному импульсу с входа 29, триггер 6 установится в единичное состояние. На его прямом выходе появляется единичный сигнал, а на инверсном нулевой. По заднему фронту единичного сигнала с прямого выхода триггера 6 снимается сигнал «Пуск» с входа 34. Через открытый элемент И 15 начинают проходить импульсы на синхровход регистра 4. По первому импульсу произойдет запись адреса выборки очередной команды. По этому адресу из блока 5 памяти начинает считываться первая микропрограмма. Эта микропрограмма сначала производит проверку логического условия с выхода элемента ИЛИ 23. Если на его выходе нулевой сигнал, то это означает, что все процессорные блоки в системе исправны.
Если же на его выходе единичный сигнал, то далее необходимо проверить логические условия с выходов 32.1-32.3 с целью определения отказавших процессорных блоков. В случае, если в системе более одного отказавшего процессорного блока, то на выход 35.1 выдается сигнал отказа системы, а триггер 6 сигналом операции-инициатора 35.14 устанавливается в нулевое состояние. Если в системе один отказавший процессорный блок, то система сразу же переводится в мажоритарный режим работы.
Допустим, что проверка логического условия с выхода элемента ИЛИ 23 показала, что все процессорные блоки исправны. Тогда проверяется логическое условие с выхода элемента ИЛИ 22.3. В случае если на выходе элемента ИЛИ 22.3 присутствует единичный сигнал, что соответствует занятости регистра 2.3, то система переходит в режим повышенной производительности решения задач. Если на выходе элемента ИЛИ 22.3 будет нулевой сигнал, то проверяется логическое условие с выхода элемента ИЛИ 22.1. При нахождении в системе задач для обслуживания, на выходе элемента ИЛИ 22.1 будет единичный сигнал. Система в этом случае будет работать в мажоритарном режиме, так как обслуживания ожидают один или два пакета информации.
Если же на выходах элементов ИЛИ 22.3 и ИЛИ 22.1 присутствуют первые сигналы, то система переходит в режим ожидания. В этом режиме она поочередно проверяет логические условия с выходов элементов ИЛИ 23 и ИЛИ 22.1. В режиме ожидания система будет находиться до поступления первого пакета информации.
Более подробно рассмотрим поступление пакетов информации в систему.
Пакеты информации для обработки поступают на информационный вход 27 системы. При появлении задачи на информационном выходе блока 11 приема на выходе элемента ИЛИ 19 появляется единичный сигнал, который поступает на соответствующие управляющие входы коммутаторов 12. Пакет информации с выхода блока 11 проходит на информационные входы всех регистров 2, но запись первого поступившего пакета произойдет только в регистр 2.1, так как для прохода синхронизирующего импульса открыт только элемент И 13.1. Очередной импульс с выхода 24 блока 1 приема пройдет через открытый элемент И 13.1, элемент ИЛИ 21.1 и произведет запись пакета в регистр 2.1. В результате этого на выходе элемента ИЛИ 21.1 появляется единичный сигнал, который откроет элемент И 13.2. Поэтому пакет информации, пришедший на вход 27. запишется в регистр 2.2 и т.д.
Рассмотрим случай, когда интенсивность входного потока пакетов информации достаточно велика и в системе ожидают обслуживания как минимум три пакета. В этом случае после проверки логических условий с выходов элементов ИЛИ 22.3, 22.1 вырабатывается команда, управляющие сигналы 35.7, 35.9, 35.10, которые разрешают проход задачи из регистра 2.1 (в дальнейшем пакеты, поступающие из этого регистра, будут обозначаться символом А) через коммутаторы 10.1, 10.2 в соответствующие процессорные блоки 1.1, 1.2, а пакеты из регистра 2.2 (в дальнейшем - задачи В) через коммутатор 10.3 в процессорный блок 1.3. Пакеты информации будут приняты в процессорные блоки 1.1-1.3 по заднему фронту синхроимпульса с входа 30.
Вместе с пакетом обрабатываемой информации передаются начальный адрес файла конфигурации, и командные сигналы определяющие загружается ли файл конфигурации из ПЗУ или из внешнего источника.
Одновременно с этим на адресных шинах 50.1 и 51.1 появится адрес-инициатор, который передается вместе с пакетом информации и на командных шинах 50.2 и 51.2 установится единичный сигнал, а на шинах 50.3 и 51.3 - нулевой, если для обработки пакета необходима конфигурация, хранящаяся в первом 47.1 и втором 47.2 ПЗУ файлов конфигурации. В противном случае файлы конфигурации загружаются из внешнего источника, при этом адрес-инициатор равен нулю, на командных шинах 50.3 и 51.3 установится едининый сигнал, а на шинах 50.2 и 51.2 - нулевой, которые разрешит прохождение файлов из внешнего источника с входов 53.1 и 53.2 через коммутатор 48 в зависимости от управляющих сигналов 35.6-35.11 в соответствующие процессорные блоки. Запись файлов конфигурации осуществляется по переднему фронту синхроимпульса с входа 30.
Рассмотрим более подробно загрузку файлов конфигурации из ПЗУ конфигурации.
В момент появления пакета информации на выходах первого 10.1 и третьего 10.3 коммутаторов на адресных шинах 50.1 и 51.1 появится начальный адрес файла конфигурации, который по синхроимпульсу с входа 29 запишется в первый 46.1 и второй 46.2 счетчики адреса файла конфигурации соответственно. Вместе с этим на выходах 52.1 и 52.2 первого 47.1 и второго 47.2 конфигурационного ПЗУ появится начальный фрагмент файла конфигурации записанный в ПЗУ по установленному адресу. Одновременно на командных шинах 50.2 и 51.2 установится единичный сигнал, который совместно с управляющими сигналами 35.6-35.11 разрешит прохождение фрагмента файла конфигурации через коммутатор 48 в соответствующие процессорные блоки. Файлы конфигурации будут приняты в соответствующие процессорные блоки по переднему фронту синхроимпульса с входа 30.
Вместе с тем на выходах метки 49.1, 49.2 конфигурационного ПЗУ установится нулевой сигнал, который откроет элементы И 45.1, 45.2 и разрешит проход синхроимпульсов с входа 29 на входы модификации адреса первого 46.1 и второго 46.2 счетчика адреса. Модификация адреса файлов конфигурации будет осуществляться до тех пор, пока последний фрагмент файла конфигурации не будет загружен в соответствующие процессорные блоки. В этом случае на выходах метки 49.1, 49.2 конфигурационного ПЗУ установится единичный сигнал, который закроет элементы И 45.1 и 45.2 и модификация адреса прекратится.
Рассмотренный режим дает возможность оперативно изменять конфигурацию процессорного блока, в зависимости от решаемой задачи.
Например, обработка пакета А в процессорных блоках 1.1 и 1.2 осуществляется по одной программе, а пакет В в процессорном блоке 1.3 по другой. При функционировании системы в мажоритарном режиме все процессорные блоки 1.1-1.3 осуществляют обработку информации по одной программе (т.е. в три процессорных блока загружены одинаковые конфигурационные файлы).
После загрузки пакета информации и конфигурационного файла начался первый цикл решения задач в процессорных блоках 1.1-1.3.
Далее пакеты обрабатываются в процессорных блоках. В режиме ожидания результатов решения последовательно проверяются логические условия с выходов элементов ИЛИ 23, И 16 и с выхода 31.3 процессорного блока 1.3. После окончания обработки пакета каждый процессорный блок выставляет код результата решения на соответствующем информационном выходе и сигнал готовности на соответствующем сигнальном выходе 31.
В систему поступают пакеты, обработка которых занимает различное время. В соответствии с этим различаются и алгоритмы принятия решений по результатам обработки пакетов. Рассмотрим различные варианты окончания решений задач в процессорных блоках.
Допустим, что первым был обработан пакет А в процессорных блоках 1.1 и 1.2, следовательно появится единичный сигнал на выходе элемента И 16, который модифицирует адрес выборки следующей микрокоманды. Эта микрокоманда проверит логическое условие с выхода элемента сравнения 9.2. В случае, если коды результатов обработки пакета в процессорных блоках 1.1 и 1.2 совпали, то на выходе элемента сравнения 9.2 будет единичный сигнал. По следующей микрокоманде в регистрах 2 происходит сдвиг информации на один шаг. Произойдет это следующим образом. Управляющий сигнал 35.13 команды через элемент ИЛИ 20 откроет элемент И 14. Очередной импульс с входа 29, пройдя через элемент И 14 и элементы ИЛИ 21, запишет коды пакетов в соответствующие регистры 2. Пакет информации из регистра 2.2 запишется в регистр 2.1, из регистра 2.3 в регистр 2.2 и т.д. Пакет А из регистра 2.1 стирается, так как она уже решена. Этот же синхроимпульс произведет запись в регистр 4 кода адреса выборки очередной микрокоманды. Управляющие сигналы этой микрокоманды разрешают проход через коммутатор 10.1 задачи В из регистра 2.1 в процессорный блок 1.1 для решения. Далее система переходит в режим ожидания окончания обработки пакета В в процессорном блоке 1.3. В этом режиме ожидания она поочередно контролирует логические условия с выхода элемента ИЛИ 23 и с выхода 31.3 процессорного блока 1.3. После окончания обработки пакета В в процессорном блоке 1.3 появляется единичный сигнал на его выходе 31.3. Этот сигнал модифицирует адрес выборки следующей микрокоманды, которая заносит результат обработки пакета В в регистр 3, после чего производится установка процессорного блока 1.3 в исходное состояние. Следующая микрокоманда произведет загрузку пакета информации С из регистров 2.2 в процессорные блоки 1.2, 1.3. Далее начинается второй цикл обработки пакетов информации в процессорных блоках. В этом цикле процессорный блок 1.1 обрабатывает пакет В, а процессорные блоки 1.2, 1.3 - пакет С.
Если в первом цикле обработки пакета раньше закончилась обработка пакета В в процессорном блоке 1.3, чем обработка пакета А в процессорных блоках 1.1, 1.2, то код результата обработки В заносится в регистр 3, после чего ожидается окончание обработки пакета А, т.е. проверяется логическое условие с выхода элемента И 16. При появлении единичного сигнала на его выходе модифицируется адрес выборки очередной микрокоманды, которая проверит логическое условие с выхода элемента сравнения 9.2 (на второй вход этого элемента через коммутатор 8 поступает результат обработки пакета А в процессорном блоке 1.2). В случае, если пакет А обработан правильно (совпадают коды результатов решения задачи в двух процессорных блоках), то следующая микрокоманда произведет сдвиг информации в регистрах 2, после чего пакет В из регистра 2.1 поступит для обработки в процессорный блок 1.1, а пакет С из регистра 2.2 - в процессорные блоки 1.2, 1.3, вместе с этим в процессорные блоки будут загружены конфигурационные файлы соответствующие обрабатываемым пакета. Далее начинается второй цикл обработки пакетов информации в процессорных блоках. Система переходит в режим ожидания окончания второго цикла. В этом режиме она контролирует логические условия с выходов элементов ИЛИ 23, И 25 и с выхода 31.1 процессорного блока 1.1.
Если время обработки пакетов В и С различно, то могут быть два варианта: первой решилась обработан пакет В в процессорном блоке 1.1, или первым обработан пакет С в процессорных блоках 1.2, 1.3. В случае, если первым закончилась обработка пакета В в процессорном блоке 1.1, то на его выходе 31.1 будет единичный сигнал. Проверив это логическое условие, система проверит правильность обработки пакета В в процессорных блоках 1.1 и 1.3. Для этого к выходу коммутатора 8 необходимо подключить выход регистра 3, а затем проверить сигнал с выхода элемента сравнения 9.2. Если сигнал единичный, то это означает, что пакет В обработан правильно. Поэтому в следующем такте производится сдвиг в регистрах 2 на один шаг, т.е. пакет В обработан. После этого ожидается окончание обработки пакета С.Окончание обработки пакета С характеризуется наличием единичного сигнала с выхода элемента И 25. Далее аналогично описанному, проверяется правильность обработкипакета С. При правильной обработке пакета С в регистрах 2 производится сдвиг информации на один шаг и возвращение процессорных блоков в исходное состояние. Система опять анализирует наличие задач в системе и в зависимости от этого переходит либо в первый цикл повышенной производительности, либо в мажоритарный режим решения задачи.
Рассмотрим работу систем в случае, когда после обработки пакета А в процессорных блоках 1.1 и 1.2 оказывается, что коды результатов обработки пакетов А, выданные процессорными блоками 1.1, 1.2 не совпадают. В этом случае предполагается, что один из процессорных блоков (1.1 или 1.2) дал сбой или отказал во время решения задачи, причем встроенные схемы контроля этого процессорного блока не обнаружили этот сбой или отказ. При проверке логического условия с выхода элемента сравнения 9.2 не будет модифицирован адрес выборки следующей микрокоманды. Так как пакет А не обработан, то в регистрах 2 не произойдет сдвиг информации, а через коммутаторы 12.1-12.3 пакет А из регистра 2.1 поступит для обработки во все процессорные блоки, причем конфигурационные файлы во все процессорные блоки загружаются одинаковые. После окончания его обработки проверяются логические условия с выходов элементов сравнения 9.1-9.2. Если все процессорные блоки выдали одинаковые результаты обработки пакета А, то после проверки логических условий произойдет сдвиг информации в регистрах 2 и система будет работать аналогично описанному. Если же один из процессорных блоков вновь выдает код результата обработки пакета А, не совпадающий с кодами, выдаваемыми двумя другими процессорными блоками, то в этом случае происходит сдвиг информации в регистрах 2, т.к. считается, что пакет А правильно обработан в других двух процессорных блоках, однако во все процессорные блоки поступает для обработки пакет В и загружаются одинаковые конфигурационные файлы. Одновременно с этим выдается управляющий сигнал на разрешающий вход дешифратора 26 и на его выходе появляется код отказавшего процессорного блока. Обработка пакетов в процессорных блоках по мажоритарному принципу продолжается до тех пор, пока не будет восстановлен отказавший процессорный блок или пока все процессорные блоки не выдадут одинаковые коды результатов обработки очередного пакета. После этого система переходит к реализации описанного выше алгоритма.
Если же в мажоритарном режиме зафиксирован отказ двух и более процессорных блоков, т.е. результаты обработки не совпали ни у одной пары процессорных блоков 1.1-1.3, то на выходе 28 выдается сигнал отказа системы. Триггер 6 устанавливается в нулевое состояние, система переходит в режим ожидания восстановления.
Работа системы по обработке пакетов информации начинается с приходом сигнала "Пуск" на вход 34. При этом продолжается прием задач в регистры 2.
Рассмотрим функционирование системы в случае, когда в процессорных блоках 1.2, 1.3 обрабатывался пакет С, а в процессорном блоке 1.1 обрабатывался пакет В. После решения этих задач в процессорных блоках 1.1-1.3 возможны четыре варианта работы системы:
3.1) результаты обработки пакетов В и С совпали;
3.2) совпали результаты обработки только пакета В;
3.3) совпали результаты обработки только пакета С;
3.4) результаты обработки пакетов В и С не совпали.
Функционирование системы при успешной обработки пакетов В и С описано выше.
Рассмотрим функционирование системы в режиме 3.2.
Так как в этом случае пакет В обработан, то по очередной микрокоманде в регистрах 2 производится сдвиг информации на один шаг. В результате этого пакет С поступает в регистр 2.1 и система переходит в режим мажоритарной обработки этого пакета в процессорных блоках 1.1-1.3, как это было описано.
При возникновении режима 3.3 система функционирует следующим образом. Пакет В передается для обработки в процессорные блоки 1.1-1.3, в которые загружены одинаковые файлы конфигурации и при окончании обработки производится сравнение результатов обработки. Если все процессорные блоки выдали правильные результаты, то в регистрах 2 осуществляется сдвиг информации на два шага, после чего система переходит в первый режим функционирования. Если зафиксирован отказ (сбой) одного из процессорных блоков, то на выходе 28 выдается номер отказавшего процессорного блока, в регистрах 2 происходит сдвиг информации на два шага, после чего система продолжает функционирование в мажоритарном режиме.
Режим 3.4. Если отказали два и более процессорных блоков, то на выходе 28 сформируется код отказа системы и система переходит в режим ожидания восстановления.
Техническим результатом является расширение функциональных возможностей, путем введения в известное устройство коммутатора переключения источников файлов конфигурации процессорных блоков, а также использование процессорных блоков на базе типовых конфигурируемых процессоров.