Вопросы технической диагностики
81
Вопросы технической диагностики
УДК 681.518.5:004.052.32
Классические и взвешенные коды Бергера в системах функционального контроля
В. В. Сапожников, Вл. В. Сапожников, Д. В. Ефанов Кафедра «Автоматика и телемеханика на железных дорогах»
Аннотация. Анализируются свойства классических и взвешенных кодов Бергера при возникновении искажений только в информационных векторах кодов при безошибочности контрольных. Показано, что классические коды Бергера не обнаруживают большое число ошибок малых кратностей. Взвешенные коды Бергера обнаруживают любые одно- и двукратные искажения в информационных векторах, имея, однако, длину контрольного вектора, превышающую половину длины информационного вектора.
Ключевые слова: функциональный контроль; необнаруживаемая ошибка; информационные разряды; вес информационного разряда; код Бергера; взвешенный код Бергера; свойства кода.
1 Введение
Одним из наиболее эффективных методов повышения надежности современных микроэлектронных систем является организация их функционального (рабочего, on-line) диагностирования [1-5]. Такой подход в построении системы позволяет контролировать техническое состояние объекта в непрерывном режиме без отключения от работы и без подачи специальных тестовых воздействий [6]. Это особенно актуально в системах автоматического управления, например, в железнодорожной автоматике и телемеханике, когда неверная работа устройства может нарушить технологический процесс.
В общем случае система функционального контроля подразумевает наличие трех компонентов: блока основной логики fx), блока контрольной логики g(x) и блока тестера. Элементы системы контроля объединяются так, как это показано на рис. 1.
В контролируемом устройстве fx) возможно возникновение любых неисправно-
стей (как константных, так и неисправностей типа «временная задержка» [7-9]), но чаще всего объект рассматривается при потенциальном возникновении только однократных искажений во внутренних элементах структуры.
Рабочие выходы
Сигнал
контроля
Рис. 1 Схема организации системы функционального контроля
Наибольшее распространение в современных микроэлектронных устройствах получила система дублирования. В ней блок дополнительной логики повторяет блок основной логики, а тестер представляет собой самопроверяемый компаратор сравнения одноименных сигналов от разных блоков, а также их сжатия к двум контролируемым значениям z1 и z2.
Как отмечается в [7], при построении систем функционального диагностирования комбинационных логических устройств далеко не всегда эффективно использовать именно принцип дублирования. Можно построить систему функционального контроля, обнаруживающую все однократные дефекты блока f(x) с уменьшенной сложностью. Для
82
Вопросы технической диагностики
решения этой задачи применяются свойства разделимых (систематических) кодов [10].
Так, выходы блока f(x) отождествляются с информационным вектором длины m, а выходы блока g(x) - с контрольным вектором длины к. От правил построения кода зависят характеристики системы диагностирования по обнаружению искажений в контролируемом блоке. Так как любые неисправности блока f(x) могут влиять на его рабочие выходы, т. е. могут искажать их действительные значения, можно рассматривать свойства отдельно взятого кода по обнаружению ошибок в информационных разрядах. Тогда от правил построения контрольного вектора будут зависеть и свойства по обнаружению ошибок в информационных разрядах.
2 О кодах Бергера и их показателях в системах функционального контроля
При организации систем функционального контроля комбинационных логических устройств часто используются коды с суммированием. Данный класс кодов также принадлежит к разделимым кодам. Значения контрольных разрядов определяются по значениям информационных. Наиболее простой способ построения кода с суммированием заключается в подсчете суммы единичных информационных разрядов (веса r информационного вектора). Код, у которого в контрольном векторе записывается двоичное число, равное весу информационного вектора, называется классическим кодом Бергера [11]. Далее будем этот код обозначать как S(n, т)-код, где n = m + к - общая длина кодового вектора.
Классический код Бергера обладает важной особенностью - он обнаруживает любые однонаправленные искажения в информационных векторах (рис. 2, а). Кроме того, код Бергера обнаруживает любые искажения нечетных кратностей d (рис. 2, б). При возникновении данных типов ошибок в искаженном векторе нарушается вес и контрольный вектор перестает соответствовать его значению.
Необнаруживаемыми искажениями в информационных векторах S(n, т)-кодов являются разнонаправленные ошибки четных кратностей (рис. 2, в). Число таких искажений четной кратности d (d е {2,4,..., m -1},
если m - нечетное и d е {2,4,...,m} если m -четное) может быть подсчитано по формуле [12]:
d
m-2 d d
N = V Cr C 2 C 2
m,d m r m-r'
=d r = 2
(1)
a)
11
1101 001
б)
ft t
0110 001
в)
1000 001
Рис. 2 Ошибки в информационных векторах кодов: а - обнаруживаемые однонаправленные; б - обнаруживаемые разнонаправленные; в - необнаруживаемые
Зная выражение (1), нетрудно рассчитать и общее число искажений в коде Бергера как сумму всех величин Nm,d.
Абсолютный показатель оценки эффективности обнаружения искажений в информационных разрядах не очень удобен. Для оценки эффективности кода может быть подсчитан коэффициент pd, характеризующий долю необнаруживаемых ошибок кратности d в информационных векторах от общего числа искажений этой же кратности:
Pd =
N
N
m,d
d
m--
2
I
=d r = 2
d d CrC 2C 2
^ n/i ^ ^ n/i_
m,d
2mC
(2)
В знаменателе формулы (2) записано общее число необнаруживаемых искажений кратности d.
В [12] доказано, что для классических кодов Бергера значение величины pd постоянно и не зависит от длины информационного вектора:
d
P d = 2- dCd2. (3)
Другими словами, процент необнаруживаемых искажений кратности d от общего числа искажений той же кратности в кодах Бергера является постоянным.
Вопросы технической диагностики
83
Пользуясь (2), нетрудно определить, что Р2 = 0,5; Р4 = 0,375; Рб = 0,3125; ... Р20 = 0,1762.
Классические коды Бергера имеют низкую эффективность обнаружения искажений в области малой кратности - ими не обнаруживается 50 % двукратных искажений и 37,5 % четырехкратных искажений.
Кроме приведенного показателя pd для оценки эффективности кода по обнаружению искажений, используется коэффициент Y - доля необнаруживаемых ошибок от общего числа ошибок в коде и £, - коэффициент эффективности кода при заданных длинах информационных и контрольных векторов. Коэффициент £, определяется как отношение числа необнаруживаемых ошибок в данном коде к числу необнаруживаемых ошибок в так называемом оптимальном коде при таких же значениях m и к [13]:
ъ, _NmL. (4)
~ лгт1П 4 7
1 vm,k
В оптимальном коде, как показано в [13], все 2m информационных векторов распределяются по 2к контрольным векторам равномерно, что делает значение общего числа необнаруживаемых ошибок минимальным:
Nmk = 2m (2m-k -1). (5)
В коде Бергера каждому контрольному вектору соответствуют Crm информационных
векторов, что определяет и низкое значение коэффициента ^: для большинства S(n, m)-кодов £, < 0,5.
В работе [11] предложен способ построения кодов с суммированием, позволяющий обнаруживать любые двукратные искажения в кодовых векторах. Он основан на приписывании каждому информационному разряду некоторого весового коэффициента wt. Джей Бергер (Jay M. Berger) предложил использовать последовательность натуральных чисел, за исключением степеней числа 2 в качестве значений весовых коэффициентов:
[3, 5, 6, 7, 9, 10, ...]. Данный код назовем взвешенным кодом Бергера и обозначим как WS(n, m)-код. Взвешенные коды с другими значениями весовых коэффициентов применительно к решению задач построения систем функционального диагностирования рассматривались в [14-17].
Далее исследуются свойства WS(n, m)-кода по обнаружению искажений в информационных векторах, что актуально для систем функционального контроля.
3 Свойства взвешенных кодов Бергера в системах функционального контроля
Рассмотрим классический и взвешенный коды Бергера при длине информационного вектора m = 3. Число контрольных разрядов S(n, m)-кода определяется величиной k = | log2 (m +1)], а во взвешенных кодах -
величиной к = |"log2 (Wmax + 1)] , где Wmax
является суммой весов информационных разрядов для информационного вектора <1,1,...,1> (запись |~b] обозначает целое
сверху от b). Таким образом, в классическом коде Бергера имеется к = 2 контрольных разрядов, а во взвешенном - к = 4 контрольных разрядов. В табл. 1 представлены кодовые векторы рассматриваемых S(5, 3) и WS(7, 3) кодов.
Анализируя табл. 1, отметим, что каждому информационному вектору WS(7, 3)-кода соответствует только один контрольный вектор, а в S(5, 3)-коде нескольким информационным векторам может соответствовать один контрольный, поэтому в WS(7, 3)-коде нет необнаруживаемых искажений, а в S(5, 3)-коде они есть. Отметим, что у WS(7, 3)-кода число к > m, поэтому он не является удачным выбором при организации систем функционального контроля - коды с повторением (double-codes) в этом имеют приоритет.
84
Вопросы технической диагностики
ТАБЛИЦА 1. Кодовые векторы S(5, 3) и WS(7, 3) кодов
№ Информационный вектор S(5, 3)-код WS(7, 3)-код
*1 *2 *3 У\ У2 У1 У2 У3 У4
0 0 0 0 0 0 0 0 0 0
1 0 0 1 0 1 0 1 1 0
2 0 1 0 0 1 0 1 0 1
3 0 1 1 1 0 1 0 1 1
4 1 0 0 0 1 0 0 1 1
5 1 0 1 1 0 1 0 0 1
6 1 1 0 1 0 1 0 0 0
7 1 1 1 1 1 1 0 0 1
В работе [12] предложено представлять любой систематический код в виде таблицы, где в столбцах размещаются все контрольные векторы, и каждый столбец содержит соответствующие контрольным информационные векторы. Такой подход позволяет на основе анализа контрольных групп подсчитать суммарное число необнаруживаемых искажений каждой кратности, т. к. все необнаруживаемые ошибки - это ошибки, переводящие информационные векторы одной контрольной группы друг в друга. Авторами составлены алгоритмы анализа контрольных групп для кодов Бергера и взвешенных кодов Бергера, которые реализованы в виде программного модуля расчета характеристик кодов. В табл. 2 приводятся характеристики рассматриваемых кодов с суммированием с длинами информационных векторов m = 2-15.
Сравнивая значения количества необнаруживаемых искажений по кратностям для S(n, m) и WS(n, m) кодов, отметим следующие особенности кодов Бергера:
1. Любой WS(n, т)-код имеет меньшее количество необнаруживаемых искажений четной кратности d, чем соответствующий S(n, т)-код.
2. Любой WS(n, т)-код обнаруживает все двукратные искажения в информационных векторах.
3. Любой S(n, т)-код, в отличие от WS(n, т)-кода, обнаруживает все искажения нечетных кратностей.
4. Любой WS(n, т)-код обнаруживает на порядок больше ошибок в информационных векторах, чем S(n, т)-код.
На рис. 3 приводится график зависимо-
NS (”,т)
сти величины А = ——г - отношения
ATWS (п,т) v т
числа необнаруживаемых ошибок в S(n, т)-кодах к числу необнаруживаемых искажений в WS(n, т)-кодах. Величина А достигает своего минимума при т = 8.
Для сравнения на рис. 4 и 5 приводятся графики изменения величин у и £, при изменении длины информационного вектора соответственно для S(n, т)-кодов и WS(n, т)-кодов.
На рис. 4 видно, что WS(n, т)-коды не обнаруживают меньшее количество ошибок в информационных векторах, чем S(n, т)-коды. По графикам рис. 5 можно заключить, что при одних значениях т S(n, т)-коды более близки к оптимальным, а при других, наоборот, более близки WS(n, т)-коды. При этом чем ближе значение Wmax к числу 2к — 1, тем выше эффективность взвешенного кода для данного значения т.
Для WS(n, т)-кодов по графикам на рис. 5 можно также установить следующее свойство. Для кодов с постоянным значением числа контрольных разрядов к увеличиваются значения коэффициента £, от кода с числом информационных разрядов т = 2к—1 к коду с числом информационных разрядов т = 2к , где к = |"log2 (Wmax +1)]. Подобным
свойством обладают и классические коды Бергера с той лишь разницей, что в них к = |"log2(rn +1)] [13, 18].
ТАБЛИЦА 2. Необнаруживаемые ошибки в кодах Бергера
m Необнаруживаемые ошибки кратностей d Nm %
К 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 У
4 0 0 0 0 —
2 0 2 2 0,1667 0
3 5 0 0 0 0 0 _
2 0 12 0 12 022143 0,6667
5 0 0 0 0 0 0 —
3 0 48 0 6 54 0,225 0,2963
5 0 0 8 4 2 14 0,0141 0
3 0 160 0 60 0 220 022218 0,4364
6 0 0 32 32 8 2 74 0,0184 0
3 0 480 0 360 0 20 860 0,2133 0,5209
7 6 0 0 96 128 72 24 0 320 0,0197 0,4
3 0 1344 0 1680 0 280 0 3304 0,2032 0,5811
8 6 0 0 320 480 304 136 40 0 1280 0,0196 0,6
4 0 3584 0 6720 0 2240 0 70 12614 0,1932 03044
7 0 0 896 1600 1280 736 280 48 14 4854 0,0186 03164
4 0 9216 0 24192 0 13440 0 1260 0 48108 0,1839 03299
7 0 0 2304 5120 4800 3232 1856 600 108 26 18046 0,0172 03972
1U 4 0 23040 0 80640 0 67200 0 12600 0 252 183732 0,1754 03511
7 0 0 6144 14848 16384 13696 9312 4272 1480 332 0 66468 0,0159 0,4622
11 4 0 56320 0 253440 0 295680 0 92400 0 5544 0 703384 0,1678 03698
7 0 0 16384 39936 51456 52480 41792 24448 11136 3088 352 82 241154 0,0144 0,5265
\1 4 0 135168 0 760320 0 1182720 0 554324 0 66528 0 924 2699984 0,161 03868
8 0 0 40960 108544 154624 182016 174720 121280 64288 25648 6184 796 150 879210 0,0131 0,2888
4 0 319488 0 2196480 0 4392960 0 2882880 0 576576 0 24024 0 10392408 0,1549 0,4028
14 8 0 0 98304 282624 458752 609280 654080 536832 346048 165312 53872 13400 2560 0 3221064 0,012 03205
4 0 745472 0 6150144 0 15375360 0 13453440 0 4036032 0 336336 0 3432 40100216 0,1494 0,418
8 0 0 237568 729088 1294336 1927168 2353664 2200832 1619072 937472 402048 123584 29352 4708 0 11858892 0,011 03509
4 0 1720320 0 16773120 0 51251200 0 57657600 0 24216192 0 3363360 0 102960 0 155084752 0,1444 0,4325
со
(Л
Вопросы технической диагностики
86
Вопросы технической диагностики
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 m
Рис. 3 График зависимости величины Д от m
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 m
Рис. 4 Графики зависимостей величины у от m
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 m
Рис. 5 Графики зависимостей величины £ от m
4 Заключение
В заключение отметим, что с усложнением микроэлектронной техники увеличивается и число потенциальных источников сбоев [19]. Этот факт нельзя не учитывать при создании высоконадежных систем управления, важное место в которых занимают методы тестового и функционального диагностирования [20].
В данной работе показаны особенности кодов с суммированием [11] по обнаружению искажений в системах функционального контроля комбинационных логических схем. Оба класса кодов - и код с суммированием единичных информационных разрядов, и взвешенный код с суммированием - обладают важной особенностью: обнаруживают любые однонаправленные искажения в ин-
Вопросы технической диагностики
87
формационных разрядах. Это определяет возможности кодов с суммированием в решении задач организации контроля комбинационных схем, в которых любая одиночная неисправность может привести только к монотонным искажениям выходов [21-25].
Коды с суммированием единичных разрядов, в отличие от взвешенных кодов с суммированием, обнаруживают любые искажения нечетных кратностей. Взвешенные коды Бергера имеют возможность обнаружения любых одно- и двукратных искажений в информационных векторах. Это свойство можно использовать при организации контроля комбинационных схем, в которых внутренняя структура исключает связь одного логического элемента с тремя и более выходами схемы. Недостатком взвешенного кода Бергера является большое число контрольных разрядов. Это при построении системы диагностирования усложняет блоки контрольной логики и тестера. Взвешенный код, однако, может оказаться эффективнее в системе диагностирования, чем код с повторением (схема дублирования).
Библиографический список
1. Touba N.A., McCluskey E.J. Logic Synthesis of Multilevel Circuits with Concurrent Error Detection // IEEE Trans. Computer-Aided Design of Integrated Circuits and System, vol. 16, Jul. 1997, pp.783-789.
2. Nicolaidis M., Zorian Y. On-Line Testing for VLSI - А Compendium of Approaches // Journal of Electronic Testing: Theory and Applications. -№ 12.- 1998. - Pp. 7-20.
3. Dutta A., Touba N. A. Synthesis of NonIntrusive Concurrent Error Detection Using an Even Error Detection Function // International test conference (ITC). - 2005. - Pp. 1059-1066.
4. New Methods of Concurrent Checking: Edition 1 / M. Goessel, V. Ocheretny, E. Sogomonyan, D. Ma-rienfeld. - Dordrecht: Springer Science + Business Media B. V., 2008. - 184 p. - ISBN 978-1-4020-8419-5.
5. On the problem of selection of code with summation for combinational circuit test organization / D. Efanov, V. Sapozhnikov, Vl. Sapozhnikov, A. Blyudov // Proceedings of 11th IEEE East-West Design & Test Symposium (EWDTS'2013), Rostov-on-Don, Russia, September 27-30, 2013, pp. 261-266.
6. Пархоменко, П. П. Основы технической диагностики (оптимизация алгоритмов диагностирования, аппаратурные средства) / П. П Пар-
хоменко, Е. С. Согомонян. - Москва : Энерго-атомиздат, 1981. - 320 с.
7. Согомонян, Е. С. Самопроверяемые устройства и отказоустойчивые системы / Е. С. Согомо-нян, Е. В. Слабаков. - Москва : Радио и связь, 1989. - 208 с. - ISBN 5-256-00308-9.
8. Path Delay Faults and ENF / A. Matrosova,
V. Lipsky, A. Melnikov, V. Singh // Proceedings of IEEE East-West Design & Test Symposium (EWDTS'2010), St. Petersburg, Russia, September 17-20, 2010, pp.164-167.
9. Обеспечение тестируемости задержек путей при синтезе схем покрытием BDD-графов / А. Ю. Матросова, Д. В. Кудин, Е. А. Николаева, Е. В. Румянцева // Вестник Томского государственного университета. Управление, вычислительная техника и информатика. - 2013. - № 2 (23). - С. 130-139.
10. Hall J. I. Notes on Coding Theory // Dep. Of Mathematics Michigan State University East Lansing, MI 48824 USA, 3 January 2003. - 193 p.
11. Berger, J. M. A note on error detection codes for asymmetric channels // Information and Control. - 1961. - Vol. 4. - Issue 1. - Pp. 68-73.
12. Ефанов, Д. В. О свойствах кода с суммированием в схемах функционального контроля Д. В. Ефанов, В. В. Сапожников, Вл. В. Сапожников // Автоматика и телемеханика. - 2010. -№ 6. - С. 155-162.
13. Построение модифицированного кода Бергера с минимальным числом необнаруживаемых ошибок информационных разрядов / А. А. Блюдов, Д. В. Ефанов, В. В. Сапожников, Вл. В. Сапожников // Электронное моделирование. - 2012. - Т. 34. - № 6. - С. 17-29.
14. Das D., Touba N.A. Weight-Based Codes and their Application to concurrent error detection of multilevel circuits // Proc. 17th IEEE Test Symposium, California, USA, 1999, pp. 370-376.
15. Favalli M., Metra C. Optimization of error detecting codes for the detection of crosstalk originated errors // Design, Automation and Test in Europe (DATE), March 13-16, 2001, pp. 290-296.
16. Low cost concurrent error detection based on modulo weight-based codes / D. Das, N. A. Touba, M. Seuring, M. Gossel // Proceedings of IEEE 6th International On-line Testing Workshop (IOLTW), Spain, Palma de Mallorca, July 3-5, 2000, pp. 171176.
17. Scan chain fault identification using weight-based codes for SoC circuits / S. Ghosh, K. W. Lai,
W. B. Jone, S. C. Chang // Proceedings of the 13th Asian Test Symposium (ATS'2004), 2004, pp. 210-215.
18. Метод построения кода Бергера с повышенной эффективностью обнаружения ошибок в информационных разрядах / В. В. Сапожников, Вл. В. Сапожников, Д. В. Ефанов, Д. А. Никитин //
88
Вопросы технической диагностики
Электронное моделирование. - 2013. - Т. 35. -№ 4. - С. 21-34.
19. Дианов, В. Н. Концептуальные особенности построения бессбойной аппаратуры / В. Н. Дианов // Автоматика и телемеханика. - 2012. -№ 7. - С. 119-138.
20. Хаханов, В. И. Проектирование и тестирование цифровых систем на кристаллах / В. И. Хаханов, Е. И. Литвинова, О. А. Гузь. -Харьков : ХНУРЭ, 2009. - 484 с.
21. Design of Self-Checking Unidirectional Combinational Circuits with Low Area Overhead / V. V. Saposhnikov, Vl. V. Saposhnikov, A. Moro-sov, M. Goessel // Proceedings of 2nd IEEE International On-line Testing Workshop (IOLTW), Biarritz, France, 1996, pp. 56-67.
22. Метод построения комбинационных са-мопроверяемых устройств с обнаружением всех одиночных неисправностей / В. В. Сапожников,
Вл. В. Сапожников, М. Гессель, А. А. Морозов // Электронное моделирование. - 1998. - Т. 20. -№ 6. - С. 70-80.
23. Morozov A. Entwurf von selbstprufenden digitalen Schaltungen mit monoton unabhangigen Ausgangen: Dissertation Dr. Rer. nat. // Universitat Potsdam, 1996. - P. 85.
24. Self-Checking Combinational Circuits with Unidirectionally Independent Outputs / A. Morosow, V. V. Saposhnikov, Vl. V. Saposhnikov, M. Goessel // VLSI Design. - 1998. - V. 5. - Issue 4. - Pp. 333345.
25. A New Design Method for Self-Checking Unidirectional Combinational Circuits / Saposhnikov V. V., Morosov A., Saposhnikov Vl. V., Goessel M. // Journal of Electronic Testing: Theory and Applications (JETTA). - 1998. - V. 12. - Issue 1-2 (February /April). - Pp. 41-53.