RU2689819C1 - Vector multiformat multiplier - Google Patents
Vector multiformat multiplier Download PDFInfo
- Publication number
- RU2689819C1 RU2689819C1 RU2018130310A RU2018130310A RU2689819C1 RU 2689819 C1 RU2689819 C1 RU 2689819C1 RU 2018130310 A RU2018130310 A RU 2018130310A RU 2018130310 A RU2018130310 A RU 2018130310A RU 2689819 C1 RU2689819 C1 RU 2689819C1
- Authority
- RU
- Russia
- Prior art keywords
- bit
- point
- floating
- numbers
- integer
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Algebra (AREA)
- Nonlinear Science (AREA)
- Complex Calculations (AREA)
Abstract
Description
Изобретение относится к области вычислительной техники, к структуре вычислительных блоков микропроцессоров, а именно к векторным мультиформатным умножителям, и может быть использовано для вычисления произведений чисел с фиксированной и плавающей точкой разных типов, произведений с накоплением, комплексных произведений и сумм произведений в одном микропроцессоре.The invention relates to the field of computing technology, to the structure of microprocessor computing units, namely to vector multi-format multipliers, and can be used to calculate products of fixed and floating point numbers of different types, works with accumulation, complex products and sums of products in one microprocessor.
Для решения задач цифровой обработки информации одной из ключевых операций является операция умножения, а также основанные на ней операции комплексного умножения, умножения с накоплением и различные суммы произведений. Эти операции необходимы для вычисления преобразований Фурье, фильтров и произведений матриц, что, в свою очередь, является основой решения задач коммуникации, обработки изображений и видео, а также сверточных нейронных сетей. Таким образом, производительность операций умножения является основой быстрого решения важнейших задач цифровой обработки информации.To solve the problems of digital information processing, one of the key operations is the multiplication operation, as well as operations of complex multiplication, multiplication with accumulation and various sums of products based on it. These operations are necessary for calculating Fourier transforms, filters and matrix products, which, in turn, is the basis for solving communication, image and video processing problems, as well as convolutional neural networks. Thus, the performance of multiplication operations is the basis for quickly solving the most important tasks of digital information processing.
При традиционном подходе к разработке вычислительных блоков микропроцессора, для вычисления произведений разных типов используют отдельные аппаратные блоки. Так, отдельные блоки используют для вычисления произведений чисел с фиксированной точкой разрядностью 32 бита, чисел с фиксированной точкой разрядностью 64 бита, чисел с плавающей точкой одинарной точности и чисел с плавающей точкой двойной точности. Учитывая то, что операции вычисления произведений разных типов редко выполняют одновременно, а также то, что блоки умножения являются весьма затратными аппаратными ресурсами микропроцессора, подобный подход ведет к увеличению площади устройства (микропроцессора) и низкому коэффициенту повторного использования, то есть простою аппаратуры.In the traditional approach to the development of microprocessor computing units, separate hardware units are used to calculate works of various types. So, separate blocks are used to calculate the products of 32-bit fixed-point numbers, 64-bit fixed-point numbers, single-precision floating-point numbers, and double-precision floating-point numbers. Considering that the operations of calculating works of various types are rarely performed at the same time, and also that multiplication units are very expensive microprocessor hardware resources, this approach leads to an increase in the area of the device (microprocessor) and low reuse rate, that is, equipment downtime.
В патенте CN 106951211 (А) описан мультиформатный умножитель принцип действия которого заключается в вычислении произведений большей разрядности на основе умножителей меньшей разрядности.CN 106951211 (A) describes a multi-format multiplier whose principle of action is to calculate products of higher capacity based on multipliers of lower capacity.
Недостатком данного мультиформатного умножителя является то, что его функциональность ограничена вычислением произведений чисел с фиксированной точкой (12 бит и 24 бита) и произведением чисел с плавающей точкой одинарной точности, при этом отсутствует возможность вычисления произведений чисел с плавающей точкой половинной и двойной точности, а также возможности осуществления умножений с накоплением и сумм произведений.The disadvantage of this multi-format multiplier is that its functionality is limited to calculating the products of fixed-point numbers (12 bits and 24 bits) and the product of single-precision floating-point numbers, while there is no possibility of calculating the products of floating-point half and double precision, and possibilities of multiplication with accumulation and sums of products.
Известен из патента CN 105607889 (А) мультиформатный умножитель, в котором реализован принцип вычисления произведений большей разрядности на основе умножителей меньшей разрядности, а также решены задачи вычисления произведений чисел с фиксированной точкой (32 бита и 64 бита) и плавающей точкой (одинарной и двойной точности), осуществления умножения с накоплением, комплексного умножения и вычисления сумм произведений. Кроме того, данный умножитель позволяет одновременного выполнять две независимые операции для 32-разрядных операндов.Known from the CN 105607889 (A) patent is a multi-format multiplier, which implements the principle of calculating products of higher capacity based on multipliers of lower capacity, and also solves the problem of calculating products of fixed-point (32-bit and 64-bit) and floating-point (single and double precision) ), the implementation of multiplication with accumulation, complex multiplication and calculation of the sums of products. In addition, this multiplier allows you to simultaneously perform two independent operations for 32-bit operands.
Недостатком данного мультиформатного умножителя является его ограниченная функциональность, вследствие отсутствия возможности вычисления произведений чисел с фиксированной точкой размерами 8 бит и 16 бит, а также вычисления произведений чисел с плавающей точкой половинной точности.The disadvantage of this multi-format multiplier is its limited functionality, due to the lack of the possibility of calculating the products of fixed-point numbers of 8 bits and 16 bits, as well as the calculation of the products of floating-point half-precision.
Наиболее близким к заявленному изобретению является векторный мультиформатный умножитель, описанный в заявке US 2013138711 (А1), в котором реализован принцип вычисления произведений большей разрядности на основе умножителей меньшей разрядности, осуществлена задача вычисления произведений чисел с фиксированной точкой разных типов (8 бит, 16 бит и 32 бита) в одном устройстве. Данный векторный мультиформатный умножитель выбран в качестве прототипа заявленного изобретения.Closest to the claimed invention is a vector multiformat multiplier described in the application US 2013138711 (A1), which implements the principle of calculating works of higher capacity based on multipliers of lower capacity, the task of calculating products of numbers with a fixed point of different types (8 bits, 16 bits and 32 bits) in one device. This vector multiformat multiplier is selected as a prototype of the claimed invention.
Недостатком векторного мультиформатного умножителя прототипа является его ограниченная функциональность, вследствие отсутствия возможности вычисления произведений 64-разрядных чисел с фиксированной точкой, чисел с плавающей точкой двойной точности, а также вычисления сумм произведений чисел с плавающей точкой половинной и одинарной точности.The disadvantage of a prototype vector multiformat multiplier is its limited functionality due to the lack of possibility of calculating the products of 64-bit fixed-point numbers, double-precision floating-point numbers, as well as calculating the sums of half-precision and single-precision products of numbers.
Техническим результатом заявленного изобретения является создание векторного мультиформатного умножителя с увеличенной функциональностью и с уменьшенной занимаемой площадью, за счет использования вычислительных блоков малой разрядности с меньшей суммарной занимаемой площадью, чем площадь вычислительных блоков высокой разрядности, а именно за счет использования массива из шестнадцати 16-разрядных целочисленных умножителей и дерева сумматоров, которые позволяют вычислять произведения чисел с фиксированной точкой размером 8, 16, 32 и 64 бита, а также различные суммы этих произведений, а также за счет использования блоков формирования произведений чисел с плавающей точкой и сумматоров чисел с плавающей точкой половинной, одинарной и двойной точности, которые позволяют вычислять произведения чисел с плавающей точкой половинной, одинарной и двойной точности и различные суммы этих произведений чисел, что позволяет принимать на вход векторного мультиформатного умножителя до четырех 64-разрядных операндов и выполнять над ними одновременно до двух команд, при этом записывать результат в регистровый файл или в регистры-аккумуляторы.The technical result of the claimed invention is to create a vector multiformat multiplier with increased functionality and with a reduced footprint due to the use of low-capacity computing units with a smaller total footprint than the area of high-resolution computing units, namely through the use of an array of sixteen 16-bit integer multipliers and adder trees that allow you to calculate products of fixed-point numbers of 8, 16, 32 and 64 bits, as well as various sums of these products, as well as through the use of blocks for forming products of floating-point numbers and summators of floating-point numbers of half, single and double precision, which allow us to calculate products of floating-point numbers of half, single and double precision and various the sum of these products of numbers, which allows us to take as input the vector multiformat multiplier up to four 64-bit operands and execute over them up to two commands simultaneously, while writing l result in the register file or in the registers-batteries.
Поставленный технический результат достигнут путем создания векторного мультиформатного умножителя, содержащего массив размерности 4×4 из 16-разрядных целочисленных умножителей 11, входящих в состав 64-разрядного блока 30 целочисленного умножения, два декодера команд 50, 51 и мультиплексор 52, входы которых являются входами векторного мультиформатного умножителя, а выходы которых соединены с входами 64-разрядного блока 53 целочисленного умножения, выходы которого соединены с входами двух блоков 54, 56 преобразования результата с фиксированной точкой и двух блоков 55, 57, преобразования результата с плавающей точкой, выходы которых соединены с входами мультиплексоров результата 58, 59, причем выход первого мультиплексора результата 59 является выходом векторного мультиформатного умножителя, а выход второго мультиплексора результата 58 является выходом векторного мультиформатного умножителя, а также соединен с первым входом блока 60 накопления результата в регистрах-аккумуляторах, второй вход которого является входом векторного мультиформатного умножителя, а выход которого является выходом векторного мультиформатного умножителя, при этомThe technical result is achieved by creating a vector multiformat multiplier containing an array of 4 × 4 dimensions from 16-
- 16-разрядный целочисленный умножитель 11 выполнен с возможностью получения на входы двух 16-разрядных операндов и формирования на выходе целочисленного произведения этих операндов;- 16-
- 64-разрядный блок 53 целочисленного умножения выполнен с возможностью получения на вход двух массивов размерности 4×4 из 16-разрядных операндов и формирования на выходе двух 128-разрядных упакованных результатов целочисленных умножений и двух 64-разрядных упакованных результатов умножений с плавающей точкой;- 64-bit
- декодеры команд 51, 52 выполнены с возможностью декодирования команд и настройки 64-разрядного блока 53 целочисленного умножения с целью корректного выполнения этих комманд;- the decoders of the
- мультиплексор 52 выполнен с возможностью приема на вход четырех 64-разрядных операндов, преобразования их в соответствии с текущей командой в два массива размерности 4×4 из 16-разрядных операндов и передачи их в 64-разрядный блок 53 целочисленного умножения;-
- блоки 54, 56 преобразования результата с фиксированной точкой и блоки 55, 57 преобразования результата с плавающей точкой выполнены с возможностью формирования окончательных результатов команд, и передачи их через мультиплексоры результата 59, 60 на выходы векторного мультиформатного умножителя;-
- блок 61 накопления результата в регистрах-аккумуляторах выполнен с возможностью сложения результата команды с содержимым регистров-аккумуляторов и передачи результата сложения на выход векторного мультиформатного умножителя.- the result accumulation unit 61 in battery registers is adapted to add the result of the command with the contents of the battery registers and transfer the result of the addition to the output of the vector multi-format multiplier.
В предпочтительном варианте осуществления векторного мультиформатного умножителя 64-разрядный блок 30 целочисленного умножения содержит демультиплексор 31 входных данных, входы которого являются входами векторного мультиформатного умножителя, а выходы которого соединены с входами четырех 32-разрядных блоков 32-35 целочисленного умножения, выходы которых соединены с входами 64-разрядного сумматора 36 чисел с фиксированной точкой, с входами двух 32-разрядных сумматоров 37, 38 чисел с плавающей точкой одинарной точности и с входами четырех 16-разрядных сумматоров 39-42 чисел с плавающей точкой половинной точности, причем выход 64-разрядного сумматора чисел с фиксированной точкой является первым выходом 64-разрядного блока 30 целочисленного умножения, а также соединен с одним входом 64-разрядного блока 43 формирования произведения с плавающей точкой двойной точности, выход которого соединен с одним входом блока 44 упаковки произведений с плавающей точкой, остальные входы которого соединены с выходами двух 32-разрядных сумматоров 37, 38 чисел с плавающей точкой одинарной точности и с входами четырех 16-разрядных сумматоров 39-42 чисел с плавающей точкой половинной точности, а выход блока 44 упаковки произведений с плавающей точкой является вторым выходом 64-разрядного блока 30 целочисленного умножения, при этомIn the preferred embodiment of the vector multiformat multiplier, the 64-bit
- демультиплексор 31 входных данных выполнен с возможностью распределения входных данных на 32-разрядные блоки 32-35 целочисленного умножения;- the
- сумматор 36 чисел с фиксированной точкой выполнен с возможностью получения на вход целочисленных произведений 32-разрядных чисел и вычисления на их основе произведений 64-разрядных чисел, сумм произведений 32-разрядных чисел, сумм произведений 16-разрядных чисел, а также пропускания на выход целочисленных произведений 32-разрядных чисел;- the
- сумматоры 39-42 чисел с плавающей точкой половинной точности, выполнены с возможностью получения на вход попарно произведений с плавающей точкой половинной точности и вычисления на их основе сумм произведений, а также пропускания дальше одного из операндов;- adders of 39-42 floating-point numbers of half precision, made with the possibility of getting to the input of pairs of floating-point half-precision works and calculating the sum of products based on them, as well as passing further one of the operands;
- блок 43 формирования произведений чисел с плавающей точкой выполнен с возможностью вычисления произведения чисел с плавающей точкой на основе целочисленного произведения мантисс, которое вычисляется на общем массиве 16-разрядных целочисленных умножителей 11.-
В предпочтительном варианте осуществления векторного мультиформатного умножителя 32-разрядный блок 20 целочисленного умножения содержит демультиплексор 21 входных данных, входы которого являются входами векторного мультиформатного умножителя, а выходы которого соединены с входами четырех 16-разрядных блоков 22 -25 целочисленного умножения, выходы которых соединены с входами 32-разрядного сумматора 26 чисел с фиксированной точкой, с входами двух 16-разрядных сумматоров 27,28 чисел с плавающей точкой половинной точности, причем выход 32-разрядного сумматора 26 чисел с фиксированной точкой является первым выходом 32-разрядного блока 20 целочисленного умножения, а также соединен с одним входом 32-разрядного блока 29 формирования произведения с плавающей точкой одинарной точности, выход которого является вторым выходом 32-разрядного блока 20 целочисленного умножения, а выходы двух 16-разрядных сумматоров 27,28 чисел с плавающей точкой половинной точности являются третьим и четвертым выходами 32-разрядного блока 20 целочисленного умножения, при этомIn the preferred embodiment of the vector multiformator multiplier, the 32-bit
- демультиплексор 21 входных данных выполнен с возможностью распределения входных данных на 16-разрядные блоки 22-25 целочисленного умножения;- the
- сумматор 26 чисел с фиксированной точкой выполнен с возможностью получения на вход целочисленных произведений 16-разрядных чисел и вычисления на их основе произведений 32-разрядных чисел, сумм произведений 16-разрядных чисел, пропускания на выход целочисленных произведений 16-разрядных чисел, а также упаковки и пропускания на выход двух произведений 16-разрядных чисел;- adder 26 fixed-point numbers are made with the possibility of obtaining to the input integer products of 16-bit numbers and calculating on their basis products of 32-bit numbers, sums of products of 16-bit numbers, transmission to the output of integer products of 16-bit numbers, as well as packaging and transmission to the output of two works of 16-bit numbers;
- сумматоры 27, 28 чисел с плавающей точкой половинной точности, выполнены с возможностью получения на вход попарно произведений с плавающей точкой половинной точности и вычисления на их основе сумм произведений, а также пропускания дальше одного из операндов;- adders 27, 28 floating-point numbers of half precision, made with the possibility of receiving the input pairs of floating-point half-precision and calculating the sum of the products on the basis, as well as passing further one of the operands;
- блок 29 формирования произведений чисел с плавающей точкой выполнен с возможностью вычисления произведения чисел с плавающей точкой на основе целочисленного произведения мантисс, которое вычисляется на общем массиве 16-разрядных целочисленных умножителей 11.-
В предпочтительном варианте осуществления векторного мультиформатного умножителя 16-разрядный блок 10 целочисленного умножения содержит 16-разрядный целочисленный умножитель 11, оба входа которого являются входами 16-разрядного блока 10 целочисленного умножения, а выход которого является первым выходом 16-разрядного блока 10 целочисленного умножения, а также соединен со входом 16-разрядного блока 12 формирования произведения с плавающей точкой половинной точности, выход которого является вторым выходом 16-разрядного блока 10 целочисленного умножения, при этомIn the preferred embodiment of the vector multiformat multiplier, the 16-bit
- 16-разрядный целочисленный умножитель 11 выполнен с возможностью получения на входы двух 16-разрядных операндов и формирования на выходе целочисленного произведения этих операндов;- 16-
- 16-разрядный блок 12 формирования произведений чисел с плавающей точкой выполнен с возможностью вычисления произведения чисел с плавающей точкой на основе целочисленного произведения мантисс, которое вычисляется на общем массиве 16-разрядных целочисленных умножителей 11.- 16-
В основе заявленного изобретения лежит принцип вычисления произведения чисел с фиксированной точкой большей разрядности на основе произведений чисел с фиксированной точкой меньшей разрядности. Для двоичной системы счисления он описывается следующим образом:The basis of the claimed invention is the principle of calculating the product of numbers with a fixed point of higher bit depth based on the products of numbers with a fixed point of lower bit length. For a binary number system, it is described as follows:
А=2na1+а2 A = 2 n a 1 + a 2
В=2mb1+b2 B = 2 m b 1 + b 2
X=АВ=2mna1b1+2na1b2+2ma2b1+a2b2, X = AB = 2mnaonebone+2naoneb2+2ma2bone+ a2b2,
где A - первый множитель, В - второй множитель, X - произведение.where A is the first factor, B is the second factor, X is the product.
Это означает, что каждый из множителей в двоичной системе счисления разбивают на две части, старшую и младшую, каждую из которых перемножают с каждой из частей другого множителя, после чего полученные произведения складывают со сдвигом, при этом формируют итоговое произведение. Таким образом, для вычисления произведения большей разрядности требуются четыре умножителя меньшей разрядности и сумматор, что экономичнее по площади, чем один умножитель полной разрядности.This means that each of the factors in the binary number system is divided into two parts, the highest and the lowest, each of which is multiplied from each part of the other factor, after which the resulting products are added with a shift, thus forming the final product. Thus, to calculate the product of a higher bit depth, four multipliers of lesser bitness and an adder are required, which is more economical in terms of area than a single multiplier of full bitness.
Также в основе заявленного изобретения лежит принцип вычисления произведения чисел с плавающей точкой на основе целочисленного произведения мантисс. Это означает, что целочисленное произведение мантисс вычисляют на тех же умножителях, что и произведения чисел с фиксированной точкой, после чего с помощью аппаратного блока анализируют знаки и экспоненты множителей с плавающей точкой и формируют итоговое произведение. Данный подход существенно сокращает площадь заявленного устройства.Also, the basis of the claimed invention is the principle of calculating the product of floating-point numbers based on the integer mantissa product. This means that the integer product of mantis is calculated on the same multipliers as the product of numbers with a fixed point, then using the hardware unit, the signs and exponents of the floating point multipliers are analyzed and the final product is formed. This approach significantly reduces the area of the claimed device.
Основой аппаратной реализации заявленного изобретения является массив из шестнадцати 16-разрядных целочисленных умножителей и дерева сумматоров, которые позволяют вычислять произведения чисел с фиксированной точкой размером 8, 16, 32 и 64 бита, а также различные суммы произведений. Также в состав устройства входят блоки формирования произведений чисел с плавающей точкой и сумматоры чисел с плавающей точкой половинной, одинарной и двойной отчности. Устройство способно принимать на вход до четырех 64-разрядных операндов и выполнять над ними одновременно до двух команд, записывая результат в регистровый файл или в регистры-аккумуляторы.The basis of the hardware implementation of the claimed invention is an array of sixteen 16-bit integer multipliers and a tree of adders, which allow you to calculate the product of numbers with a fixed point of 8, 16, 32 and 64 bits, as well as various sums of products. Also, the device includes blocks for the formation of products of floating-point numbers and summators of floating-point numbers of half, single and double distance. The device is capable of accepting up to four 64-bit operands and executing up to two commands simultaneously on them, writing the result to the register file or to the battery registers.
Для лучшего понимания заявленного изобретения далее приводится его подробное описание с соответствующими графическими материалами.For a better understanding of the claimed invention, the following detailed description thereof is provided with corresponding graphic materials.
Фиг. 1. Общая схема массива умножителей, выполненная согласно изобретению.FIG. 1. The general scheme of an array of multipliers made according to the invention.
Фиг. 2. Структурная схема 16-разрядного блока целочисленного умножения, выполненная согласно изобретению.FIG. 2. The block diagram of a 16-bit integer multiplication unit, made according to the invention.
Фиг. 3. Структурная схема 32-разрядного блока целочисленного умножения, выполненная согласно изобретению.FIG. 3. A block diagram of a 32-bit integer multiplication unit, made according to the invention.
Фиг. 4. Структурная схема 64-разрядного блока целочисленного умножения, выполненная согласно изобретению.FIG. 4. The block diagram of a 64-bit integer multiplication unit, made according to the invention.
Фиг. 5. Структурная схема векторного мультиформатного умножителя, выполненная согласно изобретению.FIG. 5. The block diagram of the vector multiformat multiplier, made according to the invention.
Таблица 1. Производительность векторного мультиформатного умножителя, выполненная согласно изобретению.Table 1. The performance of the vector multiformat multiplier, made according to the invention.
Элементы:Items:
10, 22, 23, 24, 25 - 16-разрядный блок целочисленного умножения mp16;10, 22, 23, 24, 25 - 16-bit integer multiplication unit mp16;
11 - 16-разрядный целочисленный умножитель;11 - 16-bit integer multiplier;
12 - 16-разрядный блок формирования произведений чисел с плавающей точкой flp16;12 - 16-bit block of formation of products of floating-point numbers flp16;
20, 32, 33, 34, 35 - 32-разрядный блок целочисленного умножения mp32;20, 32, 33, 34, 35 - 32-bit integer multiplication unit mp32;
21, 31 - демультиплексор входных данных;21, 31 - input data demultiplexer;
26 - сумматор чисел с фиксированной точкой sx32;26 - adder numbers with a fixed point sx32;
27, 28, 39, 40, 41, 42 - 16-разрядные сумматоры чисел с плавающей точкой половинной точности sf16;27, 28, 39, 40, 41, 42 - 16-bit adders with floating-point half-precision sf16;
29 - 32-разрядный блок формирования произведения с плавающей точкой одинарной точности flp32;29 - flp32 32-bit single-precision floating-point product shaping unit;
30, 53 - 64-разрядный блок целочисленного умножения mp64;30, 53 - mp64 integer multiplication block;
36 - сумматор чисел с фиксированной точкой sx64;36 - adder numbers with a fixed point sx64;
37, 38 - 32-разрядные сумматоры чисел с плавающей точкой половинной точности sf32;37, 38 — 32-bit half-precision floating-point adders sf32;
43 - 64-разрядный блок формирования произведения с плавающей точкой одинарной точности flp64;43 - 64-bit single-precision floating point product generation block flp64;
44 - блок упаковки произведений с плавающей точкой pkg;44 is a block for packing floating point products pkg;
50, 51 - декодер команд cmd_dec;50, 51 - cmd_dec command decoder;
52 - мультиплексор mx;52 - multiplexer mx;
54, 56 - блок преобразования результата с фиксированной точкой fxp;54, 56 - block conversion result with a fixed point fxp;
55, 57 - блок преобразования результата с плавающей точкой flp;55, 57 - flp floating-point result conversion unit;
58, 59 - мультиплексор результата;58, 59 - result multiplexer;
60 - блок накопления результата в регистрах-аккумуляторах mac.60 is a block of accumulation of the result in mac battery registers.
Рассмотрим более подробно вариант выполнения заявленного изобретения (Фиг. 1-5).Let us consider in more detail the embodiment of the claimed invention (Fig. 1-5).
Заявленный векторный мультиформатный умножитель способен принимать на вход до четырех 64-разрядных операндов и выполнять над ними одновременно до двух команд, записывая результат в регистровый файл или в регистры-аккумуляторы.The claimed multiformat vector multiplier is capable of accepting up to four 64-bit operands and executing up to two commands on them simultaneously, writing the result to a register file or to battery registers.
Основой заявленного векторного мультиформатного умножителя является массив размерности 4×4, состоящий из 16-разрядных целочисленных умножителей 11, связанных между собой двухуровневым деревом сумматоров, общая схема которого приведена на Фиг. 1. На каждом уровне суммирования используют сумматоры с четырьмя входами. Данная конструкция позволяет вычислять произведения 8-, 16-, 32- и 64-разрядных чисел с фиксированной точкой, а также различные суммы произведений этих чисел.The basis of the claimed vector multiformat multiplier is a 4 × 4 array consisting of 16-bit
Также основой векторного мультиформатного умножителя являются блоки 12, 29, 43 формирования произведений чисел с плавающей точкой. Данные блоки позволяют вычислять произведения чисел с плавающей точкой на основе целочисленного произведения мантисс, которое вычисляют на общем массиве умножителей. Такое решение позволяет отказаться от отдельных умножителей чисел с плавающей точкой и значительно сократить площадь устройства (векторного мультиформатного умножителя). Произведения чисел с плавающей точкой связаны деревом сумматоров, позволяющим вычислять различные суммы произведений.Also, the basis of the vector multiformat multiplier are
На Фиг. 2 приведена структурная схема 16-разрядного блока 10 целочисленного умножения, который является элементарной единицей массива умножителей. Кроме 16-разрядного целочисленного умножителя 11, в его состав входит блок 12 формирования произведения с плавающей точкой половинной точности Ар 16. 16-разрядный блок 10 целочисленного умножения получает на вход два 16-разрядных операнда и выдает на выходе два произведения этих операндов: целочисленное и с плавающей точкой.FIG. 2 shows a block diagram of a 16-bit block of 10 integer multiplication, which is an elementary unit of an array of multipliers. In addition to the 16-
На Фиг. 3 приведена структурная схема 32-разрядного блока 20 целочисленного умножения. Основой данного блока является массив размерности 2×2, состоящий из 16-разрядных целочисленных умножителей 22-25. Входные данные распределяются на 16-разрядные целочисленные умножители 22-25 с помощью демультиплексора 21. Целочисленные произведения с 16-разрядных целочисленных умножителей 22-25 поступают на 32-разрядный сумматор 26 чисел с фиксированной точкой, который может на их основе вычислить как произведения 32-разрядных чисел, так и различные суммы произведений 16-разрядных чисел. Также он может просто упаковать и пропустить дальше два произведения 16-разрядных чисел. Произведения с плавающей точкой половинной точности с 16-разрядных целочисленных умножителей 22-25 попарно поступают на два 16-разрядных сумматора 27, 28 чисел с плавающей точкой половинной точности, каждый из которых либо вычисляет сумму произведений, либо просто пропускает дальше один из операндов. Блок 29 формирования произведения с плавающей точкой одинарной точности используют для формирования произведения чисел с плавающей точкой одинарной точности. Блок 20 целочисленного умножения получает на вход два массива 2×2 16-разрядных операндов и выдает на выходе 64-разрядный упакованный результат целочисленных умножений, 32-разрядный упакованный результат умножений с плавающей точкой половинной точности и произведение с плавающей точкой одинарной точности.FIG. 3 shows a block diagram of a 32-bit block of 20 integer multiplication. The basis of this block is an array of dimension 2 × 2, consisting of 16-bit integer multipliers 22-25. The input data is distributed to 16-bit integer multipliers 22-25 using a
На Фиг. 4 приведена структурная схема 64-разрядного блока 30 целочисленного умножения. Основой данного блока является массив размерности 2×2, состоящий из 32-разрядных блоков 32-35 целочисленного умножения. Входные данные распределяются на 32-разрядные блоки 32-35 целочисленного умножения с помощью демультиплексора 31. Целочисленные произведения из 32-разрядных блоков 32-35 целочисленного умножения поступают на 64-разрядный сумматор 36 чисел с фиксированной точкой, который может на их основе вычислить как произведение 64-разрядных чисел, так и различные суммы произведений 32- и 16-разрядных чисел. Также он может просто упаковать и пропустить дальше данные с выходов 32-разрядных блоков 32-35 целочисленного умножения. Произведения с плавающей точкой половинной точности с блоков 32-35 целочисленного умножения попарно поступают на четыре 16-разрядных сумматора 39-42 чисел с плавающей точкой половинной точности, каждый из которых либо вычисляет сумму произведений, либо просто пропускает дальше один из операндов. Произведения с плавающей точкой одинарной точности с блоков 32-35 целочисленного умножения попарно поступают на два 32-разрядных сумматора 37, 38 чисел с плавающей точкой одинарной точности, каждый из которых либо вычисляет сумму произведений, либо просто пропускает дальше один из операндов. 64-разрядный блок 43 формирования произведения с плавающей точкой двойной точности используют для формирования произведения чисел с плавающей точкой двойной точности. 64-разрядный блок 30 целочисленного умножения получает на вход два массива размерности 4×4 16-разрядных операндов и выдает на выходе два 128-разрядных упакованных результата целочисленных умножений и два 64-разрядных упакованных результата умножений с плавающей точкой.FIG. 4 shows a block diagram of a 64-
На Фиг. 5 приведена структурная схема заявленного векторного мультиформатного умножителя. Основой векторного мультиформатного умножителя является 64-разрядный блок 53 целочисленного умножения, который выполняет вычисления. Два декодера команд 50, 51 осуществляют декодирование команд и настройку 64-разрядный блока 53 целочисленного умножения для их корректного выполнения. Мультиплексор 52 принимает на вход четыре 64-разрядных операнда и в соответствии с текущей командой преобразует их в два массива размерности 4×4 16-разрядных операндов, которые далее поступают на 64-разрядный блок 53 целочисленного умножения. Блоки 54, 56 преобразования результата с фиксированной точкой и блоки 55, 57 преобразования результата с плавающей точкой формируют окончательные результаты команд, которые через мультиплексоры результата 58, 59 поступают на выходы векторного мультиформатного умножителя. Блок 60 накопления результата в регистрах-аккумуляторах осуществляет сложение результата команды с содержимым регистров-аккумуляторов.FIG. 5 shows the structural diagram of the claimed vector multiformat multiplier. The basis of the vector multiformat multiplier is a 64-bit
Данные по производительности векторного мультиформатного умножителя приведены в Таблице 1. За один такт выполняют или указанное количество умножений для одного типа данных, или половина умножений для одного типа данных и половина для другого, если возможно.The performance data of the vector multiformat multiplier is shown in Table 1. Per cycle, either the specified number of multiplications for one data type, or half of the multiplications for one data type and half for another, if possible, is performed.
Векторный мультиформатный умножитель имеет следующий набор команд: умножение, умножение с накоплением, комплексное умножение, сумма произведений, вычисление КИХ-фильтра, умножение матриц.The vector multiformat multiplier has the following set of commands: multiplication, multiplication with accumulation, complex multiplication, sum of products, calculation of an FIR filter, multiplication of matrices.
Команды векторного мультиформатного умножителя являются векторными, то есть работают с векторами данных (SIMD - single instruction, multiple data - одиночный поток команд, множественный поток данных).Teams of a vector multiformat multiplier are vector ones, that is, they work with data vectors (SIMD - single instruction, multiple data - single command flow, multiple data flow).
Векторный мультиформатный умножитель имеет два вычислительных слота, что дает возможность одновременно выполнять две независимые команды. В случае выполнения одной команды, требующей всей вычислительной мощности векторного мультиформатного умножителя, два вычислительных слота объединяют в один.The vector multiformat multiplier has two computational slots, which makes it possible to simultaneously perform two independent commands. In the case of a single command that requires all the computing power of a vector multiformat multiplier, two computing slots are combined into one.
Векторный мультиформатный умножитель предназначен для установки в DSP-ядро или систему на кристалле в качестве высокопроизводительного вычислительного устройства.The vector multiformat multiplier is designed to be installed into a DSP core or a system on a chip as a high-performance computing device.
Основными преимуществами заявленного изобретения являются:The main advantages of the claimed invention are:
- вычисление произведений чисел с фиксированной точкой большей разрядности на основе произведений чисел с фиксированной точкой меньшей разрядности, что позволяет значительно уменьшить площадь устройства;- calculation of the products of numbers with a fixed point of higher bit depth based on the products of numbers with a fixed point of lower bit depth, which allows to significantly reduce the area of the device;
- вычисление произведений чисел с плавающей точкой на основе произведений чисел с фиксированной точкой, что позволяет значительно уменьшить площадь устройства;- calculation of the products of floating-point numbers based on the products of fixed-point numbers, which can significantly reduce the area of the device;
- поддержка большого количества различных типов входных данных (целые числа с фиксированной точкой размером 8, 16, 32 и 64 бита, дробные числа с фиксированной точкой размером 8, 16 и 32 бита, числа с плавающей точкой половинной, одинарной и двойной точности);- support for a large number of different types of input data (fixed-point integers of 8, 16, 32 and 64 bits, fixed-point fractional numbers of 8, 16 and 32 bits, floating-point numbers of half, single and double precision);
- поддержка векторных операций (SIMD - single instruction, multiple data);- support of vector operations (SIMD - single instruction, multiple data);
- поддержка большого количества различных вычислительных операций (умножения, комплексного умножения, умножения с накоплением, суммирования произведений, фильтрации, умножения матриц);- support of a large number of various computational operations (multiplication, complex multiplication, multiplication with accumulation, summation of products, filtering, matrix multiplication);
- поддержка двух вычислительных слотов, то есть возможность одновременного независимого выполнения двух разных операций умножения;- support for two computational slots, that is, the possibility of simultaneous independent execution of two different multiplication operations;
- количество умножений и сложений для разных типов данных:- the number of multiplications and additions for different data types:
фиксированная точка, 8 бит - 16 умножений, 12 сложений и 8 накопленийfixed point, 8 bits - 16 multiplications, 12 additions and 8 accumulations
фиксированная точка, 16 бит - 16 умножений, 12 сложений и 4 накопленияfixed point, 16 bits - 16 multiplications, 12 additions and 4 accumulations
фиксированная точка, 32 бита - 4 умножения, 3 сложения и 2 накопленияfixed point, 32 bits - 4 multiplications, 3 additions and 2 accumulations
фиксированная точка, 64 бита - 1 умножение, 1 накоплениеfixed point, 64 bits - 1 multiplication, 1 accumulation
плавающая точка, 16 бит - 16 умножений, 12 сложений и 4 накопленияfloating point, 16 bits - 16 multiplications, 12 additions and 4 accumulations
плавающая точка, 32 бита - 4 умножения, 3 сложения и 2 накопленияfloating point, 32 bits - 4 multiplications, 3 additions and 2 accumulations
плавающая точка, 64 бита - 1 умножение, 1 накоплениеfloating point, 64 bits - 1 multiplication, 1 accumulation
Хотя описанный выше вариант выполнения изобретения был изложен с целью иллюстрации настоящего изобретения, специалистам ясно, что возможны разные модификации, добавления и замены, не выходящие из объема и смысла настоящего изобретения, раскрытого в прилагаемой формуле изобретения.Although the above described embodiment of the invention has been set forth to illustrate the present invention, it will be clear to those skilled in the art that various modifications, additions and substitutions are possible without departing from the scope and meaning of the present invention disclosed in the accompanying claims.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2018130310A RU2689819C1 (en) | 2018-08-21 | 2018-08-21 | Vector multiformat multiplier |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2018130310A RU2689819C1 (en) | 2018-08-21 | 2018-08-21 | Vector multiformat multiplier |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2689819C1 true RU2689819C1 (en) | 2019-05-29 |
Family
ID=67037588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2018130310A RU2689819C1 (en) | 2018-08-21 | 2018-08-21 | Vector multiformat multiplier |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2689819C1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU205198U1 (en) * | 2020-12-26 | 2021-07-01 | Акционерное общество Научно-производственный центр «Электронные вычислительно-информационные системы» (АО НПЦ «ЭЛВИС») | A PARAMETRIZABLE SINGLE-STROKE BINARY MULTIPLIER WITH A FIXED DOT IN A DIRECT AND AUXILIARY CODE |
CN113626759A (en) * | 2020-05-07 | 2021-11-09 | 脸谱公司 | Summing high bit widths using a low bit width dot product engine |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4953119A (en) * | 1989-01-27 | 1990-08-28 | Hughes Aircraft Company | Multiplier circuit with selectively interconnected pipelined multipliers for selectively multiplication of fixed and floating point numbers |
RU2263947C2 (en) * | 2003-06-30 | 2005-11-10 | Интел Корпорейшн | Integer-valued high order multiplication with truncation and shift in architecture with one commands flow and multiple data flows |
CN105607889A (en) * | 2015-10-29 | 2016-05-25 | 中国人民解放军国防科学技术大学 | Fixed-point and floating-point operation part with shared multiplier structure in GPDSP |
CN106951211A (en) * | 2017-03-27 | 2017-07-14 | 南京大学 | A kind of restructural fixed and floating general purpose multipliers |
-
2018
- 2018-08-21 RU RU2018130310A patent/RU2689819C1/en active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4953119A (en) * | 1989-01-27 | 1990-08-28 | Hughes Aircraft Company | Multiplier circuit with selectively interconnected pipelined multipliers for selectively multiplication of fixed and floating point numbers |
RU2263947C2 (en) * | 2003-06-30 | 2005-11-10 | Интел Корпорейшн | Integer-valued high order multiplication with truncation and shift in architecture with one commands flow and multiple data flows |
CN105607889A (en) * | 2015-10-29 | 2016-05-25 | 中国人民解放军国防科学技术大学 | Fixed-point and floating-point operation part with shared multiplier structure in GPDSP |
CN106951211A (en) * | 2017-03-27 | 2017-07-14 | 南京大学 | A kind of restructural fixed and floating general purpose multipliers |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113626759A (en) * | 2020-05-07 | 2021-11-09 | 脸谱公司 | Summing high bit widths using a low bit width dot product engine |
RU205198U1 (en) * | 2020-12-26 | 2021-07-01 | Акционерное общество Научно-производственный центр «Электронные вычислительно-информационные системы» (АО НПЦ «ЭЛВИС») | A PARAMETRIZABLE SINGLE-STROKE BINARY MULTIPLIER WITH A FIXED DOT IN A DIRECT AND AUXILIARY CODE |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jovanovic et al. | FPGA accelerator for floating-point matrix multiplication | |
US6584482B1 (en) | Multiplier array processing system with enhanced utilization at lower precision | |
JP5408913B2 (en) | Fast and efficient matrix multiplication hardware module | |
CN106951211B (en) | A Reconfigurable Fixed-Floating-Point Universal Multiplier | |
US20020002573A1 (en) | Processor with reconfigurable arithmetic data path | |
US10776078B1 (en) | Multimodal multiplier systems and methods | |
US20210011686A1 (en) | Arithmetic operation device and arithmetic operation system | |
US10853037B1 (en) | Digital circuit with compressed carry | |
CN102184161A (en) | Matrix inversion device and method based on residue number system | |
RU2689819C1 (en) | Vector multiformat multiplier | |
CN115982528A (en) | Approximate precoding convolution operation method and system based on Booth algorithm | |
Mehlhorn et al. | Area—Time optimal VLSI integer multiplier with minimum computation time | |
Prasad et al. | Design of low power and high speed modified carry select adder for 16 bit Vedic Multiplier | |
RU185346U1 (en) | VECTOR MULTIFORM FORMAT | |
CN109753268A (en) | More granularity concurrent operation multipliers | |
KR20230121151A (en) | Numerical precision of digital multiplier networks | |
JPH0312738B2 (en) | ||
Belyaev et al. | A high-perfomance multi-format simd multiplier for digital signal processors | |
Jadhav et al. | A novel high speed FPGA architecture for FIR filter design | |
Prebeck et al. | A scalable, configurable and programmable vector dot-product unit for edge ai | |
Paldurai et al. | Implementation of MAC using area efficient and reduced delay vedic multiplier targeted at FPGA architectures | |
JPH0816903B2 (en) | Multiply-accumulate operation circuit | |
Stamenković et al. | Constant-coefficient FIR filters based on residue number system arithmetic | |
JPH05173761A (en) | Binary integer multiplier | |
WO2017037729A1 (en) | Concurrent architecture of vedic multiplier-an accelerator scheme for high speed computing |