Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
с. работа - Логика.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
2.16 Mб
Скачать

4.6. Умножение чисел в машинах с плавающей запятой

Если заданы А = а • 2m1 и В =b • 2m2 в нормальной форме, то их произведение составит

АВ = аb2 m1 + m2.

Следовательно, умножение нормализованных чисел состоит из сле­дующих этапов;

1. Определение знака произведения путем сложения по mod2 зна­ковых цифр мантисс сомножителей.

2. Алгебраическое сложение порядков сомножителей в инверсном коде с целью определения порядка произведения.

3. Умножение модулей мантисс сомножителей по правилам умно­жения чисел с фиксированной запятой.

4. Нормализация и округление мантиссы результата. Следует учесть, что сомножители являются нормализованными числами. Поэтому денормализация мантиссы произведения возможна только на один разряд вправо. Она устраняется путем сдвига мантиссы на один разряд влево и вычитания единицы из порядка результата.

5. Присвоение знака результату.

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

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

Округление мантиссы результата производится следующим обра­зом. Если мантисса результата получилась без нарушения нормали­зации, то округление производится обычно добавлением единицы в (n + 1)-й разряд сумматора. Если мантисса произведения денормализована вправо, то при 2п-м разрядном результате вначале произ­водится нормализация, а затем округление; при (n + 1)-разрядном результате вначале производится округление, а затем нормали­зация.

Во всех случаях единица округления добавляется в (n + 1)-й разряд сумматора только при наличии в нем кода «1».

4.7. Особенности выполнения операции умножения в современных эвм

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

Практически во всех моделях умножение производится, начиная с младших разрядов множителя со сдвигом суммы частичных произ­ведений, при этом используются схемы ускоренного умножения. Так, в ЕС-1030 умножение производится одновременно на 2 разряда множителя, а в ЕС-1050 — на четыре.

Коррекция псевдорезультата при А > 0, В < 0 производится в конце операции при умножении А на знаковую цифру множителя путем прибавления к псевдорезультату [A] Д.

Коррекция псевдорезультата при А < 0, В >0 выполняется последовательно в процессе умножения благодаря модифицирован­ному сдвигу суммы частичных произведений. Как мы видела, необ­ходимое количество единиц, вводимых таким образом в процессе умножения, оказывается соответствующим количеству единиц в до­полнительном коде множителя [-В] Д .

При А < 0 и В < 0 первый корректирующий член учитывается в конце операции, а второй — последовательно в ходе умножения.

В некоторых ЭВМ, например СМ-1210, умножение производится за один такт с помощью матричного умножителя, а в процессоре СВС-1 комплекса ЭЛЬ БРУС-1 умножение производится сразу на 8 разрядов множителя.

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

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

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