Файл: Торгашев В.А. Система остаточных классов и надежность ЦВМ.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 21.07.2024
Просмотров: 128
Скачиваний: 0
Следовательно, вектор /1 может иметь d ненулевых компо нент, если по меньшей мере d оснований СОК содержат делители,
равные g ^ 1. |
Поэтому произведение |
оснований |
р 1у... ,рт должно |
||
делиться на |
^ß/ |
и |
ß1 |
||
величину gt |
t . |
по, поскольку gt l |
является произволъ' |
ным делителем основания М, можно утверждать, что произведение
оснований СОК должно делиться на величину М а = (g i'g j3. ■•
Однако по определению /.-кода R = PjM , так как L = М. Следо вательно, у L-кода с минимальным расстоянием d величина степени
избыточности обязательно делится |
на M d~ *. Очевидно, минималь |
ным значением, удовлетворяющим |
этому условию, является R =<* |
= Md
Достаточность условия теоремы следует из того, что никакое кодовое слово не может иметь вес, меньший чем вес векторов, со ответствующих числам вида А = M/gu так как эти числа содержат максимально возможное число делителей основания М.
Таким образом, явно нецелесообразно применять корректирую щие /.-коды для обнаружения или исправления таких ошибок, ко торым с равной вероятностью соответствуют произвольные искаже ния символов СОК. Сднако если ограничить класс возможных ошибок в отдельных символах, то возможности L-кодов рас ширяются.
Как известно, любой линейный корректирующий код позволяет обнаруживать все ошибки, не являющиеся кодовыми словами. Если степень избыточности равна R, то доля ошибок, обнаруживаемых кодом, равна (R — 1)//?.
Критерием, позволяющим определить, относится ли некоторый вектор Л к кодовым словам, может служить условие леммы 1.1. Если существует хотя бы одна пара символов ctj и а3вектора Л,
такая, что разность а.і — а, |
не делится на наибольший общий дели |
тель оснований рі и р3, то |
вектор Л не является кодовым словом, |
что свидетельствует о наличии ошибки. Поэтому искажение симво ла, соответствующего основанию р,-, может быть обнаружено лишь в том случае, если это основание имеет хотя бы один общий дели
тель с другими |
модулями.. |
|
общий делитель |
оснований |
р,- |
Обозначим: |
dyj — наибольший |
||||
и pp, di = [du, |
..., d,m] |
при i ф |
j. Очевидно, что |
di также |
яв |
ляется делителем основания р,-. Если каждый из модулей р,- имеет
делитель di, |
не равный степени двойки, то такой корректирующий |
L-код может |
обнаруживать любые одиночные ошибки в двоичных |
представлениях остатков а,, ..., ат .
Для того чтобы исправить ошибку, соответствующую некоторо му модулю рі, необходимо сначала определить номер (і) основания и далее восстановить правильное значение искаженного символа. Номер искаженного символа можно определить, если каждое из оснований рі имеет общие делители (некратные величине ошибки)
с двумя другими модулями СОК.
Предположим, что основания pi,,pj,ph являются попарно непро стыми числами. Для любого вектора А = (<і|, ..., <xm) вычислим разность остатков
50
<Ч] = 1“І—aj \ d n ’ |
“ІА = 1“ г —“Aid, ; |
aj k = Iaj — |
Jk |
l) |
lit |
|
что позволит определить место ошибки и отчасти ее величину. Если все три разности равны нулю, то ошибки либо нет, либо она кратна каждому из делителей d/y, d ik, d jk. Пусть a/у =^= 0; а1кф0', яуА= 0 .
Тогда ошибка произошла в модуле р/ и реличина ее определяется значениями а ц и аік с точностью до слагаемых, кратных [cf/у, cf/*].
Для однозначного определения величины ошибки Да/ необходимо, чтобы различным комбинациям остатков a/у и аік соответствовали
различные значения ошибок Вместо определения величины ошибки можно сразу вычислить
истинное значение искаженного остатка, если в сокращенной за счет исключения основания р/ системе остаточных классов можно одно значно представить число.
Рассмотренный выше корректирующий код позволяет не. только исправлять большую часть одиночных ошибок, но и обнаруживать
двойные ошибки. |
Если |
только одна из величин |
ац, |
ац,, |
сць не |
равна нулю или |
же |
все три являются ненулевыми, |
то |
можно |
утверждать, что произошла двойная ошибка.
Допустим, что все основания СОК можно разбить на несколько групп таким образом, чтобы модули, входящие в одну группу, не имели общих делителей с модулями, относящимися к другим груп
пам. Каждую из |
таких групп |
можно рассматривать |
как |
независи |
мый корректирующий код. |
|
то |
степень |
|
Если каждая из групп состоит из двух модулей, |
||||
избыточности кода |
определяется |
выражением |
|
|
-где 21=tn. |
R = d td3. . |
= d3di . . .d3l> |
|
|
|
|
|
|
Для того чтобы код мог обнаруживать любую одну двоичную ошибку в каждой паре модулей, делители должны быть нечетными целыми числами.
Рассмотрим теперь примеры корректирующих L-кодов, причем для оценки их избыточности введем еще одну характеристику, ко торую назовем коэффициентом избыточности:
Км = (logä P)/(log2 L).
Пример 2.1. Пусть задана система остаточных классов с осно ваниями:
р, = |
13-3 = |
39; |
р 3 = 11-5 = 55; |
р5 = |
2-7 = |
14; |
рг = |
3-3 = |
9; |
р4 = 5-5 = 25; |
р 6 = |
7-7 = |
49. |
Тогда корректирующий код имеет следующие характеристики:
R = 3-5-7 = 105; L = 2-32-5а- 7 М Ы З « 3 1 0 6; 1<н = 1,4.
Данный І-код позволяет обнаруживать любые одиночные ошиб ки в двоичных представлениях остатков а ь ..., а6, а также двойные и тройные двоичные ошибки, которые относятся к различным груп пам (в общем случае кратность этих ошибок равна 0,5т). Кроме того, с помощью этого кода обнаруживаются любые ошибки, удовлетворяющие условию:
I Да/ — Да/+, \а^ |
0 , |
где і = 1, 3, 5. |
4* |
51 |
|
Пример 2.2. Рассмотрим систему остаточных классов, все моду ли которой имеют общий делитель, равный g.
Пусть |
g = |
3; |
/;, = 3-3 = 9; |
/)2 = 4 - 3 = І 2 |
; |
ра = 5- 3=15; |
|
= 7-3 = 21; |
рй = |
11-3 = 33; |
/»0 = 13-3 = 39; |
|
р1 = |
17-3 = 51. |
|
Тогда R = |
За = |
729; L = 4-За-5-7-11 ■13-17«3-10°; |
/<„ = |
1,6. |
Данный код позволяет обнаруживать не только одиночные ошибки, но и искажения максимум пяти двоичных разрядов, соот ветствующих различным основаниям СОК. Кроме того, с помощью этого кода обнаруживаются любые ошибки, удовлетворяющие условию
I Да; — Да/Із^О, где |
/ = 1, 2 ,..., т; i=f=j. |
Наконец, этот же код может указать место, а часто и исправить любую одиночную (двоичную) ошибку, а также довольно большое число двойных и тронных двоичных ошибок.
Таким образом, корректирующие возможности такого кода до вольно высоки, хотя минимальное расстояние d= 1, так как, на пример, число Lj3 соответствует кодовому слову, у которого лишь первая компонента является ненулевой и соответственно вес этого слова w — 1.
ляет |
Пример 2.3. Приведенный ниже корректирующий |
код |
позво |
||
уже однозначно определять |
не только м е с т о , |
ио |
и |
в е л и |
|
ч и н |
у одиночной ошибки или |
двух одиночных ошибок |
в |
разных |
группах, а также обнаруживать двойные ошибки в пределах груп
пы. Для этого кода рі = |
2-13 = 26; рг = 3-13 = |
39; рз = 5-13 = 65; |
|||
р4= 7 ■19= 163; Рб= 11 • 19= 209; р6= 17-19 = |
323. |
|
|||
Данный код |
обладает |
следующими |
характеристиками: R = |
||
= 13М92«6,Ы 0< ; |
Z- = |
2-3-5-7 - 11-13-17-19«9,6- ІО6; К„ = 1,9. |
|||
Эти примеры показывают, что /.-коды не так уж плохи, как |
|||||
могло бы показаться |
после |
знакомства |
с |
теоремой 2.6. К их |
несомненным достоинствам относится исключительно простая про цедура обнаружения, локализации места и в ряде случаев ■исправления ошибки (или ошибок) при относительно высоких кор ректирующих способностях.
Что касается недостатков, то здесь в первую очередь следует упомянуть тот факт, что /.-коды с приемлемой избыточностью не •позволяют исправлять, а порой и обнаруживать любые ошибки за данной кратности, даже одиночные. Кроме того, при использовании /.-кодов система остаточных классов, как правило, содержит до вольно большие по величине модули, что приводит к определенному усложнению арифметического устройства.
Наконец, большая избыточность L-кодов, естественно, ограничи вает сферу их применения такими устройствами, для которых ха рактерен высокий уровень помех.
Более эффективными могут оказаться смешанные RL-коды, ко торые соответствуют СОК с попарно непростыми основаниями при L < М. В этом случае, изменяя отношение М/L, можно получить любые минимальные расстояния, так же как в обычном Д-коде. Но, кроме того, появляется возможность обнаруживать и исправ лять значительное число ошибок более высокой кратности.
Пример 2.4. Добавив к системе остаточных классов, приведен ной в примере 2.2, еще один модуль р8= 19-3=57, получим кор
52
ректирующий |
RL-код с минимальным |
расстоянием |
d = |
2, |
для |
которого R = |
35-57 = 4,Ы С ; L « 3-105; 7И = 5,7-107; Кп = |
1,9. |
|||
Несмотря |
на небольшое минимальное |
расстояние, |
этот |
код |
мо |
жет обнаруживать, кроме любых одиночных, 95,96% ошибок произ вольной кратности. Кроме того, он может исправлять практически любые одиночные ошибки и часть ошибок с кратностью 2,3 и даже 4.
Читатель, наверное, уже обратил внимание на то, что основные свойства и возможности L и RL-кодов описываются скорее каче ственно, чем количественно. Дело в том, что насколько известно автору, до сих пор никто не занимался достаточно серьезным изуче-. кием свойств систем остаточных классов, основания которых не являются взаимно простыми числами. Поэтому изложенный в этом, разделе, а также в предыдущей главе материал, относящийся к та ким системам остаточных классов, следует рассматривать лишь как первый шаг в данном направлении.
Последующий материал книги будет посвящен исключительно- Я-кодам, поскольку их возможности к настоящему времени изучены, значительно лучше, и можно с большей уверенностью говорить- о целесообразности использования этих кодов для повышения на дежности ЦВМ.
Что же касается L и ЯА-кодов, то эта область еше ждет своих исследователей.
2.4. ОБНАРУЖЕНИЕ И ИСПРАВЛЕНИЕ ОШИБОК ПРИ ПОМОЩИ я-кодов
Для того чтобы выяснить, является ли некоторый вектор Ä ко довым словом Я-кода, необходимо определить величину соответ ствующего числа А. Если это число принадлежит множеству L, то
можно полагать |
(конечно, с определенной вероятностью), что оно |
|||
является неискаженным. Если же А не принадлежит множеству L, |
||||
то наверняка |
произошла ошибка. |
|
||
Лля сравнения величин А и L удобнее всего воспользоваться |
||||
позиционными |
|
характеристиками п,ѵ(Л). Если L = N, то любым |
||
кодовым |
словам |
соответствует только |
одно значение n N (A), рав |
|
ное нулю. При L = 2N кодовым словам могут соответствовать два |
||||
значения |
позиционной характеристики. |
Если А < 0, то n N(A) = |
||
= Я1— 1, а |
положительным числам соответствует нулевое значе |
|||
ние характеристики. |
главе, позиционные харак |
|||
Как |
было |
показано в предыдущей |
теристики ЯлДА) вычисляются в ходе выполнения любой немо дульной операции. Следовательно, попутно с выполнением любой такой операции осуществляется обнаружение ошибок. Если немо дульные операции встречаются в ходе решения задачи, достаточно часто, то нет необходимости вводить специальную операцию обна ружения ошибок, т. е. в данном случае для обнаружения ошибок
не потребуется добавочных затрат времени.
Для исправления ошибок необходимо прежде всего определить,
номера |
модулей, |
которым соответствуют искаженные |
символы. |
||
Один из |
способов |
локализации |
ошибок, |
предложенный |
в работе |
[2], заключается в |
следующем. |
Исключим |
из СОК основание р л |
и определим величину числа,-соответствующего вектору {Д}
53