Файл: Торгашев В.А. Система остаточных классов и надежность ЦВМ.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 |