Файл: Самохин А.Ф. Эксплуатация цифровых вычислительных машин [учеб. пособие].pdf

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

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

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

Добавлен: 19.06.2024

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

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

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

-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. Производится сравнение вычисленного контрольного кода и полученного в результате выполнения операции.



-1 2 0 -

Рассмотрим пример при контроле по m od3 .

Л = O . O I IO O C O I I

R ( Л )

=

I I mod3

в = о,ошино

R (в)

г

ю modз

А А В = 0,011000010

R (ЛЛ В)

=

10 mod3

А V В = 0 ,0 Ш Ш П

R (AV В)

= I I -m od3

R (АV В) = fR (А) + R (В) - R (АЛ В )] = II + 10 - 10 =

= II mod3.

Заметим, что при контроле логического сложения, если одно из чи-

оел в результате операции в АУ исчезает, его нужно хранить где-то

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

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

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

а

в предыдущем параграфе, в виде, разрешенном относительно логи­

ческого умножения:

 

 

R (АА в) S [К(А)+ R (В) - R (АУ В

.

5.23.

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

Контроль операции поразрядного сравнения (операции нерав­ нозначности) . Мы рассмотрели раньше контроль операции неравно­ значности проверкой на четность. Однако, если в АУ имеется сис­ тема контроля по модулю других операции, то целесообразно и эту операцию контролировать по модулю. Операция поразрядного