Файл: Дроздов Е.А. Многопрограммные цифровые вычислительные машины.pdf

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

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

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

Добавлен: 11.04.2024

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

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

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

При отсылке результата операции из сумматора в запоминаю­ щее устройство он преобразуется из модифицированных (прямого, дополнительного или обратного) кодов в обычный прямой код. Этим преобразованием управляет специальный сигнал, вырабаты­ ваемый схемой анализа старшего знакового разряда сумматора. Если в старшем знаковом разряде 0, то цифровая часть числа при передаче в запоминающее' устройство не меняется, если 1, то про­ исходит преобразование. Поэтому если не принять специальных мер, то в запоминающее устройство результат примера 2.8, а запи­ шется как 0’.0001, а примера 2.8, г — как Г.0001, хотя в обоих слу­ чаях получились результаты, по абсолютной величине большие единицы, т. е. образовалось переполнение.

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

Пример 2.9.1. Сложить числа, заданные кодами:

[Л|]пр = ОМОЮ.

 

1 ^

=

ОМОЮ

[/Ыдоп = Т-1001.

 

[/Ыдоп =

т.1001

 

И.1пр + ИгЬоп —

ж

о’.оон —[Л, + /121пр.

2. Вычесть из [-41]доп=

Т.0110 число И 2]ДОП= Т-1001.

После искусственного

изменения

знака вычитаемого и взятия дополнения

до 1 для его цифровой части в сумматоре произойдет сложение кодов:

 

И.1доп=

Т.0110

 

 

 

[-л г]пр=

У о ш

 

 

[^ 1 ]ДОП т

[ •‘‘Ыпр =

1 -1101

= (j4J --- ''Ыдоп-

Содержимое знакового разряда результата определяет знак и код последнего. Если не используются модифицированные коды, то для определения переполнения разрядной сетки можно воспользо­ ваться анализом сигналов переносов из старшего цифрового и зна­ кового разрядов. При дополнительном коде переполнением счи­ тается появление чисел, больших 0 111 ... 1 и меньших Г.000...0. Переполнение сопровождается несовпадением переносов из старше­ го цифрового и из знакового разрядов.

Пример 2.10. Сложить числа:

И.]пр=

О1. 1010

1. [Л1]пр = 0’.1010,

Иа]Пр = 0 ’.0 1 1 1 .

+ И2]пр= о1, ош

 

Ш „? + и,]Пр =

т. oooi

 

 

t_nJ

ПР = 11. Переполнение! (Есть перенос только в знаковый разряд).

52


2. HjU„ = Г.ОНО,

И .] д о п =

1’.

ОНО

[^я]доп = 1М001.

[Л 2]до„ =

!'•

1001

И ,]д о „ +

[•‘‘Ыдоп =

O’. 1111

П-1

ПР = 11. Переполнение! (Есть перенос только из знако­

вого разряда).

2. При втором способе реализации процессов алгебраического сложения слагаемые с одинаковыми знаками складываются в пря­ мом коде. В этом случае знак результата вырабатывается путем логического анализа знаков слагаемых. Когда же знаки разные, то формируется дополнительный или обратный код только для одного из операндов. При этом существуют различные методы получения разности [25]. Например, в случае разных знаков передаваемых в сумматор операндов может обращаться только код второго опе­ ранда, а первый всегда участвует в суммировании только в прямом ■коде. Результат может быть получен в прямом коде и в дополни­ тельном (обратном). Необходимость преобразования результата в прямой код так же, как и его знак, определяются специальной схе­ мой. Эта схема анализирует знаки операндов с учетом возможного переноса из старшего цифрового разряда сумматора, складываю­ щего только значащие разряды исходных чисел. Значения соответ­ ствующих признаков, вырабатываемых схемой, оперирующей со знаковыми разрядами, при различных комбинациях знаков операн­ дов и переносов даны в табл. 2.6.

Код знака

Код значащей

операнда,

части операнда,

поступающего

поступающего

■в сумматор

в сумматор

операнд

операнд

операнд

операнд

1

2 .

1

2

о

0

Прямой

Прямой

 

 

код

код

Таблица 2.6

Перенос из стар­ шего цифрового разряда сумма­ тора

Значение знако­ вого разряда суммы

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

Признак пере­ полнения

0

0'

0

0

1

0

0

1

1

1

.Прямой

Прямой

0

1

0

о

 

 

код

код

1

1

0

1

о

1

Прямой

Обрат-

1

0

0

0

 

 

код

ный код

0

1

1

0

1

о

Прямой

Обрат-

0

0

1

0

 

 

код

ный код

1

1

0

0

53


Как следует из табл. 2.6, при сложении чисел с одинаковыми знаками в прямом коде переполнение легко обнаруживается по значению переноса из старшего цифрового разряда.

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

дулю два единица

переноса

теряется, то в результате получается

О © 0 = О, 0© 1 =

1 © 0 = 1 ,

1 © 1 == 0, что соответствует правилу

алгебры о знаке произведения: ( + ) X (+ ) = ( + ), (+ ) X ( — ) = = ( - ) Х ( + ) = ( — ), ( — ) X ( — ) = ( + ).

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

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

Пример 2.11.

 

а) умножение, начиная с

б) умножение, начиная

младшего разряда мно­

со старшего разряда мно­

жителя:

жителя:

 

0<-

—0’.1101 = [i4i]np

0^— 0М101 = [Л,]пр

Формирование знака

© (К —

ОМОН =

[Д2]пр

©0<---- ОМОН = [Л2]пр

о

,

1101

Частные

°

'оооо 1Час™ые

произведения путем

 

1101

сложения знаков

 

+0000

произ­

+

1101

п р о п з -

сомножителей

 

 

1101

ведения

 

1J Q 1 I

в е д е н и я

по модулю два

ОО’ЛОООПП =

[Л,Л2)“р

00М0001111 =

[Л,Л2]“

 

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

54


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

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

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

тренных в примере 2.11 сомножителей сохраняются

только

четыре разряда после запятой, то

после округления

будем

иметь

 

 

ОО’ЛООО 1111

 

 

+1

 

OO’.lOOl 0111

 

Участвуют------- 1

1------- Теряются

 

в дальнейших вычислениях

 

 

Очевидно, что для получения округленного произведения с точ­ ностью до единицы младшего из сохраняемых разрядов в сумма­ торе частных произведений необходимо иметь помимо п основных еще р дополнительных разрядов (1 < /?< « ). Требуемое число р дополнительных разрядов зависит от схемы умножения, применяе­ мой в машине. Наименьшее количество дополнительных разрядов, равное одному, требуется при схеме умножения, начинающегося с младших разрядов множителя и со сдвигами промежуточных сумм частных произведений (не самих частных произведений!) вправо относительно неподвижного множимого. В этом случае те­ ряемый при каждом сдвиге младший разряд очередной суммы частных произведений не влияет на точность результата. Для округления результата необходимо сохранить только младший

55


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

при

последнем

сдвиге.

Это обеспечивается

одним дополнительным

разрядом

сумма­

тора.

 

 

 

 

 

 

 

 

 

Пример 2.12.

Рассмотрим пример данной

выше схемы умножения, когда

множимое И ,]пр =

0 М 101

и множитель [Л2|пр =

Г.Ю1 1 >---------------------------

Содержимое сумматора перед началом

 

 

 

Дополнительный разряд

 

00’.0000

0

 

 

умножения

 

 

+

 

 

 

 

 

Передача множимого в сумматор

 

 

 

 

 

 

(первое частное произведение)

 

00.1101

0

 

 

Первая

сумма частных произведений

2 i = 00.11010i

0

 

 

Сдвиг

на один разряд вправо-

- >

00.0110

1

 

 

Второе частное произведение

+

00.1101

0

 

 

 

 

 

 

=

01 .ООП

1

 

 

 

 

 

Сдвиг 2 2 -

- >

00.1001

1

 

 

Третье

частное произведение

+

00.0000

0

 

 

 

 

 

 

=

00.1001

1

 

 

Сдвиг 2 3- Четвертое частное произведение

- > 00.0100

1

+

00.1101

0

=

01.0001

1

 

 

Сдвиг 2 .4-

- > 00.1000

1

 

 

Округление

+

1

Знак множимого

„О

>1 Г .1001

О0 = [Л, И2]"р — результат.

Знак

множителя

^1

 

 

Знак

произведения

1>

 

 

При других схемах умножения, когда производятся сдвиги вправо или влево множимого или сдвигаются влево промежуточ­ ные суммы частных произведений,, требуется количество дополни­ тельных разрядов р> \ [16]. Следует также заметить, что для уско­ рения процессов умножения широко используются схемы, в кото­ рых производится умножение одновременно на несколько разря­ дов множителя (на 2, 4, 6).

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

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

56