№ 2 (50) 2014
И. О. Атовмян, докт. техн. наук, профессор НИЯУ МИФИ, г. Москва, [email protected] Е. Ф. Березкин, канд. техн. наук, доцент НИЯУ МИФИ, г. Москва, [email protected] С. С. Ковалевский, докт. техн. наук, профессор НИЯУ МИФИ, г. Москва, [email protected] В. Б. Шувалов, канд. техн. наук, доцент, и. о. зав. кафедрой НИЯУ МИФИ, г. Москва,
оптимизация тестирования сложных цифровых устройств
В статье изложены основные принципы объединения отдельных тестовых проверок модулей, составляющих цифровое устройство, в единую тест-программу. Объединение проверок проводится при неполной информации относительно реакций неисправного устройства. Формулируются свойства оптимально упорядоченной последовательности проверок в тесте. Предлагаются эвристические алгоритмы упорядочения проверок.
Ключевые слова: цифровое устройство, модуль, проверка, признак оптимальности, упорядоченная последовательность, тест-программа.
введение
Построение контролирующих и диагностических тест-программ сложного цифрового устройства обусловлено необходимостью проведения анализа его реакций на тестовые воздействия при различных неисправностях. Такой анализ представляет собой длительную и трудоемкую процедуру, и для всех неисправностей рассматриваемого класса практически не может быть проведен в приемлемые сроки [1]. При этом объединение отдельных тестовых испытаний в тест-программу, предназначенную для автоматического испытания, приходится проводить при неполной информации относительно реакций не только неисправной системы, но и неисправного модуля.
К такой ситуации приходят всякий раз, когда устройство настолько сложно, что моделирование или какой-либо иной способ изучения проявления неисправностей в устройстве как едином целом практически невозможно. Обычно устройство представляется в виде композиции модулей (рис. 1), для которых можно построить тестовые воз-
действия известными способами. Для каждого такого модуля строятся проверки (тестовые испытания с эталонными кодами) при условии исправного состояния остальных модулей, и затем полученные проверки объединяют в единую тест-программу устройства, располагая их в определенной последовательности. В связи с тем, что при автоматическом последовательном проведении проверок результаты отдельных проверок не являются независимыми, возникают вопросы, в каком порядке лучше выполнять проверки при построении контролирующего теста и существуют ли дополнительные ограничения на требования по наличию у по-
Рис. 1. Цифровое устройство с модульной архитектурой
ПРИКЛАДНАЯ ИНФОРМАТИКА /-
' № 2 (50) 2014
следнего определенных диагностических свойств.
Контролирующий тест
Сделаем ряд предположений.
1. Если процесс проверки начался, то ее результат не зависит от результатов предварительно проведенных проверок. Это предположение более слабое, чем предположение о выполнении предварительной установки при проверках и отсутствии неисправностей установочных цепей, так как принципиально возможно осуществить проверку устройства, в том числе и управляющих цепей, вне предположений о предварительной установке.
2. Если реакция устройства на тестовое воздействие при какой-либо неисправности неизвестна, то осуществимость автоматического перехода к проведению следующей проверки под вопросом. Другими словами, при отсутствии достаточно подробных данных анализа нельзя исключить потерю управления тест-программой.
3. Если тест-программа теряет управление, то об этом можно судить по некоторым внешним проявлениям в поведении тест-программы.
Уточним использование некоторых понятий. Исходом выполнения проверки назовем совокупность сигналов, доступных наблюдению и анализу. Будем считать, что неисправность обнаруживается данной проверкой, если исход проверки при наличии этой неисправности отличен от исхода проверки в случае исправного состояния устройства. В противном случае будем считать, что неисправность данной проверкой не обнаруживается.
Допустим, что в устройстве возможна лишь одиночная неисправность f из класса Е. С учетом сделанных предположений можно утверждать, что совокупность проверок, проведенных в произвольном порядке, обеспечивает полную (в заданном классе) проверку устройства, если для каждого /'-го модуля существует проверка t ,, которая обеспечивает полный контроль соответствующего модуля (в классе неисправностей этого модуля, являющемся подклассом
класса Е). При допущении двух или более Ц неисправностей устройства, принадлежащих различным модулям, полнота контроля ^ при произвольном порядке следования про- со верок, строго говоря, не гарантирована, поскольку принципиально возможна взаимная | маскировка неисправностей, принадлежа- | щих различным модулям. На практике при :§ построении тест-программ обычно пренебрегают возможностью взаимной маскировки неисправностей различных модулей и на- ^ личием кратных неисправностей. Допуская лишь одиночную неисправность класса Е, ^ рассмотрим задачу объединения проверок и с более общих позиций в отношении данных (характеристик) объединяемых проверок. §
Допустим, что для устройства имеется п проверок, каждая из которых I, характери- ^ зуется тремя множествами неисправностей: L/ — множество неисправностей устройства Ц с Е , о которых известно, что они обнаруживаются проверкой t¡. Будем называть это множество множеством обнаруживаемых неисправностей.
М — множество неисправностей устройства М1 с Е , о которых неизвестно, обнаруживаются они или не обнаруживаются проверкой t¡. Сюда относятся, например, те неисправности, которые не моделировались или вовсе не принимались в расчет при разработке проверки tj. Назовем это множество множеством «неопределенных» неисправностей.
N — множество неисправностей Ni с Е, о которых известно, что они не обнаруживаются проверкой tj. Назовем его множеством необнаруживаемых неисправностей.
Проверки п модулей можно рассматривать как проверки устройства, характеристики каждого из которых удовлетворяют соотношению (см. рис. 2а)
Ц и М1 и N = Е. (1)
Последовательное автоматическое выполнение п проверок ^ некоторого устройства можно рассматривать как выполнение одной составной проверки Т с характеристиками Цп, Мп, М1, имеющими соответственно тот же смысл (см. рис. 2б).
№ 2 (50) 2014
Выразим характеристики теста Т через характеристики его компонент (проверок) t¡. Основываясь на сделанных предположениях, можно утверждать, что неисправность обнаруживается в том и только в том случае, когда известно, что она обнаруживается хотя бы одной из проверок tj. Отсюда
ш = и Ш.
(2)
О проявлении неисправности невозможно ничего утверждать, если неисправность принадлежит хотя бы одному множеству «неопределенных» неисправностей М и, кроме того, не принадлежит ни одному множеству обнаруживаемых неисправностей L¡. Таким образом, множество «неопределенных» неисправностей для теста можно выразить как
п п п п
Мп=UMj п ПМ и N)=ПМ и N )\Пч. (3)
¡=1 ¡=1 ¡=1 ¡=1
Наличие неисправности не будет обнаружено тестом в том и только в том случае, если она не будет обнаруживаться каждой проверкой tj. Поэтому множество неисправностей, о которых можно утверждать, что они не обнаруживаются тестом Т, выражается следующим образом:
Чп = р| N ¡.
(4)
со
0
1
¡3
5
СО
о
6
I
I
Из (2), (3), (4) видно, что характеристики теста Т при имеющихся сведениях относительно каждой из неисправностей f е Е
Шп и Мп и Чп = Е.
(5)
Контролирующая тест-программа устройства считается тем лучше, чем более мощным является множество Шп. Из (2) в силу коммутативности операции объединения множеств [2] следует, что порядок проверок в тест-программе при контроле всего устройства несущественен.
Диагностирующий тест
Рассмотрим теперь задачу объединения тех же проверок с целью получения контролирующей тест-программы с дополнительным требованием максимальной возможности локализации неисправности в рассматриваемом устройстве, которое, очевидно, зависит от способности тест-программы не терять управление при наличии неисправностей.
Определение. Обнаруживаемая проверкой неисправность диагностируема, если при автоматической организации проверки не происходит потеря управления.
Для каждой проверки tj устройства множество обнаруживаемых неисправностей можно разбить на два подмножества:
Z■¡ — множество неисправностей, о которых известно, что они диагностируются проверкой t¡. Будем называть это множество множеством диагностируемых неисправностей.
К — множество неисправностей, о которых известно, что они обнаруживаются, но не диагностируются проверкой t¡. В рассматриваемом случае к этому множеству отнесем неисправности, проявление которых приводит к потере управления в тесте Т
Е
а) б)
Рис. 2. Характеристические множества: а — для проверки Ц б — для теста Т
Е
78
№ 2 (50) 2014
данного устройства. Назовем это множество множеством сбивающих неисправностей.
Определим множества диагностируемых и сбивающих неисправностей составной проверки — тестом Т.
Неисправность диагностируема тестом Т тогда и только тогда, когда она диагностируема какой-либо проверкой t/ при условии, что на всех предыдущих проверках она не приводит к потере управления. Поэтому (п > 2)
п /-1 п /-1
гп = и ^ пП (^ и М) = и ^ пП М. (6)
/=2 /=1 /=2 /=1
Множество заведомо сбивающих неисправностей теста Т — это такие неисправности, которые принадлежат какому-либо множеству сбивающих неисправностей К и не принадлежат множествам диагностируемых и неопределенных неисправностей для предшествующих проверок, т. е. на предшествующих проверках принадлежат множествам К или N :
п /-1 п /-1
Кп = и К п П (К, и М) = и К1 п П N. (7)
В самом деле, из (6) и (7) имеем:
п /-1 п /-1
гп и кп = и (^ и к,) п П N = и Ц п П N.
/=2 1=1 /=2 1=1
Отсюда с учетом (2) в общем случае может оказаться, что
(гп и кп) с ц,
(10)
откуда на основании (5) вытекает и (8).
Множество неисправностей, обнаруживаемых проверкой tj, о которых неизвестно, являются ли они диагностируемыми, обозначим через Y/ и назовем множеством «неоднозначных» неисправностей. Учитывая (9), множество Yn можно определить следующим образом:
Yn = и Ц П
п ми N )\П N
.1=1
1=1
(11:
Если предположить, что исходные проверки среди характеристических множеств имеют хотя бы некоторые непустые множества «неоднозначных» неисправностей Yj, т. е. принять справедливым выражение
со
0
1
1 £
I §
I
I
иа
и
Е
са 55
1=1
1=1
(Zi и Г и К и М , и N..) = Е
(12)
Таким образом, если известны характеристики проверок Z¡, К, М1 Д, то, используя полученные соотношения, можно найти аналогичные характеристики тест-программы Т: Zn, Кп, Мп, Ып.
Следует отметить, что совокупность непересекающихся множеств Zn, Кп, Мп, Nr' в общем случае не обладает свойством полноты в том смысле, что возможно существование неисправности, не принадлежащей ни одному из этих множеств. Иначе, объединение этих множеств может являться собственным подмножеством предельного множества Е:
(Zn и Кп и Мп и N) с Е,
(8)
если даже для каждого t/ выполняется соотношение
(Zi и К, и М и N) = Е.
(9)
для / = 1,п, где какие-либо характеристические множества могут в частном случае оказаться и пустыми, то выражение для Yn следует дополнить соответствующим членом. Тогда
Yn = ^ п п N и и Ц п
п
/=2 /-1
1 =1
п (М и )\ П N
1=1
1=1
где
Ц = (Z/ и Y и К,).
(13)
(14)
Таким образом, в общем случае составную проверку определяют пять характеристических множеств. В рамках сделанных предположений относительно взаимной зависимости реакций проверяемого устройства на отдельные проверки при их последо-
79
/=2
/=2
/=2
/-1
№ 2 (50) 2014
£
со
0
1
¡3
5
I
СО
о
6
I
I
вательном автоматическом выполнении эта система множеств является полной в том смысле, что если выполняется соотношение (12) для всех (= 1,п, то справедливо
(¿п и Yn и кп и мп иNn) = Е. (15)
Рассмотрим теперь множество способов объединения проверок в единый тест Т и введем на этом множестве бинарные отношения предпочтения, основываясь на опыте проектирования и эксплуатации диагностических систем.
Рассмотрим две различные последовательности исходных проверок {Г(} — Т1 и Т2 с соответствующими характеристическими множествами. Так как множества «неопределенных» и не обнаруживаемых неисправностей теста не зависят от порядка следования проверок в тесте, т. е. МгП = М2п, N = N2?, сопоставление тестов Т1 и Т2 следует производить на основе множеств диагностируемых, сбивающих и «неоднозначных» неисправностей.
Тест-программу будем считать тем лучше, чем более мощным является множество заведомо диагностируемых неисправностей 7п. Из (6) следует, что 7п зависит от порядка следования проверок tj в контролирующей тест-программе.
Последовательность проверок t1, ..., П обращающую |7п| в максимум, назовем оптимально упорядоченной в классе неисправностей Е.
Введем вспомогательное характеристическое множество нежелательных неисправностей, объединяющее множества неоднозначных, сбивающих и неопределенных неисправностей,
1п = Yn и Кп и Мп.
Рассмотрим некоторые свойства оптимально упорядоченной последовательности проверок.
Свойство 1. Необходимым условием оптимально упорядоченной последовательности является минимум мощности множества Г'.
Свойство 2. Если последовательность проверок t1, ..., tn оптимально упорядочена в классе Е, то для любого к = 1,п последовательность проверок tь ..., tkоптимально
к
упорядочена в классе Nk, где Nk = Р|N.
(=1
Свойство 3. Для того чтобы последовательность двух проверок t1, t2 была оптимально упорядочена в классе N2 с Е, необходимо и достаточно выполнение неравенства
N2 П Zл П Ц > N2 П ^2 П 1
(16)
Свойство 4. Для каждой пары соседних проверок к = 1,п-1 в оптимально упорядоченной последовательности справедливо неравенство
П ¿к П Ц > К+1 П ¿к+1 П 1к|. (17)
Алгоритмы синтеза оптимальной последовательности
С учетом проведенных рассмотрений формальную постановку задачи можно дать следующим образом: для заданной совокупности проверок со своими характеристическими множествами требуется построить последовательность проверок (упорядочить проверки из выполняющую тест устройства с максимальным значением мощности множества заведомо диагностируемых неисправностей.
Точное решение этой задачи сводится к перебору всех вариантов следования проверок и оценке каждого варианта. Оценки вариантов следования проверок в тесте можно проводить с использованием необходимых признаков оптимальной последовательности, что существенно сократит объем операций, проводимых над множествами. Кроме того, с учетом признаков оптимальной последовательности могут строиться эвристические правила выбора не только последовательности, но и самих проверок. Так, при формировании самих проверок
80 у
№ 2 (50) 2014
необходимо стремиться к тому, чтобы каждая следующая проверка по отношению к предыдущей сохраняла неравенство (17). Сформированное таким образом правило построения проверок и упорядочивания их следования представляет интуитивно используемый подход, известный под названием «метода расширяющихся областей», или «раскрутки».
При наличии уже полученной каким-либо образом совокупности / проверок, практически доступными их характеристиками являются множества ZI. В этом случае приближенное решение можно получить, придерживаясь следующего эвристического алгоритма.
Выбирается проверка tм с максимальным значением мощности множества и определяется на / +1 свободное место. Исключив из рассматриваемого множества неисправности Z¡+v переходим к началу алгоритма, если только не все проверки выбраны.
Если доступны более полные сведения о характеристиках проверок, можно использовать другой алгоритм приближенного решения задачи. Выбирается проверка ^ с максимальным значением мощности множества Z¡ ПР|N и помещают его на сво-/ * 1
бодное место, начиная с последнего. Исключив из рассматриваемого множества неисправностей подмножество Z¡ ПР|N, осу-
ществляется переход к началу алгоритма, пока не будут выбраны все проверки.
Заключение
В работе сформулированы свойства оптимальной упорядоченности отдельных проверок в единой тест-программе. Дана формальная постановка задачи упорядочения как построение последовательности проверок устройства с максимальным значением мощности множества заведомо диагностируемых неисправностей. Предложены эвристические алгоритмы упорядочения проверок, так как точное решение задачи сводится к перебору всех вариантов следования.
В зависимости от конкретных условий и сведений о характеристиках проверок Щ могут быть построены и другие алгоритмы приближенного решения, использующие признаки оптимальной упорядоченности, вытекающие из рассмотренных свойств оптимально упорядоченной последовательности проверок в тесте.
Список литературы
1. Березкин Е. Ф. Надежность и техническая диагностика систем: Учебное пособие. М.: НИЯУ МИФИ, 2012. — 244 с. Сер. Библиотека ядерного университета.
2. Александров П. С. Введение в теорию множеств и общую топологию. М.: Наука, 1977. — 368 с.
«
0
1
1 £
I
Я
5
is I
LQ
! S
ci :s
I. Atovmyan, Doctor of Technical Sciences, Professor of National Research Nuclear University MEPhI (NRNU MEPhI), Moscow, [email protected]
E. Berezkin, Ph. D. (Eng.), Associate Professor of National Research Nuclear University MEPhI (NRNU MEPhI), Moscow, [email protected]
S. Kovalevskiy, Doctor of Technical Sciences, Professor of National Research Nuclear University MEPhI (NRNU MEPhI), Moscow, [email protected]
V. Shuvalov, Ph. D. (Eng.), acting as Head of Department of National Research Nuclear University MEPhI (NRNU MEPhI), Moscow, [email protected]
Building optimal test sets for checking complex digital devices
The basic principles for combining test checks of individual modules constituting the digital device into a single test program are described. Association of checks is conducted under incomplete information concerning reactions of the faulty device. Properties of optimum ordered sequence of checks in the test are formulated. Heuristic checks ordering algorithms are offered. Keywords: Digital device, module, check, optimality sign, an ordered sequence, test program.
81