Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги / Теория электрической связи. Помехоустойчивая передача данных в информационно-управляющих и телекоммуникационных системах модели, алгоритмы, структуры.pdf
Скачиваний:
12
Добавлен:
13.11.2023
Размер:
24.95 Mб
Скачать

6 . Обе части сравнения и модуль можно разделить на любой их об­ щий делитель, т. е. если а = 6 (mod р) и а = а\ d9 b = b\ d9 p = p ]- d, то а\ = bi(mod р\).

7. Если сравнение имеет место по нескольким модулям, то оно имеет место и по модулю, равному наименьшему общему кратному этих моду­

лей, т. е. если а = b(modр\р2...pi) и

 

/

(

i

П Pi = НОК(р1 р 2

...р ,), то а &Z> mod П Pi

1=1

V

1=1

Числа, сравнимые по модулю р, или равноостаточные числа, обра­ зуют классы чисел по модулю р. Любое число класса называется вычетом по модулю р по отношению ко всем числам того же класса. Числа одного класса, дающие по модулю р остаток г, имеют форму р q + г, и все выче­ ты одного класса получаются, когда q пробегает все целые числа. Очевид­ но, что числа сравнимы по mod р тогда и только тогда, когда они принад­ лежат одному и тому же классу вычетов по mod р.

Вычет, полученный при q = 0 и равный самому остатку г, называется наименьшим неотрицательным вычетом. Если из каждого класса вычетов по mod р взято по одному наименьшему неотрицательному вычету, то по­ лученная система чисел называется полной системой вычетов по mod р .

Число классов вычетов конечно и равно р: 0, 1,

р - 1. Нулевой класс вы­

четов называется идеалом.

 

Теорема Ферма: если р - простое число

и (а, р) = 1, то cF~ X =

= l(mod р).

 

Пример 9.1. (5,3) = 1, тогда 52= l(mod 3) и 34= l(mod 5).

В теории чисел широко используются и введенные выше (см. п. 5.1 «Алгебраическое введение») определения основных алгебраических поня­ тий и алгебраические структуры: группа, кольцо, поле, единичный и об­ ратный элементы и др., по отношению к числам.

9.2. Арифметические коды, использующие контроль по модулю простого числа

Рассмотрим арифметические коды, использующие числовой кон­ троль по модулю простого числа, получивший широкое распространение в вычислительных системах и в вычислительных устройствах систем пере­ дачи данных для контроля всех основных арифметических и логических операций. К их числу относятся: сложение, вычитание, умножение, логи­ ческое сложение (дизъюнкция), логическое умножение (конъюнкция), от­ рицание равнозначности (сложение по mod 2 ), инвертирование, операции сдвига разного рода (арифметического и логического сдвига влево-вправо,

циклического сдвига) [22,23,24,25]. Обобщенная структурная схема, реали­ зующая числовой контроль по модулю, приведена на рис. 9.1.

Рис. 9.1. Обобщенная структурнаясхемачислового контроля по модулю простогочисла

Суть контроля состоит в следующем. Обозначим основную контро­ лируемую операцию над операндами А и В через *, а вычеты операндов А и В через га и rhсоответственно: А = r„(mod р)\ В = гь (mod р).

Процесс образования вычета (остатка) называется сверткой числа. Параллельно с основной операцией * над операндами А и В в контролирующем устройстве выполняется определенная операция ® над операндами га и . Затем результат операции С сворачивается, и величина гс сравнивается с результатом г'с, полученным в контрольном устройстве.

Совпадение гс и свидетельствует о правильном выполнении операции. Учитывая, что разрядность вычета значительно меньше размерности операнда, можно ожидать, что суммарная сложность контролирующего устройства и устройств свертки окажется меньше сложности устройства,

дублирующего основное (контролируемое) устройство.

Объектами контроля являются устройства, реализующие названные выше операции: сумматоры, счетчики, сдвигатели, арифметические уст­ ройства и пр.

Приведем ряд математических операций над вычетами при числовом методе контроля основных операций по преобразованию информации в ЭВМ.

9.2.1. Контроль арифметических операций

Данный вид контроля основан на использовании известных из тео­ рии чисел тождеств сравнимости между собой суммы (произведения) чи­ сел с суммой (произведением) остатков этих же чисел по какому-либо мо­ дулю.

I Л

= 2>H(modp).

(9.1)

/=1

1=1

 

П Л

^ fl^ C m o d p )-

(9.2)

/=1

1=1

 

Таким образом, если в операции сложения (умножения) участвуют два числа А и В, а С есть результат операции сложения (умножения), то справедливы следующие правила:

{при контроле операции сложения}

 

Гс = (ra+r6)(mod р),

(9.3)

{при контроле операции умножения)

 

ГС= (ra-r6)(rnodp).

(9.4)

Пусть операция деления имеет вид

 

Z = У - W

X = ZY + W.

 

Y

 

 

Тогда при контроле операций деления

 

rx =

[(ryrz) + rw](modp)t

(9.5)

где гх, Гу, rz n r w- остатки от деления на модуль р делимого X , делителя У, частного Z и остатка Жсоответственно.

Пример 9.2. А = 7,В = 5,р = 3.

А= ra= I(mod 3); В = rb= 2 (mod 3);

С= Л + Я = 12 = rt.= 0(mod3); (ra = 1) + (г* = 2) = 3 = O(mod3);

C = A B = 7 • 5 = 35 = rc = 2(mod3); ra -rb = 1 2 = 2(mod3); С = Л - В = 2;

rt. s 2(mod 3);

(rfl- rb= 1 - 2 = -1 s 2(mod 3);

A = Z Y + W = 3

2 + 1 = 7 ;

s l(mod 3);

rw](mod 3 ) = [0 • 2

+ 1] = l(mod 3).

9.2.2. Контроль логических операций

Для контроля операций логического сложения С = A v В, логическо­ го умножения С = А & В и поразрядного сравнения С = А Ф В справедливы следующие контрольные соотношения:

|£ = (гв+ г*-г*Хm°d Р),

 

r&

= fa, + г*- rv)(mod p),

(9.6)

Ъ

=(ra+r6-2 r &)(modp).

Пример 73. Л = 101 = 5ю;

Z? = 010 = 2io;

p - 3 .

C = i4 VJ5 = 111 = 7 10; K O s K7io)*l(m od3);

A =ra = 2(mod 3);

В =

2 (mod 3); C = rc= l(mod 3);

r^ s 2 + 2 - r (101 & 0 1 0 ) m o d 3 = 2 + 2 - 0

= 4 s l(mod3);

таким образом, r(C) = .

 

 

 

С = Л & £ = 000; r(O = 0(mod3);

 

r i s 2 + 2 - r

(101 v 0 1 0 ) m od3 = 2 + 2 - l s=0(mod3);

таким образом, r(C) = .

 

 

 

С = Л 0 Д = 111 =7io=l(m od3);

r(C) s 1 (mod 3);

s 2 + 2 - 2r (101 & 010)modз = 4 = l(mod 3);

 

K Q = 'ф -

 

 

Для контроля операции инвертирования л-разрядного числа (при ко­

торой обращаются все разряды, включая знаковый)

А = (2я - 1) - А ис­

пользуется следующая зависимость:

 

 

 

Л s (re - ^ X modPX

(9-7)

где ге = (2 Л- 1 )(mod р).

_

 

 

Пример 9.4. А = 101 = 510; А = (7,0 = 111) -

101 = 010 = 210 = 2

(mod 3).

 

 

 

= [fa = 1)mod3 ~ fa = 2 )mod3] =

= 2 (mod 3).

В указанной выше литературе можно найти контрольные соотноше­ ния для различных видов сдвига влево и вправо.

9.2.3. Расчет эффективности метода контроля по модулю простого числа

Под эффективностью контроля по конкретному методу (например, в данном параграфе числовой контроль по модулю) понимается вероят­ ность обнаружения ошибок (/\>бн) в передаваемом или преобразуемом в ре­ зультате арифметической операции коде. Проведем конкретный расчет эффективности для числового контроля по модулю.

Будем считать, что ошибки в каждом из разрядов кода числа появ­ ляются независимо друг от друга и подчиняются биномиальному распре­ делению вероятностей. Тогда вероятность появления ошибоку-й кратности в л-разрядном числе

P j { \ - P ) n - J

(9.8)

Ы

где р - искажение одной цифры в двоичном числе. Тогда вероятность необнаружения ошибки

p„.o=1- />o6»= £ />o>)/,

'р .

(9.9)

;= 1

ч

J )

 

 

где Р(РИш0 /Р/) - условная вероятность пропуска ошибки оцениваемым ме­ тодом при условии, что ошибки у-й кратности появляются с вероятностью Pj = P(j\ л). Данная формула носит универсальный характер, т. е. справед­ лива для любого метода контроля.

P(PH'0 /Pj) является оценкой условной неэффективности метода по отношению к ошибкам кратности у, обозначается PMJJ) и является предме­ том анализа; тогда Рм ,0 (j) является оценкой эффективности метода и пока­ зывает долю обнаруживаемых ошибок кратностиу. Следовательно,

Л,н(/) + Л , о О) = 1

(9.10)

При анализе искажений считаем, что ошибки разных знаков равно­ вероятны и в |-м разряде двоичного позиционного числа равны ± 21. На рис. 9.2 приведена зависимость эффективности числового метода контроля по модулю для разных значений модулей.

Рис. 9.2. Зависимость условной вероятности обнаружения ошибок (Рмл) от их кратности (/) для разных модулей р

9.3.Обнаружение и исправление ошибок избыточным кодом

всистеме остаточных классов

Поиски новых методов переработки информации, которые позволи­ ли бы уменьшить время выполнения арифметических операций (по срав­ нению с представлением чисел в двоичной позиционной системе счисле­ ния) привели к созданию методов, работающих с числами, представлен­ ными в системе остаточных классов (СОК) [20,21,26].

9.3.1. Представление чисел и операций с числами в СОК. Способ перехода, основанный на предварительном переводе числа в ОПС

Зададим ряд положительных взаимно простых чисел Р\, рг,..., рп>ко­ торые назовем основаниями системы счисления в остаточных классах. Пусть р\< рг< <рп• Для представления числа А в выбранной СОК нахо­ дим совокупность наименьших остатков г, (z = 1,2, ..., л), таких, что А н г, (modр^ (z = 1 , 2 ,..., п).

Таким образом, каждое число будет однозначно представляться сво­

им набором остатков: А = (rj, rj,...,

, гп). Диапазон целых положитель­

ных чисел, представимых в СОК, ограничен числом

 

Р\ = Р\р2 -Р п -

(9.11)

Диапазон чисел [0, Р -1] будем называть рабочим. Все числа и ре­ зультаты, лежащие внутри рабочего диапазона, называются правильными, а вне его - неправильными.

Пример 9.5. Задано число А = 67юПредставим его в СОК по осно­

ваниям р\ = 3, р2

= 5, /?з = 7. Находим Р\ = 3 • 5 • 7 = 105. Так как А < Р ь то

оно правильное.

При этом r\ = l(mod 3), ri = 2(mod 5), r3 = 4(mod 7)

и /4 = (1,2, 4).

 

Правильные числа, представленные в СОК, можно складывать, вы­ читать и умножать поразрядно, выполняя операции по модулю и не учиты­ вая переносы от цифры одного основания к цифре другого [2 0 ].

Пример 9.6. А = 67ю = (1, 2, 4), В= 12ю= (0, 2, 5).

С = Л + Я = 7910 = (1,4,2); D = А - В = 55ю= (1,0, 6 ).

Результаты С и D лежат в рабочем диапазоне, и, следовательно, вы­ полненные операции являются правильными. Умножение же числа А и В при выбранном рабочем диапазоне недопустимо, т. к. А В> Р \.

Каждая цифра числа, представленного в СОК, кодируется в двоич­ ной системе счисления.

Пример 9.7. С = 79ю = (1,4, 2) = (001, 100,010).

Примем следующие обозначения. Число А, представленное в деся­ тичной позиционной системе, обозначим А = А\о; число А, представлен­

ное в СОК по п основаниям р\, p i,

ря, обозначим

{Л}=(а|, а 2,..., сс„);

число А, представленное

в обобщенной позиционной системе

(ОПС)

с основаниямиРиРг,

обозначим {Л0 пс}=(яь

• ••> ап)•

 

Рассмотрим два способа перехода от {А} к А, т. е. от числа, заданно­

го в СОК, к десятичному представлению числа.

 

 

Пусть {А} = (а,, а 2,..., а„) и {Л0 пс} = (аь

а„). Тогда

 

А = ец + а2р1 + аър1рг+

+ а„р1р2 ... Рп-\.

(9.12)

Таким образом, для перевода из СОК в ОПС необходимо последова­ тельно вычислить коэффициенты а\, а2, ..., а„ [2 0 ,2 1 ].

Правила вычисления коэффициентов:

а, = а , эд:(то<1 р ,)= |х |/)|;

 

а, = (а 2 - а , ) —

 

 

 

 

 

Р\

Р2

 

 

 

Г(а2 - а ,) — - а 21—

(9.13)

 

I

Р\

)Рг

 

=

(

И

 

1 1

 

...(а„

- а ,) -------•••- a n-i

------

 

 

 

Р\

 

) Рп- 1

 

 

 

 

 

Рп

 

Прежде чем привести пример перехода, поясним выполнение опера-

 

а

 

 

 

 

ции деления по модулю р : —

 

 

 

 

 

^

р

 

 

 

Деление можно заменить умножением

на обратную

мультиплика­

тивную величину Р, определяемую из сравнения: р Р = l(mod р), при условии (р, р) = 1. Таким образом, результат деления а означает, сколько

раз нужно взять р, чтобы получить остаток а по модулю р.

2

 

 

 

I3|5 =

М

- М , = 4 ;

1 -3

- 2

-1

= 2;

 

 

 

44

-1

=[(-1) 2 " |5 _ |(-1 ).з(5 -2 .

Пример 9.9. Пусть {А} = (1 ,3 ,6 , 2) и р х= 3, / ? 2 = 5,р3 = 7,р4 = И , то­ гда с учетом (9.13) вычислим коэффициенты представления {А} в ОПС:

Мопс} “ (1.4, 0, 0), тогда А - а\ + а^р\ + язР1/72 + аАРхРтРъ= 1+ 4*3 = 13. М} = 0 ,3 ,6 , 2) -> Мопс} =(1,4, 0 ,0 )-> /* = Л 10 = 13.

9.3.2. Способ перехода, основанный на использовании ортогональных базисов системы

Пусть задана система с основаниями р \, р г ,.--9р п>диапазон которой

р = й р , -

i’ = i

Всякое число А из диапазона [0, Р -1] единственным образом пред­ ставлено в СОК по выбранным взаимно простым основаниям: А = (а ь а 2, ,..., а я). Заданной системе оснований однозначно соответствует система ортогональных базисов Ви B2..< Д» таких, что величина числа А в позици­ онной системе счисления может быть представлена как

 

Л = Е аД (то< 1Р ),

(9.14)

 

1=1

 

или, что то же самое,

 

 

/=1

(9.15)

 

 

где га -

целое положительное число, показывающее, сколько раз диапазон

системы

Р был превзойден при переходе от представления числа в СОК

к его позиционному представлению через систему ортогональных базисов. Целое положительное число гА называют истинным рангом или просто рангом числа А [20].

В частном случае в качестве базисов системы могут быть выбраны ортогональные базисы В\ = (1,0,0,...0), Вг = (0,1,0,...0), ..., Вп= (0,0,0,...!).

Следовательно, они могут быть представлены в виде B-t = Ш: Р Vi е1,л,

Pi

где т, - целое положительное число, которое называется весом ортого­ нального базиса.

Причем /и, должно выбираться так, чтобы выполнялось следующее сравнение:

Ш% Р = 1 (m odp,).

(9-16)

Pi

 

Рассмотрим целесообразный способ вычисления mt. Введем обозна-

р

чение Pj= — . Пусть вычислили Р ,, тогда решаем сравнение

Pi

PiS&Amodpi). (9.17)

С учетом (9.16) и (9.17) т, определится как решение сравнения

mr bg=\ (modpg).

(9.18)

Учитывая сравнительную малость величин оснований для набора {pi}yможно составить таблицы решений сравнения (9.18), в которых по ве­ личине ^ находится соответствующее т/.

В работе [20] приведена подобная таблица для простых чисел до 6 4 . Для контроля вычисления ортогональных базисов воспользуемся

структурой базисов {Bt} , т. е.

В\ + Вг +...+Рл= (1,0,0,...0) + (0,1,0,...0) +...+ (0 ,0 ,0 ,...!) = (1,1,...!) = 1,

или

 

 

 

 

 

/=1

 

 

 

 

Пример

9.10. Пусть

А = 17 и р { = 2; р 2 = 3; р 3 = 5; р4 = 7. Тогда

{Л} =

(1,2,2,3),

диапазон

правильных

величин (рабочий

диапазон)

Р =2

3 x 5

7 = 210.

 

 

 

 

В2

 

Определим

ортогональные базисы

=

(1,0,0,0);

= (0,1,0,0);

Д3 = (0,0,1,0);

Я4 = (0,0,0,1). Для этого определим {Я,}.

 

 

 

 

 

Р\

,05;

 

W ;

 

 

 

 

 

2

 

 

3

 

 

 

 

 

Яз

^

 

Ра

1

 

 

Определим из (9.17) {5,}:

 

 

 

 

 

 

 

Рх =5j = l(mod2);P2 = &2 =l(mod3);

 

 

 

 

 

Я3 = 53 = 1(mod5); Я4 = 84 = 1 (mod7).

 

 

Обращаемся к таблице решений сравнения (9.18)

в работе [21]:

т.\ —\ \ т2 = 2; /и3 = 3; ш4= 4. Тогда

 

 

 

 

 

р .1

 

 

Р .2

 

Р .з

 

Р .4

Д,= — = 105;

Я2 = —

= 70; Я3 = —

= 126; Я4 = —

= 120.

 

Я1

 

 

Pi

 

Яз

 

Ра

 

Проверим контрольное соотношение (9.19):

105 + 70+ 126+ 120 = 421 s l(mod210).

Согласно (9.14) и (9.15) переход от {А} к А, т. е. к числу в десятич­ ной позиционной, системе таков:

А = 1 105 + 2 70 + 2 126 + 3 120- г • 210 = 8 5 7 -4 • 210 = 17,

т. е.

Xос,#,- = A (mod 210).

/= 1

9.4.Избыточные коды в СОК

9.4.1.Обнаружение арифметических ошибок избыточными кодами в СОК

Для того чтобы код, представленный в СОК, позволял обнаруживать и исправлять арифметические ошибки, необходимо ввести избыточность,

при этом справедливы все общие положения, сформулированные в главе 3. Основным методом построения избыточных СОК является расширение исходной системы за счет добавления модулей рт+], рт+ъ , /?„,+*, попарно простых между собой и с модулями первоначальной системы. Число А в расширенной системе будет иметь следующее представление:

где

{А}р= {а,, а 2, a n}w,

(9.20)

 

к

 

п

 

 

р = Н .р г >

P = P0 R;

R = П Pm+i;

т + к = п.

1=]

 

/=1

 

Число {An} принадлежит избыточному коду в СОК, если 0 < А < Р0. Диапазон Р называется полным диапазоном, а диапазон Р0, как отмечалось выше, - рабочим диапазоном. Система оснований p ]t р2, ...»рп называется упорядоченной, если/?,</?, + 1 (/ = 1, 2, ..., п - 1). В дальнейшем рассмат­ риваем СОК с упорядоченной системой оснований. По аналогии с ранее рассмотренными корректирующими кодами в позиционных системах счисления вводится понятие веса чисел, кодового расстояния между чис­ лами (метрика) и ошибки.

Вес W{A} числа {А} равен числу его ненулевых компонентов {а,}. Кодовое расстояние d между двумя числами {Ах} и {Аг} определяется чис­ лом компонентов (разрядов), в которых эти числа отличаются друг от дру­ га, т. е. равно весу их разности,

{A2}) = w(\{Al} - { A 2}\).

Вподразд. 9.5.1 при рассмотрении AN-кодов и (л, т, dA)-кодов дает­ ся несколько иное определение ряда введенных здесь понятий, в частности кодового веса, метрики.

Всилу свойства замкнутости кодового пространства минимальное расстояние dmin для избыточного кода в СОК равно минимальному весу его ненулевых векторов, т.к. расстояние между двумя любыми кодовыми сло­ вами равно весу некоторого третьего вектора, принадлежащего коду. Под однократной арифметической ошибкой числа, представленного в СОК, по­ нимают любую ошибку, искажающую только один компонент.

Под S'-кратной ошибкой понимают любые ошибки в s компонентах. Корректирующий код в СОК, как и избыточные коды в позиционных сис­ темах счисления, может обнаружить совокупность из г или менее ошибок,

если dmin = г + 1, и исправлять ошибки кратности S и меньше, если dmin = 2 S + 1. Корректирующий код в СОК имеет минимальное расстояние dm только в том случае, если произведение избыточных модулей (R) больше или равно произведению любых dmjn- l модулей расширенной сис­ темы, т.е.

где qj = 1 ,2 ,..., ft.

Поэтому число избыточных модулей должно быть не менее чем

^ m in “ * 1 , Т . е.

(9.22)

Так, для обнаружения однократной ошибки требуется один избыточ­ ный модуль = 1), а для исправления - два избыточных модуля = 2). Указанное граничное соотношение между числом избыточных разрядов и кратностью обнаруживаемых (г) и исправляемых (S) ошибок составляет одну из особенностей корректирующих кодов в СОК по сравнению с из­ быточными кодами в позиционных системах счисления. Вторая особен­ ность состоит в том, что существует несколько отличный от описанного способ построения корректирующего кода в СОК [26], при котором ис­ пользуется всего один избыточный модуль, равный R. Однако полученные таким образом коды имеют худшие свойства по сравнению с кодами, имеющими к избыточных оснований, произведение которых равно R.

Теорема 7.1. Пусть основанияр\,р2, •••,

 

i системы остаточных

классов удовлетворяют

условию

/?,•

< рт+\

i =

1, 2, ..., т и пусть

{/1}=(аьОС2,.-- ос,,

а„„ a„I+i)

-

правильное

число. Тогда число

{Л}= ( а 1, а 2.... a , = a /,...,am, a m+1), где / = 1, 2,

 

т, т+1, является не­

правильным.

Таким образом, установлен важнейший факт, определяющий воз­ можность построения избыточных кодов в СОК, обнаруживающих ошиб­ ки: любое искажение цифры по одному какому-либо разряду превращает это число в неправильное и тем самым позволяет обнаружить наличие ис­ кажения. Более того, существует только одно единственное значение этой цифры, которое превращает неправильное число в правильное.

Пример 9.11. Воспользуемся исходными данными примера 9.10. Введем контрольное основание ps = 11. Тогда полный диапазон Р = р хх х Pi' Ръ' Ра ' PS ~ 2 3 5 7 11 = 2310, а рабочий диапазон Ро=210. Опре­ делим по ранее примененной методике ортогональные базисы системы:

Вх= (1,0,0,0,0) =1155; В2 = (0,1,0,0,0) = 1540; Я3= (0,0,1,0,0) = 1386; ВА= (0,0,0,1,0) = 330; В5 = (0,0,0,0,1) = 210.

Пусть передано число {А} = (1,2,2,3,6) = 17. Вместо него принято число )= (1,2,2,5,6). Для обнаружения ошибки вычислим десятичное представление числа А и сравним его с рабочим диапазоном:

Л= 1-1155 +2-1540 +2-1386 +5-330 +6 * 2 1 0 -г -2310 =

=9917 - 9240 = 677 >210.

Так как А больше 210, оно является неправильным, т. е. ошибка об­ наружена. Данный пример иллюстрирует следующий алгоритм обнаруже­ ния ошибок:

1.Зафиксировать конец цепи модульных операций.

2.Произвести перевод числа из избыточного кода в СОК в число, представленное в десятичной позиционной системе счисления по модулю полного диапазона чисел Р. Данный пункт можно разбить на более мелкие пункты алгоритма, содержание которых обусловлено способом преобразо­

вания А —>А{ 0 («~» означает, что соответствующее число может быть ис­ кажено).

Вп. 9.1 подробно рассмотрены два способа такого преобразования.

3.Проверить попадание Al0 (mod/*) в рабочий диапазон (Р0)- Если

А1 0 <Р0, т о результат получен без искажений, иначе - результат вычислен с ошибкой.

Существует ряд других алгоритмов обнаружения арифметических ошибок избыточными кодами в СОК. Приведем еще один алгоритм:

1. Зафиксировать конец модульных операций.

2. Произвести перевод информационной части избыточного кода в СОК в число, представленное в десятичной системе счисления одним из способов, описанных в п. 7.1.

3. Свернуть информационную часть слова по контрольному основа­

нию (модулю) ртН и сформировать остаток <x'm+l.

4. Сравнить а '/и+1 с содержимым контрольной части слова а,и+|. Если

а \м+1 = а « + ь то ошибка отсутствует, иначе - при выполнении цепи мо­ дульных операций допущена ошибка.

Пример 9.12. В данном примере проиллюстрирован описанный ал­ горитм, причем при реализации п. 2 используется преобразование

{л}-+ А]0, основанное на предварительном переводе числа в ОПС Лопе • Пусть А = 13 и р\ = 2, рг = 3, р3 = 5, рл= 7, причем р и р2, р3 - инфор­

мационные основания (модули), а рл - контрольное (избыточное) основа­ ние. Тогда {А} = (1, 1, 3, 6). Представим информационную часть числа {Л}

в ОПС:

 

{Л}оПС= (Я|, Я2> Дз),

 

Д|= 1; *2=[(1-1)

V2]3 = 0; я3= [(3 - 1) *0,5 - 0) • 1/3]5= 1/3|5 = 2.

{Л}опс= (1» 0,2).

Л|о= 1+ 0 р\ + 2 • pi ■р 2= 13.

13 = 6(mod 7); a m+1= а 4= 6, а ш+, = а П|+, = 6 - ошибка отсутствует.

Пусть в числе {А} произошла ошибка в остатке а 3, т.е. {/4}= {1,1,2,б}.

^опс = ( й ,,а 2, а 3).

 

а , =1; а 2 =0;

а 3

=1.

Al0 = 1 + 1 2 3 = 7.

a m+i = а 4 = 0,

так

как А10

=1 = 0 (mod 7).

Итак, а 4 * а 4 (0*6), следовательно, ошибка обнаружена.

9.4.2.Исправление арифметических ошибок избыточными кодами в СОК

Существует ряд алгоритмов исправления ошибок операций преобра­ зования информации по каждому из взаимно простых модулей с использо­ ванием избыточных кодов, представленных в СОК.

В данном подразд. будут описаны два из них [20,21,26]. Введем не­ которые вспомогательные сведения. Назовем число {Л,}, полученное из {А} зачеркиванием цифры а{, проекцией числа {А} по основаниюр,. При­ водимые ниже теоремы доказаны в работе [20].

Теорема 9.2. Если в упорядоченной системе оснований задано пра­ вильное число {А} = (ось а 2, ...,а/} ...,а,„, a,„+i), то проекции этого числа по

всем основаниям совпадают, т. е.

 

А\ =А2 =... = Ai =... - Ат <

Р

.

 

Р т +1

Теорема 9.3. Если в упорядоченной системе оснований проекции числа {А} по всем основаниям совпадают, то число {А} правильное.

В ряде случаев по величинам проекций можно сделать выводы о правильности отдельных цифр.

Теорема 9.4. Если в упорядоченной системе оснований проекция

{Ai} числа {А} = (ой, а 2,

а/, ..., а да, а т+\) по основаниюр, удовлетворя­

ет условию

 

 

 

4 > — .

(9.23)

 

Р и н -1

 

то цифра а, правильная, если возможна только одиночная ошибка. Следствие: если (9.23) имеет место для всех / = 1,т , то ошибочна

цифра a wH

Теорема 9.5. Пусть в упорядоченной системе оснований число {А} = = (а,, а 2, ..., а„ ..., а„„ a w+i) удовлетворяет условию

Рт+\ Рj

тогда цифры а ь а 2, ..., OLJ по основаниям р и Pi* •••» Pj правильные, если возможна одиночная ошибка.

Введение только одного контрольного основания позволяет обнару­ жить не только любую одиночную ошибку, но и 95% двоичных (в цифрах по двум основаниям).

При этом следует отметить, что введение одного произвольного ос­ нования позволяет не только обнаружить, но и исправить большинство од­ нократных ошибок, хотя в общем случае для однозначной локализации и исправления одиночной ошибки, согласно (9.22), требуется два кон­ трольных основания: р,п+\ и рт+2. Кроме того, следует заметить, что сфор­ мулированные выше теоремы справедливы и для избыточных кодов в СОК с двумя контрольными основаниями.

Приведем первый алгоритм исправления ошибок для кодов с двумя контрольными основаниями [21]:

1.Зафиксировать конец модульных операций.

2.Найти проекции {Л,} результата {А} по всем основаниям р, (i = 1, 2, ..., т, т+1 ,т+2 )

3. Для каждой проекции {AJ произвести проверку попадания ее в рабочий диапазон

Р

Рт +1 * Р т + 2

4.Если проекции А, находятся внутри рабочего диапазона, то иска­ жения в результате отсутствуют.

5. Если для некоторого основания pj соблюдается условие Aj < Роу а для всех остальных оснований Л, > Р0, то ошибка в цифре а 7- (теоремы

9.4и 9.5).

6.При наличии ошибки цифру а у отбросить и произвести перевод

проекции {At} в число А в десятичной системе.

7. Свернуть по модулю pj число А и полученную цифру а ; записать

на место й 7*.

Пример 9.13. Пусть А - 13 и/?| = 2;р2 = 3;ру = 5; р4= 7;р5= 11. При­ чем /?i, ръ ру - информационные основания, а р4 и р5 - контрольные осно­

вания. Рабочий диапазон системы Р0

= р\ р2 • р3 = 30, а полный диапазон

системы Р = Р0 R = 30 • /?4 • р5 = 2310.

 

 

Правильный результат операции в СОК {А}

= (1, 1,3, 6, 2). Пусть

в результате искажения в цифре

получено

число

Для обнаружения арифметической ошибки вычислим величину А . В дан­ ном примере вычисляем Ахо с помощью перевода А в ОПС:

{л)-> {л}опс Л .

W onc = (al>a 2>fl3>a 4>fl5)- ах= 2; а2= 1; я3 = 4; а4= 4; а5 = 3.

Л = 2 + 1-2 + 4-2-3 + 4-2-3-5 + 3-2-3-5-7 = 778 > 30.

Данное неравенство устанавливает, что А неправильно.

В соответствии с алгоритмом дальнейшие шаги направлены на опре­ деление места и величины ошибки. Итак, вычислим проекции числа А :

f t }

- {1,3,6,2}.

 

 

с,=

1;а2 = 4 ;а 3= 0 ;а 4=0.

Й } о п с = (1*4.°»°)-

Ах = 30 < 30.

 

 

f t }

={2, 3,6,2}.

 

 

а| = 2 ;а2= 3;аз = 4 ;а4=5.

{ ^ 2 }опс =

3,4,5).

А2 = 398 > 30.

 

 

f t }

= {2, 1,6,2}.

 

 

О]= 2; о2 = 1; а3 = 5; а»= 5.

Л3 = 244 > 30.

f t } - {2, 1,3,2}.

а\ = 2; а2= 1;а3 = 4 ;л ,= 4. Л4 = 148 >30.

f t } = {2,1, 3.6}.

{^з}опс = (2>Ь 5).

W o n C = (2>l>4,4).

а, = 2;а2= 1; а3=4; а4= 5.

{^5 }опС = (2>^ >4,5).

А5 = 178 >30.

 

Итак, среди четырех проекций полученного числа А - А2, А3, Ал,

As, превышают рабочий диапазон 30, а Л, - меньше 30. Тогда, согласно п. 5 алгоритма, ошибочна цифра а , по основаниюр\ = 2.

Определим теперь в соответствии с шагами 6 и 7 алгоритма пра­ вильную величину цифры а ,. Так как в вычисленной проекции А\ оши­

бочная

цифра 5j не принимала участия, то согласно

теореме

9.2

А = А\

= = 13. Отыскиваем вычет числа 13 по модулю р\

= 2: 3 =

1 =

= ai(mod p\ = 2). Найденное значение цифры по основанию р\ и есть пра­ вильная цифра ар Таким образом, правильное число {А} = (1, I, 3, 6 , 2).

Рассмотрим второй алгоритм исправления ошибок [20]. В данном алгоритме при вычислении проекций числа {л} и переходе {л}-> А ис­ пользуются ортогональные базисы системы. Первые пять шагов второго алгоритма с точностью до способа вычисления проекций совпадают с опи­ санными выше пятью шагами первого алгоритма, в результате выполнения которых определено место ошибочной цифры полученного числа {/l}.

Опишем шестой шаг второго алгоритма:

6 . Определить правильную цифру полученного числа

{2 }={a1>a 2 ,...,a,-,...,am+1, a m+2}.

Пусть в принятом числе {Л} ошибочна цифра а,-, тогда правильное значение цифры а, находится из выражения

а,- -

а , + Pi • 0 + г ■р п+2

А

(9.24)

 

f»i Рп+ 2

Bi

 

Все обозначения,

использованные в (9.24), пояснялись

в под-

разд. 9.3.1.

Пример 9.14. Пусть дана система из шести взаимно простых основа­ ний: р\ = 2,р2 = 3,рз= 5,/?4= 7, / ? 5 = И ,р б= 13.

Основания р\, р2, ръ, Ра являются информационными, а pSi Рь - кон­ трольными. Таким образом, данный код является избыточным кодом, ис­

правляющим

однократную ошибку.

Рабочий

диапазон

системы

Р0

= 2-3-5-7 = 210, а полный диапазон Р = Р0- R = 2-3 5 7 \ М 3 = 30030.

 

Вычислим

ортогональные базисы

этой

системы.

В\= 15015,

В2

= 20020, Д3 = 6006, Ва = 25740, Д5 = 16380, В6 = 6930. Пусть результат

правильной операции А = (1, 2, 2, 3, 6 , 4) = 17 и пусть из-за сбоя (или отка­ за) аппаратуры число А исказилось и принято число А = (1, 2, 2, 3, 1, 4). Вычислим {/4} через ортогональные базисы:

А= 1-15015+ 2-20020+ 2-6006+ 3-25740+ 1-16380 +

+4-6930 - г-30030 = 8207 >210.

 

Наличие ошибки установлено.

 

 

Вычислим проекции числа А по каждому из оснований:

 

1.

Л, - по основанию р\

= 2. Для системы с основаниями р2 - Ъ

Р ъ ~

5; Ра =

7; р$ =

11; р6 = 13

вычислим ортогональные базисы:

В

= 5005;

= 6006;

В{'} = 10725; В™ = 1365; В™ = 6930. Тогда

А} = (2 , 2,3, 1,4) = 2-5005 + 2-6006+ 3-10725 + 1-1365 +

 

 

 

 

+ 4-6930 - г, -15015 = 8207 >210.

2.

Л2

-

по основанию р2

= 3. Для системы с основаниями р\ = 2;

р3 = = 5; /?4= 7; р5

= 11; р6= 13 вычислим значения ортогональных базисов:

Bt(2) =5005; Я3(2) = 6006; В(2) =5720; В(2) = 6370; Я<2) =6930. Тогда

 

Л2 = (1,2, 3, 1,4) = 2-5005 + 2-6006 + 3-5720 + 1-6370 +

 

 

 

 

+ 4-6930 - /у 10010 = 8207 >210.

3. А3

по основанию р3 = 5. Для системы с основаниями р\ = 2; р 2 = 3;

/?4 =

7;

ps

=

11;

/?6

=

13

вычислим ортогональные базисы:

Я,(3) =3003; Я<3) =2002; Д‘3) =1716; Я*3) =4368; В(2) =924. Тогда

 

 

=(1,2, 3 ,1 ,4 )=

1-3003+ 2-2002+ 3-1716 + 1-4368 +

 

 

 

 

+ 4-924 - гз-6006 = 2201 > 210.

Опуская аналогичные выкладки, приведем результаты вычислений

остальных проекций.

 

 

 

 

А4 = (1 ,2 ,2 , 1,4) = 3917>210;

^?5 =(1, 2, 2 , 3,4) = 17<210;

 

 

 

 

А6

=( 1, 2 , 2, 3,1)= 1277 >210.

Итак, все проекции числа >4, кроме Л5, неправильны. Следовательно, ошибочна цифра а 5 = 11 по основанию р 5= 11. Проведем исправление а 5, вычислив по (9.24) правильное значение

цифры а 5 для проекции As:

 

а 5 = 1 + 11-Q + 13)

8207

13

1365

Подводя итоги анализа возможностей обнаружения и исправления арифметических ошибок избыточными кодами в СОК, выделим основные достоинства:

1. Независимость разрядов числа друг от друга и возможность их не­ зависимой параллельной обработки.

2.Малоразрядность остатков, представляющих числа, что дает воз­ можность существенно уменьшить время выполнения арифметических операций.

3.Возможность эффективного исправления ошибок вычислений, возникающих из-за отказов и сбоев цифровых устройств.

</А)-разделим ы е

Основными недостатками использования непозиционных систем счис­ ления, к которым относится СОК, являются:

1.Вычислительная сложность перевода числа из СОК в позицион­ ную систему счисления.

2.Отсутствие простых признаков выхода результатов операций за пределы рабочего диапазона.

3.Необходимость использования вычислительных приемов при ра­ боте с дробными и отрицательными числами.

9.5.Обнаружение и исправление арифметических ошибок неразделимыми и разделимыми арифметическими кодами

других видов

В данном параграфе мы дадим краткую характеристику некоторых арифметических кодов из списка, приведенного выше, в частности исследуем AN-разделимые и неразделимые коды и (я, т ,

коды [21].

9.5.1. Основные определения

Арифметический вес W{N) произвольного целого числа N является одним из основных понятий в теории арифметических кодов и играет ту же роль, что и вес Хемминга в теории алгебраических кодов.

Число членов с ненулевыми коэффициентами в минимальном пред­ ставлении числа N называется арифметическим весом W(N) числа N.

Что такое минимальное представление числа? Пусть N в двоичной системе счисления представлено единственным образом:

N = ао2° + а{2х+

+ at2' +

/ = 0,1,2,

{0,1}.

Если разрешить коэффициентам в этом представлении принимать значения 0, 1 и -1, то целое число N может быть представлено в другом виде:

N = 602° + 6,2' +

+ Ы21 +

(9.25)

i = 0,1,2,...

6,

е {-1,0,+1}.

 

Пример 9.15. N = 15ю = (1111)2 = 23 + 22 + 21 + 2° и в то же время согласно (9.25) 15ю = 24 —2° Второе представление имеет меньшее число ненулевых коэффициентов.

Представление (9.25), имеющее наименьшее число ненулевых коэф­ фициентов, называется представлением с минимальным весом или мини­ мальным представлением. Не следует, однако, смешивать минимальное

представление с представлением в троичной системе счисления. Кроме то­ го, необходимо заметить, что минимальное представление неоднозначно.

Пример 9.16.43ю= 101011 = ЮОТОТ = 1 ОТОТ01, где через Т обозна­ чается символ -1.

Пример 9.17. Так как 15 = 24

- 2°, то арифметический вес (в даль­

нейшем в тексте просто вес) Щ 15)

= 2. Кодовым словом, соответствую­

щим этому числу с арифметическим

весом 2, является последовательность

1111, вес Хемминга которой равен 4.

В работе [26] представлен алгоритм нахождения минимального представления числа, исходящий из того, что:

1. Число разрядов в минимальном представлении числа, обычное двоичное представление которого имеет п разрядов, не превышает /2 + 1 .

^

^

Гп

2.

Вес двоичного л-разрядного числа не превышает

— +1.

Основные этапы алгоритма:

найти двоичное представление числа 3N;

вычесть из него N, получив представление числа 2N в алфавите {0, -1,+1};

сдвинув вправо на один разряд число 2 N, получить /1+ 1-разрядное минимальное представление числа N в алфавите (0,-1,+1}.

Пример 9.18. Пусть N = 15,0; 3N = 45,0 = (101101)2

(ЗЛ02-(Л02= _ 1 0 1 10 1

 

0 1111

(2Л02=

1 0 0 0 Т 0

Т(2JV)2=

ЮООТ

Далее сдвигаем на один разряд вправо Т(2Л0г, получим 10001 - ми­ нимальное представление 15,0. Обычное двоичное представление числа 15,о = (1111)г- Таким образом, арифметический вес числа 1510 = Щ\5) = 2.

Арифметическое расстояние между целыми числами N\ и N2 опреде­ ляется как арифметический вес абсолютного значения их разности и обо­ значается db(Nu W2).

d m . N2) = wtyv, - л ф

Введенное арифметическое расстояние является метрикой, т. к. удовлетворяет условиям рефлексивности, симметричности, неравенства треугольника.

Введенные выше арифметические расстояния и вес в теории ариф­ метических кодов аналогичны расстоянию и весу Хемминга, используе­ мыми в теории алгебраических кодов. Но введенная метрика лучше учи­ тывает специфику вычислительного процесса. Действительно, в арифме­ тических устройствах однократная ошибка в i-м разряде ± 21из-за перено­ са может привести к искажению нескольких последующих разрядов, т.е.

Соседние файлы в папке книги