Проектирование и тестирование логических устройств
УДК 681.518.5:004.052.32
Вал. В. Сапожников, д-р техн. наук, Вл. В. Сапожников, д-р техн. наук, Д. В. Ефанов, канд. техн. наук, В. В. Дмитриев, канд. техн. наук
Кафедра «Автоматика и телемеханика на железных дорогах», Петербургский государственный университет путей сообщения Императора Александра I
КОД С СУММИРОВАНИЕМ ВЗВЕШЕННЫХ ИНФОРМАЦИОННЫХ РАЗРЯДОВ БЕЗ ПЕРЕНОСОВ В СИСТЕМАХ ФУНКЦИОНАЛЬНОГО КОНТРОЛЯ
Описывается разделимый код, который может быть эффективно использован при организации систем функционального контроля комбинационных логических схем. Данный код принадлежит к классу кодов с суммированием взвешенных информационных разрядов и строится по простым правилам, что соответственно определяет и простые структуры кодирующей аппаратуры. Приведенный код имеет такое же количество контрольных разрядов, как и классический код Бергера, однако при этом обнаруживает большее количество ошибок в информационных векторах при установленных значениях длин информационных и контрольных векторов. Что немаловажно, новый код с суммированием обнаруживает любые двукратные искажения в информационных векторах, что определяет перспективы его применения в задачах технической диагностики. В статье также дается сравнение описываемого кода с классическим кодом Бергера. Приводятся результаты экспериментов с набором контрольных комбинационных схем MCNC Benchmarks по организации систем функционального контроля.
техническая диагностика; система функционального контроля; комбинационная схема; кодовое слово; код Бергера; взвешенный код с суммированием; информационный вектор; ошибка в информационном векторе; структурная избыточность
Введение
Для определения технического состояния комбинационных логических схем в процессе их работы используются системы функционального контроля [1—4]. Неисправности в структуре комбинационной схемы ^(х) приводят
к искажениям значений вычисляемых ею булевых функций f, f, ..., f, что фиксируется схемой контроля (рис. 1). Таким образом, осуществляется косвенный контроль неисправностей по проявлениям их на выходах объекта диагностирования. В структуре схемы контроля выделяются два блока - блок контрольной логики G(x) и самопроверяемый тестер (TSC). Блок контрольной логики формирует на тех же входных воздействиях <x1 x2 ... x>, что и контролируемая схема значения рабочих функций, систему контрольных булевых функций g1, g , ..., g . Самопроверяемый тестер предназначен для проверки соответствия между рабочими и контрольными функциями в процессе работы системы функционального контроля. При определении несоответствия тестер вырабатывает защитный непарафазный сигнал <00> или <11>. Сам тестер, будучи «последним сторожем», является самопроверяемым и обладает свойствами формирования защитных значений на выходе и обнаружения любых внутренних ошибок, хотя бы на одном входном наборе [5, 6].
Входы
F(x)
Кодовое слово
G(x)
f2
fm
>fi ">f2
Рабочие выходы
Схема контроля
fm
f1
f2 W w
W
fm w
g1 g1 W w
g2 g2 W w
'gk gk W
\ ; w
TSC
Z1 [Контрольные ->• z21 выходы
x
t
Рис. 1. Структурная схема системы функционального контроля
В основе системы функционального контроля, структура которой приведена на рис. 1, лежит заранее выбранный разделимый код с обнаружением ошибок [7-9]. Значения разрядов информационного вектора данного кода формируются блоком ^(х), а значения разрядов контрольного вектора вычисляются блоком О(х). Таким образом, в системе функционального контроля формируется кодовое слово </1 /2.../т g1 g2 ... g|> заранее выбранного кода, имеющее т информационных и к контрольных разрядов. Тестер фактически осуществляет проверку соответствия разрядов информационного и контрольного векторов друг другу.
Как правило, в структуре схемы ^(х) рассматриваются одиночные константные неисправности на выходах логических элементов [1]. В процессе работы системы функционального контроля, ввиду раздельной реализации всех ее блоков, одновременно возможно возникновение неисправности только в одном из блоков [10]. Неисправности блока О(х) искажают значения разрядов контрольного вектора, что обнаруживается схемой тестера. Неисправности же в структуре контролируемого объекта искажают значения разрядов информационного вектора и в общем случае могут быть обнаружены или не обнаружены схемой тестера в зависимости от вида возникшей ошибки. Так, например, кодом паритета не обнаруживается никакой ошибки четной кратностью в информационных векторах [11, 12].
В системах управления структура, изображенная на рис. 1, должна удовлетворять требованию 100 %-го обнаружения одиночных константных неисправностей в контролируемом объекте. Это свойство обеспечивается путем разделения выходов на группы и использования соответствующего кода для обнаружения в группе любых неисправностей или же реконфигурацией структуры контролируемого объекта в контролепригодную структуру по определенным правилам [5, 13, 14]. Эти правила определяются свойствами разделимых кодов, используемых для организации системы функционального контроля.
Изучая свойства разделимых кодов, можно формулировать алгоритмы построения систем функционального контроля со 100 %-м обнаружением ошибок в контролируемых схемах. В данной статье описывается новый разделимый код, обладающий рядом полезных особенностей, что говорит о хороших перспективах его применения при организации систем функционального контроля.
1 Классический код Бергера
В системах функционального контроля часто используют классические коды с суммированием, или коды Бергера [15]. В коде Бергера разряды контрольного вектора содержат двоичное число, равное числу единичных разрядов в информационном векторе (равное весу г информационного вектора). Количество контрольных разрядов определяется выражением к = |~1о§2 (т +1)"], где запись [...] обозначает целое сверху от вычисляемого значения. Обозначим код Бергера как 5(т,к)-код.
Из правил построения 5(т,к)-кода следует, что все информационные векторы с одинаковым весом будут иметь одинаковые контрольные векторы. Например, в табл. 1 дается распределение информационных векторов на группы с одинаковыми контрольными векторами (на контрольные группы).
Таблица 1. Распределение информационных векторов между контрольными векторами £(4,3)-кода
Контрольные группы
000 001 010 011 100 101 110 111
0000 0001 0011 0111 1111
0010 0101 1011
0100 0110 1101
1000 1001 1110
1010
1100
Эта форма задания кода удобна тем, что позволяет достаточно просто анализировать его характеристики по обнаружению ошибок в информационных векторах. Так, любая ошибка, переводящая информационный вектор, расположенный в одной контрольной группе, в информационный вектор той же контрольной группы, обнаружена не будет. Все остальные ошибки кодом обнаруживаются. Поскольку в одной контрольной группе у 5(т,к)-кода присутствуют только информационные векторы с одинаковым весом, им обнаруживается любая монотонная ошибка, что эффективно используется при построении контролепригодных систем автоматики и вычислительной техники [5, 14].
Количество информационных векторов с весом г равно Сгт. Отсюда сле-
дует, что с увеличением значения г до величины
1Г
т
т
(запись [...] обознача-
ет целое снизу от вычисляемого значения) количество информационных векторов с одинаковым контрольным вектором увеличивается. С дальнейшим увеличением числа г до величины т количество информационных векторов с одинаковым контрольным вектором уменьшается. Некоторые контрольные группы в 5(т,к)-коде вообще оказываются незаполненными (см. табл. 1). Такая неравномерность в распределении информационных векторов между контрольными векторами обусловливает наличие большого количества необ-наруживаемых 5(т,к)-кодом ошибок - любая разнонаправленная ошибка в информационном векторе, содержащая группу искажений {0—>1; 1 —^0} (симметричная ошибка [16-18]), данным кодом обнаружена не будет. Более того, кодом Бергера не обнаруживается большое количество ошибок с малой кратностью С. В табл. 2 даются значения величины вс - доли необнаружи-ваемых ошибок кратностью С от общего количества ошибок данной кратностью в информационных векторах для 5(т,к)-кодов. В [19] доказано, что вне зависимости от длины информационного вектора для кодов Бергера значение величины вс постоянно для каждого значения С.
Таблица 2. Значения величины p для £(т,А:)-кодов
Значения величины p^, %
2 4 6 8 10 12 14 16 18 20
50 37,5 31,25 27,344 24,609 22,559 20,947 19,638 18,547 17,62
£(т,к)-код не обнаруживает половину двукратных ошибок и более трети четырехкратных ошибок в информационных векторах.
Известно достаточно большое количество алгоритмов модификации кода Бергера, позволяющих уменьшить количество необнаруживаемых ими ошибок [10, 20-26]. При модификации фактически меняется распределение информационных векторов между контрольными векторами. Во многих случаях уменьшение количества ошибок достигается за счет внесения в класс необнаруживаемых некоторого количества монотонных ошибок.
В [26, 27] рассматривается абстрактный оптимальный разделимый код, обладающий для данных значений т и к минимальным общим количеством необнаруживаемых ошибок в информационных векторах:
= 2т (2т-к - 1). (1)
В оптимальном разделимом коде все 2т информационных вектора равномерно распределены между всеми 2к контрольными векторами. «Близость» любого разделимого кода к оптимальному коду оценивается коэффициентом эффективности [26, 27]:
^ = ^, (2)
где Ыт к - количество необнаруживаемых кодом ошибок в информационных векторах.
Чем ближе Ъ,тк к 1, тем эффективнее код обнаруживает ошибки в информационных векторах при заданных значениях т и к.
Коды Бергера не обнаруживают следующее количество ошибок в информационных векторах [19]:
т,(т-1) ^ т,(т-1)
= X 2т-ад = 2т X вСт, (3)
d=2 а=2
где суммируются ошибки только четной кратностью d = 2, 4, ..., т - при четном значении т и d = 2, 4, ..., (т - 1) - при нечетном т.
Коэффициент эффективности £(т,к)-кодов:
ъ _ 2т (2т-к -1) _ т,(т-1)
2т-к -1
т,(т-1) ^ ^ о
(4)
2т х р^ст х
d_2 d_2
£(т,к)-коды далеки от оптимальных разделимых кодов (рис. 2). Для большинства кодов Бергера значение < 0,5, и только для кодов при т, равном 3, 6 и 7, превышает данное значение.
0,7 0,6 0,5
■ч
^ 0,4
<и 15 И
I 0,3
СП
0,2 0,1 0 *
1
Л
V
Г
• •
ч
Л
•
•
с
< > • <1 >
• 7
• •
• • ..-О-' •
• ..о- •
•
< •
о
• 1. .-<
Ч
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Длина информационного вектора, т
Рис. 2. Значения коэффициента £,т к для £(т,к)-кодов
Таким образом, при достаточно большом количестве необнаруживаемых ошибок в информационных векторах, в том числе ошибок с малой кратностью, коды Бергера также неэффективно используют свои контрольные разряды. Возникает задача построения оптимального разделимого кода, у которого максимум ошибок будет смещен в сторону большей кратности.
2 Код с суммированием взвешенных информационных разрядов без переносов
Оптимальный разделимый код с улучшенными по сравнению с кодом Бергера характеристиками обнаружения ошибок в информационных векторах при таком же количестве контрольных разрядов может быть построен
на принципе приписывания весовых коэффициентов разрядам информационного вектора [15, 25, 28] и последующих операциях с ними.
Приведем алгоритм построения оптимального кода с суммированием [29, 30].
1. Разрядам информационного вектора, начиная с младшего, приписываются весовые коэффициенты, образующие ряд последовательно возрастающих натуральных чисел: [т; т - 1; ...; 2; 1].
2. Значение каждого весового коэффициента ж представляется в двоичном виде: [ж]2.
3. Определяется число [ W]2 - сумма двоичных чисел [ж]2 весовых коэффициентов единичных разрядов информационного вектора без переносов:
т
№\2 = &£ [ ^ ]. (5)
¡=1
4. Число [W]2 записывается в разряды контрольного вектора.
Данный код обозначим как £ЖС(т,к)-код. В табл. 3 представлены векторы £ЖС(4,3)-кода, а в табл. 4 - распределение информационных векторов
Таблица 3. Получение разрядов контрольного вектора 5ЖС(4,3)-кода
№ Разряды информационного вектора Суммируемые весовые коэффициенты Разряды контрольного вектора
f4 f3 ft ^2 8г
w II w3=3 W2=2 Wj=1 В десятичном виде В двоичном виде
0 0 0 0 0 - - 0 0 0
1 0 0 0 1 1 001 0 0 1
2 0 0 1 0 2 010 0 1 0
3 0 0 1 1 1+2 001+010 0 1 1
4 0 1 0 0 3 011 0 1 1
5 0 1 0 1 1+3 001+011 0 1 0
6 0 1 1 0 2+3 010+011 0 0 1
7 0 1 1 1 1+2+3 001+010+011 0 0 0
8 1 0 0 0 4 100 1 0 0
9 1 0 0 1 1+4 001+100 1 0 1
10 1 0 1 0 2+4 010+100 1 1 0
11 1 0 1 1 1+2+4 001+010+100 1 1 1
12 1 1 0 0 3+4 011+100 1 1 1
13 1 1 0 1 1+3+4 001+011+100 1 1 0
14 1 1 1 0 2+3+4 010+011+100 1 0 1
15 1 1 1 1 1+2+3+4 001+010+011+100 1 0 0
Таблица 4. Распределение информационных векторов 5ЖС(4,3)-кода
на контрольные группы
Контрольные группы
000 001 010 011 100 101 110 111
Информационные векторы
0000 0001 0010 0011 1000 1001 1010 1011
0111 0110 0101 0100 1111 1110 1101 1100
между контрольными векторами. Из анализа табл. 4 следует, что 5ЖС(4,3)-код не обнаруживает 16 трехкратных ошибок в информационных векторах.
В табл. 5 приведены рассчитанные значения количества необнаружи-ваемых ошибок в SWС(m,k)-кодaх в сравнении с аналогичной величиной для 5(т,к)-кодов. В каждой клетке таблицы приведено два числа - верхнее число соответствует количеству необнаруживаемых ошибок в SWС(m,k)-коде, нижнее - в S(m,k)-коде. SWС(m,k)-код гораздо эффективнее обнаруживает ошибки любой четной кратностью в информационных векторах, чем S(m,k)-код. Однако SWС(m,k)-кодом не обнаруживается некоторое количество ошибок нечетной кратностью. На рис. 3 сравниваются SWT(16,5)- и S(16,5)-коды по количеству необнаруживаемых ошибок каждой кратностью. Из рисунка видно, насколько эффективен новый код в сравнении с кодом Бергера. На рис. 4 приводятся графики величин %, для SWС(m,k)-кодa при малых значениях ^ При т > 8 значения в3, в4 и в5 не превышают 10 %.
3 Применение кодов Бергера и кодов с суммированием взвешенных информационных разрядов без переносов при организации систем функционального контроля
Оценим эффективность использования SWC(m ,Щ-кодов при организации систем функционального контроля на стандартных контрольных комбинационных схемах MCNC Benchmarks [31].
Контрольные комбинационные схемы в MCNC Benchmarks представлены, в том числе, в формате *.pla, фактически содержащем в сжатом виде таблицу истинности функций, вычисляемых схемой. С использованием интерпретатора SIS можно определять различные параметры контрольной комбинационной схемы, реализованной в том или ином базисе, который задается библиотекой функциональных элементов [32]. Одним из ключевых параметров является площадь L, занимаемая устройством на кристалле. С использованием разработанного программного обеспечения для ряда контрольных комбинационных схем в формате *.pla были получены все блоки системы
т к Количество необнаруживаемых ошибок кратностью с1, А^ Л..1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
2 2 0 0 0
0 2 2
3 2 0 0 8 8
0 12 0 12
4 3 0 0 16 0 16
0 48 0 6 54
5 3 0 0 64 32 0 96
0 160 0 60 0 220
6 3 0 0 256 192 0 0 448
0 480 0 360 0 20 860
7 3 0 0 896 896 0 0 128 1920
0 1344 0 1680 0 280 0 3304
8 4 0 0 1792 1792 0 0 256 0 3840
0 3584 0 6720 0 2240 0 70 12614
9 4 0 0 4096 5120 2048 2048 2048 512 0 15872
0 9216 0 24192 0 13440 0 1260 0 48108
10 4 0 0 10240 16384 12288 12288 10240 3072 0 0 64512
0 23040 0 80640 0 67200 0 12600 0 252 183 732
11 4 0 0 26624 53248 49152 49152 53248 26624 0 0 2048 260096
0 56320 0 253440 0 295680 0 92400 0 5544 0 703384
12 4 0 0 69632 155648 180224 212992 221184 135168 49152 16384 4096 0 1044480
0 135168 0 760320 0 1182 720 0 554324 0 66528 0 924 2699984
13 4 0 0 180224 450560 589824 786432 950272 712 704 327680 131072 49152 8192 0 4186112
0 319488 0 2196480 0 4392960 0 2882 880 0 576576 0 24024 0 10392408
14 4 0 0 458 752 1261568 1835008 2752512 3801088 3325952 1835008 917504 458 752 114688 0 0 16760832
0 745472 0 6150144 0 15375360 0 13453440 0 4036032 0 336336 0 3432 40100216
15 4 0 0 1146880 3440640 5505024 9175040 14254080 14254080 9175040 5505024 3440640 1146880 0 0 32 768 67076096
0 1720320 0 16773 120 0 51251200 0 57657600 0 24216192 0 3363360 0 102960 0 155084752
16 5 0 0 2293 760 6881280 11010048 18350080 28508 160 28508160 18350080 11010048 6881280 2293 760 0 0 65536 0 134152192
0 3932160 0 44728320 0 164003 840 0 230630400 0 129153024 0 26906880 0 1647360 0 12 870 601014854
250000000
200000000
150000000
100000000
50000000
О—о—□
10 11 12 13 14 15 16 Кратность необнаруживаемой ошибки, d
—О—SWT(m,k) -О- S(m,k)
Рис. 3. Сравнение WSH(16,5) и S(16,5) кодов по обнаружению ошибок
каждой кратностью
функционального контроля (см. рис. 1), а затем для каждого из них определены показатели площади в условных единицах SIS. При этом произведена оценка площади как при раздельной реализации контролируемой схемы F(x) и G(x), так и при совместной их реализации и последующей оптимизации структур. Эксперименты по определению площадей структур систем функционального контроля произведены как при использовании в основе £ЖС(т,к)-кода, так и при использовании £(т,к)-кода. На основании результатов абсолютных значений площадей структур систем функционального контроля получены относительные показатели их структурной избыточности, %:
1. Коэффициент ôf - отношение площади системы функционального контроля к площади контролируемой комбинационной схемы.
2. Коэффициент ô^ - отношение площади системы функционального контроля к площади системы дублирования.
3. Коэффициент ôS' - отношение площади системы функционального контроля к площади системы контроля по коду Бергера при раздельной реализации блоков F(x) и G(x).
25
\1Y......
\
■Д
Д
г 1 \
L J >
■•f 1
L J.....f J-L J-L
L—J
-J L—J г—1 L s
A г \ \ V'-T?
i * < T "V-ç
/ /
/ /
—к—I t-i к-i /
20
15
10
7
9 10 11 12 13 14 15 16 17 18 19 20 Длина информационного вектора, m
♦ d = 3 •••□• -d = 4 --Д--d = 5 Рис. 4. Значения коэффициента pd для SWT(m,k)-кодов
4. Коэффициент 5S" - отношение площади системы функционального контроля к площади системы контроля по коду Бергера при совместной реализации блоков F(x) и G(x).
5. Коэффициент ц - коэффициент «сжатия» для системы функционального контроля с совместной реализацией блоков F(x) и G(x) по отношению к системе функционального контроля с раздельной реализацией блоков F(x) и G(x).
Результаты экспериментов и обработки полученных данных для 25 контрольных примеров сведены в табл. 6. Коэффициенты «сжатия» получены как для структур, организованных по £(т,£)-коду, так и для структур, организованных по SWС(m,k)-коду. Остальные коэффициенты (5^ 5D, 5S) определены для систем функционального контроля по SWT(m,k)-коду с двумя вариантами реализации: а) с раздельной реализацией блоков F(x) и G(x); б) с совместной реализацией блоков F(x) и G(x). В данной таблице вид реализации обозначен нижними индексами cl и ji - классическая структура (classic, cl) и структура с совместной реализацией блоков основной и контрольной логики (with joint implementation, ji).
5
0
к -
0 £
1
§
о -
о д ■в
s
X
0
s а
X
1
^ 2 r&Jf
S "Ч
S Л
о S о
S
н ^ Ö ^
5 S ^
« О w ■
cd
я
О
ч =
к
■в
х
> *
8 Ü
cd & &
cd О К
cd *
I »
CD
MD
«
Я
а
ч
ю «
Н
Показатели системы контроля по SWС(m,k)-коду, % 5о 65,366 85,259 71,811 94,444 86,175 63,551 78,278 69,144 62,049 64,624 147,712 0 0 66,822 53,1 44,22 45,629 87,166 128,025 28,323 80,463 86,201 93,669 88,469 65,195 47,809 76,14
to 5о 69,54 81,78 79,149 91,781 91,304 69,672 94,839 96,648 103,561 67,991 65,722 64,051 71,176 67,896 47,436 55,838 52,376 42,105 32,062 48,933 54,567 63,419 41,5 68,541 68,541 67,617
<5 ОО 52,756 60,795 50,142 60,714 64,483 62,963 62,143 50,906 60,358 57,711 66,082 58,333 39,687 42,733 72,59 59,08 79,248 38,14 59,442 29,801 27,594 32,991 41,523 32,151 32,151 51,781
71,457 66,085 67,151 79,762 79,655 78,704 5 7 8 ,7 3, 7 77,366 72,388 74,561 75,298 74,125 73,861 78,012 79,104 84,143 66,034 71,245 62,894 61,682 62,806 65,469 60,295 60,295 71,647
«сР 153,143 125,78 104,161 0 4 3 178,095 247,273 139,359 107,392 124,293 190,164 245,652 220,225 95,565 106,775 325,676 159,933 176,614 104,961 187,162 68,859 61,616 71,514 102,241 66,927 66,927 150,812
207,429 136,725 139,493 446,667 0 2 2 309,091 168,192 155,648 159,317 238,525 277,174 284,27 178,492 184,553 0 5 3 214,141 187,522 181,723 224,324 145,325 137,73 136,142 161,203 125,513 125,513 203,788
! S Î со % 73,829 91,995 74,671 76,119 80,952 0 8 82,857 68,997 78,016 79,725 88,627 77,47 53,54 57,856 93,05 74,686 94,183 57,759 83,434 47,383 44,737 52,529 63,424 53,323 53,323 71,299
2144 49 648 39 456 8 0 4 1496 1088 4872 10 344 22 144 1856 1808 1568 3448 3152 1928 3800 16 192 3216 4432 6952 8296 13 376 6936 27 408 27 408 1
2904 53 968 52 840 чо 3 5 1848 1360 5880 14 992 28 384 2328 2040 2024 6440 5448 2072 5088 17 192 5568 5312 14 672 18 544 25 464 10 936 51 400 51 400 1
до-к % 78,544 88,241 82,301 73,973 85,771 87,705 100,387 96,441 130,21 83,879 39,433 49,62 57,029 73,978 99,817 91,396 56,593 18,996 94,447 28,815 28,319 35,565 29,751 56,059 76,445 69,749
3280 58 232 54 944 2 3 4 1736 1712 6224 14 960 35 688 2872 1224 1568 5160 5936 4360 8328 18 576 2512 15 648 8640 9624 14 280 7840 42 040 57 328 1
4176 65 992 66 760 4 8 5 2024 1952 6200 15 512 8 0 4 7 2 3424 3104 3160 9048 8024 4368 9112 32 824 13 224 16 568 29 984 33 984 40 152 26 352 74 992 74 992 1
Double System 4064 81 664 78 688 2 7 6 2320 1728 7840 20 320 36 688 3216 2736 2688 8688 7376 2656 6432 20 432 8432 7456 23 328 30 064 40 544 16 704 85 248 85 248 1
Число выходов 4 5 3 4 5 5 6 6 7 7 7 8 8 8 9 11 2 4 6 6 6 6 7 7 Средние значения
Число входов 8 4 7 3 0 4 8 9 0 4 4 4 2 2 5 7 5 6 5 8 8 8 8 6 6
Контрольная схема misex1 3 le 1 table5 tcheck newtpla2 newcwp root max512 max1024 dc1 dekoder wim br1 2 r b newbyte inc b10 m1 2 8 p 2 S 3 S 4 S tms 2 b in1
Для 25 контрольных комбинационных схем в среднем получен следующий результат: структура системы функционального контроля на основе SWС(m,k)-кода при раздельной реализации блоков F(x) и С(х) занимает площадь на кристалле, равную 71,647 % площади системы дублирования и 67,617 % площади системы функционального контроля, построенной на основе кода Бергера. Для некоторых комбинационных схем было получено уменьшение площади структуры на основе SWС(m,k)-кода в сравнении с дублированием более чем на четверть, а в сравнении с системой на основе кода Бергера - более чем вдвое.
Структура с совместной реализацией блоков основной и контрольной логики в сравнении с дублированием оказывается в среднем проще системы дублирования - 51,781 % (уменьшение площади практически вдвое). Для 9 схем из 25 достигнуто значительное уменьшение - от 27,594 до 42,733 % от площади системы дублирования. При сравнении структур с совместной реализацией блоков основной и контрольной логики, построенных на основе кода Бергера и нового кода, выигрыш в площади системы на основе нового кода составляет 76,14 %.
Результаты экспериментов позволяют говорить о высокой эффективности SWС(m,k)-кода в задачах технической диагностики и, прежде всего, при организации систем функционального контроля комбинационных логических схем.
Заключение
В статье предложен способ построения оптимального разделимого кода, эффективного для решения задач технической диагностики. Идея построения нового SWС(m,k)-кода базируется на идее приписывания весовых коэффициентов разрядам информационного вектора из последовательности возрастающих натуральных чисел, начиная с младшего разряда, и последующих операций суммирования весовых коэффициентов. При этом суммируются двоичные эквиваленты десятичных чисел весовых коэффициентов, операция переноса при суммировании не используется. Такой подход к построению кода позволяет не только получить разделимый код с равномерным распределением информационных векторов между контрольными векторами (так называемый оптимальный код [26]), но и наделить его таким важным свойством, как обнаружение любых двукратных ошибок в информационных векторах при любой их длине.
В ходе исследования проведено детальное сравнение свойств SWС(m,k)-кода с классическим кодом Бергера, имеющим аналогичное количество контрольных разрядов для соответствующих значений длин информационных векторов. Показаны преимущества SWС(m,k)-кода в обнаружении оши-
бок с малыми значениями кратностей. Например, на рис. 5 показаны графики изменения средних значений величин для диапазона длин информационных векторов т = 2^20 для SWС(m,k)- и S(m,k)-кодов, по которым видно, что SWС(m ,к)-код имеет достаточно высокий процент обнаруживаемых ошибок по каждой кратности в сравнении с кодом Бергера. Однако в классе необна-руживаемых у нового кода имеются не только симметричные ошибки, как в классическом коде Бергера, а значит, для решения схожих задач при построении контролепригодных устройств автоматики и вычислительной техники требуется учет свойств обнаружения ошибок SWС(m,k)-кодом.
60
50
40
30
20
10
9 10 11 12 13 14 15 16 17 18 19 20 Кратность ошибки
■□■• S(m,k)
•SWT(m,k)
Рис. 5. Средние значения коэффициента р^ для SWT(m,k)- и для S(m,k)-кода в диапазоне длин информационных векторов m = 2^20
0
В работе, с использованием набора контрольных комбинационных схем MCNC Benchmarks, показано, что использование SWC(m,k)-кода для построения систем функционального контроля более эффективно, чем использование системы дублирования и классического кода Бергера.
Новый код с суммированием «без переноса» весовых коэффициентов единичных информационных разрядов в алгебре сложения по модулю два -перспективный код для решения задач технической диагностики.
Библиографический список
1. Пархоменко П. П. Основы технической диагностики (оптимизация алгоритмов диагностирования, аппаратурные средства) / П. П. Пархоменко, Е. С. Согомо-нян. - М. : Энергоатомиздат, 1981. - 320 с.
2. McCluskey E. J. Logic design principles : With emphasis on testable semicustom circuits / E. J. McCluskey. - New Jersey : Prentice hall PTR, 1986. - 549 p.
3. Mitra S. Which concurrent error detection scheme to ^oose? / S. Mitra, E. J. McCluskey // Proceedings of International test conference. 2000. USA, Atlantic city, NJ, 03-05 October 2000. - Pp. 985-994.
4. Дрозд А. В. Нетрадиционный взгляд на рабочее диагностирование вычислительных устройств / А. В. Дрозд // Проблемы управления. - 2008. - № 2. - С. 48-56.
5. Согомонян Е. С. Самопроверяемые устройства и отказоустойчивые системы / Е. С. Согомонян, Е. В. Слабаков. - М. : Радио и связь, 1989. - 208 с.
6. Сапожников Вал. В. Самопроверяемые дискретные устройства / Вал. В. Сапожников, Вл. В. Сапожников. - СПб. : Энергоатомиздат, 1992. - 224 с.
7. Nicolaidis M. On-line testing for VLSI - А compendium of approaches / M. Nico-laidis, Y. Zorian // Journal of electronic testing : theory and applications. - 1998. -№ 12. - Pp. 7-20.
8. Fujiwara E. Code design for dependable systems : Theory and practical applications / E. Fujiwara. - New Jersey : John Wiley & Sons, 2006. - 720 p.
9. Lala P. K. Principles of modern digital design / P. K. Lala. - New Jersey : John Wiley & Sons, 2007. - 419 p.
10. Блюдов А. А. О кодах с суммированием единичных разрядов в системах функционального контроля / А. А. Блюдов, Д. В. Ефанов, Вал. В. Сапожников, Вл. В. Сапожников // Автоматика и телемеханика. - 2014. - № 8. - С. 131-145.
11. Аксёнова Г. П. Необходимые и достаточные условия построения полностью проверяемых схем свертки по модулю два / Г. П. Аксёнова // Автоматика и телемеханика. - 1979. - № 9. - С. 126-135.
12. Ghosh S. Synthesis of low power CED circuits based on parity codes / S. Ghosh, S. Basu, N.A. Touba // Proceedings of 23rd IEEE VLSI test symposium (VTS'05). -2005. - Pp. 315-320.
13. Busaba F. Y. Self-checking combinational circuit design for single and unidirectional multibit errors / F. Y. Busaba, P. K. Lala // Journal of electronic testing : Theory and applications. - 1994. - Vol. 5. - Issue 5. - Pp. 19-28.
14. Saposhnikov Val. V. A New design method for self-checking unidirectional combinational circuits / Val. V. Saposhnikov, A. Morosov, Vl. V. Saposhnikov, M. Goes-sel // Journal of electronic testing : Theory and applications. - 1998. - Vol. 12. - Issue 1-2. - Pp. 41-53.
15. Berger J. M. А note on error detecting codes for asymmetric channels / J. M. Berger // Information and control. - 1961. - Vol. 4. - Issue 1. - Pp. 68-73.
16. Lin D. J. Unidirectional error correcting/detecting codes / D. J. Lin // Ph. D. Thesis, Oregon state university. - July 2. - 1987. - 104 p.
17. Jha N. K. A t-unidirectional error-detecting systematic code / N. K. Jha, M. B. Vo-ra // Computers & mathematics with application. - 1988. - Vol. 16. - Issue 9. -Pp. 705-714.
18. Сапожников Вал. В. Классификация ошибок в информационных векторах систематических кодов / Вал. В. Сапожников, Вл. В. Сапожников, Д. В. Ефанов // Известия вузов. Приборостроение. - 2015. - Т. 58. - № 5. - С. 333-343.
19. Ефанов Д. В. О свойствах кода с суммированием в схемах функционального контроля / Д. В. Ефанов, Вал. В. Сапожников, Вл. В. Сапожников // Автоматика и телемеханика. - 2010. - № 6. - С. 155-162.
20. Berger J. M. A note on burst detecting sum codes / J. M. Berger // Information and control. - 1961. - Vol. 4. - Issue 2-3. - Pp. 297-299.
21. Dong H. Modified berger codes for detection of unidirectional errors / H. Dong // IEEE transactions on computers. - June 1984. - Vol. C-33. - Pp. 572-575.
22. Jha N. K. A systematic code for detecting t-unidirectional errors / N. K. Jha, M. B. Vora // Proceedings of International symposium «Fault-Tolerant Computers», Pittsburg, PA, June 1987. - Pp. 96-101.
23. Parhami B. New class of unidirectional error-detection codes / B. Parhami // Proceedings of IEEE International conference on computer design : VLSI in computers and processors, 14-16 October 1991 (ICCD '9), Cambridge, MA. - Pp. 574-577.
24. Piestrak S. J. Design of self-testing checkers for unidirectional error detecting codes / S. J. Piestrak. - Wroclaw : Oficyna wydawnicza politechniki wroclavskiej, 1995. -111 p.
25. Das D. Weight-based codes and their application to concurrent error detection of multilevel circuits / D. Das, N.A. Touba // Proceedings of 17th IEEE test symposium, USA, California, 1999. - Pp. 370-376.
26. Блюдов А. А. Построение модифицированного кода Бергера с минимальным числом необнаруживаемых ошибок информационных разрядов / А. А. Блюдов, Д. В. Ефанов, Вал. В. Сапожников, Вл. В. Сапожников // Электронное моделирование. - 2012. - Т. 34. - № 6. - С. 17-29.
27. Blyudov A. Properties of code with summation for logical circuit test organization / A. Blyudov, D. Efanov, Val. Sapozhnikov, Vl. Sapozhnikov // Proceedings of 10th IEEE east-west design & test symposium (EWDTS'2012), Kharkov, Ukraine, September 14-17, 2012. - Pp. 114-117.
28. Das D. 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. 171-176.
29. Сапожников Вал. В. Оптимальный систематический код на основе взвешивания разрядов информационных векторов и суммирования без переносов для систем функционального контроля / Вал. В. Сапожников, Вл. В. Сапожников, Д. В. Ефанов, В. В. Дмитриев, Ц. Хуан // Известия Петербургского университета путей сообщения. - 2016. - № 1. - С. 75-84.
30. Sapozhnikov Val. Weighted sum code without carries - is an optimum code with detection of any double errors in data vectors / Val. Sapozhnikov, Vl. Sapozhnikov, D. Efanov, V. Dmitriev // Proceedings of 14th IEEE east-west design & test symposium (EWDTS'2016), Yerevan, Armenia, October 14-17, 2016. - Pp. 134-141.
31. Collection of digital design benchmarks. - URL : http://ddd.fit.cvut.cz/prj/Bench-marks.
32. Yang S. Logic synthesis and optimization benchmarks : User guide : Version 3.0 / S. Yang. - Microelectronics center of north carolina (MCNC), 1991. - 88 p.
Valéry V. Sapozhnikov, Vladimir V. Sapozhnikov,
Dmitry V. Efanov, Vyacheslav V. Dmitriev, «Automation and remote control on railways» department Emperor Alexander I St. Petersburg state transport university
Code with summation of weighted data bits without transitions within concurrent error detection systems
The article describes the systematic code, that can be effectively used for organizing the concurrent error detection systems for combinational logic circuits. This systematic code belongs to the class of codes with summation of weighted data bits and has a simple rules of formation, that, respectively, provides a simple structure of encoding hardware. The above mentioned systematic code has the same number of check bits as a classic Berger code, however, it has a minimum total amount of undetectable errors in data vectors with set values of data and check vectors lengths. Importantly, the new sum code detects any double distortion in data vectors, which determines the prospects of its implementation for technical diagnostics problems. The article also compares the described systematic code with the classic code Berger. The article provides the results of tests with a set of MCNC Benchmarks reference combinational circuits for the organization of the concurrent error detection systems.
technical diagnostics; concurrent error detection systems; combinational circuit; code word; Berger code; weight-based sum code; data vector; error in data vector; structure redundancy
References
1. Parkhomenko P. P., Sogomonyan E. S. (1981). Basics of technical diagnostics (optimization of diagnostic algorithms and equipment) [Osnovy tekhnicheskoy diagnos-tiki (optimizatsiya algoritmov diagnostirovaniya, apparaturnyye sredstva)]. Moscow, Energoatomizdat. - 320 p.
2. McCluskey E. J. (1986). Logic design principles: With emphasis on testable semi-custom circuits. New Jersey, Prentice hall PTR. - 549 p.
3. Mitra S., McCluskey E. J. (2000). Which concurrent error detection scheme to choose? Proceedings of International test conference, 2000, USA, Atlantic City, NJ, 03-05 October 2000. - Pp. 985-994.
4. Drozd A. V. (2008). Non-conventional point of view at operational diagnostics of compluting devices [Netraditsionnyy vzglyad na rabocheye diagnostirovani-ye vychislitel'nykh ustroystv], Management problems [Problemy upravleniya], issue 2. - Pp. 48-56.
5. Sogomonyan E. S., Slabakov E. V. (1989). Self-checking devices and fault-tolerant systems [Samoproveryayemyye ustroystva i otkazoustoychivyye sistemy]. Moscow, Radio and communication (Radio i svyaz'). - 208 p.
6. Sapozhnikov Val. V., Sapozhnikov Vl. V. (1992). Self-checking discrete devices [Samoproveryayemyye diskretnyye ustroystva]. St. Petersburg, Energoatomizdat. -224 p.
7. Nicolaidis M., Zorian Y. (1998). On-Line Testing for VLSI - A Compendium of approaches. Journal of electronic testing: Theory and applications, issue 12. -Pp. 7-20.
8. Fujiwara E. (2006). Code design for dependable systems: Theory and practical applications. New Jersey, John Wiley & Sons. - 720 p.
9. Lala P. K. (2007). Principles of modern digital design. New Jersey, John Wiley & Sons. - 419 p.
10. Blyudov A. A., Efanov D. V., Sapozhnikov Val. V., Sapozhnikov Vl. V. (2014). On sum codes of unit bits in concurrent error detection systems [O kodakh s summiro-vaniyem yedinichnykh razryadov v sistemakh funktsional'nogo kontrolya]. Automation and remote control [Avtomatika i telemekhanika], issue 8. - Pp. 131-145.
11. Aksenova G. P. (1979). Necessary and sufficient conditions for design of fully testable convolution modulo 2 schemes [Neobkhodimyye i dostatochnyye usloviya postroy-eniya polnost'yu proveryayemykh skhem svertki po modulyu 2]. Automation and remote control [Avtomatika i telemekhanika], issue 9. - Pp. 126-135.
12. Ghosh S., Basu S., Touba N.A. (2005). Synthesis of low power CED circuits based on parity codes. Proceedings of 23rd IEEE VLSI test symposium (VTS'05). - Pp. 315320.
13. Busaba F. Y., Lala P. K. (1994). Self-checking combinational circuit design for single and unidirectional multibit errors. Journal of electronic testing: Theory and applications, vol. 5, issue 5. - Pp. 19-28.
14. Saposhnikov Val. V., Morosov A., Saposhniko Vl. V., Goessel M. (1998). A new design method for self-checking unidirectional combinational circuits. Journal of electronic testing: Theory and applications, vol. 12, issue 1-2. - Pp. 41-53.
15. Berger J. M. (1961). A note on error detecting codes for asymmetric channels. Information and control, vol. 4, issue 1. - Pp. 68-73.
16. Lin D. J. (1987). Unidirectional error correcting/detecting codes. Ph. D. Thesis, Oregon state university, July 2. - 104 p.
17. Jha N. K., Vora M. B. (1988). A t-unidirectional error-detecting systematic code. Computers & mathematics with application, 1988, vol. 16, issue 9. - Pp. 705-714.
18. Sapozhnikov Val. V., Sapozhnikov Vl. V., Efanov D. V. (2015). Classification of errors in data vectors of systematic codes [Klassifikatsiya oshibok v informatsion-nykh vektorakh sistematicheskikh kodov]. Journal of instrument engineering [Iz-vestiya vuzov. Priborostroyeniye], vol. 58, issue 5. - Pp. 333-343.
19. Efanov D. V., Sapozhnikov Val. V., Sapozhnikov Vl. V. (2010). On sum code properties in concurrent error detection systems [O svoystvakh koda s summirovaniyem v skhemakh funktsional'nogo kontrolya]. Automation and remote control [Avtomatika i telemekhanika], issue 6. - Pp. 155-162.
20. Berger J. M. (1961). A note on burst detecting sum codes. Information and control, vol. 4, issue 2-3. - Pp. 297-299.
21. Dong H. (1984). Modified Berger codes for detection of unidirectional errors. IEEE transactions on computers, vol. C-33. - Pp. 572-575.
22. Jha N. K., Vora M. B. (1987). A systematic code for detecting t-unidirectional errors. Proceedings of International symposium «Fault-Tolerant Computers», Pittsburg, PA, June. - Pp. 96-101.
23. Parhami B. (1991). New class of unidirectional error-detection codes. Proceedings of IEEE International conference on computer design: VLSI in computers and processors, 14-16 Oct 1991 (ICCD '9), Cambridge, MA. - Pp. 574-577.
24. Piestrak S. J. (1995). Design of self-testing checkers for unidirectional error detecting codes. Wroclaw, Oficyna wydawnicza politechniki wroclavskiej. - 111 p.
25. Das D., Touba N. A. (1999). Weight-based codes and their application to concurrent error detection of multilevel circuits. Proceedings of 17th IEEE test symposium, USA, California. - Pp. 370-376.
26. Blyudov A. A., Efanov D. V., Sapozhnikov Val. V., Sapozhnikov Vl. V. (2012). Formation of modified Berger code with minimum number of undetectable errors of data bits [Postroyeniye modifitsirovannogo koda Bergera s minimal'nym chislom neobnaruzhivayemykh oshibok informatsionnykh razryadov]. Electronic simulation [Elektronnoe modelirovanie], vol. 34, issue 6. - Pp. 17-29.
27. Blyudov A., Efanov D., Sapozhnikov Val., Sapozhnikov Vl. (2012). Properties of code with summation for logical circuit test organization. Proceedings of 10th IEEE east-west design & test symposium (EWDTS'2012), Kharkov, Ukraine, September 14-17. - Pp. 114-117.
28. Das D., Touba N. A., Seuring M., Gossel M. (2000). Low cost concurrent error detection based on modulo weight-based codes. Proceedings of IEEE 6th International on-line testing workshop (IOLTW), Spain, Palma de Mallorca, July 3-5. - Pp. 171176.
29. Sapozhnikov Val., Sapozhnikov Vl., Efanov D., Dmitriev V., Jie H. (2016). Optimised systematic code based on weighting orders of data vectors and false add for functional control systems [Optimal'nyj sistematicheskij kod na osnove vzveshivaniya razryadov informacionnyh vektorov i summirovaniya bez perenosov dlya sistem funkcional'nogo kontrolya]. Proceedings of Petersburg state transport university [Izvestiya Peterburgskogo universiteta putej soobshcheniya], issue 1. - Pp. 75-84.
30. Sapozhnikov Val., Sapozhnikov Vl., Efanov D., Dmitriev V. (2016). Weighted sum code without carries - is an optimum code with detection of any double errors in data vectors. Proceedings of 14th IEEE east-west design & test symposium (EWDTS'2016), Yerevan, Armenia, October 14-17. - Pp. 134-141.
31. Collection of digital design benchmarks. - URL: http://ddd.fit.cvut.cz/prj/Bench-marks.
32. Yang S. (1991). Logic synthesis and optimization benchmarks: User guide: Version 3.0. Microelectronics center of North Carolina (MCNC). - 88 p.
Статья представлена к публикации членом редколлегии Р. Убаром Поступила в редакцию 18.01.2016, принята к публикации 29.09.2016
САПОЖНИКОВ Валерий Владимирович - доктор технических наук, профессор кафедры «Автоматика и телемеханика на железных дорогах» Петербургского государственного университета путей сообщения Императора Александра I.
e-mail: [email protected]
САПОЖНИКОВ Владимир Владимирович - доктор технических наук, профессор кафедры «Автоматика и телемеханика на железных дорогах» Петербургского государственного университета путей сообщения Императора Александра I.
e-mail: [email protected]
ЕФАНОВ Дмитрий Викторович - кандидат технических наук, доцент кафедры «Автоматика и телемеханика на железных дорогах» Петербургского государственного университета путей сообщения Императора Александра I. e-mail: [email protected]
ДМИТРИЕВ Вячеслав Владимирович - кандидат технических наук, ассистент кафедры «Автоматика и телемеханика на железных дорогах» Петербургского государственного университета путей сообщения Императора Александра I.
e-mail: [email protected]
© Сапожников Вал. В., Сапожников Вл. В., 2017 © Ефанов Д. В., Дмитриев В. В., 2017