Метод ускоренного умножения Лемана

Метод Лемана рассмотрим в предположении, что умножение выполняется, начиная с младших разрядов множителя.

Алгоритм в данном цикле операции умножения может быть записан в следующем виде:

Метод ускоренного умножения Лемана - student2.ru

где Метод ускоренного умножения Лемана - student2.ru - номер разряда множителя;

Метод ускоренного умножения Лемана - student2.ru - цифра Метод ускоренного умножения Лемана - student2.ru -го разряда множителя;

Метод ускоренного умножения Лемана - student2.ru - двоичная переменная, единичное значение которой для соответствующего разряда множителя указывает на необходимость выполнения арифметического действия между суммой частичных произведений и множимым (сложение или вычитание);

Метод ускоренного умножения Лемана - student2.ru - знак арифметического действия.

Очевидно, что при Метод ускоренного умножения Лемана - student2.ru .

Если Метод ускоренного умножения Лемана - student2.ru , то производится сложение суммы частичных произведений с множимым. При Метод ускоренного умножения Лемана - student2.ru производится вычитание множимого из суммы частичных произведений.

Из анализа приведенных выше выражений, описывающих алгоритм действий в данном цикле умножения, следует, что перед началом операции умножения Метод ускоренного умножения Лемана - student2.ru . Это значение Метод ускоренного умножения Лемана - student2.ru сохраняется до появления первой единицы в младшем разряде множителя. При появлении там единицы Метод ускоренного умножения Лемана - student2.ru производится сложение множимого с предшествующей суммой частичных произведений, если в следующем по старшинству разряде множителя содержится «0», или производится вычитание множимого из предшествующей суммы частичных произведений, если в следующем по старшинству разряде множителя содержится «1», то есть Метод ускоренного умножения Лемана - student2.ru .

При появлении 0 в младшем разряде множителя производится вычитание множимого из предшествующей суммы частичных произведений, если в следующем по старшинству разряде множителя содержится «1» Метод ускоренного умножения Лемана - student2.ru , или производится сложение множимого с предшествующей суммой частичных произведений, если в следующем по старшинству разряде множителя содержится «0» Метод ускоренного умножения Лемана - student2.ru .

Рассмотрим на конкретном примере последовательность действий в сумматоре и регистре множителя при умножении по методу Лемана.

Пусть множимое Метод ускоренного умножения Лемана - student2.ru , а множитель Метод ускоренного умножения Лемана - student2.ru .

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

С учетом сказанного схема выполнения конкретного примера ускоренного умножения по методу Лемана представлена ниже.

Метод ускоренного умножения Лемана - student2.ru Метод ускоренного умножения Лемана - student2.ru

Содержимое Содержимое

регистра Метод ускоренного умножения Лемана - student2.ru сумматора Метод ускоренного умножения Лемана - student2.ru [CM]

100011 10 исходное состояние 00 00000000 0

010001 11 сдвиг вправо Метод ускоренного умножения Лемана - student2.ru и [CM] 00 00000000 0

(-) + 11 01001011 1

Метод ускоренного умножения Лемана - student2.ru 11 01001011 1

001000 11 сдвиг вправо Метод ускоренного умножения Лемана - student2.ru и [CM] 11 10100101 1

000100 01 сдвиг вправо Метод ускоренного умножения Лемана - student2.ru и [CM] 11 11010010 1

000010 00 сдвиг вправо Метод ускоренного умножения Лемана - student2.ru и [CM] 11 11101001 0

Метод ускоренного умножения Лемана - student2.ru (+) + 00 10110100 0

Метод ускоренного умножения Лемана - student2.ru Метод ускоренного умножения Лемана - student2.ru Метод ускоренного умножения Лемана - student2.ru Метод ускоренного умножения Лемана - student2.ru 1 00 10011101 0

00 10011101 1

000001 00 сдвиг вправо Метод ускоренного умножения Лемана - student2.ru и [CM] 00 01001110 1

000000 10 сдвиг вправо Метод ускоренного умножения Лемана - student2.ru и [CM] 00 00100111 0

000000 01 сдвиг вправо Метод ускоренного умножения Лемана - student2.ru и [CM] 00 00010011 1

Метод ускоренного умножения Лемана - student2.ru (+) + 00 10110100 0

произведение Метод ускоренного умножения Лемана - student2.ru 00 11000111 1

округление Метод ускоренного умножения Лемана - student2.ru 00 11001000 0

Метод ускоренного умножения Лемана - student2.ru

Непосредственным умножением можно легко проверить, что полученное значение произведения Метод ускоренного умножения Лемана - student2.ru соответствует истинному с учетом округления.

Анализ показывает, что при умножении по методу Лемана даже при наиболее неблагоприятном сочетании цифр Метод ускоренного умножения Лемана - student2.ru разрядного множителя (101010…) количество операций суммирования равно Метод ускоренного умножения Лемана - student2.ru . В среднем же количество операций суммирования равно Метод ускоренного умножения Лемана - student2.ru .

Наши рекомендации