Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Самохин А.Ф. Эксплуатация цифровых вычислительных машин [учеб. пособие]

.pdf
Скачиваний:
11
Добавлен:
23.10.2023
Размер:
8.6 Mб
Скачать

- 60-

Г л а в а 1У

кода ДНЯ КОНТРОЛЯ АИШВПГИШК и лопиеских

ОПЕРАЦИЙ

§ 4 .1 . Общие замечания

Аппаратный контроль арифметических операций - задача более

трудная, чал контроль передачи информации. Эту задачу можно сформулировать так.

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

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

Ясно, что корректирующий код в этом случае должен обладать

особдаи свойствами. Обязательным, в частности, является совмес­

тимость кода с выполняемой операцией, т .е . чтобы признаки, по

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

ея, т .е . чтобы дополнение кода совпадало с кодом дополнения этого числа (имеется ввиду дополнение гг -разрядного числа до 2П- I ) .

С точки зрения практического применения значительные пре­

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

Имеется целый ряд кодов, обладапцкх указанными свойствами,

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

Для арифметических кодов, как было показано ранее, поня­

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

величина разности этих чисел.

Расстояние между кодовыми комбинациями, изображающими два

числа, определяется кале вес

разности этих чисел. Например, если

А = I0 II0 I, а В = I000II, то

d = W ( А ~ Ь ) = 2 .

При таком определении сохраняется введенные ранее соотношения меаду корректирующей способностью и его минимальным кодо­

вым расстоянием. Так, для уверенного обнаружения одиночных оши­ бок необходимо иметь d = 2, двойных ошибок - d = 3 и т*д.

КВк видно из определения понятия ошибки и кодового рассто­ яния в арифметических операциях затруднительно применять кода о арифметикой по модулю 2 (проверка на четность, Хэмминга и д р .).

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

- 62-

Рассмотрим некоторые коды, применяемые дня контроля ариф­

метических операций.

 

 

§ 4.2. Коды типа AN

и ^ Л / + М

 

Одним из возможных способов образования кода, обеспечива-

пцего обнаружение ошибок d суш е или разности двух числе

, со­

стоит в том, что число А представляется в

виде A-N ,

где

N - постоянное число. При этом,

 

 

AN ± BN = N ( A ± B )

 

 

Если N выбрано надлежащим образом,

ошибки в результате

могут быть обнаружены. Кодирование в данном случае заключается

в умножении чисел на N , а декодирование - в делении. Деление

без остатка указывает на отсутствие ошибок, на обнаружение ко­ торых код рассчитан.

Корректирующая способность кода зависит от выбора N . Так,

для обнаружения одиночной ошибки очевидно необходимо поставить

требование, чтобы

2 1 не делилось

на

N .

Это

условие

выпол­

няется, если N и

2 взаимно простые

числа,

причем М >

2. В

частности, можно положить И/

= 3.

 

 

 

 

 

Минимальное кодовое

расстояние

при этом d

- 2, избыточ­

ность кода т =

3

= 1 , 1 ,

Это

значит,

что

требуется

не

больше двух избыточных знаков.

Этот

код не

самодополняющийся.

Для получения самодополняюшегося кода к рассмотренному

выше добавляют постоянное число М ,

т . е .

образуют код AN 4 М.

При этом минимальное кодовое расстояние и корректирующая спо­ собность остаются такими же, как у кода AN , так как

(AN + M) ±(ЬН + М) = / / f / U B W M ± М ) '

- £3-

Дополнение

т -значного

числа А равно

2

- / - А .

Неоо'ходшо

выбрать

М таким образом, чтобы код дополнения

 

 

был равен

дополнению кода 2 " -

1-(АЛ+М ) ,

где

П -

число

знаков

в коде.

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

должно выпол­

няться

равенство

 

 

 

 

 

 

 

2 П-

 

=

 

 

откуда

 

 

 

 

 

 

 

м ={[гп-/-А/(2т-/)].

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

§ 4 .3 . Коды с использованием наименьших вычетов

Наибольшее распространение в настоящее время получили методы контроля по модулю или контроля по наименьшим вычетам.

Из теории чисел известно, что для любого числа можно за­ писать тождество

А - R (A)mod^ ,

(4 .1 )

которое читается следующим образом: число А тождественно о остатком R f A ) от деления А на модуль .

Это тождество устанавливает следующее соответствие;

A = C j t +В(А),

- 64-

где А

Ч 1 ■R -

целы е

ч и с л а ;

 

А -

лю сю е

п - р а з р я д н о е ч и с л о ;

I

-

м о д у л ь ,

и л и д е л и т е л ь ;

 

 

-

ч а с т н о е о т

д е л е н и я н а

Q -

о с т а т о к

о т

д е л е н и я А н а Cj .

Под остатком мы обычно будем понимать наименьший положитель­

ный остаток

(наименьший вычет числа

А по модулю Q

) .

Если два целых числа А и В при

делении на натуральное

число ^

дают одинаковые остатки,

то они называются

сравни­

мыми по модулю

.

Сравнимость чисел

записывается так;

 

А =

3

mod^

(4 ,2 )

 

или

 

 

 

Р (А )

=

U (B)m od^

(4 .

3 )

Перечислим некоторые свойства сравнений.

I . Если А и В сравнимы по mod(J, , то их разность де­ лится на этот модуль без остатка,

т ,е .

если

A=Bmod^, ,

то R (

^ j modLj, -О

2 . Сравнения обладают свойством симметричности,

т .е .

если

А-Ьтос/д, ,

то £> =Ато

 

3 . Сравнения обладают свойством транзитивности,

т .е .

если

А-ВтоцО,

и B -C nod(j,

то А = С m od LL

4.

Сравнения по одному и тому же модулю можно почленно

складывать и вычитать,

 

 

 

т .е .

из

и

0 = /1modQ-

следует, что

 

 

А ± С = (' В 1 Л ) mod а

 

 

65-

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

т.е. если A + B = C f n o d ^ , то А = ( С - В ) mod

6. К любой части сравнения можно прибавить число, кратное модулю, т.е. если

A = B m o d C J,

, то

А + KCj. =

 

7. Обе части сравнения можно умножить на одно и то же

число, т.е. если

 

, то

 

 

 

A = B m od(f,

А К = В К т о о

1 д ,

8. Обе части сравнения можно возвести в одну и ту же сте­

пень, т.е. если A

= bm od ^ .

г то А

= В

m odcj,

9. Сравнения по одному и тому же модулюможно почленно

перемножить, т.е. если

 

 

 

 

А = В m od^

и

С = Д т о с ( д .

, то

А С = В Д m odcj,

10. Обе части сравнения можно разделить на их общий дели­ тель, если последний взаимно прост с модулем (имеет с нимоб­ щийнаибольший делитель, равный единице),

т.е. если А С =BCm dcf к

( С ,р ) =

/

, то

A

^ B r n d ty

11. Обе части сравнения и модуль можно разделить на любой

их общий делитель, т.е.

если

 

 

 

 

А = Bmodcj и А - К А

, В = К В '

и

C j,= K (j\

то A '- B 'm o d ^ .

12. Если сравнение имеет место по модулю

Q

, то оно

имеет место и по модулю,

равному любому делителюмодуля g ,

т.е. если A = B m o d g и

= o #То А ^ В fHod К

5.3т..0-7.

- 6 6 -

На основании перечисленных свойств сравнений можно полу­ чить важные для контроля арифметических операций тождества.

Пусть

,A=R(A2)mod^

............. An*R(An)ntodfy ,

тогда на основании свойства(4)

 

 

t ^ r t u M m o d q ,

 

<4' 4)

Но, согласно выражению (4 .1 ),

 

 

Ел, =

<W

 

< 4 ' 5 )

/*/

можно

записать:

Следовательно, на основании свойства 3

£ R M , ) = R ( | a i ) m d $

(4 .6 )

 

Аналогично можно получить тождество

 

 

f l R ^ i )

= k (U A i)m o d g ,

(4 .7 )

ы

14

 

 

Тождества (4 .6 ) и (4 .7 ) позволяют использовать наименьшие вычеты для контроля арифметических операций. Например, душ конт­ роле правильности сложения чисел А и В необходимо до выполнения операции над числами получить вычеты этих чисел Р (А ) и R ( Б ) ,

одновременно с выполнением сложения чисел сложить на отдельном суъвШоре эти вычеты, получить вычет суммы чисел и сравнить вычет cJ'MMbi чисел с суммой вычетов слагаемых. Несовпадение ука-

хе$ йа наличие ошибки.

Аналогично выполняется, с использованием тождества (4 .7 ),

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

- 6 7 -

Тахт образом, при контроле по наименьшим вычетам имеет­

ся возможность отдельно выполнять операции над контрольной частью кода и результаты сравнивать с контрольной частью резуль­ тата выполнения операции над числами.

Каждая кодовая комбинация в этом случае, очевидно, должна

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

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

В практике используют два вица контроля по модулю: число­

вой контроль и цифровой контроль. В первом случае контрольным

кодом является

остаток Я (А ) от деления самого числа А на

модуль ^ .

В этом случае при контроле арифметических опера­

ций нет необходимости учитывать переносы. Во втором случае кон­

трольным кодом является остаток

/ ? ( £ ai )

от деления

 

1=0

 

суш и цифр числа А на мод

. Ь частности, цифровой конт­

роль двоичных чисел по

сводится, по

существу, к конт-

ролю на четность.

 

 

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

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

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

-68-

§4 .4 . Нахождение вычетов и выбор модуля

Для нахождения вычета числа по mod (J, в общем олучае

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

Любое тх -разрядное число с основанием системы счисления можно представить в вице:

Р

А = ап-хрП 1+ °п-грп V . . + a / + o / = Z a , / >

(4-8)

Рассмотрим три случая: модуль больше основания системы,

модуль меньше основания

системы

и модуль равен основанию.

 

I .

Пусть

Q >р .

 

 

 

 

 

 

 

Тогда можно записать P ~ $ ~ f

»

где

-

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

число,

определяемое величиной

.

Подставив

значение

 

в выражение (4 .8 ), получим

 

 

 

 

 

 

 

 

А =

 

 

 

 

 

 

(4-9)

Запишем бином

С

в ввде

РОД8

 

 

 

 

Из рассмотрения разложения бинома видно, что в образовании

остатка

от деления этого

бинома на модуль

^

принимает учас­

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

у которого

i= j

. Остальные

члены ряда остаток не образуют,

так как в

них

^

входит

со­

множителем. Следовательно, вычет числа А можно определить по тождеству:

-

6 9 -

 

n-t

 

 

R (A ) = L fl/

( - 1) f mod (p i f ) .

4.10

<-0

 

 

Таким образом, нахождение вычета сводится к нахождению вычета от суммы цифр, помноженных на весовые коэффициенты

2.

В случае

Р ~ $ +Г

аналогичными рассуждения­

ми можно получить выражение для определения вычета

 

 

 

Q [Y lmool ( p - f ) .

4 . II

 

 

i=0

 

 

3.

В случае

Q=p в образовании остатка принимает

участие

только один младший разряд числа (это видно непосредственно из записи числа) и, следовательно, контролю подвергается только один

разряд. Такой контроль не имеет смысла, и модуль !Ц-=р не приме­ няется.

Выражения (4 .10) и (4 .II) позволяют заменить нахождение вы­

чета числа нахождением вычета суммы цифр, взятых с весовыми коэф­

фициентами ( - I ) £J*

или р 1 . Однако,

если коэффициенты при каж­

дой цифре различны,

задача нахождения вычета остается достаточно

сложной. Эта задача

существенно упрощается, если принять

I ,

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

или (J.=p-i

, или

р = p + i .

 

 

В случае выбора Q= р-i вычет числа, как следует из выраже­

ния (4 .I I ) , определяется тождеством

 

 

 

 

П-1

 

 

 

4.12

&(А) = Z aLTnod(p-0 .

 

 

1=1

 

 

 

 

Таким образом, в этом случае для нахождения вычета числа

достаточно найти вычет суммы цифр этого числа.

 

 

Однако непосредственное иоппдт.яппдндя нодуля

= р~1

 

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

любого числа на модуль, ревшй

ем

рааеа едаище; Поэтому

Соседние файлы в папке книги из ГПНТБ