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

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

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

Пример.

А =

0,101

Т5

(A)

s

10mod 3

 

В =

1Д 00

R

(В)

= 00 mod 3

 

А • В =1,010100

 

R

г

01 nod 3

 

 

I

I

 

 

 

теряются

При контроле по тождеству 5.10 веса остающейся части произ­ ведения (А*В)0СТ = 1,010 должны быть взяты 1 ,2 ,1 ,2 и R (А*В)^|Т * 10 -mod3.

R (А-в)ост =

{[га - оПо - га]

+ I

- i)

= - юо 2 ю modз.

При контроле по тождеству 5.11 веса

остающейся части произ­

ведения

берутся в

обычном порядке

-

2 ,1 ,2 ,1

и (А-В)ост =£НтЛз.

£

(а -в) ост =

{га Гю - о][о

- га] + га

- i- io j =

=- гаоо * 01 mod з.

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

§ 5 .4 . Контроль операции деления чисел в прямом коде

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

( W ) . При принятых обозначениях можно записать:

- 111-

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

£ (A) S [ р ( В ) - й (С) + 1$ ( W )]ттюс1д. .

5 .12

Полученное тождество позволяет проконтролировать операцию деле­ ния чисел без учета знакового разряда. При контроле с учетом знакового разряда тождество (см . контроль умножения) будет иметь вид:

№ ) = [ Ш В ) - 1 п(2п) № е ) - С < , № п) ] +

6 .13

+ (!>n®en)lH 22n)+K (W )}m od(j,.

Таким образом, для контроля правильности выполнения опера­

ции деления необходимо выполнить саму операцию, сформировать вы­

четы частного и остатка, вычислить вычет делимого и сравнить его

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

 

При

П -разрядной

сетке машины делитель и частное имеют

 

разрядов,

остаток -

2 Л

разрядов

нулями в П старших

разрядах). Следовательно, вычисленный по тождеству 5.12 или

5.13

вычет делимого

будет соответствовать

2п -разрядному дели­

мому

(содержащему в

П

младших разрядах

нули). Контрольный

же код, поступающий вместе с

делимым из ЗУ, определен для Л -

разрядного числа. Таким образом, для т о го ,

чтобы вычисленный

контрольный код совпадал с.поступившим из ЗУ, его необходимо

вычислять для

Л

старших разрядов

(

П

***~т ГТет*' щ у а е ш

разрядов

отбросить).

 

 

 

 

 

 

 

Если количество

разрядов

П

кратдг» Mqmnflff ш птагсД

функции,

т о ,

как следует

из предадужего)

 

шикйг тпцу ■

 

 

 

 

-

H2-

ших П

разрядов монет

быть

вычислен непосредственно по тож­

дествам

5.12

:ш 1 5.13 (

И

младших разрядов в образовании вы­

чета не участвуют, так как они содержат нули).

Если же

п

не кратно

периоду весовой функции, то вычис­

ление контрольного кода следует производить так не, как это де­

лается

при умножении

для аналогичного случая. В частности, при

|

= 3

и

/7 , не

кратном двум, контрольный код вычисляется

по

тождеству

 

 

Ш П г Ш в П п Ъ(2 п) ] Ш - с п т п) ] +

5.14

+ (& п ® Сп ) ^ ( 2 П ) + 2 'R i V l ) } m o d 5

 

Пример.

 

А =

0,101

 

К (а ) = ю mod. з

 

 

 

В = 0 , I I I

 

R (В)

S 01

m o d 3

 

 

 

С =

0,101

 

R (0)

э

Ю

т о d

3

 

 

 

W =

0,000101

R ( W

)

s

ю

mod

3

По тождеству

5.13

К

(Л)

=

{[01

- 0] [10

-

0]

+

О +

10}s 01 mod 3

не

совпадает,

 

 

 

 

{ 10

[01 - 0][10 -

0] +

0 +

10-10} =

по

тождеству

5.14

R (А)

=

= 10 mod 3

совпадает.

С методикой контроля операций умножения и деления в обрат­ ном и дополнительном кодах читатель может познакомиться в Я .5.

-1 4 5 -

§5 .5 . Контроль операций сдвига

Контроль операции сдвига наиболее просто осуществляется о

использованием наименьших вычетов. Как будет показано ниже, в

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

 

Введем обозначения:

 

 

А,

( А )

-

сдвинутое влево (вправо) число,

Т?(А), R (А)

-

контрольный код сдвинутого числа,

R ( A ) ,

R (А)

-

сдвинутый контрольный код,

 

-4-0 О-*-

-

число, сдвинутое с циклическим переносом.

 

А,

А

 

Арифметический сдвиг прямого кода числа на один разряд

влево. Сдвинутое

влево число можно записать в виде:

 

 

 

 

Л = а п -2п+ 2 А ' - а п . 1- 2 п ,

где

вычитание

®-п- 2** учитывает

потерю единицы из старшего

 

 

разряда мантиссы.

 

 

Добавив

и вычтя Qn 2 П, получи:,!

 

 

 

А

= 2 (ап-2 п+ А ) - ( а п +апч)-2 п^ _ _

или,

перейдя к остаткам и учтя, что

2R(A) = К 6 4 ) ,

R (A )= L R (A ) - (a n + a n. f) - X ( 2 n) j t n o d p . .

Заменив вычитание добавлением инверсии второго слагаемого, окон­

чательно получил:

'R(A)s i K ( A ) + ( a n +an, t)'R(2n) ] m o d ^

5 ,1 5

-114-

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

Следовательно, д;щ реализации контроля сдвига влево в АУ конт­ рольного кода должны быть заведены сигналы от старшего разряда мантиссы и знакового разряда регистра, в котором производится сдвиг числа.

Арифметический сдвиг прямого кода числа вправо. Число,

сдвинутое на один разряд вправо, можно записать:

A =ari-2n+2't-A'-a02*

и л и , у ч т я , ЧТО

П-1

П-1

а п - 2 ’ = а п 2

+ а п 2

 

А = ( а п - 2 п +А ' ) 2 4+ а п 2 п'1- а 0

и окончательно А=А2 1*ап-2л'1-аа-2'‘.

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

R ( A ) * [ f f i ) + a n R ( 2 ', ’ * ) - a 0 / Z ( 2 ',) ] t n o t y .

Заменив вычитание последнего члена добавлением его -инверсии,

окончательно получим

К (А)

+an R (2n') + q d R (r')Jn w d g , . s.ie

Таким образом, для вычисления контрольного кода числа, сдвину­ того вправо необходимо в АУ контрольного кода завести сигналы от знакового разряда и младшего разряда мантиссы регистра, в

котором происходит сдвиг числа.

- Ц 5 -

п11 /

В случае использования модуля ^ = 2 - 1

последний член тож­

дества удобно домножить на 2m={rnod(2m-i). Тождество в этом слу­ чае имеет вид:

R (A )s [R (b )+ Q n R (2n~t)+ a 0 R (2 rn‘,)l'n w c l ( 2 т~ 0 .

Пример:

А = 1,10101

12 (А)

= 10 mod. 3

 

 

А = i.o ioio

R(T)

—оо mod з

R( a) s oifflO(/3

R(a) = Toi + (oi

+ o D io l

= [oi

+ o i]

=[oi + io] ■ оото(1з

1 = 1,01010

R (1)

3 00 m od 3

R(A) = 01 m o d 3

R ( a )

= [oi + o r o i + 0Г 10Ы 01

+ o i + oi]* oo mod з

Арифметический сдвиг обратного кода

числа на один ш зш д

влево или вправо. Сдвиг

обратного

кода числа от сдвига прямого

кода отличается тем, что в этом случае освобождающийся при сдви­ ге разряд (младший при сдвиге влево или старший при сдвиге впра­

во) заполняется не нулем,

а единицей. Следовательно, для получе­

ния тождеств

при контроле

сдвига обратного кода числа необходимо

в тождествах

5.11

и

5.1G добавить члены; учитывающие

добавление вычета единицы в младшем или

старшем разряде

соответ­

ственно. Тождество для сдвига влево при

этом имеет вид:

 

Мо5рЫ*(АоЬр)+(Оп +Qn.j)R (s*) + t] m°djJ

5.17

Для сдвига вправо

К (АоЬр) -[•£(&<$!,) +QfiRte17 %O0R(2~)+%(2n'')]m0dff- 5.18

Последние члены в этих тождествах учитывают заполнение единицей

освобождающегося младшего разряда в тождестве

5~.17 и старшего

- <16-

разряда в тождестве I8.

Логически!! сдвиг прямого кода числа на один разряд влево и вправо. При логическом сдвиге сдвигается весь код вместе со

знаковым разрядом. Код числа, сдвинутого логически влево, можно записать А =А-2 - а п-2 пи

откуда* переходя к остаткам и заменяя вычитание сложением с ин­ версией получаем тождество для контроля логического сдвига вле­ во:

Ъ(А) = [ т ) + а п /t(2 n")]-rr,ol/p

5.19

Аналогично получается тождество для контроля логического сдви­ га вправо:

R ( A ) ^ [ l Z ( A ) + a 0 R ( 2 ~f) ] n w c { g ..

5.20

Тождества для контроля логического сдвига обратного кода чис­ ла читатель может вывести самостоятельно.

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

S.15 добавить вычет единицы младшего разряда. Сигналом на добавление единицы является единица в знаковом разряде.

%(А) =[RCA) + а п R(2-n*')+an ]™ o d i^ .

5.21

Аналогично можно получить тождество для контроля циклического сдвига вправо.

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

- Ц 7 -

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

Вычисление контрольного кода сдвинутого числа может осущест­

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

обеспечивающей сдвиг контрольного кода и логикой анализа содержи­

мого

знакового разряда и краГших разрядов мантиссы числа.

 

§ 5 .6 . Контроль логических операций

Наряду с арифметическими операциями при обработке информа­

ции в

ЭЦВМ используются некоторые логические

: логическое сложе­

ние,

логическое умножение, неравнозначность

и др.

То обстоятельство, что все эти операции выполняется пораз­

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

Действительно, в операции участвует два взаимно независимых на­

бора двоичных

знаков. Результат операции в L-м разряде зави­

сит только от

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

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

-H S -

noli. операции).

Исключение из сказанного представляют операции неравнознач­ ности ( c -южения по m o d 2 ) и равнозначности. Их можно контроли­ ровать проверкой на четность. Методика контроля этих операций показана в § 5 .1 .

Наиболее общим способом контроля логических операций явля-

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

последующее сравнение с некоторым эталоном.

В случае использования в ЭВМ контроля по наименьшим выче­ там дня контроля логических операций также выполняются промежу­ точные логические операции над операндами и над контрольными ко­ дами, а затем производится сравнение контрольного кода результа­ та действии над операндами и контрольными кодами. С методами контроля логических операций по четности читатель может позна­ комиться в Л.7.

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

Контроль операции логического сложения по модулю. Докажем следующую теорему.

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

Доказательство. Известно, что сумма двух чисел равна сум­ ме результата поразрядного сложения этих чисел по mod2 и ре­ зультата поразрядного логического умножения этих чисел, с,двину­ того на один разряд влево

Л + В = А © В + 2 (Л ЛВ)

Кроме того , известно, что логическая сут.-ма этих чисел равна сум-

 

-

1 1 9 -

ые этих чисел по

2 ,

сложенной с их логическим произведе­

нием.

 

 

Л V В ^ А © Б т (АЛ В)

Из этих двух формул находим выражение для логического сложения:

AVB = Л + D - (АЛ В)

Переходя от выражения для чисел к выражению для их остатков,по­ лучит,г.

R (AV В) = [R (А) + R (В) - R (АЛ В )]ПО

5.22.

Теорема доказана.

Полученное тождество позволяет вычислить вычет результата операции логического сложения через вычеты исходных чисел и вы­ чет icc логического произведения.

Порядок работы АУ при -контроле следующий:

1. Выполняется операция логического умножения чисел.

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

3. В АУ контрольных кодов вычисляется контрольный код логического сложения по формуле 5.22.

4. Выполняется операция собственно логического сложения чисел.

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

6. Производится сравнение вычисленного контрольного кода и полученного в результате выполнения операции.

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