RU185346U1 - VECTOR MULTIFORM FORMAT - Google Patents
VECTOR MULTIFORM FORMAT Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- 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
Поставленный технический результат достигнут путем создания векторного мультиформатного умножителя, содержащего массив размерности 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-
- 16-разрядный целочисленный умножитель 11 выполнен с возможностью получения на входы двух 16-разрядных операндов и формирования на выходе целочисленного произведения этих операндов;- the 16-
- 64-разрядный блок 53 целочисленного умножения выполнен с возможностью получения на вход двух массивов размерности 4×4 из 16-разрядных операндов и формирования на выходе двух 128-разрядных упакованных результатов целочисленных умножений и двух 64-разрядных упакованных результатов умножений с плавающей точкой;- the 64-bit
- декодеры команд 51, 52 выполнены с возможностью декодирования команд и настройки 64-разрядного блока 53 целочисленного умножения с целью корректного выполнения этих команд;-
- мультиплексор 52 выполнен с возможностью приема на вход четырех 64-разрядных операндов, преобразования их в соответствии с текущей командой в два массива размерности 4×4 из 16-разрядных операндов и передачи их в 64-разрядный блок 53 целочисленного умножения;- the
- блоки 54, 56 преобразования результата с фиксированной точкой и блоки 55, 57 преобразования результата с плавающей точкой выполнены с возможностью формирования окончательных результатов команд, и передачи их через мультиплексоры результата 59, 60 на выходы векторного мультиформатного умножителя;-
- блок 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
- демультиплексор 31 входных данных выполнен с возможностью распределения входных данных на 32-разрядные блоки 32 - 35 целочисленного умножения;-
- сумматор 36 чисел с фиксированной точкой выполнен с возможностью получения на вход целочисленных произведений 32-разрядных чисел и вычисления на их основе произведений 64-разрядных чисел, сумм произведений 32-разрядных чисел, сумм произведений 16-разрядных чисел, а также пропускания на выход целочисленных произведений 32-разрядных чисел;- the
- сумматоры 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.-
В предпочтительном варианте осуществления векторного мультиформатного умножителя 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
- сумматор 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
В предпочтительном варианте осуществления векторного мультиформатного умножителя 16-разрядный блок 10 целочисленного умножения содержит 16-разрядный целочисленный умножитель 11, оба входа которого являются входами 16-разрядного блока 10 целочисленного умножения, а выход которого является первым выходом 16-разрядного блока 10 целочисленного умножения, а также соединен с входом 16-разрядного блока 12 формирования произведения с плавающей точкой половинной точности, выход которого является вторым выходом 16-разрядного блока 10 целочисленного умножения, при этомIn a preferred embodiment of the vector multi-format multiplier, the 16-
-16-разрядный целочисленный умножитель 11 выполнен с возможностью получения на входы двух 16-разрядных операндов и формирования на выходе целочисленного произведения этих операндов;The 16-
- 16-разрядный блок 12 формирования произведений чисел с плавающей точкой выполнен с возможностью вычисления произведения чисел с плавающей точкой на основе целочисленного произведения мантисс, которое вычисляется на общем массиве 16-разрядных целочисленных умножителей 11.- 16-
В основе заявленной полезной модели лежит принцип вычисления произведения чисел с фиксированной точкой большей разрядности на основе произведений чисел с фиксированной точкой меньшей разрядности. Для двоичной системы счисления он описывается следующим образом: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:
А=2na1+а2 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
Также основой векторного мультиформатного умножителя являются блоки 12, 29, 43 формирования произведений чисел с плавающей точкой. Данные блоки позволяют вычислять произведения чисел с плавающей точкой на основе целочисленного произведения мантисс, которое вычисляют на общем массиве умножителей. Такое решение позволяет отказаться от отдельных умножителей чисел с плавающей точкой и значительно сократить площадь устройства (векторного мультиформатного умножителя). Произведения чисел с плавающей точкой связаны деревом сумматоров, позволяющим вычислять различные суммы произведений.Also, the basis of the vector multi-format multiplier are
На Фиг. 2 приведена структурная схема 16 - разрядного блока 10 целочисленного умножения, который является элементарной единицей массива умножителей. Кроме 16-разрядного целочисленного умножителя 11, в его состав входит блок 12 формирования произведения с плавающей точкой половинной точности flp16. 16-разрядный блок 10 целочисленного умножения получает на вход два 16-разрядных операнда и выдает на выходе два произведения этих операндов: целочисленное и с плавающей точкой.In FIG. 2 is a structural diagram of a 16-bit
На Фиг. 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
На Фиг. 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
На Фиг. 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
Данные по производительности векторного мультиформатного умножителя приведены в Таблице 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.
Claims (20)
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)
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)
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 |
-
2018
- 2018-08-21 RU RU2018130318U patent/RU185346U1/en not_active IP Right Cessation
Patent Citations (5)
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)
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 |