114
Общетехнические задачи и пути их решения
Библиографический список
1. Горная энциклопедия. Подземные сооружения. - URL : http://www.mming-enc.m/p/podzemnye-sooruzheniya (дата обращения 19.12.2014).
2. Защита от биоповреждений, вызываемых грибами / В. И. Сухаревич, И. Л. Кузикова, Н. Г. Медведева. - СПб. : ЭЛБИ-СПб, 2009. - 207 с.
3. Антропогенно-очаговые болезни жителей большого города / В. Б. Антонов // Журнал инфек-тологии. - 2009. - Т. 1, № 2/3. - С. 7-12.
4. Популярная медицинская энциклопедия. Пыль. - URL : http://medbooka.ru/pyl (дата обращения 21.12.2014).
5. Экобаланс. Углекислый газ : определения и свойства. - URL : http://ekobalans.ru/investigations/ uglekislyij-gaz-(co2) (дата обращения 21.12.2014).
УДК 681.518.5:004.052.32
В. В. Сапожников, Вл. В. Сапожников, Д. В. Ефанов
Петербургский государственный университет путей сообщения Императора Александра I
АНАЛИЗ СВОЙСТВ КОДОВ С СУММИРОВАНИЕМ ВЗВЕШЕННЫХ ИНФОРМАЦИОННЫХ РАЗРЯДОВ ПО ОБНАРУЖЕНИЮ ОШИБОК В СИСТЕМАХ ФУНКЦИОНАЛЬНОГО КОНТРОЛЯ ЛОГИЧЕСКИХ УСТРОЙСТВ
Рассмотрены коды с суммированием взвешенных информационных разрядов в системах функционального контроля логических устройств автоматики и вычислительной техники. Установлены новые свойства взвешенных кодов с суммированием, число контрольных разрядов в которых равно числу контрольных разрядов классических кодов Бергера. Показано, что взвешенные коды с суммированием обладают большей эффективностью обнаружения ошибок в системах функционального контроля, чем известные коды с суммированием. Кроме того, анализируемые в работе взвешенные коды обладают свойством 100%-ного обнаружения любых однонаправленных (монотонных) искажений в информационных векторах, что позволяет использовать их для организации контроля логических устройств с монотонными и монотонно независимыми выходами.
техническая диагностика, функциональный контроль, код Бергера, взвешенный код с суммированием, информационный вектор, необнаруживаемая ошибка.
Введение
Современные системы автоматического управления и контроля, в том числе и объекты железнодорожной автоматики и телемеханики, строятся с использованием микропроцессорной и микроэлектронной техники [1]. С каждым годом технологии создания элементов компьютерной техники совершенствуются, растет плотность интеграции транзисторов на кристалле, увеличивается быстродействие логических схем [2]. Задача обеспечения надеж-
ной работы компьютерной техники, особенно в системах управления, имеет фундаментальное значение. Для достижения высокого уровня надежности используются различные методы, включающие в себя применение высоконадежной элементной базы, резервирования, помехоустойчивого кодирования, а также технического диагностирования [3, 4].
Техническое диагностирование логических устройств позволяет определить состояние их функциональных узлов и впоследствии вы-
2015/1
Proceedings of Petersburg Transport University
Общетехнические задачи и пути их решения
115
работать стратегию дальнейшего применения объекта по назначению (в том числе выбрать вариант ремонта в случае возникновения дефекта). При организации систем технического диагностирования используются различные подходы, связанные с работой самого диагностируемого объекта. При тестовом диагностировании объект контроля кратковременно отключается от работы с целью подачи на его входы специальных проверочных воздействий. Противоположным подходом в диагностировании является функциональный контроль, или рабочий (on-line) контроль. Данный вид диагностирования проводится в режиме функционирования объекта (concurrent error detection system) [5, 6].
Данная статья посвящена развитию теории функционального контроля комбинационных логических устройств, являющихся частью любых современных компьютерных систем. Суть функционального контроля комбинационных устройств состоит в возможности обнаружения любых одиночных искажений в их внутренней структуре (будь то константные неисправности или неисправности типа
«временная задержка» [7, 8]) без специальных воздействий: тестирование производится на рабочих наборах логического устройства.
1 Коды с суммированием в системах
функционального контроля
При организации систем функционального контроля (рис. 1) применяются свойства избыточных кодов. Наиболее простым способом организации системы функционального контроля является применение разделимых кодов. В этом случае выходы контролируемого устройства/(х) отождествляют с информационными разрядами </ / ... />, а выходы контрольного устройства g(x) - с контрольными разрядами <gt g2 ... gk>, получаемыми по заранее установленным правилам. Факт соответствия информационных и контрольных разрядов фиксируется тестером с парафазным выходом [9]. Тестер является самопроверяе-мым, т. е. в нем любые одиночные ошибки во внутренней структуре определяются хотя бы на одном входном наборе. В этом случае и при
xi
Х2
Xi
Рабочие
выходы
Контрольные
выходы
Рис. 1. Структура системы функционального контроля
ISSN 1815-588Х. Известия ПГУПС
2015/1
116
Общетехнические задачи и пути их решения
наличии дефектов в блоках f (х) и g(x) на контрольных выходах тестера (z и z2) устанавливается непарафазный сигнал <00> или <11>.
От выбранного на этапе проектирования варианта кодирования в значительной степени зависят свойства самой системы функционального контроля по обнаружению искажений в контролируемом блоке f(х). Поскольку все блоки системы диагностирования реализованы раздельно, одновременное возникновение дефектов в разных блоках невозможно. Это позволяет рассматривать свойства системы функционального контроля при возникновении искажений только в информационных выходах при безошибочности контрольных выходов [10].
Наиболее часто при организации систем функционального контроля используются классические коды с суммированием, или коды Бергера [11, 12]. Коды Бергера в контрольном векторе содержат двоичное число, равное сумме числа единичных информационных разрядов (число, равное весу r кодового слова). Таким образом, при длине информационного вектора, равной m, длина контрольного вектора составляет к = |~log2(m +1) ~|, где запись |" b "| обозначает ближайшее целое, не превосходящее значения b. Коды Бергера обозначим как £(т,к)-коды.
В [10] установлены свойства кодов Бергера по обнаружению искажений в информационных векторах. Доказано, что доля необнаруживаемых искажений кратности d в информационных векторах от общего числа искажений данной кратности не зависит от длины информационного вектора и является постоянной величиной:
d
Pd = 2-dCj. (1)
Из выражения (1), например, следует, что коды Бергера не обнаруживают 50 % двукратных искажений в информационных разрядах.
Одним из способов повышения эффективности обнаружения искажений в информаци-
онных векторах кодов является модификация кода по следующим правилам [13].
Алгоритм 1. Построение модифицированного кода Бергера.
1. Подсчитывается вес информационного вектора г;
2. Выбирается модуль М = 2[l°g2 (m+1)| 1;
3. Вес r представляется по выбранному модулю (r)modM;
4. Подсчитывается специальный поправочный коэффициент а как сумма по модулю два заранее выбранных информационных разрядов;
5. Подсчитывается результирующий вес информационного слова W = (r)modM + аМ;
6. Число W представляется в двоичном виде.
Коды, получаемые по приведенному алгоритму, называются модифицированными кодами Бергера, или ДО(т,к)-кодами.
Я8(т,к)-коды обнаруживают почти вдвое больше искажений в информационных векторах, чем £(т,к)-коды. При этом от выбора правила подсчета поправочного коэффициента а зависит и число необнаруживаемых искажений в коде. Все модифицированные коды с длиной информационных векторов т < 8 имеют одинаковое общее число необнаруживаемых искажений, а с длиной т > 8 минимум необнаруживаемых искажений получается в том случае, если поправочный коэффициент т
содержит — информационных разрядов
(запись [b | обозначает ближайшее целое число, не превосходящее значения b). ЯБ(т,к)-коды, у которых поправочный коэффициент
т
вычисляется как сумма по модулю два
информационных разрядов, также имеют и минимум двукратных необнаруживаемых искажений [13].
Длина контрольного вектора в Б(т,к)- и ЯБ(т,к)-кодах зависит от длины информационного вектора и с его увеличением также увеличивается. Это влияет на сложность контрольного оборудования в системе функционального контроля (рис. 1). При использовании модульного принципа подсчета веса ин-
2015/1
Proceedings of Petersburg Transport University
Общетехнические задачи и пути их решения
117
формационного вектора число контрольных разрядов фиксируется и становится постоянным при любой длине информационного вектора. Модульные коды, или 8М(т,к)-коды, также эффективно применяются при построении систем функционального контроля [14]. В [15] установлены свойства £М(т,к)-кодов по обнаружению искажений в информационных векторах, показано, что модуль может быть выбран из множества М е 21,22,...,
— Г log2 (m+1)1-1 „
21 1 . Это дает целое семейство модуль-
ных кодов с суммированием с числом контрольных разрядов меньшим, чем у кода Бергера.
Используя алгоритм модификации, приведенный выше, а также выбирая модуль из т г л1 -|2 ,Jlog2(m+1)1-1
множества М е 2 ,2 ,...,2' v л , можно
получить целое семейство модульно-модифицированных кодов с суммированием (RSM (т,к)-кодов), которые также можно использовать при организации систем функционального контроля логических устройств [16].
Любые коды с суммированием, в которых вес информационного слова подсчитан по некоторому модулю М, имеют существенный недостаток, накладывающий ограничение на их использование в системах диагностирования. Модульный принцип подсчета веса приводит к возникновению однонаправленных (монотонных) искажений в информационных векторах кода, что, например, не дает гарантированного применения SM(m,k)-, RS(m,k)-или RSM(m,k)-кодов при организации системы контроля комбинационных логических устройств с монотонными и монотонно независимыми выходами [17].
Получить код с улучшенными характеристиками по обнаружению искажений в информационных векторах можно путем взвешивания информационных разрядов и записи в контрольных разрядах суммарного веса информационных разрядов. Впервые о такой возможности упоминается в работе J. M. Berger [11]. Особенности систем функционального контроля, построенных с применением взвешенных кодов с суммированием, изложены в [18, 19].
Цель данной статьи - показать возможности взвешивания информационных разрядов для получения кодов с суммированием с разнообразными распределениями необнаруживаемых искажений в информационных векторах. Взвешенные коды, к которым не применяется модульный принцип подсчета веса, гарантированно могут применяться для контроля схем, в которых на выходах могут возникать только монотонные искажения.
2 Свойства взвешенных кодов
с суммированием
Во взвешенных кодах с суммированием (Ж^^кДкодах) в общем случае могут быть взвешены любые информационные разряды, последовательность весовых коэффициентов таким образом имеет вид [wl,w2,_,wm]. Ж^^ДДкод с последовательностью весовых
коэффициентов [1,1,_,1] есть классический
код Бергера. В контрольном векторе WS(m,k)-кода записывается двоичное число, равное величине
m
W = zxw,
i=1
где xi - значение информационного разряда (0 или 1).
В [20] сравниваются классические коды Бергера и взвешенные коды с последовательностями весовых коэффициентов [1,1,_,1,3],
т.е. кодов с одним взвешенным разрядом w. = 3. Там же показано, что взвешенные коды с суммированием обладают всеми особенностями кодов Бергера.
Будем рассматривать только те взвешенные коды, в которых число контрольных разрядов равно числу контрольных разрядов в классических кодах Бергера, т. е. k = |~ log2(W +1) ~|. Для таких WS(m,k)-кодов устанавливается следующее ограничение на значения весовых коэффициентов [21]:
m < w1 + w2 +... + wm < 2riog2(m+1)1 -1. (2)
ISSN 1815-588Х. Известия ПГУПС
2015/1
118
Общетехнические задачи и пути их решения
Чем ближе длина информационного векто-
— Г log2 (m+1)"| ,
ра к величине 21 2V л -1, тем меньшее ко-
личество различных взвешенных кодов можно построить. Например, если m = 6, то имеются две последовательности весовых коэффициентов: [1,1,1,1,1,1] и [1,1,1,1,1,2], а при m = 5 таких последовательностей четыре: [1,1,1,1,1], [1,1,1,1,2], [1,1,1,1,3], [1,1,1,2,2].
Поскольку мы рассматриваем свойства кодов на всех входных наборах, то положение взвешенных разрядов в информационном векторе несущественно. Важным фактором в этом случае является значение весового коэффициента.
Контрольные векторы кодов с суммированием представляют собой суммы единичных информационных разрядов, умноженных на значение их весовых коэффициентов. Например, в табл. 1 приводятся кодовые слова <5(4,3)- и Ж5(4,3)-кодов с последовательностью весовых коэффициентов [1,1,2,2].
Для определения характеристик кодов по обнаружению ошибок в информационных векторах удобна табличная форма представления, где все информационные векторы распределены по контрольным векторам [10]. В табл. 2 и 3 приведены табличные формы представления 5(4,3)- и Ж5(4,3)-кодов. Код Бергера имеет в каждой контрольной группе С r информационных векторов (r - вес информационного вектора). Поскольку число r < m, три контрольные группы являются пустыми. Кроме того, заполнение занятых групп крайне неравномерно. Эти особенности кода Бергера определяют и его достаточно низкие возможности по обнаружению искажений в информационных векторах. Приписывание информационным разрядам весовых коэффициентов позволяет перераспределить информационные векторы по контрольным группам. Подбор значений весовых коэффициентов позволяет получать коды с различными распределениями информационных векторов по контрольным группам.
Ошибка в информационном векторе не будет обнаружена только тогда, когда она преобразит один информационный вектор в другой
внутри одной контрольной группы. Из табл. 2 и 3 ясно, что имеются 54 таких перехода для 5(4,3)-кода и 28 - для Ж5(4,3)-кода. Для любого кода Бергера известна формула подсчета числа необнаруживаемых искажений [13]:
Nm = Z 2Cp, (3)
p^Q
где Q = (cm, cm,..., c;-1}.
Для кодов Бергера число информационных векторов в одной контрольной группе определяется только значениями m и r, что позволяет легко установить количество необнаруживаемых переходов. Взвешенные коды имеют перераспределение информационных векторов, а именно - сдвиг в правую часть таблицы некоторого количества информационных векторов. Например, если взвешен один информационный разряд, на величину w-1 сдвигается 2m-1 информационный вектор. При большем количестве взвешенных разрядов осуществляется большее количество «перемещений» информационных векторов в сравнении с классическим кодом Бергера. Подсчет числа необнаруживаемых искажений затрудняется.
Для WS(m,k)-кодов справедливо Утверждение 1. Любой WS(m,k)-код, контрольный вектор которого представляет собой двоичный эквивалент суммы весовых коэффициентов информационных разрядов, обнаруживает 100 % монотонных ошибок в информационных векторах. Утверждение 1 следует из того, что при взвешивании информационных векторов увеличивается суммарный вес W, т. е. смещается значение истинного веса в большую сторону. В группу с весом r, соответствующим весу невзвешенного кода, не попадает информационный вектор взвешенного кода с большим значением веса.
Также для W5(m,k)-кодов нетрудно доказать Утверждение 2: взвешенный код с суммированием, весовые коэффициенты которого являются нечетными числами, обнаруживает любые ошибки нечетных кратностей и все монотонные ошибки четных кратностей [21].
2015/1
Proceedings of Petersburg Transport University
Общетехнические задачи и пути их решения
119
ТАБЛИЦА 1. Кодовые векторы кодов с суммированием
№ Информационные разряды, вес информационных разрядов Контрольные разряды
*1 w1=1 *2 w2=1 *3 w3=2 *4 w4=2 5(4,3) WS(4,3)
0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 1 0 0 1 0 1 0
2 0 0 1 0 0 0 1 0 1 0
3 0 0 1 1 0 1 0 1 0 0
4 0 1 0 0 0 0 1 0 0 1
5 0 1 0 1 0 1 0 0 1 1
6 0 1 1 0 0 1 0 0 1 1
7 0 1 1 1 0 1 1 1 0 1
8 1 0 0 0 0 0 1 0 0 1
9 1 0 0 1 0 1 0 0 1 1
10 1 0 1 0 0 1 0 0 1 1
11 1 0 1 1 0 1 1 1 0 1
12 1 1 0 0 0 1 0 0 1 0
13 1 1 0 1 0 1 1 1 0 0
14 1 1 1 0 0 1 1 1 0 0
15 1 1 1 1 1 0 0 1 1 0
ТАБЛИЦА 2. 5(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. Ж£(4,3)-код c последовательностью весов [1,1,2,2]
000 001 010 011 100 101 110 111
0000 0001 0011 0101 0111 1101 1111
0010 0100 0110 1011 1110
1000 1001 1100
1010
ISSN 1815-588Х. Известия ПГУПС
2015/1
120
Общетехнические задачи и пути их решения
Для более глубокого анализа характеристик взвешенных кодов с суммированием был составлен алгоритм построения взвешенного кода с суммированием на основе анализа табличной формы представления делимого кода и реализован в программном виде. Это позволило рассчитать характеристики взвешенных кодов с суммированием при длине информационных векторов m = 2^20. Например, в табл. 4 приведены все взвешенные коды с суммированием, удовлетворяющие условию (2), при длине информационного вектора m = 8.
В табл. 4 в графах Nm, у, ^ записаны характеристики взвешенных кодов: N - общее число необнаруживаемых искажений в информационном векторе, у - доля необнаруживаемых искажений от общего числа искажений в информационном векторе, ^ - показатель эффективности кода при заданной длине информационных и контрольных векторов. Коэффициент ^ показывает, насколько данный код ближе к оптимальному коду при заданных значениях m и k [13]:
$ =
N min
m
N
(4)
где Nmin = 2m (2m-k -1) - число необнаруживаемых ошибок в оптимальном коде, имеющем равномерное распределение информационных векторов между контрольными векторами.
Чем ближе ^ к 1, тем эффективнее код при данных значениях m и k. По величине ^ в табл. 4 видно, насколько взвешивание информационных разрядов увеличивает эффективность обнаружения искажений в коде с суммированием. Для некоторых последовательностей весовых коэффициентов эффективность возрастает более чем в два раза.
Коды в табл. 4 сгруппированы по следующему признаку: в каждой группе кодов изменяется значение только одного весового коэффициента. Это позволяет установить ряд свойств WS(m,k)-кодов, интересных с практической точки зрения:
1) любой взвешенный код с суммированием имеет меньшее количество необнару-
живаемых искажений, чем классический код Бергера, в том числе по каждой четной кратности;
2) любой взвешенный код из группы с постоянным значением весовых коэффициентов m - 1 информационного разряда имеет постоянное количество двукратных необнаруживаемых искажений, кроме первого кода группы. Это коды с последовательностями весовых коэффициентов [1,1,1,1,w5,w6,w7,w8], где w > w , w > w , w > w ;
3) чем больше взвешено информационных разрядов, тем меньше двукратных необнаруживаемых искажений в коде, удовлетворяющем предыдущему свойству. К примеру, у кода с последовательностью информационных разрядов [1,1,1,1,1,1,2,6] 1920 двукратных необнаруживаемых ошибок, а у кода с последовательностью [1,1,1,1,2,2,3,4] - всего 896;
4) максимальное значение коэффициента ^ имеет каждый последний код каждой группы - он имеет суммарное значение веса информационного слова W, максимально близ-
4log2 (m+1)"l
кое к пороговому 21 v м -1, после превышения которого добавляется еще один контрольный разряд (см. условие 2);
5) для кодов из первой группы (коды с одним взвешенным разрядом) число необнаруживаемых ошибок четных кратностей d постоянно при w. > d;
6) для данной длины информационного вектора m коды с одним взвешенным разрядом с четными значениями w . имеют одинаковое количество искажений четных кратностей d.
Анализ характеристических таблиц показывает, что все перечисленные свойства сохраняются для взвешенных кодов с суммированием с любой длиной информационных векторов.
3 О синтезе тестеров кодов с суммированием
Важным блоком системы функционального контроля является тестер: он отвечает за контроль технического состояния всех состав-
2015/1
Proceedings of Petersburg Transport University
Общетехнические задачи и пути их решения
121
ТАБЛИЦА 4. Характеристики Ж5(8,4)-кодов
Последовательность весовых коэффициентов Распределения необнаруживаемых ошибок по кратностям d N m Y
1 2 3 4 5 6 7 8
1,1,1,1,1,1,1,1 0 3584 0 6720 0 2240 0 70 12614 0,1932 0,3044
1,1,1,1,1,1,1,2 0 2688 1344 3360 2240 560 420 0 10612 0,1626 0,3619
1,1,1,1,1,1,1,3 0 2688 0 4480 0 1400 0 42 8610 0,1319 0,446
0 2688 0 3360 560 560 168 0 7336 0,1124 0,5234
0 2688 0 3360 728 0 14 0 6790 0,104 0,5655
1,1,1,1,1,1,1,6 0 2688 0 3360 0 560 28 0 6636 0,1017 0,5787
1,1,1,1,1,1,1,7 0 2688 0 3360 0 560 0 2 6610 0,1013 0,5809
1,1,1,1,1,1,1,8 0 2688 0 3360 0 560 0 0 6608 0,1012 0,5811
1,1,1,1,1,1,2,2 0 2048 1920 2400 1920 920 120 52 9380 0,1437 0,4094
1,1,1,1,1,1,2,3 0 1920 1344 2080 1920 320 324 0 7908 0,1211 0,4856
1,1,1,1,1,1,2,4 0 1920 960 1920 1200 560 84 32 6676 0,1023 0,5752
1,1,1,1,1,1,2,5 0 1920 960 1440 1280 128 180 0 5908 0,0905 0,65
1,1,1,1,1,1,2,6 0 1920 960 1440 960 200 64 12 5556 0,0851 0,6911
1,1,1,1,1,1,2,7 0 1920 960 1440 960 80 84 0 5444 0,0834 0,7054
1,1,1,1,1,1,3,3 0 2048 0 3680 0 1280 0 42 7050 0,108 0,5447
1,1,1,1,1,1,3,4 0 1920 384 2080 1200 320 264 0 6168 0,0945 0,6226
1,1,1,1,1,1,3,5 0 1920 0 2560 0 848 0 30 5358 0,0821 0,7167
1,1,1,1,1,1,3,6 0 1920 0 2080 320 320 124 0 4764 0,073 0,806
1,1,1,1,1,1,4,4 0 2048 0 2400 480 800 48 40 5816 0,0891 0,6602
1,1,1,1,1,1,4,5 0 1920 384 1440 1200 128 264 0 5336 0,0817 0,7196
1,1,1,1,1,2,2,2 0 1664 1920 2400 1440 840 240 0 8504 0,1303 0,4516
1,1,1,1,1,2,2,3 0 1408 1920 1600 1600 720 88 40 7376 0,113 0,5206
1,1,1,1,1,2,2,4 0 1408 1344 1760 1040 600 160 0 6312 0,0967 0,6084
1,1,1,1,1,2,2,5 0 1408 1280 1280 960 528 40 24 5520 0,0846 0,6957
1,1,1,1,1,2,2,6 0 1408 1280 1120 800 360 80 0 5048 0,0773 0,7607
1,1,1,1,1,2,3,3 0 1408 1280 1760 1600 320 268 0 6636 0,1017 0,5787
1,1,1,1,1,2,3,4 0 1280 1280 1280 1360 520 84 32 5836 0,0894 0,658
1,1,1,1,1,2,3,5 0 1280 1024 1120 1280 208 204 0 5116 0,0784 0,7506
1,1,1,1,1,2,4,4 0 1408 640 1760 800 560 160 0 5328 0,0816 0,7207
1,1,1,1,2,2,2,2 0 1536 1536 2496 1408 624 192 44 7836 0,12 0,49
1,1,1,1,2,2,2,3 0 1152 1920 1760 1248 648 208 0 6936 0,1063 0,5536
1,1,1,1,2,2,2,4 0 1152 1344 1824 1072 456 144 32 6024 0,0923 0,6375
1,1,1,1,2,2,2,5 0 1152 1152 1632 736 456 144 0 5272 0,0808 0,7284
1,1,1,1,2,2,3,3 0 1024 1792 1440 1280 664 72 36 6308 0,0966 0,6088
1,1,1,1,2,2,3,4 0 896 1600 1376 1040 536 160 0 5608 0,0859 0,6847
ISSN 1815-588Х. Известия ПГУПС
2015/1
122
Общетехнические задачи и пути их решения
ляющих системы диагностирования. Теория синтеза тестеров кодов с суммированием разработана достаточно хорошо [3, 9, 22]. Тестер любого разделимого кода удобно строить по структуре, включающей в себя два модуля: генератор и компаратор [9]. Генератор по значениям рабочих функций блока/(х) вычисляет контрольный вектор <g1' g2' ... gk'>, а компаратор сравнивает его с контрольным вектором от блока g(x) (рис. 2).
а
б
в
Х1 Х2 Хз
Х1 Х2
С S
С S
Х1 Х2
У
Рис. 3. Типовые функциональные элементы: а) сумматор; б) полусумматор; в) сумматор по модулю два
gl g2 " • gk / Я •• •/m
Генератор
gi
|6-6—6
g2 gk
r "• ЛГ
Компаратор
▼ ▼
Zl Z2
Рис. 2. Структура тестера
Компараторы строятся по каскадному принципу соединения модулей сравнения парафазных сигналов, что подробно описано в [9]. Кроме того, все компараторы одинаковы для кодов с одинаковым количеством контрольных разрядов.
Генератор представляет собой сумматор весовых коэффициентов. Его целесообразно строить на базе стандартных модулей сложения двоичных чисел: сумматора (FA), полусумматора (HA) и сумматора по модулю два (XOR) [22]. На рис. 3 показаны условные обозначения функциональных блоков, из которых строится генератор.
Сумматор имеет три входа - х1, х2, Х3 - и два выхода - S (сумма) и C (перенос). Сумматор вычисляет сумму единичных значений на входах в соответствии с уравнениями: S = x1 © x2 © х3 и C = x1 x2 v x1 x3 v x2 х3. В отличие от полного сумматора полусумматор имеет два входа - x1, х2 - и два выхода - S и C. Функции S и C вычисляются по правилам:
S = x1 © х2 и C = x1 х2. Используя только эту элементную базу, можно синтезировать любые генераторы взвешенных кодов.
Принцип построения генераторов следующий: значение одного информационного разряда подается на w . входов генератора. Другими словами, генератор будет иметь количество входов, равное максимальному суммарному весу информационного вектора.
Например, на рис. 4 приводится схема генератора Ж^(8,4)-кода с последовательностью весовых коэффициентов [1,1,1,1,2,2,3,4]. На рис. 4 показаны сигналы каждой линии генератора при поступлении входного вектора <10010111>.
Генераторы взвешенных кодов с суммированием, построенные по описанному методу, более сложны в технической реализации, чем генераторы классических кодов с суммированием при одинаковой длине информационных векторов. Для построения генератора WS(8,4)-кода потребовалось 10 полных сумматоров, 5 полусумматоров и 1 сумматор по модулю два. Для сравнения: структура генератора классического S(8,4)-кода содержит 4 полных сумматора и 4 полусумматора.
При построении генераторов взвешенных кодов с суммированием можно учитывать вес информационного разряда и его способность в зависимости от значения (0 или 1) принимать только два возможных варианта веса - 0 или w.. Это может существенно сократить сложность генератора при оптимизации структуры. Например, на рис. 5 показана упрощенная структура рассмотренного выше генератора
2015/1
Proceedings of Petersburg Transport University
Общетехнические задачи и пути их решения
123
/i Л /3 /4 /5 J5 Л /б fi fi /i Л Л Л Л
gl g2 g3 g4
Рис. 4. Генератор тестера WS (12,8)-кода
Ж^(8,4)-кода с последовательностью весовых коэффициентов [1,1,1,1,2,2,3,4]. При упрощении структуры генератора мы воспользовались следующими соображениями:
1) седьмой разряд в суммарный вес может давать либо 0, либо 3 (в двоичном виде - 000 или 011),
2) восьмой разряд в суммарный вес может давать либо 0, либо 4 (в двоичном виде - 000, либо 100);
3) сумма веса седьмого и восьмого разрядов может быть равна 0, 3, 4 или 1;
4) из п. 3 следует, что двоичное число, ха-растеризующее сумму весов седьмого и восьмого разрядов, будет иметь вид: </ /1 />.
С учетом этих соображений можно удалить из структуры генератора сумматор весов седьмого и восьмого разрядов. Таким образом, из схемы генератора полностью удаляются три полных сумматора и один полусумматор, а один полный сумматор меняется на полусумматор (сравните рис. 4 и 5).
Возможна и дальнейшая минимизация числа элементов в структуре генератора: учет того, что вес пятого и шестого разрядов вносят в суммарный вес либо 0, либо 2 (рис. б).
Сформулируем последовательность действий по оптимизации структуры генератора кода с суммированием взвешенных информационных разрядов.
ISSN 1815-588Х. Известия ПГУПС
2015/1
124
Общетехнические задачи и пути их решения
1 1 1
FA
2 1
О 1
f4 f 5 f
О О
1 1
FA
2 1
2 2 2 FA 4 2
О 1
f 6 f 6
1 1
1 1 1
HA
1
1 1
HA
2 1
1
1
f8 f7 1
О 1 1
4 4 4 FA 8 4
1 О
О О
44
111
2
FA
4 2
1 1
Го
Ф
2 2 2
FA
4 2
f7
HA 2 1
1О
1 1
HA
2 1
g2
g3
g4
Рис. 5. Генератор тестера WS (8,4)-кода с упрощенной структурой
1
1
1
1
О
1
О
О
f1 f2 f5 f6 f3 f4
g1 g2 g3 g4
Рис. 6. Генератор тестера WS (8,4)-кода с оптимизированной структурой
2015/1
Proceedings of Petersburg Transport University
Общетехнические задачи и пути их решения
125
Алгоритм 2. Минимизация числа элементов в структуре генератора WS(m,k)-кода.
1. Строится генератор WS{m,k)-кода как сумматор Wmax единиц, где Wmax - суммарный вес всех информационных разрядов;
2. Определяются группы разрядов, суммарный вес которых позволяет использовать операцию сокращения элементов суммирования за счет представления весовых коэффициентов в двоичном виде;
3. Упрощается структура генератора.
Алгоритм 2 применим к генераторам любых WS(m,k)-кодов, при этом он дает наилучший результат при примерно одинаковом количестве нечетных и четных весовых коэффициентов информационных разрядов.
Заключение
Показано, что взвешенные коды с суммированием обладают улучшенными характеристиками по обнаружению ошибок в информационных векторах в сравнении с классическими кодами с суммированием единичных информационных разрядов [3, 9, 22]. Особенно важна возможность обнаружения большего количества двукратных искажений, так как в практических задачах такие искажения более вероятны, чем искажения больших кратностей. Кроме того, взвешенные коды с суммированием обнаруживают 100 % монотонных ошибок в информационных векторах, что позволяет применять их во многих практических задачах, где используются классические коды Бергера. Например, известные модульные и модифицированные коды с суммированием единичных информационных разрядов не обнаруживают часть монотонных искажений, что ограничивает их применение в задачах построения надежных дискретных устройств [23, 24].
В заключение отметим, что приведенные здесь новые свойства взвешенных кодов с суммированием на практике позволяют выбирать наилучший вариант кодирования при организации системы функционального кон-
троля логических устройств автоматики и вычислительной техники с учетом особенностей их структур. Кроме того, обоснованный выбор кода за счет установленных особенностей взвешенных кодов в некоторых случаях позволяет снизить и сложность контрольной части системы функционального контроля.
Библиографический список
1. Theeg G., Vlasenko S. Railway Signalling & Interlocking // DW Media Group GmbH. - 1st ed. -Eurailpress, Hamburg, 2009. - 448 p.
2. Kharchenko V. Evolution of von Neumann's Paradigm: Safe and Green Computing // Proceedings of 11th IEEE East-West Design & Test Symposium (EWDTS'2013), Rostov-on-Don, Sept. 27-30. - Rostov-on-Don, 2013. - P. 493-494.
3. Самопроверяемые устройства и отказоустойчивые системы / Е. С. Согомонян, Е. В. Слабаков. - М. : Радио и связь, 1989. - 208 с.
4. Проектирование и тестирование цифровых систем на кристаллах / В. И. Хаханов, Е. И. Литвинова, О. А. Гузь. - Харьков : ХНУРЭ, 2009. -484 с.
5. Nicolaidis M., Zorian Y. On-Line Testing for VLSI - А Compendium of Approaches // J. Electronic Testing : Theory and Applications. - 1998. -N 12. - P. 7-20.
6. Dutta A., Touba N. A. Synthesis of Non-Intrusive Concurrent Error Detection Using an Even Error Detection Function // Int. test conf. (ITC). - 2005. -
P. 1059-1066.
7. Обеспечение тестируемости задержек путей при синтезе схем покрытием BDD-графов /
A. Ю. Матросова, Д. В. Кудин, Е. А. Николаева, Е. В. Румянцева // Вестн. Томск. гос. ун-та. Управление, вычислительная техника и информатика. -2013. - № 2. - С. 130-139.
8. Синтез логических схем, контролепригодных относительно неисправностей задержек путей / А. Ю. Матросова, Е. А. Николаева, Е. В. Румянцева // Изв. вузов. Физика. - 2012. - Т. 55, № 11. -С. 114-116.
9. Самопроверяемые дискретные устройства /
B. В. Сапожников, Вл. В. Сапожников. - СПб. : Энергоатомиздат, 1992. - 224 с.
ISSN 1815-588Х. Известия ПГУПС
2015/1
126
Общетехнические задачи и пути их решения
10. О свойствах кода с суммированием в схемах функционального контроля / Д. В. Ефанов, В. В. Сапожников, Вл. В. Сапожников // Автоматика и телемеханика. - 2010. - № 6. - С. 155-162.
11. Berger J. M. А Note on Error Detecting Codes for Asymmetric Channels // Inf. and Control. - 1961. -Vol. 4, N 1. - P. 68-73.
12. Freiman C. V. Optimal Error Detection Codes for Completely Asymmetric Binary // Inf. and Control. - 1962. - Vol. 5, is. 1. - P. 64-71.
13. Построение модифицированного кода Бергера с минимальным числом необнаруживаемых ошибок информационных разрядов / А. А. Блюдов, Д. В. Ефанов, В. В. Сапожников, Вл. В. Сапожников // Электронное моделирование. - 2012. - Т. 34, № 6. - С. 17-29.
14. Das D., Touba N.A. Synthesis of Circuits with Low-Cost Concurrent Error Detection Based on Bose-Lin Codes // J. of Electronic Testing : Theory and Applications. - 1999. - Vol. 15, is. 1/2 (Aug.-Oct.). -P. 145-155.
15. Коды с суммированием для организации контроля комбинационных схем / А. А. Блюдов, Д. В. Ефанов, В. В. Сапожников, Вл. В. Сапожников // Автоматика и телемеханика. - 2013. - № 6. -
С. 153-164.
16. О кодах с суммированием единичных разрядов в схемах функционального контроля / А. А. Блю-дов, Д. В. Ефанов, В. В. Сапожников, Вл. В. Сапожников // Автоматика и телемеханика. - 2014. - № 8. -С.131-145.
17. Morosow A., Saposhnikov V. V., Saposhni-kov Vl. V., Goessel M. Self-Checking Combinational Circuits with Unidirectionally Independent Outputs // VLSI Design. - 1998. - Vol. 5, is. 4. - P. 333-345.
18. Das D., Touba N. A., Seuring M., Gossel M. Low Cost Concurrent Error Detection Based on Mod-
ulo Weight-Based Codes // Proceedings of IEEE 6th Int. On-Line Testing Workshop (IOLTW), Spain, Palma de Mallorca, July 3-5, 2000. - Palma de Mallorca, 2010. - P. 171-176.
19. Das D., Touba N.A. Weight-Based Codes and their Application to Concurrent Error Detection of Multilevel Circuits // Proc. 17th IEEE Test Symp., California, USA. - California, 1999. - P. 370-376.
20. Метод построения кода Бергера с повышенной эффективностью обнаружения ошибок в информационных разрядах / В. В. Сапожников, Вл. В. Сапожников, Д. В. Ефанов, Д. А. Никитин // Электронное моделирование. - 2013. - Т. 35, № 4. - С. 21-34.
21. Взвешенные коды с суммированием для организации контроля логических устройств / В. В. Сапожников, Вл. В. Сапожников, Д. В. Ефа-нов // Электронное моделирование. - 2014. - Т. 36, № 1. - С. 59-80.
22. Piestrak S. J. Design of Self-Testing Checkers for Unidirectional Error Detecting Codes. - Wroclaw : Oficyna Wydawnicza Politechniki Wroclavskiej, 1995.
- 111 p.
23. Sapozhnikov V., Sapozhnikov Vl., Efanov D., Blyudov A. On the Synthesis of Unidirectional Combinational Circuits Detecting All Single Faults // Proceedings of 12th IEEE East-West Design & Test Symp. (EWDTS'2014), Kyev, Ukraine, Sept. 26-29, 2014. -Kyev, 2014. - P. 116-125.
24. Об использовании свойств кодов с суммированием по обнаружению монотонных ошибок в системах функционального контроля комбинационных схем / В. В. Сапожников, Вл. В. Сапожников, Д. В. Ефанов // Вестн. Томск. гос. ун-та. Управление, вычислительная техника и информатика. -2014. - № 3. - С. 76-88.
2015/1
Proceedings of Petersburg Transport University