Дерево Уоллеса
Содержание
Это что?
Дерево Уоллеса --- схема для умножения двух чисел.
Как оно работает(макро)?
В отличие от ещё одной схемы для умножения --- матричного умножителя, дерево Уоллеса не складывает все числа последовательно, а с помощью специального элемента(назовём его ) преобразует 3 числа и в числа и такие, что .
С помощью этого элемента на каждом шаге производятся следующие операции:
- Берутся тройки чисел , . При этом какие-то числа могут остаться.
- Для каждой тройки применяется элемент .
- Повторять пункты 1 и 2 пока не осталось 2 числа.
- Оставшиеся 2 числа складываются с помощью двоичного каскадного сумматора.
На выходе имеем число, которое равно сумме чисел на всех входах.
Как оно работает(микро)?
Теперь о том, как устроен элемент .
Для построения элемента нам потребуется элемент, который умеет складывать 3 бита и возвращать 2 бита результата. Основная идея реализации --- отдельная обработка переносов и остатков.
Тогда первое число ответа может быть получена так: , где , и --- входные числа, а , и --- соответствующие их -е биты.
Второе же число можно получить так: , где --- функция медианы(она же "голосование 2 из 3"). С помощью этой функции считается перенос.
Очевидно, полученные числа и дадут в сумме
А чем оно лучше матричного умножителя?
Теперь подсчитаем схемную сложность этого элемента.
Каждый элемент имеет глубину и размер .
Теперь разберёмся, сколько в этой схеме элементов . На каждом шаге количество чисел, которые нужно просуммировать, уменьшается на . Тогда глубина дерева будет равна элементов . Тогда общая сложность равна
