RU2686628C1 - Addition-subtraction device for digital signal processor - Google Patents
Addition-subtraction device for digital signal processor Download PDFInfo
- Publication number
- RU2686628C1 RU2686628C1 RU2017145395A RU2017145395A RU2686628C1 RU 2686628 C1 RU2686628 C1 RU 2686628C1 RU 2017145395 A RU2017145395 A RU 2017145395A RU 2017145395 A RU2017145395 A RU 2017145395A RU 2686628 C1 RU2686628 C1 RU 2686628C1
- Authority
- RU
- Russia
- Prior art keywords
- input
- unit
- block
- conditional
- mantissa
- Prior art date
Links
- 230000007704 transition Effects 0.000 claims abstract description 30
- 230000015572 biosynthetic process Effects 0.000 claims abstract description 23
- 241000258241 Mantis Species 0.000 claims description 19
- 239000000126 substance Substances 0.000 abstract 1
- 238000010606 normalization Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 101100459917 Caenorhabditis elegans cnd-1 gene Proteins 0.000 description 1
- 102100029095 Exportin-1 Human genes 0.000 description 1
- 101100242909 Streptococcus pneumoniae (strain ATCC BAA-255 / R6) pbpA gene Proteins 0.000 description 1
- 101100269618 Streptococcus pneumoniae serotype 4 (strain ATCC BAA-334 / TIGR4) aliA gene Proteins 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 108700002148 exportin 1 Proteins 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/485—Adding; Subtracting
-
- 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49905—Exception handling
- G06F7/4991—Overflow or underflow
- G06F7/49921—Saturation, i.e. clipping the result to a minimum or maximum value
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Nonlinear Science (AREA)
- Complex Calculations (AREA)
Abstract
Description
Изобретение относится к устройствам обработки цифровых данных и может использоваться в качестве IP-блока для цифро-сигнальных процессоров.The invention relates to digital data processing devices and can be used as an IP block for digital-signal processors.
Известны устройства для выполнения различных арифметических операций в формате чисел с плавающей запятой.Known devices for performing various arithmetic operations in the format of floating-point numbers.
Из патента США US5487022 известна нормализация экспоненциальной части числа средствами, использующими дешифраторы, память, логические элементы, мультиплексоры. Средства реализуются в виде комплексного устройства, характеризующегося высокими аппаратными затратами.From US patent US5487022, normalization of the exponential part of the number is known by means using decoders, memory, logic elements, multiplexers. Means are implemented in the form of an integrated device, characterized by high hardware costs.
Известно устройство операционного умножения с плавающей запятой (заявка на патент США US20150347089). Для выполнения операции умножения в устройство введены блоки нормализации чисел, избыточно выполняющие эквивалентные функции, что усложняет конструкцию.A device for operational multiplication with a floating point (US patent application US20150347089) is known. To perform the multiplication operation, blocks of normalization of numbers are introduced into the device, which excessively perform equivalent functions, which complicates the construction.
Патент США US6516332 раскрывает устройство для выполнения математических операций над числами в формате с плавающей точкой. Это устройство позволяет осуществлять над числами операции сложения, вычитания, умножения, деления, и построено на базе процессора для операций с плавающей точкой. Устройство содержит микроконтроллер, блок памяти микроконтроллера, вентильную матрицу, множество модулей оператора с плавающей точкой для выполнения математических операций сложения, вычитания, умножения и деления, каждый из которых включает сумматор, вычитающее устройство, множитель и делитель, первый мультиплексор для получения данных от сумматора и вычитающего устройства, второй мультиплексор для получения данных от умножителя и делителя, и третий мультиплексор для получения соответствующих данных от первого и второго мультиплексоров. Недостатком устройства является то, что фиксированная величина (разрядность) мантиссы и экспоненты ограничивают область его применения, а само оно предназначено для управления моторами.US patent US6516332 discloses a device for performing mathematical operations on numbers in floating point format. This device allows to perform addition, subtraction, multiplication, division operations on numbers, and is built on a processor base for floating point operations. The device contains a microcontroller, a microcontroller memory block, a gate array, a set of floating-point operator modules for performing mathematical operations of addition, subtraction, multiplication and division, each of which includes an adder, a subtractor, a multiplier and a divider, the first multiplexer for receiving data from the adder and subtractive device, a second multiplexer for receiving data from a multiplier and a divider, and a third multiplexer for receiving relevant data from the first and second multiplex sors. The disadvantage of this device is that the fixed value (bit depth) of the mantissa and the exponent limit its scope, and it itself is intended to control motors.
Наиболее близким аналогом заявленного изобретения является устройство с плавающей точкой для сложения-вычитания согласно патенту США US5568412. Это устройство включает схему выравнивания, схему сложения-вычитания и округления и схему нормализации. Схема выравнивания выравнивает части первых и вторых операндов, основанных на различии их образцов. Схема сложения-вычитания и округления выполняет, по крайней мере, два сложения-вычитания между выровненными частями части первых и вторых операндов и выборочно производит значение результата одного из округленных результатов сложения/вычитания частей первых и вторых операндов. Схема нормализации нормализует округленный от значения результат, чтобы произвести конечный результат сложения/вычитания частей. Указанные три схемы устройства построены на базе компаратора, первого и второго сумматора, схемы выравнивания, схем подкачки, первого логического элемента «исключающее ИЛИ», логического элемента «И», множества логических элементов «ИЛИ», логической схемы полусумматора, двух мультиплексоров, счетчика начального нуля, преобразователя. Устройство требует синхронного обмена данными между его функциональными узлами и имеет недостаточное быстродействие.The closest analogue of the claimed invention is a device with a floating point for addition-subtraction according to US patent US5568412. This device includes an alignment scheme, an addition-subtraction and rounding scheme, and a normalization scheme. The alignment circuit aligns the parts of the first and second operands based on the difference of their samples. The addition-subtraction and rounding scheme performs at least two addition-subtraction between the aligned parts of the first and second operands and selectively produces the value of the result of one of the rounded results of the addition / subtraction of the parts of the first and second operands. The normalization scheme normalizes the result, rounded off from the value, to produce the final result of addition / subtraction of parts. These three device circuits are based on a comparator, a first and a second adder, an alignment circuit, paging schemes, the first XOR gate, the AND gate, the OR gate set, the half combinator circuit, two multiplexers, and an initial counter zero converter. The device requires synchronous data exchange between its functional nodes and has insufficient speed.
Как и предыдущие устройства, устройство-аналог характеризуется высокими аппаратными затратами.Like previous devices, the device-analogue is characterized by high hardware costs.
Задачей настоящего изобретения является устранение недостатков известных устройств сложения-вычитания чисел, улучшение их технико-эксплуатационных характеристик.The present invention is to eliminate the disadvantages of the known devices of addition and subtraction of numbers, the improvement of their technical and operational characteristics.
Технический результат заключается в упрощении конструкции и повышении быстродействия устройства сложения-вычитания чисел при асинхронном обмене данными.The technical result consists in simplifying the design and improving the speed of the device for adding and subtracting numbers during asynchronous data exchange.
Поставленная задача решается, а заявленный технический результат достигается в устройстве сложения-вычитания чисел для цифро-сигнального процессора, содержащем первый блок условного выбора младшей части мантисс, второй блок условного выбора старшей части мантисс, блок выбора максимума экспоненциальной части двух операндов, блок разницы экспонент, блок абсолютной величины разницы, узел прибавления единицы, блок сдвига мантиссы, первый блок формирования величины насыщения, второй блок формирования величины насыщения, блок формирования инверсного кода, блок вычитания двойного формата, первый, второй и третий блок условного перехода. Первый вход первого блока условного выбора младшей части мантисс служит для поступления младшего разряда мантиссы первого числа, второй его вход – для поступления младшего разряда мантиссы второго числа, третий его вход – для поступления экспоненты первого числа, четвертый его вход – для поступления экспоненты второго числа. Первый вход второго блока условного выбора старшей части мантиссы служит для поступления старшей части мантиссы первого числа, а второй его вход – для поступления старшей части мантиссы второго числа. Третий вход и четвертый вход первого блока условного выбора младшей части мантисс соединен соответственно с третьим входом и четвертым входом второго блока условного выбора старшей части мантисс. Третий вход и четвертый вход первого блока условного выбора младшей части мантисс соединен соответственно с первым входом и вторым входом блока выбора максимума экспоненциальной части двух операндов. Третий вход и четвертый вход первого блока условного выбора младшей части мантисс соединен соответственно с первым входом и вторым входом блока разницы экспонент. Первый выход первого блока условного выбора младшей части мантисс соединен с первыми входами первого блока и второго блока формирования величины насыщения. Второй выход первого блока условного выбора младшей части мантисс соединен с первым входом блока сдвига мантиссы. Первый выход второго блока условного выбора младшей части мантисс соединен соответственно со вторым входом первого блока формирования величины насыщения и вторым входом второго блока формирования величины насыщения. Второй выход второго блока условного выбора младшей части мантисс соединен со вторым входом блока сдвига мантиссы. Выход блока выбора максимума экспоненциальной части двух операндов соединен с входом узла прибавления единицы и первым входом третьего блока условного перехода. Выход узла прибавления единицы соединен со вторым входом третьего блока условного перехода. Выход блока разницы экспонент соединен с входом блока абсолютной величины разницы, выход которого соединен с третьим входом блока сдвига мантиссы. Первый выход блока сдвига мантиссы соединен с третьими входами первого и второго блоков формирования величины насыщения. Второй выход блока сдвига мантиссы соединен с четвертыми входами первого и второго блоков формирования величины насыщения. Первый выход первого блока формирования величины насыщения соединен с первым входом блока формирования инверсного кода и первым входом второго блока условного перехода. Второй выход первого блока формирования величины насыщения соединен со вторым входом блока формирования инверсного кода, с первым и третьим входами первого блока условного перехода, с третьим входом второго блока условного перехода и третьим входом третьего блока условного перехода. Выход второго блока формирования величины насыщения соединен с четвертыми входами первого, второго и третьего блоков условного перехода. Первый и второй выходы блока формирования инверсного кода соответственно соединены с первым и вторым входами блока вычитания двойного формата, первый выход которого соединен со вторым входом второго блока условного перехода, а второй выход – со вторым входом первого блока условного перехода. Выходы первого, второго и третьего блоков условного перехода служат выходами соответственно мантиссы старших разрядов, мантиссы младших разрядов и экспоненты сложения-вычитания чисел.The problem is solved, and the claimed technical result is achieved in the device of addition and subtraction of numbers for the digital-signal processor, which contains the first conditional selection block of the younger part of the mantissas, the second conditional choice block of the older part of the mantissas, the maximum choice block of the exponential part of two operands, the difference unit of exponential parts, absolute difference unit, unit addition unit, mantissa shift unit, first saturation value generating unit, second saturation value forming unit, formation unit I have an inverse code, a double format subtraction unit, the first, second and third conditional block. The first input of the first conditional selection block of the lower part of the mantissa serves to receive the lower level of the mantissa of the first number, its second input to receive the lower level of the mantissa of the second number, its third input to the arrival of the first exponent, its fourth input to the second exponent. The first input of the second block of conditional selection of the older part of the mantissa serves for the arrival of the older part of the mantissa of the first number, and its second input is for the arrival of the older part of the mantissa of the second number. The third input and the fourth input of the first conditional selection unit of the lower part of the mantis are connected respectively to the third input and the fourth input of the second conditional selection unit of the older part of the mantissa. The third input and the fourth input of the first conditional selection block of the lower part of the mantis are connected respectively to the first input and the second input of the maximum selection block of the exponential part of two operands. The third input and the fourth input of the first conditional selection block of the lower part of the mantis are connected to the first input and the second input of the difference block of the exponents, respectively. The first output of the first conditional selection block of the younger part of the mantis is connected to the first inputs of the first block and the second block of formation of the saturation value. The second output of the first conditional block of the younger part of the mantis is connected to the first input of the mantissa shift block. The first output of the second conditional selection block of the lower part of the mantis is connected respectively to the second input of the first block of formation of the saturation value and the second input of the second block of formation of the saturation value. The second output of the second conditional block of the younger part of the mantis is connected to the second input of the shift block of the mantissa. The output of the maximum selection block of the exponential part of the two operands is connected to the input of the unit for adding one and the first input of the third conditional branch. The output of the unit addition unit is connected to the second input of the third conditional block. The output of the exponent of the difference block is connected to the input of the absolute value of the difference block, the output of which is connected to the third input of the shift mantissa block. The first output of the shift block mantissa is connected to the third inputs of the first and second blocks of formation of the saturation value. The second output of the shift block mantissa is connected to the fourth inputs of the first and second blocks of formation of the saturation value. The first output of the first block of formation of the saturation value is connected to the first input of the block of formation of the inverse code and the first input of the second block of conditional transition. The second output of the first block of formation of the saturation value is connected with the second input of the block of formation of the inverse code, with the first and third inputs of the first conditional transfer unit, with the third input of the second conditional transfer unit and the third input of the third conditional transfer unit. The output of the second block of formation of the saturation value is connected to the fourth inputs of the first, second and third blocks of the conditional transition. The first and second outputs of the inverse code generation unit are respectively connected to the first and second inputs of the double format subtraction unit, the first output of which is connected to the second input of the second conditional transfer unit, and the second output to the second input of the first conditional transfer unit. The outputs of the first, second and third blocks of the conditional transition serve as outputs of the higher-order mantissa, the lower-order mantissa, and the addition and subtraction exponential numbers.
Преимущества, а также особенности настоящего изобретения поясняются с помощью варианта его выполнения со ссылками на фигуры.The advantages as well as the features of the present invention are explained using an embodiment of the invention with reference to the figures.
Фиг. 1 изображает функциональную схему заявленного устройства;FIG. 1 shows a functional diagram of the claimed device;
На фиг. 2 приведен общий формат числа с плавающей запятой.FIG. 2 shows the general format of a floating-point number.
На фиг. 1 обозначены следующие позиции:FIG. 1 marked the following positions:
1 – первый блок условного выбора младшей части мантисс1 - the first conditional selection block of the younger part of mantis
2 – второй блок условного выбора старшей части мантисс2 - the second block of conditional selection of the older part of mantis
3 – блок выбора максимума экспоненциальной части двух операндов3 - block selection of the maximum exponential part of the two operands
4 – блок разницы экспонент4 - exponent difference block
5 – блок абсолютной величины разницы5 - the block of the absolute value of the difference
6 – узел прибавления единицы6 - unit addition unit
7 – блок сдвига мантиссы7 - mantissa shift block
8 – первый блок формирования величины насыщения8 - the first block forming the value of saturation
9 – второй блок формирования величины насыщения9 - the second block forming the value of saturation
10 – блок формирования инверсного кода10 - block the formation of the inverse code
11 – блок вычитания двойного формата11 - double format subtraction unit
12, 13, 14 – соответственно первый, второй и третий блоки условного перехода12, 13, 14 - the first, second and third blocks of the conditional transition, respectively
15, 16, 17, 18 – входы (входные шины) данных чисел15, 16, 17, 18 - inputs (input buses) of these numbers
19–37 – шины соединений19–37 - bus connections
38, 39, 40 – выходы (выходные шины) данных чисел.38, 39, 40 - outputs (output buses) of these numbers.
Словарь терминов, использованных в описании и на фигурах:Glossary of terms used in the description and figures:
Add – сложениеAdd - addition
Cond – условиеCond - condition
Exp – экспонентаExp - Exhibitor
Mant – мантиссаMant - mantissa
Shift – операция сдвига числаShift - shift operation
Sub – вычитаниеSub - subtraction
Cnd1- блок условий 1Cnd1 -
Cnd2- блок условий 2Cnd2 -
Shmant – блок сдвига мантиссыShmant - mantissa shift block
Maxexp –максимальная величина экспонентыMaxexp - maximum exponent
Exp1 – блок формирования абсолютной величины экспоненты результатаExp1 - block of formation of the absolute value of the exponent of the result
FP – формат чисел с плавающей точкойFP - floating point format
IP-блок (ай-пи-блок) – законченное функциональное устройствоIP block (I-PI block) - complete functional device
Minus – минус или вычитание.Minus - minus or subtract.
Устройство сложения-вычитания для процессора (фиг. 1) содержит первый блок 1 условного выбора младшей части мантисс, второй блок 2 условного выбора старшей части мантисс, блок 3 выбора максимума экспоненциальной части двух операндов, блок 4 разницы экспонент, блок 5 абсолютной величины разницы, узел 6 прибавления единицы, блок 7 сдвига мантиссы, первый блок 8 формирования величины насыщения, второй блок 9 формирования величины насыщения, блок 10 формирования инверсного кода, блок 11 вычитания двойного формата, первый блок 12 условного перехода, второй блок 13 условного перехода и третий блок 14 условного перехода. Первый вход 15 первого блока 1 условного выбора младшей части мантисс служит для поступления младшего разряда мантиссы первого числа, второй его вход 16 – для поступления младшего разряда мантиссы второго числа, третий его вход 17 – для поступления экспоненты первого числа, четвертый его вход 18 – для поступления экспоненты второго числа. Первый вход 19 второго блока 2 условного выбора старшей части мантиссы служит для поступления старшей части мантиссы первого числа, а второй его вход 20 – для поступления старшей части мантиссы второго числа. Третий вход 17 и четвертый вход 18 первого блока 1 условного выбора младшей части мантисс соединен соответственно с третьим входом и с четвертым входом второго блока 2 условного выбора старшей части мантисс. Третий вход 17 и четвертый вход 18 первого блока 1 условного выбора младшей части мантисс соединен соответственно с первым входом и со вторым входом блока 3 выбора максимума экспоненциальной части двух операндов. Третий вход 17 и четвертый вход 18 первого блока 1 условного выбора младшей части мантисс соединен соответственно с первым входом и со вторым входом блока 4 разницы экспонент. Первый выход первого блока 1 условного выбора младшей части мантисс соединен с первыми входами первого блока 8 и второго блока 9 формирования величины насыщения. Второй выход первого блока 1 условного выбора младшей части мантисс соединен с первым входом блока 7 сдвига мантиссы. Первый выход второго блока 2 условного выбора младшей части мантисс соединен соответственно со вторым входом первого блока 8 формирования величины насыщения и со вторым входом второго блока 9 формирования величины насыщения. Второй выход второго блока 2 условного выбора старшей части мантисс соединен со вторым входом блока 7 сдвига мантиссы. Выход блока 3 выбора максимума экспоненциальной части двух операндов соединен с входом узла 6 прибавления единицы и с первым входом третьего блока 14 условного перехода. Выход узла 6 прибавления единицы соединен со вторым входом третьего блока 14 условного перехода. Выход блока 4 разницы экспонент соединен с входом блока 5 абсолютной величины разницы, выход которого соединен с третьим входом блока 7 сдвига мантиссы. Первый выход блока 7 сдвига мантиссы соединен с третьими входами первого и второго блоков 8, 9 формирования величины насыщения, второй выход блока 7 сдвига мантиссы соединен с четвертыми входами первого и второго блоков 8, 9 формирования величины насыщения. Первый выход первого блока 8 формирования величины насыщения соединен с первым входом блока 10 формирования инверсного кода и с первым входом второго блока 13 условного перехода. Второй выход первого блока 8 формирования величины насыщения соединен со вторым входом блока 10 формирования инверсного кода, с первым и с третьим входом первого блока 12 условного перехода, с третьим входом второго блока 13 условного перехода и с третьим входом третьего блока 14 условного перехода. Выход второго блока 9 формирования величины насыщения соединен с четвертыми входами первого блока 12 условного перехода, второго блока 13 условного перехода и третьего 14 блока условного перехода. Первый и второй выходы блока 10 формирования инверсного кода соответственно соединены с первым и вторым входами блока 11 вычитания двойного формата, первый выход которого соединен со вторым входом второго блока 13 условного перехода, а второй выход – со вторым входом первого блока 12 условного перехода. Выходы 38, 39, 40 соответственно первого блока 12 условного перехода, второго блока 13 условного перехода и третьего блока 14 условного перехода служат выходами соответственно мантиссы старших разрядов, мантиссы младших разрядов и экспоненты сложения-вычитания чисел.The addition-subtraction device for the processor (Fig. 1) contains the first
Заявленное устройство работает следующим образом.The claimed device works as follows.
На входы 15, 16, 17, 18, 19, 20 поступают сигналы мантисс (старших и младших разрядов) и экспонент двух операндов.The
Производимая операция в заявленном устройстве – сложение или вычитание операндов. В отличие от ближайшего аналога, для осуществления этих операций производятся вычисления в зависимости от состояния на шинах соединений 29 и 30 только в первом и втором блоках 8, 9 формирования величины насыщения, второй блок 9 формирования величины насыщения блоках 8 и 9 (для сложения или вычитания).The operation performed in the claimed device is the addition or subtraction of operands. Unlike the closest analogue, to perform these operations, calculations are performed depending on the state of the
Для корректного выполнения операций необходимо согласовать экспоненциальные части двух операндов. В этой связи эти функции более комплексные для таких форматов, как сложение и вычитание, чем для выполнения операции умножения. Согласование экспоненциальных частей операндов производится блоком 3 выбора максимума экспоненциальной части двух операндов, блоком 4 разницы экспонент, блоком 5 абсолютной величины разницы, узлом 6 прибавления единицы.For the correct execution of operations, it is necessary to match the exponential parts of the two operands. In this regard, these functions are more complex for formats such as addition and subtraction than for performing the multiplication operation. The coordination of the exponential parts of the operands is performed by
Блок 1 условного выбора младшей части мантиссы предназначен для формирования на первом и втором выходах или на втором и первом выходах соответственно первого и второго операндов (мантиссы младшей части операнда) в зависимости от того, чья экспоненциальная часть больше. Это работает как коммутатор с условным переключением. Аналогично назначение для блока 2 условного выбора мантиссы (старшей части). Блок 3 максимума экспоненциальной части операндов предназначен для сравнения этих величин и выбора максимальной части из двух экспонент. Блок 4 формирует разницу экспонент двух операндов (exp1 - exp2), и далее блок 6 формирует абсолютную величину этого значения. Блок 7 сдвига мантиссы обеспечивает программируемый сдвиг мантиссы (в совокупности старшей и младшей частей) на то количество битов, которое поступает с выхода блока 6. Блоки 8 и 9 формирования величин насыщения предназначены для определения максимальной величины мантиссы, если она при операциях сдвига превышает максимальную величину, например, 1111…1. Первый и второй блоки условного перехода 12 и 13 предназначены для формирования финальной величины мантиссы (старшей и младшей частей). Третий блок условного перехода 14 предназначен для финального формирования экспоненциальной части результата.The
По шине 25 максимальная величина экспоненты двух операндов, увеличенная на 1 (при необходимости нормализации) поступает второй вход блока 14 условного перехода. При этом на первый вход блока 14 условного перехода от выхода блока 3 выбора максимума экспоненциальной части двух операндов поступает максимальная величина экспоненты без модернизации (например, 23 и 25 – из них выбирается 25). В блоке 14 осуществляется выбор между указанными двумя величинами в зависимости от сигналов на шинах 31 и 33. Если эти сигналы равны (нормализации не требуется), то на выход 40 передается экспонента, сформированная на шине 27, иначе поступает информация с шины 25. На выходах 38 и 39 формируется старшая и младшая части мантиссы результата. Мантисса представляет собой 32 разрядное слово, соответственно по шине 16 разрядов.
Общий формат F числа с плавающей запятой представлен на фиг. 2:The common format F of a floating point number is shown in FIG. 2:
F = (-1)S·M·βE,F = (-1) S · M · β E ,
где S – знак числа: S=0 – положительное число, S=1 – отрицательное число; M – мантисса – дробная часть числа; β – базовая часть экспоненты; Е – степень экспоненты.where S is the sign of the number: S = 0 is a positive number, S = 1 is a negative number; M - mantissa - the fractional part of the number; β is the base part of the exponent; Е - degree of exponent.
На шинах 21, 22, 23 и 24 формируются младшие и старшие составляющие мантисс в зависимости от величин экспоненты поступающих операндов, например, с входа 15 – на шину 21 или шину 22 и с входа 16 – на шину 22 или шину 21; аналогично с входа 19 – на шину 23 или шину 24, и с входа 20 – на шину 24 или шину 23. Таким образом, в зависимости от значений чисел (что больше или меньше) происходит передача чисел на соответствующие выходы – шины 21 или 22, и 23 или 24. Величина сдвига 32 разрядной мантиссы осуществляется в блоке 7 сдвига и определяется абсолютной величиной разницы экспонент (например, разница 4 означает сдвиг на два разряда – 22=4), поступающей по шине 26. При этом диапазон величин, который обеспечивает данный формат, приведен ниже:On
Minimum (абсолютная величина) = 2,328306436538696·10-10 (исключая “0”);Minimum (absolute value) = 2,328306436538696 · 10 -10 (excluding the “0”);
Maximum (абсолютная величина) = 232768;Maximum (absolute value) = 2 32768 ;
Maximum отрицательной величины по абсолютному значению = -2-65536·2-31;Maximum negative value in absolute value = -2 -65536 · 2 -31 ;
Minimum = -232768.Minimum = -2 32768 .
В первом и втором блоках 8, 9 формирования величины насыщения выполняется операция сложения или вычитания в зависимости от кода команды. При этом формируются величины с учетом максимальной величины – saturation (насыщенность): например, максимальное значение положительного числа или максимальное значение абсолютной величины отрицательного числа – соответственно 0.1111…1 или 1.0000…0.In the first and
Для формирования отрицательного числа в устройство включены блок 10 инверсного кода и вычитатель 11 двойного формата, в котором из числа 7fff ffff (гексагональное представление числа) вычитается инверсная величина выбранной мантиссы, где далее блоки 12 и 13 условного перехода в зависимости от состояния сигналов («0» или «1») на шинах 33, 36 и 32, 37 для каждого из них формируют выходную мантиссу результата.To form a negative number, the device includes an
Устройство построено по асинхронному принципу, поэтому временные диаграммы и критические цепи (при разбросе параметров) не влияют на его работоспособность. Устройство полностью автономно и может применяться как IP-блок для цифро-сигнальных процессоров с фиксированной запятой, в которых, например, необходимо провести операции с плавающей запятой. Заявленный технический результат, заключающийся, в том числе, в упрощении конструкции и повышении быстродействия при асинхронном обмене данными, достигается за счет применения новой функциональной схемы, представленной на фиг. 1, с новым принципом работы.The device is built on an asynchronous principle, therefore, time diagrams and critical circuits (with variation of parameters) do not affect its performance. The device is completely autonomous and can be used as an IP block for digital-signal processors with a fixed decimal point, in which, for example, it is necessary to perform operations with a floating point. The claimed technical result, which consists, inter alia, in simplifying the design and improving performance in asynchronous data exchange, is achieved by applying a new functional circuit shown in FIG. 1, with a new working principle.
В конкретной приведенной функциональной схеме каждый блок оперирует в формате 16- или 32-разряда. Автономность блоков может обеспечиваться также наличием буфера FIFO (в частности, малого размера) на входе и выходе схемы. Размер этой памяти определяется общей структурой цифро-сигнальных процессоров и выбором системы команд. Глубина FIFO, может быть, например, 8–16 слов. В целом, предложенное техническое решение позволяет эффективно реализовать функциональные требования к цифро-сигнальным процессам. Буферная память (память буфера) по желанию разработчика позволяет хранить последовательность входных данных и результата зависимости от реализуемого устройства.In the specific functional diagram shown, each block operates in a 16- or 32-bit format. The autonomy of the blocks can also be ensured by the presence of a FIFO buffer (in particular, a small size) at the input and output of the circuit. The size of this memory is determined by the general structure of the digital-signal processors and the choice of the command system. The depth of the FIFO may be, for example, 8–16 words. In general, the proposed technical solution allows to effectively implement the functional requirements for digital-signal processes. Buffer memory (buffer memory) at the request of the developer allows you to store a sequence of input data and the result of the dependence on the implemented device.
Наиболее успешно заявленное устройство сложения-вычитания чисел для цифро-сигнального процессора промышленно применимо в IP-блоках цифро-сигнальных процессоров с фиксированной запятой, в которых необходимо провести операции с плавающей запятой для различной аппаратуры обработки цифровых данных.The most successfully declared device is the addition and subtraction of numbers for the digital-signal processor is industrially applicable in the IP blocks of digital-signal processors with a fixed comma, in which it is necessary to carry out operations with a floating point for various digital data processing equipment.
Claims (8)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2017145395A RU2686628C1 (en) | 2017-12-25 | 2017-12-25 | Addition-subtraction device for digital signal processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2017145395A RU2686628C1 (en) | 2017-12-25 | 2017-12-25 | Addition-subtraction device for digital signal processor |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2686628C1 true RU2686628C1 (en) | 2019-04-29 |
Family
ID=66430361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2017145395A RU2686628C1 (en) | 2017-12-25 | 2017-12-25 | Addition-subtraction device for digital signal processor |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2686628C1 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SU1315969A1 (en) * | 1985-12-18 | 1987-06-07 | Предприятие П/Я М-5339 | Device for adding and subtracting the floating-point numbers |
SU1529214A1 (en) * | 1988-02-08 | 1989-12-15 | Предприятие П/Я А-1081 | Floating-point device for adding two numbers |
JPH07121353A (en) * | 1993-10-20 | 1995-05-12 | Matsushita Electric Ind Co Ltd | Floating point adder-substracter |
US5568412A (en) * | 1994-04-29 | 1996-10-22 | Goldstar Company, Limited | Rounding-off method and apparatus of floating point arithmetic apparatus for addition/subtraction |
US6516332B1 (en) * | 1996-09-02 | 2003-02-04 | Siemens Plc | Floating point number data processing means |
RU2412462C2 (en) * | 2006-02-27 | 2011-02-20 | Квэлкомм Инкорпорейтед | Low wattage floating-point processor for selected sub-accuracy |
-
2017
- 2017-12-25 RU RU2017145395A patent/RU2686628C1/en active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SU1315969A1 (en) * | 1985-12-18 | 1987-06-07 | Предприятие П/Я М-5339 | Device for adding and subtracting the floating-point numbers |
SU1529214A1 (en) * | 1988-02-08 | 1989-12-15 | Предприятие П/Я А-1081 | Floating-point device for adding two numbers |
JPH07121353A (en) * | 1993-10-20 | 1995-05-12 | Matsushita Electric Ind Co Ltd | Floating point adder-substracter |
US5568412A (en) * | 1994-04-29 | 1996-10-22 | Goldstar Company, Limited | Rounding-off method and apparatus of floating point arithmetic apparatus for addition/subtraction |
US6516332B1 (en) * | 1996-09-02 | 2003-02-04 | Siemens Plc | Floating point number data processing means |
RU2412462C2 (en) * | 2006-02-27 | 2011-02-20 | Квэлкомм Инкорпорейтед | Low wattage floating-point processor for selected sub-accuracy |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3144816B2 (en) | Device for performing division | |
JP3689183B2 (en) | Accurate and effective sticky bit calculation for accurate floating-point division / square root operations | |
US6360241B1 (en) | Computer method and apparatus for division and square root operations using signed digit | |
US3871578A (en) | Data processing system for multiplying and intergerizing floating point numbers | |
US5357237A (en) | In a data processor a method and apparatus for performing a floating-point comparison operation | |
CN110168493B (en) | Fused multiply-add floating-point operations on 128-bit wide operands | |
US5862065A (en) | Method and circuit for fast generation of zero flag condition code in a microprocessor-based computer | |
JPH0727456B2 (en) | Floating point arithmetic unit | |
KR102358013B1 (en) | Close path fast incremented sum in a three-path fused multiply-add design | |
US20030005016A1 (en) | Double precision floating point multiplier having a 32-bit booth-encoded array multiplier | |
JPH0635675A (en) | Method and device for conducting division in data processor | |
JPH02294819A (en) | Floating point arithmetic processor | |
US3699326A (en) | Rounding numbers expressed in 2{40 s complement notation | |
US20210019116A1 (en) | Floating point unit for exponential function implementation | |
JPH07168697A (en) | Circuit and method for double-precision division | |
US3210737A (en) | Electronic data processing | |
JPH05250146A (en) | Arithmetic operation circuit executing integer involution processing | |
RU2686628C1 (en) | Addition-subtraction device for digital signal processor | |
US5867413A (en) | Fast method of floating-point multiplication and accumulation | |
US6598065B1 (en) | Method for achieving correctly rounded quotients in algorithms based on fused multiply-accumulate without requiring the intermediate calculation of a correctly rounded reciprocal | |
US4866655A (en) | Arithmetic processor and divider using redundant signed digit | |
US3319057A (en) | Parallel division with separate carry storage | |
US8005884B2 (en) | Relaxed remainder constraints with comparison rounding | |
Shekhawat et al. | A hardware generator for posit arithmetic and its FPGA prototyping | |
RU2510072C1 (en) | Apparatus for performing division and square-rooting |