УДК 681.325.5 С.А. Останин ЗАДЕРЖКИ ПРОЯВЛЕНИЯ НЕИСПРАВНОСТЕЙ ПРИ КОНТРОЛЕ РАБОТЫ АВТОМАТА В РЕЖИМЕ ФУНКЦИОНИРОВАНИЯ Представлены концепции потенциальной задержки и реальной задержки проявления неисправностей в работе синхронного автомата. Потенциальная задержка определяет минимальное значение возможной задержки, реальная задержка связана с конкретной реализацией синхронного автомата. Предложен метод вычисления задержек проявления неисправностей автомата в режиме функционирования. Метод основан на выборе траекторий Марковской цепи, которая описывает поведение автомата как без ошибок, так и в их присутствии. Также предложена оценка нижней границы среднего значения задержки проявления неисправности. Такая оценка может быть полезной на начальной стадии проектирования автомата в условиях ограниченной информации о требованиях и условиях функционирования. 1. Общие положения Управляющая часть цифровых систем, как правило, наиболее критическая часть с точки зрения надежности. Нерегулярность и сложность управляющей структуры, с одной стороны, и ее центральная роль в функционировании управляемой цифровой системы в целом, с другой, требует разработки эффективных методов обеспечения надежности и тестируемости таких систем. Один из способов повышения надежности – использование самопроверяемых устройств, проводящих тестирование в режиме функционирования, т.е. без перехода в тестовый режим. В целом на эффективность обнаружения неисправностей в самопроверяемых схемах влияет время проявления неисправности на выходах устройства с момента ее возникновения. Чем меньше разница между временем возникновения и временем проявления, тем вероятность обнаружения неисправности выше. В данной работе мы имеем дело с проблемой анализа эффективности, а именно мы фокусируемся на исследовании характеристик задержек проявления неисправностей (ЗПН) в управляющих контроллерах, заданных автоматной моделью, в условиях непрерывного контроля функционирования. В работе [1] предложен метод вычисления длины тестовой последовательности, необходимой для обнаружения неисправностей последовательностных схем в режиме тестирования. Метод основан на конструировании Марковского процесса с (R+1) состоянием, где R – число состояний автомата. Дополнительное (R+1)-е состояние является поглощающим состоянием, матрица вероятностей переходов процесса строится таким образом, чтобы процесс переходил в дополнительное состояние, если неисправность проявляется на тестовой последовательности. В действительности метод, описанный в [1], может быть адаптирован и для тестирования в режиме функционирования. Мы предлагаем новый метод, который имеет преимущества с точки зрения сложности вычислений. Полученные результаты позволяют рассматривать ЗПН как случайную величину. Так как метод точного вычисления требует избыточной информации об автомате и условиях его функционирования, в работе предлагается на начальной стадии проектирования оценивать только среднее значение ЗПН, для которого используется ограниченная предварительная информация о структуре автомата. Основываясь на этом, вычисляется нижняя граница среднего значения ЗПН, используя только число состояний автомата и максимальную длину входных интервалов. 2. Основные определения Дадим определение конечно-автоматной модели Мили в предположении, что все состояния автомата закодированы, т.е. имеем структурный автомат. Пусть I, O, Q – множество входных, выходных векторов и векторов внутренних состояний автомата. N Q , N I и N O – мощности соответствующих множеств. Пусть q1 – начальное состояние, δ – функция переходов: δ : Q × I → Q, λ – функция выходов: λ : Q × I → O. Будем использовать следующие обозначения для структурного автомата: { X = x1 , ..., xN x } – множество входных переменных; Y = { y1 , ..., y N y } – множество внутренних переменных; Z = {z1 , ..., z N z } – множество выходных переменных. Конечный автомат со случайными входными сигналами представляется следующим образом: S =< Q,{I, Ω, p },O, δ , λ >, где {I, Ω, p } – вероятностное пространство элементарных событий I и σ -алгебра Ω с вероятностной мерой p [2]. Таким образом, мы постулируем вероятностную модель случайного поведения автомата. Вероятностное поведение автомата, благодаря его структуре переходов, может анализироваться с помощью цепей Маркова [3]; действительно, достаточно добавить для исходящих дуг каждого состояния метку, представляющую вероятность перехода из состояния автомата в другое состояние, и это приводит к определению дискретной цепи Маркова. Дискретная цепь Маркова { X (t ) | t ∈ T } – это стохастический процесс, такой что число возможных состояний конечно и T – множество дискретных параметров (время). Свойство марковости говорит, что для 165 каждого момента времени вероятность любого состояния системы в будущем зависит только от состояния системы в настоящий момент и не зависит от того, каким образом система пришла в это состояние. В статье мы будем рассматривать однородные цепи Маркова. В этом случае цепи Маркова имеют стационарные вероятности переходов, которые можно представить матрицей вероятностей переходов ( pms ) , где p ms – вероятность перехода из состояния m в состояние s. В качестве модели неисправностей рассмотрим классическую модель одиночных константных неисправностей. Общепринятое понятие времени проявления неисправности [4] заключается в том, что это время между моментом, когда неисправность появилась, и моментом проявления на выходах схемы. В отличие от традиционного определения мы рассмотрим проявление как любое нарушение или искажение корректной работы автомата, не обязательно приводящее к ошибкам на выходе. Такое предположение позволяет разделить понятие задержки проявления неисправности на потенциальную и реальную (рис. 1). Появление неисправности Проявление неисправности Ошибка на выходе В данной статье предполагается, что все неисправности одиночные, это означает, что вероятность появления второй неисправности во время присутствия первой пренебрежительно мала. Мы предполагаем, что автомат имеет случайные входы, задержки проявления неисправностей которого определяются случайной величиной с заданной функцией распределения. Нашей целью будет определение функции распределения ЗПН. 3. Функции распределения задержек проявления неисправностей Основная идея предложенного метода заключается в разделении всего множества траекторий случайного процесса, описывающего поведение автомата, на два подмножества. Первое подмножество не содержит траекторий, на которых проявляется отдельная неисправность. Будем называть это подмножество «непроявляющим». Оставшееся (второе) подмножество траекторий содержит состояния, на которых проявляются неисправности – «проявляющее». Тогда вероятность проявления неисправности на шаге t равняется вероятности, с которой процесс движется вдоль траекторий из первого подмножества до шага t–1 и затем попадает в состояние из второго подмножества на шаге t. Проиллюстрируем метод на примере автомата (табл. 1). Время Функционирование без ошибок Потенциальная ЗПН Рис. 1. Схема появления задержек Таким образом, время проявления неисправности, так как мы это определили ранее, – это потенциальная ЗПН. Потенциальная ЗПН – это свойство автомата как такового без любых схем контроля или детекторов. Реальная ЗПН – свойство автомата в совокупности с детектором. Заметим, что один и тот же детектор может достигать или нет потенциальной ЗПН. Более того, самопроверяемый автомат (в совокупности с детектором) может иметь меньшую задержку проявления неисправностей (достигающую потенциальную ЗПН) для одного класса неисправностей и бóльшую задержку для другого класса неисправностей. Ниже будет рассмотрен пример, демонстрирующий разницу между потенциальной и реальной ЗПН. В соответствии со свойством самотестирования, которое необходимо для достижения свойства полной самопроверки, для каждой неисправности из заданного класса существует вектор входных значений, допустимых во время нормального функционирования, и производящий недопустимое кодовое слово на выходе схемы [5]. В общем случае не всегда появление неисправности ведет к изменению выходного допустимого кодового вектора на недопустимый, т.е. для таких неисправностей не выполняется свойство полной самопроверяемости. Для обеспечения этого свойства можно использовать методы, описанные в работе [6]. 166 Таблица 1 Реальная ЗПН Таблица переходов/выходов автомата qm q1 q2 q3 q4 q5 qs q2 q4 q1 q3 q4 q1 q4 q4 q5 q1 q1 X(qm , qs ) Z(qm , qs ) x1 x2 z2 , z3 x1 x2 x3 z4 − x1 x2 x3 x1 h 1 2 3 4 x4 x1 x4 x1 x4 z2 z1 , z 4 z1 , z 3 z1 , z 4 z1 , z 4 x2 x2 z5 , z6 − 10 1 z1 , z 3 11 1 5 6 7 8 9 3.1. Функция распределения задержек проявления неисправностей входных переменных Пусть вероятности случайных переменных xl: Pr ( xl = 1) = pl ,Pr ( xl = 0) = Pr ( xl = 1) = ql =1 − pl , l = 1, N x . Тогда поведение автомата без ошибок описывается цепью Маркова в соответствии с матрицей вероятностей переходов: 0 ⎞ ⎟ 0 ⎟ 0 ⎟ . (1) ⎟ p2 ⎟ ⎟ 0 ⎠ Это вектор вероятностей состояний автомата на (t–1) шаге, после того как неисправность появилась, но еще не проявились последствия в работе автомата. Зададим вектор-столбец Рассмотрим константную неисправность переменной x1 ( x1 / 1 ). Обозначим через B событие, состоящее с единицами, помещенными в позиции возникновения неисправностей. T – символ транспонирования матрицы. Это вектор вероятностей состояний автомата в случае проявления неисправности в течение одного шага. Вероятность проявления неисправности x1 / 1 на шаге t (это есть функция распределения ЗПН Pf (t ) ) выража- ⎛ p1q 2 q3 ⎜ ⎜ 0 ( pms ) = ⎜⎜ p1 p4 ⎜ q2 ⎜ ⎝ 1 p1 p 2 q1 p1q 2 p3 0 0 0 0 1 q1 p 4 + q 4 0 0 0 0 0 0 в проявлении неисправности, и через B – отсутствие проявления. Далее построим две матрицы для случая B : Первую матрицу для x1 = 1 и вторую для x1 = 0 . Таким образом, неисправность x1 / 1 соответствует случаю x1 = 1 и, следовательно, не может быть обнаружена. Первую матрицу получим из (1) заменой p1 на 1 и q1 на 0: (p ms ⎛ q 2 q3 ⎜ ⎜ 0 B , x1 1, x1 = 1 = ⎜ p 4 ⎜ ⎜ q2 ⎜ ⎝ 1 ) p2 0 0 q 2 p3 0 1 0 0 0 0 q4 0 0 0 0 0 ⎞ ⎟ 0 ⎟ 0 ⎟ . (2) ⎟ p2 ⎟ ⎟ 0 ⎠ Вторая матрица для x1 = 0 , в соответствие с таблицей 1, (p ms ⎛0 ⎜ ⎜0 B, x1 1, x1 = 0 = ⎜ 0 ⎜ ⎜ q2 ⎜ ⎝1 ) 0 0 0 0 0 1 0 0 q4 0 0 0 0 0 0 0 ⎞ ⎟ 0 ⎟ 0 ⎟. ⎟ p2 ⎟ ⎟ 0 ⎠ (3) pT ( B x1 1) = ( pms )(1, 0, 0,1, 0 ) T (6) ется следующим образом: ( ) Pf (t ) = p t − 1, B x1 1 pT (B x1 1) , (7) где вектор p ( t − 1, B x1 1) получается рекуррентно: )( ( ) p(t − 1, B x1 1) = p t − 2, B x1 1 pms B , x1 1 , (8) и p(0, B x1 1) – вектор вероятностей состояний автомата в момент появления неисправности. F(t) 1 0,9 0,8 0,7 0,6 0,5 0,4 0,3 0,2 0,1 0 0 5 10 t 20 15 Теперь матрица вероятностей переходов для случая B и x1 / 1 имеет вид (p ( ms ) Рис. 2. Функция распределения ЗПН для x1 / 1 ) B , x1 1 = ( Рис. 2 представляет результаты вычислений вероятности для величины задержек больше, чем t, т.е. ) = p1 p ms B , x1 1, x1 = 1 + q1 p ms B , x1 1, x1 = 0 = ⎛ p1 q 2 q 3 ⎜ ⎜ 0 = ⎜ p1 p 4 ⎜ ⎜ q2 ⎜ ⎝ 1 p1 p 2 0 0 0 0 0 0 q4 0 0 0 0 0 p1 q 2 p 3 1 0 ⎞ ⎟ 0 ⎟ 0 ⎟. ⎟ p2 ⎟ ⎟ 0 ⎠ ( ) ( ) F(t) = Pr(ЗПН > t) = pms , f (4) Заметим, что матрицы (2)–(4) описывают не все возможные переходы, а только те, на которых неисправность не проявляется. Таким образом, матрицы не являются стохастическими, т.е. сумма элементов в любой строке не равняется единице. Зададим следующий вектор: ( ) p ( t −1, B x1 1) = p1 ( t −1, B x1 1) , …, pNQ ( t −1, B x1 1) . (5) с помощью (7). Для демонстрации разницы между потенциальной и реальной ЗПН рассмотрим неисправность x4 1 . Ее проявление отразится на переходах 7 и 8 в табл. 1. Эти переходы инициируют одну и ту же микроинструкцию (т.е. выходные векторы одинаковы). Для этой неисправности, если вход x1 = 0 и вход x4 = 0, соответствующие входные интервалы, инициирующие эти переходы, обращаются в единицу. Рассмотрим этот факт как проявление неисправности. Таким образом, хотя неисправность проявляется, проявление на выходах маскируется и, следовательно, не появится ошибка на выходах авто167 мата. Функции распределения для потенциальной и реальной ЗПН, построенных предложенным методом для неисправности x4 1 , представлены на рис. 3. Рассмотренная ошибка может быть обнаружена, например, используя архитектуру из [6]. В этом случае реальная ЗПН равняется потенциальной ЗПН (кривая 1, рис. 3). Функция распределения ЗПН есть вероятность того, что неисправность проявится на шаге t: )( ( ))t −1 ( p ms (B ))(1,1,1,1,1)T , ( Pf (t ) = p 0, B y1 1 p ms B ( (11) ) где p 0, B y1 1 – вектор состояний автомата в момент появления неисправности. F1(t), F2 (t) 1 0. 9 0. 8 0. 7 0. 6 0. 5 0. 4 0. 3 0. 2 0. 1 0 3.3. Функция распределения задержек проявления неисправностей памяти автомата 2 1 0 10 20 30 40 50 t Рис. 3. Функции распределения потенциальной ЗПН (1) и реальной ЗПН (2) для неисправности x4/1 Как было показано, при проявлении неисправности не обязательно следует ошибка на выходах. Следовательно, для таких неисправностей нарушается свойство полной самопроверяемости автомата. Самопроверяемая архитектура из [6] позволяет обнаруживать такие неисправности. 3.2. Функция распределения задержек проявления неисправностей для выходных переменных Пусть появляется неисправность z1 / 1 . Неисправность не проявит себя, если микроинструкции, содержащие переменную z1, инициируются (смотри состояния q2, q3 и q5 в нашем примере). Используя ранее описанный метод, разделим множество всех траекторий на два подмножества, на одном неисправность z1 / 1 не проявляется, на другом проявляется. Для примера из табл. 1 матрица для непроявляющего подмножества имеет вид ⎛ 0 ⎜ ⎜ 0 B = ⎜ p1 p4 ⎜ ⎜ 0 ⎜ ⎝ 1 (p ( )) ms 0 0 0 0 0 0 0 0 1 0 q1 p4 + q4 0 0 0 0 0⎞ ⎟ 0⎟ 0⎟ . ⎟ 0⎟ ⎟ 0⎠ ( ( )) p1 p2 0 0 0 0 q1 0 0 0 0 причем p ms B + ( p ms (B )) = ( p ms ) . 168 p1q2 p3 0 0 0 0 0⎞ ⎟ 0⎟ 0 ⎟, ⎟ p2 ⎟ ⎟ 0⎠ ⎛ p1,1 ⎜ ⎜ K ( pms ) = ⎜⎜ pr,1 ⎜ K ⎜⎜ p ⎝ NQ,1 K p1,r−1 p1,r K K K K pr,r−1 K K pr,r K K pNQ,r−1 pNQ,r p1,r+1 K p1,NQ ⎞ ⎟ K K ⎟ pr,r+1 K p1,NQ ⎟ . (12) ⎟ K K K⎟ ⎟ pNQ,r+1 K p1,NQ ⎟ ⎠ Тогда матрица, которая позволяет разделить непроявляющее множество траекторий, имеет нули в r-й строке и r-м столбце: ⎛ p1,1 ⎜ ⎜ K ⎜ ( f) pms = ⎜ 0 ⎜ K ⎜⎜ p ⎝ NQ,1 ( ) K p1,r−1 K K K K 0 K K pNQ,r−1 p1,r+1 K p1,NQ ⎞ ⎟ K K ⎟ 0 0 K 0 ⎟. ⎟ K K K K⎟ ⎟ 0 pNQ,r+1 K p1,NQ ⎟ ⎠ 0 K (13) В нашем примере матрица (12) принимает форму (1). Если p(0) = ( p1 (0), ..., pNQ (0)) – вектор вероятно(9) Матрица для проявляющего подмножества ⎛ p1q2q3 ⎜ ⎜ 0 ( pms (B )) = ⎜⎜ 0 ⎜ q2 ⎜ ⎝ 0 Если состояния памяти автомата закодированы безызбыточным кодом, неисправности необнаружимы, но в случае использования избыточных кодов задержки проявления неисправностей памяти зависят от специфических свойств выбранного кода. Для примера будем рассматривать прямое кодирование («one-hot»). Неисправность y r / 0 для состояния qr может быть обнаружена немедленно в момент достижения состояния qr. Пусть матрица вероятностей переходов ( pms ) в общем случае имеет вид стей начальных состояний (в момент возникновения неисправности), функция распределения ЗПН будет соответствовать вероятности того, что на k-м шаге неисправность не проявляется: ( ) (f) Pr( t>k ) = p(0) pms (10) k (1, …, 0, …, 1) T (14) с нулем в r-й позиции. Неисправность st/1 состояния qr проявляется на первом шаге входа в состояние, отличное от qr. Следовательно, ( ) ( ) Pr (t = 1) = p(0) pms (1, …, 0, …, 1) , f Pr( t>k ) = pr (0) prk, r , T (15) где pr (0 ) – r-й элемент вектора p(0) и pr , r – элемент матрицы (12). 3.4. Функция распределения задержек проявления неисправностей детектора Для построения функции распределения ЗПН детектора воспользуемся ранее рассмотренным методом построения двух матриц pms B и ( p ms (B )) . В соответствии с табл. 1, эти матрицы принимают следующий вид: ( ( )) ⎛ 0 ⎜ ⎜ 0 B R1 1 = ⎜ p1 p4 ⎜ ⎜ p2 ⎜ ⎝ 1 (p ( ms )) 0 q1 0 0 0 q4 0 0 0 0 0 0⎞ ⎟ 1 0⎟ 0 0⎟ , ⎟ 0 0⎟ ⎟ 0 0⎠ (16) ⎛ p1q2q3 p1 p2 q1 p1q2 p3 0 ⎞ ⎟ ⎜ 0 0 0 0⎟ ⎜ 0 ( p ms (B R1 1)) = ⎜⎜ 0 0 q1 p4 0 0 ⎟ . (17) ⎟ ⎜ 0 q2 ⎟ 0 0 0 ⎟ ⎜ 0 0 0 0⎠ ⎝ 1 ном классе. Также предположим, что: Pr(xl=1) = pl =0,5; l = 1, N x . Это позволяет получить верхнюю границу для заданной структуры автомата. Будем говорить, что дизъюнктивная нормальная форма (ДНФ) имеет треугольную форму длины K (K ≤ N x ), если GK +1 = ∏ xl ; Gk = k −1 ∏ xl x k , { f u }Uu=1 pf = 1⎛ 1 ⎜1 − K ⎝ 2K ) T= 2N Q Nx (2 ) ⎛ NQ ⎞ − 1 − ⎜⎜ + 1⎟⎟ . ⎝ 2 ⎠ Nx (20) 1 – группа неисправностей с вероятноG Nx+1 и среднее значение продолжительU ности для группы неисправностей t = ∑ su tu , где tu – u =1 среднее значение ЗП u-й неисправности. 4. Верхняя граница среднего значения задержки Описанные ранее методы вычисления ЗПН позволяют полностью описать ЗПН как случайную величину. Эти методы требуют существенных вычислительных затрат и значительной информации о структуре и параметрах автомата. Однако на начальной стадии проектирования возможно оценить величину среднего значения ЗПН, основываясь на ограниченной информации об автомате. Будем оценивать среднее значение ЗПН автомата, используя так называемый «худший» автомат в задан- G Nx q1 ... ∑ su Pf (t ) u =1 (19) ми и N x входными переменными существует автомат, имеющий максимум среднего значения ЗПН для одиночных неисправностей (рис. 4). Это значение равно U u ⎞ ⎟. ⎠ Теорема 2. Среди всех автоматов с N Q состояния- стями возникновения Pr ( f u ) = su . Тогда функция распределения ЗП группы неисправностей в целом P f (t ) = (18) Тогда имеют место две следующие теоремы. Теорема 1. Для автомата с функциями переходов, представленных в виде ДНФ в треугольной форме длины K и равновероятными одиночными неисправностями, среднее значение вероятности проявления неисправности (для множества одиночных неисправностей всех переменных) минимально и равняется 3.5. Задержка проявления группы неисправностей и среднее значение задержки Пусть k = 1, …, K . l =1 l =1 Для получения функции распределения применим формулу (11) для p 0, B R1 1 . ( K q2 1 q3 1 qNQ G2 G1 Рис. 4. Граф переходов автомата для худшего случая среднего значения ЗПН 5. Экспериментальные результаты Для эксперимента были использованы автоматы, заданные микропрограммным описанием. Каждый автомат описывает функционирование микропроцессора. В табл. 2 представлены параметры автоматов и результаты экспериментов: N x – число входов автомата; N y – число выходов автомата; N Q – число состояний; 169 h – число переходов; t – точное значение средней величины потенциальной ЗПН, вычисленное в соответствии с методом в разделе 3.5; T – максимум среднего значения потенциальной ЗПН, вычисленный в соответствии с формулой (20). Таблица 2 Результаты экспериментов Name Nx Ny NQ h t big bs acdl cow v1_6 v1_10 v11_20 18 19 16 49 14 15 14 28 13 27 24 18 18 29 17 17 22 24 17 18 18 185 185 214 261 169 264 367 747 247 456 366 237 300 360 T 2420 903 1742 1486 608 907 1630 Таким образом, в работе представлены концепции потенциальной и реальной ЗПН и предложена методология вычисления ЗПН для неисправностей в самопроверяемых автоматах с проверкой в режиме функционирования. Концепция потенциальной ЗПН позволяет вычислять теоретически нижнюю границу реальной ЗПН для самопроверяемых систем. Получены точные выражения статистических характеристик ЗПН. Представлены верхняя граница средней величины ЗПН и случай «худшего» автомата в заданном классе. Предложенный подход может быть использован на начальной стадии проектирования самопроверяемого автомата при оценке возможных ЗПН спроектированного автомата. ЛИТЕРАТУРА 1. Shedletsky J., McCluskey E. The Error Latency 0f Fault in a Sequential Digital Circuit // IEEE Transaction on Computers. 1976. Vol. 25, № 6. P. 655– 659. 2. Feller W. An Introduction to Probability Theory and Its Applications. N.Y.: John Wiley & Sons Inc, 1971. 3. Kemeny J., Snell J. Finite Markov Chains. D. Van Nostrand Comp., 1967. 4. Lala P. Self-Checking and Fault Tolerant Digital Design. Morgan Kaufman Publishers, 2000. 5. Nicolaidis M., Zorian Y. On-Line Testing for VLSI – A Compendium of Approaches // Journal of Electronic Testing: Theory and Applications. 1998. № 12. P. 7–20. 6. Levin I., Sinelnikov V. Self-checking of FPGA based Control Units // Proceedings of 9th Great Lakes Symposium on VLSI. Ann Arbor, Michigan: IEEE press, 1999. P. 292–295. Статья представлена кафедрой программирования факультета прикладной математики и кибернетики, поступила в научную редакцию «Информатика» 6 июня 2006 г. 170