Файл: Торгашев В.А. Система остаточных классов и надежность ЦВМ.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 21.07.2024

Просмотров: 121

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

С другой стороны, рассмотрим множество L, содержащее L целых чисел А, таких, что если какие-либо два числа А\ и Л2 при­ надлежат множеству L, то и любое целое число, лежащее между

А] и А2 , также принадлежит этому

множеству. Будем считать, что

в состав множества L обязательно входит нуль.

Как было показано в предыдущей главе, любое число из мно­

жества L можно представить в системе остаточных классов с об­

щим

основанием М=[р\, .... рт ],

если Ь ^.М . Каждому числу

A £ L ,

представленному в данной СОК, можно поставить в соответ­

ствие некоторый вектор Ж£Р, но обратное утверждение справедли­ во лишь в том случае, если M =L=P. При соблюдении этого усло­ вия будем говорить о б е з ы з б ы т о ч н о м представлении чисел в СОК.

Очевидно, что если основания системы остаточных классов не являются взаимно простыми, то представление чисел в такой СОК всегда избыточно, поскольку М < Р .

Для системы со взаимно простыми основаниями М=Р, и по­ этому вопрос об избыточности представления чисел зависит от со­ отношения между L и М. Степенью избыточности представления чисел в СОК назовем величину R = P/L. Избыточность представле­ ния чисел в СОК можно использовать для обнаружения и исправ­ ления ошибок, возникающих в процессе хранения, передачи пли пре­ образования информации.

Корректирующим кодом в системе остаточных классов назовем подмножество К множества Р, состоящее из L различных векторов

Ä, каждому из которых

соответствует одно

и

только

одно число

L. Поскольку множества К и L содержат одинаковое число эле­

ментов, каждому числу

А £ Ь соответствует

о д и н

и

т о л ь к о

один вектор А £ К . Векторы, принадлежащие

коду, будем

называть

также кодовыми словами.

 

 

 

 

 

Соответствие между векторами А £ Р и числами А £ L можно установить различными способами. Однако свойства кодов практи­ чески не зависят от выбора того или иного способа, а в основном определяются лишь числами L, М и Р. Поэтому в дальнейшем будем предполагать, что числу А = {а,, . . . , ат }уИ соответствует

вектор А = (о,, .. . , ат) в том и только том случае, если аі — а;

для любого і = 1, 2, ... , т. Следовательно, Л = {А }м .

В зависимости от соотношения между величинами L, М и Р в СОК все корректирующие коды можно разбить на три основных класса.

К первому классу относятся коды, соответствующие СОК со взаимно простыми основаниями. Эти коды наиболее пригодны для использования в ЦВМ, и поэтому им будет посвящена боль­ шая часть книги. Такие коды в дальнейшем будем называть ^-ко­ дами.

Кодам

второго и третьего классов

соответствуют отношения

L = M < P

и L<cM<P. В обоих случаях

основания системы оста­

точных классов не являются взаимно простыми. Первые из этих ко­ дов назовем L-кодами, а вторые — RL-кодами.

40


Пусть,

например, имеется СОК.

с основаниями

3,

4,

5. Если

1 = 12,

то

данной СОК. соответствует

R-код, у которого

Л1=Я=60;

R = 5.

Системе

остаточных классов

с

основаниями

3,

4,

6 соответ­

ствует L-код, у которого

L = M= 12;

Р = 72.

Наконец, системе с осно­

ваниями 3, 4, 5, 6 соответствует RL-код,

(L=12;

М= 60;

Р = 360).

Рассмотрим

теперь

некоторые

 

общие понятия,

характерные

для всех корректирующих кодов в СОК.

При оценке эффективности любого корректирующего кода не­ обходимо знать связь между избыточностью и возможностями об­ наруживать или исправлять ошибки. Для определения этих воз­

можностей чаще

всего

используют понятие м и м и м а л ь и о г о

р а с с т о я н и я

к о д а ,

т. е. наименьшего расстояния между дву­

мя любыми кодовыми словами. Расстоянием d между любыми двумя векторами Ä\ и >Т2 из множества Р назовем число компонент, в ко­ торых эти векторы отличаются друг от друга. Непосредственно из

определения

следуют такие

свойства

данного расстояния:

1)

d (Ä u

At) - d ( A t , Д,);

 

2)

d {Ai,

j4a) = 0 тогда

и только

тогда, когда At = А2\

Ң2 Л)

3)d (Ді, Л ) > 0;

4) d (Аі,

Ai) d (Ai, Аг) .

Расстояние,

удовлетворяющее перечисленным свойствам, часто

называют метрикой, а множество элементов, в котором задана мет­ рика, — метрическим пространством.

Величина расстояния между различными векторами множества Р изменяется в пределах от 1 до пі. Интересно отметить, что двум соседним числам А і и А2 (отличающимся на единицу) соответст­ вуют векторы Ä, и Я2, расстояние между которыми равно m для любой системы остаточных классов.

Определим операции сложения, вычитания и умножения век­ торов в пространстве Р так же, как определялись формальные мо­ дульные операции над числами, представленными в СОК (см. § 1.2). Те векторы, которым соответствуют числа, представленные в СОК, одновременно являются скалярными величинами. Таким образом, операция умножения вектора иа скаляр не отличается от умноже­ ния двух векторов. Каждому вектору из множества Р можно при­ своить определенный вес. Весом или весовой функцией W(Ä) век­ тора Я назовем число ненулевых компонент этого вектора.

Очевидно, что расстояние между двумя векторами равно весу

их разности, т. е.

 

d {At, A s) = W {Ai — Аг).

(2.2)

Приведем теперь несколько полезных свойств весовых функций,

которые

непосредственно вытекают из соотношений (2.1), опреде­

ляющих

метрику, и выражения (2.2):

 

 

w ( X +

Л ) <

W ( X ) + w (а,)\

(2.3)

 

W {А, ±

Л ) =

W { A 2± .4,);

(2.4)

41


W (Л) = W (—v4), где — А = 0 — .4;

(2.5)

У Й ^ К ш І п О Г ^ О Д Й ) ) .

(2 .6)

Понятия расстояния и веса, введенные выше, являются очень полезными при изучении корректирующих свойств кодов.

Предположим, что один из символов кодового слова Ä изменил свое значение в результате воздействия какой-либо помехи. Полу­ ченный в результате новый (искаженный) вектор Ä' находится на расстоянии, равном единице от вектора Л . Такую ошибку можно обнаружить лишь в том случае, если вектор Ä' не является кодо­ вым словом. Поэтому все кодовые слова должны быть удалены от вектора Ä иа расстояние, большее единицы. Чем больше расстояние между кодовыми словами, тем больше ошибок может обнаружи­ вать и исправлять такой код.

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

ветствующих

произвольным

I основаниям.

Однако

в некоторых

случаях при

рассмотрении Д-кодов будем

использовать

понятия

одиночной II г-кратной двоичных ошибок, понимая под ними иска­

жения

символом

двоичного

представления

остатков

а ь

. , ат .

Кроме

того,

будем

считать, что ошибки носят аддитивный

характер

и однозначно определяются вектором {Д}лг, вес которого равен крат­ ности ошибки. Искаженный вектор Ä' получается в результате сло­ жения (или вычитания) кодового слова и вектсра ошибки:

Л' = Л + Д.

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

Теорема 2.1.

Корректирующий код в СОК может обнаружить все совокуп­ ности из I или меньшего числа ошибок лишь в том случае, если

минимальное расстояние кода больше I, т.

е.

 

d min> l + l .

(2.7)

Доказательство. Пусть Д =

А' — /1 — вектор ошибки с весом

не превышающим I.

Но если А'

является кодовым словом (а именно

в этом случае мы не

сможем обнаружить

ошибки), то вес разно­

сти А' А не может быть меньше минимального расстояния кода,

т. е. должен быть больше, чем I. Следовательно, А' не может быть кодовым словом и условие (2.7) является достаточным для обна­ ружения ошибок с кратностью, не превышающей I.

Предположим теперь, что d min -< /. Тогда найдутся два таких

вектора, принадлежащих коду, разность которых Д = А' А имеет

вес, равный или меньший I. Но поскольку А' является кодовым

словом, подобное искажение вектора А нельзя обнаружить. Следо-

42


вательно, условие (2.7) является и необходимым. Таким образом, теорема доказана.

Теорема 2.2.

Корректирующий код в СОК может исправить все совокупности

из k или меньшего числа ошибок лишь в том случае, если

мини­

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

е.

2/е + 1.

(2.8)

Доказательство. Искажения в векторе И исправимы лишь в том

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

ров Д! и Д2, принадлежащих множеству Е, и любых двух кодо­

вых слов Аі и Л2 справедливо выражение:

+

(2.9)

Из условия (2.8) следует, что вес разности любых двух кодо­ вых слов не может быть меньше, чем 2k + 1. В то же время, в соответствии с формулой (2.3), вес разности любых двух векто­ ров ошибок, каждый из которых содержит не более k ненулевых компонент, ие может быть больше 2k0. Поэтому для любых кодо­

вых слов А і и И2, а также векторов ошибок Д, и Д2с весом, не

превышающим k, справедливо выражение W (И) — А^фѴК 2—Д,). Откуда непосредственно следует справедливость неравенства (2.5).

Докажем теперь необходимость выполнения условия (2.8) для коррекции /е-кратных ошибок. Если минимальное расстояние кода меньше, чем 2Л + 1, то найдутся, по крайней мере, два кодовых слова Ж\ и Лг, разность которых имеет вес, не превышающий 2k. Соответ­

ственно всегда можно найти два таких вектора ошибок Д, н Д2, что

А I — А2 Д[ — Д2.

Следовательно, условие (2.S) не выполняется и по значению искаженного вектора нельзя однозначно получить кодовое слово, что и требовалось доказать.

Из теорем 2.1 и 2.2 следует, что корректирующий код в СОК, исправляющий любые k ошибок и, кроме того, обнаруживающий

любые k

+ I

ошибок, дслжен

иметь минимальное расстояние, рав­

ное 2k +

1.

Таким образом,

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

копа, можно получить представление о его корректирующих , возможностях.

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

тельной части

ошибок более высокой

кратности по сравнению

■с кратностями,

определяемыми теоремами

2.1 и 2.2. Поэтому можно

43


считать, что минимальное расстояние кода

позволяет установить

лишь г а р а н т и р у е м ы й м и н и м у м

числа обнаруживаемых

или исправляемых ошибок. Минимальное расстояние кода можно определить, если известны веса кодовых слсв.

Теорема 2.3.

Минимальное расстояние корректирующего кода в системе остаточных классов равно минимальному весу ненулевых кодовых

слов, если множество

L

не содержит

чисел

противоположных

знаков.

 

 

 

 

 

 

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

словами Ä) и Я2 является

наименьшим для данного кода. Посколь­

ку числа Лі и А2 имеют

одинаковые знаки, должно выполняться

неравенство ІЛ,— Л2І < L. Поэтому одни из векторов

— Л2 либо

Л2— .41 является кодовым

словом, вес

которого

равен

d(Aь

Л"г),

т. е. минимальному расстоянию кода.

слов найдется

вектор

£3,

Допустим теперь,

что

среди кодовых

вес которого меньше минимального расстояния кода. Но тогда рас­ стояние между вектором Л3 и нулевым кодовым словом окажется меньше минимального, чего, естественно, быть не может. Следова­ тельно, теорема доказана.

Если множество L содержит числа разных знаков, то мини­ мальное расстояние кода может быть меньше минимального веса кодовых слов. Пусть множество L содержит L\ отрицательных чи­

сел. Прибавим к

каждому

кодовому слову

вектор

{Іі}лг.

Получим

новый

код с

прежним

минимальным расстоянием

(так

как

+ £,) — (Л2 +

£|) = (Я і — і?2),

но

теперь

уже удовлетворяющий

условию

теоремы

2.3. Определив

для

этого

кода

значение

мини­

мального веса, тем самым найдем минимальное расстояние исход­ ного кода.

Ограничения, налагаемые теоремой 2.3 на множество L, не от­ носятся к /.-кодам, так как у этих кодов в отличие от двух других корректирующих кодов в СОК сумма, разность и произведение лю­ бых кодовых слов обязательно являются кодовыми словами.

2.2. КОРРЕКТИРУЮЩИЕ Д-КОДЫ

Как следует из предыдущего раздела, /?-ко.дом называется та­ кой корректирующий код, векторам которого соответствуют числа, представленные в СОК со взаимно простыми основаниями. Эти коды могут иметь любое минимальное расстояние в зависимости от сте­ пени избыточности, причем, как следует из приведенной ниже теоремы, для любой заданной СОК величина R однозначно опре­ деляет корректирующие возможности кода.

Теорема 2.4.

Корректирующий R-код имеет минимальное расстояние d в том

и только том случае,

если

степень

избыточности R

не меньше

произведения любых d 1 оснований заданной СОК.'

 

д - і

 

 

 

 

R > W

pq.-

г Д е Чі =

1 . 2 , . . . , И .

( 2 . 1 0 )

/= 1

J

 

 

 

44