Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
60
Добавлен:
28.01.2014
Размер:
43.52 Кб
Скачать

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

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

дения иногда в разрядной сетке необходим дополнительный сдвиг суммы ЧП вправо.

Так как цифры множителя могут принимать только значения «О» и «1», ЧП могут быть равны либо нулю, либо множимому, поэтому умножение двоичных чисел сводится к повторяющимся микрооперациям сложения и сдвига. Сложение ЧП производится в сумматоре с двумя входами, поэтому их сумма накапливается постепенно, на каждом шаге.

Различают следующие методы умножения (рис. 4.8):

  1. Мм

    начиная с младших разрядов множителя и сдвигом множи­мого влево;

  2. начиная с младших разрядов множителя и сдвигом суммы ЧП вправо;

  3. начиная со старших разрядов множителя и сдвигом множи­мого вправо;

БУ

4) начиная со старших разрядов множителя и сдвигом суммы ЧП влево.

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

На каждом шаге умножения в БУ проводится анализ одной цифры множителя. В зависимости от ее значения БУ формирует сигналы для выдачи множимого в сумматор, если цифра множи­теля равна «1», а также сигналы сдвига на регистр множителя и множимого (или суммы ЧП).

Реализация методов 2 и 4 требует меньших аппаратурных зат­рат, так как при этом используется регистр множимого меньшей разрядности. Кроме того, при сдвиге множимого один из входов сумматора должен иметь удвоенную разрядность, что также уве­личивает затраты на реализацию методов 1 и 3 (см. рис. 4.8, а, в). Анализ схем реализации методов 2 и 4 показывает, что затраты можно уменьшить, если использовать освобождающиеся разряды регистра множителя для записи уже сформированных разрядов произведения так, как это показано на рис. 4.8, б, г пунктирными линиями. При умножении используются методы со сдвигом ЧП (рис. 4.9).

При умножении чисел со знаками отдельно определяются мо­дуль произведения и его знак. Знак произведения определяется сумми­рованием по модулю 2 знаков сомножителей. Вычисление модуля про­изведения может выполняться в прямом или дополнительном коде.

Пример определения модуля произведения различными мето­дами в ПК при умножении чисел Мм,0 = 10 (Мм2 = 1010) и Мт!0 = 13 (Мт2 = 1101) приведен в табл. 4.1.

Умножение в ПК требует преобразования кодов, если числа хранятся в памяти в ДК, поэтому чаще умножение выполняется непосредственно в ДК. При этом произведение ДК не всегда рав­но ДК произведения. В зависимости от сочетания знаков сомно­жителей необходимо определенным образом корректировать ре­зультат. Далее приводятся значения поправок при умножении дроб­ных чисел с ФТ.

1. Если Мм > 0 и Мт > 0, то Ммдк = |Мм( и Мт^ = |Мт|. Тогда Ммдк х МтДк = |Мм| х )Мт| = |Мм х Мт| = (Мм х Мт)дк.

Коррекция не нужна.

2. Если Мм > 0 и Мт < 0, то Ммдк = |Мм| и Мтдк = 1 - |Мт|. Тогда Ммдк х МтЛк = |Мм| х (1 - |Мт|) = |Мм| - |Мм| х |Мт|. Так как (Мм х Мт)дк= 1 - |Мм х Мт| = 1 - |Мм| х |Мт|, то нужна

коррекция и величина корректирующей поправки А = 1 - |Мм[, т. е. дополнению множимого, взятого со знаком минус.

3. Если Мм < 0 и Мт > 0, то Ммдк = 1 - |Мм| и Мт^ = |Мт| Тогда Ммдк х Мт^ = (1 - |Мм|) х ]Мт| = |Мт| - |Мм х Мт|. Так как (Мм х Мт)дк= 1 - |Мм х Мт| = 1 - |Мм| х |Мт|, то нужна

коррекция и величина корректирующей поправки А = 1 - |Мт|, т. е. дополнению множителя, взятого со знаком минус.

4. Если Мм < 0 и Мт < 0, то Ммдк = 1 - |Мм( и Мт^ = 1 - |Мт| Тогда Ммдк х МтЛк = (1 - |Мм|)(1 - |Мт|).= 1 - |Мт| - |Мм| +

|Мм х Мт|.

Так как (Мм х Мт)дк = |Мм х Мт| = |Мм| х |Мт|, то нужна коррекция и величина корректирующей поправки А = |Мм| + |Мт| -- 1. Так как вычитание единицы приводит только к изменению знакового разряда, а знак определяется отдельно, то величина поправки может быть принята равной сумме модулей множимого и множителя, т.е. А = |Мм| + |Мт|. Поправки вводятся на дополни­тельном шаге умножения.

Примеры умножения чисел в ДК по методу 2 приведены в табл. 4.2:

|Мм| = 1010; (-|Мм|)дк = 0110; |Мт) = 1101; (-|Мт|)дк = ООП.

1

Соседние файлы в папке Ответы