УДК 681.518.54; 004.3.001.4
ПОДХОД К КОНТРОЛЮ БОЛЬШИХ ЦИФРОВЫХ СИСТЕМ СО СТРУКТУРОЙ ТИПА ТОРОИДАЛЬНОЙ РЕШЕТКИ
В. А. Ведешенков
Институт проблем управления им. В. А. Трапезникова РАН, г. Москва
Представлен подход к организации параллельного контроля больших цифровых систем со структурой типа тороидальной решетки. Контроль компонентов системы проводится в три этапа. На первом этапе параллельно проверяются компоненты подсистем, выделенных первичной раскладкой; на втором (третьем) этапе также параллельно проверяются подсистемы, включающие линии связи, смежные с узлами первичной подсистемы справа (снизу). Разработана организация контроля компонентов подсистемы из четырех узлов, расположенных в вершинах квадрата (2 х 2). Дан пример ее реализации.
ВВЕДЕНИЕ
Для решения задач, трудоемких в вычислительном отношении (например, задач обтекания, уравнений теплопроводности и т. п.), используются проблемно-ориентированные многопроцессорные вычислительные системы, решающее поле которых образует матричную двумерную конфигурацию со связями каждого процессорного элемента (ПЭ) с четырьмя (восемью) соседними ПЭ (например, матричная система в работах [1, 2]). При системном диагностировании больших цифровых систем — моделей многопроцессорных вычислительных систем с регулярной структурой, содержащих сотни и тысячи процессоров, необходимо организовать параллельное выполнение процедур системного диагностирования в различных частях (подсистемах) исходных анализируемых систем. В работе [2] представлен способ выделения подсистем достаточного размера для параллельного диагностирования больших цифровых систем со структурой типа тороидальной решетки. Показано, что для сокращения общего времени диагностирования системы целесообразно выделять подсистемы, состоящие из 9-ти узлов, расположенных в вершине квадрата
х
Далее представлен подход к организации контроля работоспособности больших цифровых систем (БЦС) со структурой типа тороидальной решетки, обеспечивающий достоверную проверку всех компонентов БЦС путем трехэтапного параллельного выполнения проверок ее подсистем, выделенных специальным образом.
1. ПОСТАНОВКА ЗАДАЧИ
Исходная ВС с регулярной структурой представлена диагностическим графом вида тороидальной ре-х
ют модули (процессоры) системы, причем каждый из них связан ребрами с р (= 4) соседними вершинами, тогда £ ненаправленных ребер между вершинами отображают линии связи между соответствующими модулями (процессорами). Допускаются устойчивые отказы ограниченного числа вершин и ребер, причем за время проведения процедур контроля новые отказы не возникают. Для описания результатов тестирования модулей, зависящих от технических состояний проверяющего и проверяемого модулей, в работе используется модель Барси—Грандони—Маестрини (БГМ) [3]. Для организации параллельных проверок граф исходной системы разбивается на подсистемы размера х
выделенной подсистеме будут использованы процедуры, подобные процедурам самодиагностирования из работы [4]. Запуском и организацией параллельных процессов контроля в различных подсистемах занимается исправный диагностический монитор (ДМ), который находится в процессоре, внешнем по отношению к решетке ПЭ. Требуется разработать подход к организации параллельных процессов контроля в БЦС, обеспечивающий достоверную проверку всех ее компонентов.
2. ПОДХОД К ОРГАНИЗАЦИИ КОНТРОЛЯ РАБОТОСПОСОБНОСТИ БЦС СО СТРУКТУРОЙ ТИПА ТОРОИДАЛЬНОЙ РЕШЕТКИ
Разработанный подход к организации параллельных процедур контроля БЦС со структурой типа тороидальной решетки заключается в следующем. На этапе разработки системы контроля на графе исходной БЦС рас-
х
образом выделяется g ~ подсистем первичной раскладки 5у, где 1=0, 1, (я2 — 1) — номер подсистемы.
Как отмечалось в работе [2], при таком размещении вершины графов смежных подсистем будут разделены ребрами, выходящими из одной подсистемы и входящими в смежную подсистему. Эти ребра не входят ни в одну из подсистем 5у и не будут проверяться при контроле этих подсистем.
Проведем первую реконфигурацию состава проверяемых подсистем: сдвинем границы первичной раскладки на графе исходной системы на один столбец вправо и образуем подсистемы . Тогда все ребра, соединяющие правые вершины любой подсистемы с соответствующими левыми вершинами правой смежной подсистемы 5^, окажутся в составе подсистемы . Проверки этих ребер вместе с вершинами, которые они соединяют, определяют необходимое содержание второго этапа контроля исходной БЦС.
Проведем вторую реконфигурацию состава проверяемых подсистем: сдвинем границы первичной раскладки на графе исходной системы на одну строку вниз и образуем подсистемы типа с1. Тогда все ребра, соединяющие нижние вершины любой подсистемы 5у с соответствующими верхними вершинами нижней смежной подсистемы 5а,, окажутся в составе подсистемы 5у с1. Проверки этих ребер вместе с вершинами, которые они соединяют, определяют необходимое содержание третьего этапа контроля исходной БЦС.
Информацию о взаимосвязях модулей, входящих в подсистемы 5у, 5у и с1, запомним с помощью трех таблиц состава Т{, Т1 и Т1 с1, кроме того, заготовим также три (пустые) рабочие таблицы КТ{, ЯТ1 и ЯТ1 с1; таким образом, на этапе разработки системы контроля нужно подготовить по £2 таблиц состава Т{, Т[ и Т[ й и по £ рабочих таблиц КТ{, КТ1 и ЯТ1 с1.
Контроль цифровой системы будет полным, если проверены все модули системы и линии связи в обоих направлениях. Так как увеличение размера (значения п) отдельной подсистемы приводит к увеличению времени ее контроля, то для сокращения времени контроля БЦС благодаря параллельному выполнению процедур контроля в разных подсистемах целесообразно воспользоваться разбиением общего графа на подсистемы размера х
с точностью до подсистемы: данная подсистема — работоспособна или нет. Напомним, что в работе [2] пред-
х
что позволяет организовать диагностику уже с точностью до отдельных компонентов графа БЦС — модуля и ребра.
Характерное свойство модели БГМ состоит в том, что нулевое значение результата проверки исправного модуля не зависит от состояния (исправен—неисправен) проверяющего модуля. Другими словами, нулевой результат проверки служит «индикатором» исправности проверенного модуля и «индикатором» достоверности результатов тех проверок, которые затем будет выполнять этот модуль.
Поэтому в разработанном методе контроля передача управления очередному проверяющему модулю выполняется только в том случае, если его проверка дала нулевой результат (в терминологии работы [5], передача по О-путям).
Для реализации последовательного выполнения проверок разными проверяющими модулями на диагностическом графе каждой подсистемы и с1 выберем
такой путь, который обеспечит обход всех вершин диагностического графа каждой исправной подсистемы.
х
кольца, возможны два варианта такого пути: прямой и обратный, и четыре варианта выбора начала пути. Критерием выбора начальных вершин и направления прохождения по кольцу назначим общую вершину т1 Пп окончания трех путей, обходящих графы исправных подсистем Я/, и 5у
Для иллюстрации на рисунке показан граф фрагмента тороидальной решетки, содержащего четыре смеж-
х
показаны зачерненными кружками, внутренние ребра каждой подсистемы — утолщенными линиями, а дуги между подсистемами — более тонкими линиями. Пары цифр, разделенных запятой: 0,0; 0,1;..., 2,2; 2,3; определяют номера вершин, расположенных на пересечении ближайшего к номеру левого столбца и ближайшей к нему нижней строки; первая цифра в номере является номером подсистемы, в которую входит эта вершина, а вторая цифра — номером вершины в этой подсистеме. В общем случае, для БЦС номер подсистемы может
0,0 0,1 1,0 1,1
&
0,2 0,3 1,2
£о,а
2,0 2,1
¿»2 «3
2,2 2,3
Граф фрагмента тороидальной решетки
быть и многоразрядным числом, а не цифрой, как в данном примере.
Квадрат, включающий в себя вершины с номерами 0,0; 0,1; 0,2; 0,3, определяет состав подсистемы 50. После сдвига ее границ вправо на один столбец получим подсистему Б0 включающую в себя вершины 0,1; 0,3; 1,0; 1,2 и ребра (0,1 —1,0), (0,3—1,2), соединяющие подсистемы 50 и 5). После сдвига границ подсистемы 50 вниз на одну строку получим подсистему 50 с1, включающую в себя вершины 0,2; 0,3; 2,0; 2,1 и ребра (0,2—2,0), (0,3—2,1), соединяющие подсистемы 50 и 5,.
Возвращаясь к графу на рисунке, для подсистем 50, Б0 и 50 с1 выберем такие пути, которые оканчиваются в одной и той же вершине т0 Гш = 0,3 (опуская символ модуля и ограничиваясь только номерами модулей):
Р(80) = 0,1 ^ 0,0 ^ 0,2 ^ 0,3;
Р(50 г) = 0,1 ^1,0 ^1,2 ^ 0,3;
Р($0 с1) = 0,2 ^ 2,0 ^ 2,1 ^ 0,3.
Взаимное положение модулей в выбранных путях
/|(50), /|(50 ;.), /|(50 а) запомним так: в строках
Со„/< С0,у, С0 а/) таблицы состава (табл. 1) Т0( Г0 Г0 (/), первым преемником модуля т. запишем тот модуль тк], который является соседом справа модуля в выбранном пути.
В начале процесса контроля БЦС диагностический монитор выдает сигнал на проведение процедур конт-
Таблица 1
Таблицы состава подсистем 5„, ґ а
роля во всех подсистемах Sj, результаты которых запоминаются в соответствующих рабочих таблицах RTr По истечении определенного времени At] ДМ выдает сигнал на проведение контроля во всех подсистемах Sj , результаты которых запоминаются в соответствующих таблицах RT{ . Точно также, по истечении определенного времени А/, ДМ выдает сигнал на проведение контроля во всех подсистемах Sj d, результаты которых запоминаются в таблицах RT{ d. Наконец, по истечении
А
проверок из всех модулей ml fm, ml r fm, ml d fm, в которых заканчиваются пути проверки подсистем Sn Sj и Sj d, обрабатывает их и формирует диагноз: все компоненты подсистем Sj исправны или некоторые из них содержат компоненты, подозреваемые в отказе.
В случае исправности всех компонентов БЦС процедуры контроля будут выполняться по выбранным путям проверки каждой из подсистем Sj, Sj и Sj d. Если пути проверки подсистем Sj, Sj и Sj d выбраны так, что заканчиваются общим модулем trij fin, то число модулей, из рабочих таблиц которых нужно собирать информацию, сокращается втрое, что сокращает общее время контроля.
А. Остановимся подробнее на организации процедур контроля в каждой подсистеме Sj в БЦС со структурой типа тороидальной решетки. В начале контроля ДМ выдает команду во все подсистемы Sj. По этой команде в каждой подсистеме Sj начальный модуль тп должен выполнить следующие действия:
• из таблицы Tj выделить строку С; , переписать ее в рабочую таблицу RT{ (пока пустую), найти в строке Cj п номера преемников тк], тк7, ...', проверить их технические состояния и в клетки г к], г к7, ... строки Cj п таблицы RTj записать результаты проверок в двоичном коде: 0 — правильно, 1 — неправильно;
• оценить результаты проверок:
— если г к] = 0, то передать копию таблицы RTj и управление процессом контроля модулю тк] — соседу справа модуля тп в выбранном пути проверки;
— если г kl = 1, но один из других результатов (например, г к7) — нулевой, то передать копию таблицы RTj и управление процессом контроля соответствующему модулю (модулю тк7);
• если же проверки всех преемников тп дали единичные результаты, то модуль тп останавливает процесс контроля данной подсистемы St
Исправный модуль т. (=тк] или тк1, но не начальный модуль тн), получив управление от модуля тп:
— из таблицы Tj выделяет строку Cj f, переписывает ее в рабочую таблицу RT{, находит в строке С; номера преемников тк], тк7, ..., проверяет их состояния и в соответствующие клетки строки Cj j записывает двоичные результаты проверок:
— если результаты всех проверок — нулевые, то передает копию таблицы RT{ и управление процессом контроля модулю тк];
— если же получен хотя бы один единичный результат, то останавливает процесс контроля.
Каждый из следующих модулей выполняет аналогичные действия. Этот процесс проверок и «хождения» по
Строки С() г ca.r.f co.d.j Проверяющий модуль Проверяемые модули, результаты их проверок
mi тп 0. ü тп 0. ¿2
Q.0.1 Т0 0,1 0,0 0,3
Q.0.0 0,0 0,2 - 0,1 -
с '“0.0.2 0,2 0,3 - 0,0 -
г *-о.о.з 0,3 0,1 — 0,2 —
г O.r.O.l Т».г 0,1 1,0 _ 0,3 _
с О.г. 1.0 1,0 1,2 - 0,1 -
с *-0.г. 1.2 1,2 0,3 - 1,0 -
Ç). г. 0.3 0,3 0,1 — 1,2 —
Г *-0.1/. 0.2 Tn.d 0,2 2,0 _ 0,3 _
Q.i/,2.0 2,0 2,1 - 0,2 -
г *-0.і/. 2.1 2,1 0,3 - 2,0 -
г *-0.1/. 0.3 0,3 0,2 — 2,1 —
выбранному пути заканчивается, когда управление переходит к конечному модулю т1 Гш, который после выполнения своих проверок, запоминания их результатов закрывает таблицу КТ[ от изменений, отметив знаком «*» символ последней строки.
Такой детерминированный путь обхода вершин графа подсистемы возможен только при исправном состоянии всех ее компонентов.
Б. Спустя заранее определенное время после начала контроля подсистем 5у ДМ выдает начальным модулям т команду на выполнение контроля в подсистемах 5у . Действия модуля т и его исправных преемников аналогичны описанным ранее для модуля т и его преемников в подсистеме 5у. Различия связаны с заменой используемых таблиц: Т1 на Т1 , ЯТ1 на ЯТ1 ; и входящих в них строк: С[ п на С[ г п, С[ на С[ г С/+] г .. Как и в подсистемах конечный модуль т1 г после выполнения своих проверок, запоминания их результатов закрывает таблицу ЯТ1 для изменений.
В. После получения команды от ДМ модули т начинают выполнение контроля подсистем 5у Их действия и действия исправных преемников аналогичны описанным ранее для модулей т и его преемников в подсистемах .
Д
после второй реконфигурации ДМ собирает результаты проверок в виде таблиц ЯТ{, ЯТ1 , ЯТ1 (1с конечных модулей т[ Гш, т[ г Гш и т[ й Гт путей проверки подсистем 5у, 5у и 5у Ф обрабатывает их и формирует диагноз технического состояния компонентов БЦС. Если три пути проверки подсистем с одинаковым номером I заканчиваются общим модулем т1 г , то ДМ считывает содержимое таблиц ЯТ{, ЯТ1 и ЯТ1 (1 из этого модуля т1 г .
Обработка информации из таблиц ЯТ{, ЯТ1 и ЯТ1 с1 сводится к считыванию результатов проверок из соответствующих клеток этих таблиц и сравнению их с нулевым эталоном:
— если все результаты проверок совпадают с эталоном, то исправны все компоненты, участвовавшие в этих проверках;
— при несовпадении в составе проверенных подсистем есть компоненты, подозреваемые в отказе.
3. ПРИМЕР
Особенности разработанной организации контроля БЦС со структурой типа тороидальной решетки покажем на примере контроля подсистемы 50 и подсистем 50„ 50 с1, образующихся после двух реконфигураций подсистемы 50. Предположим, что между сеансами контроля в системе накопились отказы модуля с номером 0,0 (показан на рисунке пустым кружком) и примыкающей к подсистеме 50 линии связи (1,2—0,3), показанной пунктиром.
А. В начале контроля по команде ДМ начальный модуль 0,1 в подсистеме 50 выполняет следующие действия:
— из таблицы Т0 (см. табл. 1) выделяет строку С0 0 ], переписывает ее в рабочую таблицу ЯТ0 (пока пустую в
табл. 2), находит в строке С0 0 ] номера преемников 0,0; 0,3, проверяет их технические состояния и в клетки 0 а-р 0 V' ■■■ стРоки с0 0 ] записывает результаты проверок в двоичном коде: 0 — правильно, 1 — неправильно;
— оценивает результаты проверок: так как г к] = 1 (результат проверки модуля 0,0), но к7 = 0 (результат проверки модуля 0,3), то передает копию таблицы ЯТ0 и управление процессом контроля модулю 0,3 (нулевой результат, по которому передается управление, здесь и в последующих строках показан полужирным шрифтом).
Исправный модуль 0,3, получив управление от модуля 0,1:
— из таблицы Т0 выделяет строку С0 0,, переписывает ее в рабочую таблицу ЯТ0, находит в строке С0 0, номера преемников 0,1; 0,2; проверяет их состояния и в соответствующие клетки строки С0 0 , записывает нулевые результаты проверок, передает копию таблицы ЯТ0 и управление процессом контроля модулю 0,2. Модуль 0,2, получив управление от модуля 0,3, проверит своих преемников, обнаружит, что к7 = 1, и остановит процесс контроля.
Д
троля подсистемы 50 ДМ выдает начальному модулю 0,1 команду на выполнение контроля подсистемы 50 . Дальнейшие действия модуля 0,1 и последующих модулей аналогичны описанным ранее для модуля 0,1 и его преемников в подсистеме 50. Различия связаны с заменой используемых таблиц: Т0 на Т0 , ЯТ0 на ЯТ0 г; и входящих в них строк С0 на С0 В строке С0 0 ] таблицы ЯТ0 (см. табл. 2) показаны результаты проверок Г/ к] = к7 = 0 модулем 0,1 его преемников — модулей
Таблица 2
Информация к Примеру
Строки С0 р С С Чп/5 Проверяющий модуль Проверяемые модули, результаты их проверок
т. «'¿I 0.л> тп 0. п
с ^0,0,1 0,1 ЯТ0 0.0 1 0.3 0
^о?о?з 0.3 0.1 0 0.2 0
^0,0,2 0.2 0.3 0 0.0 1
с 0, г,0,1 0.1 Щ).г 1.0 0 0.3 0
1.0 1.2 0 0.1 0
с 0,г, 1,2 1.2 0.3 1 1.0 0
^0, ¿/, 0,2 0.2 2.0 0 0.3 0
с 0, й, 2,0 2.0 2.1 0 0.2 0
с 0, 2,1 2.1 0.3 0 2.0 0
* п '-().!/. 0.3 0.3 0.2 0 2.1 0
1,0 и 0,3; так как эти результаты — нулевые, модуль 0,1 передает копию таблицы ЯТ0 и управление процессом контроля модулю 1,0. Из следующей строки С0 ] 0 таблицы ЯТ0 видно, что, получив нулевые результаты проверок, модуль 1,0 передает копию таблицы ЯТ0 и управление процессом контроля модулю 1,2. Проверив своих преемников, модуль 1,2 обнаружит, что г} к] = 1, и остановит процесс контроля в подсистеме 50
Д
троля подсистемы 50 ДМ выдает начальному модулю 0,2 команду на выполнение контроля подсистемы 50 с1. Результаты действий модуля 0,2 и последующих модулей 2,0; 2,1 и 0,3 показаны в таблице ЯТ0 с1 (см. табл. 2). Так как последний модуль 0,3 не нашел исправного модуля, не исполнявшего функций проверяющего, то он закрыл таблицу ЯТ0 (1 для изменений, отметив знаком «*» символ строки С0 й 0 з
Д
верки подсистемы 50 с1 ДМ собирает результаты проверок в виде таблиц ЯТ0, ЯТ0 и ЯТ0 (1 с конечного модуля т0 г = 0,3 путей проверки подсистем 50, 50 и 50 ^ Так как только в подсистеме 50 с1 процесс контроля закончился в конечном модуле 0,3, ДМ считает только таблицу ЯТ0 (1, не обнаружит других таблиц (ЯТ0, ЯТ0 ) и сформирует диагноз: среди проверенных компонентов подсистем 50, 50 и 50 с1 есть компоненты, подозреваемые в отказе.
Для установления более точного диагноза нужно считать результаты проверок, хранящиеся в таблице ЯТ0 в модуле 0,2 и в таблице ЯТ0 в модуле 1,2. Объединив информацию из таблиц ЯТ0, ЯТ0 и ЯТ0 (1 и обработав ее, например, с помощью метода из работы [6], получим следующий диагноз:
— подозреваются в отказе модуль 0,0 и линия связи (1,2—0,3), что совпадает с исходной отказовой ситуацией;
— исправны остальные 7 модулей, входящие в подсистемы 50, 50 и 50
— исправны 14 линий связи;
— не определено состояние двух линий: (0,1—0,0), (0,2—0,0), так как отказавший модуль 0,0 «маскирует» состояние инцидентных линий;
— не определено состояние трех линий: (0,0—0,1), (0,0—0,2), (0,3—1,2), так как соответствующие проверки не выполнялись.
ЗАКЛЮЧЕНИЕ
Предложенный подход к организации параллельных процессов контроля больших цифровых систем со структурой типа тороидальной решетки заключается в следующем. На этапе разработки системы контроля на графе исходной большой цифровой системы раскладываются вплотную квадраты размера (2 х 2) и таким образом выделяются подсистемы первичной раскладки 5;.
Затем выполняется первая реконфигурация состава выделенных подсистем: путем сдвига границ подсистем первичной раскладки вправо на один столбец формируются подсистемы 5у . Далее выполняется вторая реконфигурация границ подсистем первичной раскладки: путем их сдвига вниз на одну строку формируются подсистемы 5у с1.
В начале процесса контроля БЦС диагностический монитор выдает сигнал на проведение контроля в подсистемах 5у, результаты которого запоминаются в рабочих таблицах ЯТГ По истечении определенного времени ДМ выдает сигнал на проведение контроля в подсистемах типа 5у , результаты которого запоминаются в рабочих таблицах ЯТ1 . Точно также, по истечении определенного времени ДМ выдает сигнал на проведение контроля в подсистемах типа с1, результаты которого запоминаются в рабочих таблицах ЯТ1 с1. Наконец, по истечении определенного времени ДМ собирает результаты проверок из всех модулей т[ Гш, т[ г Гш и т[ й Гт, в которых заканчиваются пути проверки исправных подсистем 5у, 5у и 5у с1, обрабатывает их и формирует диагноз: все компоненты проверенной БЦС исправны или она содержит компоненты, подозреваемые в отказе.
Автор выражает благодарность д-ру техн. наук М. Ф. Караваю за добро:>^штельное прочтение рукописи.
ЛИТЕРАТУРА
1. О структуре вычислителя для решения задач обтекания. Комплексный подход к проектированию / А. Н. Андрианов, К. И. Бабенко, А. В. Забродин и др. // Вычислительные процессы и системы. — М.: Наука, 1985. — Вып. 2. — С. 13-62.
2. Ведешенков В. А. Способ выделения подсистем достаточного размера для параллельного диагностирования больших цифровых систем с регулярной структурой // Проблемы управления. — 2006. — № 5. — С. 74—79.
3. Ведешенков В. А. О диагностировании отказавших модулей и связей в цифровых системах с использованием модели БГМ // Автоматика и телемеханика. — 2002. - № 2. -С. 159-171.
4. Ведешенков В. А. Организация самодиагностирования технического состояния цифровых систем // Там же. — 2003. - № И. - С. 165-182.
5. Пархоменко П. П. Определение технического состояния многопроцессорных вычислительных систем путем анализа графа синдромов // Там же. — 1999. — № 5. — С. 126—135.
6. Ведешенков В. А. Самодиагностирование возникающих отказов и их устранение в цифровых системах с реконфигурацией // Проблемы управления. — 2004. — № 3. — С. 48—61.
(495) 334-75-90
e-mail: vva@l9.ipu.rssi.ru
Статья представлена к публикации членом редколлегии
В. Д. Малюгиным. □