Матричный умножитель — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Схема)
(Схема)
Строка 24: Строка 24:
 
Формирование частичных произведений осуществляется посредством логических элементов "AND".
 
Формирование частичных произведений осуществляется посредством логических элементов "AND".
 
Полные одноразрядные сумматоры обеспечивают формирование разрядов результата.
 
Полные одноразрядные сумматоры обеспечивают формирование разрядов результата.
Разрядность результата - -<tex> l </tex> определяется разрядностью множителя - <tex> n </tex> и множимого - <tex> k </tex>: <tex> l=n+k </tex>.
+
Разрядность результата - -<tex> l </tex> определяется разрядностью множителя - <tex> n </tex> и множимого - <tex> k</tex>:  
 +
 
 +
<tex> l=n+k </tex>.
  
  

Версия 22:24, 18 января 2016

Назначение

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

Принцип работы

Умножение в бинарной системе

Mult bin.png

Умножение в бинарной системе счисления происходит точно так же, как в десятичной - по схеме "умножения столбиком". Если множимое - [math]k[/math] разрядное, а множитель -[math]n[/math] разрядный, то для формирования произведения требуется вычислить [math]n[/math] частичных произведений и сложить их между собой.

Вычисление частичных произведений

В бинарной системе для вычисления частичного произведения можно воспользоваться логическими элементами "AND" - конъюнкторами. Каждое частичное произведение ([math]m_i[/math]) - это результат выполнения [math]k[/math] логических операции "AND" ( между текущим [math]i ( i=1..n)[/math] разрядом множителя и всеми [math]k[/math] разрядами множимого) и сдвига результата логической операции влево на число разрядов, соответствующее весу текущего разряда множителя. Матричный умножитель вычисляет частичные произведения по формуле:

[math]m_i = 2^{i - 1} (a \wedge b_i), где i=1..n[/math]

Суммирование частичных произведений

На этом этапе происходит сложение всех частичных произведений [math] m [/math].

Схема

Схема матричного умножителя

Принципиальная схема умножителя, реализующая алгоритм двоичного умножения в столбик для двух четырёх-разрядных чисел приведена на рисунке. Формирование частичных произведений осуществляется посредством логических элементов "AND". Полные одноразрядные сумматоры обеспечивают формирование разрядов результата. Разрядность результата - -[math] l [/math] определяется разрядностью множителя - [math] n [/math] и множимого - [math] k[/math]:

[math] l=n+k [/math].


Все конъюнкторы работаю параллельно. Полные одноразрядные сумматоры обеспечивают поразрядное сложение результатов конъюнкций и переносов из предыдущих разрядов сумматора. В приведенной схеме использованы четырех разрядные сумматоры с последовательным переносом. Время выполнения операции умножения определяется временем распространения переносов до выходного разряда [math] p8 [/math].

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

Если внимательно посмотреть на схему умножителя, то можно увидеть, что она образует матрицу, сформированную проводниками, по которым передаются разряды числа [math]A[/math] и числа [math]B[/math]. В точках пересечения этих проводников находятся логические элементы “И”. Именно по этой причине умножители, реализованные по данной схеме, получили название матричных умножителей.

Схемная сложность

Частичные произведения вычисляются за [math]n[/math] шагов. Сложение с вычислением переносов включает [math]n - 1[/math] шаг. Последнее сложение можно выполнить за [math]O(\log n)[/math].

В итоге суммарное время работы:

[math]O(n) + O(n) + O(\log n) = O(n) [/math]

Время работы схемы можно сократить, если сумматоры располагать не последовательно друг за другом, как это предполагается алгоритмом, приведенным на первом рисунке (общая схема), а суммировать частичные произведения попарно, затем суммировать пары частичных произведений и т.д. В этом случае время выполнения операции умножения значительно сократится.

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

Есть и более быстрые способы умножения двух чисел, например умножение с помощью дерева Уоллеса, которое работает [math]O(\log n)[/math].

Литература и источники

  • Е. Угрюмов "Цифровая схемотехника" 2001г.
  • Дк. Ф. Уэйкерли "Проектирование цифровых устройств, том 1." 2002г.
  • М.И. Богданович "Цифровые интегральные микросхемы" 1996г.
  • В.Л. Шило "Популярные цифровые микросхемы" 1988г.