ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА
УДК 681.518.5:004.052.32 DOI: 10.17586/0021-3454-2018-61-1-47-59
ОСОБЕННОСТИ ПРИМЕНЕНИЯ КОДОВ ХЭММИНГА ПРИ ОРГАНИЗАЦИИ САМОПРОВЕРЯЕМЫХ СХЕМ ВСТРОЕННОГО КОНТРОЛЯ
В. В. Сапожников, Вл. В. Сапожников, Д. В. Ефанов
Петербургский государственный университет путей сообщения Императора Александра I,
190031, Санкт-Петербург, Россия E-mail: TrES-4b@yandex.ru
Анализируются свойства кодов Хэмминга при возникновении ошибок только в информационных разрядах, что актуально при решении задач синтеза дискретных систем с обнаружением неисправностей. Установлены особенности обнаружения ошибок различного вида (монотонных, симметричных и асимметричных) в информационных разрядах кодов Хэмминга. Показано, что доля необна-руживаемых ошибок различного вида при конкретной кратности от общего числа необнаруживаемых ошибок данной кратностью не зависит от количества информационных разрядов и является постоянной величиной. Представлен результат экспериментов с использованием контрольных комбинационных схем, показано, что организация самопроверяемых схем встроенного контроля на основе кодов Хэмминга эффективнее применения стандартной системы дублирования как по сложности технической реализации, так и по обнаружению одиночных константных неисправностей элементов внутренней структуры комбинационных схем.
Ключевые слова: техническая диагностика, самопроверяемая схема встроенного контроля, обнаружение неисправностей, информационный вектор, ошибка, коды Хэмминга, контрольная комбинационная схема, структурная избыточность
Введение. Коды Хэмминга, впервые описанные в классической работе [1], широко используются при передаче и обработке информации и при построении компонентов микроэлектронных и микропроцессорных систем автоматики [2—7]. Известны также приложения кодов Хэмминга и при организации надежной передачи информации между устройствами стационарных и бортовых систем управления движением поездов [8, 9]. Коды Хэмминга получили распространение благодаря своему основному свойству — возможности исправлять однократные ошибки и идентифицировать двукратные ошибки.
Коды Хэмминга можно применять и на более „глубоком" уровне архитектуры управляющих систем. Например, при создании самотестируемых схем и микроэлектронных компонентов с самопроверяемыми схемами встроенного контроля [10—13]. В таких дискретных системах, как правило, необходимо контролировать возникновение сбоев на аппаратном уровне и не допускать передачи неверных результатов вычислений к взаимосвязанным блокам [14, 15]. Эта задача решается за счет использования при организации схемы контроля равномерных двоичных кодов, ориентированных на обнаружение ошибок в информационных разрядах кодовых слов (наиболее часто, равновесных кодов и кодов с суммированием) [16].
Различные равномерные коды обладают разными характеристиками обнаружения ошибок в информационных разрядах и соответственно условия их применения при синтезе самопроверяемых схем встроенного контроля различны. Например, классическими кодами Бергера [17] обнаруживаются любые ошибки в информационных векторах, при которых изменяется неравное количество нулевых и единичных разрядов, что используется при выборе способа выделения контролепригодных групп выходов объекта диагностирования или при модификации его структуры [18—21]. В настоящей статье подробно анализируются характеристики обнаружения кодами Хэмминга ошибок в информационных разрядах. При этом рассматриваются ошибки не только конкретной кратностью, но и различного вида (монотонные, симметричные и асимметричные [22]).
Изложению результатов исследований кодов Хэмминга по обнаружению ошибок в информационных разрядах при организации самопроверяемых схем встроенного контроля посвящено несколько работ [23—26], в каждой из которых анализируются лишь характеристики обнаружения ошибок по кратностям. Настоящая работа восполняет пробел в изучении особенностей кодов Хэмминга в задачах организации схем встроенного контроля, дополняя и расширяя известные свойства.
Особенности организации самопроверяемых схем встроенного контроля. При организации самопроверяемых схем встроенного контроля на основе равномерных кодов, например кодов Бергера или Хэмминга, выходы Е(х) объекта диагностирования отождествляются с информационным вектором длиной т, а схема контроля реализуется как устройство вычисления значений разрядов контрольных векторов (рис. 1).
Xj • X2 '
Xq-i
F(x)
fi
J2
• • fm-\
fm
TSC
G(x)
gi
gz.
gk-i
gk
>fi ">f2
-^-Jm-i
fm
Рабочие ^ выходы
G(f)
g'i
g' 2 g'k-i g'k
v > ^ ••• > г V
^TRC
l
z [Контрольные zj Г выходы
Схема контроля
Рис. 1
Блок контрольной логики G(x) вычисляет значения контрольных функций таким образом, что на выходах блоков F(x) и G(x) формируется кодовое слово заранее выбранного кода. Для проверки соответствия значений разрядов информационных и контрольных векторов в схеме контроля устанавливается самопроверяемый тестер TSC [Ii], наиболее удобно синтезируемый посредством каскадного подключения генератора Gf) контрольных разрядов выбранного кода и самопроверяемого компаратора TRC, реализованного на основе модулей сжатия парафазных сигналов [27]. Генератор Gf) по информационному вектору, поступающему от блока F(x), формирует значения разрядов контрольного вектора <gg k gg k-i ... — g '2 g а компаратор TRC поразрядно сравнивает этот вектор с контрольным вектором
ч
<Ек — §2 §1>, сформированным блоком О(х). Значения контрольных функций, формируемые блоком О(х), предварительно инвертируются. Таким образом, на входы компаратора поступают парафазные сигналы вида < §[§г >, г = 1, к , что позволяет на его выходе получать единственный контрольный парафазный сигнал <г0г1>. Если неисправность в каком-либо из блоков системы диагностирования (Р(х), G(x) или 0(/)) нарушает парафазность как минимум одной пары входов компаратора < §[> хотя бы на одном входном наборе, то
это приводит к установлению на выходах <z0z1> непарафазного сигнала <00> или <11>. То же самое происходит при появлении неисправности в элементах внутренней структуры самого компаратора.
Как правило, при организации самопроверяемых схем встроенного контроля используются модели одиночных константных неисправностей на выходах внутренних элементов блоков системы диагностирования. Такие модели покрывают до 80—95 % реальных физических дефектов в зависимости от технологии изготовления устройства [28]. Так как блоки ^(х) и G(x) реализуются раздельно, одиночная константная неисправность не может вызвать искажений одновременно в информационном и контрольном векторах. Структуры функциональных блоков могут быть таковы, что неисправности будут вызывать на их выходах ошибки различного вида и разных кратностей. Характеристики обнаружения ошибок кодом, выбранным на этапе проектирования схемы встроенного контроля, определяют и особенности обнаружения ошибок в объекте диагностирования.
Характеристики обнаружения ошибок кодами Хэмминга. Коды Хэмминга (обозначим их как Н(т,к)-коды, где т и к — количество информационных и контрольных разрядов) строятся следующим образом. В кодовом слове выделяются позиции с номерами 2/, 7=0,1,2,... (2/<т), для контрольных разрядов. Каждый контрольный разряд вычисляется как свертка по модулю два тех информационных разрядов, в двоичном эквиваленте десятичных номеров которых на у-м месте стоит единица. К примеру, в табл. 1 представлено расположение информационных и контрольных разрядов для Н(4,3)-кода. Другим способом задания кода Хэмминга является матричная форма, эквивалентная описанной [3].
Таблица 1
Десятичный номер разряда 1 2 3 4 5 6 7
Двоичный номер разряда 00 01 01 10 10 11 11
1 0 1 0 1 0 1
Контрольные разряды §1 §2 §3
Информационные разряды /1 /2 /3 /4
Согласно правилам построения, значения контрольных разрядов Н(4,3)-кода вычисляются по формулам
§1 = /1 ® / ® /4;
§2 = /1 0 /3 0 /4,
§3 = /2 0 /3 0 /4.
Поскольку далее речь идет об анализе характеристик обнаружения ошибок кодами Хэмминга при их возникновении только в информационных разрядах, будем условно объединять разряды в информационный вектор длиной т.
Для анализа характеристик обнаружения ошибок в информационных векторах разделимых кодов целесообразно задавать код в виде таблицы распределения всех информационных векторов на контрольные группы, соответствующие контрольным векторам. Тогда необнару-живаемым ошибкам в информационных векторах кодов будут соответствовать все парные
переходы между этими векторами одной контрольной группы. Анализируя каждую контрольную группу, можно выявить особенности — количество, кратность и вид — необнаруживаемых кодом ошибок. В табл. 2 задан Н(5,4)-код. В каждой контрольной группе таблицы выявлены по 2 необнаруживаемые ошибки кратностью ^=3, всего 8 монотонных и 24 асимметричные необнаруживаемые ошибки.
Таблица 2
Контрольные группы
0000 0001 0010 0011 0100 0101 0110 0111
Информационные векторы
00000 00111 01110 01001 01010 01101 00100 00011
11100 11011 10010 10101 10110 10001 11000 11111
Количество и вид необнаруживаемых ошибок
2 Монотонные 2 Асимметричные 2 Асимметричные 2 Асимметричные 2 Асимметричные 2 Асимметричные 2 Асимметричные 2 Монотонные
Контрольные группы
1000 1001 1010 1011 1100 1101 1110 1111
Информационные векторы
00110 00001 01000 01111 01100 01011 00010 00101
11010 11101 10100 10011 10000 10111 11110 11001
Количество и вид необнаруживаемых ошибок
2 Асимметричные 2 Монотонные 2 Асимметричные 2 Асимметричные 2 Асимметричные 2 Асимметричные 2 Монотонные 2 Асим-метрич-ные
Количество необнаруживаемых кодами Хэмминга ошибок различного вида приведено в табл. 3. Известно [3], что в классе необнаруживаемых могут быть только ошибки кратностью В табл. 4 приведены характеристики необнаруживаемых ошибок, а именно: ут — доля необнаруживаемых ошибок от их общего количества; ит, от и ат — доли необнаруживаемых соответственно монотонных, симметричных и асимметричных ошибок от их общего количества.
Таблица 3
т к Общее количество ошибок Общее количество необнаруживаемых ошибок Общее количество необнаруживаемых ошибок по видам
монотонные симметричные асимметричные
3 3 56 8 2 0 6
4 3 240 16 4 0 12
5 4 992 32 8 0 24
6 4 4032 192 40 24 128
7 4 16256 896 128 144 624
8 4 65280 3840 532 640 2668
9 4 261632 15872 1784 2688 11400
10 4 1047552 64512 5890 10812 47810
11 4 4192256 260096 18908 42584 198604
12 5 16773120 520192 37816 85168 397208
13 5 67100672 2088960 97988 320696 1670276
14 5 268419072 8372224 282808 1242832 6846584
15 5 1073709056 33521664 854300 4824336 27843028
16 5 4294901760 134152192 2589880 18736800 112825512
17 5 17179738112 536739840 7853408 72831872 456054560
18 5 68719214592 2147221504 23757568 283417744 1840046192
19 5 274877382656 8589410304 71718260 1104146264 7413545780
20 5 1099510579200 34358689792 216839044 4306933152 29834917596
Таблица 4
т к Ут, % Um, % Qm, % Ота %
3 3 14,286 3,571 0 10,714
4 3 6,667 1,667 0 5
5 4 3,226 0,806 0 2,419
6 4 4,762 0,992 0,595 3,175
7 4 5,512 0,787 0,886 3,839
8 4 5,882 0,815 0,98 4,087
9 4 6,067 0,682 1,027 4,357
10 4 6,158 0,562 1,032 4,564
11 4 6,204 0,451 1,016 4,737
12 5 3,101 0,225 0,508 2,368
13 5 3,113 0,146 0,478 2,489
14 5 3,119 0,105 0,463 2,551
15 5 3,122 0,08 0,449 2,593
16 5 3,124 0,06 0,436 2,627
17 5 3,124 0,046 0,424 2,655
18 5 3,125 0,035 0,412 2,678
19 5 3,125 0,026 0,402 2,697
20 5 3,125 0,02 0,392 2,713
Следует отметить важное свойство кодов Хэмминга: их информационные векторы равномерно распределены между всеми контрольными векторами, что характеризует данные коды как коды с наименьшим общим количеством необнаруживаемых ошибок при конкретных значениях т и к. Величина ут для И(т,к)-кодов — это минимальная нижняя граница количества необнаруживаемых ошибок для любых разделимых кодов с аналогичным соотношением т и к. Абсолютное большинство необнаруживаемых И(т,к)-кодами ошибок — это асимметричные ошибки: ат > 60 % для любого значения т (рис. 2). Необнаруживаемые ошибки других видов встречаются реже. Особенностью И(т,к)-кодов является 100 %-ное обнаружение симметричных ошибок при т<5. При т>5 некоторое количество симметричных ошибок кратностью 4 не обнаруживается.
^т, ^"т, ат, %
90 80 70 60 50 40 30 20 10 0
О—О—О,
—СУ
„-О-
--О"-О
-о—о-
-о— О—о—°
т
>.....<г
■'А
3 4 5 6 7
о о о
8 9 10 11 12 13 14 15 16 17 18 19 т
Рис. 2
В табл. 5 и 6 приводятся характеристики необнаруживаемых ошибок в информационных векторах И(т,к)-кодов по кратностям. Наибольший интерес для синтеза дискретных систем представляют ошибки малой кратностью, поэтому в таблицах приведены данные только
для ошибок кратностью ё<8. При малых значениях длины информационного вектора (т<6) основными среди необнаруживаемых являются трехкратные ошибки, с увеличением значения т доминируют ошибки большей кратностью. При т<15 свыше 70 % необнаруживаемых ошибок составляют ошибки кратностью ё=3.. .8.
Таблица 5
т к Общее количество необнаруживаемых ошибок Количество необнаруживаемых ошибок кратностью ё
3 4 5 6 7 8
3 3 8 8 - - - - -
4 3 16 16 0 - - - -
5 4 32 32 0 0 - - -
6 4 192 128 64 0 0 - -
7 4 896 256 384 256 0 0 -
8 4 3840 1280 1280 512 512 256 0
9 4 15872 3584 4608 3072 3072 1536 0
10 4 64512 10240 15360 12288 15360 10240 0
11 4 260096 26624 51200 51200 55296 47104 20480
12 5 520192 53248 102400 102400 110592 94208 40960
13 5 2088960 114688 237568 278528 376832 442368 335872
14 5 8372224 229376 606208 983040 1376256 1703936 1687552
15 5 33521664 557056 1572864 2850816 4882432 6881280 6848512
16 5 134152192 1245184 4194304 8716288 15794176 23986176 26804224
17 5 536739840 2883584 11141120 24903680 48758784 81788928 100007936
18 5 2147221504 6553600 29622272 69730304 143130624 266076160 365166592
19 5 8589410304 16777216 71827456 187695104 429391872 836763648 1251475456
20 5 34358689792 47185920 184549376 473956352 1203765248 2592079872 4221566976
Таблица 6
т к Доли необнаруживаемых ошибок кратностью ё от общего количества необнаруживаемых ошибок, %
3 4 5 6 7 8 3 ^ 8
3 3 100 - - - - - 100
4 3 100 0 - - - - 100
5 4 100 0 0 - - - 100
6 4 66,667 33,333 0 0 - - 100
7 4 28,571 42,857 28,571 0 0 - 100
8 4 33,333 33,333 13,333 13,333 6,667 0 100
9 4 22,581 29,032 19,355 19,355 9,677 0 100
10 4 15,873 23,81 19,048 23,81 15,873 0 98,414
11 4 10,236 19,685 19,685 21,26 18,11 7,874 96,85
12 5 10,236 19,685 19,685 21,26 18,11 7,874 96,85
13 5 5,49 11,373 13,333 18,039 21,176 16,078 85,489
14 5 2,74 7,241 11,742 16,438 20,352 20,157 78,67
15 5 1,662 4,692 8,504 14,565 20,528 20,43 70,381
16 5 0,928 3,127 6,497 11,773 17,88 19,98 60,185
17 5 0,537 2,076 4,64 9,084 15,238 18,632 50,207
18 5 0,305 1,38 3,247 6,666 12,392 17,006 40,996
19 5 0,195 0,836 2,185 4,999 9,742 14,57 32,527
20 5 0,137 0,537 1,379 3,504 7,544 12,287 25,388
Отметим важное свойство, присущее кодам Хэмминга, учет которого может оказаться полезным при решении задач построения самопроверяемых схем встроенного контроля. Доля
необнаруживаемых ошибок различного вида при конкретной кратности от общего количества необнаруживаемых ошибок данной кратностью не зависит от длины информационного вектора и является постоянной величиной.
В табл. 7 и на рис. 3 представлены численные соотношения между ошибками различного вида при конкретной кратности, здесь введены обозначения: ит,ё, от,ё, ат,ё — доля необнаруживаемых монотонных, симметричных и асимметричных ошибок конкретной кратностью ё соответственно от общего количества ошибок данной кратностью. Из приведенных данных следует, что ит,ё < 1 % при т>8 и любом значении ё. При нечетном ё максимальное количество среди необнаруживаемых ошибок составляют асимметричные ошибки; при четном ё наблюдается некоторая, существенная, доля симметричных ошибок в классе необнаруживаемых. В целом тенденция такова: с увеличением значения ё доля асимметричных ошибок в классе необнаруживаемых кодами Хэмминга увеличивается, а симмет-
Рис. 3
_Таблица 7
ё Длина информационного вектора* % % ^т!^ %
3 т>3 25 0 75
4 т>6 12,5 37,5 50
5 т>7 6,25 0 93,75
6 т>8 3,125 31,25 65,625
7 т>8 1,563 0 98,438
8 т>11 0,781 27,344 71,875
9 т>11 0,391 0 99,609
10 т>10 0,195 24,609 75,195
11 т>13 0,098 0 99,902
12 т>13 0,049 22,559 77,393
13 т>15 0,024 0 99,976
14 т>15 0,012 20,947 79,041
15 т>17 0,006 0 99,994
* Примечание. В данной графе указаны значения т, при которых возможно возникновение необнаруживаемых ошибок конкретной кратностью.
Представленные данные существенно расширяют результаты исследований [23—26] и позволяют при разработке самопроверяемых схем встроенного контроля обоснованно выбирать код исходя из особенностей топологии объекта диагностирования.
Экспериментальные исследования. В ходе исследований особенностей кодов Хэм-минга при организации самопроверяемых схем встроенного контроля был проведен ряд экспериментов с использованием систем контрольных логических схем из наборов LGSynth 89 и MCNC Benchmarks, предназначенных для оценки эффективности разрабатываемых методов технической диагностики дискретных систем [29]. Эксперименты проводились в два этапа.
На первом этапе требовалось оценить эффективность применения И(т,к)-кодов по показателю обнаружения ошибок на выходах контрольных комбинационных схем из набора LGSynth'89. В этом наборе схемы представлены, в том числе, в формате *.netblif, имеющем вид списочной формы задания контрольной схемы, и реализованы с использованием инверторов и элементов ИЛИ-НЕ с 2, 3 или 4 входами. В ходе эксперимента был разработан специальный программный модуль, позволяющий для каждой контрольной схемы моделировать последовательно одиночные константные неисправности выходов всех логических элементов и определять реакцию выходного вектора <fm fm-1... f2 f1> на каждую неисправность при подаче на входы схемы всех возможных векторов <xq xq-1... х2 xi>. Это позволило для каждой логической схемы определить характеристики обнаружения возникающих на ее выходах ошибок. Полученные результаты сведены в табл. 8, где I и O — количество входов и выходов для каждой контрольной схемы.
Таблица 8
Номер схемы Название схемы I O Количество ошибок Доля ошибок по видам, % Доля ошибок по кратностям, %
однократные монотонные симметричные асим-метрич-ные d=2 d=3 d >4
1 cm82a 5 3 648 88,889 0 10,494 0,617 10,494 0,617 -
2 cm85a 11 3 30912 99,431 0 0,569 0 0,569 0 -
3 b1 3 4 46 95,652 0 4,348 0 4,348 0 0
4 cmb 16 4 288218 86,308 13,69 0,002 0 13,692 0 0
5 z4ml 7 4 4168 96,161 0 3,071 0,768 3,071 0,768 0
6 cm162a 14 5 317331 78,261 20,71 0,605 0,424 11,939 7,562 2,238
7 cm163a 16 5 1221312 80,868 17,686 0,849 0,597 10,816 6,524 1,792
8 alu2 10 6 62838 73,879 9,606 12,289 4,227 19,649 5,899 0,573
9 x2 10 7 19708 84,352 14,512 0,528 0,609 12,32 2,76 0,568
10 alu4 14 8 1980377 72,468 10,956 9,457 7,119 15,326 7,706 4,5
11 cm138a 6 8 680 100 0 0 0 0 0 0
12 f51m 8 8 13264 92,619 5,805 0,927 0,648 6,461 0,694 0,226
13 pcle 19 9 17472087 89,839 8,289 1,078 0,794 2,827 2,565 4,769
14 cm42a 4 10 278 97,122 0 2,878 0 2,878 0 0
15 cu 14 11 137984 53,455 19,828 24,675 2,041 44,063 1,693 0,789
16 pm1 16 13 757760 92,128 1,588 3,615 2,669 4,966 2,095 0,811
17 sct 19 15 16586128 93,987 1,417 1,448 3,149 1,485 1,268 3,26
18 decod 5 16 224 100 0 0 0 0 0 0
19 tcon 17 16 4849664 100 0 0 0 0 0 0
20 pcler8 27 17 4331229952 74,39 23,873 0,909 0,828 15,615 2,754 7,241
21 ldd 9 19 30182 74,475 25,525 0 0 9,347 4,798 11,38
22 cc 21 20 35167192 83,534 9,045 5,32 2,101 6,386 2,989 7,091
23 ttt2 24 21 755063504 94,417 2,546 1,852 1,185 3,976 0,985 0,622
В табл. 9 представлены характеристики обнаружения ошибок на выходах контрольных логических схем при использовании для контроля Н(т,А)-кодов. Для 10 контрольных схем из 23 обнаружены любые ошибки в информационном векторе </т /т-1... /2 _/!>; для оставшихся схем доля необнаруживаемых ошибок от общего их количества составляет менее 1 %. Срав-
нительный анализ табл. 8 и 9 показывает: использование кода Хэмминга максимально эффективно для схем с большим количеством симметричных ошибок, а также ошибок малой кратностью.
Таблица 9
Номер схемы Название схемы I O Количество необ-наружи-ваемых ошибок Доля необна-руживаемых ошибок от их общего числа, % Доля необнаруживаемых ошибок от общего количества ошибок данного вида, % Доля необнару-живаемых ошибок кратностью ё от общего количества необна-руживаемых ошибок, %
монотонные симмет ричные асим-мет-ричные d=3 d >4
1 cm82a 5 3 4 0,617 0 0 100 100 0
2 cm85a 11 3 0 0 0 0 - - -
3 b1 3 4 0 0 0 0 - - -
4 cmb 16 4 0 0 0 0 - - -
5 z4ml 7 4 0 0 0 0 0 - -
6 cm162a 14 5 224 0,071 0,071 0 0 100 0
7 cm163a 16 5 0 0 0 0 0 - -
8 alu2 10 6 37 0,059 0,008 0 1,242 100 0
9 x2 10 7 88 0,447 0,452 0 0 72,727 27,273
10 alu4 14 8 4069 0,205 0,058 0 2,202 100 0
11 cm138a 6 8 0 0 0 - - - -
12 f51m 8 8 2 0,015 0,008 0 1,163 100 0
13 pcle 19 9 94871 0,543 0,47 0 10,332 49,574 50,426
14 cm42a 4 10 0 0 0 0 - - -
15 cu 14 11 0 0 0 0 0 - -
16 pm1 16 13 1792 0,236 0 0 8,861 100 0
17 sct 19 15 24212 0,146 0,006 2,372 3,354 32,959 67,041
18 decod 5 16 0 0 0 - - - -
19 tcon 17 16 0 0 0 - - - -
20 pcler8 27 17 25391968 0,586 0,52 0 9,134 45,67 54,33
21 ldd 9 19 96 0,318 0,318 - - 0 100
22 cc 21 20 99640 0,283 0,265 0,239 1,204 17,864 82,136
23 ttt2 24 21 99120 0,013 0 0 1,108 100 0
На втором этапе эксперимента оценивалась сложность технической реализации самопроверяемых схем встроенного контроля с применением стандартной библиотеки функциональных элементов stdcell2_2.genlib и интерпретатора SIS [30]. C помощью разработанного программного модуля были получены все файлы-описания элементов системы диагностирования (см. рис. 1), а с использованием SIS произведена обработка этих файлов и вычислен условный показатель площади, занимаемой устройством на кристалле (в относительных единицах библиотеки stdcell2_2.genlib). Был произведен сравнительный анализ применения кодов Хэмминга и метода дублирования. Для каждой контрольной схемы был рассчитан показатель ц, характеризующий долю площади, занимаемой на кристалле системой диагностирования на основе кодов Хэмминга, от площади, занимаемой на кристалле системой дублирования. Практически для всех схем этот показатель менее 100 % (за исключением схем dc2 и dk17), что говорит о преимуществе системы диагностирования на основе кодов Хэмминга. Данные, полученные в ходе экспериментов, представлены в табл. 10 и на рис. 4.
56 В. В. Сапожников, Вл. В. Сапожников, Д. В. Ефанов
_Таблица 10
Номер схемы Контрольная схема I O Площадь устройства, о.е. Д, %
F(x) Система дублирования Система на основе кодов Хэмминга
1 newcond 11 2 1136 2496 1704 68,269
2 sqn 7 3 2008 4448 4152 93,345
3 newtpla2 10 4 840 2320 2152 92,759
4 dist 8 5 6968 14784 14400 97,403
5 root 8 5 3496 7840 6728 85,816
6 max512 9 6 9632 20320 17384 85,551
7 max1024 10 6 17816 36688 33168 90,406
8 dc1 4 7 976 3216 2696 83,831
9 dc2 8 7 2424 6112 7192 117,67
10 dekoder 4 7 736 2736 2528 92,398
11 wim 4 7 712 2688 2528 94,048
12 br1 12 8 3608 8688 6576 75,691
13 br2 12 8 2952 7376 5712 77,44
14 newbyte 5 8 592 2656 2504 94,277
15 t3 12 8 1768 5008 4840 96,645
16 inc 7 9 2376 6432 5456 84,826
17 ex1010 10 10 43296 88480 83000 93,807
18 newcpla2 7 10 1096 4080 3776 92,549
19 b10 15 11 9168 20432 17944 87,823
20 dk17 10 11 1768 5632 6304 111,932
21 gary 15 11 10688 23472 20504 87,355
22 in0 15 11 10704 23504 20520 87,304
23 m1 6 12 3064 8432 6144 72,865
24 sqr6 6 12 2648 7600 7368 96,947
25 p82 5 14 2368 7456 5904 79,185
26 m2 8 16 10096 23328 14880 63,786
27 m3 8 16 13464 30064 19216 63,917
28 m4 8 16 18704 40544 26616 65,647
29 tms 8 16 6784 16704 11232 67,241
30 b2 16 17 40952 85248 53848 63,166
Среднее значение 85,463
М, % 110
100
90
80
70
60
$dkl7
.о dist sqn / v f" V \ maxl024 Willi newbyte / Ч13 ехЮЮ / \ * \ r\ i \ 1 sqr6
pewtpla2 i / \ V ■ root .ДО шax512 ekodei / del \ / / V.O L.I V blO aaiy \ i 111 С " \ j
I bi2 v...--" brl 4lll \p82
О newcond \ m3 1112 .^.tms о Ь2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 N
Рис. 4
Выводом из представленных результатов экспериментов по оценке показателей обнаружения ошибок кодами Хэмминга и сложности технической реализации схем контроля на их основе является высокая эффективность использования данного класса кодов для решения поставленных задач.
Заключение. Коды Хэмминга, нашедшие широкое применение в сфере коммуникаций, могут эффективно использоваться и в задачах построения систем с обнаружением отказов — самопроверяемых схем встроенного контроля. В статье впервые установлены характеристики обнаружения кодами Хэмминга ошибок по различным их видам в информационных разрядах, представлены основные особенности и закономерности, учет которых позволяет выбрать наиболее эффективный способ организации схем контроля. Как следует из результатов экспериментов, применение кодов Хэмминга в задачах организации самопроверяемых схем встроенного контроля во многих случаях позволяет строить системы с обнаружением 100% одиночных константных неисправностей выходов внутренних логических элементов.
список литературы
1. Hamming R. W. Error detecting and correcting codes // Bell System Technical Journal. 1950. N 29 (2). P. 147—160.
2. MacWilliams F. J., Sloane N. J. A. The Theory of Error-Correcting Codes. Amsterdam: North-Holland, 1977. 785 p.
3. HammingR. W. Coding and Information Theory. N. Y.: Prentice-Hall, 1986. 272 p.
4. Сагалович Ю. Л. Об одном свойстве кода Хэмминга // Проблемы передачи информации. 1988. Т. 24, № 1. С. 79—81.
5. McCluskey E. J. Logic Design Principles: With Emphasis on Testable Semicustom Circuits. New Jersey: Prentice Hall PTR, 1986. 549 p.
6. Fujiwara E. Code Design for Dependable Systems: Theory and Practical Applications. New Jersey: John Wiley & Sons, 2006. 720 p.
7. Сагалович Ю. Л. Введение в алгебраические коды: Учеб. пособие для вузов. М.: ИППИ РАН, 2010. 302 с.
8. Системы управления движением поездов на перегонах: Учебник для вузов / В. М. Лисенков, П. Ф. Бес-темьянов, В. Б. Леушин, А. В. Лисенков, А. Е. Ваньшин; Под ред. В. М. Лисенкова. М.: ГОУ „Учебно-методический центр по образованию на железнодорожном транспорте", 2009. Ч. 2. 324 с.
9. Ефанов Д. В., Блюдов А. А. Повышение надежности датчиков контроля положения железнодорожных стрелок // Изв. Петербург. ун-та путей сообщения. 2014. № 3. С. 69—77.
10. Согомонян Е. С., Слабаков Е. В. Самопроверяемые устройства и отказоустойчивые системы. М.: Радио и связь, 1989. 208 с.
11. Сапожников В. В., Сапожников Вл. В. Самопроверяемые дискретные устройства. СПб: Энергоатомиздат, 1992. 224 с.
12. Matrosova A., Ostanin S., Kirienko I., Nikolaeva E. Fault-tolerant high performance scheme design // Proc. of the 13th IEEE East-West Design & Test Symposium (EWDTS'2015), Batumi, Georgia, 26—29 Sept., 2015. P. 286—289. DOI: 10.1109/EWDTS.2015.7493129.
13. Аксенова Г. П. Сжатие тестовой реакции при самотестировании в программируемых логических матрицах // Автоматика и телемеханика. 2013. № 2. С. 124—138.
14. Дрозд А. В., Харченко В. С., Антощук С. Г., Дрозд Ю. В., Дрозд М. А., Сулима Ю. Ю. Рабочее диагностирование безопасных информационно-управляющих систем / Под ред. А. В. Дрозда и В. С. Харченко. Харьков: Нац. аэрокосм. ун-т им. Н. Е. Жуковского „ХАИ", 2012. 614 с.
15. Kharchenko V., Kondratenko Yu., Kacprzyk J. Green IT engineering: concepts, models, complex systems architectures // Springer Book Ser. „Studies in Systems, Decision and Control". 2017. Vol. 74. 305 p. DOI: 10.1007/978-3-319-44162-7.
16. NicolaidisM., ZorianY. On-Line Testing for VLSI - а compendium of approaches // J. of Electronic Testing: Theory and Application. 1998. Vol. 12, is. 1—2. P. 7—20. DOI: 10.1023/A:1008244815697.
17. Berger J. M. А note on error detecting codes for asymmetric channels // Information and Control. 1961. Vol. 4, is. 1. P. 68—73. DOI:10.1016/S0019-9958(61)80037-5.
18. Busaba F. Y., Lala P. K. Self-checking combinational circuit design for single and unidirectional multibit errors // J. of Electronic Testing: Theory and Applications. 1994. Vol. 5, is. 1. P. 19—28. DOI: 10.1007/BF00971960.
19. Morosow A., Sapozhnikov V.V., Sapozhnikov Vl. V., Goessel M. Self-checking combinational circuits with unidirectionally independent outputs // VLSI Design. 1998. Vol. 5, is. 4. P. 333—345. DOI: 10.1155/1998/20389.
20. Matrosova A. Yu., Levin I., Ostanin S. A. Self-checking synchronous FSM network design with low overhead // VLSI Design. 2000. Vol. 11, is. 1. P. 47—58. DOI:10.1155/2000/46578.
21. Ефанов Д. В., Сапожников В. В., Сапожников Вл. В. Условия обнаружения неисправности логического элемента в комбинационном устройстве при функциональном контроле на основе кода Бергера // Автоматика и телемеханика. 2017. № 5. С. 152—165.
22. Сапожников В. В., Сапожников Вл. В., Ефанов Д. В. Классификация ошибок в информационных векторах систематических кодов // Изв. вузов. Приборостроение. 2015. Т. 58, № 5. С. 333—343. DOI: 10.17586/00213454-2015-58-5-333-343.
23. Ефанов Д. В. Предельные свойства кода Хэмминга в схемах функционального диагностирования // Информатика и системы управления. 2011. № 3. С. 70—79.
24. Ефанов Д. В., Блюдов А. А. Коды Хэмминга и их обнаруживающие способности в схемах функционального контроля // Информатика и системы управления. 2012. № 2. С. 100—111.
25. Sapozhnikov V., Sapozhnikov Vl., Efanov D., Blyudov A. Analysis of error-detection possibilities of CED circuits based on Hamming and Berger codes // Proc. of the 11th IEEE East-West Design & Test Symposium (EWDTS 2013), Rostov-on-Don, Russia, 27—30 Sept., 2013. P. 200—207. DOI: 10.1109/EWDTS.2013.6673097.
26. Сапожников В. В., Сапожников Вл. В., Ефанов Д. В. Исследование свойств кодов Хэмминга и их модификаций в системах функционального контроля // Автоматика на транспорте. 2015. Т. 1, № 3. С. 311—337.
27. Huches J. L. A., McCluskey E. J., Lu D. J. Design of totally self-checking comparators with an arbitrary number of inputs // IEEE Transact. on Computers. 1984. Vol. C-33, N 6. P. 546—550.
28. Пархоменко П. П., Согомонян Е. С. Основы технической диагностики (оптимизация алгоритмов диагностирования, аппаратурные средства). М.: Энергоатомиздат, 1981. 320 с.
29. Collection of Digital Design Benchmarks [Электронный ресурс]: <http://ddd.fit.cvut.cz/prj/Benchmarks/>.
30. SIS: A System for Sequential Circuit Synthesis / E. M. Sentovich, K. J. Singh, L. Lavagno, C. Moon, R. Murgai, A. Saldanha, H. Savoj, P. R. Stephan, R. K. Brayton, A. Sangiovanni-Vincentelli // Rep., 4 May, 1992; Univ. of California, Berkeley, 45 p.
Сведения об авторах
д-р техн. наук, профессор; Петербургский государственный университет путей сообщения Императора Александра I, кафедра автоматики и телемеханики на железных дорогах; E-mail: port.at.pgups@gmail.com
д-р техн. наук, профессор; Петербургский государственный университет путей сообщения Императора Александра I, кафедра автоматики и телемеханики на железных дорогах; E-mail: at.pgups@gmail.com
канд. техн. наук, доцент; Петербургский государственный университет путей сообщения Императора Александра I, кафедра автоматики и телемеханики на железных дорогах; E-mail: TrES-4b@yandex.ru
Поступила в редакцию 17.05.17 г.
Ссылка для цитирования: Сапожников В. В., Сапожников Вл. В., Ефанов Д. В. Особенности применения кодов Хэмминга при организации самопроверяемых схем встроенного контроля // Изв. вузов. Приборостроение.
2018. Т. 61, № 1. С. 47—59.
Валерий Владимирович Сапожников
Владимир Владимирович Сапожников —
Дмитрий Викторович Ефанов
FEATURES OF HAMMING CODES APPLICATION IN SELF-CHECKING TEST CIRCUIT ORGANIZATION
V. V. Sapozhnikov, Vl. V. Sapozhnikov, D. V. Efanov
Emperor Alexander I St. Petersburg State Transport University, 190031, St. Petersburg, Russia E-mail: TrES-4b@yandex.ru
Hamming code properties are analyzed for the case of error occurrence in data bits only; it is actual for the solutions of error detecting systems synthesis. Features of detection of different type (monotonous, symmetric, asymmetric) errors in Hamming code data bits are described. It is shown that ratio of different type of undetectable errors of given multiplicity to the total number of undetectable errors of given multiplicity does not depend on data vector length and is a constant. Results of benchmark experiments demonstrate that application of Hamming code for the organization of self-checking test circuits may be more effective than the use of standard duplication circuit both for technical implementation complexity and for detection of single faults of circuit's inner structure.
Keywords: technical diagnostic, concurrent error detection circuits, error detection, data vector, error, Hamming code, combination test circuit, structural redundancy
Valery V. Sapozhnikov
Vladimir V. Sapozhnikov —
Dmitry V. Efanov
Data on authors
Dr. Sci., Professor; Emperor Alexander I St. Petersburg State Transport University, Department of Automation and Remote Control on Railways; E-mail: port.at.pgups@gmail.com
Dr. Sci., Professor; Emperor Alexander I St. Petersburg State Transport University, Department of Automation and Remote Control on Railways; E-mail: at.pgups@gmail.com
PhD, Associate Professor; Emperor Alexander I St. Petersburg State Transport University, Department of Automation and Remote Control on Railways; E-mail: TrES-4b@yandex.ru
For citation: Sapozhnikov V. V., Sapozhnikov Vl. V., Efanov D. V. Features of Hamming codes application in self-checking test circuit organization. Journal of Instrument Engineering. 2018. Vol. 61, N 1. P. 47—59 (in Russian).
DOI: 10.17586/0021-3454-2018-61-1-47-59