ВЕСТНИК ТОМСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА
2016 Управление, вычислительная техника и информатика № 4 (37)
УДК 681.518.5:004.052.32 Б01: 10.17223/19988605/37/2
Д.В. Ефанов
К ВОПРОСУ СИНТЕЗА ГЕНЕРАТОРОВ МОДИФИЦИРОВАННЫХ КОДОВ С СУММИРОВАНИЕМ ВЗВЕШЕННЫХ ИНФОРМАЦИОННЫХ РАЗРЯДОВ С ПОСЛЕДОВАТЕЛЬНОСТЬЮ ВЕСОВЫХ КОЭФФИЦИЕНТОВ, ОБРАЗУЮЩЕЙ НАТУРАЛЬНЫЙ РЯД ЧИСЕЛ
Излагаются результаты, полученные автором в области синтеза генераторов контрольных векторов модифицированных кодов Бергера. Данные коды принадлежат к классу модифицированных модульно взвешенных кодов с суммированием. Приводятся общие структуры генераторов таких кодов, а также алгоритм построения генератора, позволяющий оптимизировать его структуру, сократив количество используемых функциональных элементов. Выводится формула подсчета общего количества двухвходовых логических элементов, необходимых для технической реализации генератора. Предложенный алгоритм синтеза генераторов является универсальным и может быть использован для построения генераторов любых модифицированных модульно взвешенных кодов с суммированием.
Ключевые слова: техническая диагностика; система функционального контроля; код Бергера; модифицированный код Бергера; взвешенный код с суммированием; наименьший неотрицательный вычет; модуль; генератор; полусумматор; полный сумматор.
В задачах технической диагностики дискретных систем часто применяют разнообразные коды с суммированием [1-17]. Данные коды принадлежат к классу систематических - в кодовых словах таких кодов выделяют информационный и контрольный векторы с длинами т и к соответственно. Введем обозначение для кодов с суммированием - (т,к)-коды.
Применение (т,к)-кодов в задачах технической диагностики, например при синтезе систем с обнаружением отказов [18-20], связано с внесением избыточности в структуру «базового» объекта. При этом способ построения кода напрямую определяет характеристики избыточности получаемого технического объекта, а также особенности идентифицируемых в нем неисправностей.
Наиболее простым среди известных кодов с суммированием является классический код Бергера [21]. Данный код имеет к = |~^2(т +1)] разрядов в контрольных векторах (запись [...] обозначает целое сверху от вычисляемого значения), принимающих значения разрядов двоичных чисел, равных сумме единичных информационных разрядов (равных весу информационного вектора). Такие особенности построения кода Бергера приводят к крайне неравномерному распределению информационных векторов между контрольными векторами, что в конечном итоге сказывается на свойствах обнаружения им ошибок. Кодами Бергера не обнаруживается любая симметричная ошибка в информационном векторе (такая ошибка не нарушает веса информационного вектора и происходит при одинаковом количестве искажаемых нулевых и единичных разрядов [22]). Вне зависимости от длины информационного вектора кодами Бергера не обнаруживается одинаковый процент ошибок четной кратностью й от общего количества ошибок данной кратностью [23-25]. Это, к примеру, 50% двукратных и 37,5% четырехкратных ошибок в информационных векторах. С неравномерностью распределения информационных векторов между контрольными связано и большое общее количество необнаруживаемых ошибок в информационных векторах кодов Бергера. Тем не менее данные коды нашли широкое применение за счет их свойства обнаружения любых монотонных ошибок в кодовых словах [26-31].
Любые модификации классических кодов связаны с перераспределением информационных векторов между контрольными векторами, что позволяет уменьшать количество необнаруживаемых в информационных векторах ошибок. В [32] введено понятие оптимального по критерию минимума общего количества необнаруживаемых ошибок (т,к)-кода с установленными значениями длин информационных и контрольных векторов и показано, что классический код Бергера далек от оптимального кода.
В [33] разработан перспективный для задач технической диагностики модифицированный код Бергера, основанный на идее взвешивания разрядов информационных векторов и последующих операциях модификации значения суммарного веса информационного вектора. Данная работа посвящена изложению способа синтеза генератора, или кодера, данного оптимального кода с суммированием.
1. Модифицированный код Бергера
Как отмечалось выше, способ построения оптимального (т,^)-кода базируется на первоначальном установлении неравноправия между разрядами в информационном векторе путем приписывания им различных весовых коэффициентов [10, 13, 21, 34-36], а значения разрядов контрольных векторов получаются следующим образом.
Алгоритм 1. Правила построения оптимального кода с суммированием:
1. Устанавливается последовательность весовых коэффициентов разрядов информационного вектора, образующая натуральный ряд чисел, начиная с младшего разряда.
2. Вычисляется значение модуля M = 2 Г1о& (m+1)l-1.
3. Определяется значение суммарного веса единичных разрядов информационного вектора:
m
W = £ wifi, (1)
i=1
где fi = 0 или fi = 1 - значения разрядов информационного вектора.
4. Определяется наименьший неотрицательный вычет числа W по модулю M:
[W ]M = W (mod M). (2)
5. Вычисляется специальный поправочный коэффициент а как функция паритета разрядов информационного вектора, занимающих позиции с четными номерами, начиная с младшего разряда:
Г f2 Ф f4 Ф... Ф fm, если m - четное; а = < (3)
[f2 Ф f4 Ф... Ф fm-1, если m - нечетное.
6. Формируется значение результирующего веса информационного вектора:
V = [W ]M +oM. (4)
7. Число V представляется в двоичном виде и записывается в разряды контрольного вектора.
Получаемые по алгоритму 1 коды с суммированием обозначим как RWS(m,k)-коды. Они принадлежат к классу модифицированных модульно взвешенных кодов с суммированием и имеют такое же количество разрядов в контрольных векторах, как и классические коды Бергера, однако обладают улучшенными характеристиками обнаружения ошибок в информационных векторах.
Пользуясь алгоритмом 1, приведем пример построения ЛЖ£(4,3)-кода (табл. 1).
Т а б л и ц а 1
Кодовые слова RWS(4,3)-кода
№ п/п Информационный вектор W Wm A V Конт рольный вектор
f4 А fi fx g3 g2 g1
0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 1 1 1 0 1 0 0 1
2 0 0 1 0 2 2 1 6 1 1 0
3 0 0 1 1 3 3 1 7 1 1 1
4 0 1 0 0 3 3 0 3 0 1 1
5 0 1 0 1 4 0 0 0 0 0 0
6 0 1 1 0 5 1 1 5 1 0 1
7 0 1 1 1 6 2 1 6 1 1 0
8 1 0 0 0 4 0 1 4 1 0 0
9 1 0 0 1 5 1 1 5 1 0 1
10 1 0 1 0 6 2 0 2 0 1 0
11 1 0 1 1 7 3 0 3 0 1 1
12 1 1 0 0 7 3 1 7 1 1 1
13 1 1 0 1 8 0 1 4 1 0 0
14 1 1 1 0 9 1 0 1 0 0 1
15 1 1 1 1 10 2 0 2 0 1 0
Данный код не обнаруживает 8 двухкратных и 8 четырехкратных ошибок в информационных векторах (для сравнения: кодом Бергера при данной длине информационного вектора не обнаруживается 48 двухкратных и 6 четырехкратных ошибок [23]). Вообще НИ^Б(т,к)-кодами идентифицируется гораздо больше ошибок малых кратностей, чем кодами Бергера. Кроме того, данный класс кодов, так же как и коды Бергера, обнаруживает любые ошибки нечетных кратностей в информационных векторах.
2. Синтез генераторов модифицированных кодов Бергера
Поскольку при построении ЯЖЯ(т,к)-кодов используются операции суммирования весовых коэффициентов и значений разрядов информационных векторов, в качестве элементной базы для их генераторов удобно использовать стандартные схемы сумматоров по модулю два (ХОЯ), полусумматоров (НА) и полных сумматоров (ЕЛ) [7, 37-39]. На рис. 1 приводятся условные обозначения данных функциональных элементов. При этом в условных обозначениях полусумматора и полного сумматора на входах и выходах указаны веса разрядов двоичных чисел.
5
б
Рис. 1. Условные обозначения типовых функциональных элементов: а - сумматора по модулю два; б - полусумматора; в - полного сумматора
Сумматор по модулю два реализует операцию сложения двух одноразрядных чисел без переноса и вычисляет функцию
Я = ¡1 © ¡2.
Схемы полусумматора и полного сумматора предназначены для сложения двух и трех двоичных чисел. Полусумматор имеет два входа и два выхода, на которых формируется двоичное число, равное суммарному количеству единиц на его входах:
р = ¡1 © ¡2;
[С = ¡1 ¡2.
Аналогичную полусумматору функцию выполняет полный сумматор, имея при этом, однако, три входа и два выхода, описываемых следующими формулами:
= ¡1 © ¡ © ¡з;
[С = ¡1¡2 V ¡¡3 V ¡2 ¡3.
Согласно (1) генератор ЯЖЯ(т,к)-кода должен сначала подсчитать сумму весовых коэффициентов единичных разрядов информационного вектора, затем вычислить по формуле (2) наименьший неотрицательный вычет для полученного числа и прибавить к нему значение модуля при а = 1 или сохранить неизменным при а = 0. Таким образом, структурная схема генератора ЯЖЯ(т,к)-кода может иметь вид, представленный на рис. 2.
В генераторе выделяется четыре функциональных блока: В1 предназначен для «взвешивания» разрядов; В2 - устройство суммирования весовых коэффициентов; В3 - схема определения наименьшего неотрицательного вычета суммарного веса единичных информационных разрядов; В4 - формирователь старшего разряда контрольного вектора.
Схема генератора ЯЖЯ(т,к)-кода может быть построена и иным образом.
а
в
Преобразуем выражение (4), подставив в него выражения (1) и (2):
V = [W]M + aM = W(modM) + aM = ^wjt j(modM) + aM :
= (( + W2 f2 + ... + Wmfm ) (d M ) + aM =
= w1 f (modM) + w2f2 (modM) +... + wmfm (modM) + aM.
Як Як-1 Як-2 ••• Я2
Рис. 2. Структурная схема первого типа генератора КШ£(т,к)-кода
Из формулы (5) следует, что перед тем, как определять суммарный вес единичных информационных разрядов, можно напрямую вычислять наименьшие неотрицательные вычеты для каждого весового коэффициента. Таким образом, структурная схема генератора ЯЖ8(т,к)-кода примет вид, изображенный на рис. 3. В ней также выделяются четыре функциональных блока: В1 предназначен для «взвешивания» разрядов; В2 - устройство определения наименьших неотрицательных вычетов для каждого весового коэффициента; В3 - схема суммирования наименьших неотрицательных вычетов весовых коэффициентов единичных разрядов по установленному модулю М; В4 - формирователь старшего разряда контрольного вектора.
Фактически блоки В\-В3 могут быть построены путем каскадного соединения типовых схем сложения двоичных чисел по заданному модулю М. Такая типовая схема изображена на рис. 4. На ее входы подаются два двоичных числа А = <а1 а2 ... аМ> и В = <¿1 Ь2 ... ЬМ>, являющиеся двоичными представлениями наименьших неотрицательных вычетов по модулю М двух весовых коэффициентов. А на выходах формируется сумма чисел А и В за исключением переноса в старший разряд при переполнении -число £ = <^1 s2 ... sM>. В частности, на рис. 5 изображены типовые схемы сложения двоичных чисел по модулям М = 4, 8 и 16, используемым при формировании ЯЖ8(т,к)-кодов с длинами информационных векторов т < 32.
¡т ¡т-1 ¡2 ¡1
Рис. 3. Структурная схема второго типа генератора ЯШЯ(т,к)-кода
Целесообразно синтезировать генераторы по структурной схеме, приведенной на рис. 3, следующим способом.
Алгоритм 2. Правила синтеза генераторов ЯЖЯ(т,к)-кодов.
1. Устанавливается значение модуля М.
2. Определяется наименьший неотрицательный вычет по модулю М для каждого весового коэффициента и,:
[ИI = И (т°аМ)
3. Каждое число [и, ]М представляется в двоичном виде.
4. Единичным разрядам двоичных чисел \wi ]М ставятся в соответствие значения разряда/
5. Осуществляется разбиение двоичных чисел \wi ]М на пары с учетом оптимального заполнения раз-
рядов: числа [и,- ]М разбиваются на
групп, каждая из которых представляет собой пару двоичных чи-
6. Выполняется сложение чисел с учетом значений их разрядов и получение
двоичных чисел.
устройство суммирования
двоичных чисел.
т 2
сел, полученных в п. 4 данного алгоритма, суммирование которых осуществляется без переносов.
т 2
7. С использованием функциональных блоков сложения двоичных чисел модулю М реализуется
т 2
8. Реализуется блок вычисления старшего разряда контрольного вектора.
Из алгоритма 2, в частности, следует, что блоки В1 и В2 генератора не требуют функциональных элементов и содержат только провода, на которые подаются сигналы 0 или /. Более того, из п. 6 алгоритма следует, что фактически первым каскадом блока В3 будут выступать только провода с поданными на них сигналами 0 или /. Таким образом, алгоритм 2 подразумевает некоторую оптимизацию структуры генератора ЯЖБ(т,к)-кода.
Продемонстрируем работу алгоритма 2 на примере синтеза генератора ЛЖ^(8,4)-кода.
Определим значения наименьших неотрицательных вычетов для всех весовых коэффициентов и, и представим их в двоичном виде. После этого в каждом двоичном представлении вычета веса и все единичные разряды заменяем значениями соответствующего информационного разряда/, а все нулевые разряды оставляем заполненными значениями 0. Результат приведен в табл. 2.
Т а б л и ц а 2
Получение суммируемых двоичных чисел
Весовые коэффициенты
И8 и7 Иб и5 и4 и3 и2
8 7 6 5 4 3 2 1
]М
1000 0111 0110 0101 0100 0011 0010 0001
Двоичное число, соответствующее весу
/8000 0/7/7/7 0/6/60 0/50/5 0/400 00/з/3 00/20 000/!
Далее полученные двоичные числа разбиваются на
= 4 группы. При этом числа в каждой
" " 2
группе должны складываться без переносов (см. рис. 6). Данные двоичные числа требуется сложить по модулю М= 8 с использованием функциональных блоков, изображенных на рис. 5, б. Так как получено четыре двоичных числа, то потребуется три функциональных блока.
Отдельно реализуется функция паритета а = /2 Ф /4 Ф /6 Ф /8, вычисляющая старший разряд контрольного вектора ЛЖ£(8,4)-кода.
Синтезированный генератор рассматриваемого кода представлен на рис. 7. На каждой его линии указаны логические сигналы 0 и 1, соответствующие вычислению значений разрядов контрольного вектора при поступлении на входы генератора информационного вектора <10100110>.
Рис. 5. Структурные схемы функциональных блоков ЕМ: а - сложения по модулю М = 4; б - сложения по модулю М = 8; в - сложения по модулю М = 16
^7= < 0/7/7 />
+
- </ о о о >
^б=<0/б/б0>
^2 = <0 0/0>
^5 = <0/0/>
м'з = < 0 0// >
^4=< 0/00 >
^7+^8 = <//// >
< 0/б// >
Н'г+Н'з = < О/// >
^3+^4= < О/4/3/3 >
(м^+м'йХтос^) =
(У1+м'бХп1(х18) =
(м^+м^Хтс^) =
(^3+^4X111(^8) =
Рис. 6. Получение двоичных чисел, суммируемых на входах функциональных блоков сложения по модулю М = 8
в
/б /7 /б /7
1 0 10
Л /7 /4 /5 /з /2
0 0 0 0 1 1
Л /5
1 о
1
НА
2
Рис. 7. Генератор разрядов контрольного вектора КЖ?(8,4)-кода Поскольку все весовые коэффициенты НИ^Б(т,к)-кода при использовании алгоритма 2 делятся на групп для их последующего суммирования, справедливо следующее положение.
Утверждение 1. Генератор НИ^Б(т,к)-кода содержит
-1 функциональный блок ХМ и блок
формирования старшего контрольного разряда, включающий в себя
-1 сумматоров по модулю два
(запись [_...] обозначает целое снизу от вычисляемого значения).
Сформулированное выше положение о количестве функциональных элементов в структуре генератора модифицированного кода Бергера позволяет дать оценку сложности его технической реализации в зависимости от длины информационного вектора. Одним из таких показателей является количество двухвходовых элементарных логических элементов, требующихся для реализации генератора [6]. Данный показатель известен для сумматора по модулю два, полусумматора и полного сумматора [40]: Ххок = 3, ЬНА = 3, ЬРЛ = 7. Зная эти данные, нетрудно оценить сложность технической реализации функциональных блоков ХМ: 4 = 9, = 16 и = 23. В табл. 3 приводятся рассчитанные значения показателя сложности технической реализации генераторов ЯЖБ(т,к)-кодов при длинах информационных векторов т = 3^20, а на рис. 8 иллюстрируется зависимость сложности технической реализации генераторов от длины информационного вектора. Она носит линейный характер.
Формализуем процедуру оценки сложности технической реализации генераторов КЖ^(т,к)-кодов.
Из утверждения 1 ясно, что сложность технической реализации генератора определяется суммой
т 2
-1
т 2
-1
Ьх
(6)
Т а б л и ц а 3
Показатели сложности технической реализации генераторов к)-кодов
т Формула генератора Количество двухвходовых элементов в структуре генератора
3 2ХОК 6
4 1ХОЯ+1Е4 12
5 1ХОЯ+2Е4 21
6 2ХОЯ+2Е4 24
7 2ХОЯ+3Е4 33
8 3ХОЯ+3Е8 57
9 3ХОЯ+4Е8 73
10 4ХОЯ+4Е8 76
11 4ХОЯ+5Е8 92
12 5ХОЯ+5Е8 95
13 5ХОЯ+6Е8 111
14 6ХОЯ+6Е8 114
15 6ХОЯ+7Е8 130
16 7ХОЯ+7Е16 182
17 7ХОЯ+8Е16 205
18 8ХОЯ+8Е16 208
19 8ХОЯ+9Е16 231
20 9ХОЯ+9Е16 234
&
§
8 и
2 и
^ и
£ «
Й Я
А Я
Ш сЗ
° С
ц; К
° ^
[Я «
й &
О X
15 II I
р я
5 *
° ю И о
250 200 150 100 50 0
Л../
ч-
—д •
• >
• -1-
— *
У-< >•
н
>•
У
У
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Длина информационного вектора т
Рис. 8. Зависимость показателя сложности технической реализации генератора КШБ(т,к)-кода
от длины информационного вектора
Величина Ьъ в формуле (6) зависит от количества разрядов в контрольных векторах. Каждый такой блок, за исключением случая М = 2, содержит один элемент НА, (т +1)| - 3 элемента РА и два
элемента ХОЯ (см. рис. 4 и 5). Это объясняется тем, что на полусумматоре реализуется функция вычисления младшего разряда контрольного вектора ЯЖБ(т,к)-кода, на к-3 полных сумматорах реализуются контрольные разряды g2, g3, ..., gk-2, а на двух сумматорах по модулю два - контрольный разряд gk_1. Таким образом, сложность функционального блока ЕМ вычисляется по формуле
К = Ьна + (Г^2 (т +^ - 3) ЬРА + 2ЬхоК. (7)
Подставим (7) в (6), а также внесем туда значения ЬХОК = 3, ЬНА = 3, ЬРА = 7.
Утверждение 2. Количество двухвходовых элементов в структуре генератора ЕЖ8(т,к)-кода определяется выражением
^ т 2
L
'RWS (m ,k)
Л
- 1
3 )lfa + 2 lxor ,
( +(|~log2 (m +1)]- 3)
\
(7 • (|"log2 (m +1)]- 3) + 9) +
(
(
3 •
m 2
л
л
-1
lxor
m л -12 m m
-1 + 3
~2 ~2 _ ~2 _
= 7 [1сё2 (т +1))
Использование формулы (8) для рассмотренного выше ЛЖ£(8,4)-кода дает следующий результат:
-1
-9.
(8)
lrws(8,4) = 7 fl0g2 (m +1)1
m -1|-12 m + 3 m
2 J 2 _ 2 _
-9 = 7 ["log2 (8 +1))
" 8" -11-12 " 8" + 3 8
2 J 2 _ 2 _
+ 9 = 57.
Заключение
Предложенный в настоящей работе алгоритм синтеза генераторов модифицированных кодов Бергера позволяет строить данные устройства с простой структурой на основе каскадного соединения функциональных блоков сложения по модулю M. Сложность структур генераторов с увеличением длины информационного вектора возрастает линейно.
Описанный способ синтеза генераторов является универсальным и может быть применен для построения генераторов как кодов с суммированием взвешенных информационных разрядов [10, 34, 4044], так и кодов с суммированием взвешенных переходов между разрядами, занимающими соседние позиции в информационных векторах [13, 35, 45-49]. Однако возможность оптимизации структур генераторов будет напрямую определяться значениями весовых коэффициентов кода.
ЛИТЕРАТУРА
1. Слабаков Е.В. Построение полностью самопроверяемых комбинационных устройств с использованием остаточных кодов //
Автоматика и телемеханика. 1979. № 10. C. 133-141.
2. Слабаков Е.В., Согомонян Е.С. Самопроверяемые вычислительные устройства и системы (обзор) // Автоматика и телемеха-
ника. 1981. № 11. С. 147-167.
3. McCluskey E.J. Logic Design Principles: With Emphasis on Testable Semicustom Circuits. N.J. : Prentice Hall PTR, 1986. 549 p.
4. Сагалович Ю.Л. Кодовая защита оперативной памяти ЭВМ от ошибок // Автоматика и телемеханика. 1991. № 5. С. 3-45.
5. Согомонян Е.С., Слабаков Е.В. Самопроверяемые устройства и отказоустойчивые системы. М. : Радио и связь, 1989. 208 с.
6. Сапожников В.В., Сапожников Вл.В. Самопроверяемые дискретные устройства. СПб. : Энергоатомиздат, 1992. 224 с.
7. Piestrak S.J. Design of Self-Testing Checkers for Unidirectional Error Detecting Codes. Wroclaw : Oficyna Wydawnicza Politechniki
Wroclavskiej, 1995. 111 p.
8. Pradhan D.K. Fault-Tolerant Computer System Design. New-York : Prentice Hall, 1996. 560 p.
9. Das D., Touba N.A. Synthesis of Circuits with Low-Cost Concurrent Error Detection Based on Bose-Lin Codes // Journal of Elec-
tronic Testing: Theory and Applications. 1999. V. 15, Issue 1-2. P. 145-155.
10. 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. P. 171-176.
11. Matrosova A.Yu., Levin I., Ostanin S.A. Self-Checking Synchronous FSM Network Design with Low Overhead // VLSI Design. 2000. V. 11, Issue 1. P. 47-58.
12. Fujiwara E. Code Design for Dependable Systems: Theory and Practical Applications. John Wiley & Sons, 2006. 720 p.
13. 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. P. 21-26.
14. Блюдов А.А., Ефанов Д.В., Сапожников В.В., Сапожников Вл.В. Коды с суммированием для организации контроля комбинационных схем // Автоматика и телемеханика. 2013. № 6. С. 153-164.
15. Блюдов А.А., Ефанов Д.В., Сапожников В.В., Сапожников Вл.В. О кодах с суммированием единичных разрядов в системах функционального контроля // Автоматика и телемеханика. 2014. № 8. С. 131-145.
16. Сапожников В. В., Сапожников Вл. В., Ефанов Д. В. Применение кодов с суммированием при синтезе систем железнодорожной автоматики и телемеханики на программируемых логических интегральных схемах // Автоматика на транспорте. 2015. Т. 1, № 1. С. 84-107.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27
28
29
30
31
32
33
34
35.
36
37
38
39
40
41
42
43.
44
45
Ефанов Д.В., Сапожников В.В., Сапожников Вл.В. Применение модульных кодов с суммированием для построения систем функционального контроля комбинационных логических схем // Автоматика и телемеханика. 2015. № 10. С. 152-169. Nicolaidis M., Zorian Y. On-Line Testing for VLSI - А Compendium of Approaches // Journal of Electronic Testing: Theory and Applications. 1998. Issue 12. P. 7-20.
Mitra S., McClaskey E.J. Which Concurrent Error Detection Scheme to Choose? // Proceedings of International Test Conference, 2000, USA, Atlantic City, NJ, 03-05 October 2000. P. 985-994.
Ефанов Д.В., Грошев Г.М., Маликов О.Б. Способы организации систем функционального диагностирования логических схем без памяти // Электротехника. 2016. № 5. С. 53-56.
Berger J.M. А Note on Error Detecting Codes for Asymmetric Channels // Information and Control. 1961. V. 4, Issue 1. P. 68-73. Сапожников В.В., Сапожников Вл.В., Ефанов Д.В. Классификация ошибок в информационных векторах систематических кодов // Известия вузов. Приборостроение. 2015. Т. 58, № 5. С. 333-343.
Ефанов Д.В., Сапожников В.В., Сапожников Вл.В. О свойствах кода с суммированием в схемах функционального контроля // Автоматика и телемеханика. 2010. № 6. С. 155-162.
Сапожников В.В., Сапожников Вл.В., Ефанов Д.В. Предельные свойства кода с суммированием // Известия Петербургского университета путей сообщения. 2010. № 3. С. 290-299.
Сапожников В.В., Сапожников Вл.В., Ефанов Д.В., Черепанова М.Р. Модульные коды с суммированием в системах функционального контроля. I. Свойства обнаружения ошибок кодами в информационных векторах // Электронное моделирование. 2016. Т. 38, № 2. С. 27-48.
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.
Гессель М., Морозов А.А., Сапожников В.В., Сапожников Вл.В. Построение комбинационных самопроверяемых устройств с монотонно независимыми выходами // Автоматика и телемеханика. 1994. № 7. С. 148-160.
Гессель М., Морозов А.А., Сапожников В.В., Сапожников Вл.В. Исследование комбинационных самопроверяемых устройств с независимыми и монотонно независимыми выходами // Автоматика и телемеханика. 1997. № 2. С. 180-193. Morosow A., Sapozhnikov V.V., Sapozhnikov Vl.V., Goessel M. Self-Checking Combinational Circuits with Unidirectionally Independent Outputs // VLSI Design. 1998. V. 5, Issue 4. P. 333-345.
Saposhnikov V.V., Morosov A., Saposhnikov Vl.V., Goessel M. A New Design Method for Self-Checking Unidirectional Combinational Circuits // Journal of Electronic Testing: Theory and Applications. 1998. V. 12, Issue 1-2. P. 41-53.
Matrosova A., Levin I., Ostanin S. Survivable Self-Checking Sequential Circuits // Proceedings of 2001 IEEE International Symposium on Defect and Fault Tolerance in VLSI Systems (DFT 2001). October 24-26, San Francisco, CA, 2001. P. 395-402. Блюдов А.А., Ефанов Д.В., Сапожников В.В., Сапожников Вл.В. Построение модифицированного кода Бергера с минимальным числом необнаруживаемых ошибок информационных разрядов // Электронное моделирование. 2012. Т. 34, № 6. С. 17-29.
Efanov D., Sapozhnikov V., Sapozhnikov Vl., Nikitin D. Sum Code Formation with Minimum Total Number of Undetectable Errors in Data Vectors // Proceedings of 13th IEEE East-West Design & Test Symposium (EWDTS'2015), Batumi, Georgia, September 26-29. 2015. P. 141-148.
Das D., Touba N.A. Weight-Based Codes and Their Application to Concurrent Error Detection of Multilevel Circuits // Proceedings of 17th IEEE Test Symposium, USA, California, 1999. P. 370-376.
Мехов В.Б., Сапожников В.В., Сапожников Вл.В. Контроль комбинационных схем на основе модифицированных кодов с суммированием // Автоматика и телемеханика. 2008. № 8. С. 153-165.
Сапожников В.В., Сапожников Вл.В., Ефанов Д.В. Взвешенные коды с суммированием для организации контроля логических устройств // Электронное моделирование. 2014. Т. 36, № 1. С. 59-80.
Marouf M.A., Friedman A.D. Design of Self-Checking Checkers for Berger Codes // Proceedings of 8th Annual International Conference on Fault-Tolerant Computing, Toulouse, France, 1978. P. 179-183. Lala P.K. Principles of Modern Digital Design. New Jersey : John Wiley & Sons, 2007. 436 p.
Blyudov A.A. On the Synthesis of Test Equipment for Modulo Codes with Summation // Proceedings of Petersburg Transport University. 2013. Issue 1. P. 53-58.
Дрозд А.В., Харченко В.С., Антощук С.Г., Дрозд Ю.В., Дрозд М.А., Сулима Ю.Ю. Рабочее диагностирование безопасных информационно-управляющих систем / под ред. А.В. Дрозда, В.С. Харченко. Харьков : Национальный аэрокосмический университет им. Н.Е. Жуковского «ХАИ», 2012. 614 с.
Favalli M., Metra C. Optimization of Error Detecting Codes for the Detection of Crosstalk Originated Errors // Design, Automation and Test in Europe (DATE), March 13-16, 2001. P. 290-296.
Ghosh S., Lai K.W., Jone W.B., Chang S.C. Scan Chain Fault Identification Using Weight-Based Codes for SoC Circuits // Proceedings of 13th Asian Test Symposium, 15-17 November. 2004. P. 210-215.
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. DOI 10.1109/EWDTS.2014.7027064.
Сапожников В.В., Сапожников Вл.В., Ефанов Д.В., Никитин Д.А. Модульно взвешенный код с суммированием для систем технического диагностирования // Информатика и системы управления. 2015. № 3. С. 53-62.
Saposhnikov V., Saposhnikov Vl. New Code for Fault Detection in Logic Circuits // Proceedings of 4th International conference on Unconventional Electromechanical and Electrical Systems, St. Petersburg, Russia, June 21-24. 1999. P. 693-696.
46. Сапожников В.В., Сапожников Вл.В., Ефанов Д.В., Дмитриев В.В. Свойства кодов с суммированием взвешенных переходов с прямой последовательностью весовых коэффициентов // Информатика и системы управления. 2014. № 4. С. 77-88.
47. Sapozhnikov V., Sapozhnikov Vl., Efanov D., Dmitriev V., Cherepanova M. Optimum Sum Codes, That Effectively Detect the Errors of Low Multiplicities // RadioElectronics & Informatics. 2015. No. 1. P. 17-22.
48. Дмитриев В.В. О двух способах взвешивания и их влиянии на свойства кодов с суммированием взвешенных переходов в системах функционального контроля логических схем // Известия Петербургского университета путей сообщения. 2015. № 3. С. 119-129.
49. Сапожников В.В., Сапожников Вл.В., Ефанов Д.В., Дмитриев В.В., Черепанова М.Р. Способ построения кода с суммированием с улучшенными показателями обнаружения ошибок в информационных векторах // Автоматика на транспорте. 2016. Т. 2, № 1. С. 95-123.
Ефанов Дмитрий Викторович, канд. техн. наук, доцент. E-mail: [email protected]
Петербургский государственный университет путей сообщения Императора Александра I (г. Санкт-Петербург)
Поступила в редакцию 29 июня 2016 г.
Efanov Dmitry V. (Petersburg State Transport University, St. Petersburg, Russian Federation).
On the problem of modified codes with summation of weighted data bits with natural numbers sequence of weight indexes generators synthesis.
Keywords: technical diagnostics; concurrent error detection system (CED system); Berger code; modified Berger code; weight-based sum code; least nonnegative residue; modulus; generator; half-adder; full-adder.
DOI: 10.17223/19988605/37/2
Different codes with summation (most of which are Berger code modifications) are often used in reliable discrete devices design. Modified code with summation of weighted data bits refers to such modifications. It is systematic code (the same as Berger code) and
has k = |~log2 ( m +1)~| check bits (m - data vector length). This code formation involves attribution of natural numbers weight indexes,
calculation of total active bits weight and its least nonnegative residue by modulo M = 2^log2 (m+1fl 1. This value is placed in low bits of check vector. High bit is calculated as modulo two sum of data bits with even positions (that have even weight indexes). This code has better data bits error detection properties comparing with Berger code. Also it is the code with minimum total number of undetectable data bits errors for given length of data and check vectors.
The paper describes the method of modified Berger code generator synthesis. Component base list contains standard circuits of
modulo two, half and full adders. They compose functional blocks of M = 2^°62 (m+1)^ 1 sum. Generator itself is formed by cascade connection of such blocks.
Two structural diagrams of modified Berger code generators are given; also the generator synthesis algorithm is described that optimizes its structure by separation of weight indexes by groups of summed numbers without transfers. These numbers are sent on inputs of counters of M = 2 (m+1)!-1 sum. High bit of check vector is formed on the output of the block that calculate modulo two sum of data bits with even positions. The algorithm is illustrated on the example synthesis of the generator for modified Berger code with m = 8.
-1 functional blocks of sum by M = 2^og2 (m+1)^
The paper shows that of modified Berger code includes
modulo and block of
high bit formation that consists of
-1 modulo two adders. Dependence between complexity and data vector length is stated. It is
shown that number of two-input gates in generator structure is calculated with the following expression:
7[log2 (m +1)
m - i]-12 m m
+ 3
2 J 2 _ 2 _
+ 9 .
The described way of generator synthesis is universal and could be used for the formation of generators for codes with summation of weighted data bits and for codes with summation of weighted transitions between adjacent bits as well.
REFERENCES
1. Slabakov, E.V. (1979) Design of Completely Self-Checking Combinational Devices with the use of Residual Codes. Automation and
Remote Control. 10. pp. 133-141.
2. Slabakov, E.V. & Sogomonyan, E.S. (1981) Self-Checking Computing Devices and Systems (Review). Automation and Remote Con-
trol. 11. pp. 147-167.
3. McCluskey, E.J. (1986) Logic Design Principles: With Emphasis on Testable Semicustom Circuits. New Jersey: Prentice Hall PTR.
4. Sagalovich, Yu.L. (1991) Error-Correcting Codes for Computer Memories. Automation and Remote Control. 5. pp. 3-45.
5. Sogomonyan, E.S. & Slabakov, E.V. (1989) Samoproveryaemye ustroystva i otkazoustoychivye sistemy [Self-Checking Devices and
Fault-Tolerant Systems]. Moscow: Radio i svyaz'.
6. Sapozhnikov, V.V. & Sapozhnikov Vl.V. (1992) Samoproveryaemye diskretnye ustroystva [Self-Checking Digital Devices]. St. Pe-
tersburg: Energoatomizdat. 224 p.
7. Piestrak, S.J. (1995) Design of Self-Testing Checkers for Unidirectional Error Detecting Codes. Wroclaw: Oficyna Wydawnicza
Politechniki Wroclavskiej.
8. Pradhan, D.K. (1996) Fault-Tolerant Computer System Design. New-York: Prentice Hall.
9. Das, D. & Touba, N.A. (1999) Synthesis of Circuits with Low-Cost Concurrent Error Detection Based on Bose-Lin Codes. Journal of
Electronic Testing: Theory and Applications. 15(1-2). pp. 145-155. DOI: 10.1023/A:1008344603814
10. Das, D., Touba, N.A., Seuring, M. & Gossel, M. (2000) Low Cost Concurrent Error Detection Based on Modulo Weight-Based Codes. Proceedings of IEEE 6th International On-Line Testing Workshop (IOLTW). Spain, Palma de Mallorca. July 3-5. pp. 171176. DOI: 10.1109/0LT.2000.856633
11. Matrosova, A.Yu., Levin, I. & Ostanin, S.A. (2000) Self-Checking Synchronous F SM Network Design with Low Overhead. VLSI Design. 11(1). pp. 47-58.
12. Fujiwara, E. (2006) Code Design for Dependable Systems: Theory and Practical Applications. John Wiley & Sons.
13. 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). Erevan, Armenia. September 25-30. pp. 21-26.
14. 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. 6. pp. 153-164. DOI: 10.1134/S0005117913060118
15. Blyudov, A.A., Efanov, D.V., Sapozhnikov, V.V. & Sapozhnikov, Vl.V. (2014) On Summation Code of Unit Bits in Concurrent Error Detection Systems. Automation and Remote Control. 8. pp. 131-145. DOI: 10.1134/S0005117914080098
16. 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 — Automation on Transport. 1(1). pp. 84-107.
17. Efanov, D.V., Sapozhnikov, V.V. & Sapozhnikov, Vl.V. (2015) Applications of Modular Summation Codes to Concurrent Error Detection Systems for Combinational Boolean Circuits. Automation and Remote Control. 10. pp. 152-169. DOI: 10.1134/S0005117915100112
18. Nicolaidis, M. & Zorian, Y. (1998) On-Line Testing for VLSI - А Compendium of Approaches. Journal of Electronic Testing: Theory and Applications. 12. pp. 7-20. DOI: 10.1023/A:1008244815697
19. Mitra, S. & McClaskey, E.J. (2000) Which Concurrent Error Detection Scheme to Choose? Proceedings of International Test Conference. USA, Atlantic City. NJ, October 3-5. pp. 985-994. DOI: 10.1109/TEST.2000.894311
20. Efanov, D.V., Groshev, G.M. & Malikov, O.B. (2016) Sposoby organizatsii sistem funktsional'nogo diagnostirovaniya logicheskikh skhem bez pamyati [Ways of Organization of Concurrent Error Detection Systems for Combinational Circuits]. Elektrotekhnika -Electrical Engineering. 5. pp. 53-56.
21. Berger, J.M. (1961) А Note on Error Detecting Codes for Asymmetric Channels. Information and Control. 4(1). pp. 68-73. DOI: 10.1016/S0019-9958(61)80037-5
22. Sapozhnikov, V.V., Sapozhnikov, Vl.V. & Ephanov, D.V. (2015) Errors classification in information vectors of systematic codes. Izvestiya Vysshikh Uchebnykh Zavedeniy. Priborostroenie — Journal of Instrument Engineering. 58(5). pp. 333-343. DOI: 10.17586/0021-3454-2015-58-5-333-343. (In Russian).
23. Efanov, D.V., Sapozhnikov, V.V. & Sapozhnikov, Vl.V. (2010) On Summation Code Properties in Functional Control Circuits. Automation and Remote Control. 6. pp. 155-162. DOI: 10.1134/S0005117910060123
24. Sapozhnikov, V.V., Sapozhnikov, Vl.V. & Efanov, D.V. (2010) Limit Property of Berger Code. Izvestiya Peterburgskogo universi-teta putey soobshcheniya - Proceedings of Petersburg Transport University. 3. pp. 290-299. (In Russian).
25. Sapozhnikov, V.V., Sapozhnikov, Vl.V., Efanov, D.V. & Cherepanova, M.R. (2016) Modulo Codes with Summation in Concurrent Error Detection Systems. I. Ability to Detect Errors by Modulo Codes in Data Vectors. Elektronnoe modelirovanie - Electronic Modeling. 38(2). pp. 27-48. (In Russian).
26. Busaba, F.Y. & Lala, P.K. (1994) Self-Checking Combinational Circuit Design for Single and Unidirectional Multibit Errors. Journal of Electronic Testing: Theory and Applications. 5. pp. 19-28. DOI: 10.1007/BF00971960
27. Goessel, M., Morozov, A.A., Sapozhnikov, V.V. & Sapozhnikov, Vl.V. (1994) Postroenie kombinatsionnykh samoproveryaemykh ustroystv s monotonno nezavisimymi vykhodami [Construction of Combinational Self-Checking Devices with Monotonically Independent Outputs]. Avtomatika i telemekhanika - Automation and Remote Control. issue 7. pp. 148-160.
28. Goessel, M., Morozov, A.A., Sapozhnikov, V.V. & Sapozhnikov, Vl.V. (1997) Issledovanie kombinatsionnykh samoproveryae-mykh ustroystv s nezavisimymi i monotonno nezavisimymi vykhodami [Investigation of Combination Self-Testing Devices Having Independent and Monotone Independent Outputs]. Avtomatika i telemekhanika - Automation and Remote Control. 2. pp. 180-193.
29. Morosow, A., Sapozhnikov, V.V., Sapozhnikov, Vl.V. & Goessel, M. (1998) Self-Checking Combinational Circuits with Unidirec-tionally Independent Outputs. VLSI Design. 5(4). pp. 333-345.
30. Saposhnikov, V.V., Morosov, A., Saposhnikov, Vl.V. & Goessel, M. (1998) A New Design Method for Self-Checking Unidirectional Combinational Circuits. Journal of Electronic Testing: Theory and Applications. 12(1-2). pp. 41-53. DOI: 10.1007/978-1-4757-6069-9_4
31. Matrosova, A., Levin, I. & Ostanin, S. (2001) Survivable Self-Checking Sequential Circuits. Proceedings of2001 IEEE International Symposium on Defect and Fault Tolerance in VLSI Systems (DFT 2001). October 24-26, San Francisco, CA. pp. 395-402.
32. 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 Informational Bits. Elektronnoe modelirovanie - Electronic Modeling. 34(6). pp. 17-29. (In Russian).
33. Efanov, D., Sapozhnikov, V., Sapozhnikov, Vl. & Nikitin, D. (2015) Sum Code Formation with Minimum Total Number of Undetectable Errors in Data Vectors. Proceedings of 13th IEEE East-West Design & Test Symposium (EWDTS'2015). Batumi, Georgia, September 26-29. pp. 141-148.
34. Das, D. & Touba, N.A. (1999) Weight-Based Codes and Their Application to Concurrent Error Detection of Multilevel Circuits. Proceedings of 17th IEEE Test Symposium. USA, California. pp. 370-376. DOI: 10.1109/43.644041
35. 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
36. Sapozhnikov, V.V., Sapozhnikov, Vl.V. & Efanov, D.V. (2014) Weighted Codes with Summation for Organization of the Check of Logic Units. Elektronnoe modelirovanie - Electronic Modeling. 36(1). pp. 59-80. (In Russian).
37. Marouf, M.A. & Friedman, A.D. (1978) Design of Self-Checking Checkers for Berger Codes. Proceedings of 8th Annual International Conference on Fault-Tolerant Computing. Toulouse, France. pp. 179-183.
38. Lala, P.K. (2007) Principles of Modern Digital Design. New-Jersey: John Wiley & Sons.
39. Blyudov, A.A. (2013) On the Synthesis of Test Equipment for Modulo Codes with Summation. Proceedings of Petersburg Transport University. 1. pp. 53-58. (In Russian)
40. Drozd, A. V., Kharchenko, V.S., Antoshchuk, S.G., Drozd, Ju.V., Drozd, M.A. & Sulima, Yu.Yu. (2012) Objects and Methods of On-Line Testing for Safe Instrumentation and Control Systems. Kharkov: National Aerospace University.(In Russian)
41. Favalli, M. & Metra, C. (2001) Optimization of Error Detecting Codes for the Detection of Crosstalk Originated Errors. Design, Automation and Test in Europe (DATE). March 13-16. pp. 290-296. DOI: 10.1109/DATE.2001.915039
42. Ghosh, S., Lai, K.W., Jone, W.B. & Chang, S.C. (2004) Scan Chain Fault Identification Using Weight-Based Codes for SoC Circuits. Proceedings of 13th Asian Test Symposium. November 15-17. pp. 210-215. DOI: 10.1109/ATS.2004.77
43. 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). Kyev, Ukraine. September 26-29. pp. 126-136. DOI: 10.1109/EWDTS.2014.7027064.
44. Sapozhnikov, V.V., Sapozhnikov, Vl.V., Efanov, D.V. & Nikitin, D.A. (2015) Modulo Weighted Code with Summation for Technical Diagnostics Systems. Informatika i sistemy upravleniya — Information Science and Control Systems. 3. pp. 53-62.
45. Sapozhnikov, V. & Sapozhnikov, Vl. (1999) New Code for Fault Detection in Logic Circuits. Proceedings of 4th International conference on Unconventional Electromechanical and Electrical Systems. St. Petersburg, Russia. June 21-24. pp. 693-696. (In Russian).
46. Sapozhnikov, V.V., Sapozhnikov, Vl.V., Efanov, D.V. & Dmitriev, V.V. (2014) Properties of Codes with Summation of Transitions Between Data Bits With Direct Sequence of Weighting Coefficient. Information Science and Control Systems. issue 4. pp. 77-88.
47. Sapozhnikov, V., Sapozhnikov, Vl., Efanov, D., Dmitriev, V. & Cherepanova, M. (2015) Optimum Sum Codes, That Effectively Detect the Errors of Low Multiplicities. RadioElectronics & Informatics. 1. pp. 17-22. (In Russian).
48. Dmitriev, V.V. (2015) On the Two Weighing Methods and Their Influence on Properties of Sum Codes of Weighted Transitions in Functional Logical Scheme Control Systems. Izvestiya Peterburgskogo universiteta putey soobshcheniya - Proceedings of Petersburg Transport University. 3. pp. 119-129. (In Russian).
49. Sapozhnikov, V.V., Sapozhnikov, Vl.V., Efanov, D.V., Dmitriev, V.V. & Cherepanova, M.R. (2016) Method of Formation of Sum Code with Improved Efficiency of Error Detection in Data Vectors. Avtomatika na transporte - Automation on Transport. 2(1). pp. 95-123. (In Russian).