Проектирование и тестирование логических устройств
311
УДК 681.518.5:004.052.32
Вал. В. Сапожников, д-р техн. наук Вл. В. Сапожников, д-р техн. наук Д. В. Ефанов, канд. техн. наук
Кафедра «Автоматика и телемеханика на железных дорогах»,
Петербургский государственный университет путей сообщения Императора Александра I
ИССЛЕДОВАНИЕ СВОЙСТВ КОДОВ ХЭММИНГА И ИХ МОДИФИКАЦИЙ В СИСТЕМАХ ФУНКЦИОНАЛЬНОГО КОНТРОЛЯ
Анализируются свойства кодов Хэмминга по обнаружению ошибок в информационных разрядах кодовых слов в сравнении со свойствами кодов Бергера, что актуально для задач технической диагностики систем автоматики и вычислительной техники. Показаны особенности применения рассматриваемых кодов при организации систем функционального контроля арифметико-логических устройств. Описываются модификации кодов Хэмминга, связанные с уменьшением числа контрольных разрядов. Это напрямую влияет на сложность систем функционального контроля, однако уменьшает количество обнаруживаемых ошибок на их рабочих выходах.
система функционального контроля; рабочие выходы; код Хэмминга; код Бергера; модификация кода Хэмминга; модульный код; информационные векторы; ошибки в информационных векторах
Введение
При организации систем функционального контроля часто используются систематические коды [1-9]. В кодовых словах систематических кодов выделяются информационные и контрольные векторы. Значения разрядов контрольных векторов получают, используя некоторые правила, включающие в себя выполнение последовательности операций с разрядами информационных векторов.
На рис. 1 изображена структура системы функционального контроля, при организации которой использован некоторый систематический код. В ней исходное контролируемое устройство F(x), вычисляющее систему рабочих булевых функцийf(x), f2(x), ..., fm(x), снабжается блоком контрольной логики G(x), формирующим ряд контрольных булевых функций g^x), g2(x), ..., gk(x). Каждому входному вектору <x1 x2 ... x> соответствуют определенные значения рабочих и контрольных функций. Это соответствие устанавливается на этапе проектирования системы функционального контроля и в процессе ее эксплуатации контролируется самопроверяемым тестером [10, 11]. При соответствии значений контрольных функций значениям рабочих функций на выходе тестера
Автоматика на транспорте
№ 3, том 1, сентябрь 2015
312
Design and testing of logic devices
Входы
Информационный вектор
Рабочие
выходы
Контрольный
сигнал
Рис. 1. Структурная схема системы функционального контроля
формируется парафазный сигнал <01> или <10>; при нарушении соответствия парафазность нарушается и формируется сигнал <00> или <11>.
Выходам контролируемого блока F(x) ставится в соответствие информационный вектор длиной т, выходам контрольного блока G(x) - контрольный вектор длиной к. От правил построения выбранного на этапе проектирования системы функционального контроля систематического кода в значительной мере зависят ее характеристики. Прежде всего, это аппаратурная избыточность (сложность технической реализации) и возможности обнаружения ошибок на выходах контролируемого блока. Например, если в качестве основы использован код с повторением, то система функционального контроля будет иметь большую аппаратурную избыточность, но при этом обнаруживать любые одиночные неисправности в контролируемом блоке. Применение же кода паритета при организации системы функционального контроля, наоборот, может приводить к снижению ее аппаратурной избыточности и невозможности 100 %-го обнаружения ошибок на выходах контролируемого блока [2].
Выбор систематического кода при организации системы функционального контроля зависит от свойств структуры самого контролируемого объекта. Его выходы могут быть связаны путями с произвольным количеством логических элементов во внутренней структуре, поэтому могут приводить к искажениям значений сразу же нескольких функцийf1(x), f2(x), ..., fm(x). Поскольку блоки F(x) и G(x) в структуре, изображенной на рис. 1, реализованы раздельно, в них невозможно одновременное возникновение неисправностей. Искажения выходов блока контрольной логики обнаруживаются схемой тестера всегда, так
No 3, Vol. 1, September
Automation on Transport
Проектирование и тестирование логических устройств
313
как нарушают значения контрольных функций. Возможности же обнаружения искажений выходов блока F(x) зависят от выбранного на этапе проектирования системы функционального контроля систематического кода.
Данная работа посвящена изложению результатов исследований особенностей применения классических кодов Хэмминга [12, 13] и их модификаций при организации систем функционального контроля. При этом принята гипотеза о безошибочности разрядов контрольных векторов и анализируются свойства кодов по обнаружению ошибок в информационных векторах [14].
1 Классические коды Хэмминга в сравнении с кодами Бергера
Рассмотрим коды Хэмминга, сравнивая их с часто используемыми при организации функционального контроля арифметико-логических устройств классическими кодами с суммированием (кодами Бергера [15]). Данные коды могут быть сравнимы, так как имеют равное количество контрольных разрядов для многих значений длин информационных векторов.
В контрольном векторе кода Бергера записывается двоичное число, равное числу единичных информационных разрядов, т. е. вес r информационного вектора. Число контрольных разрядов, таким образом, определяется величиной
k = |"l°g2 ( m +1)~| (запись l”...] обозначает целое сверху от вычисляемого значения). Обозначим код Бергера как S(m, к)-код.
Код Хэмминга в разрядах контрольных векторов содержит функции проверки четности определенных информационных разрядов. Контрольные разряды в векторах кодов Хэмминга занимают позиции с номерами 2г', т. е. 1, 2, 4, 8 и т. д. Контрольный разряд g получается как линейная сумма тех информационных разрядов, в двоичном эквиваленте номеров которых на i-м месте справа расположена единица. Иначе код Хэмминга можно задать в виде матрицы, где каждая строка соответствует проверке на четность, а каждый столбец - информационному или контрольному разряду. Контрольным разрядам соответствуют столбцы матрицы, в которых записана только одна единица, а все остальные ячейки содержат нули. Все остальные столбцы - это столбцы информационных разрядов. Наличие единицы в ячейке информационного разряда означает, что данный разряд входит в контрольную функцию, соответствующую строке. Например, образующая матрица для кода Хэмминга с длиной информационного вектора m = 4 имеет вид:
f У1 У2 Х1 Уз Х2 Х3 Х4^
Уз: 0 0 0 1 1 1 1
У2: 0 1 1 0 0 1 1
1 У1: 1 0 1 0 1 0 1
Автоматика на транспорте
№ 3, том 1, сентябрь 2015
314
Design and testing of logic devices
В матрице x. - это разряды информационного вектора, а у. - разряды контрольного вектора. Контрольные функции вычисляются по формулам:
С
у: = x: ® x2 ® x4;
< у2 = x: ® x3 ® x4; у3 = x2 ® x3 ® x4.
Число контрольных разрядов в коде Хэмминга определяется как ближайшее целое значение к, удовлетворяющее неравенству m +1 < 2к - к. Например, для рассмотренного выше кода с m = 4 имеем: 5 < 2к - к, к = 3.
Код Хэмминга, по аналогии с кодом Бергера, будем обозначать как H (m, к)-код.
S(m, к)-код и H(m, к)-код имеют существенное отличие. S(m, к)-код относится к кодам с обнаружением ошибок, а H(m, к)-код - к кодам с исправлением ошибок. В системе функционального контроля не требуется исправление ошибок, так как задачей функционального контроля является только контроль правильности вычислений. Поэтому корректирующие свойства H(m, к)-кодов в статье рассматриваться не будут. Вопросы же применения кодов Бергера и Хэмминга при организации систем функционального контроля рассмотрены в большом количестве работ, например в [16-28]. Сравним данные коды по возможностям обнаружения ошибок в информационных векторах.
Для примера в табл. 1 заданы S(4,3)- и Н(4,3)-коды.
Правила построения кода определяют его характеристики обнаружения ошибок в информационных векторах. Как коды Бергера, так и коды Хэмминга не обнаруживают те искажения в информационных векторах, которые не нарушают соответствия между разрядами информационных и контрольных векторов. На рис. 2 приводятся примеры необнаруживаемых искажений информационных векторов S (4,3)- и H (4,3)-кодов.
Определим, какое количество ошибок в информационных векторах не обнаруживается рассматриваемыми кодами, для чего представим их в табличной форме: в столбцах будут расположены контрольные группы (они соответствуют контрольным векторам), а в строках будут перечислены все информационные векторы, соответствующие контрольным группам (табл. 2 и 3).
Определить количество необнаруживаемых в информационных векторах ошибок можно, подсчитав количество переходов каждого информационного вектора в каждый внутри одной контрольной группы.
Рассмотрим процесс подсчета переходов в контрольных группах S (m, к)-кода. В каждой контрольной группе расположено Crm информационных векторов. Число переходов внутри одной группы соответственно будет равно Crm (Crm -1), а общее количество переходов, определяющих необнаруживаемые ошибки в информационных векторах, будет определяться выражением [29]:
No 3, Vol. 1, September
Automation on Transport
Проектирование и тестирование логических устройств
315
Таблица 1. Контрольные слова S (7,4)- и H (7,4)-кодов
Информационные разряды Контрольные разряды
S (7,4)-код H (7,4)-код
*4 *3 *2 *1 Уз Р2 Уг Уз У 2 У1
0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 1 1 1 1
0 0 1 0 0 0 1 0 1 1
0 0 1 1 0 1 0 1 0 0
0 1 0 0 0 0 1 1 0 1
0 1 0 1 0 1 0 0 1 0
0 1 1 0 0 1 0 1 1 0
0 1 1 1 0 1 1 0 0 1
1 0 0 0 0 0 1 1 1 0
1 0 0 1 0 1 0 0 0 1
1 0 1 0 0 1 0 1 0 1
1 0 1 1 0 1 1 0 1 0
1 1 0 0 0 1 0 0 1 1
1 1 0 1 0 1 1 1 0 0
1 1 1 0 0 1 1 0 0 0
1 1 1 1 1 0 0 1 1 1
а)
1 0 1 1
11
0 1 1
б)
0 0 1 1
111
1 0 0
1 1 0 1 0 1 1 1 1 0 1 1 0 0
Рис. 2. Необнаруживаемые ошибки: а - в коде S (4,3); б - в коде H (4,3)
Таблица 2. Распределение информационных векторов S (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
Автоматика на транспорте
№ 3, том 1, сентябрь 2015
316
Design and testing of logic devices
m
Nm = I Cm (Cm - 1). (1)
r=0
Согласно другому способу подсчета, количество необнаруживаемых ошибок в S (m, £)-коде равно сумме парных сочетаний информационных векторов для каждой группы [30]:
Nm = I 2Cp, (2)
PeQ
где p = C'm, r e {1; 2;...; m -1}, Q = {C,; C,2;...; c;-1}.
Таблица 3. Распределение информационных векторов H (4,3)-кода
Контрольные группы
000 001 010 011 100 101 110 111
0000 0111 0101 0010 0011 0100 0110 0001
1110 1001 1011 1100 1101 1010 1000 1111
В H(m, А:)-кодах, благодаря тому что при определении значений разрядов их контрольных векторов использованы линейные суммы, информационные векторы равномерно распределены на контрольные группы. Действительно, в линейной сумме используется только операция сложения по модулю 2 (XOR). Функция xt ® Xj принимает на половине наборов единичные значения и на половине - нулевые, так как рассматриваются все возможные значения переменных. Очевидно, что и функция сложения по модулю 2 от нескольких переменных при всех возможных значениях переменных на половине наборов принимает единичные значения и на половине наборов - нулевые. Таким образом, для одного контрольного разряда имеется половина единичных значений и половина нулевых. Аналогично и для других контрольных разрядов. Каждое добавление контрольного разряда увеличивает количество контрольных групп вдвое, каждая из которых заполняется информационными кодовыми векторами равномерно. Отсюда следует, что количество необнаруживаемых кодами Хэмминга ошибок подсчитывается по формуле:
Nm = 2k2m-k(2m-k -1) = 2m(2m-k -1). (3)
Таким образом, в S (4,3)-коде имеется
m=4
N4=I c;,, (Cm, -1)=C4V40 -1)+Cj(Cj -1)+...+C4V44 -1)=
r=0
= 0 +12 + 30 +12 + 0 = 54
No 3, Vol. 1, September
Automation on Transport
Проектирование и тестирование логических устройств
317
необнаруживаемые ошибки, а в H (4,3)-коде -
N4 = 24(24-3 -1) = 16.
Число необнаруживаемых ошибок в информационных векторах H (4,3)-кода в 3,375 раза меньше, чем число необнаруживаемых ошибок в информационных векторах S (4,3)-кода.
Для удобства сравнения кодов по характеристике обнаружения ошибок в информационных векторах без разделения их на кратности d используется специальный коэффициент £,, определяющий, насколько «близок» рассматриваемый систематический код к некоторому оптимальному по критерию минимума общего количества необнаруживаемых ошибок в информационных векторах коду. В [30] доказано, что оптимальным систематическим кодом является такой (т, к)-код, у которого все 2т информационных вектора равномерно распределены между 2к контрольными векторами. Например, оптимальным является код Хэмминга. Другие оптимальные коды рассмотрены в [31]. Оптимальный (m, к)-код имеет минимальное количество необнаруживаемых ошибок в информационных векторах, обозначим его как N^k. Тогда коэффициент \ может быть определен по формуле:
%
Nmk_ = 2т (2т-к -1)
Nm Nm
(4)
Из (1), (3) и (4) следует, что для S(m, к)-кода коэффициент определяется по формуле
%
2т (2т-к -1)
I с (ст -1)
r=0
(5)
Для Н(т, к)-кода коэффициент всегда равен единице.
Для кодов Бергера известна еще одна формула расчета количества необнаруживаемых ошибок в информационных векторах [32]:
т,(т-1)
N„ = I Nd
т,(т-1) d
лт-^i 2 /'id
= I 2 Cd ст,
d=2
d=2
(6)
где d - кратность необнаруживаемой ошибки.
Зная (6), коэффициент \ для кода Бергера можно определить следующим образом:
% = ■
2т (2т-к -1)
■г,(т-1) d
лт-^i 2 /'id
I 2 Cd Ст
d=2
- 1
\т-к
- 1
т,(т-1)
I 2-
d=2
d 2 d Cd Ст
т,(т-1)
I a
d=2
d
dCm
(7)
Автоматика на транспорте
№ 3, том 1, сентябрь 2015
318
Design and testing of logic devices
где постоянная ad определяет долю необнаруживаемых ошибок кратностью d в информационных векторах от общего количества ошибок данной кратностью в информационных векторах.
Коэффициент § можно назвать коэффициентом эффективности использования контрольных векторов или просто коэффициентом эффективности. Чем ближе § к единице, тем эффективнее рассматриваемый систематический код и тем ближе он к оптимальному (m, £)-коду.
Коды Бергера далеки от оптимальных - для большинства из них коэффициент § < 0,5 [29]. Повышение эффективности кодов Бергера возможно путем их модификации по следующим правилам: в разряды контрольного вектора записывается двоичное число W = V + аМ, где V - вес информационного вектора по модулю М = 2^log2 (m+1)"l 1, а а = ® f(x) - поправочный коэффициент, яв-
ляющийся линейной суммой заранее выбранных - информационных разрядов (F - множество информационных разрядов) [29, 30, 33]. Интересно, что подобный алгоритм для значений m < 8 дает одинаковое общее число необнаруживаемых ошибок при любом варианте образования коэффициента а, а при
m > 8 минимум необнаруживаемых ошибок достигается выбором m сумми-
руемых в поправочном коэффициенте а информационных разрядов (запись |_...J обозначает целое снизу от вычисляемого значения). Коды с суммированием, полученные по приведенным выше правилам, обозначим как MS (m, £)-коды. Другим вариантом повышения эффективности кода Бергера является взвешивание его информационных разрядов и последующая модификация [15, 34].
2 Предельные свойства кодов Бергера и Хэмминга
Свойства обнаружения ошибок в информационных векторах кодами Бергера и Хэмминга подробно изучены в [14, 23, 25, 27, 32]. Опишем здесь наиболее существенные из них для практических задач диагностики, а также дополним их новыми свойствами.
В работе [14] доказано, что в классических кодах Бергера доля необнаруживаемых ошибок четной кратностью d в информационных векторах от общего числа ошибок той же кратностью вне зависимости от длины информационного вектора является постоянной величиной:
d
°d = 2-dQ. (8)
Величина ad присутствует в формуле подсчета количества необнаруживаемых ошибок в информационных векторах S (m, £)-кода в виде суммы необнаруживаемых ошибок каждой четной кратностью (см. формулу (6)).
No 3, Vol. 1, September
Automation on Transport
Проектирование и тестирование логических устройств
319
В табл. 4 приведены результаты расчетов значений величин od для ошибок различной кратностью в информационных векторах S(m, £)-кода.
Таблица 4. Значения cd для кодов Бергера при различных d
d 2 4 6 8 10 12 14 16 18 20 100
ad 0,5 0,375 0,3125 0,27344 0,24609 0,22559 0,20947 0,19638 0,18547 0,1762 0,07959
Из табл. 4 следует, например, что коды Бергера не обнаруживают 50 % двукратных и 37,5 % четырехкратных ошибок информационных разрядов. Другими словами, коды Бергера имеют низкую эффективность обнаружения ошибок малой кратности. С увеличением значения кратности ошибки величина od приближается к нулю.
Расчеты показывают, что для кодов Хэмминга значение величины od постоянным не является - с увеличением m оно уменьшается. Коды Хэмминга, однако, обладают другой интересной особенностью [23].
Свойство 1. С увеличением числа контрольных разрядов и длины информационного вектора доля необнаруживаемых ошибок в разрядах информационного вектора от общего количества ошибок в информационных векторах кодов Хэмминга стремится к постоянной величине:
lim Ym
m—x
2k
= lim —----
m—x 2m - 1
2m (2m-k -1)
i^om-k
lim
m—x 2m (2m - 1)
lim
m——x
2k 2m
_
_T_
2m
lim
m—x
lim
m—x
2m-k -1 2m -1
1-
2_
1
2m
= 2-k.
(9)
Иначе говоря, доля необнаруживаемых ошибок в разрядах информационного вектора от общего числа ошибок в информационных векторах кодов Хэмминга при больших значениях m не зависит от длины информационного вектора, а зависит только от значения k. Из расчетов следует, что подобное свойство справедливо уже при k = 6 (т. е. для кодов Хэмминга с m > 26).
Рассмотрим свойства кодов Бергера и Хэмминга, проявляющиеся при увеличении длины информационного вектора, т. е. сравним между собой коды S(m, k) и S(m+i, k*), а также коды H(m, k) и H(m+i, k*), где i - величина, на которую изменяется длина информационного вектора кода, а k* - соответствующая изменению длина контрольного вектора.
Для кодов Бергера справедливо следующее свойство.
Свойство 2. При m^w число необнаруживаемых ошибок кратностью d у кода S (m+i, k*) по сравнению с кодом S (m, k) увеличивается в 2iраз для любого d.
Автоматика на транспорте
№ 3, том 1, сентябрь 2015
320
Design and testing of logic devices
Доказательство данного свойства приведено в [26, 27].
Свойство 2 не выполняется для кодов Хэмминга. Для них может быть установлена следующая особенность.
Свойство 3. Отношение количества необнаруживаемых ошибок для кодов Хэмминга с m и m + i информационными разрядами и k и k + j контрольными разрядами стремится к величине 224 при m ^да.
Свойство 3 доказано в тех же источниках.
В [26, 27] показано, что для кода Бергера справедливо свойство, аналогичное свойству 3.
Свойство 4. Для любого кода Бергера с увеличением m к да отношение количества необнаруживаемых ошибок для кода с m и m + i информационными разрядами стремится к величине 22i.
Отметим, что если выбранные коды Хэмминга H(m,k) и H(m + i,k*) имеют одинаковое количество контрольных разрядов (k* = k), то они, как и соответствующие коды Бергера, не обнаруживают в 22i раза больше ошибок информационных разрядов с увеличением длины информационного вектора на величину i.
Приведем пример использования рассмотренных здесь свойств при построении системы функционального контроля. Предположим, что контролируемое устройство F(x) имеет m = 30 выходов и на них формируются все возможные информационные векторы. Контроль такой комбинационной схемы может быть осуществлен с использованием кода Хэмминга с m = 30 информационными разрядами. Общее число необнаруживаемых ошибок при этом будет N30 = = 1,80110 16. Число потенциально возможных необнаруживаемых искажений может быть уменьшено за счет выбора кода Хэмминга с меньшим количеством информационных разрядов и организации системы функционального контроля с разбиением информационных разрядов на группы. Например, если организовать контроль по коду с m = 28 информационными разрядами, то общее число необнаруживаемых ошибок будет N28 = 1,126 10 15. Число необнаруживаемых искажений, согласно свойству 4, сократилось примерно в 16 раз в сравнении с первым вариантом контроля по классической структуре (см. рис. 1). Во второй же группе информационных разрядов будет 2 выхода схемы. Их контролируют модулем сравнения парафазных сигналов с соответствующими функциями блока контрольной логики.
3 Модификации кодов Хэмминга
3.1 Коды с числом контрольных разрядов, как у кода Бергера
Коды Бергера и Хэмминга сравнимы не при любой длине информационного вектора, что следует из правил построения обоих классов кодов. Например, код Хэмминга с m = 5 информационными разрядами имеет k = 4 контрольных
No 3, Vol. 1, September
Automation on Transport
Проектирование и тестирование логических устройств
321
разряда, а соответствующий код Бергера - к = 3 контрольных разряда. Большая избыточность кодов Хэмминга приводит к увеличению сложности технической реализации системы функционального контроля.
Сложность системы контроля можно уменьшить, используя следующий подход.
Построим код Хэмминга, полностью сравнимый с кодом Бергера. Для этого двоичные числа, соответствующие контрольным векторам кодов Хэмминга при любой длине информационного вектора будем подсчитывать по модулю M = 2^log2 (от+1)"1 (это как раз модуль, по которому подсчитывается вес информационных векторов в коде Бергера). Тогда систему функционального контроля можно построить согласно структуре, изображенной на рис. 3. В ней блоки F(x) и G(x) выполняют те же функции, что и в классической структуре (см. рис. 1). Блок G*(x) является генератором контрольных разрядов кода Хэмминга по рабочим выходам исходной комбинационной схемы. Выходы блоков G(x)
и G*(x) соединены с преобразователями по модулю M = 2^log2(m+1)_l - на рисунке они обозначены как PM. Сравнение одноименных сигналов от преобразователей PMосуществляет модуль TRC (two-rail checker), построенный на само-проверяемых модулях сжатия парафазных сигналов [21].
Структура, приведенная на рис. 3, оптимизируется, исходя из таких рассуждений. Для представления двоичного числа, соответствующего контрольному вектору кода Хэмминга, по модулю M = 2^log2 (m+1)_l в некоторых случаях преобразование не требуется, например, для кода H (4,3), рассмотренного выше.
В некоторых случаях следует исключить старший контрольный разряд. Другими словами, блок счетчика по модулю M = 2^log2 (т+1)_1 производит исключение старшего контрольного разряда для контрольных векторов, сформированных по значениям входов системы контроля и по значениям рабочих функций контролируемой комбинационной схемы.
Обозначим код Хэмминга, в котором контрольный вектор подсчитывается по модулю кода Бергера, как Н*(т,к)-код. Такой код всегда имеет одинаковое с кодом Бергера при тех же значениях m число контрольных разрядов.
x
Контрольный
сигнал
Рис. 3. Структура системы контроля по модульному коду Хэмминга
Автоматика на транспорте
№ 3, том 1, сентябрь 2015
322
Design and testing of logic devices
Рассмотрим некоторые свойства Н*(т,к)-кодов.
Определим, как ухудшились свойства обнаружения ошибок кодами Хэмминга в информационных векторах в связи с отбрасыванием одного контрольного разряда. В коде Хэмминга число необнаруживаемых ошибок подсчитывается по формуле (2). Запишем отношение числа необнаруживаемых ошибок в модульном коде Хэмминга к числу необнаруживаемых ошибок в классическом коде Хэмминга:
2т (2
т-( к-1)
- 1)
2т (2т-к _ 1)
2т_к+1 1
2т-к -1
2 • 2т-к -1 2т-к -1 '
(10)
При т^го значение 8 = 2.
Отсюда ясно, что модульный код Хэмминга не обнаруживает примерно в два раза больше ошибок информационных разрядов, чем классический код Хэмминга.
С использованием специально разработанного программного обеспечения были рассчитаны характеристики НМ(т,к)-кодов для длин информационных векторов т = 2^20.
Ясно, что контрольные разряды кодов Хэмминга равноправны и на место старшего контрольного разряда можно поставить любой из них. Другими словами, модификация кода Хэмминга возможна путем исключения любого контрольного разряда.
Расчеты, проведенные с кодами Хэмминга, у которых число контрольных разрядов превышает число контрольных разрядов у кодов Бергера (а это коды со значениями длин информационных векторов т = 3, 5, 6, 7, 12, 13, 14, 15), показали, что распределение необнаруживаемых ошибок по кратностям зависит от того, какой именно контрольный разряд располагается на месте старшего
, , ~|~log9 (т+1)!
и соответственно при подсчете по модулю M = 2' 24 21 исключается.
Например, у классического кода Хэмминга с т = 5 информационными разрядами значения контрольных разрядов вычисляются по формулам: y = х: ® х2 ® х4 ® х5, y2 = х: ® х3 ® х4, y3 = хг ® x2 ® x4, y4 = x5. В зависимо-
сти от того, какой из контрольных разрядов выступает в качестве старшего, можно получить два различных распределения необнаруживаемых ошибок по кратностям (табл. 5). Суммарное же количество необнаруживаемых искажений в таких кодах будет одинаковым. Примечательно, что удаление контрольного разряда у4 позволяет получить код Хэмминга без двукратных необнаруживаемых искажений информационных векторов.
Анализ различных способов модификации кодов Хэмминга позволил установить следующую зависимость.
Утверждение. Модульный код Хэмминга, полученный отбрасыванием младшего контрольного разряда, имеет максимальное смещение необнаруживаемых ошибок в сторону большей кратности.
No 3, Vol. 1, September
Automation on Transport
Проектирование и тестирование логических устройств
323
Таблица 5. Характеристики модульных кодов Хэмминга с m = 5
Код Отбрасываемый разряд Количество необнаруживаемых ошибок кратностью d N m
1 2 3 4 5
H (5,4) - 0 0 32 0 0 32
H* (5,3) Ух 0 32 64 0 0 96
H* (5,3) У 2 0 32 64 0 0 96
H* (5,3) У3 0 32 64 0 0 96
H* (5,3) У4 0 0 64 32 0 96
Анализ распределений необнаруживаемых ошибок в модульных кодах Хэмминга показывает, что отбрасывание контрольного разряда, содержащего минимум информационных разрядов при проверке на четность, приводит к максимальному смещению необнаруживаемых ошибок в сторону большей кратности. Минимум информационных разрядов всегда присутствует в линейной сумме младшего контрольного разряда.
H*(m, А:)-код, удовлетворяющий формулировке утверждения, имеет минимум ошибок кратности d = 2. Для значений m = 3, 5, 6, 12, 13 модульный код Хэмминга обнаруживает все двукратные искажения, т. е. не теряет основного свойства классического кода Хэмминга.
Возникает вопрос: какой фактор при подсчете контрольного вектора кода Хэмминга влияет на число распределений необнаруживаемых ошибок в модульных кодах? Каждый контрольный разряд - это функция паритета, образованная несколькими информационными разрядами. При этом важным параметром является число информационных разрядов в линейной сумме каждого контрольного разряда. Так, в коде Хэмминга с m = 3 все контрольные разряды являются функциями паритета от двух информационных разрядов, что приводит к возникновению для модульных кодов Хэмминга только одного распределения необнаруживаемых ошибок по кратностям. Код H(5,4), рассмотренный выше, имеет четыре контрольных разряда, каждый из которых образован четырьмя, тремя или одним информационным разрядом. При этом, как видно из табл. 6, модульные коды Хэмминга H*(5,3) могут иметь два различных распределения необнаруживаемых ошибок по кратностям. В табл. 7 приводятся количества распределений необнаруживаемых ошибок по кратностям при различных значениях длин информационных векторов кодов Хэмминга.
Характеристики рассматриваемых в статье кодов представлены в табл. 7. Между собой сравниваются S(m,k)-, MS(m,k)- (взят модифицированный код Бергера с наилучшими характеристиками [29, 30]), H(m,k)-, H*(m,k)-коды.
Классические коды Хэмминга имеют возможность обнаружения любых искажений в информационных векторах кратностью d = 2, однако имеют при этом
Автоматика на транспорте
№ 3, том 1, сентябрь 2015
324
Design and testing of logic devices
Таблица 6. Количество распределений необнаруживаемых ошибок по их кратностям для различных Н*(т,к)-кодов
т Число информационных разрядов в контрольных разрядах Число различных распределений
#2 #3 #4 #5
3 2 2 2 - - 1
5 4 3 3 1 - 2
6 4 4 3 2 - 3
7 5 5 3 3 - 2
12 8 7 7 7 1 2
13 8 8 7 7 2 3
14 9 9 7 7 3 3
15 9 9 8 7 4 4
наибольшее количество контрольных разрядов среди представленных в табл. 7 кодов. У Н*(т,к)-кодов при модификации почти вдвое снижается показатель обнаружения ошибок в информационных векторах. Коды Хэмминга, как классический, так и модульный, полученный путем отбрасывания младшего контрольного разряда, обнаруживают максимальное количество ошибок при заданных длинах т и к, а также ошибок малой кратностью d = 2. Таким образом, коды Хэмминга имеют приоритет при синтезе систем функционального контроля, в которых на выходах основного блока допускаются только искажения кратностью d < 2.
S(m,k)- и М^(т,к)-коды обнаруживают любые искажения четной кратностью, чего не наблюдается у H(m,k)- и Н*(т,к)-кодов. Кроме того, все представленные в табл. 7 коды, за исключением классического кода Бергера, имеют недостаток, появляющийся при подсчете контрольных векторов по модулю, - часть необнаруживаемых ошибок является ошибками однонаправленными. Это на практике, к примеру, накладывает ограничения на построение систем функционального контроля комбинационных схем с независимыми и монотонно независимыми выходами [2, 35].
3.2 Модификации кодов Хэмминга с минимальной избыточностью
Сложность технической реализации системы функционального контроля зависит, в том числе, и от количества контрольных разрядов в используемом коде. Для сокращения количества контрольных разрядов используется следующий подход:
1. Контрольный вектор представляется в виде к-разрядного двоичного числа.
2. Определяется вычет данного числа по модулю М е {2; 4; 8;...; 2^log2(т+1)"1 (фактически отбрасывается к - log2 М старших контрольных разрядов). Такой
No 3, Vol. 1, September
Automation on Transport
Автоматика на транспорте № 3, том 1, сентябрь 2015
Таблица 7. Характеристики избыточных кодов
т к N т Общее число искажений, N $
S(m,k), MS(m,k), Н*(т,к) Н (т, к) S(m,k) MS(m,k) Н(т,к) Н*(т,к) S (т,к) MS (.т,к) Н (т,к) Н* (т,к)
3 2 3 12 8 8 8 56 0,667 1 1 1
4 3 3 54 24 16 16 240 0,296 0,667 1 1
5 3 4 220 112 32 96 992 0,436 0,857 1 1
6 3 4 860 480 192 448 4032 0,521 0,933 1 1
7 3 4 3304 1984 896 1920 16256 0,581 0,968 1 1
8 4 4 12614 6216 3840 3840 65280 0,304 0,618 1 1
9 4 4 48108 23888 15872 15872 261632 0,330 0,664 1 1
10 4 4 183732 91680 64512 64512 1047552 0,351 0,704 1 1
11 4 4 703384 352480 260096 260096 4192256 0,370 0,738 1 1
12 4 5 2700060 1359136 520192 1044480 16773120 0,387 0,768 1 1
13 4 5 10392408 5258944 2088960 4186112 67100672 0,403 0,796 1 1
14 4 5 40100216 20420736 8372224 16760832 268419072 0,418 0,821 1 1
15 4 5 155084752 79565952 33521664 67076096 1073709056 0,433 0,843 1 1
16 5 5 601014854 300481096 134152192 134152192 4294901760 0,223 0,446 1 1
17 5 5 2333475148 1166684944 536739840 536739840 17179738112 0,230 0,460 1 1
18 5 5 9074873156 4537330464 2147221504 2147221504 68719214592 0,237 0,473 1 1
19 5 5 35344739512 17672164704 8589410304 8589410304 274877382656 0,243 0,486 1 1
20 5 5 137845480244 68922399792 34358689792 34358689792 1099510579200 0,249 0,499 1 1
Проектирование и тестирование логических устройств 325
326
Design and testing of logic devices
подход, например, использован при построении модульных кодов с суммированием [36, 37]. Применение модульных кодов с суммированием при организации систем функционального контроля описано в [38].
Модульные коды с суммированием, или 8М(т,к)-коды, имеют различные характеристики обнаружения ошибок в информационных векторах. Чем ниже значение М, тем хуже возможности обнаружения ошибок в информационных векторах модульным кодом.
Для улучшения свойств модульных кодов по обнаружению искажений в информационных векторах в [29, 33] разработан метод их модификации. Он аналогичен методу построения М5(т,к)-кода, только в качестве модуля выбирается число из множества М е {2; 4; 8;...; 2^log2(m+1)"l 2}. Обозначим такие коды как ММ(т,к)-коды. Их свойства обнаружения ошибок в информационных векторах показаны в [29, 39].
Для кодов Хэмминга также можно использовать модульный принцип определения значений разрядов контрольного вектора. С уменьшением значения М в кодах Хэмминга ухудшаются и свойства обнаружения ошибок в информационных векторах. Модульные коды Хэмминга обозначим как HM (т, к)-коды.
Экспериментальные исследования НМ(т,к)-кодов с различными значениями М при длинах информационных векторов т = 4^20 показали следующие их особенности:
1. Для каждого модульного кода Хэмминга существует граница помехоустойчивости, связанная с максимальным заполнением контрольных групп:
1.1. Н2(т,к)-коды не являются помехоустойчивыми, так как не обнаруживают некоторые искажения кратностью d = 1, что следует из невозможности обеспечения контроля всех информационных разрядов.
1.2. Н4(т,к)-коды являются помехоустойчивыми в диапазоне длин информационных векторов с т = 4^7.
1.3. Н8(т,к)-коды являются помехоустойчивыми в диапазоне длин информационных векторов с т = 4^18.
1.4. Н16(т,к)-коды являются помехоустойчивыми в диапазоне длин информационных векторов с т = 4^20.
2. Каждый модульный код Хэмминга является оптимальным кодом с точки зрения использования контрольных разрядов.
Таким образом, НМ(т,к)-коды могут быть также использованы для организации систем функционального контроля. В сравнении с модульными и мо-дульно модифицированными кодами с суммированием единичных разрядов, они, очевидно, имеют приоритет, так как являются оптимальными. С увеличением числа информационных разрядов любой модульный код приближается к оптимальному коду. Однако скорость приближения будет различной при разном значении М: чем оно меньше, тем быстрее с увеличением значения т модульный код приближается к оптимальному коду. На рис. 4, например, показан график изменения отношения числа необнаруживаемых ошибок в модульном
No 3, Vol. 1, September
Automation on Transport
Проектирование и тестирование логических устройств
327
Рис. 4. Отношение числа необнаруживаемых ошибок в кодах с суммированием к аналогичной величине в модульных кодах Хэмминга HM(m,k)
коде с суммированием к числу необнаруживаемых ошибок в коде Хэмминга с таким же значением M - при изменении значения m (величины р (m)). Серым фоном обозначена граница, при которой Н8(тД)-код перестает обнаруживать любые однократные искажения в информационных разрядах. Для MS4(m,k)-кодов величина p(m) близка к единице. Классический модульный код S8(m,k) в диапазоне помехоустойчивости модульного кода Хэмминга значительно хуже обнаруживает ошибки в информационных векторах.
Недостатком модульных кодов Хэмминга в сравнении с модульными и модуль-но модифицированными кодами с суммированием является наличие необнаруживаемых искажений, имеющих нечетные кратности. Однако в области обнаружения ошибок кратностью d = 2 модульные коды Хэмминга значительно эффективнее модульных кодов с суммированием единичных информационных разрядов.
4 Практические результаты
Теоретические исследования свойств кодов Хэмминга и их модификаций дополняются практическими исследованиями с использованием системы контрольных комбинационных схем LGSynth'89 (контрольных примеров, «бенчмарков») [41-43]. Каждая комбинационная схема в LGSynth'89 задана в виде net-листа в базисе nor (ИЛИ-НЕ). Исследовался характер влияния всех одиночных константных неисправностей на выходах внутренних логических элементов контрольных примеров, при этом ставилась задача определения общего количества необнаруживаемых ошибок на выходах комбинационной схемы при организации ее контроля S(m,k)-кодом и H*(m,k)-кодом. В табл. 8 приведены результаты экспериментов для 15 контрольных схем. Для большинства схем при выборе в качестве базового кода Хэмминга не требовалось применения модуля Бергера, M = 2^log2 (m+1)"l. в случаях же, когда это было необходимо для
Автоматика на транспорте
№ 3, том 1, сентябрь 2015
328
Design and testing of logic devices
Таблица 8. Результаты экспериментов
№ Название контрольного примера Число входов/ выходов Применение модуля для Н*(тД)-кода Общее количество необнаруживаемых кодом ошибок А
S(m,k) H*(m,k)
1 alu2 10/6 Нет 7672 52 147,538
2 alu4 14/8 Нет 186142 46846 3,973
3 cc 21/20 Нет 1870896 84536 22,131
4 cm42a 4/10 Нет 8 0 -
5 cm162a 14/5 Да 1920 6583 0,292
6 cm163a 16/5 Да 10368 22400 0,463
7 cmb 16/4 Нет 6 0 -
8 cu 14/11 Нет 34048 1088 31,294
9 f51m 8/8 Нет 91 0 -
10 ldd 9/19 Нет 0 52 0
11 plce 19/9 Нет 188416 87191 2,161
12 pm1 14/13 Нет 6848 64 107
13 sct 14/15 Да 4434 836 5,304
14 x2 10/7 Да 104 256 0,406
15 z4ml 7/4 Нет 128 32 4
уравнивания числа контрольных разрядов в S(m,k)- и H*(m,k)-кодах (для схем cm162a, cm163a, sct, x2), отбрасывался старший контрольный разряд.
Применение H*(m,k)-кодов при организации системы функционального контроля для большинства комбинационных схем является более эффективным, чем применение S(m,k)-кодов. Для некоторых схем использование в качестве базового кода H*(m,k) дает обнаружение более чем в сто раз большего количества ошибок (см. столбец А в табл. 8), чем при выборе базовым S(m,k)-кода (схемы alu2 и pml). Для трех схем - а это cm42a, cmb и f51m - было получено 100 %-е обнаружение всех одиночных константных неисправностей на выходах логических элементов внутренней структуры схемы. Результаты экспериментов говорят о высокой эффективности использования в системах функционального контроля Н*(т,^)-кодов.
Заключение
Коды Бергера и Хэмминга часто используются при построении надежных систем управления, в том числе на железных дорогах [44-49]. Результаты исследования, изложенные в статье, связаны со сравнением свойств обнаружения
No 3, Vol. 1, September
Automation on Transport
Проектирование и тестирование логических устройств
329
ошибок в системах функционального контроля кодами Бергера и Хэмминга. Отмечены общие тенденции и различия в свойствах кодов, проявляющиеся с увеличением длин информационных векторов.
Коды Бергера, как известно, не имеют однонаправленных (монотонных) необнаруживаемых искажений [50] и поэтому могут эффективно применяться при построении систем функционального контроля комбинационных логических схем с независимыми и монотонно независимыми выходами. Коды Хэмминга, в отличие от кодов Бергера, имеют однонаправленные необнаруживаемые искажения, в том числе имеющих нечетную кратность, что накладывает ограничение на их применение при построении систем функционального контроля. Однако коды Хэмминга, в отличие от кодов Бергера, обнаруживают любые двукратные искажения, которые являются более вероятными на рабочих выходах системы функционального контроля.
Модификации кодов Хэмминга, описанные в § 3 статьи, позволяют увеличить число вариантов выбора наиболее эффективного кода для конкретной структуры контролируемого устройства F(x), в том числе уменьшить аппаратурную избыточность.
Библиографический список
1. Слабаков Е. В. Самопроверяемые вычислительные устройства и системы (обзор) / Е. В. Слабаков, Е. С. Согомонян // Автоматика и телемеханика. - 1981. -№ 11. - С. 147-167.
2. Согомонян Е. С. Самопроверяемые устройства и отказоустойчивые системы / Е. С. Согомонян, Е. В. Слабаков. - М. : Радио и связь, 1989. - 208 с.
3. Touba N.A. Logic Synthesis Techniques for Reduced Area Implementation of Multilevel Circuits with Concurrent Error Detection / N. A. Touba, E. J. McCluskey // Proceedings of the 1994 IEEE / ACM International Conference on Computer-aided Design. San Jose, California, USA, November 6-10, 1994. - Pp. 651-654.
4. Abramovici M. Digital System Testing and Testable Design / M. Abramovici, M.A. Bre-uer, A. D. Friedman. Comp. Sc. Press, 1998. - 652 p.
5. Matrosova A.Yu. Self-Checking Synchronous FSM Network Design with Low Overhead / A.Yu. Matrosova, I. Levin, S. A. Ostanin // VLSI Design. - 2000. - Vol. 11. -Issue 1. - Pp. 47-58.
6. 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.
7. Matrosova A. Survivable Self-Checking Sequential Circuits / A. Matrosova, I. Levin, S. Ostanin // Proc. of 2001 IEEE International Symposium on Defect and Fault Tolerance in VLSI Systems (DFT 2001), Oct. 24-26. San Francisco, CA, 2001. - Pp. 395402.
Автоматика на транспорте
№ 3, том 1, сентябрь 2015
330
Design and testing of logic devices
8. Рабочее диагностирование безопасных информационно-управляющих систем /
A. В. Дрозд, В. С. Харченко, С. Г. Антощук [и др.] ; под ред. А. В. Дрозда и В. С. Харченко. - Харьков : Национальный аэрокосмический университет им. Н. Е. Жуковского (ХАИ), 2012. - 614 с.
9. Nicolaidis M. On-Line Testing for VLSI - А Compendium of Approaches / M. Nicolaidis, Y. Zorian // J. Electron. Testing: Theory Appl. - 1998. - Vol. 12. - Issue 1-2 (February/ April). - Pp. 7-20.
10. Сапожников Вал. В. Самопроверяемые дискретные устройства / Вал. В. Сапожников, Вл. В. Сапожников. - СПб. : Энергоатомиздат, 1992. - 224 с.
11. Piestrak S. J. Design of Self-Testing Checkers for Unidirectional Error Detecting Codes / S. J. Piestrak. - Wroclaw : Oficyna Wydawnicza Politechniki Wroclavskiej, 1995. -
111 p.
12. Hamming R. W. Error Detecting and Correcting Codes / R. W. Hamming // Bell System Technical Journal. - 1950. - 29 (2). - Pp. 147-160.
13. Hamming R. W. Coding and Information Theory : 2 Sub Edition / R. W. Hamming. -N.-Y. : Prentice-Hall, 1986. - 272 p.
14. Ефанов Д. В. О свойствах кода с суммированием в схемах функционального контроля / Д. В. Ефанов, Вал. В. Сапожников, Вл. В. Сапожников // Автоматика и телемеханика. - 2010. - № 6. - С. 155-162.
15. Berger J. M. А Note on Error Detecting Codes for Asymmetric Channels / J. M. Berger // Information and Control. - 1961. - Vol. 4. - № 1. - Pp. 68-73.
16. Согомонян Е. С. Построение самопроверяемых схем встроенного контроля для самопроверяемых устройств / Е. С. Согомонян // Автоматика и телемеханика. -1974. - № 2. - C. 121-153.
17. Lo J.-C. An SFS Berger Check Prediction ALU and Its Application to Self-checking Processor Designs / J.-C. Lo, S. Thanawastien, M. Nicolaidis // Computer-Aided Design of Integrated Circuits and Systems. - 1992. - Vol. 11. - Issue 4. - Pp. 525-540.
18. Goessel M. Error Detection Circuits / M. Goessel, S. Graf. - L. : McGraw-Hill, 1994. -
261 p.
19. Pierce D. Efficient Self-Checking Checkers for Berger Codes / D. Pierce, P. K. Lala // Proceedings of 1st IEEE Int. On-Line Testing Workshop, 1995. - Pp. 238-242.
20. Gorshe S. S., Bose B. A Self-Checking ALU Design with Efficient Codes / S. S. Gorshe,
B. Bose // Proceedings of 14th VLSI Test Symposium, Princeton, NJ, USA, 1996. -Pp. 157-161.
21. Lala P. K. Self-checking and Fault-tolerant Digital Design / P. K. Lala. - San Francisco : Morgan Kaufmann Publishers, 2001. - 216 p.
22. Сапожников Вал. В. Самодвойственные дискретные устройства / Вал. В. Сапожников, Вл. В. Сапожников, М. Гёссель. - СПб. : Энергоатомиздат, Санкт-Петербургское отделение, 2001. - 331 с.
23. Ефанов Д. В. Предельные свойства кода Хэмминга в схемах функционального диагностирования / Д. В. Ефанов // Информатика и системы управления. - 2011. -№ 3. - С. 70-79.
24. Ефанов Д. В. Об организации схем функционального диагностирования на основе свойств кодов Хэмминга / Д. В. Ефанов // Интеллектуальные системы на транс-
No 3, Vol. 1, September
Automation on Transport
Проектирование и тестирование логических устройств
331
порте : сб. материалов II МНПК «ИнтеллектТранс-2012». - СПб., 2012. - С. 217226.
25. Ефанов Д. В. Коды Хэмминга и их обнаруживающие способности в схемах функционального контроля / Д. В. Ефанов, А. А. Блюдов // Информатика и системы управления. - 2012. - № 2. - С. 100-111.
26. Сапожников Вал. В. Применение кодов Бергера и Хэмминга в схемах функционального контроля / Вал. В. Сапожников, Вл. В. Сапожников, Д. В. Ефанов, А. А. Блюдов // Известия Петербургского университета путей сообщения. - 2013. - № 2. -
С. 168-182.
27. Sapozhnikov Val. Analysis of Error-Detection Possibilities of CED Circuits Based on Hamming and Berger Codes / Val. Sapozhnikov, Vl. Sapozhnikov, D. Efanov, A. Blyu-dov // Proceedings of 11th IEEE East-West Design & Test Symposium (EWDTS'2013), Rostov-on-Don, Russia, September 27-30, 2013. - Pp. 200-207.
28. Сапожников Вал. В. Классические и взвешенные коды Бергера в системах функционального контроля / Вал. В. Сапожников, Вл. В. Сапожников, Д. В. Ефанов // Развитие элементной базы и совершенствование методов построения устройств железнодорожной автоматики и телемеханики : сб. науч. тр. ; под. ред. Вл. В. Сапожникова. - СПб. : ФГБОУ ВПО ПГУПС, 2014. - С. 81-88.
29. Блюдов А. А. О кодах с суммированием единичных разрядов в системах функционального контроля / А. А. Блюдов, Д. В. Ефанов, Вал. В. Сапожников, Вл. В. Сапожников // Автоматика и телемеханика. - 2014. - № 8. - С. 131-145.
30. Блюдов А. А. Построение модифицированного кода Бергера с минимальным числом необнаруживаемых ошибок информационных разрядов / А. А. Блюдов, Д. В. Ефа-нов, Вал. В. Сапожников, Вл. В. Сапожников // Электронное моделирование. -2012. - Т. 34. - № 6. - С. 17-29.
31. Сапожников Вал. В. О способах построения кодов с суммированием с минимальным общим числом необнаруживаемых искажений в информационных векторах / Вал. В. Сапожников, Вл. В. Сапожников, Д. В. Ефанов, Д. А. Никитин // Известия Петербургского университета путей сообщения. - 2014. - № 1. - С. 82-91.
32. Сапожников Вал. В. Предельные свойства кода с суммированием / Вал. В. Сапожников, Вл. В. Сапожников, Д. В. Ефанов // Известия Петербургского университета путей сообщения. - 2010. - № 3. - С. 290-299.
33. Блюдов А. А. Коды с суммированием для организации контроля комбинационных схем / А. А. Блюдов, Д. В. Ефанов, Вал. В. Сапожников, Вл. В. Сапожников // Автоматика и телемеханика. - 2013. - № 6. - С. 153-164.
34. Сапожников Вал. В. Взвешенные коды с суммированием для организации контроля логических устройств / Вал. В. Сапожников, Вл. В. Сапожников, Д. В. Ефанов // Электронное моделирование. - 2014. - Т. 36. - № 1. - С. 59-80.
35. Morosow A. Self-Checking Combinational Circuits with Unidirectionally Independent Outputs / A. Morosow, Val. V. Sapozhnikov, Vl. V. Sapozhnikov, M. Goessel // VLSI Design. - 1998. - Vol. 5. - Issue 4. - Pp. 333-345.
36. Bose B. Systematic Unidirectional Error-Detection Codes / B. Bose, D. J. Lin // Proceedings of IEEE Trans. Comput. - 1985. - Vol. C-34. - November. - Pp. 1026-1032.
Автоматика на транспорте
№ 3, том 1, сентябрь 2015
332
Design and testing of logic devices
37. Jha N. K. Totally Self-Checking Checker Designs for Bose-Lin, Bose and Blaum Codes / N. K. Jha // IEEE Trans. Computer-Aided Design. - 1991. - Vol. CAD-10, February. -Pp. 136-143.
38. Das D. Synthesis of Circuits with Low-Cost Concurrent Error Detection Based on Bose-Lin Codes / D. Das, N. A. Touba // Journal of Electronic Testing: Theory and Applications. - 1999. - Vol. 15. - Issue 1-2. - Pp. 145-155.
39. Efanov D. On the Problem of Selection of Code with Summation for Combinational Circuit Test Organization / D. Efanov, Val. Sapozhnikov, Vl. Sapozhnikov, A. Blyu-dov // Proceedings of 11th IEEE East-West Design & Test Symposium (EWDTS'2013), Rostov-on-Don, Russia, September 27-30, 2013. - Pp. 261-266.
40. Системы управления движением поездов на перегонах : учебник для вузов ж.-д. транспорта : в 3 ч. Ч. 2 / В. М. Лисенков, П. Ф. Бестемьянов, В. Б. Леушин, А. В. Лисенков, А. Е. Ваньшин ; под ред. В. М. Лисенкова. - М. : ГОУ «Учебно-методический центр по образованию на железнодорожном транспорте, 2009. - 324 с.
41. Benchmarks : LGSynth89. - URL : http://www.cbl.ncsu.edu:16080/benchmarks/LG Synth89/mlexamples.
42. Sentovich E. M. SlS : 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 // Electronics Research Laboratory, Department of Electrical Engineering and Computer Science. - University of California, Berkeley. -4 May 1992. - 45 p.
43. Collection of Digital Design Benchmarks. - URL : http://ddd.fit.cvut.cz/prj/Bench marks.
44. Матросова А. Ю. Синтез синхронных последовательностных устройств, устойчивых к кратковременным и перемежающимся неисправностям / А. Ю. Матросова,
B. В. Андреева, Е. А. Николаева // Вестник Томского государственного университета. Управление, вычислительная техника и информатика. - 2008. - № 3. - С. 99-109.
45. Ефанов Д. В. Метод кодирования состояний диагностируемых объектов / Д. В. Ефа-нов // Известия Петербургского университета путей сообщения. - 2010. - № 2. -
C. 74-85.
46. Ubar R. Design and Test Technology for Dependable Systems-on-Chip (Premier Reference Source) / R. Ubar, J. Raik, H.-T. Vierhaus. - Information Science Reference, Hershey. - N.-Y. : IGI Global, 2011. - 578 p.
47. Ефанов Д. В. Повышение надежности датчиков контроля положения железнодорожных стрелок / Д. В. Ефанов, А. А. Блюдов // Известия Петербургского университета путей сообщения. - 2014. - № 3. - С. 69-77.
48. Сапожников Вал. В. Применение кодов с суммированием при синтезе систем железнодорожной автоматики и телемеханики на программируемых логических интегральных схемах / Вал. В. Сапожников, Вл. В. Сапожников, Д. В. Ефанов // Автоматика на транспорте. - 2015. - № 1. - С. 84-107.
49. Ефанов Д. В. Некоторые аспекты развития систем функционального контроля устройств железнодорожной автоматики и телемеханики / Д. В. Ефанов // Транспорт Урала. - 2015. - № 1. - С. 35-40.
50. Сапожников Вал. В. Классификация ошибок в информационных векторах систематических кодов / Вал. В. Сапожников, Вл. В. Сапожников, Д. В. Ефанов // Известия вузов. Приборостроение. - 2015. - Т. 58. - № 5. - С. 333-343.
No 3, Vol. 1, September
Automation on Transport
Проектирование и тестирование логических устройств
333
Sapozhnikov Valery V.,
Sapozhnikov Vladimir V.
Efanov Dmitry V.
Petersburg State Transport University «Automation and Remote Control on Railways» department
Hamming codes and its modifications research within concurrent error detection systems
The article analyzes the characteristics of Hamming codes for error detection in data bits of code words in comparison with the characteristics of Berger codes, that is important for technical diagnostics tasks for automation and computing engineering systems test. The article covers the particularities of the application of the codes of interest for building the systems of concurrent error detection of arithmetic-logic devices. The article also describes the modifications of Hamming codes, associated with a decrease of the number of check bits. This directly affects the complexity of the concurrent error detection systems, but reduces the number of detectable errors in its operating outputs.
concurrent error detection (CED) system; operational outputs; Hamming code; Berger code; Hamming code modification; modular code; data vectors; error in data vectors
References
1. Slabakov E. V. Self-checking computing devices and systems (review) / E. V. Slabakov, E. S. Sogomonyan // Automation and remote control (Avtomatika i telemekhanika). -1981. - Issue 11. - Pp. 147-167.
2. Sogomonyan E. S. Self-checking devices and fault-tolerant systems / E. S. Sogomonyan, E. V. Slabakov. - M. : Radio and communication (Radio i svyaz’), 1989. - 208 p.
3. Touba N.A. Logic Synthesis Techniques for Reduced Area Implementation of Multilevel Circuits with Concurrent Error Detection / N.A. Touba, E. J. McCluskey // Proceedings of the 1994 IEEE / ACM International Conference on Computer-aided Design. San Jose, California, USA, November 6-10, 1994. - Pp. 651-654.
4. Abramovici M. Digital System Testing and Testable Design / M. Abramovici, M.A. Bre-uer, A. D. Friedman. Comp. Sc. Press, 1998. - 652 p.
5. Matrosova A.Yu. Self-Checking Synchronous FSM Network Design with Low Overhead / A.Yu. Matrosova, I. Levin, S. A. Ostanin // VLSI Design. - 2000. - Vol. 11. -Issue 1. - Pp. 47-58.
6. 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.
7. Matrosova A. Survivable Self-Checking Sequential Circuits / A. Matrosova, I. Levin, S. Ostanin // Proc. of 2001 IEEE International Symposium on Defect and Fault Tolerance in VLSI Systems (DFT 2001), Oct. 24-26. San Francisco, CA, 2001. -Pp. 395-402.
Автоматика на транспорте
№ 3, том 1, сентябрь 2015
334
Design and testing of logic devices
8. Operational diagnosis of trusted information management system / A. V. Drozd, V. S. Kharchenko, S. G. Antoshchuk [et al.] ; under the editorship A. V. Drozd and V. S. Kharchenko. - Kharkov : National Aerospace University named after N. E. Zhukovsky (KhAI), 2012. - 614 p.
9. Nicolaidis M. On-Line Testing for VLSI - А Compendium of Approaches / M. Nicolaidis, Y. Zorian // J. Electron. Testing: Theory Appl. - 1998. - Vol. 12. - Issue 1-2 (February/ April). - Pp. 7-20.
10. Sapozhnikov Val. V. Self-checking discrete devices / Val. V. Sapozhnikov, Vl. V. Sapozh-nikov. - St. Petersburg : Energoatomizdat, 1992. - 224 p.
11. Piestrak S. J. Design of Self-Testing Checkers for Unidirectional Error Detecting Codes / S. J. Piestrak. - Wroclaw : Oficyna Wydawnicza Politechniki Wroclavskiej, 1995. -
111 p.
12. Hamming R. W. Error Detecting and Correcting Codes / R. W. Hamming // Bell System Technical Journal. - 1950. - 29 (2). - Pp. 147-160.
13. Hamming R. W. Coding and Information Theory: 2 Sub Edition / R. W. Hamming. -N.-Y.: Prentice-Hall, 1986-272 p.
14. Efanov D. V. On Sum Code Properties In Concurrent Error Detection Systems / D. V. Efa-nov, Val. V. Sapozhnikov, Vl. V. Sapozhnikov // Automation and remote control (Avto-matika i telemekhanika). - 2010. - № 6. - Pp. 155-162.
15. Berger J. M. А Note on Error Detecting Codes for Asymmetric Channels / J. M. Berger // Information and Control. - 1961. - Vol. 4. - № 1. - Pp. 68-73.
16. Sogomonyan E. S. Design of self-checking schemes of built-in control for self-checking devices / E. S. Sogomonyan // Automation and remote control (Avtomatika i telemekhanika). - 1974. - Issue2. - Pp. 121-153.
17. Lo J.-C. An SFS Berger Check Prediction ALU and Its Application to Self-checking Processor Designs / J.-C. Lo, S. Thanawastien, M. Nicolaidis // Computer-Aided Design of Integrated Circuits and Systems. - 1992. - Vol. 11. - Issue 4. - Pp. 525-540.
18. Goessel M. Error Detection Circuits / M. Goessel, S. Graf. - L. : McGraw-Hill, 1994. -
261 p.
19. Pierce D. Efficient Self-Checking Checkers for Berger Codes / D. Pierce, P. K. Lala // Proceedings of 1st IEEE Int. On-Line Testing Workshop, 1995. - Pp. 238-242.
20. Gorshe S. S., Bose B. A Self-Checking ALU Design with Efficient Codes / S. S. Gorshe, B. Bose // Proceedings of 14th VLSI Test Symposium, Princeton, NJ, USA, 1996. -Pp. 157-161.
21. Lala P. K. Self-checking and Fault-tolerant Digital Design / P. K. Lala. - San Francisco : Morgan Kaufmann Publishers, 2001. - 216 p.
22. Sapozhnikov Val. V. Self-dual discrete devices / Val. V. Sapozhnikov, Vl. V. Sapozhnikov, M. Goessel. - St.Petersburg : Energoatomizdat, St.Petersburg branch, 2001. - 331 p.
23. Efanov D. V. Limit properties of Hamming code within functional diagnosis systems /
D. V. Efanov // Informatics and management systems (Informatika i sistemy upravle-niya). - 2011. - Issue 3. - Pp. 70-79.
24. Efanov D. V. On organization of functional diagnosis systems, based on the properties of Hamming codes / D. V. Efanov // Smart systems for transport (Intellektual’nye sistemy
No 3, Vol. 1, September
Automation on Transport
Проектирование и тестирование логических устройств
335
na transporte): proceedings of II MNPK «IntellectTrans-2012». - St. Petersburg, 2012. -Pp. 217-226.
25. Efanov D. V. Hamming codes and its detection ability withing concurrent error detection systems / D. V. Efanov, A. A. Blyudov // Informatics and management systems (Informatika i sistemy upravleniya). - 2012. - Issue 2. - Pp. 100-111.
26. Sapozhnikov Val. V Berger and Hamming codes application for concurrent error detection systems / Val. V. Sapozhnikov, Vl. V. Sapozhnikov, D. V. Efanov, A. A. Blyudov // Proceedings of Petersburg Transport University. - 2013. - Issue 2. - Pp. 168-182.
27. Sapozhnikov Val. Analysis of Error-Detection Possibilities of CED Circuits Based on Hamming and Berger Codes / Val. Sapozhnikov, Vl. Sapozhnikov, D. Efanov, A. Blyudov // Proceedings of 11th IEEE East-West Design & Test Symposium (EWDTS'2013), Rostov-on-Don, Russia, September 27-30, 2013. - Pp. 200-207.
28. Sapozhnikov Val. V. Classic and weigh-based Berger codes in concurrent error detection systems / Val. V. Sapozhnikov, Vl. V. Sapozhnikov, D. V. Efanov // Development of hardware components and improvement of methods for building up of railway automation and remore control devices : collection of research papers ; under the editorship Vl. V. Sapozhnikov. - St. Petersburg : FGBOU VPO PGUPS, 2014. - Pp. 81-88.
29. Blyudov A.A. On sum codes of unit bits in concurrent error detection systems / A.A. Blyudov, D. V. Efanov, Val. V. Sapozhnikov, Vl. V. Sapozhnikov // Automation and remote control (Avtomatika i telemekhanika). - 2014. - Issue 8. - Pp. 131-145.
30. Blyudov A. A. Formation of modified Berger code with minimum number of undetectable errors of data bits / A.A. Blyudov, D. V. Efanov, Val. V. Sapozhnikov, Vl. V. Sapozhnikov // Electronic simulation (Elektronnoe modelirovanie). - 2012. - Vol. 34. -Issue 6. - Pp. 17-29.
31. Sapozhnikov Val. V. On methods of sum code formation with minimum total number of undetectable distortions in data vectors / Val. V. Sapozhnikov, Vl. V. Sapozhnikov, D. V. Efanov, D. A. Nikitin // Proceedings of Petersburg Transport University. - 2014. -Issue 1. - Pp. 82-91.
32. Sapozhnikov Val. V. Limit properties of sum code / Val. V. Sapozhnikov, Vl. V. Sapozhnikov, D. V. Efanov // Proceedings of Petersburg Transport University. - 2010. - Issue
3. - Pp. 290-299.
33. Blyudov A.A. Sum codes for organization of combinational circuits control / A.A. Blyudov, D. V. Efanov, Val. V. Sapozhnikov, Vl. V. Sapozhnikov // Automation and remote control (Avtomatika i telemekhanika). - 2013. - Issue 6. - Pp. 153-164.
34. Sapozhnikov Val. V. Weight-based sum codes for logic devices testing organization / Val. V. Sapozhnikov, Vl. V. Sapozhnikov, D. V. Efanov // Electronic simulation (Elektronnoe modelirovanie). - 2014. - Vol. 36. - Issue 1. - Pp. 59-80.
35. Morosow A. Self-Checking Combinational Circuits with Unidirectionally Independent Outputs / A. Morosow, Val. V. Sapozhnikov, Vl. V. Sapozhnikov, M. Goessel // VLSI Design. - 1998. - Vol. 5. - Issue 4. - Pp. 333-345.
36. Bose B. Systematic Unidirectional Error-Detection Codes / B. Bose, D. J. Lin // Proceedings of IEEE Trans. Comput. - 1985. - Vol. C-34. - November. - Pp. 1026-1032.
37. Jha N. K. Totally Self-Checking Checker Designs for Bose-Lin, Bose and Blaum Codes / N. K. Jha // IEEE Trans. Computer-Aided Design. - 1991. - Vol. CAD-10, February. -Pp. 136-143.
Автоматика на транспорте
№ 3, том 1, сентябрь 2015
336
Design and testing of logic devices
38. Das D. Synthesis of Circuits with Low-Cost Concurrent Error Detection Based on Bose-Lin Codes / D. Das, N.A. Touba // Journal of Electronic Testing: Theory and Applications. - 1999. - Vol. 15. - Issue 1-2. - Pp. 145-155.
39. Efanov D. On the Problem of Selection of Code with Summation for Combinational Circuit Test Organization / D. Efanov, Val. Sapozhnikov, Vl. Sapozhnikov, A. Blyu-dov // Proceedings of 11th IEEE East-West Design & Test Symposium (EWDTS'2013), Rostov-on-Don, Russia, September 27-30, 2013. - Pp. 261-266.
40. Control systems for block train traffic: textbook for railway transport universities: in 3 parts. Part 2 / V. M. Lisenkov, P. F. Bestem’yanov, V. B. Leushin, A. V. Lisenkov, A. E. Van’shin; under the editorship V. M. Lisenkov. - М. : GOU «Training center for railway transport education», 2009. - 324 p.
41. Benchmarks : LGSynth89. - URL : http://www.cbl.ncsu.edu:16080/benchmarks/LG Synth89/mlexamples.
42. Sentovich E. M. 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 // Electronics Research Laboratory, Department of Electrical Engineering and Computer Science. - University of California, Berkeley. -4 May 1992. - 45 p.
43. Collection of Digital Design Benchmarks. - URL : http://ddd.fit.cvut.cz/prj/Bench marks.
44. Matrosova A.Yu. Synthesis of synchronos survivable sequential devices / A.Yu. Matrosova, V. V. Andreeva, E. A. Nikolaeva // Bulletin of Tomsk State University. Management, computer and information science. - 2008. - Issue 3. - Pp. 99-109.
45. Efanov D. V. Method for state encoding of objects under diagnosis / D. V. Efanov // Proceedings of Petersburg Transport University. - 2010. - Issue 2. - Pp. 74-85.
46. Ubar R. Design and Test Technology for Dependable Systems-on-Chip (Premier Reference Source) / R. Ubar, J. Raik, H.-T. Vierhaus. - Information Science Reference, Hershey. - N.-Y. : IGI Global, 2011. - 578 p.
47. Efanov D. V. Improving the reliability of railway point detection sensors / D. V. Efanov, A. A. Blyudov // Proceedings of Petersburg Transport University. - 2014. - Issue 3. -Pp. 69-77.
48. Sapozhnikov Val. V. Application of Codes with Summation for the Synthesis of Railway Automation and Remote Control Systems Based on Field-Programmable Gate Arrays / Val. V. Sapozhnikov, Vl. V. Sapozhnikov, D. V. Efanov // Automation on Transport. - 2015. - Vol. 1. - Issue 1. - Pp. 84-107.
49. Efanov D. V. Certain aspects of systems for operational control of railway automation and telemechanics devices / D. V. Efanov // Ural Trasport (Transport Urala). - 2015. -Issue 1. - Pp. 35-40.
50. Sapozhnikov Val. V. Errors classification in information vectors of systematic codes / Val. V. Sapozhnikov, Vl. V. Sapozhnikov, D. V. Efanov // Izvestiya Vysshikh Uchebnykh Zavedeniy. Priborostroenie. - 2015. - Vol. 58. - No 5. - P. 333-343.
Статья представлена к публикации членом редколлегии М. Н. Василенко
Поступила в редакцию 13.05.2015
No 3, Vol. 1, September
Automation on Transport
Проектирование и тестирование логических устройств
337
САПОЖНИКОВ Валерий Владимирович - доктор технических наук, профессор кафедры «Автоматика и телемеханика на железных дорогах» Петербургского государственного университета путей сообщения Императора Александра I. e-mail: [email protected]
САПОЖНИКОВ Владимир Владимирович - доктор технических наук, профессор кафедры «Автоматика и телемеханика на железных дорогах» Петербургского государственного университета путей сообщения Императора Александра I. e-mail: [email protected]
ЕФАНОВ Дмитрий Викторович - кандидат технических наук, доцент кафедры «Автоматика и телемеханика на железных дорогах» Петербургского государственного университета путей сообщения Императора Александра I. e-mail: [email protected]
© Сапожников Вал. В., Сапожников Вл. В., Ефанов Д. В., 2015
Автоматика на транспорте
№ 3, том 1, сентябрь 2015