Файл: Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие.pdf

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

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

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

Добавлен: 09.04.2024

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

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

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

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

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

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

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

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

Контроль сложения с использованием проверок чет­ ности. При сложении двух чисел а и b разряды суммы 5 образуются в соответствии с выражениями:

= йі ф ®

 

^2 — «г® Ь2ф с2;

/. п

S n — an ® b nQ)cn,

 

где Si, au b\, Ci ( i= l , 2, ..., n ) — соответственно

значе­

ния разрядов суммы, слагаемых и переноса, поступаю­ щего в і-й разряд. Знак ф означает сложение по моду­ лю 2; п — число разрядов слагаемого или суммы.

Сложив все п выщеприведенных равенств по модулю 2, получим:

642


( S i® S20 -

• ‘® S„) — («1 ® Ö2® ‘ ' ' ® а л ) ®

0 0 1 ® ^2 0

* • " 0 ^л) ® (Cl ® C2 © • • ' © О - (12-7)

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

четность 5 = (четность а)® (четность 6 ) 0

® (четность с).

(12-8)

Если суммы единиц слагаемого Ь и переносов с име­ ют одинаковую четность, то

(четность 6)® (четность с) = О

и четность суммы совпадает с четностью слагаемого а. Если суммы единиц b и с имеют разную четность, то

(четность 6)® (четность с) = 1

и

четность S = (четность а) + 1.

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

Указанные соображения являются основанием для организации контроля сложения. Упрощенная схема контроля приведена на рис. 12-4.

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

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

При правильном образовании суммы S содержимое аккумулятора вместе с контрольным разрядом после

сложения

сохранит

то же

значение

четности, которое

было до сложения.

Изменение

четности аккумулятора

есть признак ошибки.

 

 

 

 

Однако

рассмотренная

выше

процедура проверяет

не всю операцию сложения

в целом,

а только процесс

643


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

слагаемого

Рис. 12-4. Контроль сложения с использованием про­ верок по четности.

либо инверсия переноса, и не существует одновременно и то и другое.

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

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

644

арифметическая операция, которая выполняется над чис­ лами. Это вытекает из того, что для сложения, напри­ мер, действительно соотношение:

R(A + B) = R[R(A) + R(B)),

(12-9)

при этом R(X) обозначает остаток числа X по модулю

3.Числа А и В можно представить в виде

А= За + ß;

В = Зу +- б,

где а и у — Целые числа или нули, а ß и б могут иметь значения 0, 1 или 2 и представляют собой остатки чисел

А и В по модулю 3: т. е. ß=

^ (4 ), б= R(B). Сумма чи­

сел равна:

 

 

 

А + В = (За +

ß) + (Зу +

6) = 3 (а + у) + (ß + б).

Величина ß+ б

может быть больше 3, но всегда мень­

ше 6; в общем виде она может быть записана:

 

ß + б = 3 + R (ß + б).

Тогда

 

 

 

А + В

1) + /? (ß + 6)

3

= (а+У +

 

 

3

Величина a+y-j-1 представляет

собой целую часть

от деления А-\-В

на 3, а остаток от

суммы А-\-В есть:

 

R (А + В) = R (ß +

б),

что совпадает с (12-9).

Аналогичными рассуждениями можно показать, что

R (AB) = R [R (Л) R(B)}.

(12-10)

Покажем теперь, что контроль по модулю 3 обнару­ живает любые одиночные ошибки. Одиночная ошибка в каком-либо разряде двоичного числа соответствует из­ менению числа на величину ±2*. Для того чтобы конт­ роль обнаружил ошибку, необходимо, чтобы контроль­ ные коды чисел а и а ± 2 і не совпадали, т. е.

R (а) ф R [а + 2‘) = R (а) + R (2г)

или

R (2г) Ф 0.

Но 2* не делится на 3 нацело, и, следовательно, тре­ буемое условие выполняется. Кроме одиночных ошибок

645


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

На рис. 12-5 изображена блок-схема сумматора с контролем по модулю 3. При реализации контроля важ­ ное значение имеет построение схем формирования ос-

А + В

А

ß

1

<3

Р и с . 12-5. Б л о к - с х е м а с у м м а т о р а с к о н т р о л е м п о м о ­ д у л ю 3.

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

Однако кодирование по модулю 3 обладает свойст­ вом, облегчающим построение схемы формирования ос­ татков.

Двоичное число

А = а02'!+ ах 2п 1-f • • • + ап_ х2+ а п

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

А - К 4т + kx\ m~x + • •. + km_ x 4+km,

где

К = а02 + ai;

kx = ö2 2 -f a3;

k m = ü n- 12 + a n-

Q46

Остаток

R ( Ä ) = R [К 4m) + R{k 1 4m- ‘ ) + • • • + £ (Äm).

Величина 4г' имеет остаток по модулю 3, равный +1, так как

4* = (3 + 1)‘ = 3' + Cj Зг_1 + Са3<_2 Ч------ ЬС(_і 3 + 1 ,

647


где Сь С2, ..., Сі- 1— биноминальные коэффициенты. Следовательно,

R (А) — R (k0) +

R (kx) + • • • + R (km) =

 

— R (^o

~r ki + • • ■ +km).

( 1 2 - 1 1 )

Таким образом, определение остатка числа может быть заменено определением остатка суммы четверичных цифр числа, последний же может быть сформирован с помощью многоступенчатой комбинационной схемы. На рис. 12-6 изображена схема формирования остатка вось­ миразрядного числа. Схемы первой ступени определяют остаток по модулю 3 четверичных цифр, расположенных в двух соседних разрядах, схемы второй ступени опреде­ ляют остаток по модулю 3 от суммы цифр, входящих в схемы первой ступени, и т. д.

Может быть применен контроль по модулю с боль­ шим основанием, чем 3 (по любому модулю вида 2п—1), при этом увеличивается число кратных ошибок, которые могут обнаруживаться системой контроля, однако воз­ растает сложность кодирующей и декодирующей аппа­ ратуры. Контроль по модулю может быть также приме­ нен для прямой проверки не только операции сложения, но и других арифметических и логических операций.

12-5. В З А И М О Д Е Й С Т В И Е С И С Т Е М А В Т О М А Т И Ч Е С К О Г О

КО Н Т Р О Л Я И Д И А Г Н О С Т И К И

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

Система автоматической диагностики (САД) во вза­ имодействии с системой автоматического контроля обыч­ но выполняет следующие основные функции:

1)диагностирование характера обнаруженной ошиб­

648