ВЕСТНИК ТОМСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА
2015 Управление, вычислительная техника и информатика № 4 (33)
УДК 681.518.5:004.052.32 DOI: 10.17223/19988605/33/9
Д.В. Ефанов
АНАЛИЗ СПОСОБОВ ПОСТРОЕНИЯ КОДОВ С СУММИРОВАНИЕМ C УЛУЧШЕННЫМИ ХАРАКТЕРИСТИКАМИ ОБНАРУЖЕНИЯ СИММЕТРИЧНЫХ ОШИБОК В ИНФОРМАЦИОННЫХ ВЕКТОРАХ
Предложено несколько способов построения модифицированных кодов с суммированием, обладающих улучшенными характеристиками обнаружения ошибок в информационных векторах в сравнении с классическими кодами Бергера. Показано, что новые коды с суммированием обнаруживают примерно вдвое больше ошибок, чем классические коды Бергера. Установлено условие, при котором модифицированные коды Бергера имеют такое же количество контрольных разрядов, как и коды Бергера. Освещены схемотехнические особенности синтеза генераторов контрольных разрядов модифицированных кодов с суммированием.
Ключевые слова: техническая диагностика; система функционального контроля; код Бергера; модифицированный код с суммированием; информационный вектор; необнаруживаемая ошибка; симметричная ошибка; свойства обнаружения ошибок.
Принципы помехоустойчивого кодирования используются при передаче информации и при синтезе надежных систем управления [1-7]. Часто для этих целей применяют коды с суммированием [8-
10]. Простота их построения (данные коды являются систематическими, т.е. значения разрядов контрольного вектора вычисляются по заранее установленным правилам суммирования разрядов информационного вектора) определяет их частое приложение в задачах технической диагностики при аппаратном и программном контроле технического состояния [11-15].
На рис. 1 приведена структура системы функционального контроля, организованная по кодам с суммированием. Блок F(x) является контролируемым логическим устройством и имеет m выходов f f2 ... fm, соответствующих выходному рабочему вектору <f f2 ... fm> (информационному вектору длины m). Для организации контроля технического состояния в систему вносится избыточность: блок F(x) снабжается специализированным контрольным оборудованием в составе блока контрольной логики G(x) и самопроверяемого тестера (TSC). Блок контрольной логики G(x) имеет k выходов и вычисляет значения системы контрольных функций <g1 g2 ... gk> (формирует контрольный вектор длины k), а са-мопроверяемый тестер проверяет факт соответствия значений разрядов информационного и контрольного векторов, которое устанавливается на этапе проектирования системы функционального контроля. При наличии неисправностей в любом из блоков системы функционального контроля на ее контрольных выходах формируется непарафазный сигнал <00> или <11> [9].
От выбранного на этапе проектирования системы функционального контроля кода с суммированием зависят такие важные характеристики самой системы, как аппаратурная избыточность и свойства обнаружения ошибок в блоке F(x). Они, в свою очередь, напрямую влияют на энергопотребление системы и быстродействие [16].
Известно большое количество правил построения кодов, которые можно свести в диаграмму, приведенную на рис. 2. Между разрядами информационного вектора может быть установлено неравноправие, что делается приписыванием им различных последовательностей весовых коэффициентов [w1, w2, ..., wm], либо же все информационные разряды могут быть равноправными [17, 18]. При построении кодов анализируется вес информационного вектора W, для него может определяться наименьший неотрицательный вычет по заранее установленному модулю M, а могут также проводиться некоторые модификации [19-24]. 69
69
^ Рабочие выходы
Контрольные /о * выходы
---------------- Контрольное оборудование
Рис. 1. Структура системы функционального контроля
Рис. 2. Классификация кодов с суммированием
Данная работа посвящена изложению нескольких способов построения модифицированных кодов с суммированием, позволяющих улучшить возможности обнаружения ошибок классическими кодами с суммированием. При этом сохраняются все основные особенности классических кодов с суммированием.
1. Задача построения кода с суммированием с улучшенными характеристиками обнаружения ошибок в информационных векторах
Классический код с суммированием, или код Бергера [17], содержит в разрядах контрольного вектора двоичный эквивалент количества единичных разрядов информационного вектора (веса r информационного вектора). Исходя из этого, количество разрядов контрольного вектора кода Бергера
k = Г1о§2 (m + 1)^, где m - длина информационного вектора, а запись [...] обозначает целое сверху от
вычисляемого значения.
Обозначим код Бергера как £(т,к)-код.
Каждому информационному вектору с весом r соответствуют контрольные векторы с одинаковыми значениями разрядов. Поскольку всего существует Crm информационных векторов с весом г, их распределение между контрольными векторами с различными значениями разрядов крайне неравномерно (с увеличением значения m оно стремится к нормальному распределению). Например, в табл. 1 приведены все информационные векторы £(5,3)-кода, распределенные между контрольными векторами.
От того, как распределены информационные векторы между контрольными векторами, зависят свойства обнаружения ошибок кодом. Любая ошибка в информационном векторе, переводящая его в информационный вектор с тем же контрольным вектором, кодом обнаружена не будет. 5(т,к)-кодами 70
70
не обнаруживается 100% разнонаправленных ошибок четной кратностью в информационных векторах, которые происходят при одинаковом количестве искажений 0 и 1 (так называемые симметричные ошибки [25]). В [26] предложена формула расчета количества необнаруживаемых ошибок в информа-
ционных векторах кодов Бергера:
W-1)
( d m—
Nm = I
d = 2
ZCrC 2 C
d r=—
V 2
(1)
Т а б л и ц а 1
Распределение информационных векторов 8(5,3)-кода между контрольными векторами
Вес
0 1 2 3 4 5 6 7
Контрольный вектор
000 001 010 011 100 101 110 111
00000 00001 00011 00111 01111 11111
00010 00101 01011 10111
00100 00110 01101 11011
01000 01001 01110 11101
10000 01010 10011 11110
01100 10101
10001 10110
10010 11001
10100 11010
11000 11100
Данная формула позволяет подсчитать общее количество необнаруживаемых ошибок для S(m,k)-кода по каждой четной кратности d. В [27] эта формула приведена к виду
Nm = C2mm - 2m. (2)
Используя формулу (2) для S(5,3)-кода, получаем
N5 = C55 - 25 = C,50 - 25 = — - 32 = 220.
5 2 10 5! -5!
Основной особенностью S(m,k)-кодов, определяющей их широкое применение при построении надежных систем автоматики, является стопроцентное обнаружение монотонных ошибок в информационных векторах (при таких ошибках искажаются либо только 0, либо только 1). С использованием данного свойства в [8, 28, 29] разработаны методы синтеза систем функционального контроля со стопроцентным обнаружением одиночных неисправностей в контролируемых схемах.
Следует, однако, отметить, что S(m,k)-коды неэффективно используют свои контрольные разряды: контрольные векторы с близким к 0 и m значением веса соответствуют малому количеству информационных векторов, а значит, дают малое количество необнаруживаемых ошибок; некоторые контрольные векторы, в зависимости от значения m, могут не формироваться, а значит, и не использоваться (табл. 1). В [30] приводится способ построения кода Бергера с улучшенными характеристиками обнаружения ошибок в информационных векторах, но он приводит к появлению некоторого количества монотонных необнаруживаемых ошибок, а значит, накладывает ограничения на применение данных кодов при построении надежных систем автоматики [31, 32].
Информационные векторы, меняя правила построения кода, можно перераспределить между контрольными векторами так, чтобы сохранялись все основные свойства классических кодов с суммированием. Например, некоторым информационным векторам из групп, соответствующих контрольным векторам со значением веса, близким к m/2, можно поставить в соответствие неиспользуемые контрольные векторы (см. табл. 2). Количество необнаруживаемых ошибок уменьшится, а свойства стопроцентного обнаружения монотонных ошибок сохранятся. Например, S(5,3)-кодом не обнаруживается 240 ошибок в информационных векторах, а кодом, которому соответствует табл. 2, - 180 ошибок, что в 1,33 раза меньше. При этом все необнаруживаемые ошибки будут являться симметричными.
71
Т а б л и ц а 2
Перераспределение информационных векторов 8(5,3)-кода между контрольными векторами
Вес
0 1 2 3 4 5 6 7
Контрольный вектор
000 001 010 011 100 101 110 111
00000 00001 00011 00111 01111 11111 01100 10101
00010 00101 01011 10111 10001 10110
00100 00110 01101 11011 10010 11001
01000 01001 01110 11101 10100 11010
10000 01010 10011 11110 11000 11100
2. Способы модификации кодов с суммированием
Формализованные правила построения кодов с суммированием с улучшенными характеристиками обнаружения симметричных ошибок в информационных векторах даны в нескольких работах, например [27, 33, 34]. Каждый из описанных способов основан на «сдвиге» части информационных векторов в группы, соответствующие контрольным векторам, большего веса, чем истинный вес информационных векторов.
В [27] описывается процедура подсчета модифицированного веса W информационного вектора следующим образом (автор данной работы называет данный «сдвиговый» код комбинированным кодом Бергера).
Алгоритм 1. Получение контрольного вектора комбинированного кода Бергера.
1. Подсчитывается вес т-1 информационного разряда (информационного вектора за исключением одного информационного разряда - вектора <f1 f2 ...fm-1>).
2. Вычисляется функция паритета по всем разрядам информационного вектора:
a=f ®fl ©... ®fm .
3. Старшему разряду контрольного вектора <gi g2 ... gk> соответствует значение функции паритета а, а оставшимся младшим разрядам - значение веса т-1 информационного разряда.
Обозначим код, получаемый по алгоритму 1, как К5(т,к)-код. Для информационных векторов длины т = 5 применение алгоритма 1 дает распределение информационных векторов между контрольными векторами, показанное в табл. 3.
Общее количество необнаруживаемых ошибок в К5(т,к)-кодах в два раза больше, чем в соответствующих 5(т-1,к*)-кодах (к*=к или к-1), и его можно определить по формуле [27]:
N.. = 2СГЛ - 2"
(3)
Для приведенного в табл. 3 К£(6,3)-кода формула (3) дает такой результат:
8!
N5 = 2C5-12 - 25 = 2C84 - 25 = 2-:— 32 = 108.
5 2 8 4!4!
Полученный результат для Б*(т,к)-кода в 2,037 раза меньше, чем для Б(т,к)-кода.
Распределение информационных векторов комбинированного К8(6,3)-кода между контрольными векторами
Т а б л и ц а 3
Вес
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Контрольный вектор
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
00000 10001 00011 10111 01111 10000 00001 10011 00111 11111
10010 00101 11011 00010 10101 01011
10100 00110 11101 00100 10110 01101
11000 01001 11110 01000 11001 01110
01010 11010
01100 11100
72
Информационные векторы классического кода Бергера были перераспределены между контрольными векторами, что дало новый код. Фактически половина информационных векторов с функцией паритета а = f © f2 ©...© fm, равной 1, поменяли свои места - они оказались сдвинутыми на 8 контрольных групп «вправо», а оставшаяся половина информационных векторов сохранила свои позиции (см. табл. 3). При этом добавился один контрольный разряд, а характер распределения был сохранен: информационные векторы неравномерно распределены между контрольными векторами, контрольные разряды используются неэффективно, часть из контрольных векторов никогда не формируется. Для подсчета коэффициента а можно выбирать различные сочетания информационных разрядов вместе с тем разрядом, для которого не применяется правило 1 алгоритма 1. Это даст возможность получения нового множества кодов с суммированием с различными распределениями необнаруживаемых ошибок по кратностям и видам. При этом основные свойства кодов Бергера могут и не сохраниться.
Правила построения, выбранного в качестве основы системы функционального контроля кода с суммированием, определяют и способ построения тестера. Тестер в структуре, приведенной на рис. 1, состоит из генератора (кодера или шифратора) контрольных разрядов, выходы которого соединяются с входами компаратора. Последний осуществляет сравнение одноименных контрольных функций вычисленными блоками генератора и G(x). Компаратор имеет стандартную структуру и строится на основе каскадного соединения к-1 модуля сравнения парафазных сигналов [35]. Структура же генератора определяется правилами построения кода с суммированием.
Для синтеза генератора КА(т,к)-кода требуется использование счетчика единиц m-1 разряда и формирование функции паритета. На рис. 3 изображены схемы генераторов А(5,3)-кода и КА(6,3)-кода. Младший разряд счетчика единиц т-1 разряда является функцией паритета [9, 10], а значит, достаточно использовать один сумматор по модулю 2 для формирования старшего контрольного разряда. Общая структура генераторов КА(т,к)-кодов дана на рис. 4.
Анализ показывает, что КБ(т,к)-код сохраняет свойства обнаружения ошибок, если коэффициент а равен единственному неконтролируемому информационному разряду (см. рис. 5). Это следует из свойства функции сложения по модулю 2 - она принимает равное количество единичных и нулевых
значений на всех 2т входных наборах.
Свойства кода никак не меняются, а сложность технической реализации генератора уменьшается. Это позволяет предложить другой алгоритм построения модифицированного кода с суммированием.
Алгоритм 2. Получение контрольного вектора модифицированного кода Бергера.
1. Подсчитывается вес т-1 информационного разряда (информационного вектора за исключением одного информационного разряда - вектора <f f2 ...f„.1>).
2. Старшему разряду контрольного вектора <gi g2 ... gk> соответствует значение неконтролируемого информационного разряда, а оставшимся младшим разрядам - значение веса т-1 информационного разряда.
Код, полученный по алгоритму 2, обозначим как МА(т,к)-код.
В табл. 4 дается распределение информационных векторов между контрольными векторами МА(5,4)-кода, при этом а = f5. Информационные векторы КА(т,к)-кода распределены иначе, чем у МА(т,к)-кода, однако общий характер сохранен. Генератор МА(5,4)-кода изображен на рис. 6, его можно сравнить с генераторами, приведенными на рис. 3.
Нетрудно заметить, что тот же результат дают и другие алгоритмы «сдвига» информационных векторов, например описанные в [21]. Они изоморфны тем правилам, которые описаны в [27]. Например, процедура построения МА(т,к)-кода может быть описана следующим образом.
Алгоритм 3. Построение взвешенного кода с суммированием.
1. Информационному вектору ставится в соответствие вектор весовых коэффициентов [1, 1, ..., 1, 0].
2. Подсчитывается вес W информационного вектора.
3. Число W представляется в двоичном виде и записывается в младшие разряды контрольного вектора.
4. В старший разряд контрольного вектора записывается значение разряда, для которого вес н,т = 0.
Этот же результат дает взвешивание одного информационного разряда. Коды с суммированием с
одним взвешенным информационным разрядом детально описаны в [36, 37].
73
а
б
f Га Гг fi fi
g3 g2 gi
fs Га Гз fi fi
g4 g3 g2 gi
Рис. 3. Генераторы кодов с суммированием: а - £(5,3)-кода; б - К5(6,3)-кода
Рис. 5. Структура генераторов MS(m, к)-кодов
Т а б л и ц а 4
Распределение информационных векторов М3(5,4)-кода между контрольными векторами
Вес
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Контрольный вектор
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
00000 00001 00011 00111 01111 10000 10001 10011 10111 11111
00010 00101 01011 10010 10101 11011
00100 00110 01101 10100 10110 11101
01000 01001 01110 11000 11001 11110
01010 11010
01100 11100
74
g4 g3 g 2 gl
Рис. 6. Генератор М?(5,4)-кода
Анализируя алгоритм модификации кодов Бергера, приведенный в [30], можно предложить аналогичный приведенным выше способ построения кода с суммированием.
Алгоритм 4. Построение модифицированного кода Бергера.
1. Вес информационного вектора подсчитывается по модулю кода Бергера: M = 2 ^log2 (m+1^
2. Вычисляется значение поправочного коэффициента а, равное значению одного произвольного информационного разряда.
3. Определяется модифицированный вес информационного вектора: W = r+aM.
4. Число W представляется в двоичном виде и записывается в разряды контрольного вектора.
Общее количество необнаруживаемых ошибок для кодов, построение которых ведется по алгоритмам 2-4, также может быть определено по формуле (3).
Следует заметить, что приведенные способы построения модифицированных кодов Бергера улучшают свойства обнаружения ошибок в информационных векторах кодом, однако в большинстве случаев приводят к увеличению количества контрольных разрядов на единицу по сравнению с кодом Бергера.
Утверждение 1. Модифицированный код Бергера будет всегда обнаруживать 100% любых видов ошибок в информационных векторах, кроме некоторой доли симметричных ошибок, которая, однако, будет меньше, чем у кодов Бергера, и при этом будет иметь такое же количество контрольных разрядов при выполнении следующего условия:
m = 2 (t е{1,2,...}). (4)
Формулировка утверждения 1 следует непосредственно из алгоритмов 1-4. Только в одном случае, когда сохраняется условие (4), не потребуется при модификации кода добавления еще одного контрольного разряда. В самом деле, в табличной форме задания кода с суммированием (табл. 4) заполняются только m+1 контрольные группы, при этом общее их количество равно
[log2(m+1)] = 2[log2(2t+1)] = 2t+1
= 2
(5)
где t = log2 m .
Подставим в (5) значение t:
2t+1 = 2log m+1 = 2 • 2log m = 2m. (6)
Из выражения (6), таким образом, следует, что количество контрольных групп при выполнении условия (4) будет равным 2m. Изначально заполнены m+1 группы. В контрольной группе, соответствующей максимальному весу информационного вектора, в группе с номером m будет присутствовать только один информационный вектор. При модификации по любому из предложенных алгоритмов сдвигается вправо по таблице задания кода (см. табл. 4) ровно половина информационных векторов,
75
включая и данный вектор, заполняя тем самым оставшуюся m-1 группу. Добавления нового контрольного разряда не требуется.
Этим объясняется утверждение 1.
Определим, во сколько раз уменьшается количество симметричных необнаруживаемых ошибок у модифицированных кодов Бергера с увеличением длины информационного вектора:
3 =
/чт г%т
'"''2т
2C2
- 2”
(7)
Перейдем к пределу:
fim rs т
lim 3 = lim-—2m——
m^x m
rs/'im-1 <\m,
2C2m-2 - 2
• = lim -
( 2m )! m!- m!
- 2m
(2m - 2)! - 2„
(m - l)!-(m -1)!
= lim-
■Jbne 2m (2m)2m+2
1 1 I-- m-\— I--- m -—
\j2ne-mm 2 -V2ne-mm 2
(2m )2
- 2m
{ 1\2 m+—
2
- 2m
■ = lim -
m
yf2ne-2m-2 (2m - 2)2m-2+2
V2ree-m-1 (m -1)m-1+2 ^2^e-m-1 (m - 1)m-1+2 (2m )2
-- 2m
(2m - 2)
2m-2-—
2
(m - 1)m
-- 2m
\2m-—
2
{ 1У
m+—
2
-1
= lim-
(2m )
• = lim -
1 1
m -—-m -— 2 2
m
■ = lim -
2m -— 2m --2m-1
2 2 m 2
(2m - 2 )2
2m I (m - 1)m
-1
(2m - 2)
2m-2-—
2
5 2m- 2-—
2 - 2 2
(m -1)
m-1-—-m-1-— 2 2
(m -1)2
2
m
2
2m-— 2
= lim-
m
> 2m-2-—
2 - 2 2
(m -1)
2m --1-2m - 2-
•= lim 2 2 2
1 >/m
= 2 lim
m -1
m
= 2 lim
1----= 2.
m
(8)
\fm -1
Таким образом, справедливо следующее положение.
Утверждение 2. Отношение количества необнаруживаемых симметричных ошибок в классических и модифицированных кодах Бергера с увеличением длины информационного вектора уменьшается и в пределе при m ^ да стремится к 2.
Таким образом, модифицированные коды Бергера примерно в два раза эффективнее обнаруживают ошибки, чем классические коды Бергера.
Анализируя схемотехнические особенности контрольного оборудования систем функционального контроля, заметим, что генераторы модифицированных кодов Бергера являются более простыми, чем генераторы классических ^(”,^)-кодов. Но в системе функционального контроля во всех случаях, кроме случая (4), блок контрольной логики G(x) будет реализовывать еще одну контрольную функцию, а компаратору, соответственно, потребуется на один модуль сравнения парафазных сигналов больше, чем компаратору классического кода Бергера.
В табл. 6 приводятся результаты экспериментальных исследований модифицированных кодов Бергера в сравнении с классическими кодами Бергера в системах функционального контроля на ряде контрольных комбинационных схем из набора LGSynth'89 [38]. В эксперименте оценивалась сложность технической реализации систем функционального контроля, организованных по кодам с суммированием (табл. 5). Показателем сложности технической реализации является площадь, занимаемая устройством на кристалле. Для анализа данного показателя была выбрана библиотека функциональных элементов stdcell2_2.genlib. Контрольные комбинационные схемы в LGSynth'89 представлены в виде фай-
1
76
лов списочной формы задания структуры логического устройства - net-листа. С использованием специально разработанного программного обеспечения были получены net-листы всех блоков системы функционального контроля, а затем с применением известного интерпретатора SIS [39] получены значения площадей в условных единицах. В последней графе табл. 5 представлено значение величины Z - отношение площадей систем функционального контроля, организованных по классическим и модифицированным кодам Бергера. Анализ данного коэффициента показывает, что использование модифицированных кодов Бергера эффективно по показателю сложности технической реализации в том случае, если выполняется полученное выше условие (4). Этот результат был ожидаем, однако не следует забывать, что характеристики обнаружения ошибок в системах функционального контроля, организованных по модифицированным кодам Бергера, улучшены, а увеличение сложности есть «цена» за это свойство.
Т а б л и ц а 5
Сложность технической реализации систем функционального контроля
Контрольная комбинационная схема Число выходов Площадь системы функционального контроля
£(ш,&)-код М£(ш,&)-код Z
cm42a 10 8928 10712 0,833
f51m 8 13112 10152 1,292
pm1 13 16144 20880 0,773
x2 7 4096 4856 0,843
z4ml 4 4192 2976 1,409
Общий недостаток всех приведенных алгоритмов заключается в том, что не дает возможности построения кода, эффективно использующего свои контрольные разряды. Повышение эффективности возможно за счет применения модулей представления веса, меньших, чем модуль кода Бергера. Например, в табл. 6 дается распределение информационных векторов между контрольными векторами МБ(т,к)-кода, у которого для подсчета веса информационного вектора используется модуль М = 2^log2*■m+1^_1. Применение модуля дает уменьшение количества контрольных разрядов. Но при этом появляется некоторое количество монотонных ошибок, все они имеют кратность d = М (векторы, допускающие монотонные ошибки, в табл. 6 выделены серым фоном). Это свойство можно использовать при построении надежных устройств автоматики и вычислительной техники [32].
Т а б л и ц а 6
Распределение информационных векторов М3(5,3)-кода между контрольными векторами
Вес
0 1 2 3 4 5 6 7
Контрольный вектор
000 001 010 011 100 101 110 111
00000 00001 00011 00111 10111 10000 10001 10011
01111 00010 00101 01011 11011 11111 10010 10101
00100 00110 01101 11101 10100 10110
01000 01001 01110 11110 11000 11001
01010 11010
01100 11100
Заключение
В статье приводятся способы модификации кода Бергера, позволяющие построить модифицированный код с суммированием, обладающий основным свойством кода Бергера - способностью идентифицировать все монотонные ошибки. Модифицированные коды Бергера обнаруживают, кроме того, некоторое количество симметричных ошибок (коды Бергера не обнаруживают стопроцентных симметричных ошибок [25, 32, 40]). Это свойство можно использовать для уменьшения избыточности систем функционального контроля при применении известных алгоритмов модификации контролируемых схем [8, 28, 29].
77
Предложенные алгоритмы построения модифицированных кодов с суммированием, в отличие от описанных в [27], дают более простые структуры генераторов кодов с суммированием и в некоторых случаях более простые структуры систем функционального контроля. Установлено, что максимальный эффект при обнаружении ошибок в информационных векторах кодов при минимальных аппаратурных
затратах достигается для кодов с длинами информационных векторов m = 2 {t е {1,2,...}).
Стоит отметить, что описанные коды с суммированием не являются оптимальными в смысле использования контрольных разрядов, а значит, правила построения кодов могут быть «усовершенствованы», например, могут быть использованы свойства реальных схем, на выходах которых формируются
не все 2m информационных векторов, и код может формироваться для некоторого множества информационных векторов.
ЛИТЕРАТУРА
1. Сапожников В.В., Сапожников Вл.В., Христов Х.А., Гавзов Д.В. Методы построения безопасных микроэлектронных систем
железнодорожной автоматики. М. : Транспорт, 1995. 272 с.
2. Микропроцессорные системы централизации / Вл.В. Сапожников, В.А. Кононов, С.А. Куренков, А.А. Лыков, О.А. Наседкин,
А.Б. Никитин, А.А. Прокофьев, М.С. Трясов ; под ред. Вл.В. Сапожникова. М. : Учебно-методический центр по образованию на железнодорожном транспорте, 2008. 398 с.
3. Ubar R., Raik J., Vierhaus H.-T. Design and Test Technology for Dependable Systems-on-Chip (Premier Reference Source) // Infor-
mation Science Reference. Hershey ; New York : IGI Global, 2011. 578 p.
4. Рабочее диагностирование безопасных информационно-управляющих систем / А.В. Дрозд, В.С. Харченко, С.Г. Антощук,
Ю.В. Дрозд, М.А. Дрозд, Ю.Ю. Сулима ; под ред. А.В. Дрозда и В.С. Харченко. Харьков : Национальный аэрокосмический университет им. Н.Е. Жуковского «ХАИ», 2012. 614 с.
5. Кравцов Ю.А., Архипов Е.В., Бакин М.Е. Перспективные способы кодирования рельсовых цепей тональной частоты // Авто-
матика на транспорте. 2015. Т. 1, № 2. С. 119-126.
6. Ходаковский В.А., Ходаковский Т.В. Мера сходства узкополосных сигналов // Автоматика на транспорте. 2015. Т. 1, № 2.
С. 180-194.
7. Шаманов В.И. Управление процессом модернизации комплексов систем железнодорожной автоматики и телемеханики //
Автоматика на транспорте. 2015. Т. 1, № 3. С. 237-250.
8. Согомонян Е.С., Слабаков Е.В. Самопроверяемые устройства и отказоустойчивые системы. М. : Радио и связь, 1989. 208 с.
9. Сапожников В.В., Сапожников Вл.В. Самопроверяемые дискретные устройства. СПб. : Энергоатомиздат, 1992. 224 с.
10. Piestrak S.J. Design of Self-Testing Checkers for Unidirectional Error Detecting Codes. Wroclaw : Oficyna Wydawnicza Politechniki Wroclavskiej, 1995. 111 p.
11. Fujiwara E. Code Design for Dependable Systems: Theory and Practical Applications. John Wiley & Sons, 2006. 720 p.
12. Matrosova A. Yu., Levin I., Ostanin S.A. Self-Checking Synchronous FSM Network Design with Low Overhead // VLSI Design. 2000. Vol. 11, Issue 1. P. 47-58.
13. LalaP.K. Self-Checking and Fault-Tolerant Digital Design. San Francisco : Morgan Kaufmann Publishers, 2001. 216 p.
14. Matrosova A., Levin I., Ostanin S. Survivable Self-Checking Sequential Circuits // Proc. of 2001 IEEE International Symposium on Defect and Fault Tolerance in VLSI Systems (DFT 2001). Oct. 24-26. San Francisco, CA, 2001. Р. 395-402.
15. Abdulhadi A.H., Maamar A.H. Self Checking Register File Using Berger Code // 6th WSEAS International Conference on Circuits, systems, control & signal processing. 2007. Cairo, Egypt. December 29-31. P. 62-68.
16. Cheremisinov D., Cheremisinova L. Low-Power Design of Combinational CMOS Networks // Proceedings of 11th IEEE East-West Design & Test Symposium (EWDTS'2013). Rostov-on-Don, Russia, September 27-30, 2013. Р. 208-211.
17. Berger J.M. А Note on Error Detecting Codes for Asymmetric Channels // Information and Control. 1961. Vol. 4, Issue 1. P. 68-73.
18. Das D., Touba N.A. Weight-Based Codes and Their Application to Concurrent Error Detection of Multilevel Circuits // Proc. 17th IEEE Test Symposium. USA, California, 1999. Р. 370-376.
19. Das D., Touba N.A., Seuring M., Gossel M. Low Cost Concurrent Error Detection Based on Modulo Weight-Based Codes // Proceedings of IEEE 6th International On-Line Testing Workshop (IOLTW), Spain, Palma de Mallorca, July 3-5, 2000. Р. 171-176.
20. Mehov V., Saposhnikov V., Sapozhnikov Vl., Urganskov D. Concurrent Error Detection Based on New Code with Modulo Weighted Transitions between Information Bits // Proceedings of 7th IEEE East-West Design & Test Workshop (EWDTW'2007). Erevan, Armenia, September 25-30, 2007. Р. 21-26.
21. Мехов В.Б., Сапожников В.В., Сапожников Вл.В. Контроль комбинационных схем на основе модифицированных кодов с суммированием // Автоматика и телемеханика. 2008. № 8. С. 153-165.
22. Блюдов А.А., Сапожников В.В., Сапожников Вл.В. Модифицированный код с суммированием для организации контроля комбинационных схем // Автоматика и телемеханика. 2012. № 1. С. 169-77.
23. Блюдов А.А., Ефанов Д.В., Сапожников В.В., Сапожников Вл.В. Коды с суммированием для организации контроля комбинационных схем // Автоматика и телемеханика. 2013. № 6. С. 153-164.
24. Блюдов А.А., Ефанов Д.В., Сапожников В.В., Сапожников Вл.В. О кодах с суммированием единичных разрядов в системах функционального контроля // Автоматика и телемеханика. 2014. № 8. С. 131-145.
78
25. Сапожников В.В., Сапожников Вл.В., Ефанов Д.В. Классификация ошибок в информационных векторах систематических кодов // Известия вузов. Приборостроение. 2015. Т. 58, № 5. С. 333-343.
26. Ефанов Д.В., Сапожников В.В., Сапожников Вл.В. О свойствах кода с суммированием в схемах функционального контроля // Автоматика и телемеханика. 2010. № 6. С. 155-162.
27. Черкасова Т.Х. Обнаружение ошибок в системах автоматики и вычислительной техники с помощью кодов Бергера и его модификаций // Проблемы безопасности и надежности микропроцессорных комплексов : сб. тр. науч.-практ. конф. / под ред. Вал.В. Сапожникова. СПб. : ПГУПС, 2015.
28. Busaba F. Y., Lala P.K. Self-Checking Combinational Circuit Design for Single and Unidirectional Multibit Errors // Journal of Electronic Testing: Theory and Applications. 1994. Issue 5. P. 19-28.
29. Morosow A., Sapozhnikov V.V., Sapozhnikov Vl.V., Goessel M. Self-Checking Combinational Circuits with Unidirectionally Independent Outputs // VLSI Design. 1998. Vol. 5, Issue 4. P. 333-345.
30. Блюдов А.А., Ефанов Д.В., Сапожников В.В., Сапожников Вл.В. Построение модифицированного кода Бергера с минимальным числом необнаруживаемых ошибок информационных разрядов // Электронное моделирование. 2012. Т. 34, № 6. С. 17-29.
31. Сапожников В.В., Сапожников Вл.В., Ефанов Д.В. Об использовании свойств кодов с суммированием по обнаружению монотонных ошибок в системах функционального контроля комбинационных схем // Вестник Томского государственного университета. Управление, вычислительная техника и информатика. 2014. № 3. С. 76-88.
32. Сапожников В.В., Сапожников Вл.В., Ефанов Д.В. Применение кодов с суммированием при синтезе систем железнодорожной автоматики и телемеханики на программируемых логических интегральных схемах // Автоматика на транспорте. 2015. Т. 1, № 1. С. 84-107.
33. Sapozhnikov V., Sapozhnikov Vl., Efanov D., Nikitin D. Combinational Circuits Checking on the Base of Sum Codes with One Weighted Data Bit // Proceedings of 12th IEEE East-West Design & Test Symposium (EWDTS'2014). Kyev, Ukraine, September 26-29, 2014. P. 126-136.
34. Сапожников В.В., Сапожников Вл.В., Ефанов Д.В. Построение кодов с суммированием с наименьшим количеством необнаруживаемых симметричных ошибок в информационных векторах // Радиоэлектроника и информатика. 2014. № 4. С. 46-55.
35. Мельников А.Г., Сапожников В.В., Сапожников Вл.В. Синтез самопроверяющихся тестеров для кодов с суммированием // Проблемы передачи информации. 1986. Т. 22, № 2. С. 85-97.
36. Сапожников В.В., Сапожников Вл.В., Ефанов Д.В., Никитин Д.А. Метод построения кода Бергера с повышенной эффективностью обнаружения ошибок в информационных разрядах // Электронное моделирование. 2013. Т. 35, № 4. С. 21-34.
37. Сапожников В.В., Сапожников Вл.В., Ефанов Д.В., Никитин Д.А. Исследование свойств кодов с суммированием с одним взвешенным информационным разрядом в системах функционального контроля // Электронное моделирование. 2015. Т. 37, № 1. С. 25-48.
38. Collection of Digital Design Benchmarks. URL: http://ddd.fit.cvut.cz/prj/Benchmarks
39. Sentovich E.M., Singh K.J., Lavagno L., Moon C., Murgai R., Saldanha A., Savoj H., Stephan P.R., Brayton R.K., Sangiovanni-Vincentelli A. SIS: A System for Sequential Circuit Synthesis // Electronics Research Laboratory, Department of Electrical Engineering and Computer Science. University of California, Berkeley, 4 May 1992. 45 p.
40. Сапожников В.В., Сапожников Вл.В., Ефанов Д.В. Обнаружение опасных ошибок на рабочих выходах комбинационных логических схем // Автоматика на транспорте. 2015. Т. 1, № 2. С. 195-211.
Ефанов Дмитрий Викторович, канд. техн. наук, доцент. E-mail: [email protected]
Петербургский государственный университет путей сообщения Императора Александра I (г. Санкт-Петербург)
Поступила в редакцию 7 сентября 2015 г.
Efanov Dmitry V. (Petersburg State Transport University, St. Petersburg, Russian Federation).
Analysis of formation methods of sum codes with improved characteristics of detection of symmetrical errors in data vectors Keywords: technical diagnostics; concurrent error detection (CED); Berger code; modified sum code; data bits; undetectable error; symmetric error; detection ability properties.
DOI: 10.17223/19988605/32/9
The principles of noise-resistant coding are widely used for transmitting the information and synthesis of reliable management systems. Quite often, the sum codes are used for the purposes specified. Sum codes are systematic codes that allow to detect some error rate in data vectors. Sum codes have simple rules of formation and relatively low redundancy that determines the priority in its selection, in comparison with error correction codes.
Thus, using of the sum codes in systems of technical diagnostics results in a small hardware redundancy for providing the error detection characteristics.
Classic sum codes or Berger codes do not detect 100% of multidirectional errors with even multiplicity containing {0 ^ 1, 1 ^ 0} distortion groups (100% of so-called symmetric errors). However, Berger codes detect 100% of monotonous distortions in data vectors that is used to transfer the information and to build the discrete devices with a 100% detection of single faults.
Analysis of the characteristics of Berger codes shows, that they often use the check bits inefficiently. For example, all possible
check vectors are formed for Berger code only in special cases when data vector length is m = 2t —1 (t e {1,2,...}). In all other cases,
a number of check vectors does not used at all. There is a problem of providing the modified Berger code which has all the characteristics of the classic Berger code. The article presents the algorithms for formation of modified Berger codes which detect almost twice as many symmetrical errors in data vectors, as classic Berger codes. The article also covers the conditions under which there is no need to
79
increase the number of check bits in the code. It also highlights the schematics particularities of synthesis of generators (encoders) of new codes. The experiment with making use of a set of test cases LGSynth'89 confirmed theoretical results.
Note that the modified Berger code is promising in solving the problems of technical diagnostics.
REFERENCES
1. Sapozhnikov, V.V., Sapozhnikov, Vl.V., Khristov, Kh.A. & Gavzov, D.V. (1995) Metody postroeniya bezopasnykh mikro-elektronnykh sistem zheleznodorozhnoy avtomatiki [Methods for Constructing Safety Microelectronic Systems of Railway Automation]. Moscow: Transport.
2. Sapozhnikov, Vl.V. et al. (2008) Mikroprotsessornye sistemy tsentralizatsii [Microprocessor Interlocking System]. Moscow: Educa-
tional Center for Education in railway transport.
3. Ubar, R., Raik, J. & Vierhaus, H.-T. (2011) Design and Test Technology for Dependable Systems-on-Chip (Premier Reference
Source). Hershey; New York: IGI Global.
4. Drozd, A.V. & Kharchenko, V.S. (eds) (2012) Rabochee diagnostirovanie bezopasnykh informatsionno-upravlyayushchikh sistem
[Objects and Methods of On-Line Testing for Safe Instrumentation and Control Systems]. Kharkov National Aerospace University.
5. Kravtsov, Yu.A, Arkhipov, E.V. & Bakin, M.E. (2015) Perspektivnye sposoby kodirovaniya rel'sovykh tsepey tonal'noy chastoty
[Advanced Coding Schemes of Voice-Frequency Track Circuits]. Avtomatika na transporte. 1(2). pp. 119-126.
6. Khodakovskiy, V.A. & Khodakovskiy, T.V. (2015) Mera skhodstva uzkopolosnykh signalov [On Similarity Measure of Narrow Band
Signals]. Avtomatika na transporte. 1(2). pp. 180-194.
7. Shamanov, V.I. (2015) Upravlenie protsessom modernizatsii kompleksov sistem zheleznodorozhnoy avtomatiki i telemekhaniki
[Control of Railway Automation and Remote Control System Complexes Modernization Process]. Avtomatika na transporte. 1(3). pp. 237-250.
8. Sogomonyan, E.S. & Slabakov, E.V. (1989) Samoproveryaemye ustroystva i otkazoustoychivye sistemy [Self-Checking Devices and
Fault-Tolerant Systems]. Moscow: Radio i svyaz'.
9. Sapozhnikov, V.V. & Sapozhnikov, Vl.V. (1992) Samoproveryaemye diskretnye ustroystva [Self-Checking Digital Devices]. St. Pe-
tersburg: Energoatomizdat.
10. Piestrak, S.J. (1995) Design of Self-Testing Checkers for Unidirectional Error Detecting Codes. Wroclaw: Oficyna Wydawnicza Politechniki Wroclavskiej.
11. Fujiwara, E. (2006) Code Design for Dependable Systems: Theory and Practical Applications. John Wiley & Sons.
12. Matrosova, A.Yu., Levin, I. & Ostanin, S.A. (2000) Self-Checking Synchronous FSM Network Design with Low Overhead. VLSI Design. 11(1). pp. 47-58.
13. Lala, P.K. (2001) Self-Checking and Fault-Tolerant Digital Design. San Francisco: Morgan Kaufmann Publishers.
14. Matrosova, A., Levin, I. & Ostanin, S. (2001) Survivable Self-Checking Sequential Circuits. Proc. of2001 IEEE International Symposium on Defect and Fault Tolerance in VLSI Systems (DFT 2001). 24th - 26th October 2001. San Francisco, CA. pp. 395-402.
15. Abdulhadi, A.H. & Maamar, A.H. (2007) Self Checking Register File Using Berger Code. 6th WSEAS International Conference on Circuits, systems, control & signal processing. 29th - 31st December 2007. Cairo, Egypt. pp. 62-68.
16. Cheremisinov, D. & Cheremisinova, L. (2013) Low-Power Design of Combinational CMOS Networks. Proceedings of 11th IEEE East-West Design & Test Symposium (EWDTS'2013). 27th -30th September 2013. Rostov-on-Don, Russia. pp. 208-211.
17. Berger, J.M. (1961) A Note on Error Detecting Codes for Asymmetric Channels. Information and Control. 4(1). pp. 68-73. DOI: 10.1016/S0019-9958(61)80037-5
18. Das, D. & Touba, N.A. (1999) Weight-Based Codes and Their Application to Concurrent Error Detection of Multilevel Circuits. Proc. 17th IEEE Test Symposium. USA, California. pp. 370-376.
19. Das, D., Touba, N.A., Seuring, M. & Gossel, M. (2000) Low Cost Concurrent Error Detection Based on Modulo Weight-Based Codes. Proceedings of IEEE 6th International On-Line Testing Workshop (IOLTW). 3rd to 5th July 2000. Spain, Palma de Mallorca. pp. 171-176.
20. Mehov, V., Saposhnikov, V., Sapozhnikov, Vl. & Urganskov, D. (2007) Concurrent Error Detection Based on New Code with Modulo Weighted Transitions between Information Bits. Proceedings of 7th IEEE East-West Design & Test Workshop (EWDTW'2007). 25th to 30th September 2007. Erevan, Armenia. pp. 21-26.
21. Mekhov, V.B., Sapozhnikov, V.V. & Sapozhnikov, Vl.V. (2008) Checking of Combinational Circuits Basing on Modification Sum Codes. Automation and Remote Control. 8. pp. 153-165. DOI: 10.1134/S0005117908080134
22. Blyudov, A.A., Sapozhnikov, V.V. & Sapozhnikov, Vl.V. (2012) A Modified Summation Code for Organizing Control of Combinatorial Circuits. Automation and Remote Control. 73(1). pp. 153-160. DOI: 10.1134/S0005117912010122
23. Blyudov, A.A., Efanov, D.V., Sapozhnikov, V.V. & Sapozhnikov, Vl.V. (2013) Summation Codes for Organization of Control of Combinational Circuits. Automation and Remote Control. 74(6). pp. 1020-1028. DOI: 10.1134/S0005117913060118.
24. Blyudov, A.A., Efanov, D.V., Sapozhnikov, V.V. & Sapozhnikov, Vl.V. (2014) On codes with summation of data bits in concurrent error detection systems. Automation and Remote Control. 75(8). pp. 1460-1470. DOI: 10.1134/S0005117914080098
25. Sapozhnikov, V.V., Sapozhnikov, Vl.V. & Efanov, D.V. (2015) Errors classification in information vectors of systematic codes. Izvestiya vuzov. Priborostroenie - Journal of Instrument engineering. 58(5). pp. 333-343. DOI: 10.17586/0021-3454-2015-58-5-333-343. (In Russian).
26. Efanov, D.V., Sapozhnikov, V.V. & Sapozhnikov, Vl.V. (2010) On Summation Code Properties in Functional Control Circuits. Automation and Remote Control. 71 (6). pp. 155-162. DOI: 10.1134/S0005117910060123
27. Cherkasova, T.Kh. (2015) [Error Detection in Automation and Computer Equipment Using Codes Berger and Its Modifications]. Problemy bezopasnosti i nadezhnosti mikroprotsessornykh kompleksov [Problems of safety and reliability of microprocessor systems]. Proc. of Scientific-Practical Conference. St. Petersburg: PGUPS.
80
28. Busaba, F.Y. & Lala, P.K. (1994) Self-Checking Combinational Circuit Design for Single and Unidirectional Multibit Errors. Jounal of Electronic Testing: Theory and Applications. 5. pp. 19-28. DOI: 10.1007/BF00971960
29. Morosow, A., Sapozhnikov, V.V., Sapozhnikov, Vl.V. & Goessel, M. (1998) Self-Checking Combinational Circuits with Unidirectionally Independent Outputs. VLSI Design. 5(4). pp. 333-345.
30. Blyudov, A.A., Efanov, D.V., Sapozhnikov, V.V. & Sapozhnikov, Vl.V. (2012) Formation of the Berger Modified Code with Minimum Number of Undetectable Errors of Data Bits. Elektronnoe modelirovanie - Electronic Modeling. 34(6). pp. 17-30. (In Russian).
31. Sapozhnikov, V.V., Sapozhnikov, Vl.V. & Efanov, D.V. (2014) On the Use of the Properties of Sum Code for Unidirectional Error Detection in Concurrent Error Detection (CED) Systems of Combinational Circuits. Vestnik Tomskogo gosudarstvennogo universi-teta. Upravlenie, vychislitel'naya tekhnika i informatika - Tomsk State University Journal of Control and Computer Science. 3. pp. 76-88. (In Russian).
32. Sapozhnikov, V.V., Sapozhnikov, Vl.V. & Efanov, D.V. (2015) Primenenie kodov s summirovaniem pri sinteze sistem zheleznodorozhnoy avtomatiki i telemekhaniki na programmiruemykh logicheskikh integral'nykh skhemakh [Application of Codes with Summation for the Synthesis of Railway Automation and Remote Control Systems Based on Field-Programmable Gate Arrays]. Avtomatika na transporte. 1(1). pp. 84-107.
33. Sapozhnikov, V., Sapozhnikov, Vl., Efanov, D. & Nikitin, D. (2014) Combinational Circuits Checking on the Base of Sum Codes with One Weighted Data Bit. Proceedings of 12th IEEE East-West Design & Test Symposium (EWDTS'2014). 26th to 29th September 2014. Kyev, Ukraine. pp. 126-136.
34. Sapozhnikov, V.V., Sapozhnikov, Vl.V. & Efanov, D.V. (2014) Postroenie kodov s summirovaniem s naimen'shim kolichestvom neobnaruzhivaemykh simmetrichnykh oshibok v informatsionnykh vektorakh [Formation of Codes with Summation with the Smallest Number of Undetectable Errors of Data Bits]. Radioelektronika i informatika - RadioElectronics & Informatics Journal. 4. pp. 46-55.
35. Mel'nikov, A.G., Sapozhnikov, V.V., Sapozhnikov, Vl.V. (1986) Sintez samoproveryayushchikhsya testerov dlya kodov s summirovaniem [Synthesis of Self-Checking Checkers for Berger Codes]. Problemy peredachi informatsii - Problem of Transmission. 22(2). pp. 85-97.
36. Sapozhnikov, V.V., Sapozhnikov, Vl.V., Efanov, D.V. & Nikitin, D.A. (2013) Method of Constructing the Berger Code with High Error Detecting Efficiency in Information Bits. Electronic Modeling. 35(4). pp. 21-34. (In Russian).
37. Sapozhnikov, V.V., Sapozhnikov, Vl.V., Efanov, D.V., Nikitin, D.A. (2015 Research of Properties of Codes With Summation With One Weighted Data Bit in Concurrent Error Detection Systems. Electronic Modeling. 37(1). pp. 25-48. (In Russian).
38. Collection of Digital Design Benchmarks. [Online] Available from: http://ddd.fit.cvut.cz/prj/Benchmarks.
39. Sentovich, E.M., Singh, K.J., Lavagno, L., Moon, C., Murgai, R., Saldanha, A., Savoj, H., Stephan, P.R., Brayton, R.K. & Sangio-vanni-Vincentelli, A. (1992) SIS: A System for Sequential Circuit Synthesis. Electronics Research Laboratory, Department of Electrical Engineering and Computer Science. University of California, Berkeley.
40. Sapozhnikov, V.V., Sapozhnikov, Vl.V. & Efanov, D.V. (2015) Obnaruzhenie opasnykh oshibok na rabochikh vykhodakh kombi-natsionnykh logicheskikh skhem [Dangerous Errors Detection at the Operational Outputs of Combinational Logic Circuits]. Avtomatika na transporte. 1(2). pp. 195-211.
81