RU185346U1 - VECTOR MULTIFORM FORMAT - Google Patents

VECTOR MULTIFORM FORMAT Download PDF

Info

Publication number
RU185346U1
RU185346U1 RU2018130318U RU2018130318U RU185346U1 RU 185346 U1 RU185346 U1 RU 185346U1 RU 2018130318 U RU2018130318 U RU 2018130318U RU 2018130318 U RU2018130318 U RU 2018130318U RU 185346 U1 RU185346 U1 RU 185346U1
Authority
RU
Russia
Prior art keywords
bit
point
numbers
output
integer
Prior art date
Application number
RU2018130318U
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 RU2018130318U priority Critical patent/RU185346U1/en
Application granted granted Critical
Publication of RU185346U1 publication Critical patent/RU185346U1/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)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Nonlinear Science (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)

Abstract

Полезная модель относится к области вычислительной техники. Техническим результатом заявленной полезной модели является создание векторного мультиформатного умножителя с увеличенной функциональностью и с уменьшенной занимаемой площадью, за счет использования вычислительных блоков малой разрядности с меньшей суммарной занимаемой площадью, чем площадь вычислительных блоков высокой разрядности, а именно за счет использования массива из шестнадцати 16-разрядных целочисленных умножителей и дерева сумматоров, которые позволяют вычислять произведения чисел с фиксированной точкой размером 8, 16, 32 и 64 бита, а также различные суммы этих произведений, а также за счет использования блоков формирования произведений чисел с плавающей точкой и сумматоров чисел с плавающей точкой половинной, одинарной и двойной точности, которые позволяют вычислять произведения чисел с плавающей точкой половинной, одинарной и двойной точности и различные суммы этих произведений чисел, что позволяет принимать на вход векторного мультиформатного умножителя до четырех 64-разрядных операндов и выполнять над ними одновременно до двух команд, при этом записывать результат в регистровый файл или в регистры-аккумуляторы. 3 з.п. ф-лы, 6 ил.The utility model relates to the field of computing. The technical result of the claimed utility model is the creation of a vector multi-format multiplier with increased functionality and reduced footprint, through the use of small-capacity computing units with a smaller total occupied area than the area of high-capacity computing units, namely, the use of an array of sixteen 16-bit integer multipliers and adder tree, which allow you to calculate the product of fixed-point numbers of size 8, 16, 32 and 64 bits, as well as various sums of these products, as well as through the use of blocks for the formation of products of floating-point numbers and adders of floating-point numbers of half, single and double precision, which allow us to calculate the products of floating-point numbers of half, single and double precision and various sums of these products of numbers, which allows you to receive up to four 64-bit operands to the input of a vector multi-format multiplier and execute up to two commands on them simultaneously, amb the result to the register file or in the accumulator register. 3 s.p. f-ly, 6 ill.

Description

Полезная модель относится к области вычислительной техники, к структуре вычислительных блоков микропроцессоров, а именно к векторным мультиформатным умножителям, и может быть использована для вычисления произведений чисел с фиксированной и плавающей точкой разных типов, произведений с накоплением, комплексных произведений и сумм произведений в одном микропроцессоре.The utility model relates to the field of computer engineering, to the structure of microprocessor computing units, namely to vector multi-format multipliers, and can be used to calculate the products of fixed and floating-point numbers of various types, accumulated products, complex products, and product sums in a single microprocessor.

Для решения задач цифровой обработки информации одной из ключевых операций является операция умножения, а также основанные на ней операции комплексного умножения, умножения с накоплением и различные суммы произведений. Эти операции необходимы для вычисления преобразований Фурье, фильтров и произведений матриц, что, в свою очередь, является основой решения задач коммуникации, обработки изображений и видео, а также сверточных нейронных сетей. Таким образом, производительность операций умножения является основой быстрого решения важнейших задач цифровой обработки информации.To solve the problems of digital information processing, one of the key operations is the operation of multiplication, as well as the operations of complex multiplication, multiplication with accumulation and various sums of products based on it. These operations are necessary to calculate the Fourier transforms, filters and matrix products, which, in turn, is the basis for solving the problems of communication, image and video processing, and convolutional neural networks. Thus, the productivity of multiplication operations is the basis for the quick solution to 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 different types. So, individual 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 different types are rarely performed simultaneously, as well as the fact that the multiplication blocks are very expensive hardware resources of the microprocessor, such an approach leads to an increase in the area of the device (microprocessor) and a low coefficient of reuse, i.e., simple equipment.

В патенте CN 106951211 (А) описан мультиформатный умножитель принцип действия которого заключается в вычислении произведений большей разрядности на основе умножителей меньшей разрядности.CN 106951211 (A) describes a multi-format multiplier whose principle of operation is to calculate products of higher resolution based on multipliers of lower resolution.

Недостатком данного мультиформатного умножителя является то, что его функциональность ограничена вычислением произведений чисел с фиксированной точкой (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 it is not possible to calculate the products of half and double-precision floating-point numbers, as well as the possibility of making multiplications with accumulation and sums of products.

Известен из патента CN 105607889 (А) мультиформатный умножитель, в котором реализован принцип вычисления произведений большей разрядности на основе умножителей меньшей разрядности, а также решены задачи вычисления произведений чисел с фиксированной точкой (32 бита и 64 бита) и плавающей точкой (одинарной и двойной точности), осуществления умножения с накоплением, комплексного умножения и вычисления сумм произведений. Кроме того, данный умножитель позволяет одновременного выполнять две независимые операции для 32-разрядных операндов.A multi-format multiplier is known from CN 105607889 (A), which implements the principle of computing products of higher resolution based on multipliers of lower resolution, and also solves the problem of computing products of numbers with a fixed point (32 bits and 64 bits) and a floating point (single and double precision) ), the implementation of accumulation multiplication, 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 inability to calculate the products of fixed-point numbers of 8 bits and 16 bits, as well as the calculation of the products of half-precision floating-point numbers.

Наиболее близким к заявленной полезной модели является векторный мультиформатный умножитель, описанный в заявке US 2013138711 (А1), в котором реализован принцип вычисления произведений большей разрядности на основе умножителей меньшей разрядности, осуществлена задача вычисления произведений чисел с фиксированной точкой разных типов (8 бит, 16 бит и 32 бита) в одном устройстве. Данный векторный мультиформатный умножитель выбран в качестве прототипа заявленной полезной модели.Closest to the claimed utility model is a vector multi-format multiplier described in application US 2013138711 (A1), which implements the principle of computing products of higher resolution based on multipliers of lower resolution, and performs the task of computing the products of fixed-point numbers of different types (8 bits, 16 bits) and 32 bits) in one device. This vector multi-format multiplier is selected as a prototype of the claimed utility model.

Недостатком векторного мультиформатного умножителя прототипа является его ограниченная функциональность, вследствие отсутствия возможности вычисления произведений 64-разрядных чисел с фиксированной точкой, чисел с плавающей точкой двойной точности, а также вычисления сумм произведений чисел с плавающей точкой половинной и одинарной точности.The disadvantage of the prototype vector multi-format multiplier is its limited functionality, due to the inability to calculate the products of 64-bit fixed-point numbers, double-precision floating-point numbers, and the calculation of the sums of products of half and single-precision floating-point numbers.

Техническим результатом заявленной полезной модели является создание векторного мультиформатного умножителя с увеличенной функциональностью и с уменьшенной занимаемой площадью, за счет использования вычислительных блоков малой разрядности с меньшей суммарной занимаемой площадью, чем площадь вычислительных блоков высокой разрядности, а именно за счет использования массива из шестнадцати 16-разрядных целочисленных умножителей и дерева сумматоров, которые позволяют вычислять произведения чисел с фиксированной точкой размером 8, 16, 32 и 64 бита, а также различные суммы этих произведений, а также за счет использования блоков формирования произведений чисел с плавающей точкой и сумматоров чисел с плавающей точкой половинной, одинарной и двойной точности, которые позволяют вычислять произведения чисел с плавающей точкой половинной, одинарной и двойной точности и различные суммы этих произведений чисел, что позволяет принимать на вход векторного мультиформатного умножителя до четырех 64-разрядных операндов и выполнять над ними одновременно до двух команд, при этом записывать результат в регистровый файл или в регистры-аккумуляторы.The technical result of the claimed utility model is the creation of a vector multi-format multiplier with increased functionality and reduced footprint, through the use of small-capacity computing units with a smaller total occupied area than the area of high-capacity computing units, namely, the use of an array of sixteen 16-bit integer multipliers and adder tree, which allow you to calculate the product of fixed-point numbers of size 8, 16, 32 and 64 bits, as well as various sums of these products, as well as through the use of blocks for the formation of products of floating-point numbers and adders of floating-point numbers of half, single and double precision, which allow us to calculate the products of floating-point numbers of half, single and double precision and various sums of these products of numbers, which allows you to receive up to four 64-bit operands to the input of a vector multi-format multiplier and execute up to two commands on them simultaneously, amb the result to the register file or in the accumulator register.

Поставленный технический результат достигнут путем создания векторного мультиформатного умножителя, содержащего массив размерности 4×4 из 16-разрядных целочисленных умножителей 11, входящих в состав 64-разрядного блока 30 целочисленного умножения, два декодера команд 50, 51 и мультиплексор 52, входы которых являются входами векторного мультиформатного умножителя, а выходы которых соединены с входами 64-разрядного блока 53 целочисленного умножения, выходы которого соединены с входами двух блоков 54, 56 преобразования результата с фиксированной точкой и двух блоков 55, 57, преобразования результата с плавающей точкой, выходы которых соединены с входами мультиплексоров результата 58, 59, причем выход первого мультиплексора результата 59 является выходом векторного мультиформатного умножителя, а выход второго мультиплексора результата 58 является выходом векторного мультиформатного умножителя, а также соединен с первым входом блока 60 накопления результата в регистрах-аккумуляторах, второй вход которого является входом векторного мультиформатного умножителя, а выход которого является выходом векторного мультиформатного умножителя, при этомThe technical result achieved is achieved by creating a vector multi-format multiplier containing a 4 × 4 array of 16-bit integer multipliers 11 that are part of the 64-bit integer multiplication unit 30, two decoders 50, 51 and a multiplexer 52, the inputs of which are inputs of the vector a multi-format multiplier, 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 converting the result with a fixed t a point 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 multi-format multiplier, and the output of the second multiplexer of the result 58 is the output of the vector multi-format multiplier, and also connected to the first input of the result accumulation unit 60 in the battery registers, the second input of which is the input of the vector multi-format multiplier, and the output of which is I have a multi-format output vector multiplier, the

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

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

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

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

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

- блок 61 накопления результата в регистрах-аккумуляторах выполнен с возможностью сложения результата команды с содержимым регистров-аккумуляторов и передачи результата сложения на выход векторного мультиформатного умножителя.- block 61 accumulating the result in the register-accumulators is configured to add the result of the command with the contents of the register-accumulators and transmit 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 a preferred embodiment of the vector multi-format multiplier, the 64-bit integer multiplication unit 30 comprises an input data demultiplexer 31, the inputs of which are inputs of the vector multi-format multiplier, and the outputs of which are connected to the inputs of four 32-bit integer multiplication units 32 to 35, the outputs of which are 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 four 16-times inputs in-line adders 39 - 42 half-precision floating-point numbers, and the output of the 64-bit fixed-point adder is the first output of the 64-bit integer multiplication unit 30, and is also connected to one input of the 64-bit double floating-point unit 43 accuracy, the output of which is connected to one input of the unit 44 of the packaging of works with a floating point, the rest of the inputs of which are connected to the outputs of two 32-bit adders 37, 38 single-precision floating-point numbers and with an input E four 16-bit adders 39 - 42 floating point half-precision, and the output unit 44 of packing works with floating point output is the second 64-bit integer multiplication unit 30, wherein

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

- сумматор 36 чисел с фиксированной точкой выполнен с возможностью получения на вход целочисленных произведений 32-разрядных чисел и вычисления на их основе произведений 64-разрядных чисел, сумм произведений 32-разрядных чисел, сумм произведений 16-разрядных чисел, а также пропускания на выход целочисленных произведений 32-разрядных чисел;- the adder 36 numbers with a fixed point is configured to receive integer products of 32-bit numbers and calculate based on them the products of 64-bit numbers, the sums of the products of 32-bit numbers, the sums of the products of 16-bit numbers, and also the transmission of integers works of 32-bit numbers;

- сумматоры 39 - 42 чисел с плавающей точкой половинной точности, выполнены с возможностью получения на вход попарно произведений с плавающей точкой половинной точности и вычисления на их основе сумм произведений, а также пропускания дальше одного из операндов;- adders 39 - 42 half-precision floating-point numbers, configured to receive half-precision floating-point products in pairs and calculate the sums of the products based on them, as well as passing one of the operands further;

- блок 43 формирования произведений чисел с плавающей точкой выполнен с возможностью вычисления произведения чисел с плавающей точкой на основе целочисленного произведения мантисс, которое вычисляется на общем массиве 16-разрядных целочисленных умножителей 11.- block 43 forming the product of floating-point numbers is configured to calculate the product of floating-point numbers based on the integer product of the 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 целочисленного умножения, при этом - демультиплексор 21 входных данных выполнен с возможностью распределения входных данных на 16-разрядные блоки 22 - 25 целочисленного умножения;In a preferred embodiment of the vector multi-format multiplier, the 32-bit integer multiplication unit 20 comprises an input data demultiplexer 21, the inputs of which are inputs of the vector multi-format multiplier, and the outputs of which are connected to the inputs of four 16-bit integer multiplication blocks 22 to 25 of the outputs of which are connected to the inputs 32-bit adder 26 fixed-point numbers, with the inputs of two 16-bit adders 27.28 half-precision floating-point numbers, and the output is 32-bit o the adder 26 of the fixed-point numbers is the first output of the 32-bit integer multiplication block 20, and is also connected to one input of the 32-bit single precision floating-point product block 29, the output of which is the second output of the 32-bit integer multiplication block 20, and the outputs of two 16-bit adders 27, 28 half-precision floating-point numbers are the third and fourth outputs of the 32-bit integer multiplication unit 20, while the input data demultiplexer 21 is executed n to distribute the input data to 16-bit blocks 22 - 25 integer multiplication;

- сумматор 26 чисел с фиксированной точкой выполнен с возможностью получения на вход целочисленных произведений 16-разрядных чисел и вычисления на их основе произведений 32-разрядных чисел, сумм произведений 16-разрядных чисел, пропускания на выход целочисленных произведений 16-разрядных чисел, а также упаковки и пропускания на выход двух произведений 16-разрядных чисел;- the adder of 26 numbers with a fixed point is configured to receive integer products of 16-bit numbers and calculate based on them the products of 32-bit numbers, the sum of the products of 16-bit numbers, passing the output of integer products of 16-bit numbers, and also packaging and passing the output of two works of 16-bit numbers;

- сумматоры 27, 28 чисел с плавающей точкой половинной точности, выполнены с возможностью получения на вход попарно произведений с плавающей точкой половинной точности и вычисления на их основе сумм произведений, а также пропускания дальше одного из операндов;- adders 27, 28 of half-precision floating-point numbers, made with the possibility of receiving half-precision floating-point products in pairs and calculating the sums of the products based on them, as well as passing one of the operands further;

- блок 29 формирования произведений чисел с плавающей точкой выполнен с возможностью вычисления произведения чисел с плавающей точкой на основе целочисленного произведения мантисс, которое вычисляется на общем массиве 16-разрядных целочисленных умножителей 11.- the block 29 of the formation of products of floating-point numbers is configured to calculate the product of floating-point numbers based on the integer product of the 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 a preferred embodiment of the vector multi-format multiplier, the 16-bit integer multiplier 10 contains a 16-bit integer multiplier 11, both of which are inputs of the 16-bit integer multiply 10, and the output of which is the first output of the 16-bit integer multiply 10, and also connected to the input of the half-precision floating-point block 12 forming the product 12, the output of which is the second output of the 16-bit integer smart block 10 at the same time

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

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

В основе заявленной полезной модели лежит принцип вычисления произведения чисел с фиксированной точкой большей разрядности на основе произведений чисел с фиксированной точкой меньшей разрядности. Для двоичной системы счисления он описывается следующим образом:The claimed utility model is based on the principle of calculating the product of numbers with a fixed point of higher resolution, based on the products of numbers with a fixed point of lower resolution. For a binary number system, it is described as follows:

А=2na12 A = 2 n a 1 + a 2

В=2m b1+b2 B = 2 m b 1 + b 2

X=АВ=2mnа1b1+2nа1b2+2mа2b1+a2b2, X = AB = 2mnbutonebone+2nbutoneb2+2mbut2bone+ a2b2,

где А - первый множитель, В - второй множитель, 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 oldest and the youngest, each of which is multiplied from each of the parts of the other factor, after which the resulting products are added up with a shift, and the final product is formed. Thus, to calculate the product of higher capacity, four multipliers of lower capacity and an adder are required, which is more economical in area than one multiplier of full capacity.

Также в основе заявленной полезной модели лежит принцип вычисления произведения чисел с плавающей точкой на основе целочисленного произведения мантисс. Это означает, что целочисленное произведение мантисс вычисляют на тех же умножителях, что и произведения чисел с фиксированной точкой, после чего с помощью аппаратного блока анализируют знаки и экспоненты множителей с плавающей точкой и формируют итоговое произведение. Данный подход существенно сокращает площадь заявленного устройства.Also, the claimed utility model is based on the principle of computing the product of floating-point numbers based on the integer product of the mantissa. This means that the integer product of the mantissas is calculated on the same multipliers as the products of fixed-point numbers, after which the signs and exponents of the floating-point factors are analyzed using the hardware unit and the resulting 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 utility model is an array of sixteen 16-bit integer multipliers and an adder tree that allow you to calculate the products of fixed-point numbers of 8, 16, 32 and 64 bits in size, as well as various sums of products. The device also includes blocks for the formation of products of floating-point numbers and adders of floating-point numbers of half, single and double precision. The device 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.

Для лучшего понимания заявленной полезной модели далее приводится ее подробное описание с соответствующими графическими материалами.For a better understanding of the claimed utility model, the following is a detailed description with the corresponding graphic materials.

Фиг. 1. Общая схема массива умножителей, выполненная согласно полезной модели.FIG. 1. The general scheme of the array of multipliers, made according to the utility model.

Фиг. 2. Структурная схема 16-разрядного блока целочисленного умножения, выполненная согласно полезной модели.FIG. 2. The block diagram of the 16-bit integer multiplication block, made according to the utility model.

Фиг. 3. Структурная схема 32-разрядного блока целочисленного умножения, выполненная согласно полезной модели.FIG. 3. The block diagram of the 32-bit integer multiplication block, made according to the utility model.

Фиг. 4. Структурная схема 64-разрядного блока целочисленного умножения, выполненная согласно полезной модели.FIG. 4. The block diagram of a 64-bit integer multiplication block, made according to the utility model.

Фиг. 5. Структурная схема векторного мультиформатного умножителя, выполненная согласно полезной модели.FIG. 5. The structural diagram of the vector multi-format multiplier, made according to the utility model.

Таблица 1. Производительность векторного мультиформатного умножителя, выполненная согласно полезной модели.Table 1. The performance of the vector multi-format multiplier, made according to the utility model.

Элементы:Items:

10, 22, 23, 24, 25 - 16-разрядный блок целочисленного умножения тр16;10, 22, 23, 24, 25 - 16-bit integer multiplication block tr16;

11 - 16-разрядный целочисленный умножитель;11 - 16-bit integer multiplier;

12 - 16-разрядный блок формирования произведений чисел с плавающей точкой flp16; 20, 32, 33, 34, 35 - 32-разрядный блок целочисленного умножения mp32;12 - 16-bit block production of floating-point numbers flp16; 20, 32, 33, 34, 35 - 32-bit integer multiplication block mp32;

21, 31 - демультиплексор входных данных;21, 31 - input data demultiplexer;

26 - сумматор чисел с фиксированной точкой sx32;26 - adder of fixed-point numbers sx32;

27, 28, 39, 40, 41, 42 - 16 - разрядные сумматоры чисел с плавающей точкой половинной точности sf16;27, 28, 39, 40, 41, 42 - 16 - bit adders of half-precision floating-point numbers sf16;

29-32 - разрядный блок формирования произведения с плавающей точкой одинарной точности flp32;29-32 - bit block forming a product with a floating point single precision flp32;

30, 53 - 64-разрядный блок целочисленного умножения mp64; 36 - сумматор чисел с фиксированной точкой sx64;30, 53 - 64-bit integer multiplication block mp64; 36 - adder of fixed-point numbers sx64;

37, 38 - 32-разрядные сумматоры чисел с плавающей точкой половинной точности sf32;37, 38 - 32-bit half precision floating point adders sf32;

43 - 64-разрядный блок формирования произведения с плавающей точкой одинарной точности flp64;43 - 64-bit unit of formation of a product with a floating point single precision flp64;

44 - блок упаковки произведений с плавающей точкой pkg;44 - pkg floating point packaging unit;

50, 51 - декодер команд cmd_dec;50, 51 - cmd _ dec instruction decoder;

52 - мультиплексор mx;52 - multiplexer mx;

54, 56 - блок преобразования результата с фиксированной точкой fxp;54, 56 - block conversion result with a fixed point fxp;

55, 57 - блок преобразования результата с плавающей точкой flp;55, 57 - block conversion of the result with a floating point flp;

58, 59- мультиплексор результата;58, 59 - result multiplexer;

60 - блок накопления результата в регистрах-аккумуляторах mac.60 is a block accumulation of the result in the registers-batteries mac.

Рассмотрим более подробно вариант выполнения заявленной полезной модели (Фиг. 1-5).Consider in more detail an embodiment of the claimed utility model (Fig. 1-5).

Заявленный векторный мультиформатный умножитель способен принимать на вход до четырех 64 - разрядных операндов и выполнять над ними одновременно до двух команд, записывая результат в регистровый файл или в регистры-аккумуляторы.The claimed vector multi-format 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 multi-format 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, adders with four inputs are used. This design allows you to calculate the product of 8-, 16-, 32- and 64-bit fixed-point numbers, as well as various sums of the products of these numbers.

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

На Фиг. 2 приведена структурная схема 16 - разрядного блока 10 целочисленного умножения, который является элементарной единицей массива умножителей. Кроме 16-разрядного целочисленного умножителя 11, в его состав входит блок 12 формирования произведения с плавающей точкой половинной точности flp16. 16-разрядный блок 10 целочисленного умножения получает на вход два 16-разрядных операнда и выдает на выходе два произведения этих операндов: целочисленное и с плавающей точкой.In FIG. 2 is a structural diagram of a 16-bit integer multiplication block 10, which is an elementary unit of a multiplier array. In addition to the 16-bit integer multiplier 11, it includes a block 12 for the formation of a product with a floating point half precision flp16. The 16-bit integer multiplication block 10 receives two 16-bit operands as an input and outputs two products of these operands: an integer and a 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-разрядный упакованный результат умножений с плавающей точкой половинной точности и произведение с плавающей точкой одинарной точности.In FIG. 3 is a structural diagram of a 32-bit integer multiplication unit 20. The basis of this block is a 2 × 2 array consisting of 16-bit integer multipliers 22–25. The input data is distributed to 16-bit integer multipliers 22–25 using the demultiplexer 21. Integer products from 16-bit integer multipliers 22–25 arrive to a 32-bit adder of 26 numbers with a fixed point, which can calculate both the products of 32-bit numbers and various sums of the products of 16-bit numbers. It can also simply pack and skip further two products of 16-bit numbers. Half-precision floating-point products from 16-bit integer multipliers 22 - 25 arrive in pairs to two 16-bit adders 27, 28 half-precision floating-point numbers, each of which either calculates the sum of the products, or simply skips one of the operands. Unit 29 generating a single precision floating-point product is used to generate a product of single precision floating-point numbers. The integer multiplication block 20 receives two arrays of 2 × 2 16-bit operands as an input and outputs a 64-bit packed result of integer multiplications, a 32-bit packed result of half-precision floating-point multiplications, and a single-precision floating-point product.

На Фиг. 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-разрядных упакованных результата умножений с плавающей точкой.In FIG. 4 is a block diagram of a 64-bit integer multiplication block 30. The basis of this block is an array of dimension 2 × 2, consisting of 32-bit blocks 32 -35 integer multiplication. The input data is distributed on 32-bit integer multiplication blocks 32 - 35 using the demultiplexer 31. Integer products from 32-bit integer multiplication blocks 32 - 35 are sent to a 64-bit adder 36 fixed-point numbers, which can be calculated on the basis of them as a product 64-bit numbers and various sums of the products of 32-bit and 16-bit numbers. It can also simply pack and skip data from the outputs of 32-bit integer multiplication blocks 32 - 35. Half-precision floating-point products from integer multiplication blocks 32 - 35 are supplied in pairs to 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 one of the operands. Single precision floating-point products from integer multiplication blocks 32 - 35 are pairwise supplied to two 32-bit adders 37, 38 single-precision floating-point numbers, each of which either calculates the sum of the products or simply skips one of the operands. A 64-bit double precision floating-point product generating unit 43 is used to generate a product of double-precision floating-point numbers. The 64-bit integer multiplication unit 30 receives two 4 × 4 16-bit operand arrays of input and outputs two 128-bit packed integer multiplications and two 64-bit packed floating-point multiplications.

На Фиг. 5 приведена структурная схема заявленного векторного мультиформатного умножителя. Основой векторного мультиформатного умножителя является 64-разрядный блок 53 целочисленного умножения, который выполняет вычисления. Два декодера команд 50, 51 осуществляют декодирование команд и настройку 64-разрядный блока 53 целочисленного умножения для их корректного выполнения. Мультиплексор 52 принимает на вход четыре 64-разрядных операнда и в соответствии с текущей командой преобразует их в два массива размерности 4×4 16-разрядных операндов, которые далее поступают на 64-разрядный блок 53 целочисленного умножения. Блоки 54, 56 преобразования результата с фиксированной точкой и блоки 55, 57 преобразования результата с плавающей точкой формируют окончательные результаты команд, которые через мультиплексоры результата 58, 59 поступают на выходы векторного мультиформатного умножителя. Блок 60 накопления результата в регистрах-аккумуляторах осуществляет сложение результата команды с содержимым регистров-аккумуляторов.In FIG. 5 shows a structural diagram of the claimed vector multiformat multiplier. The basis of the vector multi-format multiplier is a 64-bit integer multiplication unit 53, which performs the calculations. Two instruction decoders 50, 51 decode the instructions and configure the 64-bit integer multiplication block 53 to execute them correctly. The multiplexer 52 receives four 64-bit operands and, in accordance with the current command, converts them into two 4 × 4 16-bit operand arrays, which then go to the 64-bit integer multiplication block 53. Blocks 54, 56 converting the result with a fixed point and blocks 55, 57 converting the result with a floating point form the final results of the commands, which through the multiplexers of the result 58, 59 are supplied to the outputs of the vector multi-format multiplier. Block 60 accumulation of the result in the registers-accumulators performs the addition of the result of the command with the contents of the registers-accumulators.

Данные по производительности векторного мультиформатного умножителя приведены в Таблице 1. За один такт выполняют или указанное количество умножений для одного типа данных, или половина умножений для одного типа данных и половина для другого, если возможно.The performance data of a vector multi-format multiplier is shown in Table 1. In one cycle, either the indicated number of multiplications for one data type is performed, or half of the multiplications for one data type and half for another, if possible.

Векторный мультиформатный умножитель имеет следующий набор команд: умножение, умножение с накоплением, комплексное умножение, сумма произведений, вычисление КИХ-фильтра, умножение матриц.Vector multi-format multiplier has the following set of commands: multiplication, accumulation multiplication, complex multiplication, product sum, FIR filter calculation, matrix multiplication.

Команды векторного мультиформатного умножителя являются векторными, то есть работают с векторами данных (SIMD - single instruction, multiple data - одиночный поток команд, множественный поток данных).The vector multi-format multiplier commands are vector, that is, they work with data vectors (SIMD - single instruction, multiple data - single instruction stream, multiple data stream).

Векторный мультиформатный умножитель имеет два вычислительных слота, что дает возможность одновременно выполнять две независимые команды. В случае выполнения одной команды, требующей всей вычислительной мощности векторного мультиформатного умножителя, два вычислительных слота объединяют в один.Vector multi-format multiplier has two computing slots, which makes it possible to simultaneously execute two independent commands. In the case of the execution of one command that requires all the processing power of the vector multi-format multiplier, two computing slots are combined into one.

Векторный мультиформатный умножитель предназначен для установки в DSP-ядро или систему на кристалле в качестве высокопроизводительного вычислительного устройства.A vector multi-format multiplier is designed to be installed in a DSP core or on-chip system as a high-performance computing device.

Основными преимуществами заявленной полезной модели являются:The main advantages of the claimed utility model are:

- вычисление произведений чисел с фиксированной точкой большей разрядности на основе произведений чисел с фиксированной точкой меньшей разрядности, что позволяет значительно уменьшить площадь устройства;- Calculation of the products of numbers with a fixed point of higher resolution based on the products of numbers with a fixed point of lower resolution, which can significantly reduce the area of the device;

- вычисление произведений чисел с плавающей точкой на основе произведений чисел с фиксированной точкой, что позволяет значительно уменьшить площадь устройства;- the 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 (integers with a fixed point of 8, 16, 32 and 64 bits, fractional numbers with a fixed point of 8, 16 and 32 bits, floating-point numbers of half, single and double precision);

- поддержка векторных операций (SIMD - single instruction, multiple data);- support for vector operations (SIMD - single instruction, multiple data);

- поддержка большого количества различных вычислительных операций (умножения, комплексного умножения, умножения с накоплением, суммирования произведений, фильтрации, умножения матриц);- support for a large number of various computational operations (multiplication, complex multiplication, accumulation multiplication, product summation, filtering, matrix multiplication);

- поддержка двух вычислительных слотов, то есть возможность одновременного независимого выполнения двух разных операций умножения;- support for two computing slots, that is, the ability to simultaneously independently perform two different multiplication operations;

- количество умножений и сложений для разных типов данных:- the number of multiplications and additions for different data types:

фиксированная точка, 8 бит - 16 умножений, 12 сложений и 8 накоплений фиксированная точка, 16 бит - 16 умножений, 12 сложений и 4 накопления фиксированная точка, 32 бита - 4 умножения, 3 сложения и 2 накопления фиксированная точка, 64 бита - 1 умножение, 1 накопление плавающая точка, 16 бит - 16 умножений, 12 сложений и 4 накопления плавающая точка, 32 бита - 4 умножения, 3 сложения и 2 накопления плавающая точка, 64 бита - 1 умножение, 1 накоплениеfixed point, 8 bits - 16 multiplications, 12 additions and 8 accumulations fixed point, 16 bits - 16 multiplications, 12 additions and 4 accumulations fixed point, 32 bits - 4 multiplications, 3 additions and 2 accumulations fixed point, 64 bits - 1 multiplication , 1 accumulation floating point, 16 bits - 16 multiplications, 12 additions and 4 accumulations floating point, 32 bits - 4 multiplications, 3 additions and 2 accumulations floating point, 64 bits - 1 multiplication, 1 accumulation

Хотя описанный выше вариант выполнения полезной модели был изложен с целью иллюстрации заявленной полезной модели, специалистам ясно, что возможны разные модификации, добавления и замены, не выходящие из объема и смысла заявленной полезной модели, раскрытой в прилагаемой формуле полезной модели.Although the embodiment of the utility model described above was set forth to illustrate the claimed utility model, it is clear to those skilled in the art that various modifications, additions and replacements are possible without departing from the scope and meaning of the claimed utility model disclosed in the attached utility model formula.

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. Vector multi-format multiplier containing a 4 × 4 array of 16-bit integer multipliers 11 included in the 64-bit integer multiplication unit 30, two decoders 50, 51 and a multiplexer 52, the inputs of which are inputs of the vector multi-format multiplier, and the outputs of which are connected to the inputs of a 64-bit integer multiplication unit 53, the outputs of which are connected to the inputs of two fixed-point result converting units 54, 56 and two blocks 55, 57, floating-point result conversion a 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 multi-format multiplier, and the output of the second multiplexer of the result 58 is the output of the vector multi-format multiplier, and is also connected to the first input of the block 60 for accumulating the result in the registers batteries, the second input of which is the input of the vector multi-format multiplier, and the output of which is the output of the vector multi-format multiplier, while 16-разрядный целочисленный умножитель 11 выполнен с возможностью получения на входы двух 16-разрядных операндов и формирования на выходе целочисленного произведения этих операндов;16-bit integer multiplier 11 is configured to receive two 16-bit operands at the inputs and generate an integer product of these operands at the output; 64-разрядный блок 53 целочисленного умножения выполнен с возможностью получения на вход двух массивов размерности 4×4 из 16-разрядных операндов и формирования на выходе двух 128-разрядных упакованных результатов целочисленных умножений и двух 64-разрядных упакованных результатов умножений с плавающей точкой;The 64-bit integer multiplication unit 53 is configured to receive two 4 × 4 arrays of input from 16-bit operands and generate two 128-bit packed integer multiplication results and two 64-bit packed floating-point multiplication results; декодеры команд 51, 52 выполнены с возможностью декодирования команд и настройки 64-разрядного блока 53 целочисленного умножения с целью корректного выполнения этих команд;instruction decoders 51, 52 are configured to decode instructions and configure a 64-bit integer multiplication unit 53 to correctly execute these instructions; мультиплексор 52 выполнен с возможностью приема на вход четырех 64-разрядных операндов, преобразования их в соответствии с текущей командой в два массива размерности 4×4 из 16-разрядных операндов и передачи их в 64-разрядный блок 53 целочисленного умножения;the multiplexer 52 is configured to receive four 64-bit operands, convert them according to the current command into two 4 × 4 arrays of 16-bit operands and transfer them to a 64-bit integer multiplication block 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 configured to generate the final results of the commands, and transmit them through the multiplexers of the result 59, 60 to the outputs of the vector multi-format multiplier; блок 61 накопления результата в регистрах-аккумуляторах выполнен с возможностью сложения результата команды с содержимым регистров-аккумуляторов и передачи результата сложения на выход векторного мультиформатного умножителя.the accumulation unit 61 of the result in the battery registers is configured to add the result of the command with the contents of the battery registers and transmit 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 multi-format multiplier according to claim 1, characterized in that the 64-bit integer multiplication unit 30 contains a demultiplexer 31 of input data, the inputs of which are inputs of the vector multi-format multiplier, and the outputs of which are connected to the inputs of four 32-bit integer blocks 32-35 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 with the inputs of four 16-bit adders 39-42 half-precision floating-point numbers, and the output of the 64-bit fixed-point adder is the first output of the 64-bit integer multiplication unit 30, and is also connected to one input of the 64-bit double-precision floating-point unit 43 the output of which is connected to one input of the unit 44 for packaging of works with a floating point, the remaining inputs of which are connected to the outputs of two 32-bit adders 37, 38 of single-precision floating-point numbers and with inputs of four 16-bit dnyh 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 целочисленного умножения;a demultiplexer 31 of input data is configured to distribute input data to 32-bit integer multiplication blocks 32-35; сумматор 36 чисел с фиксированной точкой выполнен с возможностью получения на вход целочисленных произведений 32-разрядных чисел и вычисления на их основе произведений 64-разрядных чисел, сумм произведений 32-разрядных чисел, сумм произведений 16-разрядных чисел, а также пропускания на выход целочисленных произведений 32-разрядных чисел;the adder 36 fixed-point numbers configured to input integer products of 32-bit numbers and calculate based on them 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 passing integer products to the output 32-bit numbers сумматоры 39-42 чисел с плавающей точкой половинной точности, выполнены с возможностью получения на вход попарно произведений с плавающей точкой половинной точности и вычисления на их основе сумм произведений, а также пропускания дальше одного из операндов;adders of 39-42 half-precision floating-point numbers, made with the possibility of receiving half-precision floating-point products in pairs and calculating the sums of the works based on them, as well as passing one of the operands further; блок 43 формирования произведений чисел с плавающей точкой выполнен с возможностью вычисления произведения чисел с плавающей точкой на основе целочисленного произведения мантисс, которое вычисляется на общем массиве 16-разрядных целочисленных умножителей 11.the floating point product generation unit 43 is configured to calculate the product of the floating point numbers based on the integer product of the 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. The vector multi-format multiplier according to claim 1, characterized in that the 32-bit integer multiplication unit 20 comprises an input data demultiplexer 21, the inputs of which are inputs of the vector multi-format 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 of 26 fixed-point numbers, with the inputs of two 16-bit adders 27, 28 of half-precision floating-point numbers, and the output of the 32-bit adder is 26 fixed-point sat is the first output of the 32-bit integer multiplication block 20, and is also connected to one input of the 32-bit single-precision floating-point product block 29, the output of which is the second output of the 32-bit integer multiplication block 20, and the outputs of two 16-bit adders 27, 28 half-precision floating-point numbers are the third and fourth outputs of the 32-bit integer multiplication unit 20, while демультиплексор 21 входных данных выполнен с возможностью распределения входных данных на 16-разрядные блоки 22-25 целочисленного умножения;a demultiplexer 21 of input data is configured to distribute input data to 16-bit integer multiplication blocks 22-25; сумматор 26 чисел с фиксированной точкой выполнен с возможностью получения на вход целочисленных произведений 16-разрядных чисел и вычисления на их основе произведений 32-разрядных чисел, сумм произведений 16-разрядных чисел, пропускания на выход целочисленных произведений 16-разрядных чисел, а также упаковки и пропускания на выход двух произведений 16-разрядных чисел;the adder 26 numbers with a fixed point is made with the possibility of receiving the input of integer products of 16-bit numbers and calculating on their basis the products of 32-bit numbers, the sum of the products of 16-bit numbers, passing the output of integer products of 16-bit numbers, and also packaging output pass two products of 16-bit numbers; сумматоры 27, 28 чисел с плавающей точкой половинной точности, выполнены с возможностью получения на вход попарно произведений с плавающей точкой половинной точности и вычисления на их основе сумм произведений, а также пропускания дальше одного из операндов;adders 27, 28 of half-precision floating-point numbers, made with the possibility of receiving half-precision floating-point products in pairs and calculating the sums of products based on them, as well as passing one of the operands further; блок 29 формирования произведений чисел с плавающей точкой выполнен с возможностью вычисления произведения чисел с плавающей точкой на основе целочисленного произведения мантисс, которое вычисляется на общем массиве 16-разрядных целочисленных умножителей 11.the floating point product generation unit 29 is configured to calculate the product of the floating point numbers based on the integer product of the 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. Vector multi-format multiplier according to claim 1, characterized in that the 16-bit integer multiplier block 10 contains a 16-bit integer multiplier 11, both of which are inputs of the 16-bit integer multiplication block 10, and the output of which is the first output 16- bit unit 10 of integer multiplication, and is also connected to the input of the 16-bit unit 12 of the formation of the product with a floating point half precision, the output of which is the second output of the 16-bit unit 10 of integer multiplication, 16-разрядный целочисленный умножитель 11 выполнен с возможностью получения на входы двух 16-разрядных операндов и формирования на выходе целочисленного произведения этих операндов;16-bit integer multiplier 11 is configured to receive two 16-bit operands at the inputs and generate an integer product of these operands at the output; 16-разрядный блок 12 формирования произведений чисел с плавающей точкой выполнен с возможностью вычисления произведения чисел с плавающей точкой на основе целочисленного произведения мантисс, которое вычисляется на общем массиве 16-разрядных целочисленных умножителей 11.The 16-bit floating point product generation unit 12 is configured to calculate the product of floating-point numbers based on the integer product of the mantissas, which is calculated on a common array of 16-bit integer multipliers 11.
RU2018130318U 2018-08-21 2018-08-21 VECTOR MULTIFORM FORMAT RU185346U1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2018130318U RU185346U1 (en) 2018-08-21 2018-08-21 VECTOR MULTIFORM FORMAT

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2018130318U RU185346U1 (en) 2018-08-21 2018-08-21 VECTOR MULTIFORM FORMAT

Publications (1)

Publication Number Publication Date
RU185346U1 true RU185346U1 (en) 2018-11-30

Family

ID=64577224

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2018130318U RU185346U1 (en) 2018-08-21 2018-08-21 VECTOR MULTIFORM FORMAT

Country Status (1)

Country Link
RU (1) RU185346U1 (en)

Cited By (1)

* 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

Citations (5)

* 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
US20130138711A1 (en) * 2011-11-29 2013-05-30 Junji Sugisawa Shared integer, floating point, polynomial, and vector multiplier
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 (5)

* 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
US20130138711A1 (en) * 2011-11-29 2013-05-30 Junji Sugisawa Shared integer, floating point, polynomial, and vector multiplier
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 (1)

* 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

Similar Documents

Publication Publication Date Title
US6584482B1 (en) Multiplier array processing system with enhanced utilization at lower precision
US6247036B1 (en) Processor with reconfigurable arithmetic data path
CN104111816B (en) Multifunctional SIMD structure floating point fusion multiplying and adding arithmetic device in GPDSP
CN103455304B (en) For the treatment of the processor of instruction set
CN106951211B (en) A kind of restructural fixed and floating general purpose multipliers
US10776078B1 (en) Multimodal multiplier systems and methods
WO1998032071A9 (en) Processor with reconfigurable arithmetic data path
CN101916177B (en) Configurable multi-precision fixed point multiplying and adding device
CN103294446A (en) Fixed-point multiply-accumulator
CN105335127A (en) Scalar operation unit structure supporting floating-point division method in GPDSP
CN102184161B (en) Matrix inversion device and method based on residue number system
CN102768654A (en) Device with FFT-base (fourier transform) 2-butterfly operation handling ability and method for achieving operation
TW384447B (en) Processor with reconfigurable arithmetic data path
RU2689819C1 (en) Vector multiformat multiplier
US6675286B1 (en) Multimedia instruction set for wide data paths
CN101840324B (en) 64-bit fixed and floating point multiplier unit supporting complex operation and subword parallelism
RU185346U1 (en) VECTOR MULTIFORM FORMAT
EP3841461B1 (en) Digital circuit with compressed carry
CN112712172B (en) Computing device, method, integrated circuit and apparatus for neural network operations
CN113556101B (en) IIR filter and data processing method thereof
CN115357214A (en) Operation unit compatible with asymmetric multi-precision mixed multiply-accumulate operation
Belyaev et al. A High-perfomance Multi-format SIMD Multiplier for Digital Signal Processors
US5206826A (en) Floating-point division cell
CN100418054C (en) Apparatus and method for generating packed sum of absolute differences
CN100440192C (en) Arithmetic cell structure in coarse grain re-configurable computing structure

Legal Events

Date Code Title Description
MG9K Termination of a utility model due to grant of a patent for identical subject

Ref document number: 2689819

Country of ref document: RU

Effective date: 20190529