устройство для умножения чисел

Классы МПК:G06F7/52 для умножения; для деления
Автор(ы):,
Патентообладатель(и):Научно-исследовательский институт электронных вычислительных машин
Приоритеты:
подача заявки:
1991-07-10
публикация патента:

Изобретение относится к вычислительной технике и может быть использовано при разработке быстродействующих устройств умножения чисел, удобных для изготовления с применением БИМ и СБИС. Цель изобретения - сокращение аппаратурных затрат и расширение функциональных возможностей устройства за счет обеспечения умножения чисел как в беззнаковой форме, так и чисел со знаками. Устройство содержит n одноразрядных узлов 1 умножения /n - разрядность множимого/, две группы по n буферных регистров 2, 3, n комбинационных сумматоров 4 первой группы, (n + 1) комбинационных сумматоров 5 второй группы и нововведенные (n + 1) регистров 6 промежуточного результата, n триггеров 7 переноса, (n - 1) коммутаторов 8 и узел 9 формирования коррекции с соответствующими связями. 4 ил.
Рисунок 1, Рисунок 2, Рисунок 3, Рисунок 4

Формула изобретения

УСТРОЙСТВО ДЛЯ УМНОЖЕНИЯ ЧИСЕЛ, содержащее n одноразрядных узлов умножения (n - разрядность множимого), две группы по n буферных регистров, n комбинационных сумматоров первой группы и n + 1 комбинационных сумматоров второй группы, причем вход множителя i-го одноразрядного узла умножения (i = 1, . . . , n) соединен с входом множителя устройства, вход i-го разряда множимого которого соединен с входом множимого i-го одноразрядного узла умножения, первый и второй управляющие входы которого соединены с первым управляющим входом устройства, выходы старшего и младшего разрядов i-го одноразрядного узла умножения соединены с входами i-х буферных регистров соответственно первой и второй групп, отличающееся тем, что в него введены n + 1 регистров промежуточного результата, n триггеров переноса, n - 1 коммутаторов и узел формирования коррекции, причем выход i-го буферного регистра первой группы соединен с входом первого слагаемого i-го комбинационного сумматора первой группы, выход суммы которого соединен с входом первого слагаемого (i + 1)-го комбинационного сумматора второй группы, выход j-го буферного регистра второй группы (j = 2, ... , n) соединен с входом второго слагаемого (j - 1)-го комбинационного сумматора первой группы, выход переноса которого соединен с первым информационным входом (j-1)-го коммутатора, второй информационный вход которого соединен с выходом переноса j-го комбинационного сумматора второй группы и входом (j-1)-го триггера переноса, выход первого буферного регистра второй группы соединен с входом первого слагаемого первого комбинационного сумматора второй группы, выход переноса которого соединен с входом переноса второго комбинационного сумматора второй группы, вход второго слагаемого n-го комбинационного сумматора первой группы соединен с первым выходом поправки узла формирования коррекции, второй выход поправки которого соединен с входом второго слагаемого (n + 1)-го комбинационного сумматора второй группы, выход переноса которого соединен с входом n-го триггера переноса, выход i-го триггера переноса соединен с входом переноса i-го комбинационного сумматора первой группы, выход суммы t-го комбинационного сумматора второй группы (t = 1, ... , n + 1) соединен с входом t-го регистра промежуточного результата, выход первого регистра промежуточного результата подключен к первому выходу устройства, второй выход которого соединен с выходом j-го регистра промежуточного результата, вход второго слагаемого i-го комбинационного сумматора второй группы соединен с выходом (i + 1)-го регистра промежуточного результата, второй управляющий вход устройства соединен с управляющим входом k-го коммутатора (k = 1, ... , n - 1), выход которого соединен с входом переноса (k + 2)-го комбинационного сумматора второй группы, первый, второй, третий, четвертый и пятый входы узла формирования коррекции соединены соответственно с входами режима работы, знака множителя, последовательной подачи множимого, знака множимого устройства и выходом n-го буферного регистра первой группы.

Описание изобретения к патенту

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

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

На фиг.1 приведена функциональная схема устройства для умножения чисел; на фиг. 2 - функциональная схема коммутатора; на фиг.3 - функциональная схема узла формирования коррекции; на фиг.4 - пример умножения 16-разрядных двоичных чисел для случая двоично-кодированной шестнадцетиричной системы счисления, представленных в дополнительном коде.

Устройство для умножения (фиг.1) содержит n одноразрядных узлов 1 умножения (n - разрядность множимого), n буферных регистров первой 2 и второй 3 групп, n комбинационных сумматоров 4 первой группы, (n+1) комбинационных сумматоров 5 второй группы, (n+1) регистров 6 промежуточного результата, n триггеров 7 переноса, (n-1) коммутаторов 8 и узел 9 формирования коррекции, входы множителя 10 и множимого 11 устройства, входы режима 12 работы, знака 13 множителя, последовательной подачи множимого 14 и знака 15 множимого устройства, первый 16 и второй 17 управляющие входы устройства, первый 18 и второй 19 выходы устройства, выходы старшего 20 и младшего 21 разрядов 1-го узла 1 умножения, выходы буферных регистров первой 22 и второй 23 групп, выходы суммы 24 и переноса 25 сумматора 4, вход переноса 26 сумматора 4, выходы суммы 27 и переноса 28 и вход переноса 29 сумматора 5, выходы 30 регистров 6, первый 31 и второй 32 выходы поправки узла 9.

Коммутаторы 8 (фиг.2) содержат элемент ИЛИ 33 и элемент И 34.

Узел 9 формирования коррекции (фиг.3) содержит дешифратор 35 нуля, выполненный на элементе ИЛИ, RS-триггеры 36, 37, элемент ИЛИ 38 и элемент ИСКЛЮЧАЮЩЕЕ ИЛИ 39 и элементы И 40, 41, 42.

Рассмотрим функциональное назначение и реализацию узлов и блоков устройства.

Узлы 1 комбинационного типа предназначены для вычисления произведения соответствующих разрядов множителей, представленных в виде чисел со знаком или кодов чисел в беззнаковой форме. Режим операции задается подачей соответствующих сигналов на первый и второй управляющие входы узла 1. Узлы 1 могут быть реализованы любым из известных способов. Например, узел 1 вместе с одноразрядными регистрами 2 и 3 входит в состав БИС-умножителей К1802ВР3, К1802ВР4, К1802ВР5.

Буферные регистры 2 и 3 предназначены для хранения значений разрядов произведений, формируемых соответствующими узлами 1 и могут быть реализованы на синхронных двухтактных D-триггерах с входами установки в нулевое состояние.

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

Регистры 6 предназначены для хранения информации, формируемой на выходах 27 суммы соответствующих сумматоров 5 и могут быть реализованы на синхронных двухтактных триггерах с входами установки в нулевое состояние.

Триггеры 7 предназначены для хранения разрядов переносов, возникающих при работе сумматоров 5, и могут быть реализованы на синхронных двухтактных D-триггерах с входами установки в нулевое состояние.

Коммутаторы 6 предназначены для передачи информации на их выходы 29 (входы переноса сумматоров 5) с первого или второго их информационных входов (выходов 25 и 28 переносов соответственно сумматоров 4 и 5) в зависимости от сигнала на их управляющих входах (входе 17 устройства).

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

Как известно, при умножении любого ненулевого положительного числа на отрицательное получается отрицательное произведение, расширяя знаковый разряд которого получают корректирующую поправку 11...11. Однако при умножении отрицательного числа на нуль, получают положительное число нуль и расширение будет 00. . .00. Необходимость введения поправки по знаку множимого (ненулевое значение разряда множителя) контролируется по старшему разряду произведения n-го узла 1, при этом подсуммирование поправки начинается после того, как в RS-триггер 37 будет записана "1", определяющая отрицательное частичное произведение. Далее в каждом такте через вход второго слагаемого n-го сумматора 4 поразрядно подсуммируется поправка 11...111 без запоминания возникающего при этом переноса. Нулевое значение разряда множимого контролируется с помощью дешифратора нуля, выполненного на элементе ИЛИ 35. Введение поправки по знаку множителя начинается (так же как и поправки по знаку множимого) после определения первого ненулевого разряда множимого, начиная с младших его разрядов, что фиксируется в RS-триггере 36. Разряд поправки при этом равен 11...11. Если далее следует нулевой разряд множимого, то разряд поправки будет 11...10, а если ненулевой разряд множимого - то 11...10 и т.д.

В целях упрощения на структурной схеме условно не показаны цепи синхронизации и установки в нулевое состояние регистров 2, 3 и 6, триггеров 7, а также триггеров 36 и 37 узла 9, однако можно отметить, что имеется общая цепь синхронизации и общая цепь установки в нулевое состояние регистров 2, 3 и 6, триггеров 7, а также триггеров 36 и 37 узла 9.

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

Умножение кодов.

В исходном состоянии регистры 2, 3 и 6, триггеры 7, а также триггеры 36 и 37 узла 9 обнулены, на входе 11 устройства присутствует без знака n-разрядный 2k-ичный код множимого (n*k - разрядный двоичный код множимого). Предполагается, что множимое и множитель представлены в двоично-кодированной 2k-ичной системе счисления, т.е. каждый разряд как множимого, так и множителя представляет собой набор из k двоичных цифр. На вход 16 устройства подан сигнал, настраивающий все узлы 1 на вычисление произведения разрядов сомножителей как кодов, на вход 12 - нулевые сигналы, а на вход 17 - сигнал, настраивающий коммутаторы 6 на передачу информации только с их первых информационных входов (выходов 25 сумматоров 4). Умножение в устройстве осуществляется за n+2 тактов.

В каждом из n первых тактов работы устройства на его вход 10 поступает один 2k-ичный разряд множителя (параллельно к двоичных разрядов). При этом, на выходах 20 и 21 i-го узла 1 (i=1,...,n) формируются соответственно старший и младший разряды двухразрядного произведения соответствующего разряда множителя, поступающего на его вход множителя с входа 10 устройства, на i-й разряд множимого, поступающий на его вход множимого с i-го разряда входа 11 устройства. Старший и младший разряды произведения i-го узла 1 по окончании каждого такта записываются в i-е регистры 2 и 3 соответственно. Одновременно с работой узлов 1 в каждом такте старший разряд произведения i-го узла 1, сформированный в предыдущем такте и хранящийся в i-м регистре 2, поступает на вход первого слагаемого i-го сумматора 4, на вход второго слагаемого которого поступает младший разряд (i+1)-го узла 1, сформированный в предыдущем такте и хранящийся в (i+1)-м регистре 3 (на вход второго слагаемого n-го сумматора 4 поступает нулевая информация с выхода 31 узла 9, а младший разряд первого узла 1, сформированный в предыдущем такте и хранящийся в первом регистре 3 поступает на вход первого слагаемого первого сумматора 5). Сумма указанных слагаемых i-го сумматора 4 с его выхода 24 поступает на вход первого слагаемого (i+1)-го сумматора 5, а их перенос - с выхода 25 через (i+2)-й коммутатор 8 на вход переноса (i+2)-го сумматора 5. На вход второго слагаемого i-го сумматора 5 поступает соответствующий разряд суммы частичных произведений сомножителей, сформированный в предыдущем такте и хранящийся в (i+1)-м регистре 8. На вход второго слагаемого (n+1)-го сумматора 5 поступает нулевая информация с выхода 32 узла 9. Сформированные сумматорами 5 разряды суммы частичных произведений в двухразрядном коде с их выходов 27 и 28 по окончании каждого такта записываются в соответствующие регистры 6 и триггеры 7.

После выполнения n первых идентичных тактов работы устройства на его вход 10 множителя поступает нулевая информация и осуществляется (n+1)-й такт, по окончании которого в регистры 2 и 3 записывается нулевая информация, а в регистры 8 и триггеры 7 - результат произведения сомножителей в двухрядном коде.

В (n+2)-м такте работы устройства на его вход 17 подается сигнал, настраивающий коммутаторы 6 на передачу информации с их первых и вторых информационных входов (выходов 25 и 28 переносов соответственно сумматоров 4 и 5) и осуществляется приведение двухрядного кода результата к однорядному. Следует отметить, что на выходах 25 сумматоров 4 в этом такте переносы не возникают, что позволяет упростить структуру коммутаторов 9 (фиг.2).

Вывод n+1 младших 2k-ичных разрядов 2n - разрядного произведения в устройстве осуществляется через его выход 18 по одному разряду в каждом такте работы устройства, начиная со второго такта, а вывод n-1 старших 2k-ичных разрядов произведения - через выход 19 в (n+2)-м такте работы устройства.

Умножение чисел, представленных в дополнительном коде.

Исходное состояние устройства аналогично описанному выше режиму (за исключением следующего) на входе 11 устройства присутствует n-разрядное значение множимого, включая его знаковый разряд: на вход 16 устройства подан сигнал, настраивающий n-й узел 1 на вычисление произведения код-число, а все остальные узлы 1 - на вычисление произведения кодов; на входы 13 и 16 поданы значения знаков множителя и множимого соответственно: на вход 12 - нулевые сигналы. Умножение в устройстве осуществляется за (n+2) тактов. На фиг. 4 показан пример умножения в предлагаемом устройстве 16-разрядных двоичных чисел, представленных в дополнительном коде в двоично-кодированной шестнадцатеричной системе счисления. Ввод корректирующих поправок с третьего такта работы устройства. Поправки вводятся при отрицательных множимом или множителе, а также зависят от того, есть ли в множимом или множителе нулевые разряды. Если младшие разряды множимого или множителя равны нулю, то первые разряды соответствующих поправок также равны нулю. Первый же ненулевой разряд множимого или множителя вызывает введение соответствующей поправки в виде 11...11. Поправка по знаку множителя во всех последующих тактах также равна 11...11, поскольку она подсуммируется в n-м сумматоре 4 без сохранения переноса. Значения разрядов поправки по знаку множимого зависят от того, какими являются последующие разряды множимого-нулевыми или ненулевыми. Если последующий разряд множимого равен нулю, то вводится поправка 11. . . 11, а если последующий разряд множимого не равен нулю, то вводится 11...10.

В первом такте работы устройства на его вход 10 поступает младший значащий 2k-ичный разряд множителя (параллельно k двоичных разрядов). При этом на выходах 20 и 21 k-го узла 1 (k=1,...n-1) формируются соответственно старший и младший разряды двухразрядного произведения младшего значащего разряда множителя, поступающего на его вход множителя с входа 10 устройства на k-й значащий разряд множимого, поступающий на его вход множимого с k-го разряда входа 11 устройства. В n-м узле 1 осуществляется умножение младшего значащего разряда множителя, поступающего на его вход множителя с входа 10 устройства на старший разряд множимого (этот разряд содержит информацию о знаке множимого), поступающий на его вход множимого с n-го разряда входа 11 устройства. Старший и младший разряды произведения i-го узла 1 по окончании первого такта записываются в i-е регистры 2 и 3 соответственно.

Во втором такте работы устройства на его вход 10 поступает второй значащий разряд множителя, с использованием которого в узлах 1 осуществляются аналогичные описанным выше действия. По окончании второго такта в i-е регистры 2 и 3 записываются старший и младший разряды произведения i-го узла 1, а в регистры 6 и триггеры 7 - соответствующие разряды частичного произведения множимого на младший разряд множителя. Кроме того, в этом такте на вход установки в единицу триггеры 37 узла 9 поступает информация о знаке частичного произведения, сформированного в первом такте, и если множимое отрицательное и первый разряд множителя не равен нулю, то триггер 37 устанавливается в "1", в противном случае он остается в состоянии "0".

С третьего по n-й такты работы устройства через входы второго слагаемого n-го сумматора 4 и (n+1)-го сумматора 5 вводятся корректирующие поправки. При отрицательном множителе на входе 13 устройства присутствует "1", а при отрицательном множимом на входе 15 устройства присутствует "1". На вход 14 устройства подается по одному разряду в каждом такте множимое, начиная с его младшего разряда. На вход 12 устройства подается сигнал, разрешающий прохождение корректирующих поправок на выходы 31 и 32 узла 9. Ненулевые значения поправок формируются после установки триггеров 36 и 37 в "1", т.е. , когда соответствующие разряды множимого и множителя не равны нулю. После чего, на выходе 31 узла 9 всегда будет присутствовать "11...11", а на выходе 32 узла 9 - или "11...10" (если следующий разряд множимого не равен нулю), или "11...11", (если следующий разряд множимого равен нулю).

С третьего по (n-1)-й такты работы устройства на его вход 10 подаются с третьего по (n-1)-й значащие разряды множителя по одному разряду в каждом такте. В узлах 1 и сумматорах 4 и 5 при этом осуществляются действия, аналогичные описанному выше второму такту работы устройства с подсуммированием через входы второго слагаемого n-го сумматора 4 и (n+1)-го сумматора 6 корректирующей информации, причем перенос, возникающий в результате суммирования в n-м сумматоре 4 теряется, а перенос, возникающий в результате суммирования в (n+1)-м сумматоре 5 записывается по окончании каждого такта в n-й триггер 7.

В n-м такте работы устройства на вход 10 устройства подается самый старший разряд множителя, который содержит информацию о знаке множителя. На вход 16 устройства поступает сигнал, настраивающий с первого по (n-1)-й узлы 1 на вычисление произведения число-код, а n-й узел 1 на умножение чисел. Работа устройства аналогична описанной выше.

В (n+1)-м такте работы устройства на вход 10 устройства подается нулевая информация. В сумматорах 4 и 5 выполняются аналогичные описанным выше действия и по окончании (n+1)-го такта в регистры 6 и триггеры 7 записываются разряды полного произведения сомножителей с учетом корректирующих поправок в двухрядном коде.

В (n+2)-м такте работы устройства на его вход 17 подается сигнал, настраивающий коммутаторы 8 на передачу информации с их первых и вторых информационных входов (выходов 25 и 28 переносов соответственно сумматоров 4 и 5) и осуществляется приведение двухрядного кода результата к однорядному.

Вывод (n+1) младших 2k-ичных разрядов 2n-разрядного произведения в устройстве осуществляется через его выход 18 по одному разряду в каждом такте работы устройства, начиная со второго такта, а вывод (n-1) старших 2k-ичных разрядов произведения - через выход 19 в (n+2)-м такте работы устройства.

Класс G06F7/52 для умножения; для деления

способ организации умножения чисел с плавающей запятой, представленных в системе остаточных классов -  патент 2485574 (20.06.2013)
устройство для умножения чисел в коде "1 из 4" -  патент 2475812 (20.02.2013)
устройство и способ комбинаторного кодирования сигналов с низкой сложностью -  патент 2438235 (27.12.2011)
ускоренный умножитель на нейронах -  патент 2322688 (20.04.2008)
нейронная сеть для деления чисел, представленных в системе остаточных классов -  патент 2305312 (27.08.2007)
способ, устройство и команда для выполнения знаковой операции умножения -  патент 2275677 (27.04.2006)
целочисленное умножение высокого порядка с округлением и сдвигом в архитектуре с одним потоком команд и множеством потоков данных -  патент 2263947 (10.11.2005)
устройство для умножения чисел в коде "1 из 4" -  патент 2251144 (27.04.2005)
делитель на нейронах -  патент 2249846 (10.04.2005)
умножитель на нейронах -  патент 2249845 (10.04.2005)
Наверх