Файл: Торгашев В.А. Система остаточных классов и надежность ЦВМ.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 21.07.2024
Просмотров: 135
Скачиваний: 1
Следствие 2.10.2. |
|
Если каждый из векторов |
и {"дг + 1}#, содержит |
не менее k + 1 не нулевых компонент, то в символах, соответ ствующих информационным основаниям, произошла по мень шей мере одна ошибка.
Приведем |
теперь пример |
коррекции ошибок |
Я-кодом |
с |
по |
||||||
мощью рассмотренных в этом параграфе методов. |
рі= 5 , |
Рг~1, |
|||||||||
Пример 2.5. Пусть |
задана СОК с |
основаниями: |
|||||||||
Рз=8, |
Р4=П, |
Рб=13, |
р6=17, |
Р7=19, |
Рв= 3, N =280, |
||||||
Ri = |
135567, |
Положим |
L = |
2N = |
560. |
Тогда |
минимальное |
рас |
|||
стояние кода |
равно |
5. |
При этом |
удовлетворяются |
условия |
|
тео |
||||
ремы |
2.8. |
|
|
|
|
|
|
|
|
|
|
Рассмотрим кодовое слово |
|
|
|
|
|
|
|||||
|
|
~ |
{ |
25°}д, = {0, 2, б, 3,1°, 5, 16, 2} ,Ѵ[, |
|
|
у которого в символах, соответствующих модулям рз и рт, произо шли ошибки Д а з = 4 ; Д<Х7=10. Тогда
|
|
{Л'}Л1 = { °,2 ,2 ,3 ,1(),5 ,7,2}Л[. |
|
|||||
Прежде всего определим |
позиционную характеристику |
|
||||||
|
|
|
{теуѵ}р, = {4, 5, 7,6, 0}*,. |
|
|
|||
Веса |
векторов |
(тсл^}р, н {л./ѵ + |
1}#, |
равны |
соответственно |
че* |
||
тырем |
и |
пяти, т. е. оба больше /г. Поэтому, |
по меньшей мере, |
|||||
одна ошибка произошла в информационном модуле. |
|
|||||||
Вычислим теперь вектор |
{8}д1= |
+ 2}^.: |
|
|||||
|
|
|
{6}я, ~ |
{6’ 7> 9. 8, 2j/?i. |
|
|
||
Далее |
проверим |
справедливость |
неравенства |
| Ь р / [ ^ < З р г , |
где |
і= 1, 2, 3.
Вданном случае величина б умножается только на информа ционные основания, так как нам заведомо известно, что если ошиб ка является одиночной, то, в соответствии со следствием 2.10.2, она
не может произойти в каком-либо из контрольных модулей.
Проверку данного неравенства |
выполним |
следующим образом. |
||
Вычислим величину [| ^PilpJPt] = |
V Если |
Б, > 3, |
то неравенство |
|
не выполняется, так как p^jpi > |
1,3. Если < |
2, то |
можно считать, |
|
что ошибка возникает в модуле p-t. Наконец, если |
6j = 2, то сле |
|||
дует определить знак числа |
|
— Зр,-. Итак: |
|
№. = {8,9,11,2,1}^;
{8і}/?,/п = {6>8- 4' !}/?,/и; {В7}^. = {9,1°, І2 ,16,2}^;
{В>}/?,/11 = {6>8>8>^Я ./П ’
№ , = {4. 4, 4,7,1}^;
= {°>°> 2>°}/?,/іг
59
Поскольку во всех трех случаях Б, > 3, можно утверждать, что
вкодовом слове произошла двойная ошибка.
Вобщем случае далее следует проверять справедливость не
равенств I Ърір] I < 3pipj, |
|
где /, |
j — |
і ф j. |
Однако мы |
|||||
можем |
заметить, |
что |
у |
вектора |
{®і}7?,/іі = {[68/11]}А,/п |
имеется |
||||
только |
одна |
ненулевая |
|
компонента, |
соответствующая |
модулю |
||||
р 1 = 19. Поэтому |
I 5 |
, = |
0 < |
2. Следовательно, |
можно утвер |
|||||
ждать, |
что ошибки произошли в основаниях р3 и р 1. |
|
|
|||||||
Для определения вектора ошибки воспользуемся формулой |
||||||||||
(2.22), |
учитывая |
гот |
факт, что модуль |
р7 является |
контрольным, |
|||||
т. е. Q = рз и |
I БQ |/?] = I 58 |^]/19. При этом |
|
|
|||||||
|
|
|
{Г°81/?1П9}лі = {4' 4' 4-4-4-4' 4' 1},,г |
|
|
|||||
|
|
|
{Л^/8}ді |
= {O’ °> 3. 2 , 9 , 1, 16, 2}и(; |
|
|
||||
|
|
|
{В^}лг = |
{0,0,0,8,10,4,17,2}лг |
|
|
{ - Д } . „ = (0,0, 4,0,0,0,9,0) 1(.
Прибавляя последнюю величину к вектору А', получим исходное кодовое слово:
{Л}іМ= {0,2,6,3,10,5,16,2}лГ
2.5. КОНТРОЛЬ И КОРРЕКЦИЯ АРИФМЕТИЧЕСКИХ ОПЕРАЦИИ В СОК
Все операции, выполняемые в ЦВМ над числами, представлен ными в СОК, можно разбить на три основные группы.
К первой группе относятся такие операции, при выполнении ко торых ошибка в одном модуле не влияет на значения остатков, со ответствующих другим основаниям системы. В эту группу входят модульные операции сложения, вычитания, умножения (без округле ния), а также операция пересылки чисел.
При выполнении операций второй группы ошибка в одном сим воле может распространяться и исказить символы, соответствующие другим основаниям СОК- К таким операциям можно отнести вычис ление позиционных характеристик, расширение системы основании, деление, умножение с округлением.
Наконец, к третьей группе относятся такие операции, результаты которых уже не являются числами, представленными в СОК. Такими операциями являются, например перевод числа из СОК в позицион ную систему счисления, определение знака, сравнение чисел по абсо лютной величине и т. д.
При выполнении операций второй и третьей групп приходится оце нивать величину чисел и, следовательно, вычислять их позиционные характеристики. Таким образом, появляется возможность практиче ски без дополнительных затрат времени и аппаратуры контролиро вать правильность выполнения этих операций, а также правильность исходных операндов.
Если над результатами операций, относящихся к первой группе, довольно часто выполняются операции немодульного типа, то нет
60
необходимости специально контролировать правильность выполнения каждой модульной операции, так как при этом не происходит рас пространения ошибок. В тех же случаях, когда в ЦВМ на протяже нии длительного времени выполняются только модульные операции, через определенные промежутки времени (зависящие от интенсивно сти помех) для проверки отсутствия искажений следует вычислять вектор {nw}R1. Если корректирующий код используется не только для обнаружения, но и для исправления ошибок, то при выборе интервала времени между отдельными проверками следует учиты
вать возможность |
распространения |
ошибок |
в |
некоторой группе |
|||||
чисел. |
|
|
|
|
|
|
|
..., Аа выпол |
|
Пусть, например, в ЦВМ над массивом чисел А і, |
|||||||||
няется |
одна |
из |
операций |
первой |
группы: |
С,-= |
Л,•-f-В, |
где |
|
£ = 1 , 2 ....... s. |
В |
является |
искаженным, то |
все |
числа Сі, . . . . |
Cs |
|||
Если |
число |
также окажутся искаженными. Поэтому, если правильность этих чи сел будет проверяться лишь в ходе дальнейших вычислений, то при дется довольно часто прибегать к коррекции ошибок. В результате возникает явление, эквивалентное резкому повышению интенсивности помех в аппаратуре, относящейся к определенному основанию.
Естественно, что такая ситуация является недопустимой. Поэто му проверку необходимо осуществлять всякий раз, когда возникает опасность распространения ошибок.
Результат выполнения какой-либо последовательности модуль ных операций может оказаться вне интервала L не только из-за воз действия помех, но также из-за ошибок программирования, приводя щих к переполнению разрядной сетки. Если ЦВМ оперирует толь ко с правильными дробями, то переполнение может произойти при
выполнении лишь операций сложения и вычитания. |
А |
п В |
из |
мно |
||||||||
Пусть |
С — сумма |
двух |
произвольных |
чисел |
||||||||
жества L, |
где L = |
2N. |
Если |
переполнение |
произошло |
при сложении |
||||||
положительных чисел, |
то я,ѵ (С )= |
1, а |
если |
это произошло |
при |
|||||||
сложении отрицательных чисел я N(C )= ftj —2. |
|
|
|
|
|
|||||||
Позиционная характеристика я,ѵ в общем случае может прини |
||||||||||||
мать Ri различных значений, два из которых |
(0 и ft, — 1) |
соответ |
||||||||||
ствуют истинным числам. Для любой избыточной |
СОК со |
взаимно |
||||||||||
простыми |
основаниями |
должно выполняться условие |
М > L, |
т. |
е. |
|||||||
Ri ^ 3. Но в этом |
случае ни 0, ни |
R t — 1 не |
могут |
равняться |
ми |
|||||||
единице, ни R, — 2. |
Следовательно, |
любой |
R-код позволяет обнару |
|||||||||
жить ошибки переполнения, а при |
Ri ^ |
4 (ft ^ |
2) |
выявить |
и |
их |
||||||
знаки. |
|
|
|
|
|
|
|
|
|
|
|
|
Если |
ft-код используется только для |
обнаружения ошибок, то |
нет особой необходимости различать ошибки, вызванные искажения ми отдельных символов числа или появлением переполнения, так как в обоих случаях приходится прекращать вычисления.
Код, исправляющий ошибки, должен отличать переполнение раз рядной сетки от искажений отдельных символов, которые он может исправить. Поэтому значениям позиционной характеристики я л- = 1 и Лк = Ri — 2 не должен соответствовать ни один вектор ошибки, вес которого не превосходит /г.
Нетрудно убедиться в том, что для любого ft-кода с минималь ным расстоянием d = 2k -j- 1 это условие всегда выполняется. Дей ствительно, если jtjv = 1, то неравенство (2.14) не выполняется ни
61
для каких Q, |
а при JVN= R I—2 левая часть неравенства обращает |
ся в нуль для |
любых Q. |
Рассмотрим теперь очень интересный эффект расширения кор ректирующих возможностей кода, возникающий при выполнении по следовательности модульных операции, когда результат предыдущей операции является операндом следующей.
Предположим, что при выполнении каком-либо операции данной последовательности получен ошибочный результат Я /, причем крат ность ошибки t > ( d — 1)/2.
Можно ли исправить такую ошибку? Подобный случаи рассмат ривался в § 2.2, где было показано, что ошибку можно исправить лишь в том случае, если в сфере радиуса t вокруг искаженного век тора не окажется ни одного кодового слова, кроме истинного. Если же в этой сфере окажется несколько кодовых слов, то у нас нет ос нований отдать предпочтение какому-либо из них.
Запомнив все слова, попавшие в данную сферу, перейдем к вы полнению следующей операции, одним из операндов которой являет ся наше искаженное число. Очевидно, что и у этой операции резуль тат Я2' будет ошибочным. Найдем теперь все кодовые слова, лежа щие в окрестности радиуса t от вектора Я /. Далее над каждым изкодовых слов, лежащих в окрестности Я /, проведем ту же операцию, что и со словом Я /, и результаты этих операций сравним со слова ми, лежащими в окрестности Я2'. Если только о д н и из полученных результатов совпадает с каким-либо словом, лежащим в окрестно сти Я /, то это слово и является правильным. Если несколько резуль татов совпадает с кодовыми словами, т. е. снова нет однозначности решения, то запоминают те слова из окрестности Я/, для которых наблюдалось совпадение, и переходят к выполнению следующей операции, повторяя при этом те же действия, что и раньше по выяв лению правильного результата уже этой н о в о й операции.
Вместо нахождения всех кодовых слов, лежащих в окрестности
искаженного вектора, можно ограничиться определением тех основа |
|
ний СОК, произведения которых удовлетворяют неравенству (2.14). |
|
После сравнения произведений оснований, соответствующих век |
|
торам Я / и Я /, оставляются лишь те произведения, значения кото |
|
рых совпадают. Если в результате выполнения нескольких модуль |
|
ных операций останется только одно произведение, |
каждый раз удов |
летворяющее условию (2.14), то ошибка считается |
локализованной. |
Для того чтобы процесс локализации ошибок сходился к одной комбинации оснований, должно выполняться следующее неравенство:
і
« і > ( Н |
І ) П |
Р„г где |
qj= 1 , 2 ......... m. |
|
|
При невыполнении |
этого |
неравенства |
всегда |
найдется, по |
крайней |
мере, одна комбинация из t оснований |
СОК, |
произведение |
которых |
удовлетворяет неравенству (2.14) независимо от того, где произошли ошибки. Поэтому число корректируемых ошибок не может превы шать величины d — 1, причем число контрольных оснований должнобыть не менее двух.
В общем случае невозможно оценить, сколько модульных опера ций с неправильными числами нужно выполнить для того, чтобы ошибка (или группа ошибок) была локализована, так как скорость,
62