Claims (1)
Цель изобретения - сокращение временных затрат на получение произведения двух сомножителей. Это достигается путем одновременной обработки всех разрядов двух сомножителей так, что в один такт работы по признаку нечетности числа единиц в диагональном срезе формируются единичные значения частичных сумм в каждой диагонали, а по признаку положения границы между нулями и единицами в упорядоченном диагональном срезе формируются переносы. Окончательное формирование произведения происходит на последующих дополнительных тактах работы, число которых определяется отсутствием единиц среди переносов. Указанный способ реализуется использованием устройства, включающего регистры сомножителей 1, 2, блок регистров или блок ассоциативной памяти 3, группу блоков обработки диагональных срезов 5, блок хранения значений промежуточных сумм и переносов 10, а также блок синхронизации 14. В каждом блоке 5 диагональные срезы частичных сумм упорядочиваются так, что вначале располагаются подряд все единицы, а затем все нули. Затем по результатам анализа диагональных срезов на нечетность числа единиц и на положение границы между "0"" и "1" формируют суммы и переносы при сложении частичных сумм. За один основной и несколько дополнительных тактов работы устройства получают окончательное произведение.The purpose of the invention is to reduce the time required to obtain the product of two factors. This is achieved by simultaneously processing all the bits of two factors so that in one cycle of work, on the basis of the odd number of units in the diagonal slice, unit values of the partial sums in each diagonal are formed, and transfers are formed on the basis of the position of the boundary between zeros and ones in the ordered diagonal slice. The final formation of the work takes place at subsequent additional steps of the work, the number of which is determined by the absence of units among transfers. The indicated method is implemented using a device including registers of factors 1, 2, a register block or an associative memory block 3, a group of processing units for diagonal slices 5, a block for storing values of intermediate sums and transfers 10, and also a synchronization block 14. In each block 5, diagonal partial slices sums are ordered so that first all units are arranged in a row, and then all zeros. Then, according to the results of the analysis of diagonal slices for the odd number of units and the position of the border between “0” and “1”, sums and transfers are formed when partial sums are added. For one main and several additional clock cycles, the devices receive the final product.