RU2159464C1 - Flexible asynchronous adder-multiplier - Google Patents
Flexible asynchronous adder-multiplier Download PDFInfo
- Publication number
- RU2159464C1 RU2159464C1 RU99109904A RU99109904A RU2159464C1 RU 2159464 C1 RU2159464 C1 RU 2159464C1 RU 99109904 A RU99109904 A RU 99109904A RU 99109904 A RU99109904 A RU 99109904A RU 2159464 C1 RU2159464 C1 RU 2159464C1
- Authority
- RU
- Russia
- Prior art keywords
- multiplexers
- asynchronous
- term
- block
- summation
- Prior art date
Links
- 238000004364 calculation method Methods 0.000 abstract description 3
- 239000000654 additive Substances 0.000 abstract 4
- 230000000996 additive effect Effects 0.000 abstract 3
- 230000000694 effects Effects 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 238000007792 addition Methods 0.000 description 16
- 238000000034 method Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 244000309464 bull Species 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Images
Landscapes
- Complex Calculations (AREA)
Abstract
Description
Изобретение относится к техническим средствам информатики и вычислительной техники и может быть использовано в высокоскоростных арифметико-логических устройствах, в том числе в арифметико-логических устройствах для вычисления быстрого преобразования Фурье (БПФ) и сверток по методу Винограда. The invention relates to technical means of computer science and computer technology and can be used in high-speed arithmetic-logic devices, including arithmetic-logic devices for calculating the fast Fourier transform (FFT) and convolutions by the method of Vinograd.
Известны различные схемы сумматоров, а также умножителей, построенных на основе последовательно включенных сумматоров [1]. There are various schemes of adders, as well as multipliers, built on the basis of series-connected adders [1].
В качестве прототипа выбран "Параллельный асинхронный сумматор" (патент РФ N 2097826, 1997 г. Бюл. N 33), содержащий n блоков параллельной обработки разрядных срезов, n-1 формирователей импульсов, запускающий формирователь импульсов, элемент 8 ИЛИ-НЕ. Его отличительной особенностью является организация процесса сложения операндов по разрядным срезам. С помощью обратной связи выхода суммы арифметического полусумматора на его вход через один из ключей осуществляется пространственное разделение ситуаций возникновения переносов и их одновременная коррекция в разных позициях параллельного асинхронного сумматора, что повышает его быстродействие. As a prototype, “Parallel asynchronous adder” (RF patent N 2097826, 1997 Bull. N 33) was selected, containing n blocks of parallel processing of bit slices, n-1 pulse shapers, which starts the pulse shaper, element 8 OR-NOT. Its distinctive feature is the organization of the process of adding operands to bit slices. Using feedback, the output of the sum of an arithmetic half-adder to its input through one of the keys is used to spatially separate the occurrence of hyphenation and their simultaneous correction in different positions of the parallel asynchronous adder, which increases its speed.
Вычисление дискретного преобразования Фурье и сверток широко применяется в области цифровой обработки сигналов. Известны методы, позволяющие уменьшить их вычислительную сложность. Один из них - алгоритм Винограда [2]. Особенностями алгоритмов Винограда вычисления сверток и дискретного преобразования Фурье являются значительное превышение числа сложений над числом умножений, попеременное вычисление больших групп сложений и умножений. В связи с этим возможно построение реконфигурируемого арифметико-логического устройства для выполнения сложений и умножений, составным элементом которой является устройство на основе параллельного асинхронного сумматора. Недостатком параллельного асинхронного сумматора является отсутствие аппаратной поддержки выполнения операции умножения. The calculation of discrete Fourier transform and convolution is widely used in the field of digital signal processing. Known methods to reduce their computational complexity. One of them is the Vinohrad algorithm [2]. The specific features of the Winograd algorithms for calculating convolutions and the discrete Fourier transform are the significant excess of the number of additions over the number of multiplications, and the alternate calculation of large groups of additions and multiplications. In this regard, it is possible to build a reconfigurable arithmetic-logic device for performing additions and multiplications, an integral element of which is a device based on a parallel asynchronous adder. The disadvantage of a parallel asynchronous adder is the lack of hardware support for performing the multiplication operation.
Технической задачей изобретения является расширение функционального назначения асинхронного сумматора за счет объединения группы асинхронных сумматоров в реконфигурируемую матрицу с помощью введения дополнительных элементов и связей с целью получения возможности выполнения одной операции умножения либо нескольких операций сложения в определенный промежуток времени. An object of the invention is to expand the functionality of an asynchronous adder by combining a group of asynchronous adders into a reconfigurable matrix by introducing additional elements and relationships in order to be able to perform one multiplication operation or several addition operations in a certain period of time.
Технически задача решается тем, что к блоку асинхронного суммирования, который состоит из 2m блоков параллельной обработки разрядных срезов, 2m-1 формирователей импульсов и запускающего формирователя импульсов, первые выходы которых соединены с соответствующими входами элемента ИЛИ-НЕ, выход которого является выходом готовности суммы, а вторые выходы блоков параллельной обработки разрядных рядных срезов являются выходами результата, с целью возможности объединения m блоков асинхронного суммирования в реконфигурируемую матрицу и осуществления подачи слагаемых на соответствующие блоки асинхронного суммирования дополнительно введены: коммутатор-сдвигатель первого слагаемого, блок мультиплексоров первого слагаемого, состоящий из 2m мультиплексоров 3 в 1, блок мультиплексоров второго слагаемого, состоящий из 2m мультиплексоров 2 в 1, мультиплексор готовности суммы, инвертор, 2m шинных мультиплексора слагаемых, каждый из которых содержит 2m мультиплексоров n в 1, блок управления устройством, шинный мультиплексор множителя, состоящий из m мультиплексоров n в 1. Информационные входы шинных мультиплексоров слагаемых соединены с n 2m-разрядными входами данных, информационные входы шинного мультиплексора множителя соединены с n m-разрядными входами, которые являются младшими разрядами входов данных. Выход шинного мультиплексора множителя, а также вход команд подключены к блоку управления. Выходы шинных мультиплексоров слагаемых соединены с соответствующими входами блоков асинхронного суммирования. Выходы блока управления соединены с управляющими входами шинного мультиплексора множителя, шинных мультиплексоров слагаемых, а также с блоками мультиплексоров первого слагаемого, блоками мультиплексоров второго слагаемого, мультиплексорами готовности суммы блоков асинхронного суммирования, выход начала суммирования блока управления соединен со вторым входом мультиплексора готовности суммы блоков асинхронного суммирования. Вход первого слагаемого блока асинхронного суммирования соединен с коммутатором-сдвигателем первого слагаемого и вторым входом блока мультиплексоров первого слагаемого. Выход коммутатора-сдвигателя соединен с первым входом блока мультиплексоров первого слагаемого, третий вход блока мультиплексоров первого слагаемого подключен ко входу логического нуля. Вход второго слагаемого блока асинхронного суммирования соединен со вторым входом блока мультиплексоров второго слагаемого. Первый вход блока мультиплексоров второго слагаемого, исключая первый блок асинхронного суммирования, соединен с выходом результата предыдущего блока асинхронного суммирования, первый вход блока мультиплексоров второго слагаемого первого блока асинхронного суммирования соединен с логическим нулем. Выходы блоков мультиплексоров первого и второго слагаемого соединены с соответствующими входами блоков параллельной обработки разрядных срезов. Вход готовности суммы является выходом готовности суммы предыдущего блока асинхронного суммирования, исключая первый блок асинхронного суммирования, и соединен через инвертор с первым входом мультиплексора готовности суммы. Выход мультиплексора готовности суммы соединен с блоками параллельной обработки разрядных срезов и запускающим формирователем импульсов. В первом блоке асинхронного суммирования вход готовности суммы, мультиплексор готовности суммы и инвертор отсутствуют, сигнал начала суммирования блока управления соединен непосредственно с блоками параллельной обработки разрядных срезов и запускающим формирователем импульсов. Technically, the problem is solved by the fact that to the asynchronous summation unit, which consists of 2m blocks of parallel processing of bit slices, 2m-1 pulse shapers and a trigger pulse shaper, the first outputs of which are connected to the corresponding inputs of the OR-NOT element, the output of which is the sum ready output, and the second outputs of the blocks for parallel processing of the discharge line slices are the outputs of the result, with the goal of combining m units of asynchronous summation into a reconfigurable matrix and realizing The terms for supplying the terms to the corresponding asynchronous summation blocks are additionally introduced: the first terminator switch-shifter, the first term multiplexer block, consisting of 2m 3 in 1 multiplexers, the second term multiplexer block, consisting of 2m 2 in 1 multiplexers, the amount ready multiplexer, inverter, 2m bus term multiplexer, each of which contains 2m n in 1 multiplexers, a device control unit, a multiplier bus multiplexer, consisting of m n in 1 multiplexers. Information inputs The odes of the bus term multiplexers are connected to n 2m-bit data inputs, the information inputs of the bus multiplexer of the multiplier are connected to n m-bit inputs, which are the least significant bits of the data inputs. The output of the bus multiplexer multiplier, as well as the input of the commands are connected to the control unit. The outputs of the bus term multiplexers are connected to the corresponding inputs of the units of asynchronous summation. The outputs of the control unit are connected to the control inputs of the bus factor multiplexer, bus term multiplexers, as well as the blocks of the first term multiplexers, the blocks of the second term multiplexers, the readiness multiplexers of the sum of asynchronous summation blocks, the output of the summation start of the control block is connected to the second input of the readiness multiplexer of the sum of asynchronous summation blocks . The input of the first term of the asynchronous summation unit is connected to the switch-shifter of the first term and the second input of the multiplexer block of the first term. The output of the switch-shifter is connected to the first input of the block of multiplexers of the first term, the third input of the block of multiplexers of the first term is connected to the input of logical zero. The input of the second term of the asynchronous summation block is connected to the second input of the second term multiplexer block. The first input of the second term multiplexer block, excluding the first asynchronous summation block, is connected to the output of the result of the previous asynchronous summation block, the first input of the second term multiplexer block of the first term asynchronous summation is connected to a logic zero. The outputs of the blocks of the multiplexers of the first and second term are connected to the corresponding inputs of the blocks for parallel processing of bit slices. The sum readiness input is the sum readiness output of the previous asynchronous summation block, excluding the first asynchronous summation block, and is connected through the inverter to the first input of the sum readiness multiplexer. The output of the sum readiness multiplexer is connected to blocks for parallel processing of bit slices and a triggering pulse shaper. In the first block of asynchronous summation, the sum readiness input, the sum readiness multiplexer and the inverter are absent, the summation start signal of the control unit is connected directly to the blocks for parallel processing of bit slices and the triggering pulse shaper.
Сущность изобретения поясняется чертежами, где на фиг. 1 изображена структурная схема реконфигурируемого асинхронного сумматора-умножителя, на фиг. 2 изображена структурная схема блока асинхронного суммирования, на фиг. 3 изображен пример, иллюстрирующий процесс умножения, на фиг. 4 изображена таблица, показывающая значения сигналов управления при выполнении операций сложения и умножения. The invention is illustrated by drawings, where in FIG. 1 is a structural diagram of a reconfigurable asynchronous adder-multiplier; FIG. 2 shows a block diagram of an asynchronous summation unit; FIG. 3 is an example illustrating the multiplication process; FIG. 4 is a table showing the values of control signals during addition and multiplication operations.
Реконфигурируемый асинхронный сумматор-умножитель состоит из 2m шинных мультиплексоров слагаемых 1, которые объединены в блок шинных мультиплексоров слагаемых 2, шинного мультиплексора множителя 3, блока управления 4, m блоков асинхронного суммирования 5, которые объединены в реконфигурируемую матрицу 6. В блок асинхронного суммирования входят коммутатор-сдвигатель 7, блок мультиплексоров первого слагаемого 8, блок мультиплексоров второго слагаемого 9, мультиплексор готовности суммы 10, асинхронный сумматор 11, со стоящий из 2m блоков параллельной обработки разрядных срезов 12, 2m-1 формирователей импульсов 131...132m-1, запускающего формирователя импульсов 130, инвертора 14, элемента ИЛИ-НЕ 15.The reconfigurable asynchronous adder-multiplier consists of 2m
Устройство работает следующим образом. Известно, что произведение двух k-разрядных чисел есть 2k-paзрядное число, которое является суммой k сдвигов одного из множителей, сдвинутых согласно значениям разрядов другого множителя, то есть, к примеру, произведение чисел 11 (двоичное представление 1011) и 7 (двоичное представление 0111) есть сумма сдвигов числа 1011 согласно значениям разрядов числа 0111 (проиллюстрировано на фиг. 3). Таким образом, возможно построение устройства, выполняющего в определенный промежуток времени либо одно умножение двух k-разрядных чисел, либо k сложений чисел разрядностью 2k-l. Предлагаемое устройство реализует данную возможность с помощью матрицы параллельных асинхронных сумматоров, выполняемая операция (умножение либо группа сложений) определяется с помощью изменения конфигурации связей блоков асинхронного суммирования и подачей на блоки асинхронного суммирования требуемых входных значений. Программоуправляемый блок управления 4 управляет работой следующих блоков устройства: шинных мультиплексоров слагаемых 11...12m с помощью соответствующих сигналов управления шинными мультиплексорами слагаемых УМ1...УМ2m шинного мультиплексора множителя 3 с помощью сигнала управления шинным мультиплексором множителя УММ; блоками мультиплексоров первого слагаемого 8, блоками мультиплексоров второго слагаемого 9, мультиплексорами готовности суммы 10 блоков асинхронного суммирования 51...5m с помощью сигналов управления блоками асинхронного суммирования УС1...УСm, кроме того, блок управления выдает на блоки асинхронного суммирования сигнал C начала суммирования. Возможны два типа операций, исполняемых устройством в определенный момент времени: выполнение одного умножения двух m-разрядных чисел, либо m сложений чисел разрядностью 2m. В зависимости от кода операции, определяемого программой, подаваемой на вход команд ПРОГ, блок управления 4 выдает следующие значения сигналов управления, сведенные в таблицу на фиг. 4. Если выполняемая операция - умножение, на сигнал управления шинным мультиплексором множителя УММ выдается число от 1 до n требуемого входного значения множителя, определяемое программой, которое затем подается на блок управления для выполнения операции умножения. На четные номера сигналов управления шинными мультиплексорами слагаемых УМ2, УМ4,...,УМ2m выдается число от 1 до n требуемого входного значения множимого, определяемое программой, которое затем через соответствующие шинные мультиплексоры слагаемых подается на входы первого слагаемого СЛ1...СЛ1m блоков асинхронного суммирования. На нечетные номера сигналов управления шинными мультиплексорами слагаемых УM1, УМ3,...,УМ2m-1 выдается комбинация, сигнализирующая о том, что соответствующие шинные мультиплексоры слагаемых необходимо перевести в третье состояние, значения входов второго слагаемого СЛ21...СЛ2m блоков асинхронного суммирования не используются. Если выполняемые операции - группа сложений, на сигнал управления шинным мультиплексором множителя УММ выдается комбинация, сигнализирующая о том, что шинный мультиплексор множителя необходимо перевести в третье состояние, значение его выхода не используется. На сигналы управления шинными мультиплексорами слагаемых УМ1...УМ2m выдаются числа от 1 до n требуемых входных значений слагаемых, определяемые программой, которые затем через соответствующие шинные мультиплексоры слагаемых подаются на входы первого слагаемого СЛ11...СЛ1m и входы второго слагаемого СЛ21. . . СЛ2m блоков асинхронного суммирования. Сигналы управления блоками асинхронного суммирования УС1...УСm управляют блоками мультиплексоров первого слагаемого, блоками мультиплексоров второго слагаемого и мультиплексорами готовности суммы соответствующих блоков асинхронного суммирования. Каждый из сигналов управления блоком асинхронного суммирования УС является двухразрядным. Младший разряд является признаком выполняемой операции и устанавливается блоком управления в "0", если выполняемая операция - умножение, и в "1", если выполняемая операция - сложение. Старший разряд при выполнении сложения всегда принимает значение "0", а при выполнении умножения является инверсией соответствующего разряда множителя, подаваемого с шинного мультиплексора множителя на блок управления. К примеру, если i-й разряд множителя имеет значение "1", то старший разряд сигнала управления i-м блоком асинхронного суммирования УСi принимает значение "0". Таким образом, на первый вход асинхронного сумматора через блок мультиплексоров первого слагаемого при значении сигнала УСi "00" подается множимое со входа первого слагаемого СЛi, сдвинутое влево с помощью коммутатора-сдвигателя на i разрядов, при значении "01" подается первое слагаемое со входа первого слагаемого СЛi, при значении "10" на первый вход асинхронного сумматора подаются логические нули. На блок мультиплексоров второго слагаемого и мультиплексор готовности суммы подается только младший разряд сигнала управления блоком асинхронного суммирования УСi, таким образом, при значении младшего разряда сигнала УСi "0", на второй вход асинхронного сумматора подается выход результата предыдущего блока асинхронного суммирования, на блоки параллельной обработки разрядных срезов и запускающий формирователь импульсов - инверсия значения выхода готовности суммы предыдущего блока асинхронного суммирования, а при значении младшего разряда сигнала УСi "1" на второй вход асинхронного сумматора подается значение со входа второго слагаемого СЛ2, на блоки параллельной обработки разрядных срезов и запускающий формирователь импульсов - сигнал C начала суммирования. Процесс выполнения группы операций сложения состоит из двух стадий. Первая стадия начинается поступлением сигнала начала суммирования C = 1. К этому времени на входы асинхронного сумматора 11 уже поданы значения операндов. При поступлении сигнала C = 1 запускающий формирователь импульсов 130 вырабатывает сигнал, инициирующий начало суммирования. В результате сложения операндов по разрядам формируется текущая сумма на выходах 12 и значения переносов, которые анализируются элементом ИЛИ-НЕ 15. Если не было переносов, то текущая сумма становится окончательной, о чем сигнализирует "1" на выходе готовности суммы ГСi. Затем следует вторая стадия сложения, которая заключается в параллельной коррекции текущей суммы путем ее сложения по разрядным срезам с полученными значениями переносов. Параллельная коррекция текущей суммы осуществляется по сигналу C = 0. На время коррекции возбужденные формирователи импульсов 131...132m-1 выдают сигналы на элемент ИЛИ-НЕ 15, так что на выходе готовности суммы ГСi формируется сигнал "0", сигнализирующий о том, что сумма еще не готова. Выполнение операции умножения начинается поступлением сигнала начала суммирования C = 1 на блок асинхронного суммирования 51. Суммирование на этом блоке происходит соответственно описанному выше процессу выполнения операции сложения. После того как сумма готова, она подается с выхода результата PE31 на вход следующего блока асинхронного суммирования 52, на выходе готовности суммы сформировался сигнал ГС1 = 1, свидетельствующий о готовности суммы, одновременно разрешающий начало второй стадии сложения на блоке асинхронного суммирования 52. Корректное завершение первой стадии суммирования гарантируется более длинной цепью прохождения сигнала готовности результата через блоки 13-15-14-10, чем сигнала результата через блок 9. После завершения суммирования на блоке 52 процесс переходит на блок 53, и так далее, пока на выходе РЕЗm блока асинхронного суммирования 5m не появится результат умножения, а на выходе готовности суммы ГСm "1", свидетельствующая о готовности результата умножения.The device operates as follows. It is known that the product of two k-bit numbers is a 2k-bit number, which is the sum of k shifts of one of the factors shifted according to the bits of the other factor, that is, for example, the product of the numbers 11 (binary representation 1011) and 7 (binary representation 0111) is the sum of the shifts of the number 1011 according to the digits of the number 0111 (illustrated in FIG. 3). Thus, it is possible to build a device that performs in a certain period of time either one multiplication of two k-bit numbers, or k additions of numbers with a capacity of 2k-l. The proposed device implements this opportunity using a matrix of parallel asynchronous adders, the operation performed (multiplication or group of additions) is determined by changing the configuration of the connections of the blocks of asynchronous summation and applying the required input values to the blocks of asynchronous summation. The programmable control unit 4 controls the operation of the following device units:
Список использованной литературы
1. Карцев М.А. Арифметика цифровых машин. - М.: Наука.List of references
1. Kartsev M.A. Arithmetic of digital machines. - M .: Science.
2. Блейхут Р. Быстрые алгоритмы цифровой обработки сигналов. - М.: Мир, 1989. 2. Bleikhut R. Fast digital signal processing algorithms. - M.: Mir, 1989.
3. Патент РФ N 2097826, 1997. Титенко Е.А., Титов B.C., Довгаль В.М. 3. RF patent N 2097826, 1997. Titenko EA, Titov B.C., Dovgal V.M.
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU99109904A RU2159464C1 (en) | 1999-05-05 | 1999-05-05 | Flexible asynchronous adder-multiplier |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU99109904A RU2159464C1 (en) | 1999-05-05 | 1999-05-05 | Flexible asynchronous adder-multiplier |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2159464C1 true RU2159464C1 (en) | 2000-11-20 |
Family
ID=20219716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU99109904A RU2159464C1 (en) | 1999-05-05 | 1999-05-05 | Flexible asynchronous adder-multiplier |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2159464C1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2461867C1 (en) * | 2011-06-23 | 2012-09-20 | Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом" - Госкорпорация "Росатом" | Reconfigurable computational conveyor |
-
1999
- 1999-05-05 RU RU99109904A patent/RU2159464C1/en active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2461867C1 (en) * | 2011-06-23 | 2012-09-20 | Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом" - Госкорпорация "Росатом" | Reconfigurable computational conveyor |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US3515344A (en) | Apparatus for accumulating the sum of a plurality of operands | |
US6009451A (en) | Method for generating barrel shifter result flags directly from input data | |
US6209017B1 (en) | High speed digital signal processor | |
US5883824A (en) | Parallel adding and averaging circuit and method | |
US4041292A (en) | High speed binary multiplication system employing a plurality of multiple generator circuits | |
US4156922A (en) | Digital system for computation of the values of composite arithmetic expressions | |
US3508038A (en) | Multiplying apparatus for performing division using successive approximate reciprocals of a divisor | |
WO1993022721A1 (en) | Compact multiplier | |
US4965762A (en) | Mixed size radix recoded multiplier | |
EP0356153B1 (en) | Radix-2**n divider method and apparatus using overlapped quotient bit selection and concurrent quotient rounding and correction | |
US20140136588A1 (en) | Method and apparatus for multiplying binary operands | |
JP3213628B2 (en) | An arithmetic unit for multiplying long integers modulo M and an R.M. S. A. converter | |
EP0295788B1 (en) | Apparatus and method for an extended arithmetic logic unit for expediting selected operations | |
US4769780A (en) | High speed multiplier | |
US4065666A (en) | Multiply-divide unit | |
CN1020170C (en) | high speed digital processor | |
JP3277089B2 (en) | Multiplier and product-sum operation unit | |
RU2159464C1 (en) | Flexible asynchronous adder-multiplier | |
US4503512A (en) | Cellular division circuit | |
US7607165B2 (en) | Method and apparatus for multiplication and/or modular reduction processing | |
KR100271074B1 (en) | Process and configuration for establishing the sum of a chain of products | |
US5691930A (en) | Booth encoder in a binary multiplier | |
JPS58137045A (en) | Parallel multiplier | |
RU2797164C1 (en) | Pipeline module multiplier | |
US5119325A (en) | Multiplier having a reduced number of partial product calculations |