Методы ускорения умножения

Методы ускорения умножения делятся на аппаратурные и логические. Как те, так и другие требуют дополнительных затрат оборудования. При использовании аппаратурных методов дополнительные затраты оборудования прямо пропорциональны числу разрядов в операндах. Эти методы вызывают усложнение схемы АЛУ.

Дополнительные затраты оборудования при реализации логических методов ускорения умножения не зависят от разрядности операндов. Усложняется в основном схема АЛУ. В ЭВМ для ускорения умножения часто используется комбинации этих методов.

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

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

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

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

Это учитывается при обработке следующей пары разрядов. Если следующая пара 00, то она обрабатывается как 01, если 01, то как 10, если 10, то как 11, если 11, то как 00, и фиксируется необходимостью коррекции при обработке следующей пары. Удвоенное множимое может быть получено его сдвигом. Признак необходимости коррекции может запоминаться в отдель­ном триггере коррекции.

Правила обработки пар разрядов множителя с учетом при­знака коррекции сведены в таблице 4.3.4

Таблица 4.3.4- Правила обработки пар разрядов множителя с учетом при­знака коррекции

Пара разрядов множителя Признак коррекции из предыдущей Признак коррекции для следующей Знак действия Кратность множимому
 
+
+
-
+
+
-
 

 

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

Данный метод умножения требует корректировки результа­та, если старшая пара разрядов множителя 11 или 10 и состоя­ние триггера коррекции является единичным. В этом случае к полученному произведению должно быть добавлено множи­мое. Аналогичным образом можно организовать умножение с обработкой за шаг большего числа разрядов множителя.