Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТВП / TVP.doc
Скачиваний:
67
Добавлен:
12.04.2015
Размер:
391.17 Кб
Скачать

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

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

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

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

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

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

4) нормализация и округление мантиссы результата. Денормализация мантиссы возможна только на один разряд вправо. Для устранения путем сдвига мантиссы на один разряд слева и вычитание единицы на один разряд влево и вычитание единицы из порядка результата.

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

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

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

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

Способы ускорения деления

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

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

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

2) для остатка Ri-1 справедливо:

0Ri-1<R.

Теперь Ri-1 сдвинуть на два разряда влево, то следующую пару цифр частного и остаток можно определить по следующим правилам:

Частное

Ri

22Ri-1<B

00

4Ri-1

B22Ri-1<2B

01

4Ri-1-B

2B22Ri-1<3B

10

4Ri-1-2B

3B22Ri-1

11

4Ri-1-3B

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

3) В тех случаях, когда ЭВМ обеспечивается большая скорость выполнения операции умножения, вместо операции деления целесообразно применить один из итеративных способов определения частного.

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

4) Ускорение деления может быть достигнуто за счет использования матричных схем.

Соседние файлы в папке ТВП