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

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

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

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

Добавлен: 11.04.2024

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

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

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

Ра > Р в . Тогда для выравнивания порядков

следует

порядок р в

увеличить на величину

разности р А— р в ,

т. е.

 

 

 

в NPa ~Pb

= n Pbn Pa~Pb -

 

=

N PAm'

(2.19)

n pa- pb

 

PA~PB

 

b

 

 

N‘

 

 

 

 

i

 

 

»rPA—PB

, т. e. сдвинутая

где mB— мантисса ms , разделенная на

N

 

на рА—Рв разрядов вправо.

Теперь сумму чисел с одинаковыми (выравненными) порядка­ ми можно представить в виде

5 = N Psms = N PAmA + N PAm’B= N Pa (tnA+ m'B). (2.20)

Следовательно, мантисса суммы ms = mA -\- т ’в и порядок сум­

мы p s = P A.

Если выполняются операции с автоматической нормализацией, то по окончании сложения сумма S нормализуется.

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

выравнивание порядков слагаемых;

сложение мантисс;

нормализация результата.

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

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

При сложении мантисс, по абсолютной величине меньших еди­ ницы, возможны случаи переполнения разрядной сетки сумматора мантисс, называемые нарушением нормализации влево. Если при­ меняются модифицированные коды, то признаком нарушения нор­ мализации влево служит появление разных цифр (0 Г ,... или 10’, ...) в знаковых разрядах.

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

62


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

Пример 2.15. Пусть требуется сложить два числа, записанные в запоминаю­ щем устройстве в следующем виде:

[Л]пр=

0 .1 1 0 1 ’1 0 1 0 0

и

[£ |пр= 1 . 1 1 0 0 ' 40110,

 

 

 

 

 

 

.1

 

Знак числа

Мантисса

 

Знак числа

Мантисса

Характеристика

 

 

 

Характеристика

что соответствует

 

 

 

 

 

 

 

Л = шдМРа =

+ 0,1010011»1

и В = тв МРв = — 0.10110-1011»0.

Характеристики

р \ и рв представляют собой

 

и

р'л = [рд 1пр + 23 =

0.101’

+ 1000 = 1101’

 

 

 

 

 

 

 

Рв = [рв ]пр +

23 = 0.100’ +

1000 =

1100’,

где рА и рв истинные порядки

(дд =

+

101

и рв =

+ 1 0 0 ).

а) Выравниваем порядки слагаемых, для чего вычитаем из характеристики р \ характеристику рв . Вычитание заменяем прибавлением дополнения рв до 24,

т. е. 0100. Тогда

,1101

+0100

0001.

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

тиссу [/йй|Пр = Г. ЮНО. В результате получаем [шд]пр = Г,01011.

б) Складываем мантиссы с использованием модифицированного дополни тельного кода:

[т л]пР = оомоюо

+Ы д о п = + Н'Л0Ю1

К]п р + К ]д оп = 00\01001 = [тА + т'в]«г

-------^Нарушение нормализации вправо!

в) Нормализуем результат 0,01001 • 101101, для чего сдвигаем мантиссу на один разряд влево и из значения характеристики суммы вычитаем единицу. Нор­ мализованный результат 0 , 1 0 0 1 -Ю1100.

В запоминающее устройство результат суммирования будет записан в сле­ дующем виде:

0. 1100’ ’ 1001.

63


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

Вычитание. По команде ВЫЧЕСТЬ вычитание чисел с разны­ ми порядками, как и сложение, производится в три этапа:

выравнивание порядков;

вычитание мантисс;

нормализация результата.

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

Умножение. Из общего выражения для произведения двух чи­ сел A — mAN PA и В = mBN PB, представленного в виде

П =

mnN Pn = mAtnBN р а + р в

( 2 . 21)

следует, что порядок произведения рп = РА + Рв

и мантисса про­

изведения т^ — тлтв.

 

 

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

Если вместо истинных порядков применяются характеристики P'a = P a jt 2? и р'в = РвЛ- 29, где q — количество двоичных раз­ рядов, которое может иметь число, выражающее максимально воз­ можный порядок, то характеристика произведения определяется как

( 2.22)

В общем случае процесс умножения состоит из следующих этапов:

— определение знака произведения путем сложения по mod 2 знаковых разрядов мантисс сомножителей;

определение порядка произведения;

перемножение мантисс;

нормализация результата.

Если перемножаются двоичные нормализованные числа, то ман­ тисса произведения тн может иметь любое значение в пределах 0,01 <|#гп|<4.0 и, следовательно, может иметь место только на­ рушение нормализации вправо не более чем на один разряд. Слу-

Н


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

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

В общем случае процесс деления в машинах с плавающей запя­ той состоит из следующих этапов:

—- определение знака частного;

определение порядка частного;

деление мантисс;

нормализация результата.

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

§ 2.6. Арифметические операции над десятичными числами

При организации выполнения таких действий десятичные числа обычно представляются как целые, т. е. с запятой, фиксированной справа. Для операций сложения и вычитания они выравниваются по правой границе, определяемой этой запятой. Арифметические операции над десятичными числами начинаются с анализа знаков. Если знаки одинаковые, то по команде СЛОЖИТЬ числа скла­ дываются в прямом коде. Если знаки разные, то из большего числа вычитается меньшее. Меньшее, в данном случае отрицательное,

число

представляется в виде

дополнения до 10п, где п — количе­

ство

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

наиболее длинном из участвующих

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

Пример 2.16. Аналогично примеру 2.7, используя кодирование с избытком 6 , произвести арифметические операции сложения и вычитания.

а)

Сложить числа /Ь = +82 и А2——75 (+1000 0010 и —0111 0101). Допол­

нение 75 до 102

равно 25, тогда

 

,82

А,

и

1 0 0 0

0 0 1 0

А,

"*”25 Доп. А2

 

"П000

1011

Доп. А2 (с избытком б в каждой тетраде)

п «- 07

Л + А2

п ч- 0000

1101

 

 

 

 

+

1010

Коррекция

 

 

 

 

 

 

 

Q0QO 0Ш

А} + А3

65


При выполнении сложения над числами в двончио-десятнчпой форме допол­ нение второго числа определяем путем инвертирования значений двоичных раз­ рядов в тетрадах с прибавлением единицы в младший разряд младшей тетрады. Такое дополнение получается с потетрадным избытком 6 . Поэтому если при сло­ жении нет переносов из каких-либо тетрад, то они корректируются путем вычи­ тания из них 6 (прибавления 1010— дополнения 6 до 16). Наличие переноса п из старшей тетрады при сложении Ai и дополнения Д2 свидетельствует о том, что

результат получился в прямом коде.

б) Найти разность Л]—Д2= 75—82= 75+(—82).

Дополнение 82 до 102 равно 18, тогда

75

Д,

и

О +

 

18

Доп. — Д2

 

О

 

 

 

 

93

Доп. Д] — Д2

 

1 1 1 1

J

 

 

 

А

07

Д4 — Л2

 

I

 

 

 

+ 1 0 1 0

 

 

 

 

1001

 

, 0 1 1 0

+ 1 0 1 0 0 0 0 0

Д ,— А2 = — 7 (-0000 0111).

0 Ю1 д ,

1110 Доп. А2 ( с избытком 6 в каждой тетраде)

ООН

Коррекция ООП Доп. А — а 2

1101 Д, — А2 ( с избытком 6 в каждой тетраде)

1010 Коррекция

0111 Ai — Д2 (истинное значение)

В данном примере отсутствие переноса из старшей тетрады при сложении Ai

и дополнения для — Д2 говорит о том, что результат получился отрицательный в виде дополнения. Для определения истинного значения результата надо от по­ лученного дополнения для А^— Д2 взять новое дополнение и из него потетрадно

вычесть 6 (прибавить 1 0 1 0 ).

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

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

метров.

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

66