RU2689819C1 - Vector multiformat multiplier - Google Patents

Vector multiformat multiplier Download PDF

Info

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
Application number
RU2018130310A
Other languages
Russian (ru)
Inventor
Иван Андреевич Беляев
Андрей Александрович Беляев
Ярослав Ярославович Петричкович
Татьяна Владимировна Солохина
Original Assignee
Акционерное общество Научно-производственный центр "Электронные вычислительно-информационные системы" (АО НПЦ "ЭЛВИС")
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Акционерное общество Научно-производственный центр "Электронные вычислительно-информационные системы" (АО НПЦ "ЭЛВИС") filed Critical Акционерное общество Научно-производственный центр "Электронные вычислительно-информационные системы" (АО НПЦ "ЭЛВИС")
Priority to RU2018130310A priority Critical patent/RU2689819C1/en
Application granted granted Critical
Publication of RU2689819C1 publication Critical patent/RU2689819C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • G06F7/523Multiplying 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

FIELD: computer equipment.SUBSTANCE: invention relates to computer engineering. Device has two instruction decoders, a multiplexer, 64-bit integer multiplying unit, two units for converting the result with a fixed point, two units for converting the result with a floating point, two multiplexers of the result, a unit for accumulating the result.EFFECT: calculating products of fixed-point numbers, double-precision floating-point numbers, calculating sums of products of floating point numbers of half- and single-precision, as well as reducing the occupied area of the device.4 cl, 5 dwg, 1 tbl

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-bit integer multipliers 11 that are part of a 64-bit block 30 integer multiplication, two command decoders 50, 51 and multiplexer 52, whose inputs are vector inputs multiformat multiplier, and the outputs of which are connected to the inputs of a 64-bit integer multiplication block 53, the outputs of which are connected to the inputs of two blocks 54, 56 of the result from a fixed t points and two blocks 55, 57, converting the result with a floating point, the outputs of which are connected to the inputs of the multiplexers of the result 58, 59, and the output of the first multiplexer of the result 59 is the output of the vector multiformat multiplier, and the output of the second multiplexer of the result 58 is the output of the vector multiformat multiplier, and also connected to the first input of the result accumulation unit 60 in battery registers, the second input of which is the input of a vector multiformat multiplier, and the output of which is I have a multi-format output vector multiplier, the

- 16-разрядный целочисленный умножитель 11 выполнен с возможностью получения на входы двух 16-разрядных операндов и формирования на выходе целочисленного произведения этих операндов;- 16-bit integer multiplier 11 is configured to receive the inputs of two 16-bit operands and the formation of the output of the integer product of these operands;

- 64-разрядный блок 53 целочисленного умножения выполнен с возможностью получения на вход двух массивов размерности 4×4 из 16-разрядных операндов и формирования на выходе двух 128-разрядных упакованных результатов целочисленных умножений и двух 64-разрядных упакованных результатов умножений с плавающей точкой;- 64-bit integer multiplication unit 53 is configured to receive two 4 × 4 arrays of 16-bit operands and input two 128-bit packed results of integer multiplications and two 64-bit packed floating point results at the output;

- декодеры команд 51, 52 выполнены с возможностью декодирования команд и настройки 64-разрядного блока 53 целочисленного умножения с целью корректного выполнения этих комманд;- the decoders of the commands 51, 52 are arranged to decode the commands and adjust the 64-bit integer multiplication block 53 in order to correctly execute these commands;

- мультиплексор 52 выполнен с возможностью приема на вход четырех 64-разрядных операндов, преобразования их в соответствии с текущей командой в два массива размерности 4×4 из 16-разрядных операндов и передачи их в 64-разрядный блок 53 целочисленного умножения;- multiplexer 52 is configured to receive four 64-bit operands, convert them in accordance with the current command into two 4 × 4 arrays from 16-bit operands and transfer them to a 64-bit integer multiplication unit 53;

- блоки 54, 56 преобразования результата с фиксированной точкой и блоки 55, 57 преобразования результата с плавающей точкой выполнены с возможностью формирования окончательных результатов команд, и передачи их через мультиплексоры результата 59, 60 на выходы векторного мультиформатного умножителя;- blocks 54, 56 converting the result with a fixed point and blocks 55, 57 converting the result with a floating point are made with the possibility of generating the final results of commands, and transmitting them through multiplexers of the result 59, 60 to the outputs of the vector multiformat multiplier;

- блок 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 integer multiplication unit 30 comprises an input data demultiplexer 31, the inputs of which are the inputs of the vector multiformator multiplier, and the outputs of which are connected to the inputs of four 32-bit integer multiplication units 32-35 connected to the inputs 64-bit adder 36 fixed-point numbers, with inputs of two 32-bit adders 37, 38 single-precision floating-point numbers and with inputs of four 16-bit poison adders 39-42 floating-point numbers with half precision, with the output of a 64-bit adder with fixed-point numbers being the first output of a 64-bit integer multiplication block 30, and also connected to one input of a 64-bit double floating point multiplier 43 precision, the output of which is connected to one input of the block 44 of the package of floating-point products, the remaining inputs of which are connected to the outputs of two 32-bit adders of 37, 38 single-precision floating-point numbers and inputs four 16-bit adders 39-42 floating point half-precision and output unit 44 of packing works with floating point output is the second 64-bit integer multiplication unit 30, wherein

- демультиплексор 31 входных данных выполнен с возможностью распределения входных данных на 32-разрядные блоки 32-35 целочисленного умножения;- the input data demultiplexer 31 is adapted to distribute the input data into 32-bit integer multiplication blocks 32-35;

- сумматор 36 чисел с фиксированной точкой выполнен с возможностью получения на вход целочисленных произведений 32-разрядных чисел и вычисления на их основе произведений 64-разрядных чисел, сумм произведений 32-разрядных чисел, сумм произведений 16-разрядных чисел, а также пропускания на выход целочисленных произведений 32-разрядных чисел;- the adder 36 fixed-point numbers are made with the possibility of obtaining the integer products of 32-bit numbers and calculating on their basis the products of 64-bit numbers, the sums of the products of 32-bit numbers, the sums of the products of 16-bit numbers, as well as the transmission to the output of integer products of 32-bit numbers;

- сумматоры 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.- block 43 of the formation of products of floating-point numbers is arranged to calculate the product of floating-point numbers based on the integer product of mantissas, which is calculated on a common array of 16-bit integer multipliers 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 integer multiplication unit 20 comprises an input data demultiplexer 21, whose inputs are the inputs of the vector multiformator multiplier, and the outputs of which are connected to the inputs of four 16-bit units 22 -25 integer multiplication, the outputs of which are connected to the inputs A 32-bit adder with 26 fixed-point numbers, with inputs of two 16-bit adders, 27.28 half-precision floating-point numbers, with a 32-bit output About the adder 26 fixed-point numbers is the first output of a 32-bit integer multiplication block 20, and is also connected to one input of a 32-bit single-precision floating-point product formation block 29, the output of which is the second output of a 32-bit integer multiplication block 20, and the outputs of the two 16-bit adders of 27.28 floating-point half-precision numbers are the third and fourth outputs of the 32-bit integer multiplication block 20, while

- демультиплексор 21 входных данных выполнен с возможностью распределения входных данных на 16-разрядные блоки 22-25 целочисленного умножения;- the input data demultiplexer 21 is adapted to distribute the input data into 16-bit integer multiplication blocks 22-25;

- сумматор 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.- block 29 of the formation of products of floating-point numbers is arranged to calculate the product of floating-point numbers based on the integer product of mantissas, which is calculated on a common array of 16-bit integer multipliers 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 integer multiplication unit 10 contains a 16-bit integer multiplier 11, both inputs of which are the inputs of the 16-bit integer multiplication unit 10, and the output of which is the first output of the 16-bit integer multiplication unit 10, and also connected to the input of a 16-bit half precision floating point product formation unit 12, the output of which is the second output of a 16-bit integer mind unit 10 knives, while

- 16-разрядный целочисленный умножитель 11 выполнен с возможностью получения на входы двух 16-разрядных операндов и формирования на выходе целочисленного произведения этих операндов;- 16-bit integer multiplier 11 is configured to receive the inputs of two 16-bit operands and the formation of the output of the integer product of these operands;

- 16-разрядный блок 12 формирования произведений чисел с плавающей точкой выполнен с возможностью вычисления произведения чисел с плавающей точкой на основе целочисленного произведения мантисс, которое вычисляется на общем массиве 16-разрядных целочисленных умножителей 11.- 16-bit block 12 forming the products of floating-point numbers is designed to calculate the product of floating-point numbers based on the integer product of mantissas, which is calculated on a common array of 16-bit integer multipliers 11.

В основе заявленного изобретения лежит принцип вычисления произведения чисел с фиксированной точкой большей разрядности на основе произведений чисел с фиксированной точкой меньшей разрядности. Для двоичной системы счисления он описывается следующим образом: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:

А=2na12 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 integer multipliers 11, interconnected by a two-level adder tree, the general scheme of which is shown in FIG. 1. At each level of summation use adders with four inputs. This construction allows to calculate the products of 8-, 16-, 32- and 64-bit numbers with a fixed point, as well as various sums of products of these numbers.

Также основой векторного мультиформатного умножителя являются блоки 12, 29, 43 формирования произведений чисел с плавающей точкой. Данные блоки позволяют вычислять произведения чисел с плавающей точкой на основе целочисленного произведения мантисс, которое вычисляют на общем массиве умножителей. Такое решение позволяет отказаться от отдельных умножителей чисел с плавающей точкой и значительно сократить площадь устройства (векторного мультиформатного умножителя). Произведения чисел с плавающей точкой связаны деревом сумматоров, позволяющим вычислять различные суммы произведений.Also, the basis of the vector multiformat multiplier are blocks 12, 29, 43 for the formation of products of floating-point numbers. These blocks allow you to calculate the product of floating-point numbers based on the integer mantissa product, which is calculated on a common array of multipliers. This solution eliminates the need for separate floating point multipliers and significantly reduces the area of the device (vector multiformat multiplier). The products of floating point numbers are connected by an adder tree, which allows to calculate various sums of products.

На Фиг. 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-bit integer multiplier 11, it includes block 12 for forming a floating-point product of half-precision Ap 16. A 16-bit block 10 for integer multiplication receives two 16-bit operands as input and outputs two products of these operands: integer and floating point

На Фиг. 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 demultiplexer 21. Integer products from 16-bit integer multipliers 22-25 are fed to a 32-bit adder with 26 fixed-point numbers, which can be calculated based on them as 32- bit numbers as well as various sums of products of 16-bit numbers. He can also simply pack and skip on two pieces of 16-bit numbers. Half-precision floating-point products from 16-bit integer multipliers 22-25 are received in pairs by two 16-bit adders for 27, 28 half-precision floating-point numbers, each of which either calculates the sum of the products or simply passes one of the operands. Single precision floating point product generation unit 29 is used to form a single precision floating point product. Integer multiplication block 20 receives two arrays of 2 × 2 16-bit operands and outputs 64-bit packed result of integer multiplications, 32-bit packed result of floating-point half-precision multiplications and single-precision floating-point products.

На Фиг. 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-bit block 30 integer multiplication. The basis of this block is an array of dimension 2 × 2, consisting of 32-bit blocks of 32-35 integer multiplication. The input data is distributed to 32-bit blocks of 32-35 integer multiplication using a demultiplexer 31. Integer products from 32-bit blocks 32-35 of integer multiplication are fed to a 64-bit adder 36 fixed-point numbers, which can be based on them as a product 64-bit numbers as well as various sums of products of 32-bit and 16-bit numbers. It can also simply pack and skip on the data from the outputs of 32-bit integer multiplication blocks 32-35. Half-precision floating-point products from blocks 32-35 of integer multiplication are received in pairs by four 16-bit adders of 39-42 half-precision floating-point numbers, each of which either calculates the sum of the products or simply skips on one of the operands. Single-precision floating-point products from blocks 32-35 of integer multiplication are received in pairs by two 32-bit adders 37, 38 single-precision floating-point numbers, each of which either calculates the sum of the products or simply passes one of the operands. A 64-bit double precision floating point product generation unit 43 is used to form a product of double precision floating point numbers. A 64-bit integer multiplication block 30 receives two arrays of 4 × 4 16-bit operands as input and outputs two 128-bit packed results of integer multiplications and two 64-bit packed results of floating point multiplications.

На Фиг. 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 integer multiplication block 53, which performs the calculations. Two command decoders 50, 51 decode the commands and set up a 64-bit integer multiplication block 53 to perform them correctly. Multiplexer 52 accepts four 64-bit operands as input and, in accordance with the current command, converts them into two 4 × 4 16-bit operand arrays, which are then fed to a 64-bit integer multiplication unit 53. The fixed-point result conversion blocks 54, 56 and the floating-point result conversion blocks 55, 57 form the final results of the commands that, through result multiplexers 58, 59, arrive at the outputs of the vector multi-format multiplier. The accumulation result block 60 in battery registers adds the result of the command to the contents of the battery registers.

Данные по производительности векторного мультиформатного умножителя приведены в Таблице 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.

Figure 00000001
Figure 00000001

Claims (20)

1. Векторный мультиформатный умножитель, содержащий массив размерности 4×4 из 16-разрядных целочисленных умножителей 11, входящих в состав 64-разрядного блока 30 целочисленного умножения, два декодера команд 50, 51 и мультиплексор 52, входы которых являются входами векторного мультиформатного умножителя, а выходы которых соединены с входами 64-разрядного блока 53 целочисленного умножения, выходы которого соединены с входами двух блоков 54, 56 преобразования результата с фиксированной точкой и двух блоков 55, 57 преобразования результата с плавающей точкой, выходы которых соединены с входами мультиплексоров результата 58, 59, причем выход первого мультиплексора результата 59 является выходом векторного мультиформатного умножителя, а выход второго мультиплексора результата 58 является выходом векторного мультиформатного умножителя, а также соединен с первым входом блока 60 накопления результата в регистрах-аккумуляторах, второй вход которого является входом векторного мультиформатного умножителя, а выход которого является выходом векторного мультиформатного умножителя, при этом:1. A vector multiformat multiplier containing an array of 4 × 4 dimensions from 16-bit integer multipliers 11 that make up the 64-bit block 30 integer multiplication, two decoders of commands 50, 51 and multiplexer 52, whose inputs are the inputs of a vector multi-format multiplier, and the outputs of which are connected to the inputs of a 64-bit integer multiplication block 53, the outputs of which are connected to the inputs of two blocks 54, 56 of the fixed-point result conversion and two blocks 55, 57 of the floating-point result conversion points whose outputs are connected to the multiplexer inputs of the result 58, 59, and the output of the first multiplexer of the result 59 is the output of the vector multiformat multiplier, and the output of the second multiplexer of the result 58 is the output of the vector multiformat multiplier, and also connected to the first input of the result accumulation unit 60 in registers batteries, the second input of which is the input of the vector multiformat multiplier, and the output of which is the output of the vector multiformat multiplier, with: - 16-разрядный целочисленный умножитель 11 выполнен с возможностью получения на входы двух 16-разрядных операндов и формирования на выходе целочисленного произведения этих операндов;- 16-bit integer multiplier 11 is configured to receive the inputs of two 16-bit operands and the formation of the output of the integer product of these operands; - 64-разрядный блок 53 целочисленного умножения выполнен с возможностью получения на вход двух массивов размерности 4×4 из 16-разрядных операндов и формирования на выходе двух 128-разрядных упакованных результатов целочисленных умножений и двух 64-разрядных упакованных результатов умножений с плавающей точкой;- 64-bit integer multiplication unit 53 is configured to receive two 4 × 4 arrays of 16-bit operands and input two 128-bit packed results of integer multiplications and two 64-bit packed floating point results at the output; - декодеры команд 51, 52 выполнены с возможностью декодирования команд и настройки 64-разрядного блока 53 целочисленного умножения с целью корректного выполнения этих комманд;- the decoders of the commands 51, 52 are arranged to decode the commands and adjust the 64-bit integer multiplication block 53 in order to correctly execute these commands; - мультиплексор 52 выполнен с возможностью приема на вход четырех 64-разрядных операндов, преобразования их в соответствии с текущей командой в два массива размерности 4×4 из 16-разрядных операндов и передачи их в 64-разрядный блок 53 целочисленного умножения;- multiplexer 52 is configured to receive four 64-bit operands, convert them in accordance with the current command into two 4 × 4 arrays from 16-bit operands and transfer them to a 64-bit integer multiplication unit 53; - блоки 54, 56 преобразования результата с фиксированной точкой и блоки 55, 57 преобразования результата с плавающей точкой выполнены с возможностью формирования окончательных результатов команд, и передачи их через мультиплексоры результата 59, 60 на выходы векторного мультиформатного умножителя;- blocks 54, 56 converting the result with a fixed point and blocks 55, 57 converting the result with a floating point are made with the possibility of generating the final results of commands, and transmitting them through multiplexers of the result 59, 60 to the outputs of the vector multiformat multiplier; - блок 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. 2. Векторный мультиформатный умножитель по п. 1, отличающийся тем, что 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 целочисленного умножения, при этом2. The vector multiformat multiplier according to claim 1, characterized in that the 64-bit integer multiplication unit 30 comprises an input data demultiplexer 31, the inputs of which are the inputs of the vector multiformat multiplier, and the outputs of which are connected to the inputs of four 32-bit units 32 to 35 of integer multiplications, the outputs of which are connected to the inputs of a 64-bit adder 36 fixed-point numbers, with the inputs of two 32-bit adders 37, 38 single-precision floating-point numbers and the inputs of four 16-bit adders 39 - 42 floating-point half-precision numbers, with the output of a 64-bit fixed-point adder being the first output of a 64-bit integer multiplication block 30, and also connected to one input of a 64-bit double-precision floating-point unit 43 The output of which is connected to one input of the block 44 of a package of products with a floating point, the remaining inputs of which are connected to the outputs of two 32-bit adders 37, 38 single-precision floating-point numbers and to the inputs of four 16-ra row adders 39-42 floating point half-precision and output unit 44 of packing works with floating point output is the second 64-bit integer multiplication unit 30, wherein - демультиплексор 31 входных данных выполнен с возможностью распределения входных данных на 32-разрядные блоки 32 - 35 целочисленного умножения;- the input data demultiplexer 31 is configured to distribute the input data into 32-bit integer multiplication blocks 32 to 35; - сумматор 36 чисел с фиксированной точкой выполнен с возможностью получения на вход целочисленных произведений 32-разрядных чисел и вычисления на их основе произведений 64-разрядных чисел, сумм произведений 32-разрядных чисел, сумм произведений 16-разрядных чисел, а также пропускания на выход целочисленных произведений 32-разрядных чисел;- the adder 36 fixed-point numbers are made with the possibility of obtaining the integer products of 32-bit numbers and calculating on their basis the products of 64-bit numbers, the sums of the products of 32-bit numbers, the sums of the products of 16-bit numbers, as well as the transmission to the output of the integer products of 32-bit numbers; - сумматоры 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.- block 43 of the formation of products of floating-point numbers is arranged to calculate the product of floating-point numbers based on the integer product of mantissas, which is calculated on a common array of 16-bit integer multipliers 11. 3. Векторный мультиформатный умножитель по п. 1, отличающийся тем, что 32-разрядный блок 20 целочисленного умножения содержит демультиплексор 21 входных данных, входы которого являются входами векторного мультиформатного умножителя, а выходы которого соединены с входами четырех 16-разрядных блоков 22-25 целочисленного умножения, выходы которых соединены с входами 32-разрядного сумматора 26 чисел с фиксированной точкой, с входами двух 16-разрядных сумматоров 27, 28 чисел с плавающей точкой половинной точности, причем выход 32-разрядного сумматора 26 чисел с фиксированной точкой является первым выходом 32-разрядного блока 20 целочисленного умножения, а также соединен с одним входом 32-разрядного блока 29 формирования произведения с плавающей точкой одинарной точности, выход которого является вторым выходом 32-разрядного блока 20 целочисленного умножения, а выходы двух 16-разрядных сумматоров 27, 28 чисел с плавающей точкой половинной точности являются третьим и четвертым выходами 32-разрядного блока 20 целочисленного умножения, при этом3. Vector multiformat multiplier according to claim 1, characterized in that the 32-bit integer multiplication unit 20 contains a input data demultiplexer 21, whose inputs are the inputs of a vector multiformat multiplier, and the outputs of which are connected to the inputs of four 16-bit integer blocks 22-25 multiplications, the outputs of which are connected to the inputs of a 32-bit adder 26 fixed-point numbers, with the inputs of two 16-bit adders 27, 28 floating-point numbers of half precision, with the output of the 32-bit adder 26 h villages with a fixed point is the first output of a 32-bit integer multiplication block 20, and is also connected to one input of a 32-bit single-precision floating-point product generation unit 29, the output of which is the second output of a 32-bit integer multiplication unit 20, and two The 16-bit adders of the 27, 28 floating-point half-precision numbers are the third and fourth outputs of the 32-bit integer multiplication block 20, while - демультиплексор 21 входных данных выполнен с возможностью распределения входных данных на 16-разрядные блоки 22-25 целочисленного умножения;- the input data demultiplexer 21 is adapted to distribute the input data into 16-bit integer multiplication blocks 22-25; - сумматор 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.- block 29 of the formation of products of floating-point numbers is arranged to calculate the product of floating-point numbers based on the integer product of mantissas, which is calculated on a common array of 16-bit integer multipliers 11. 4. Векторный мультиформатный умножитель по п. 1, отличающийся тем, что 16-разрядный блок 10 целочисленного умножения содержит 16-разрядный целочисленный умножитель 11, оба входа которого являются входами 16-разрядного блока 10 целочисленного умножения, а выход которого является первым выходом 16-разрядного блока 10 целочисленного умножения, а также соединен с входом 16-разрядного блока 12 формирования произведения с плавающей точкой половинной точности, выход которого является вторым выходом 16-разрядного блока 10 целочисленного умножения, при этом4. The vector multiformat multiplier according to claim 1, characterized in that the 16-bit integer multiplication unit 10 comprises a 16-bit integer multiplier 11, both of which are inputs of the 16-bit integer multiplication unit 10, and the output of which is the first output 16 bit block 10 integer multiplication, as well as connected to the input of the 16-bit block 12 forming the product with floating point half precision, the output of which is the second output of the 16-bit block 10 integer multiplication, while - 16-разрядный целочисленный умножитель 11 выполнен с возможностью получения на входы двух 16-разрядных операндов и формирования на выходе целочисленного произведения этих операндов;- 16-bit integer multiplier 11 is configured to receive the inputs of two 16-bit operands and the formation of the output of the integer product of these operands; - 16-разрядный блок 12 формирования произведений чисел с плавающей точкой выполнен с возможностью вычисления произведения чисел с плавающей точкой на основе целочисленного произведения мантисс, которое вычисляется на общем массиве 16-разрядных целочисленных умножителей 11.- 16-bit block 12 forming the products of floating-point numbers is designed to calculate the product of floating-point numbers based on the integer product of mantissas, which is calculated on a common array of 16-bit integer multipliers 11.
RU2018130310A 2018-08-21 2018-08-21 Vector multiformat multiplier RU2689819C1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
US6584482B1 (en) Multiplier array processing system with enhanced utilization at lower precision
US10776078B1 (en) Multimodal multiplier systems and methods
CN106951211A (en) A kind of restructural fixed and floating general purpose multipliers
CN103294446A (en) Fixed-point multiply-accumulator
RU2689819C1 (en) Vector multiformat multiplier
CN105335127A (en) Scalar operation unit structure supporting floating-point division method in GPDSP
CN102768654A (en) Device with FFT-base (fourier transform) 2-butterfly operation handling ability and method for achieving operation
Prasad et al. Design of low power and high speed modified carry select adder for 16 bit Vedic Multiplier
US10853037B1 (en) Digital circuit with compressed carry
Mehlhorn et al. Area—Time optimal VLSI integer multiplier with minimum computation time
CN106951394A (en) A kind of general fft processor of restructural fixed and floating
Kunchigi et al. 32-bit MAC unit design using vedic multiplier
RU185346U1 (en) VECTOR MULTIFORM FORMAT
Jadhav et al. A novel high speed FPGA architecture for FIR filter design
Paldurai et al. Implementation of MAC using area efficient and reduced delay vedic multiplier targeted at FPGA architectures
KR20230121151A (en) Numerical precision of digital multiplier networks
Belyaev et al. A High-perfomance Multi-format SIMD Multiplier for Digital Signal Processors
JPH0816903B2 (en) Multiply-accumulate operation circuit
JPH05173761A (en) Binary integer multiplier
CN117908835B (en) Method for accelerating SM2 cryptographic algorithm based on floating point number computing capability
WO2024027226A1 (en) Multiplying unit
KR20170030327A (en) Apparatus and method for controlling operation
SU583433A1 (en) Multiplier
ABEED et al. Design and Implementation Radix-8 Booth Encoded Modulo Multiplication Using Compressors
Matutino et al. A compact and scalable rns architecture