Организация диагностирования цифровых систем со структурой симметричного двудольного графа

УДК 681.518.54; 004.3.001.4

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

В.А. Ведешенков

Отмечено, что особенность цифровых систем со структурой в виде симметричного двудольного графа состоит в использовании равного числа компонентов двух типов: процессоров и блоков памяти. Разработана организация диагностирования систем с такой структурой с точностью до отдельного компонента (процессора, памяти, линии связи). На время диагностирования разнотипные устройства объединяются в проверяемые подсистемы одинакового состава. Рассмотрен пример организации диагностирования системы, состоящей из семи процессоров и семи блоков памяти.

Ключевые слова: цифровые системы, симметричный двудольный граф, компонент, диагностирование, проверяемые подсистемы.

ВВЕДЕНИЕ

Поиск исследователями новых, более эффективных, чем известные, структур связей сложных информационных систем показал, что по ряду параметров структуры в виде симметричных двудольных графов предпочтительнее структур в виде полных графов и полнодоступных двудольных графов [1]. Симметричным двудольным графом называется граф, состоящий из двух подмножеств вершин X и У равной мощности и ребер, у которых одна из концевых вершин принадлежит подмножеству Х(У), а другая — подмножеству У(Х). Пример такого графа показан на рисунке, где вершины подмножества Х обозначены кружками, а подмножества У — прямоугольниками. В числе возможных областей применения графов указанного семейства называют структуры многопроцессорных вычислительных систем (МВС), где, например, подмножество вершин Х представляет совокупность процессорных элементов или вычислительных машин, а подмножество вершин У — блоки или банки памяти.

Любой метод системного диагностирования технического состояния компонентов в цифровых системах (ЦС) предполагает, что модули, на которые разбивается исходная МВС, однородны и обладают функциональными возможностями, достаточными для реализации необходимых диагностических алгоритмов. Использование устройств

разных типов при построении систем со структурой в виде симметричного двудольного графа приводит к неоднородным системам, что не позволяет непосредственно применить системные методы диагностирования. Однако автоматическое диагностирование состояния компонентов подобных систем представляется необходимым, так как позволяет ускорить время восстановления работоспособности систем после обнаружения факта их неправильного функционирования. Кроме того, различие структур системы, представленной на рисунке, и неоднородной системы обработки радиолокационной информации не позволяет впрямую использовать метод самодиагностирования, предложенный в работе [2].

Далее представлен способ организации диагностирования состояния компонентов ЦС со структурой в виде симметричного двудольного графа. Он основан на подходе, описанном в работе

[2]: на этапах контроля и диагностирования связанные разнотипные устройства объединяются в проверяемые подсистемы, обладающие необходимыми функциональными возможностями для реализации диагностических алгоритмов.

Напомним, что в однородных ЦС при выполнении процессов контроля и диагностирования проверяющий модуль подает на входы проверяемого модуля последовательность проверок (тест), получает ответные реакции проверяемого модуля на этот тест, сравнивает их с эталонными, а результат сравнения оценивает в двоичной форме:

0 — результаты правильные, 1 — неправильные. В модели Барси — Грандони — Маестрини

[3], используемой в данной работе, предполагается, что нулевая оценка, выдаваемая проверяющим модулем, с большой вероятностью подтверждает исправность проверенного им модуля. Такая предпосылка модели БГМ существенно упрощает процедуру диагностирования, так как для идентификации исправных модулей достаточно 0-путей единичной длины (в терминологии работы [4]).

Как и в большинстве алгоритмов системного диагностирования, будем предполагать, что результаты проверок собираются и обрабатываются (дешифрируются) внешним устройством — диагностическим монитором (ДМ). По результатам дешифрации собранных результатов проверок обслуживающий персонал заменяет отказавшие компоненты и восстанавливает работоспособность МВС.

1. ПОСТАНОВКА ЗАДАЧИ

Исходная МВС со структурой в виде симметричного двудольного графа 0п представлена диагностическим графом, у которого п вершин подмножества X представляют процессоры системы, п вершин подмножества У — блоки памяти, 5 — степень вершин двудольного графа; т. е. каждая вершина подмножества Х

Будем считать, что допускаются устойчивые отказы ограниченного числа вершин и дуг, причем их неисправности таковы, что не влияют на работоспособность смежных модулей. Предполагается также, что в процессе диагностирования новые отказы не возникают. Для описания результатов тестирования компонентов используется модель БГМ. Запуском процессов диагностирования в различных подсистемах ЦС и обработкой полученных результатов занимается исправный ДМ, который находится в модуле, внешнем по отношению к диагностируемой ЦС.

Требуется разработать такой метод организации диагностирования ЦС со структурой в виде симметричного двудольного графа, который обеспечивает ДМ достоверной информацией для диагностирования состояния компонентов (процессоров, памятей, линий связи) системы.

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

Процесс диагностирования компонентов однородных систем включает в себя такие процедуры [5]:

— исполнение исправным модулем функций проверяющего модуля;

— нахождение пути от одного исправного модуля к другому исправному для передачи ему функций проверяющего модуля;

— дешифрация результатов выполненных проверок.

Для реализации подобных процедур в неоднородных системах со структурой в виде симметричного двудольного графа поступим следующим образом.

Проверяющим модулем mj назначим устройство активного типа (один из процессоров т1, ..., т7 в системе, представленной на рисунке), а в проверяемую подсистему Ц . к включим следующие компоненты: память р, процессор тк, линию связи 1._к между ними и линию связи 1._., соединяющую mj с р.. (Таким образом, индекс (/', I, к) подсистемы и.. к состоит из номера у проверяющего процессора, номера / проверяемой памяти и номера к проверяемого процессора.) Например, для системы на Рисунке в одну из проверяемых подсистем могут входить процессор т1 в функции проверяющего модуля, память р8 процессор т2 и линии связи 18_2 и 11-8.

Наличие 5 устройств памяти, связанных с одним процессором цифровой системы со структурой симметричного двудольного графа (5 = 3 для графа на рисунке), делает объединение различных устройств для формирования проверяемых подсистем неоднозначным. Выбор достаточно экономичного подмножества из числа всевозможных проверяемых подсистем является нетривиальной задачей, но здесь не рассматривается.

Тогда отдельная проверка (тест .. к) будет выполняться следующим образом. Получив управление в процессе диагностирования, проверяющий модуль (процессор) т. передает по линии I. . в память р. проверяемой подсистемы команды, необходимые для организации тестов самоконтроля в подсистеме и.. к- Процессор тк, получив и рас-

шифровав эти команды, осуществляет контроль процессора тк, линии 1{_к и памяти р. с помощью тестовых программ, хранящихся в памяти р.. Результаты выполненного теста . . к процессор тк за-

писывает в ячейки памяти р,, откуда их после очередного опроса памяти считывает процессор т., сравнивает с эталонами из собственной сверхоперативной памяти и формирует оценку г. . к: = 0, если результаты совпали с эталонами, 1 — в противном случае.

На основании полученных оценок процессор mj выбирает исправную подсистему Ц.* к*, процессору тк* из состава которой передает управление и необходимую информацию для продолжения процесса диагностирования. Все исправные процессоры находятся в ждущем режиме и периодически опрашивают заранее определенные ячейки памяти. Процессор тк*, обнаружив в памятир1 * команду на выполнение процесса диагностирования, выполнит необходимые процедуры, а после их завершения передаст управление следующему процессору с помощью того же механизма (через память одной из проверенной им подсистем).

Таким образом, в предлагаемом способе диагностирования неоднородных ЦС со структурой симметричного двудольного графа предполагается объединение разнотипных устройств исходной системы в проверяемые подсистемы одинакового состава с функциональными возможностями, достаточными для выполнения диагностических процедур.

3. .. КОМПОНЕНТОВ

ЦИФРОВОЙ СИСТЕМЫ СО СТРУКТУРОЙ СИММЕТРИЧНОГО ДВУДОЛЬНОГО ГРАФА

Контроль работоспособности однородной цифровой системы заключается в том, что каждый проверяющий модуль должен проверить техническое состояние своих преемников и соответствующих линий связи. Простейший способ выполнения проверок одного модуля разными проверяющими модулями — последовательный. Для его оптимальной реализации на диагностическом графе однородной системы нужно построить гамильтонов цикл, который обеспечит однократный об-

Схема цифровой системы со структурой в виде симметричного двудольного графа 07 3:

1—7 — процессоры; 8—14 — блоки памяти; ДМ — диагностический монитор

ход всех модулей исправной системы. В неоднородных системах функции проверяющих модулей исполняют активные модули (процессоры т.). Поэтому в неоднородных системах нужно построить цикл, проходящий через все активные модули (процессоры).

Но в системе со структурой в виде симметричного двудольного графа ^7 3 на рисунке) нельзя построить цикл, проходящий только через процессоры, так как между ними нет непосредственных связей. В цикле, выбранном для последующего примера, процессоры, номера которых выделены жирным шрифтом, чередуются с блоками памяти: 5 ^ 12 ^ 7 ^ 10 ^ 6 ^ 14 ^ 3 ^ 13 ^ 4 ^ 11 ^ ^ 2 ^ 8 ^ 1 ^ 9 ^ 5.

В таблице Т3 (табл. 1) показана информация о составе проверяемых подсистем Ц, к и номерах

Таблица 1

Таблица Г~ состава проверяемых подсистем

Проверяющий модуль

Проверяемые подсистемы и.. к, оценки результатов их проверок

у і

т іі,кі іиі иі,І2,к2 ГІАк1 и,в,* Г],і3,кі

Т5 5 (5-12), 12, (5-9), 9, (5-14), 14,

(12-7), 7 (9-4), 4 (14-6), 6

Т7 7 (7-10), 10, (7-12), 12, (7-13), 13,

(10-6), 6 (12-2), 2 (13-3), 3

Т6 6 (6-14), 14, (6-11), 11, (6-10), 10,

(14-3), 3 (11-2), 2 (10-1), 1

Т3 3 (3-13), 13, (3-14), 14, (3-8), 8, (8-2), 2

(13-4), 4 (14-5), 5

Т4 4 (4-11), 11, (4-13), 13, (4-9), 9,

(11-2), 2 (13-3), 3 (9-1), 1

Т2 2 (2-8), 8, (8-1), 1 (2-11), 11, (2-12), 12,

(11-4), 4 (12-5), 5

Т1 1 (1-9), 9, ,8 2 ),8 )2 -1 (-8 (1-10), 10,

(9-5), 5 (10-7), 7

00003030322302533153020123

проверяющих их модулей т., выбранных для последующего примера диагностирования компонентов системы Q1 3 (см. рисунок). В таблице семь строк Т, в каждой из которых для проверяющего модуля т. (у = 1, 2, ...,7) записаны номера компонентов, входящих в состав подсистем и. п к1, и. 2 к2

и U

j, i3, k3-

проверяемых модулем т, в ней также

есть поля для записи оценок результатов проверки . .1, k1, Г., г'2, к2 и г.), 3, к3 этих подсистем мОДуёем т.

Для отображения местонахождения процессоров в цикле контроля в строке Т табл. 1 проверяемые подсистемы записаны в таком порядке, что именно процессор тк1, входящий в проверяемую подсистему и. п к1, является в построенном цикле соседним справа для проверяющего процессора т. (после памяти ря). Например, в строке Т5 процессор т5 является проверяющим для подсистем Ц12 7, Ц 9 4 и Ц14 6, и в следующей строке Т7 в качестве проверяющего модуля записан процессор т7, являющийся в цикле контроля соседом справа для процессора т5 (после памяти р12).

Поскольку задачи, возлагаемые на системы диагностирования рассматриваемых ЦС и неоднородных ЦС, рассмотренных в статье [2], во многом сходны, то в организации системы диагностирования рассматриваемых здесь ЦС можно использовать большинство диагностических процедур, описанных в статье [2]. Поэтому в последующем тексте будем опускать некоторые подробности, заменяя их необходимыми ссылками.

Традиционно процесс контроля запускается диагностическим монитором через сравнительно небольшие интервалы времени, что препятствует накапливанию отказавших компонентов в системе.

Назначим в качестве начального модуля процесса контроля один из процессоров, обозначим его т .

п

По сигналу ДМ о начале контроля модуль тп выполняет следующие действия:

— из таблицы Т5 выделяет строку Тп, находит в ней индексы (п, /1, к1), (п, /2, к2), ... проверяемых

подсистем Цп, д,к1, ип,а,к2, ...;

— передает процессору тк1 (тк2, ...) команду «Выполнить самоконтроль подсистемы Цп а к1 (Цп 2 к2, ...) и передать результаты проверок в модуль тп».

Получив эту команду, модуль тк1

и передает полученные результаты проверок в модуль тп.

Модуёь тп формирует оценку гп, 1,к1 (гп,а,k2, ...),

равную 0, если результаты тестов совпали с эталонами, и равную 1 при несовпадении; записывает ее в соответствующие клетки строки Тп, затем анализирует полученные оценки:

— если среди полученных оценок есть как единичные, так и нулевые, то передает процессору одной из подсистем с нулевой оценкой управление для продолжения процесса контроля;

— если тесты самоконтроля всех проверявшихся подсистем дали единичные оценки, то ДМ должен запустить процесс контроля с другого проверяющего модуля.

Модуль тк1 (тк2,...) и каждый из последующих «соседей» по циклу контроля выполняют аналогичные действия в случае получения нулевых оценок. Этот процесс проверок и «хождения» по вершинам выбранного цикла заканчивается, когда управление возвращается к начальному модулю тп. Если же на одном из этапов контроля (кроме начального) получена хотя бы одна единичная оценка, свидетельствующая об обнаружении одного или нескольких отказавших компонентов, то процесс контроля прерывается, и система приступает к процессу диагностирования отказавших компонентов.

На основе информации, полученной в процессе контроля, ДМ запускает процесс диагностирования с того модуля т,, который первым получил хотя бы одну единичную оценку при проверке состояний связанных с ним подсистем и. а к1, и. а к2, ...; естественно, модуль т, должен быть исправным и проверенным в данном «сеансе» контроля, в частности, он не может быть начальным модулем процесса контроля тп.

Начальный модуль процесса диагностирования т. выполняет следующие действия:

— формирует промежуточную таблицу РТ., переписывая в нее строку Т. с оценками, полученными в процессе контроля (в индексе символа данной таблицы указан индекс проверяющего модуля т.);

— по нулевым оценкам в строке Т. выделяет подмножество индексов исправных модулей {#..} и одному из этих модулей (например, первому в строке Т, если он исправен) передает таблицу РТ и управление процессом диагностирования.

Если среди модулей, проверенных модулем т., нет ни одного исправного, то для получения диагностических результатов ДМ должен повторить запуск процесса контроля с другого начального модуля.

Очередной исправный модуль т , получив управление процессом диагностирования, выполняет следующие действия:

1) из таблицы состава Т5 выделяет строку Т, переписывает ее в таблицу РТ., полученную от предшественника — модуля т. (ту-1);

2) в строке Т, выделяет индексы (V, /1, к1), (V, /2, к2)... проверяемых подсистем Ц л к1, Цй к2, ..., выдает команды на самоконтроль этих подсистем, получает результаты этих проверок и в клетки гу п к1, (гу а к2, ...), ... строки Ту записывает оценки результатов выполненных тестов;

3) по нулевым оценкам проверок в строке Тг выделяет подмножество {#,} индексов исправных «преемников» — проверенных модулей, сравнивает индексы из подмножества {#,} с индексами строк в таблице РТ:.

— если один индекс (или больше) из подмножества {#,} отсутствует в списке индексов строк в таблице РТт., то передает модулю с этим индексом таблицу РТ,. и управление процессом диагностирования;

— если список {#,} пуст или все индексы {#,} — в списке индексов строк в таблице РТ,, то переход к п. 4;

4) находит один из исправных модулей, еще не исполнявших функции проверяющего, и передает ему таблицу РТ, и управление диагностированием.

Для нахождения одного из исправных модулей, еще не исполнявших функций проверяющего модуля, модуль т, находит индексы {#,*} исправных модулей строки Т,* и сравнивает их с индексами строк в таблице РТ,. Если при сравнении списков индексов окажется, что

— один индекс (или больше) из подмножества {#,*} отсутствует в списке индексов строк в таблице РТ,, то модуль т, передает модулю с этим индексом (V + 1) таблицу РТ.. и управление диагностированием;

— список {#,*} пуст или все индексы {#,*} — в списке индексов строк в таблице РТ,, то модуль т, переходит к анализу предыдущей строки Т,*-1.

Эти действия выполняются поочередно снизу вверх, начиная с нижней строки Ту. При нахождении исправного модуля т, + 1 в строке Т,* управление диагностированием и таблица РТ, передаются этому модулю снизу вверх через проверяющие модули т,,..., т,*. Если при достижении верхней строки Т. окажется, что и в этой строке нет исправ-

ного модуля, не исполнявшего функций проверяющего модуля, то поиск прекращается, и модуль ту пересылает в ДМ таблицу РТ.для обработки полученных результатов проверок.

Процедура обработки полученных результатов проверок достаточно полно изложена в работе [2]. Поэтому в данном тексте эта процедура будет показана на примере.

4. ПРИМЕР

Особенности разработанной организации диагностирования покажем на примере ЦС со структурой симметричного двудольного графа отказов (система 07 3 на рисунке).

В цикле, выбранном для данного примера, процессоры, номера которых выделены жирным шрифтом, чередуются с блоками памяти: 5 ^ 12 ^ 7 ^ 10 ^ 6 ^ ^ 14 ^ 3 ^ 13 ^ 4 ^ 11 ^ 2 ^ 8 ^ 1 ^ 9 ^ 5. Таблица состава Г5, предназначенная для организации тестирования в системе 07 3, приведена в табл. 1.

Предположим, что из-за большого интервала между циклами контроля в рассматриваемой ЦС накопились отказы двух модулей 6 и 8 и двух линий связи (4-13) и (5-12).

По сигналу ДМ о начале контроля начальный модуль 5 выполнит следующие действия: из таблицы Т8 (см. табл. 1) выделит строку Т5, найдет в ней индексы (5, 12, 7) (5, 9, 4), (5, 14, 6) проверяемых подсистем Ц , 12 , 7, Ц , 9 , 4, Ц , 14 , 6, передаст модулю 7 (4, 6) команду «Выполнить самоконтроль подсистемы и5 12 7 (Ц 9 4, и5 14 б) и вернуть результаты проверок в модуль 5».

Получив эту команду, модуль 7 (4, 6) выполнит самоконтроль подсистемы Ц 12 7 (Ц 9 4, Ц 14 б) и передаст полученные результаты проверок модулю 5.

Модуль 5 формирует оценки Г5 12 7 = 1, Г5 9 4 = 0, Г5 14 6 = 1, записывает их в соответствующие клетки строки Т5

Модуль 4 выполнит аналогичные действия:

— передаст в подсистемы Ц 13 3, и4 11 6, Ц 9 1 команду «Выполнить самоконтроль и вернуть результаты проверок в модуль 4»;.

— получит оценки результатов контроля г4 13 3 = 1, Г4 11 6 = 1, Г4 9 1 = 0, проанализирует их: так как среди полученных оценок есть единичные (г4 13 3 = 1, Г4 11 6 = 1), то заведомо исправный модуль 4 перейдет к процессу диагностирования отказавших компонентов и выполнит следующие действия:

— образует промежуточную таблицу РТ4 и перепишет в нее строку Т4 с полученными оценками результатов проверок;

— по нулевым оценкам в строке Т4 выделит индекс исправной подсистемы Ь/4 9 1; в котором найдет номер исправного модуля {#4 = 1}, которому передаст таблицу РТ4 и управление процессом диагностирования.

В свою очередь, модуль 1 выполнит следующие действия:

— из таблицы Т5 (табл. 1) выделит строку 7, перепишет ее в таблицу РТ4, в строке 7 найдет индексы проверяемых подсистем Ц 8 2 Ц 9 5 и Ц 10 7, в которые передаст команду «Выполнить самоконтроль и вернуть результаты проверок в модуль 1»;

— получит оценки результатов контроля Г1 8 2 = 1,

Г1 , 9, 5 = 0, Г1 , 10,7 = 0;

— по нулевым оценкам в строке 7 выделит индексы исправных подсистем Ц 9 5 и Ц 10 7, в которых найдет номера исправных модулей {^1 = 5, 7} и первому из них (модулю 5) передаст таблицу РТ4 и управление процессом диагностирования.

Модуль 5 вместо проверки подсистем Ц 12 7, Ц 9 4 и Ц 14 6 выберет из строки 7 результаты их проверок (на этапе контроля) г5 12 7 = 1, г5 9 4 = 0, г5 14 6 = 1 и определит, что исправен модуль 4. Но так как модуль 4 уже есть в числе проверяющих модулей на этапе диагностирования, то модуль 5 должен искать исправный модуль для исполнения функций проверяющего модуля среди ранее проверенных. В данном случае в предыдущей строке 7 есть нулевые оценки проверок модулей 5 и 7 Таким образом, модуль 5 через модули 9, 1 и 10

должен передать модулю 7 таблицу РТ4 и управление дальнейшим процессом диагностирования.

Модуль 7 выполнит необходимые проверки подсистем Ь7 10 6, Ь7 12 2 и Ь7 13 3, определит, что среди его «преемников» есть два исправных модуля: 2 и 3, и первому из них (модулю 2) передаст таблицу РТ4 и управление дальнейшим процессом диагностирования. В свою очередь, модуль 2 после проверок своих «преемников» — подсистем Ь2 11 4, Ц 8 1 и Ь2 12 5 выяснит, что в этих подсистемах один исправный модуль 4, который уже есть в числе проверяющих модулей на этапе диагностирования. Поэтому, как и модуль 5, модуль 2 должен искать исправный модуль для исполнения функций проверяющего модуля среди ранее проверенных. В данном случае в предыдущей строке Т7 есть нулевые оценки проверок модулей 2 и 3. Таким образом, модуль 2 через модули 12, 7 и 13 должен передать модулю 3 таблицу РТ4 и управление дальнейшим процессом диагностирования.

В свою очередь, модуль 3 после проверок своих «преемников» — подсистем Ц 14 5, Ц 13 4 и Ц 8 2 выяснит, что исправный модуль 5 уже есть в числе проверяющих модулей на этапе диагностирования. Поэтому, как и модули 5 и 2, модуль 3 будет искать исправный модуль для исполнения функций проверяющего модуля. Не обнаружив такого модуля в расположенных выше строках таблицы РТ4, так как все исправные модули уже исполняли подобные функции, модуль 3 закончит процесс диагностирования и перешлет в ДМ таблицу РТ4 для обработки полученных результатов проверок.

Для обработки и дешифрации результатов ДМ переписывает их из таблицы РТ4 в заранее заготовленную

Таблица 2

Информация к Примеру

Строка Tj Проверяющий модуль Проверяемые подсистемы и 1 к> оценки их проверок

т! иkl j'I.kl Uj,i2,k2 rj,i2,k2 Uj,i3,k3 rj,i3,k3

Строки с результатами контроля

75 5 (З-12), 12, (12-7), 7 1 ,P 4 ),P 4), (-З (P- О (З-14), 14, (14-6), 6 1

74 4 (4-13), 13, (13-3), 3 1 Таблица PT4 (4-11), 11, (11-6), 6 1 (4-P), P, (P-1), 1 0

74 4 (4-13), 13, (13-3), 3 1 (4-11), 11, (11-6), 6 1 (4-P), P, (P-1), 1 О

71 1 (1-8), 8, (8-2), 2 1 (1-P), P, (P-З), З О (1 1 Ki 1 ),7 ), 1 , О

75 5 2, 7 1 12 -1 (З (1 1 (З-P), P, (P-4), 4 О (З-14), 14, (14-6), 6 1

7 77 7 1 (7- (1 1 (7-12), 12, (12-2), 2 О (7-13), 13, (13-3), 3 О

7 72 2 (2-11), 11, (11-4), 4 О ,8 1 ),8 )1 (-2 (-8 1 (2-12), 12, (12-З), З 1

7 73 3 (3-14), 14, (14-З), З О (3-13), 13, (13-4), 4 1 ,8 2 ),8 )2 (-3 (-8 1

диагностическую таблицу Тв [2]. В табл. 3, а и 3, б представлены две части таблицы Тв после обработки результатов из таблицы РТ4 (см. табл. 2). Поясним структуру этих таблиц. В клетках левого столбца перечислены компоненты проверяемых подсистем и.; к, взятые из соответствующих клеток таблицы состава Т5 (см. табл. 1), а клетки следующего столбца предназна-

чены для записи оценок г•. і к проверок этих подсистем, полученных в процессе диагностирования. Последующие столбцы Тв обозначены символами одиночных компонентов системы 07 3: процессоры — символами и с номерами 1 — 7, блоки памяти — символами и с номерами 8 — 14, линии связи — символами I с номерами начальной и конечной вершин. Нетрудно заметить,

Таблица 3а

Диагностическая таблица Т„

Проверяемые подсистемы г.. /Л

5-12), 12, 12-7), 7

«о ск 0

5-14), 14, 14-6), 6 1

7-10), 10, 10-6), 6 1

7-12), 12, 12-2), 2 0

7-13), 13, 13-3), 3 0

6-14), 14, 14-3), 3 —

6-11), 11, 11-2), 2 —

6-10), 10, 10-1), 1 —

3-13), 13, 13-4), 4 1

3-14), 14, 14-5), 5 0

оо <ч ),8 ),2 С>с 1

4-11), 11, 11-2), 2 0

4-13), 13, 13-3), 3 1

4-9), 9, 9-1), 1 0

2-8), 8, 8-1), 1 1

2-11), 11, 11-4), 4 0

2-12), 12, 12-5), 5 1

1-9), 9, 9-5), 5 0

1-8), 8, 8-2), 2 1

1-10), 10, 10-7), 7 А0 А1 0

Компоненты системы

и5

15-

12

и12

112-

7

и7

17-

10

и10

110-

и6

и8

11-

10

11-

и2

12-

и11

111-

2

111-

4

и4

0

0

0

0

0

0

Z

0

*

1

1

0

0

0

0

0

0

0

1

1

что в столбце Ц; к проверяемых подсистем каждая линия показана дважды: в прямом и инверсном направлении, например (5—12) и (12—5), (12—7) и (7—12) и т. д. Однако в списке отдельных компонентов каждая из линий записана один раз для сокращения ширины табл. 3, а и 3, б.

Вхождение компонента ик (/—) в состав подсистемы иг.; к, приведенной в левом столбце таблицы Тв, отме-

чается знаком «*», поставленным в клетку на пересечении столбца ик,

В нижней части таблицы Тв находятся три строки А0, А1 и А^, предназначенные для записи результатов обработки полученной информации.

Таблица 3б

Диагностическая таблица Г

D

Проверяе-

мые подсистемы иш г..

5-12), 12,

12-7), 7

5-9), 9, 0

9-4), 4

5-14), 14, 1

14-6), 6

7-10), 10, 1

10-6), 6

7-12), 12, 0

12-2), 2

7-13), 13, 0

13-3), 3

6-14), 14, —

14-3), 3

6-11), 11, —

11-2), 2

6-10), 10, —

10-1), 1

3-13), 13, 1

13-4), 4

3-14), 14, 0

14-5), 5

3-8), 8, 1

8-2), 2

4-11), 11, 0

(11-2), 2

4-13), 13, 1

13-3), 3

4-9), 9, 0

9-1), 1

2-8), 8, 1

8-1), 1

2-11), 11, 0

(11-4), 4

2-12), 12,

12-5), 5 1

1-9), 9, 0

9-5), 5

1-8), 8, 1

8-2), 2

1-10), 10, 0

10-7), 7

А

А1

Компоненты системы

u13

14-

13

u3

16-

11

13-

14

u14

114-

5

13-8

u9

19-1

13-

13

u1

14-9

15-9

16-

14

12-

12

17-

13

1

0

0

*

*

*

1

1

1

1

0

1

0

0

0

0

1

Обработка записей из таблицы РТ4 заключается в

следующем:

• из строк Т4, Т и Т3 таблицы РТ4 выделены оценки результатов проверок г4, 13 , 3 = 1, г4, 116 = 1, г4, 9, 1 = 0, ..., г3 14 5 = 0, г3 13 4 = 1, г3 8 2 = 1 и записаны в соответствующие клетки столбца г. ; к табл. 3, а и 3, б, три клетки этого столбца заполнены прочерками «—»; в этих строках и сохранились знаки «*»;

• значения 0 и 1, записанные в столбце г.; к, переписаны в клетки той же строки Ц; к, отмеченные знаком «*»;

• заполнены прочерками «—» клетки строк А0, А1, А^;

• после этого в клетки этих строк записаны результаты диагностирования в соответствии со следующими правилами:

— в к-ю клетку строки А0 записан нуль, если в вышележащих клетках этого столбца есть хотя бы один нуль;

— в клетки на пересечении строки А1 и столбцов, озаглавленных символами вершин и6 и и8, записаны единицы, так как в вышележащих клетках этих столбцов есть хотя бы одна единица и нет ни одного нуля;

— в клетки на пересечении строки А1 и столбцов, озаглавленных символами дуг /(5—12), /(4—13) записаны единицы, так как в этих столбцах нет ни одного нуля и каждая из вершин, которые связывают эти линии, исправна (в соответствующих клетках строки А0 записан нуль),

— в шести клетках строки А^, озаглавленных символами дуг /(/—/), записан символ 2, так как хотя бы одна из вершин (у или г), которые связывает каждая из этих линий, подозревается в отказе (в соответствующей клетке строки А1 записана единица);

• расшифровка полученных записей в строках А0, А1 и А^ дает следующие диагностические заключения:

— исправны 25 компонентов, номера которых определяются местоположением нулевых записей в строке А0;

— в соответствии с местоположением единиц в строке А1 подозреваются в отказе процессор 6, блок памяти 8, линии связи (5—12) и (4—13), что совпадает с номерами компонентов в исходной отказовой ситуации;

— в соответствии с местоположением символов Z в строке А^ остались неопределенными состояния линий (10—6), (1—8), (2—8), (6—11), (3—8), (6—14), так как их проявления «маскируются» неисправным состоянием одной из вершин (6 или 8), которые они соединяют.

Таким образом, идентифицированы состояния 29-ти

из 35-ти компонентов системы 07 3.

ЗАКЛЮЧЕНИЕ

Особенность цифровых систем (ЦС) со структурой в виде симметричного двудольного графа состоит в наличии компонентов разных типов, на-

пример, процессоров и блоков памяти. Неоднородность компонентов ЦС подобной структуры не позволяет впрямую применять методы системного диагностирования, разработанные для однородных ЦС.

Предложен способ диагностирования компонентов ЦС со структурой в виде симметричного двудольного графа, в основе которого лежит объединение связанных разнотипных устройств на этапах контроля и диагностирования в проверяемые подсистемы одинакового состава. С учетом полученной таким образом одинаковости состава проверяемых подсистем разработана организация диагностирования отказавших компонентов в ЦС подобной структуры.

Показан пример организации диагностирования отказавших компонентов в системе, состоящей из семи процессоров и семи блоков памяти; требуемая точность диагностирования — до отдельного компонента ЦС: процессор, память и линия связи между ними. В данном примере получен правильный результат: диагноз совпадает с исходной отказовой комбинацией из четырех компонентов. Но можно подобрать такие сочетания неисправных компонентов, диагноз которых даст неточный или неправильный результат. Работы по определению меры диагностируемости (числа правильно диагностируемых отказавших компонентов, расположенных произвольным образом) для ЦС подобной структуры неизвестны.

ЛИТЕРАТУРА

1. Каравай М.Ф., Пархоменко П.П., Подлазов В.С. Комбинаторные методы построения двудольных однородных минимальных квазиполных графов (симметричных блок-схем) // Автоматика и телемеханика. — 2009. — № 2. — С. 153—170.

2. Ведешенков В.А. Способ самодиагностирования неоднородных цифровых систем // Проблемы управления. — 2005. — № 4. — С. 33—40.

3. Barsi F, Grandoni F., Maestrini P. A theory of diagnosability of digital systems // IEEE Trans. Comput. — 1976. — Vol. C-25, № 6. — P. 585—593.

4. Пархоменко П.П. Определение технического состояния многопроцессорных вычислительных систем путем анализа графа синдромов // Автоматика и телемеханика. — 1999. — № 5. — С. 126—135.

5. Ведешенков В.А. Организация самодиагностирования технического состояния цифровых систем // Автоматика и телемеханика. — 2003. — № 11. — С. 165—182.

Статья представлена к публикации членом редколлегии чл.-корр. РАН П.П. Пархоменко.

Ведешенков Виктор Алексеевич — д-р техн. наук, гл. науч. сотрудник, Институт проблем управления им. В.А. Трапезникова РАН,

(495) 335-75-90, И vva@ipu.ru.