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

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

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

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

Добавлен: 21.07.2024

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

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

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

сходимости зависит не только от возможностей выбранного R-кода, но и от характера задачи, решаемой на ЦВМ. В частности, если в состав последовательности модульных операций входят умножения, то процесс сходится очень быстро, а при выполнении одних лишь операций сложения и вычитания некоторые комбинации ошибок во­ обще не удается локализовать.

Рассмотренный выше способ коррекции ошибок, использующий динамику вычислительного процесса, был предложен и детально исследован И. Я. Акушским и Д. И. Юдицким. Поэтому более пол­

ные и подробные сведения об этом

методе читатель

может найти

в работах указанных авторов

[1—5]. .

 

 

 

 

 

 

 

 

Проиллюстрируем этот метод коррекции ошибок небольшим при­

мером.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример 2. 6. Пусть задана система остаточных классов с основа­

ниями: р, =

7;

р2 =

8;

р3 = 9; р4 =

5; ps == 11;

N =

7 • 8 • 9 = 504;

Rt — 5- И =

55;

L — 2N =

1008

и

искаженное

число

{71/}^ =

= {2, 6, 7, 0, 8}м, из

которого

в ходе решения задачи вычитается не­

искаженное число

{200}ііг = (4, 0, 2, 0, 2}ііг. Требуется

определить век­

тор ошибки, считая, что она является одиночной.

 

 

 

 

 

кода

Нетрудно, убедиться, что минимальное расстояние данного

d — 2,

т. е.

 

в

общем

случае

код

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

одиночные

ошибки.

Определим

сначала

характеристики

itjv(A j)

и

положив X= 2:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

* л г (4 )

= 12;

 

 

 

 

 

 

Ж

) и

,

=

{4’ 3}/?,-

» (4 )

=

14.

 

 

 

 

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

неравенства

(2.14)

для

каждого из

оснований СОК:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

{7»}*, “

{3.10}*,.

17# I * ,

=

43 > 3 - 7 ;

 

 

 

 

 

{»}*,

{2. 2}*,,'

I 86 I * , = 2 < 3 - 8 ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

|9 8 |я , = 1 6 < 3 . 9 ;

 

 

 

 

 

{5Sb ? ,=

{°-

 

 

156 |я,

=

15 =

3-5;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

{11В}я, = {4- °}«,'

1 16 \я , = 44 > 3 - 1 1 ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

і Итак, ошибка

 

может

быть

либо в модуле р2 =

8,

либо в мо­

дуле

р 3 = 9,

так

 

как

для

остальных

оснований

 

условие (2.14)

не выполняется.

 

 

 

 

что

поскольку

 

оба

вектора

{чял/^я, и

Следует

 

отметить,

 

{кдг -|- 1}я, не содержат нулевых компонент, то, в соответствии

с теоремой 2.10, ошибка должна находиться в одном из информа­ ционных модулей. Поэтому произведения {56}я, и {116}я, можно

было бы не вычислять.

Выполним теперь те же действия для числа А2= А1— 200:

{ К } м = {5, 6, 5, О, 6}ж ;

63


(..дг ( Я 2) } я ,

О . » } * , .

 

 

 

 

I5 ( ^ 2)1 Д,

= {3. 2}д, -

6 ( Д ' ) = 1 3 ;

 

 

 

 

 

 

{ 8Sk

=

{ 4 > 5к -

185 [ffi =

4 9 > 3 - 8 ;

 

 

 

 

 

i 93k

=

7к -

| 9 8 | # , = 7 < 3 . 9 .

 

 

 

 

 

из двух альтернативных основании

р 2

и р 2

Ь ft

в обоих случаях удовлетворяет неравенству (2.14).

Следовательно,

можно считать, что ошибка соответствует именно этому модулю. Определим теперь вектор ошибки, воспользовавшись выраже­

нием (2.22):

{ N \ b p 3\RJ p 3}M ={0, 0, 5, 2, 7}м -

{^

Ьи = {0,0, 0, 2, 7}/И;

{—

°*5’ °- °Ь>;

{ Л Ь , = {5, 6,1,0, 6}АІ.

В случае необходимости можно восстановить и истинное зна­ чение числа

{/1,}Л -

{Я, +

200}д! =

{2, 6, 3, 0, 8} ѵ|, Я, = 30.

Рассмотрим

теперь

способы

коррекции ошибок,

возникающих

при выполнении

операции иемодульного

типа. Как

было показано

в гл. 1, все немодульные

операции

сводятся

к вычислениям позицион­

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

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

любого числа

Я однозначно

определяется

характеристикой 6(Я) =

= я.ѵ(Я)-г

2.

Если число Я

положительно,

то 6(Я) = 2, отрицатель­

ным числам

соответствует б (Я) = 1. Предположим, что ошибки про­

изошли только в контрольных основаниях, произведение которых равно Qu. Основания эти легко можно локализовать, используя тео­

рему 2.10. Тогда знак

числа

однозначно определяется величиной

[б (Я) I

более

общий случай, когда искажены не

Рассмотрим теперь

только контрольные, но также информационные символы числа. Про­ изведениеоснований, соответствующих этим символам, определим из неравенства (2.14). При этом возможны три различных варианта:

I SQ I*. <

Q:

(2.24а)

< 2 Q ;

(2.246)

2Q < 16Q I*, <

3<?.

(2.24B)

Из доказательства теоремы 2.7 следует, что первый вариант со­ ответствует отрицательным числам (—2N < Я —|Я '| N < —N), я третий — положительным. Таким образом, в этих случаях по

64


величине |6Q |^ можно однозначно определить знак числа. Что ка­

сается второго варианта, то ему могут соответствовать и отрицатель­ ные и положительные числа. Поэтому если произведение |ö Q |^ i по­

падает в интервал (Q, 2Q), то для определения знака приходится возвращаться к исходному числу, исправлять в нем ошибки и далее снова вычислять позиционную характеристику уже исправленного числа.

При вычислении позиционных характеристик Я д^Л ), где Л', яв­

ляется делителем N, непосредственная коррекция ошибок (без ис­ правления исходного числа и повторения операции) возможна лишь в том случае, если все ошибки соответствуют основаниям, не входя­ щим в произведение N t.

Пусть А' — искаженное значение числа А. Тогда в соответствии

сформулой (2.22) можно записать:

А= А' + I BQ Ir NIQ - 6N.

Если Q и N] взаимно просты, то величина N/QN^ является це­ лым числом и, следовательно,

(2.25)

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

системы

оснований,

также

можно

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

выраже­

нием (2.22).

 

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

в СОК с основанием

Предположим,

Мц причем

I J4 I <

TVj, где ЛГ, — произведение

некоторых

модулей

данной СОК. При расширении системы

оснований требуется опре­

делить вектор {Д}дг2і где N 2— произведение

некоторых модулей,

взаимно

простых

с

М х. Для

вычисления этого вектора

исполь­

зуются не

все символы числа

{А}Мі, а лишь

те, которым соответ­

ствует основание N v

Ошибки, возникшие при выполнении данной операции или исказившие символы исходного числа {Д}уѴІі, по-разному влияют

на результат в зависимости от того, в каких модулях они про­ изошли. Ошибки в контрольных основаниях не влияют на число {Л}дг5. Однако при выполнении операции расширения они могут

быть обнаружены и исправлены обычным способом.

Непосредственные ошибки в добавляемых модулях не обнару­ живаются при выполнении операции, но в тоже время они п не распространяются, и, следовательно, могут быть исправлены при выполнении следующей немодульной операции, операндом которой служит число {•^}Уи1 N,- Наиболее опасными являются ошибки

в тех основаниях, которые входят

в произведение

N u так как

любая из этих ошибок искажает все символы вектора {^4}дг,.

Если {Л'}лг5 = { I А + д Іл/.Ѵ,-

т0

| А1/ѵ,Ьѵ,*

5 З а к а з № 107

65


Подставляя в это выражение значение Д из формулы (2.22), получим

=— I “ I BQ \R ,N IIQ lw,}yv3-

Избавимся теперь от вычислений по модулю Д/, и учтем не­ обходимость коррекции результата расширения при отрицательном значении исходного числа А. Тогда:

{А}„, = { А' + ,bQl«.‘N ‘ - 2 N , J ^ .

(2.26)

Символы вектора {уГ},ѵ„ вычисляются здесь по формулам (1.26).

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

те

же

действия,

можно

исправить

ошибки

 

и в

исходном числе

и в

результате. Такая

ситуация

не возникает,

если

корректируется

непосредственно результат операции.

 

 

 

 

 

 

 

Пример 2.7. В системе остаточных классовое основаниями 5,7,

8, 11, 13, 3 и N =

5-7-8 = 280 представлено число

 

 

 

 

 

И

Ь , - { - 1 ° 0 } д, =

{0. 5, 4, Ю, 4,2},,.

 

 

 

Требуется определить знак числа и позиционную характери­

стику

(Н)}Л1

при

условии,

что

в ходе

выполнения

операции

произошла ошибка в основании р 2 =1:

 

 

 

 

 

 

 

Ы А ) } М,5= {1,4,2,6,1}ж/5;

 

 

 

 

 

 

 

{М Л)},и/5= { 2 Л 2 ,6 ,1 } лі/5, 1Д |7 =

I;

 

 

 

 

 

W

b ,

“ {2-10>1}#,;

 

 

 

 

 

 

 

 

{ * } * , - { W 0 } R ,\

 

 

 

 

 

 

 

 

{7S}y?i = {6,6,0}/?i;|7 B |^

=

6 < p 2.

 

 

 

Число А является отрицательным, поскольку

выполняется

не­

равенство (2.24,а).

 

систему основании,

положив

Д/, =

7-8;

 

Расширим теперь

N 2 — 5 и воспользовавшись выражением (2.26). При этом

1Ц(Л)І5 = 4; [1761^-8 I, = 3; |2JV,|, = 2; |*,(Л ) |5 = [4 + 3 — 2 [5 = 0.

Одновременно можно вычислить истинное значение позиционной характеристики |я 6 (Л )} ^ :

/5 - {°. 0,4,9 .0}jM/e;

Ы А ) } м 15 = { ' Л - 2 . Ы } м ,в.

66


Итак, получено исправленное значение искомой характеристики

(Л)Ьи “ {О-1- 4- 2-6- 1}.«-

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

приятны отказы схем сложения и умножения

в арифметическом

устройстве, так как в этом

случае очень трудно

исправлять

ошибки

в соответствующих символах чисел.

 

кодов

Однако замечательной

особенностью корректирующих

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

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

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

какого-либо из информационных модулей

изменится

знаменатель

дробей, а числители останутся прежними, в

результате

чего изме­

нятся величины чисел, представленных в ЦВМ.

информационный

Предположим,

что

из системы

исключается

модуль pi. Для того

чтобы сохранить прежнюю точность вычисле­

ний, включим в состав информационных оснований

модуль р п + ,.

Если р,1 + 1 > рі,

то

знаменатель

любой

дроби,

представленной

в СОК, увеличится

в рп + іІрі раз

и соответственно

уменьшится ее

величина.

 

 

 

 

 

 

 

При выполнении операций сложения и вычитания величина по­

грешности не изменится, и поэтому

после любого

количества таких

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

вРп 1ІРі раз.

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

устранить. Для того чтобы избежать накапливания погрешностей,

Ь*

67