Способ динамической реконфигурации вычислительных комплексов модульной архитектуры
METHOD FOR DYNAMIC RECONFIGURATION OF COMPUTING SYSTEMS OF MODULAR ARCHITECTURE

Изобретение относится к области вычислительной техники и может быть использовано при построении высоконадежных вычислительных и управляющих систем на основе модульной архитектуры.
В дальнейшем, при раскрытии разработанного технического решения будут использованы следующие термины:
Достоверность контроля - показатель степени объективного отображения результатов контроля действительного технического состояния изделия. (ГОСТ 19919-74).
Крейт - контейнер или герметизированный корпус.
Модуль - конструктивная единица вычислительного комплекса, предназначенная для выполнения заданных функций (например, обеспечение электропитанием, коммутация каналов линий связи, выполнение вычислительных операций и т.д.). Модуль состоит из функциональной части и подсистемы мониторинга и управления (далее ПМУ). Функциональной частью модуля считается вся аппаратура модуля, не относящаяся к ПМУ.
Подсистема мониторинга и управления (ПМУ) - аппаратно-программная часть модуля, независимая от работы функциональной части модуля и обеспечивающая контроль параметров модуля, информационный обмен с ПМУ других модулей, а также управление питанием функциональной части модуля, контроль ее работы и взаимодействие с пользовательским программным обеспечением (ПО) (для вычислительных модулей).
Вычислительный модуль - модуль, имеющий в своем составе центральный процессор (ЦП) и обеспечивающий загрузку и исполнение пользовательского ПО. Каждый вычислительный модуль осуществляет функцию контроля всех остальных модулей вычислительного комплекса (ВК).
Контролирующий модуль - модуль, обеспечивающий отслеживание изменения параметров состояния всех остальных модулей вычислительного комплекса, формирующий маркерные параметры. Каждый вычислительный модуль ВК является контролирующим модулем.
Контролируемый модуль - модуль, обеспечивающий передачу всем остальным модулям ВК собственных параметров состояния. Каждый модуль ВК (в том числе и вычислительные) является контролируемым модулем.
Параметр состояния - параметр, который характеризует состояние модуля и используется при принятии решения о неисправности модуля или его компонента, например, температура модуля, величина потребляемого тока, наличие обмена между ЦП и ПМУ, аппаратная исправность, исправность интерфейсов и т.д.
Маркерный параметр - дискретный параметр, который формируется модулем на основе параметров состояния по определенному закону и содержит в себе заключение о нарушении какой-либо функции контролируемого модуля. Например, «Отказ программного обеспечения модуля», «Перегрев модуля» и так далее. Маркерные параметры формируют только контролирующие модули.
Конфигурация вычислительного комплекса - определенный набор работоспособных модулей, предназначенный для выполнения ВК заданной функции.
Статусное сообщение - сообщение, формируемое ПМУ каждого модуля вычислительного комплекса, содержащее в себе набор параметров состояния и может дополнительно содержать пользовательские данные.
Управляющее сообщение - сообщение, формируемое ПМУ любого контролирующего модуля по команде от пользовательского ПО, содержащее команду (отключение питания, перезагрузка, запрос расширенной диагностической информации и т.д.) для ПМУ контролируемого модуля.
Сервисный канал информационного обмена (СКИО) - канал информационного обмена между всеми модулями вычислительного комплекса, обеспечивающий передачу статусных сообщений и команд управления модулями.
Метод мажоритарного голосования - метод определения отказавшего модуля на основе большинства совпадающих независимых решений (голосов). Метод мажоритарного голосования реализуется в ПМУ каждого модуля.
Время голосования - выбираемый индивидуально для каждого ВК промежуток времени, учитывающий количество модулей в ВК и скорость передачи информации по СКИО таким образом, чтобы все контролирующие модули успели выдать управляющее сообщение.
Состояние «холодного» резерва - режим, при котором ПМУ модуля сохраняет работоспособность, в то время как функциональная часть модуля отключена.
Известно (RU, патент 109304, опубл. 10.10.2011) устройство управления восстановлением вычислительного процесса в трехканальной системе. Принцип действия устройства состоит в следующем. Устройство начинает работу в конфигурации 2/3, при этом формируются сигналы на осуществление тестового контроля, на восстановление канала по контрольной точке и при необходимости на реконфигурацию системы. Устройство функционирует следующим образом, в конфигурации 2/3 при несовпадении результатов решения задачи в каналах устройство формирует сигнал на проведение тестового контроля сбившегося канала на основании кода с выхода адреса неисправности регистра адреса неисправности. В случае признания канала исправным по результатам тестового контроля, устройство формирует команду на восстановление канала по контрольным точкам. Если восстановление успешно завершилось, то система продолжает функционировать в конфигурации 2/3. В противном случае устройство выдает команду на исключение неисправного канала из конфигурации. Исключение неисправного канала из конфигурации также может быть осуществлено по результатам тестового контроля. В двухканальной конфигурации при несовпадении результатов решения задачи в каналах устройство формирует команду на восстановление каналов по контрольным точкам. При успешном восстановлении системы функционирование продолжается в двухканальной конфигурации. В противном случае устройство формирует команду на тестовый контроль системы. По результатам тестового контроля неисправный канал исключается из конфигурации. В одноканальном режиме устройство не функционирует, т.к. встроенные средства контроля каналов отсутствуют.
Недостатком известного технического решения следует признать существенное снижение надежности функционирования при проявлении дефектов программных средств, приводящих к парным отказам системы.
Известно (RU, патент 139233, опубл. 10.04.2014) устройство контроля и управления реконфигурацией трехканальной вычислительной системы. Возможны два варианта работы устройства. Первый вариант характеризует работу устройства в случае отказа элементной базы вычислительного модуля. Второй вариант характеризует работу устройства в случае отказа версии программного обеспечения. При этом определение отказов происходит путем манипуляций с единичными (булевыми) логическими сигналами.
Недостатком известного технического решения следует признать работоспособность только в трехканальной системе и то, что оно не предназначено для применения в системе физически разнесенных модулей.
Известна (RU, патент 2595507, опубл. 27.08.2016) платформа интегрированной модульной авионики боевых комплексов, содержащая, по меньшей мере, один крейт.
Крейт снабжен модулем коммутатора, модулем графического контроллера, модулем ввода/вывода, каналом теле-видео изображения, соединенным со входами-выходами модуля графического контроллера, каналом информационного обмена, соединенного со входами-выходами модуля ввода/вывода. При этом модуль коммутатор соединен входами-выходами посредством детерминированного сетевого канала информационного обмена с модулем графического контроллера, с модулем ввода/вывода, с универсальным вычислительным процессорным модулем и с сопрягаемым оборудованием. Каждый модуль интегрированной модульной авионики боевых комплексов содержит встроенный в модуль независимый программируемый контроллер, предназначенный для контроля состояния модуля, управления электропитанием модуля, организации взаимодействия по сервисной шине, а все независимые программируемые контроллеры модулей (ПКМ) соединены входами-выходами между собой посредством сервисного канала информационного обмена (СКИО), предназначенного для обмена между всеми модулями платформы информацией о состоянии модулей и выдачи управляющих команд, на изменение состояния модуля.
Платформа обеспечивает расширение функциональных возможностей ИМА БК при одновременном повышении уровня ее надежности, гибкости реконфигурации и упрощении технологии применения вычислительных комплексов, базирующихся на ее применении.
Повышение уровня надежности достигается за счет использования СКИО для обмена информацией о состояниях между модулями и наличия возможности отключения неисправных модулей путем голосования
Указанное решение принято в качестве ближайшего аналога разработанного способа.
В качестве недостатков ближайшего аналога, предопределенных принципами ее построения (конструкцией), следует указать следующие:
- применение предопределенного набора модулей, объединенных в крейт,
- выдача команды на перезагрузку модуля может быть осуществлена только собственным ПКМ,
- не предусмотрена возможность включения модулей, находящихся в «холодном» резерве;
- отсутствует способ определения голосующих модулей.
Техническая задача, решаемая использованием разработанного способа, состоит в обеспечении работоспособности вычислительного комплекса при отказе одного или нескольких модулей из его состава.
Технический результат, достигаемый при реализации разработанного способа, состоит в повышении отказоустойчивости и достоверности контроля ВК.
Для достижения указанного технического результата предложено использовать разработанный способ динамической реконфигурации вычислительных комплексов модульной архитектуры на основе информации о состоянии модулей с использованием СКИО. В реализации разработанного способа СКИО может представлять собой последовательный магистральный интерфейс или любой иной интерфейс, обеспечивающий широковещательную и адресную рассылку сообщений.
При реализации разработанного способа динамической реконфигурации ВК модульной архитектуры определяют контролируемый модуль как отказавший на основании информации о состоянии модуля в статусных сообщениях, формируемых его подсистемой мониторинга и управления, передающихся по сервисному каналу информационного обмена, формируют управляющее сообщение и направляют его по сервисному каналу информационного обмена в подсистему мониторинга и управления отказавшего модуля, причем исполняют команду после получения управляющих сообщений более чем от половины голосующих модулей в течение времени голосования, а управляющее сообщение может содержать команду на отключение или перезагрузку отказавшего модуля, а также включение модуля, находившегося в резерве, при этом количество голосующих модулей определяют динамически в процессе работы вычислительного комплекса, по факту поступления сообщений от этих модулей с учетом параметров, указывающих на способность модуля голосовать (таких как наличие обмена между ЦП и ПМУ и исправность функциональной части модуля) и зависящих от назначения вычислений.
Предпочтительно при определении способности модуля голосовать, учитывают наличие обмена между центральным процессором и подсистемой мониторинга и управления и исправность функциональной части модуля.
Кроме того, отказавший модуль определяют по дополнительной информации, получаемой по другим имеющимся каналам информационного обмена.
Также, если отключение отказавшего модуля не было произведено, то ожидают в течение времени, эквивалентного времени голосования, а затем повторяют действия по формированию управляющих сообщений.
В некоторых вариантах реализации управляющие сообщения на отключение формируют для всех модулей, если конфигурация вычислительного комплекса после выявления и парирования отказа не является допустимой и не позволяет выполнять возложенные на вычислительный комплекс задачи.
Данный способ также позволяет осуществлять реконфигурацию ВК при наличии в нем модулей, находящихся в «холодном» резерве посредством передачи в их ПМУ управляющих сообщений на включение.
В основе разработанного способа лежит принцип сохранения работоспособности ВК при отказе одного или нескольких модулей из его состава. Достижение технического результата в части:
- Повышения отказоустойчивости осуществляется за счет независимости от функционального типа используемых в ВК модулей, возможности использовать находящийся в «холодном» резерве другой исправный вычислительный модуль, а так же введением возможности перезагрузить отказавший модуль управляющими командами со стороны других модулей ВК.
- Повышения достоверности контроля ВК осуществляется за счет добавления в систему контроля ВК механизма независимого контроля каждым вычислительным модулем каждого модуля ВК и динамического определения голосующих модулей.
Разработанный способ функционирует следующим образом:
Каждый модуль ВК формирует информацию о своем состоянии в виде параметров состояния и передает ее всем остальным модулям ВК по СКИО в статусных сообщениях. Для повышения отказоустойчивости работы способа и повышения достоверности контроля, модуль может передавать дополнительную информацию о собственном состоянии по любым другим имеющимся каналам связи. Дополнительная информация служит для улучшения диагностики состояния модуля и позволяет другим модулям ВК принимать более точные решения по управлению данным модулем (отключение, перезагрузка).
В процессе всех выполняемых ВК действий каждым контролирующим модулем осуществляется непрерывное наблюдение за состоянием остальных модулей ВК. Программное обеспечение контролирующего модуля на основе полученных параметров состояния определяет маркерные параметры контролируемых модулей. На основе данных, содержащихся в маркерных параметрах модуля, контролирующий модуль принимает решение о неисправности или отказе контролируемого модуля.
В качестве маркерных параметров могут использоваться:
- аппаратный отказ каких-либо элементов модуля;
- отсутствие связи с внешним устройством;
- отказ ПО модуля;
- сбой при инициализации;
- перегрев модуля;
- сбой конфигурации и другие.
При определении отказа контролируемого модуля ПМУ контролирующих модулей по команде от программного обеспечения формирует управляющее сообщение на отключение или перезагрузку отказавшего контролируемого модуля и передает его по СКИО. После получения управляющих сообщений от половины или более голосующих модулей в течение времени голосования ПМУ отказавшего контролируемого модуля исполняет полученную команду.
Решение о перезагрузке может приниматься в тех случаях, когда характер отказа говорит о возможности восстановления работоспособности модуля после перезагрузки (например, отказ ПО, сбой при инициализации и другое) или отсутствует резерв отказавшего модуля и его отключение приведет к недопустимой конфигурации ВК.
Количество голосующих модулей контролируемый модуль определяет динамически (в процессе работы ВК) по факту прихода сообщений от этих модулей с учетом параметров, указывающих на способность модуля голосовать (таких как наличие обмена между ЦП и ПМУ и исправность функциональной части модуля). После отправки управляющего сообщения, контролирующие модули ожидают поступления статусного сообщения от отказавшего контролируемого модуля об отключении/перезагрузке. Если отключение не было произведено по истечению времени голосования, то повторяют указанные выше действия по формированию данных для управляющих сообщений.
В случае наличия в «холодном» резерве модуля, позволяющего исполнять функции, аналогичные отказавшему модулю, контролирующие модули могут принять решение о его включении путем передачи управляющих сообщений по СКИО в ПМУ резервного модуля, при этом процедура голосования аналогична процедуре при отключении или перезагрузке.
В процессе функционирования ВК, реализующего данный способ можно выделить следующие режимы работы:
- инициализация ВК;
- штатная функциональная работа ВК;
- реконфигурация ВК со снижением уровня избыточности и сохранением функциональной работы системы;
- безопасное прекращение работы ВК.
С момента подачи питания модуль переходит в режим инициализации, после чего начинается режим штатной работы. В различных режимах механизм контроля может оперировать различными наборами параметров состояния.
Реконфигурация ВК осуществляется путем выключения отказавших модулей с перераспределением выполняемых задач на другие функционирующие модули, или включением модулей, находившихся в состоянии «холодного» резерва, посредством передачи в их ПМУ управляющих сообщений по СКИО.
В случае если контролирующий модуль определяет, что текущая конфигурация ВК не позволяет выполнять требуемые задачи, осуществляют прекращение работы ВК путем формирования и рассылки управляющих сообщений на отключение для всех модулей ВК.
Разработанный способ может быть проиллюстрирован следующим примером (см.чертеж).
Начальное состояние: ВК состоит из 8 вычислительных модулей. ВК находится в штатном режиме работы. Каждый модуль отсылает другим семи свое статусное сообщение посредством СКИО.
Каждый модуль анализирует статусные сообщения на предмет работоспособности модуля, их отправившего. Если контролирующий модуль решил, что работоспособность какого-то модуля нарушена (например, модуля 2), то он формирует и посредством СКИО шлет ему управляющее сообщение на отключение.
ПМУ модуля 2 подсчитывает количество модулей, приславших ему управляющие сообщения на отключение, и по получению управляющих сообщений от 4 исправных модулей (половина от общего количества модулей) (модуль за себя не голосует) ПМУ выключает модуль, снимая питание с его функциональной части.
Позднее при обнаружении аномалии в другом модуле ситуация повторяется, только для отключения теперь достаточно 3 исправных модулей (так как отключенный ранее модуль права голоса не имеет).
Таким образом, обеспечивается: во-первых, непрерывная диагностика модулей ВК между собой и отключение/изоляция сбойных модулей на протяжении всей работы ВК; во-вторых, отказоустойчивость ВК при его деградации (отказы модулей) - объективное обнаружение отказов осуществляется до тех пор, пока работоспособных модулей в ВК более двух.