Изменения

Перейти к: навигация, поиск

Матричный умножитель

225 байт добавлено, 06:23, 26 октября 2011
Нет описания правки
[[Файл:Mul_2.jpg‎|right|Схема матричного умножителя]]
Далее будем рассматривать умножение четырехразрядных чисел. Соответственно нам понадобится три четырёхразрядных сумматора. <br>
Принципиальная схема умножителя, реализующая алгоритм двоичного умножения в столбик, приведена на рисунке-схеме. Формирование частичных произведений в этой схеме осуществляют микросхемы <tex>D1, D3, D5, D7</tex>. В этих микросхемах содержится сразу четыре логических элемента “2И”.
==== Работа схемы ====
===== Этап 1 =====Сумматор, выполненный на микросхеме <tex>D6</tex>, суммирует первое и второе частные произведения. При этом младший разряд первого частного произведения не нуждается в суммировании. Поэтому он подаётся на выход умножителя непосредственно (разряд <tex>M0</tex>). <br>===== Этап 2 =====Второе частное произведение должно быть сдвинуто на один разряд. Это осуществляется тем, что младший разряд выходного числа сумматора <tex>D6 </tex> соединяется со вторым разрядом произведения (<tex>M1</tex>). Но тогда первое частное произведение необходимо сдвинуть на один разряд по отношению ко второму частному произведению! Это выполняется тем, что младший разряд группы входов <tex>A </tex> соединяется с первым разрядом частного произведения, первый разряд группы входов <tex>A </tex> соединяется со вторым разрядом частного произведения, и т.д. Однако старший разряд группы входов <tex>A </tex> не с чем соединять! Вспомним, что если добавить к числу слева ноль, то значение числа не изменится, поэтому мы можем этот разряд соединить с общим проводом схемы. <br>===== Завершение =====Точно таким же образом осуществляется суммирование третьего и четвёртого частного произведения. Это суммирование выполняют микросхемы <tex>D4 </tex> и <tex>D2 </tex> соответственно. Отличие заключается только в том, что здесь не нужно задумываться о старшем разряде предыдущей суммы, ведь предыдущая микросхема сумматора формирует сигнал переноса.
==== "Матричный умножитель" ====
Если внимательно посмотреть на схему умножителя, то можно увидеть, что она образует матрицу, сформированную проводниками, по которым передаются разряды числа <tex>A </tex> и числа <tex>B</tex>. В точках пересечения этих проводников находятся логические элементы “2И”. Именно по этой причине умножители, реализованные по данной схеме, получили название матричных умножителей.
==Схемная сложность==
Частичные произведения вычисляются за ''n'' шагов. Сложение с вычислением переносов включает ''n - 1'' шаг. Последнее сложение можно выполнить за ''O(log n)''. <br>
<tex>O(n) + O(n) + O(log n) = O(n) </tex> <br>
Конкретно по нашей схеме: <br>
Скорость работы схемы, приведенной на рисунке-схеме определяется максимальным временем распространения сигнала. Это цепь <tex>D7, D6, D4, D2</tex>. Время работы схемы можно сократить, если сумматоры располагать не последовательно друг за другом, как это предполагается алгоритмом, приведенным на первом рисунке (общая схема), а суммировать частичные произведения попарно, затем суммировать пары частичных произведений и т.д. В этом случае время выполнения операции умножения значительно сократится. <br>
Особенно заметен выигрыш в быстродействии при построении многоразрядных умножителей, однако ничего не бывает бесплатно. В обмен на быстродействие придётся заплатить увеличением разрядности сумматоров, а значит сложностью схемы. Если сумматоры частных произведений останутся той же разрядности, что и ранее, то разрядность сумматоров пар частичных произведений должна быть увеличена на единицу. Разрядность сумматоров четвёрок частичных произведений будет на два разряда больше разрядности сумматоров частичных произведений и т.д. <br>
Есть и более быстрые способы умножения двух чисел, например умножение с помощью [[дерево Уоллеса|дерева Уоллеса]], которое работает ''O(log n)''.
Анонимный участник

Навигация