Резервированная система
Реферат
Изобретение относится к вычислительной технике и может быть использовано при создании вычислительных систем повышенной надежности и производительности. Цель - повышение производительности. В систему, содержащую два канала 1.1, 1.2 резервирования, каждый из которых включает блок 5 ввода-вывода, блок 2 процессора, блок 3 последовательного интерфейса, блок 4 памяти, причем блоки 3 последовательного интерфейса каналов соединены между собой шиной 6 последовательного интерфейса, введен блок 9 общей памяти, соединенный с блоками 2 процессоров системной шиной 8, а к соответствующим шинам блоков 5 ввода-вывода каналов подключены шины 7 и шины 10, 11 ввода-вывода двух каналов. Резервированная система обеспечивает работоспособность при любом единичном отказе, а при отсутствии отказов в системе повышена производительность за счет обеспечения мультипроцессирования. 3 з. п. ф-лы, 1 табл. 7 ил.
Изобретение относится к вычислительной технике и может быть использовано при создании вычислительных систем повышенной надежности и производительности.
Наиболее близкой по технической сущности к изобретению является система, содержащая два канала резервирования, в каждом из которых блок процессора, блок памяти, блок ввода-вывода подключены к системной шине, первый блок последовательного интерфейса, блок постоянного запоминающего устройства соединены с локальной шиной блока процессора, второй блок последовательного интерфейса введен в состав блока ввода-вывода, который содержит шину ввода-вывода, в системе каналы резервирования соединены между собой через соответствующие шины первого и второго блоков последовательного интерфейса. В известной системе синхронизация и обмен данными между резервируемыми каналами осуществляются только по шинам последовательного интерфейса, что снижает производительность. Целью изобретения является повышение производительности системы. Это достигается за счет обеспечения в системе режима мультипроцессирования - работы двух блоков процессора в структуре с общей памятью. Такой режим позволяет процессорам обмениваться результатами обработки при дублировании в параллельном интерфейсе, что значительно сокращает время обмена данными по сравнению с прототипом. На фиг. 1 и 2 представлена структурная схема предлагаемой резервированной системы; на фиг. 3 - схема блока ввода-вывода; на фиг. 4 - схема первого коммутационного блока мультиплексоров; на фиг. 5 - схема таймера; на фиг. 6 - схема возможного варианта реализации блока процессора; на фиг. 7 - схема варианта реализации блока последовательного интерфейса. Система состоит (фиг. 1) из двух каналов 1.1, 1.2 резервирования каждый из которых содержит блок 2 процессора, блок 3 последовательного интерфейса, блок 4 памяти, блок 5 ввода-вывода, шину 6 последовательного интерфейса, локальную шину 7, системную шину 8, блока 9 общей памяти и шин 10, 11 ввода-вывода. Каждый блок 5 ввода-вывода (фиг. 3) состоит из дешифратора 12, элементов ИЛИ 13, 14, элемента И 15, элемента ИЛИ-НЕ 16, двух триггеров 128, 23, двух таймеров 19, 20, первого 21 и второго 22 коммутационных блоков мультиплексоров, регистра 24, повторителя 17, инвертора 25. Каждый блок 5 содержит также шину 26 адреса, шину 27 управления шину 29 данных, первый установочный вход 29, синхронизирующий вход 30, первый 31 и второй 32 управляющие выходы, адресный вход 33, входы управления чтением 34 и записью 35, сигнальный вход 36 готовности, входящие в состав локальных шин 7 резервируемых каналов 1.1, 1.2. Адресная шина 26, шина 28 (двунаправленная) данных содержат n линий - разрядов в зависимости от принятого интерфейса. На фиг. 3 37-39 линии данных. В состав шины 27 управления входят линия 34 чтения, линия 35 записи для устройств ввода-вывода, линии записи, чтения для блока локальной памяти на фиг. 3 не используются. Шины 10 ввода-вывода содержат магистрали адреса, данных, управления и линию готовности. На фиг. 3 42 - шины данных, 43 - линия готовности шин 10, 11, двунаправленная 40 и 41 - шины логического "0" и "1" соответственно. Первый блок 21 мультиплексоров (фиг. 4) имеет схемы 46-48 сравнения, элемента ИЛИ-НЕ 49-51, элемент И 52, мультиплексоры 53-55, инвертор 56. На фиг. 4: 44 - шины адреса, 45 - шина управления, 57 - линия чтения, входящие в состав шин 10 (11) ввода-вывода. Таймер 19 (20) (фиг. 5) состоит из инвертора 58, счетчика 59, инверторов 60, 61, триггера 62. Блок 2 процессора (фиг. 6) содержит инверторы 64-73, мультивибратор 74, элементы И 75, 83, программируемый контроллер 76 прерываний, дешифратор 77, генератор 78, микропроцессор 79, контроллеры 80, 87 шин, регистры 81, 88, приемопередатчики 82,89, элемент ИЛИ 84, элемент И 85 с открытым коллектором, арбитр 86 шин. На фиг. 6 91, 92 - установочные входы, 94 - выход готовности, 95 - линия подтверждения прерывания, 63 - линия запроса прерывания. Блок 3 последовательного интерфейса (фиг. 7) содержит дешифратор 96, элемент 2И-ИЛИ-НЕ 97, инвертор 98, инвертор 99 с открытым коллектором, универсальный синхронно-асинхронный приемопередатчик 100, программируемый таймер 101, инверторы 102, 103. На фиг. 7 104, 105 - линии адреса, 106, 107 - линии запросов прерывания. На фиг. 2 90, 93 - группы управляющих и адресных выходов. Система работает следующим образом. Блоки 2 процессоров в каждом канале 1.1, 1.2 резервирования обрабатывают данные асинхронно по идентичным программам, хранимым в соответствующих блоках 4 памяти (фиг. 1). Обмен данными системы с внешними устройствами ввода-вывода (на фиг. 1 не показаны) осуществляется через блоки 5 ввода-вывода по шинам 10 и 11 селективно - устройства, подключенные к шинам 10, 11, имеют различные адреса. Результатами обработки блоки 2 обмениваются между собой в параллельном коде через блок 9 общей памяти, соединенный с процессорами системной шиной 8. Обмен производится с помощью известных способов - "почтовый ящик", "семафор" в режиме мультипроцессирования, что значительно повышает скорость приема - передачи данных, а следовательно, и производительность системы. (При отказе общей памяти блоки 2 процессоров обмениваются данными через последовательный интерфейс. Только в этом случае производительность предлагаемого технического решения и прототипа одинакова). При вводе данных в систему от устройства, подключенного к шине 10 или 11, данные поступают в блоки 2 через блоки 5 ввода-вывода и соответствующие локальные шины 7. При выводе данные направляются блоками 2 в блоки 5, где они коммутируются к шинам 10, 11 и воспринимаются в зависимости от адреса соответствующим устройством вывода (подключенным к шине 10 или 11). Если при обмене данными выявлено различие в результатах обработки, система может повторить решение текущей задачи. Если при повторе результаты становятся идентичными, то программно фиксируется сбой и система продолжает функционирование по заданной программе. При вторично разных результатах система выполняет решение контрольной задачи или программное тестирование. Тот канал резервирования, который выполнил тест правильно, переходит в подпрограмму переключения блоков 5 ввода-вывода на работу от одного исправного канала (переключает блок 5 на работу только от своего блока 2). Так как вход в данную подпрограмму возможен только при правильно выполненной тестовой задаче, то неисправный канал не переключает режим работы своего блока 5. Возможны варианты введения соответствующего микропроцессора в режим "ожидания" по специальной команде или "зацикливания" на определенном адресе. В случае отказа системной шины 8 или блока 9 общей памяти блоки 2 процессора имеют возможность обмена данными через блоки 3 последовательного интерфейса по шине 6. Из-за асинхронности работы блоков 2 процессоров в системе может производиться подсинхронизация процессоров, которая выполняется путем обмена информацией через общие ресурсы данных - блок 9 общей памяти или блоки 3 последовательного интерфейса, а также аппаратным способом с помощью блоков 5 ввода-вывода. В начале работы и при отсутствии неисправности триггеры 18 блоков 5 по линии 29 приведены в нулевое состояние (фиг. 3). При этом с прямого выхода триггера 18 поступает нулевой сигнал на вторые входы элементов ИЛИ-НЕ 49-51, блоков 21 (фиг. 4) своего канала, а с инверсного выхода - единичный сигнал на второй вход элемента И 52 соседнего канала. В таймерах (фиг. 5) 19, 20 триггеры 62 также приведены в исходное состояние (в таймере 19 по сигналу с линии 29, в таймере 20 программным способом по D-входу) - на выходе триггера 62 присутствует единичный сигнал (запросы прерывания не вырабатываются). Если процессоры не обращаются к устройствам ввода-вывода по шинам 10, 11, то на установочном входе триггера 23 (фиг. 3) в двух каналах присутствует сигнал логического "0" от элемента ИЛИ-НЕ 16 (линия 33 адреса в "единице"). Триггер 23 (в нулевом состоянии) поддерживает инвертор 25 в пассивном состоянии (в логической "1") на линии 36 готовности. Элементы 17 и 60 также находятся в пассивном состоянии из-за единичного уровня с первого выхода дешифратора 12, элемента ИЛИ 13 и нулевого уровня с выхода счетчика 59 таймера 19 (фиг. 5), на первом установочном входе которого присутствует логический "0". При обращении процессоров к устройствам ввода-вывода по шинам 10, 11, например по выводу данных, на линии 33 адреса в двух каналах формируются нулевые сигналы. Нулевой сигнал записи с линии 35 через элементы И 15, ИЛИ-НЕ 16 устанавливает единичный уровень на установочном входе триггера 23, разрешая его переключение в единицу. Из-за асинхронности работы блоков 5 процессоров сигналы адреса, данных и управления (с шин 26, 28, 27 шины 7) поступают на первые и вторые группы информационных входов коммутационных блоков 21 неодновременно. Причем каждый блок процессора формирует эти сигналы (например, в интерфейсе И 41) в следующем порядке: первыми появляются сигналы адреса на шине 26, затем данных на шине 28, далее управляющий сигнал записи на шине 27. При мультиплексировании сигналов блоками 21 к шинам 10, 11 в каждом канале осуществляется аппаратная подсинхронизация работы блоков 2 процессоров. Если канал 1.1 обращается к шинам 10, 11 первым, то микропроцессор 79 (фиг. 6) блока 2 переходит в состояние "ожидания" первым - до получения нулевого сигнала по линии 36 готовности. Далее переходит в состояние "ожидания" микропроцессор 79 канала 1.2. Если на шинах 7 каналов 1.1 и 1.2 присутствует идентичная информация, то схемы 46, 47, 48 формируют единичные уровни, которые инвертируются элементами ИЛИ-НЕ 49-51 и переключают на выходы мультиплексоров 53-55 сигналы с шин 26, 28, 27 своего канала (нулевым уровнем по первым управляющим входам мультиплексоров 53-55), на вторых управляющих входах этих мультиплексоров присутствуют также нулевые сигналы, разрешающие передачу данных на выход: для мультиплексора 53 с шины 40, для мультиплексора 54 из-за отсутствия нулевого сигнала чтения с выхода элемента ИЛИ-НЕ 51, для мультиплексора 55 с выхода элемента И 52. Схемы 46-48 включаются в режим сравнения логическими "1" на управляющих входах. Устройство ввода-вывода, к которому обратились блоки 2 процессоров, по соответствующему адресу и сигналу записи прижимает данные и формирует сигнал готовности на линии 43 (по шине 10 или 11 в зависимости от адреса). Мультиплексоры по соответствующему уровню с второго выхода дешифратора 12 коммутируют с шин 10 или 11 сигнал готовности на первый выход, тем самым устанавливая триггер 23 в состояние логической "1" и формируя нулевой уровень на линиях 36 готовности шин 7 своих каналов (через инверторы 25). Микропроцессоры 79 выходят из состояния "ожидания" и продолжают работу по заданной программе. Триггеры 23 устанавливаются в исходное состояние, снимая сигнал готовности с шин 36 (по снятию сигнала записи с линии 35). Таким образом, при выводе данных микропроцессорами 79 к шинам 10 или 11 и идентичности информации на шинах 7 происходит аппаратная синхронизация во времени их работы. Аналогично микропроцессоры 79 синхронизируются и при вводе данных с шин 10 и 11. При этом данные с магистралей 42 шины 10 или 11 в зависимости от выставляемого адреса (по уровню с второго выхода дешифратора 12) мультиплексируются в каждом канале в регистр 24. Данные записываются по сигналу готовности с первого выхода блока 22, поступающему на первый управляющий вход регистра. В локальные шины 7 выходы регистров 24 подключаются по нулевому уровню на их вторых управляющих входах (с элемента ИЛИ 14 при нулевых сигналах адреса на линии 33 и чтения на линии 34). При снятии сигнала чтения с линии 34 выходы регистров 24 переводятся в третье состояние. Если при выводе или вводе схемами 46-48 сравнения фиксируется неравенство информации, что свидетельствует о рассогласовании каналов по сбою или отказу, на выходах элементов ИЛИ-НЕ 51, и 52 в двух каналах появляются единичные уровни, запрещающие мультиплексирование мультиплексором 55 управляющих сигналов к шинам 10, 11. На входах коммутационных блоков 22 не устанавливаются сигналы готовности с шин 10, 11. Микропроцессоры 79 остаются в режиме "ожидания". Выход из этого состояния осуществляется по подстановке сигналов готовности таймерами 19. Таймеры работают следующим образом. При каждом обращении микропроцессоров к шинам 10 или 11 запускаются счетчики 59 (фиг. 5), так как с выходов инверторов 58 снимаются установочные единичные уровни (по нулевым сигналам 34, 35 чтения, записи и линии 33 адреса элементы И 15, ИЛИ-НЕ 16 формируют на первом установочном входе таймеров 19 логическую "1"). Счетчики 59 начинают отсчитывать импульсы, поступающие с второго тактового входа таймера. Разрядность счетчиков 59 определяется максимально возможной длительностью состояния ожидания микропроцессорами сигнала готовности от устройства ввода-вывода. В рассматриваемом случае (или при отказе устройства, обращении микропроцессоров к шинам 10, 11 с несуществующим адресом) счетчики 59 отсчитывают заданное количество импульсов, на их выходах появляются единичные уровни, которые через инверторы 60 устанавливают на линиях 36 нулевые сигналы готовности, а через инверторы 61 с триггеров 62 - нулевые уровни запросов прерывания. Микропроцессоры 79 выходят из состояния ожидания, снимают установленные на линиях 35, 34 сигналы записи или чтения, счетчики 59 приводятся в исходное состояние, с линий 36 снимаются сигналы готовности, микропроцессоры продолжают работу по заданной программе. Сигналы запросов с триггеров 62 по линиям 31 воспринимаются программируемым контроллером 76 прерывания (фиг. 6), вырабатывающим на соответствующем входе микропроцессоров 79 запрос прерывания программы. Микропроцессоры 79 выходят в подпрограмму обработки прерываний, соответствующую данному запросу, которая определяет, что произошло рассогласование сигналов на локальных шинах 7 (или отказ устройства ввода-вывода). Далее должна выполняться подпрограмма идентификации неисправности. Если рассогласование произошло по сбою, то при повторе задачи обойный участок программы должен выполниться без соответствующего запроса прерывания. В случае отказа одного из каналов повтор ведет к дополнительному возврату в подпрограмму обработки прерывания по линии 31. Тогда должно быть проведено программное тестирование или решение контрольной задачи для выявления исправного канала. Определение отказа внешнего устройства можно выполнить при наличии средств контроля в данном устройстве. Тот канал, который правильно выполняет тестовую программу, устанавливает триггер 18 в состояние логической "1". Установка осуществляется по команде "вывод" сигналом записи на линии 35 по соответствующему адресу с дешифратора 12 и соответствующему значению разряда на линии 38 шины 28 данных. (Аналогично снимаются сигналы запросов прерывания программ на линиях 31, 32 с триггеров 62 таймеров 19, 20 с использованием линий 38, 39 данных). Прямой выход триггера 18 воздействует через элементы ИЛИ-НЕ 49-51 на мультиплексоры 53-55 так, что при дальнейшей работе системы вне зависимости от состояния выходов схем 46-48 сравнения мультиплексоры 53-55 коммутируют на свои выходы состояния локальной шины 7 только своего канала. Инверсный выход триггера 18 нулевым уровнем через соответствующий элемент И 52 удерживает мультиплексор 55 другого канала (который из-за отказа не выполняет правильно тестовую программу и не выходит на установку в единицу своего триггера 18) в состоянии передачи управляющих сигналов. При этом в неисправном канале из-за несравнения сигналов схемами 47, 48 и исходному состоянию триггера 18 мультиплексоры 53-55 коммутируют на свои выходы состояние локальной шины 7 работоспособного канала. Аналогично выполняется переключение триггера 18 соответствующего блока 5 при определении неисправности программным способом по обмену данными между каналами. Отказы любых элементов в одном из блоков 5 могут вывести из строя только свой канал резервирования. Отдельные отказы элементов, подключенных к шине 10 (или 11), могут нарушить работу и соответствующих устройств ввода-вывода только в данном канале. Указанные неисправности определяются по рассогласованию информации при обменах данными и в дальнейшем "маскируются" путем перехода системы в режим работы от одного из исправных каналов, включая устройства ввода-вывода. Для достоверности определения неисправности на шинах 10 и 11 устройства ввода-вывода, подключенные к этим шинам (как и в прототипе), могут иметь возможность выдачи по шинам данных контрольной информации. Отказы общих ресурсов - блока 9 общей памяти или системной шины 8 могут привести к "зависанию" микропроцессоров 79 в режиме "ожидания". Из этого состояния система выходит с помощью таймера 20. При обращении любого микропроцессора 79 к блоку 9 счетчик 59 таймера 20 по нулевому сигналу на установочном входе с выхода готовности (линия 94 в единице) блока 2 начинает отсчитывать тактовые импульсы, поступающие с второго тактового входа таймера. Разрядность счетчика 59 таймеров 20 определяется максимально допустимым временем обращения микропроцессоров 79 к блоку 9. Если время обращения больше допустимого, то на выходе счетчика появляется единичный уровень, который через инвертор 60 преобразуется в сигнал установки, а через инвертор 61 и триггер 62 - в запрос прерывания программы для соответствующего блока 2. При этом счетчик 59 и микропроцессор 79 устанавливаются в исходное состояние. По снятии сигнала установки микропроцессор 79 выполняет подпрограмму обработки запроса прерывания по линии 32, которая указывает соответствующему каналу резервирования на необходимость обмена данными с другим каналом через блоки 3 последовательного интерфейса. Центральным процессорным элементом в блоках 2 является микропроцессор 79. Структура блока 2 (фиг. 6) реализована с использованием известных положений, приведенных для микропроцессорного комплекта серии К1810. В структуре применяется максимальный режим работы микропроцессора с локальной и системной шинами. Генератор 78 формирует тактовую последовательность СК для микропроцессора и BCLK для системы - линия 30. Формируются также сигналы готовности READI и установки RESET. На вход генератора 78 через элемент И 75 поступают два сигнала установки: первый с линии 92 (например, от кнопки) и второй с линии 91 от блока 5 (через мультивибратор 74 необходимой длительности). Сигнал готовности с линии 36 поступает в генератор через инвертор 68 от локальной шины 7, от системной шины 8 сигнал готовности транслируется через инвертор 72. На локальной шине 7 сигналы к магистралям адреса, управления и данных 26, 27, 28 формируются регистром 81, контролером 80 шин и приемопередатчиком 82, на системной шине 8 - соответственно регистром 88, контролером 87 шин и приемопередатчиком 89. Запрос прерывания INT для микпропроцессора 79 выставляется программируемым контролером 76 прерываний. На элементах 83-85 реализована логическая схема формирования сигнала готовности при обращениях микропроцессора 79 по командам ввода-вывода к контролеру 76. Арбитраж системной шины осуществляется арбитром 86 шин. Арбитры 86 в системе могут быть включены по последовательной схеме. Дешифратор 77 по соответствующему адресу формирует сигнал выбора контролера 76, а также сигнал выбора локальной или системной шины. Вариант одной из возможных адресаций всех элементов системы по командам ввода-вывода приведен в таблице. Блок 3 последовательного интерфейса (фиг. 7) реализуется на базе универсального синхронно-асинхронного приемопередатчика 100 и программируемого таймера 101 серии К580. Дешифратор 96 вырабатывает сигнал выбора элементов 100, 101, элементы 97, 99 - сигнал готовности. При организации последовательного интерфейса по шине 6 синхронизация работы микропроцессоров 79 с приемопередатчиками 100 может быть выполнена по сигналам готовности приемника и передатчика на линиях 106, 107 запросов прерывания программ. Блоки 4 и 9 локальной и системной памяти могут быть выполнены на БИС РПЗУ и ОЗУ серий К573, К565 и др. Все логические элементы системы, включая триггеры, регистры, счетчики, реализуются на микросхемах серии К555 (триггеры - типа К555ТМ2). Схемы 46-48 сравнения, а также мультиплексоры 53-55 и блок 22 мультиплексоров могут быть построены при каскадном включении микросхем типа К555СП1 и мультиплексоров К555КП16 (531КП18) соответственно. Таким образом, предлагаемая резервированная система обеспечивает работоспособность при любом единичном отказе. Причем при отсутствии отказов в общих ресурсах данных в системе значительно повышена производительность за счет обеспечения мультипроцессирования. (56) Гэри Э. Кравес. Отказоустойчивая система управления и контроля для скоростной подземной железной дороги. Электроника, 1984, N 10, с. 67-72.Формула изобретения
о гpуппой инфоpмационных входов и сигнальным входом блока, втоpой упpавляющий вход втоpого коммутационного блока подключен к шине логического нуля, втоpые гpуппы инфоpмационных адpесных и упpавляющих входов пеpвого коммутационного блока являются соответственно втоpыми инфоpмационными, адpесными и упpавляющими гpуппами входов блока, а втоpой упpавляющий вход пеpвого коммутационного блока является втоpым упpавляющим входом блока.РИСУНКИ
Рисунок 1, Рисунок 2, Рисунок 3, Рисунок 4, Рисунок 5, Рисунок 6, Рисунок 7, Рисунок 8, Рисунок 9