ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ
«НАУКА. ИННОВАЦИИ. ТЕХНОЛОГИИ», №2,2015
удк681.3 Червяков Н. И. [Chervyakov N. I.],
Нагорнов Н. Н. [Nagornov N. N.]
КОРРЕКЦИЯ ОШИБОК ПРИ ПЕРЕДАЧЕ И ОБРАБОТКЕ ИНФОРМАЦИИ, ПРЕДСТАВЛЕННОЙ В СОК, МЕТОДОМ СИНДРОМНОГО ДЕКОДИРОВАНИЯ
Error correction in the transmission
and processing of information, provided in RNS,
by method of syndrome decoding
В статье проведено развитие метода синдромного декодирования исправления ошибок в кодах СОК, основанного на методе расширения оснований СОК. Приведены основы избыточной СОК. Рассмотрены наиболее широко используемые алгоритмы обнаружения, локализации и исправления ошибок в СОК, а также конкретные примеры их использования. Для рассмотренных методов проведены анализ и сравнение, указаны основные достоинства и недостатки. Приведен полный алгоритм коррекции ошибок по информационным и контрольным основаниям методом синдромного декодирования и примеры его практического применения. Показано, что использование синдромов ошибок позволяет уменьшить время коррекции ошибок. Это происходит в силу того, что задачи по обнаружению, локализации и исправлению ошибок выполняются одной общей процедурой. Вычислительная сложность метода синдромного декодирования значительно меньше, чем широко используемого метода проекций, поскольку метод проекций требует п + 1 процедуру перевода числа из СОК в ОПСС, в то время как метод синдромного декодирования требует перевода числа в ОПСС лишь один раз.
Ключевые слова: система остаточных классов, расширение оснований, метод синдромного декодирования.
In article conducted the development of the method of syndrome decoding error correction codes in the RNS, based on the method of expanding the bases RNS. Presents the basics of excess RNS. Considered the most widely used algorithms for detecting, locating and correcting errors in the RNS, as well as concrete examples of their use. For the examined methods conducted an analysis and comparison, shows the main advantages and disadvantages. Shown the complete algorithm for error correction in information and control bases by the syndrome decoding method and examples of its practical application. It is shown that using error syndromes can reduce the time of error correction. This is due to the fact that the task of identifying, locating and correcting errors performed a common procedure . The computational complexity of the method of decoding the syndrome is much less than the widely used method of projection since projection method requires n +1 the procedure of transfer number of RNS in generalized positional number system, whereas the syndrome decoding method requires the translation in generalized positional number system only once.
Key words: residue number system, expansion of bases, method of syndrome decoding.
1. Введение
Проблема высокой надежности не только передачи информации, но и ее обработки особенно актуальна в современных системах, работающих в реальном времени, где ошибки работы оборудования
должны быть обнаружены и исправлены немедленно. Высокая надежность должна достигаться не столько совершенствованием самих технических средств передачи и обработки информации, сколько за счет применения таких способов ее кодирования, которые были бы устойчивы по отношению к возможным случайным искажениям и позволяли бы при необходимости осуществлять коррекцию данных. В связи с этим наиболее перспективным путем решения рассматриваемой проблемы является придание вычислительным устройствам свойства устойчивости к отказам и сбоям в процессе функционирования. Отказоустойчивость обеспечивается сочетанием избыточности системы и наличием механизма обнаружения ошибок, а также процедур для автоматического восстановления ее правильного функционирования.
Наиболее широкими коррскти р у ю щ ими возможностями обладают арифметические коды - непозиционные коды в модулярной арифметике. Модулярная арифметика обладает уникальными свойствами относительно обнаружения и коррекции ошибок. Во-первых, в ней отсутствует значимость порядка цифр в записи числа, во-вторых, коды и проверяемые числа представляются в виде остатков, что позволяет считать такие коды полностью арифметическими. Исходя из этих свойств, можно сделать вывод о том, что применение модулярной арифметики позволяет эффективно решать проблему построения отказоустойчивых систем и служит мощным инструментом для автоматического обнаружения и коррекции ошибок [1, 2].
2. Основы избыточной системы остаточных классов
Развитие высокопроизводительных и надежных вычислительных систем, обладающих свойством отказоустойчивости, базируется на идеях создания вычислительных средств с параллельной структурой, использующих параллельное представление и обработку данных. К их числу относятся непозиционные коды - коды, основанные на модулярной арифметике, т.е. коды, в которых данные представляются в системе остаточных классов (СОК) [2-4].
Если фиксированный ряд положительных чисел , р2...,р„ назвать основаниями (модулями) СОК, то под системой остаточных классов понимается такая непозиционная система счисления, в которой любое целое положительной число А представляется в виде набора остатков (вычетов) от деления представляемого числа на выбранные основания системы:
А = |аь с-2, ал), (1)
где а, - наименьшие неотрицательные вычеты (остатки) числа по
модулям jpj, р2 ...,р„. Цифры а, данного представления по выбранным модулям образуются следующим образом:
а, = res + A (mod р,) =А-[^\ры V i Ш (1,»]), (2)
Р'
где [—] - целочисленное частное,/?, - основания (модули) - взаимно-простые числа.
LP<
В теории чисел доказано, что если V i / {р,,р}) = 1, то в соответствии с китайской теоремой об остатках представление (1) являет-
п
ся единственным, при условии 0 < А < D, где Р /> ру/>„ Па ~ дпапа-
i=i
зон представления чисел, то есть существует число А, для которого: А = аг (mod р ):
А = а2 (mod р2); (3)
А =а„ (mod рп).
Основным преимуществом такого представления является тот факт, что выполнение операций сложения, вычитания и умножения реализуется очень просто, по формуле:
Л*В = (аи а2, ..., а„)*(А, р2, ..., Д) = = ((«, * Д )mod/;1, (а2/*fi2)modp2, ..., {ап *Рп)тоАрп),
где * обозначает одну из операций (сложение, умножение или вычитание). Эти операции носят название модульных, так как для их выполнения в СОК достаточно одного такта обработки численных значений, причем эта обработка происходит параллельно, и величина числа в каждом разряде не зависит от других разрядов.
Рассматриваемые ниже коды СОК могут быть использованы для корректирования ошибок, возникающих при передаче информации или выполнении арифметических операций.
Если в представление (1) добавить разряд а,1 + ь тогда получим:
А = («ь а2, ..., ая + 1), (5)
что соответствует некоторому числу из диапазона [О, Л),
где Л =Р ■ р„ + \.
Если представление (5) удовлетворяет условию:
0<А<— = Рп+1 (6)
Рп+1
то число А однозначно определяется и-разрядным представлением (аь а2, ..., с/.„ |). Поэтому разряд с основанием <5л+1 можно считать избыточным. Оценим корректирующие возможности кодов СОК с одним и двумя избыточными разрядами по основаниям д„+1
Введем понятие ошибки. Под одиночной ошибкой будем понимать искажение какой-либо одной цифры представления (5), причем искажение ограничивается лишь величиной основания. Под ^-кратной ошибкой будем понимать искажение к цифр представления (5).
Пусть А («!.«;•.....о. ) переданное сообщение. Для принятого
сообщения введем обозначение А = ш1, а2, ап, сс^. Сообщение назовем безошибочным, если О <А< Р„ \ . Если же А < Р„ \ , то соответствующее представление назовем ошибочным.
Если передано сообщение (5), то принятым может оказаться любое из Я сообщений. При этом Ря+1 из них будут приняты как безошибочные, К - Р„+1 - как ошибочные, тогда число Я - 1'п \ показывает суммарное количество обнаруживаемых возможных ошибок. Отношения К = —- может служить мерой обнаруживающих способностей кода СОК. При упорядоченной СОК, когда основания расположены по возрастанию их величины, т. е. рг р2< ... <р„+тогда числа /),. £>2, ..., £>„+] будут удовлетворять неравенствамЩ% >Ф2> ... >В„+\.
Наличие одного избыточного
основания д является достаточным для обнаружения всех одиночных ошибок. Необходимо отметить, что введение одного контрольного основания позволяет обнаруживать не только любую одиночную ошибку (в цифре по одному основанию) но и 95 % двойных (в цифрах по двум основаниям) [3].
Искажение цифры по одному какому-либо основанию превращает это число в неправильное и тем самым позволяет обнаруживать на-
личие искажения. Более того, существует только одно - единственное значение этой цифры, которое может превращать неправильное число в правильное. Введение только одного контрольного основания не позволяет в общем случае локализовать ошибочный разряд. Для корректной локализации ошибочного разряда и гарантированного исправления всех одиночных ошибок необходимо введение двух контрольных разрядов дп+ъ д„+2 [2, 3].
Таким образом, кодирование информации в СОК является устойчивым по отношению к возможным случайным искажениям и отказам, что позволяет при необходимости осуществлять коррекцию данных.
3. Обнаружение, локализация и коррекция ошибок
Для коррекции ошибок в машинном коде необходимо обнаружить, локализовать и исправить ошибку. Первый шаг в процедуре обнаружения ошибки - это проверка, является ли полученный в результате вычислений вектор кодовым словом. Если в результате какой-либо операции или при передаче числа оказалось, что получено число А > Р, то это говорит о том, что в полученном числе произошла ошибка. Таким образом, обнаружение одиночной ошибки основано на том факте, что любое искажение цифры по одному из оснований превращает это число в неправильное, т. е. число выходит за рабочий диапазон. Выполнение операции обнаружения ошибок может быть выполнено следующими методами:
1. Метод ортогональных базисов на основе китайской теоремы об остатках (КТО).
2. Метод перевода числа из СОК в обобщенную позиционную систему счисления (ОПСС).
3. Метод совместного использования КТО и ОПСС.
Для первого метода характерным является сравнение полученной кодовой комбинации с величиной рабочего диапазона. Наиболее распространенным вариантом реализации данного метода является перевод исследуемой на предмет наличия ошибки кодовой комбинации в ПСС с помощью системы ортогональных базисов и сравнения полученной величины с известной в ПСС величиной рабочего диапазона следующим образом [3].
Пусть получено число А = (аь а2, ..., ая+г), представленное в СОК с набором модулейр1, р2, ..., р„ ,, таких, чторг<р2< ...< р„ , и (/;,. р.) = 1,
где i ./и/'./ 1,/г+г Будем считать п модулей информационными, а г модулей контрольными.
1. Найдем рабочий R и полный Р диапазоны : R : р. р: ■■■ р„.
Р =pip2 •••р„+г•
Р
2. Обозначим величину = P¡ и вычислим ее.
3. Решим систему сравнений вида: />'. = 1', (mod />,).
4. Нахождение веса т7 базисов: m, е Z : • Д = l(mod /?,).
5. Вычисление ортогональных базисов B¡системы: /i, = я?,
Pi-
п
6. Находится число Л в ПСС: А = £ а, • /i,(mod/').
/-i
7. Если < i?, то А - верное число, иначе число А получено с ошибкой.
Пример 3.1. Пусть задана система оснований СОК р\ = Ъ, р2=5, р3 = 1, р4= 17, причем /> . />;. /'; - информационные модули, а р4- контрольный, и число Л = (2, 3, 1, 13), тогда:
1. Полный диапазон Р = Ъ-51Л1 = 1785, а рабочий диапазон R = 3-5-7 = 105.
2. Рг = 595,Л = 357,Р3 = 255,Р4= 105.
3. Д = 1,^ = 2,^ = 3,^ = 3.
4. mi = \,т2 = 3, тъ = 5, тл = 6.
5. Л, = 595, £2 = 1071, В3 = 1275, 54 = 630.
6. 1 = (2 • 595 + 3 • 1071 + 1 • 1275 + 13 • 630 (mod 1785) = 1373.
7. R = 105, т. е. А > R, следовательно, (2, 3, 1, 13) - представление числа, содержащее ошибку.
Данный метод является наиболее широко используемым. Он достаточно прост в реализации, однако требует больших вычислительных ресурсов, так как необходимо проводить множество дополнительных вычислений.
Второй метод обнаружения ошибок основывается на операции перевода числа из СОК в ОПСС. Число А = (аь а2. ..., ая+г) в ОПСС может быть представлено в виде:
A=cix + а2р\ + а3ргр2 + ... + а„р}р: ■ ■ ■ рт (7)
где а, есть цифры числа А, определяемые по формулам:
ах = a, (mod рг),
а2 = (а2 - а,) • с12(modр2),
аъ = ((а3 — Oj) • С]з — о2)" c23(mod ръ),
an+r = ((•••(«„+, -aj-cln+r -...-ап+г_х)-сп+г_1п+г(то&ръ).
Константы с,, являются мультипликативными обратными величинами для /;, по модулю р, при всех
1 < / <j < п + г, т.е. Су ■ Pi = 1 (mod/?,).
Если в полученном представлении числа Л = [аь а2, ..., ая+,.] цифры по всем контрольным основаниям рп , (/ =1, г) равны нулю, то представление числа А в СОК безошибочно, иначе была допущена ошибка. Это утверждение основано на следующей теореме [3].
Теорема 3.1. Пусть аь а2. ..., а„ ,. (где п - число информационных оснований системы, а г- число избыточных оснований) являются числами упорядоченной ОПСС, т.е. Р\ < р2< ..., р„ ,. тогда Аопсс лежит в диапазоне разрешенных значений, только если все избыточные цифры ОПСС являются нулевыми:
ап+\ = Яя+2 = ••• = an+r = (9)
Пример 3.2. Пусть задана система оснований СОК рг = 2,р2 = 3, ръ = 5. р4 = 7. = 1. причемр!,р2,рз - информационные модули, ap4,ps ~ контрольные, и число А (1.2.3.5.5). Переведем его в ОПСС. Вычислим константы с„:
= 3- С
35
' 3
= 5;
= 6; с25 =
— 4; с35 —
3;
= 9: с45 =
Далее, пользуясь формулами (8), получаем:
ах = 1(тос12) = 1,
а2 = (2 -1) ■ 2(тос13) = 2,
о, =((3-1)-3-2)-2(пкк15) = 3,
а4 = (((5-1)-4-2)-5-3)-3(то<17) = 5,
ап+г = ((((^ -1) • 6 - 2) • 4 - 3) • 9 - 5) ■ 8(то<111) = 0.
Представление числа А (1. 2. 3. 5. 5) в ОПСС имеет вид: А = [1, 2, 3, 5, 0]. Так как а4 ф 0, то, согласно формуле (9), представление числа А в СОК неверно.
Достоинство этого метода заключается в том, что если решаемая задача состоит только в установлении факта возникновения ошибок, то при неравенстве нулю любой разрядной цифры процесс перевода прекращается. Это позволяет сократить объем вычислений, требуемый для обнаружения ошибок, что невозможно при использовании метода, основанного на использовании ортогональных векторов. Однако для локализации и исправления ошибок этот метод является неэффективным [3].
Для третьего метода сначала необходимо вычислить матрицу разложения ортогональных базисов:
В =
\Ьт
О
пп ;
(10)
в ОПСС по формуле (7):
4
с
Д = К + ъп Р\ + ь,2 № + ••• + К Р\Р-г" Рп с1:1)
Коррекция ошибок при передаче и обработке информации..
где Ь„, /, / = 1,2, ..., п - коэффициенты ОГТСС. Далее, по исходному представлению числа
А = (аь а;, ..., о.,..,.) в СОК вычисляем коэффициенты ОПСС о„ согласно следующему алгоритму.
Цифры а, в представлении ОПСС получаются сумми-
рованием по модулюр, всех произведений а,Ь, и переносом, генерируемом при формировании а, . Перенос генерируется как число раз, когда сумма цифр в ОПСС переполняется по модулю р,. Этот процесс используется для формирования цифр ат. Последний перенос т, генерируемый при получении последней цифры числа в ОПС а„ представляет собой абсолютную величину т ■ ргрп... рп или тР, и поэтому он отбрасывается.
Если в полученном представлении числа цифры по всем контрольным основаниям равны нулю, согласно условию (9), то представление числа А в СОК безошибочно, иначе была допущена ошибка.
Пример 3.3. Пусть задана система оснований СОК: р1=1,р2 = Ъ,р3 =
5,р4 = 1 ,р5 = 1, причемр\,р2,ръ ~ информационные модули, ар4,р5 - контрольные, и число А = ( 1,1,4, 0, 7). Тогда полный диапазон Р = 2-3-5-7-11 =2310и ортогональные базисы системы:
В, = 1155, В2 = 1540, В3 = 1386, В4 = 330, В5 = 210.
В этом случае матрица разложения ортогональных базисов в ОПСС вида (10) по формуле (11) будет иметь вид:
V
'112 3 5 0 2 12 7 0 0 14 6 0 0 0 4 1 0 0 0 0 1
л
/
(12)
Теперь переведем число А в ОПСС. Процесс перевода представлен в табл. 1.
Таблица 1. Перевод числа А в ОПСС
Вычеты числа Модули
по модулю р, р: = 2 Р2 = 3 рз = 5 Р4 = 7 р6 = 11
1 1 1 2 3 5
1 0 2 1 2 7
4 0 0 4 16 24
0 0 0 0 0 0
7 0 0 0 0 7
Коэффициенты а, = 1 32 = 0 Зз = 3 31 = 4 35 = 2
По результатам вычислений мы можем заключить, что представление числа ./4 = (1, 1, 4, 0, 7) ошибочно, так как условие (9) не выполняется, т.е.й4^0иа5 Ф 0.
Достоинство этого метода в том, что использование его для локализации и исправления ошибок позволяет значительно уменьшить количество требуемых вычислительных ресурсов. А именно данный метод предоставляет значительно больше информации об ошибках, что в дальнейшем позволяет сократить количество необходимых процедур перевода числа из СОК в ОПСС.
После обнаружения ошибки ее необходимо локализовать, т. е. найти основание системы, по которому была допущена ошибка. В настоящее время известно два пути локализации ошибок, используемых при передаче и обработке информации, представленной в СОК:
1. Метод проекций.
2. Метод синдромного декодирования
Метод проекций широко используется для локализации ошибок [5]. Проекцией числа А = (аь аь ..., а„+,) по основанию р(. называется число Аи полученное из А вычеркиванием соответствующего остатка а,. Локализация данным методом происходит следующим образом. По исходному представлению числа в СОК вычисляем коэффициенты ОПСС а,. Далее по каждому из модулей системы вычисляется соответствующая ему проекция Аь которая проверяется на правильность. При этом проекция, которая окажется правильным числом, укажет на модуль, по которому произошла ошибка.
Для исправления ошибки после определения основания, по которому произошла ошибка, необходимо определить цифры аъаъ..., а„+п представленные в СОК, по представлению числа А = [аьаь..., ая+г] в ОПСС и по основаниям pi,p},..., рп , из сравнений:
а, = ал mod /;,;
= ах + йрОу mod р\;
a„+r aJX +... + an+rQn+r mod pn+r.
Продемонстрируем принципы обнаружения, локализации и исправления ошибки в избыточной СОК с помощью метода проекций с помощью числового примера.
Пример 3.4. Пусть задана система оснований СОК: р =2,р2 = 3,р$ = 5,р4 = 7, причем а], р-: - информационные модули, а а3,р4 - контрольные, тогда полный диапазон будет равен: Р = 210, а рабочий равен: Р = 2 ■ 3 = 6. Допустим, правильный результат равен: а = (1, 0, 3, 3), а искаженный: А = (1, 1, 3, 3). Для определения ошибки вычислим коэффициенты ОПС а,:
модули: р1,р2,р3,р4 ах = 1 афп +аф12 + а,Д з -
Тогда А -
[1, 1, 2, 3,],
а2-\^> a2P2l +a2f322 + a2j323+a2fi24 —» [0, 2, 1, 2], «3 = 3 —» афъх + афгг + аъ(Згъ + аъръ4 —> [0, 0, 3,5], а4 = 3 a4fi4l + a4fi42 + а4(34Ъ + а4Р44 -> [0, 0, 3,5],
[1, 0, 2, 2].
Таким образом, число А в ОПС равно [1, 0, 2, 2]. Можно заметить, что А = щ + а2р\ + а3рх р2 + а4рг р2р3 + 1 + 0 + 12 + 60 = 73 вышло за пределы рабочего диапазона, так как 73 > 6. Для принятия решения о том, что число искаженное, необходимо проверить на равенство нулю коэффициенты а3 и а4. Итак, неравенства щ Ф 0 и а4 Ф 0 устанавливают тот факт, что
число А = [1, 0, 2, 2] - ошибочное. Вычислим проекции числа А^ полученные из А последовательным зачеркиванием цифр а, по основаниюр,.
По основаниюр\ = 2: для системы с основаниямир2 = З,р3 = 5,р4 = 7 вычислим ортогональные базисы в позиционной В]1) и обобщенной позиционной системах счисления Ь':
ВР = 70,ВР = 21,2?Р =15
и
6®=[1,3,4],й« = [0,2,1],^ = [0,0,1]. модули: 3,5,7
Тогда Д
а2= 1 -> [1,3,4] а3 = 3 —> [О,6,3] а4 = 3^.[0,0,3]
[1,4,4]
А1 =а2 + а33 + а415 = 1 + 12+60 = 73>6
По основаниюр2 = Ъ\ для системы с основаниямир- = 2, р3 = 5,р4 = 1 вычислим ортогональные базисы в позиционной В[2) и обобщенной позиционной системах счисления Ъ9]:
В12) =35,53(2) =56=50
Ь\2) = [1,2,3],632) = [0,3,5], = [0,0,5].
Тогда А2 =
модули: 2,5,7 а1 =1—> [1,2,3] а3 =3->[0,9,15] а4 = 3 [0,0,15]
[1,1, 0]
4 = а1+й32 + а410 = 1 + 2 + 0 = 3<6
По основанию р3 = 5: для системы с основаниями р} = 2, р2= 3. р4 = 7 вычислим ортогональные базисы в позиционной В)31 и обобщенной позиционной системах счисления 6'3):
В\Ъ) = 21,Д<3) = 28, Вф = 36
-[1,1,3],^ = [0,2,4],Ь? «[0,0,6]
модули: 2,3,7
Тогда Л =
щ= 1-> [1,1,3] а2 = 1 -» [0,2,4] а4 = 3 -> [0,0,4]
[1,0,5]
Л3=а,+а22 + а46 = 1 + 0 + 30=31>6
По основаниюрА = 7: для системы с основаниями /), = 2, р2 = 3, р3 = 5 вычислим ортогональные базисы в позиционной и обобщенной позиционной системах счисления />((4):
8,(4) =15,й<4' =10,бз(4) =6 йр =[1,1,2], Ь<4) =[0,2,1]Д(4) =[0,0,1].
модули: 2,3,5
Тогда
Л =
а1 = 1^[1,1,2] а2 = 1 —> [0,2,1] £*з = 3 [0,0,3]
[1,0,2]
Аа = а1+а22 + а36 = 1 + 0 + 12 = 13> 6.
Итак, все проекции числам, кроме А2, неправильны. Следовательно, ошибочной цифрой является цифра а2 = 1 по основанию р2 = 3 Проведем теперь исправление для проекции А2:
а2 = (1 + 1 • 2) тос! 3 = 0 тос! 3.
Правильная цифра по основанию р2 = 3 равна: а2 = 0. Метод проекций довольно прост. Однако и сам алгоритм определения ошибочной цифры, и последующее ее исправление
на основе метода проекций представляются малоэффективными и затратными с точки зрения практической реализации, так как вычисление каждой проекции требует выполнения операции восстановления числа из модулярного представления в двоичное и последующих вычислений над числами большой разрядности. Это вносит значительный вклад как в аппаратные затраты, так и в задержку работы устройства. Кроме того, такой метод подразумевает исправление лишь ошибочного остатка, а не всего числа, приводя к необходимости восстанавливать число с уже правильными значениями всех остатков. В итоге для локализации и исправления ошибки метод проекций требует п + 1 процедуру перевода числа из СОК в ОПСС [6].
Современной альтернативой методу проекций является метод син-дромного декодирования. В его основе лежит метод расширения системы оснований СОК. Суть метода синдромного декодирования заключается в следующем. Пусть в результате вычислений в СОК получено некоторое число А = (о.. о.:. ..., а,...,.). Для определения правильности числа А необходимо определить значения остатков |.'1|. , |Л|;. , |Л|„ по контрольным основаниям, которые представляют собой расширение системы оснований СОК.
Для этого нужно по известным остаткам аъ а2, ..., а„ и соответствующей матрице разложения ортогональных базисов, рассчитываемой по формуле (7), с помощью перевода числа А в ОПСС методом совместного использования СОК и ОПСС, вычислить аъ а:. ..., а„+г. Для того чтобы число А лежало в первоначальном диапазоне [О,/1], по условию (9), значения ая+1, апг2. ..., а„ , должны быть равны нулю, иначе значение числа А выходит за пределы динамического диапазона. Этот факт используется для нахождения \А\р . |/1| ,
Затем следует сравнить остатки а„ ,, ав+2, ..., «„+,. со значениями \л\ . .....по тем же модулям, но образованными уже в ходе вычислений над входными данными, аналогичными тем, в результате которых было получено само число А. Сравнение остатков по контрольным основаниям можно осуществить их вычитанием:
% = I «„+,■ -\АР„„ I л,+„ где / = 1, ..., г. (14)
Числа называются синдромами ошибки, т.е. они позволяют определить правильность результата вычислений в СОК. В пред-
положении, что в полученном числе А оказались искаженными не больше чем / остатков, для кода, имеющего минимальное расстояние <1тт = 21 + 1, можно сформулировать следующие свойства синдромов ошибки:
1. Если все значения синдромов равны нулю: Зг= ¿2 = ... = Si = 0, то ошибки не возникло, и вектор А является кодовым словом.
2. Если / значений синдромов (1 < / > /) не равны нулю, то ошибки произошли в соответствующих остатках по контрольным модулям, при этом вектор А является кодовым словом.
3. Если больше чем / значений синдромов не равны нулю, то произошла, по меньшей мере, одиночная ошибка в векторе А.
По численным значениям синдромов ошибок формируются константы ошибок таким образом, что при их сложении с информационными разрядами контролируемого числа А имевшая место ошибка в числе устраняется. В том случае, когда ошибка допущена по избыточному разряду, для ее исправления нужно вычесть величину ошибки из разряда, в котором она была допущена.
Далее, на основе рассматриваемых примеров будут представлены процессы коррекции ошибок по информационным и избыточным основаниям методом синдромного декодирования.
4. Примеры практического применения метода синдромного декодирования
Пусть задана система оснований СОК: рг =2,р2 = 3, р3 = 5, р4 = 7, р5= 1, причемр\,р2, р3 - информационные модули, ар4, р5 - контрольные. Тогда полный диапазон Р = 2 • 3 • 5 • 7 • 1 =2310и ортогональные базисы системы:
Вг = 1155, В2 = 1540, В3 = 1386, В4 = 330, В5 = 210.
В этом случае матрица разложения ортогональных базисов в ОПСС будет иметь вид аналогично (12):
'1 1 2 3 5" 0 2 12 7 0 0 1 4 6. 0 0 0 4 1 ^0 0 0 0 1,
Ошибки в СОК характеризуются глубиной Дош, определяемой величиной основания рь Глубина ошибки представляет собой разницу между правильной и искаженной цифрой по основанию />,. Поэтому в зависимости от того, прибавляется (Д+) либо вычитается (Д ) величина ошибки, рассмотрим два примера.
Пример 4.1. Пусть исходным числом является А = 17 = (1, 2, 2, 3, 6).
Допустим, что произошла ошибка по информационному основанию с прибавлением величины ошибки. Ошибочное число А имеет вид: А = (1, 2, 4, 3, 6). Проанализируем это число. Для этого рассмотрим перевод числа А из СОК в ОПСС, выполняемый с помощью метода расширения оснований, представленный в табл. 2.
Таблица 2. Перевод числа А в ОПСС с использованием метода расширения оснований СОК
Вычеты числа по модулю р, Модули
Р1 = 2 р2 = 3 р3 = 5 Р4 = 7 р5 = 11
1 112 3 5
2 0 4 2 4 14
4 0 0 4 16 24
А 7 0 0 0 аа7 А 7
А 11 0 0 0 0 А 11
Коэффициенты 1Н 24+4 А 7 ,_, ,_, а= 1 а2 = 2 а3 = 4 а4=24+4|й|7 а4= - —7 +43+14 + 14,
В табл. 2 вычислены коэффициенты числа А в ОПСС с помощью расширения модулей. В ходе табличных вычислений мы получаем:
п =24 +4 Л
24 + 4 \А\
а. = -
— +43 + 1,4 +\А\ .
I 17 I 111
Так как по условию (9) а4 = 0,
то
24 + 4\А\7=0,
1—1 24 3
\А\ = =
1 17 4 7 4
= |-6|7=1.
вию (9) а5 = 0,
Аналогичным образом вычисляем так как по усло-
24+4 А
то
—+ 43 + 1Л1 +\А\ =0,
I 17 I 1п
24 + 4-1 |—| |—|
откуда - — - + 43 + 1+=0, \А\ =1-48 =7.
Используя найденные остатки, определяем синдромы ошибки по формуле (14):
8г = |3-1|7 = 2, д2 =|б-7|п =10.
Основание и глубину ошибки найдем согласно [7], при этом будем использовать значения, противоположные синдромам ошибки, так как ошибка произошла с прибавлением величины ошибки.
Для основания р}:
Г\ п. °>
Р\ 2
2_ 15
= |-2-1|7=5,
10 2
1 2 1 1п 15 ■ ~3 и
-2-4 =3
7
7
5 фЗ.
Для основания ру
Н-1-Ц-ю."
Рг 3
2 1
10 7 5 7
_ I
4 Ф 10.
А-¿Г
10 ю
-11п=10'
Для основания р.:
гз , °>
Рз 5
|Лю|п = \~32-рЛ.
2 1
6 7 3 7
= |-Ь5|7=2,
10 5
~6~ 11 3 и
-5-4|п=2,
2-2-> л3, ? -|Я32|П -г.
Следовательно, ошибка произошла по основанию р3, при этом величина ошибки равна А+ = |г • = |2 • б|5 =2 Так как ошибка произошла с прибавлением величины ошибки, то для ее исправления эту же величину ошибки необходимо вычесть:
(0, 0, 0) - (0, 0, 2) = (0, 0, 3).
Согласно полученным результатам, синдромам ошибки ¿1 = 2 и ё2 = 10 соответствует константа ошибки (0, 0, 3).
Пример 4.2. Пусть исходным числом является А = 23 = (1, 2, 3, 2, 1).
Допустим, что произошла ошибка по информационному основанию с вычитанием величины ошибки. Ошибочное число А имеет вид: А = (1, 2, 0, 2, 1). Проанализируем это число. Для этого рассмотрим перевод числа А из СОК в ОПСС описанным выше способом. Процесс перевода числа А в ОПСС представлен в табл. 3.
Таблица 3. Перевод числа А в ОПСС с использованием метода расширения оснований СОК
Вычеты числа |д| Модули
по модулю р, Р1 = 2 Р2 = 3 рз = 5 р« = 7 Р5 = 11
1 1 1 2 3 5
2 0 4 2 4 14
0 0 0 0 0 0
А 7 0 0 0 4 А 7 А 7
А 11 0 0 0 0 А 11
Коэффициенты а, = 1 аг = 2 а3 = 0 8 + 4|А|7 Э5 8+4 А 1+1а+ Л + Л
7
откуда
В ходе табличных вычислений мы получаем:
8 + 4
а4 = 8 + 41 и а5 = а5=--
Так как а4 = 0, то 8 + 4
А
- + 19 +
+
А
и
7 = о>
А
\АЬ =
= || = |-2| = 5
+4-5
Аналогично вычисляем
8 + 4
то
откуда
7
8 + 4-5
+ 19 +
. Так как а5 = 0,
+ А =0,
+ 19 + 5+ 4 = 0, А - -281 = 5.
7 Ми I 1п 1 111
Используя найденные остатки, определяем синдромы ошибки: = |2-5|? = 4, ¿2 = 11-51,. = 7. Основание и глубину ошибки найдем согласно [7].
7
Для основания р<: 6
А 2
|Л,|7 = М17 =
15
= |4-1|7=4,
= М„=10>
4 # 10.
Для основания р^. Р% 3
6^4.
Для основания 6
з ,
Ръ 5
144, ^к'-т1,, =
4 2
10 7 57
= |2-3|7 = 6,
= |7-10|п=4,
= |2-5|?-3,
= |7"2| =3,
3 - 3 ^¡Лд^ =к2|„ - Л
Следовательно, ошибка произошла по основанию р3, при этом величина ошибки равна: А+|г 'Рз\Р} = |з • б| = 3. Так как ошибка произошла с вычитанием величины ошибки, то для ее исправления эту же величину необходимо прибавить:
(0, 0, 0) + (0, 0, 3) = (0, 0, 3)
Согласно полученным результатам, синдромам ошибки <5=4 и д2=7 соответствует константа ошибки (0, 0, 3).
Исходя из результатов, полученных в примере 1 и примере 2, мы можем заключить, что каждой константе ошибки соответствует два набора значений синдромов ошибки в зависимости от того, прибавляется или вычитается величина ошибки. Причем константы ошибок универсальны в том плане, что они не зависят от числа, а лишь от оснований системы.
Аналогичным образом можно вычислить остальные константы ошибок. Все возможные для используемого в данном разделе наборы оснований константы ошибок и соответствующие им синдромы ошибок приведены в табл. 4.
Таблица 4. Константы ошибок для СОК с основаниями
рх =2,р2 = З,р3 = 5, р4 = 1,р$ = 11
Ошибка по основанию р. 51, 52 Ошибка по основанию Р2 б:. 62 Ошибка по основанию рз б^, 62
Д. д_ Д д д д
(1, о, 0) 6, 7 1, 4 (0, 1, 0) 1, 2 3, 10 (0, 0, 1) 6, 6 4, 9
(0, 2, 0) 4, 1 6, 9 (0, 0, 2) 5, 1 3, 4
(0, 0, 3) 2, 10 4, 7
(0, 0, 4) 3, 2 1, 5
Далее рассмотрим наиболее общий случай, при котором была допущена ошибка по рабочему основанию системы для полноценной демонстрации метода синдромного декодирования.
Пример 4.3. Пусть исходным числом является: ^4 = 13 = (1, 1, 3, 6, 2).
Допустим, что произошла ошибка по информационному основанию, и ошибочное число А имеет вид: А = (1, 2, 3, 6, 2). Проанализируем это число. Процесс перевода числа А в ОПСС представлен в табл. 5.
Таблица 5. Перевод числа А в ОПСС с использованием метода расширения оснований СОК
Вычеты числа |д| Модули
по модулю р р, = 2 р2 = 3 рз = 5 Р4 = 7 р5 = 11
1 1 1 2 3 5
2 0 4 2 4 14
3 0 0 3 12 18
|Д|7 0 0 0 4^7 и
0 0 0 0
Коэффициенты а= 1 а2=2 а3=3 а4=20 + 4|Л|7 аб=20^4Й|7+37+1Д|7+|Д|1
откуда
откуда
В ходе табличных вычислений мы получаем:
ал = 20 + 4
20 + 4
и а, =
+ 37 +
А + Л
7
Так как а4 = 0, то 20 + 41А 7 = 0,
= |-12|7 = 2
Аналогично вычисляем \А ц. Так как а5 = 0, то
_ 20 6
=
4 7 4
20 + 4 Л
7 +37 + Л +
7 7
= 0,
20 + 4-2
+ 37 + 2 +
= 0,
= -43,, =1.
Используя найденные остатки, определяем синдромы ошибки: = |б - 2|7 = 4, ¿2 = |2 - 1|] = 1.
В соответствии с табл. 1 определяем, что величина ошибки: (0, 2, 0). Для исправления одиночной ошибки, допущенной по информационному основанию, необходимо сложить контролируемое число с найденной величиной ошибки:
1!
11
А = (1, 2, 3, 6, 4) + (0, 2, 0, 0, 0) = (1, 1, 3, 6, 2) А.
Таким образом, при допущении одиночных ошибок по информационным основаниям метод синдромного декодирования позволяет эффективно произвести их обнаружение, локализацию и исправление, так как использование синдромов ошибок позволяет уменьшить время коррекции ошибок. Это происходит в силу того, что задачи по обнаружению, локализации и исправлению ошибок выполняются одной общей процедурой.
Далее рассмотрим ситуацию, в которой была допущена ошибка по контрольному основанию системы.
Пример 4.4. Пусть исходным числом является: А = 13 = (1, 1, 3, 6, 2).
Допустим, произошла ошибка по избыточному основанию, и ошибочное число А имеет вид: А г = (1, 1, 3, 6, 4). Проанализируем это число. Процесс перевода числа А в ОПСС представлен в табл. 6.
Таблица 6. Перевод числа А в ОПСС с использованием метода расширения оснований СОК
Вычеты числа |д| Модули
по модулю р Р1 = 2 р2 = 3 рз = 5 Ра =7 РБ = 11
1 1 1 2 3 5
1 0 2 1 2 7
3 0 0 3 12 18
0 0 0 4^7 14
0 0 0 0 1*1«
Коэффициенты а1 = 1 а2 = 0 Эз=2 а,= 18+4|А|7 18+4 Д „п 1-н Щ = ——'+30 + 14+ |4
В ходе табличных вычислений мы получаем, что а4=18 + 4Ы
И
18 + 4Ц
а, =-^ + 30 + и +\А\
Так как а4 = 0, то 18 + 4 А 7 = 0,
= Н7 = 6.
1—1 18 4
\А\ =
1 17 ~4
Аналогично вычисляем \ А ,,: так как а5 = 0, то 18 + 4Й
откуда
7
18 + 4-6
-^ + 30 +
А
= 0,
+ 30 + 6 +
= 0,
и 1 111
Используя найденные остатки, определяем синдромы ошибки:
^|б-б|7 = 0,^|4-2|, = 2.
В данном случае один из вычисленных избыточных остатков не равен исходному. Это свидетельствует о том, что ошибка была допущена по контрольному основанию. Следовательно, вектор А является кодовым словом и не требует никаких исправлений.
Однако для дальнейшего использования информации необходимо исправить допущенную по контрольному основанию ошибку. Для этого нужно вычесть величину ошибки из разряда, в котором она была допущена.
А = (1, 1, 3, 6, 4) - (0, 0, 0, 0, 2) = (1, 1, 3, 6, 2) =А.
Таким образом, при допущении одиночных ошибок по контрольным основаниям метод синдромного декодирования также позволяет эффективно произвести их обнаружение, локализацию и исправление, так как использование синдромов ошибок позволяет уменьшить время коррекции ошибок. Это происходит в силу того, что задачи по обнаружению, локализации и исправлению ошибок выполняются одной общей процедурой.
7
Предложенные алгоритмы можно реализовать на избыточных нейронных сетях [8, 9].
5. Заключение
Развитый в данной статье метод позволяет корректировать одиночные ошибки, допущенные по информационным и контрольным основаниям системы, значительно эффективнее, нежели широко используемый метод проекций. Это происходит в силу того, что метод син-дромного декодирования, основанный на методе расширения оснований СОК, требует перевода числа в ОПСС лишь один раз. В то же время метод проекций требует п + 1 процедуру перевода числа из СОК в ОПСС Таким образом, выигрыш метода синдромного декодирования по сравнению с методом проекций составляет п процедур перевода числа из СОК в ОПСС.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Червяков Н.И., Галкина В.А., Стрекалов Ю.Ф., Лавриненко C.B. Архитектура адаптивной параллельно-конвейерной нейронной сети для коррекции ошибок в модулярных нейрокомпьютерных системах // Нейрокомпьютеры: разработка, применение. 2003. №6. С. 47-60.
2. Червяков Н.И., Сахнюк П.А., Шапошников A.B., Макоха А.Н. Нейрокомпьютеры в остаточных классах. М.: Радиотехника, 2003. 272 с.
3. Червяков Н.И., Сахнюк П.А., Шапошников A.B., Ряднов С.А. Модулярные параллельные вычислительные структуры нейропроцес-сорных систем. М.: Физматлит, 2003. 288 с.
4. Червяков Н.И. Методы и принципы построения модулярных нейрокомпьютеров // 50 лет модулярной арифметике: сборник трудов Юбилейной Международной научно-технической конференции. М,: Ангстрем, МИЭТ, 2006. С. 239-249.
5. Лавриненко C.B. Разработка отказоустойчивого мультинейропро-цессора цифровой обработки сигналов: дис. ... канд. техн. наук: 05.13.01. Ставрополь, 2008. 252 с.
6. Акушский И.Я., Юдицкий Д.И. Машинная арифметика в остаточных классах. М.: Советское радио, 1968. 440 с.
7. Амербаев В.М., Балака Е.С., Тельпухов Д.В., Соловьев P.A. Применение информационной избыточности для повышения надежности арифметического узла вычислительного элемента бимодульной арифметики // 1-я Международная конференция «Параллельная компьютерная алгебра и ее приложения в новых инфокоммуника-ционных системах - 2014»: сборник научных трудов. Ставрополь: Фабула, 2014. С. 347-358.
8. Червяков Н.И., Макоха А.Н., Сахнюк П.А. Дискретная математика. М.: Физматлит, 2005. 368 с.
9. Червяков Н.И., Шапошников A.B., Сахнюк П.А. Модель и структура нейронной сети для реализации арифметики системы остаточных классов // Нейрокомпьютеры: разработка, применение. 2001. № 10. С. 6-12.
ОБ АВТОРАХ Червяков Николай Иванович, доктор технических наук, профессор, заведующий кафедрой прикладной математики и математического моделирования Северо-Кавказского федерального университета.
Chervyakov Nikolay Ivanovich, doctor of Technical Sciences, Professor, Head of Department of the Applied Mathematics and Mathematical Modeling, North Caucasus Federal University. E-mail: [email protected]
Нагорнов Николай Николаевич, студент Северо-Кавказского федерального университета.
Nagornov Nikolay Nikolaevich, student in «Applied Mathematics and Informatics» North Caucasus Federal University. E-mail: [email protected]