WO2014023871A1 - Aparato y método para calcular operaciones de potenciación y extracción de raíces - Google Patents
Aparato y método para calcular operaciones de potenciación y extracción de raíces Download PDFInfo
- Publication number
- WO2014023871A1 WO2014023871A1 PCT/ES2013/070586 ES2013070586W WO2014023871A1 WO 2014023871 A1 WO2014023871 A1 WO 2014023871A1 ES 2013070586 W ES2013070586 W ES 2013070586W WO 2014023871 A1 WO2014023871 A1 WO 2014023871A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- calculation
- root
- digits
- radix
- unit
- Prior art date
Links
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/544—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 for evaluating functions by calculation
- G06F7/556—Logarithmic or exponential functions
-
- 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
-
- 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/544—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 for evaluating functions by calculation
- G06F7/552—Powers or roots, e.g. Pythagorean sums
- G06F7/5525—Roots or inverse roots of single operands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3852—Calculation with most significant digit first
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/535—Indexing scheme relating to groups G06F7/535 - G06F7/5375
- G06F2207/5356—Via reciprocal, i.e. calculate reciprocal only, or calculate reciprocal first and then the quotient from the reciprocal and the numerator
-
- 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
Definitions
- the embodiments shown refer to computing devices and methods. More specifically, the embodiments shown refer to apparatus and methods for calculating root enhancement and extraction operations.
- the embodiments shown include an apparatus for the general calculation of root enhancement and extraction operations comprising (a) a plurality of memory elements; and (b) a hardware processor configured to calculate the enhancement operation X z of a floating point number X, where Z is an unrestricted exponent.
- the exponent without restrictions can be a fixed point or floating point number.
- the exponent can be the inverse of a number to calculate q-th roots within the same hardware processor.
- the hardware processor comprises a multiplexer unit, a reciprocal unit, a logarithmic unit, an exponential unit, a multiplication unit, a displacement unit, or a combination of all of them.
- the reciprocal unit, logarithmic unit and the multiplication unit are configured to perform the calculations concurrently, and the exponential unit is configured to perform the calculations online.
- the units Reciprocal, logarithmic and multiplication are configured to perform the calculations starting with the most significant digit.
- the embodiments shown also include methods for calculating functions of potentiation and extraction of general roots.
- Figure 1 is a sequence of operations to calculate the potentiation function X z , with a fixed point exponent Z according to one embodiment.
- Figure 2 is a block diagram of a processor for calculating the potentiation function X z , with a fixed point exponent Z according to one embodiment.
- Figure 3 is a sequence of operations to calculate X and Y being number of simple precision floating points according to one embodiment.
- Figure 4 shows a method for moving the logarithm according to one embodiment.
- Figure 5 is a block diagram of a processor for calculating the potentiation function X z , with an exponent Z at a fixed point or floating point according to one embodiment.
- the microprocessors have a general structure to carry out common operations, such as access to memory, execution of software instructions, control of peripherals and arithmetic calculations.
- the complexity of some operations, such as square root, cubic root or reciprocal calculation, does not allow the incorporation of specific hardware to perform these operations within the microprocessor. Therefore, current microprocessors incorporate floating point units, from English Floating Point Unit (FPU), to carry out complex operations such as square root or floating point number division.
- FPU Floating Point Unit
- the functionality of the FPUs is limited, since they cannot implement a large number of operations and complex operations must be carried out using a software solution.
- the software solution degrades the overall system performance and slows the calculations.
- the embodiments shown include an apparatus and a method that calculates general enhancement operations and q-th roots.
- the embodiments shown, and without limitation, include methods and apparatus for calculating powers and roots X Y , where X and Y are floating point numbers e
- n-bits that is, the n bits of the
- the apparatus that calculates the power Z or the Z-th root of a number X comprises: (a) a plurality of memory elements, such as registers, which store a number X whose power Z or root Zth calculates the device, a fixed point number Z indicating the exponent of the power or root, the number of significant bits of the number X and the result of the calculation, the operation carried out, power calculation Z or Z-th root and the exponent Z; (b) a reciprocal calculation unit that calculates the reciprocal of Z obtaining a number A; (c) a logarithmic unit that calculates the logarithm in base 2 of the number X resulting in a number B; (d) a unit of multiplication that calculates the product of the numbers A and B resulting in a number C; and (e) an exponential unit that calculates the exponential of the number C, thus obtaining the result of the operation.
- a plurality of memory elements such as registers, which store a number X whose power Z or root Zth calculates
- the reciprocal calculation unit operates in parallel with the logarithmic unit, the operations of the logarithmic unit and the multiplication unit overlap during calculations, the exponential unit calculates the exponential on an online basis and the unit Logarithmic and the unit of multiplication calculate the logarithm and the product starting with the most significant bit.
- the architecture of the apparatus comprises a reciprocal calculation unit with truth table, a logarithmic unit with a high radix a left-right multiplier without carry, from the English left-to-right carry-free (LRCF), a conversion unit, and an exponential unit of elevated radix.
- the architecture of the apparatus comprises a word length offset unit, a high radix reciprocal unit, a high radix logarithmic unit, a high radix multiplication unit, a conversion unit and an exponential radix unit high.
- Figure 2 shows the block diagram of the apparatus that calculates X z according to one embodiment.
- the thickest lines represent operands of high word length (around n bits), the finest lines represent operands of small word length (around b, where the radix is used, or bits) and double lines represent digits
- FIG. 1 shows the sequence of operations that involve the calculation of the potentiation function X z with a fixed point exponent according to one embodiment.
- the apparatus is shown for root enhancement and calculation operations, with a fixed point exponent and a generic radix
- the number X is represented in double or single floating precision according to the IEEE-754 standard.
- the calculation of the Z-th power or the Z-th root in a hardware processor comprises: (a) storing a number X in a first memory element of the processor, where X is a number whose Z-th power or Z-th root is to be calculated; (b) storing the number Z in a second processor memory element, where Z is a fixed point number indicating the exponent of the enhancement or the root extraction operation; (c) storing the number of significant bits of the number X and the result of the calculation in a third element of processor memory; (d) store the operation to be carried out, enhancement or root, in a fourth element of processor memory; (e) store the exponent of the number Z in a fifth memory element; (f) calculate the reciprocal of the number Z whose result is a number A; (g) calculate the logarithm in base 2 of the number X whose result is a number B; (h) calculate the product of the numbers A and B whose result is a C number; (i) separate the whole and
- the calculation of the exponential and the product overlap; product calculation and logarithm overlap; the number X is a floating number with double or simple precision according to the IEEE-754 standard; and the processor is chosen from the group consisting of integrated circuits, FPGA device, microprocessor, microcontroller, digital signal processor (DSP), graphic processing unit (GPU) and general purpose processor.
- DSP digital signal processor
- GPU graphic processing unit
- the method is derived as follows:
- integers of Z x S is greater for what for In the case of root extraction, the number of integer bits depends only on but in empowerment operations it also depends on and.
- sequence of operations of the method is:
- the number of stages of the multiplication logarithm are different for potentiation and for root extraction, in fact, from the error analysis, in this case, the calculation of the potentiation operation requires an additional stage of logarithm calculation. and multiplication with respect to the root extraction operation.
- several multipliers are introduced in the first stage in the processor as indicated in Figure 1. The number of digits in the integer part is for empowerment and
- the apparatus for calculating the Z-th power or the Z-th root of a number X comprises: (a) a plurality of memory elements, such as registers, for storing the X number whose Z-th power or Z-th root is to be calculated, a fixed-point or floating-point Z number that indicates the power or root exponent, the number of significant bits of the X number and the calculation result , the operation to be carried out, root enhancement or calculation and the exponent of Z; (b) a reciprocal calculation unit that calculates the reciprocal of Z whose result is a number A; (c) a logarithmic unit that calculates the logarithm in base 2 of the number X whose result is a number B; (d) a unit of displacement that displaces the number B in case Z is a floating point number, the result of which is a number B '; (e) a unit of multiplication that calculates the product of the numbers A and B or B ', whose result is
- the reciprocal unit operates in parallel with the logarithmic unit, the operations of the logarithmic unit and the multiplication unit are superimposed, the exponential unit calculates the exponential on an online basis, the logarithmic unit calculates the logarithm starting by the most significant digit, the offset is calculated by starting with the most significant digit, and / or the multiplication unit calculates the product starting with the most significant digit.
- the architecture of the apparatus comprises an exponent selection unit, an operation selection unit, a reciprocal truth table unit, a high radix logarithmic unit, an LRCF multiplier, a conversion unit and an exponential unit of elevated radix.
- the architecture of the apparatus comprises a word length shift unit, a high radix reciprocal calculation unit, a high radix logarithmic unit, a high radix multiplication unit, a conversion unit and a exponential unit of elevated radix.
- Figure 5 shows the block diagram that calculates X z for general exponents. In a particular embodiment the number X is represented in double or single floating precision according to the IEEE-754 standard. D. Method for floating point exponent
- the calculation of the Z-th power or the Z-th root in a hardware processor comprises: (a) storing a number X in a first processor memory elements, where X is a number whose power Z-th or Z-th root is to be calculated; (b) storing the number Z in a second processor memory element, where Z is a fixed point or floating point number indicating the exponent of the enhancement or the root extraction operation; (c) storing the number of significant bits of the number X and the result of the calculation in a third element of processor memory; (d) store the operation to be carried out, enhancement or root, in a fourth element of processor memory; (e) store the exponent of the number Z in a fifth memory element; (f) calculate the reciprocal of the Z number whose result is an A number; (g) calculate the logarithm in base 2 of the number X whose result is a number B; (h) shift the number B, in case Z is a floating point number, whose result is a number B '; (
- the calculation of the exponential and the product overlap; product calculation and logarithm overlap; the number X is represented in double or single floating precision according to the IEEE-754 standard; and the processor is chosen from the group consisting of integrated circuits, FPGA device, microprocessor, microcontroller, digital signal processor (DSP), graphic processing unit (GPU) and general purpose processor.
- DSP digital signal processor
- GPU graphic processing unit
- the function will be calculated where X and Y are floating point numbers,. Substituting the exponent
- sequence of operations of the method is:
- the latency is p ara n r bits of precision.
- LZD Leading-Zero Detectors
- LOD English Leading-One detector
- the practical range of for enhancement is limited to:
- the offset is divided into two parts: (1) a right shift of radix-r digits and (2) a binary offset to
- the digit enters positions to the right of the digit
- the digits move to the left, one digit each cycle.
- the position of the entry digits to the register is determined based on and Two cases are identified:
- the integer part is nonzero, which corresponds to the maximum
- the displaced logarithm S has digits. The most significant bit allows to detect the overflow (if then there is
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
Abstract
La invención muestra un método y un aparato para el cálculo general de operaciones de potenciación. El método está basado en la optimización del cálculo X
z = 2 ΖxlogX . El aparato comprende una pluralidad de elementos de memoria; y un procesador hardware configurado para calcular la operación de potenciación Xz de un número en punto flotante X, donde Z es un exponente sin restricciones. El exponente sin restricciones puede ser un número en punto fijo o punto flotante. Además, el exponente puede ser el inverso de un número lo que permite calcular raíces dentro del mismo procesador aparato. El aparato incluye todos los elementos necesarios para calcular Xz.
Description
Aparato y método para calcular operaciones de potenciación y extracción de raíces
SECTOR TÉCNICO DE LA INVENCIÓN
Las realizaciones mostradas se refieren a aparatos y métodos de computación. Más concretamente, las realizaciones mostradas se refieren a aparatos y métodos para el cálculo de operaciones de potenciación y extracción de raíces.
ESTADO DE LA TÉCNICA
El diseño de unidades funcionales para el cálculo de potencias y raíces q-ésimas (Xz, Z = p o Z = 1/q, donde p y q son enteros) es un reto importante desde hace varios años. Las operaciones de potenciación y de cálculo de raíz q-ésima se emplean con mucha frecuencia en los campos de computación gráfica, procesado digital de señales y cálculos científicos. Estas operaciones incluyen la raíz cuadrada
raíz cuadrada inversa
raíz cúbica
raíz cúbica inversa
cuadrado
cuadrado inverso
recíproco exponencial y otras operaciones menos frecuentes pero también
importantes.
Existen varias arquitecturas para el cálculo de exponenciales y logaritmos; sin embargo el cálculo preciso de operaciones de potenciación y de extracción de raíces en punto flotante es una tarea complicada. Los prohibitivos requerimientos hardware de una implementación basada en tablas y la complejidad intrínseca de los algoritmos basados en la recurrencia de dígitos han provocado que se hayan propuesto soluciones parciales al cómputo de este tipo de operaciones en las que la computación se lleva a cabo para un exponente fijo o para una precisión muy baja. La aproximación tradicional para las operaciones de potenciación o cálculo de raíz q-ésima ha sido el desarrollo de unidades funcionales para la computación de un exponente o raíz particular. Así, hay un gran número de algoritmos e implementaciones para los exponentes más frecuentes tales como recíprocos, raíz cuadrada o inverso de raíz cuadrada, que incluyen algoritmos de recurrencia de dígitos de convergencia lineal y métodos de convergencia cuadrática basados en multiplicación, tales como los algoritmos de Newton-Raphson y Goldschmidt. También existen varias aproximaciones para el cálculo de otros exponentes derivados de la aplicación de métodos generales para la evaluación de potencias.
En general, el cálculo de una potencia o raíz q-ésima con una precisión muy baja se puede llevar a cabo utilizando una tabla, pero los elevados requerimientos de memoria
hacen que esta aproximación sea muy ineficiente para un número en punto flotante con precisión simple o doble. Las aproximaciones racionales y polinómicas representan otra aproximación para el cálculo de potencias y raíces q-ésimas. Sin embargo, uno de los métodos más eficientes para el cálculo de estas operaciones con números en punto flotante son los algoritmos dirigidos por tabla, que están a medio camino entre los las aproximaciones basadas en tablas y las basadas en aproximaciones racionales y polinómicas.
Existen aproximaciones polinómicas de primer y segundo orden basadas en expansiones de Taylor para el cálculo de un número limitado de potencias y raíces, entre ellas raíz cuadrada, recíproco de raíz cuadrada, potencia cuarta, etc., tal y como se describe en Powering by a Table Look-Up and a Multiplication with Operand Modificaction, N. Tagaki, IEEE Transactions on Computers, vol. 47, no. 11 , pp. 1216-1222, Nov. 1998; Faithful Powering Computation using Table Lookup and Fused Accumulation Tree, J.A. Piñero, J.D. Bruguera and J.M. Muller, Proceedings 15th IEEE Symposium on Computer Arithmetic, pp. 40-47, Jun- 2001; y High Performance architectures for elementar/ function generation, J. Cao, B.W.Y. Wei y J. Cheng, Proceedings 15th IEEE Symposium on Computer Arithmetic, pp. 136-144, Jun. 2001 , pero estas implementaciones requieren replicar la tabla de almacenamiento de los coeficientes y no se pueden considerar como unidades de cálculo de raíces q-ésimas. Un método de recurrencia de dígitos para el cálculo de la raíz q-ésima se presentó en An Digit-by-Digit Algorithm for m-th Root Extraction, P. Montuchi, J.D. Bruguera, L. Ciminiera y J.A. Piñeiro, IEEE Transactions on Computers, vol.56, no. 12, pp. 1696-1706, Dec. 2007, y particularizado para el cálculo en radix 2 de raíces cúbicas en A Radix-2 Digit-byDigit Architecture for Cube Root, J.A. Piñeiro, J.D. Bruguera, F. Lamberti, P. Montuschi, IEEE Transactions on Computers, vol. 57, no.4, pp. 562-566., Apr. 2008. La complejidad de las arquitecturas depende de q, con lo que para valores mayores de q hay una mayor complejidad. En consecuencia, una arquitectura para la computación de valores elevados de q en operaciones de raíz q-ésimas es muy compleja. También existen otras implementaciones de métodos de recurrencia de dígitos para el cálculo de raíces cuadradas y cúbicas presentado en Digit-byDigit Methods for Computing Certain Functions, M.D. Ergovac, 41 st Asilomar Conference on Signáis, Systems and Computers, pp. 338-342, Nov. 2007; y A Digit-Recurrence Algorithm for Cube Rooting, N. Tagaki, IEICE Transactions on Fundamental of Electronics, Communications and Computer Sciences, vol. E84-A, no 5, pp. 1309-1314, May 2001.
Se debe resaltar el hecho de que todos los métodos indicados hasta ahora para el cálculo de una potencia o de una raíz q-ésima están orientados a realizar el cálculo para un exponente fijo. Esto implica que la arquitectura resultante no se puede emplear para calcular potencias o raíces distintas de aquella para la que ha sido diseñada. Para adaptar la arquitectura a una potencia o raíz diferente hay que realizar cambios en las, del inglés Look-up Table (LUT), en el caso de aproximaciones polinómicas basadas en tabla, o diseñar una nueva arquitectura, en el caso de métodos de recurrencia de dígitos. Las aproximaciones polinómicas basadas en tabla se pueden adaptar para calcular más de una potencia o raíz, pero esto requiere replicar las tablas. De todos modos, los métodos indicados no se puede considerar que sean métodos generales para el calculo de potencias o raíces q-ésimas.
La única arquitectura encontrada en el estado de la técnica para el cálculo de raíces q- ésimas para cualquier q se describe en Algorithm and architecture for Logarithm, Exponential and Powering Computation, J.A. Piñeiro, M.D. Ergovac and J.D. Bruguera, IEEE Transactions on Computers, vol. 53, no. 9, pp. 1085-1096, Sep. 2004, y fue diseñada para el cálculo de potencias Xp, con p entero, basado en una cadena logaritmo- multiplicación-exponencial acelerada por el uso de redundancia y aritmética on-line, y extendidas para el cálculo de
Sin embargo, la implementación de la arquitectura extendida para la raíz q-ésima es muy compleja, porque además de las operaciones en cadena, se incluye una división entera ya que se requiere el cálculo del resto de la división.
DESCRIPCIÓN DE LA INVENCIÓN
Las realizaciones mostradas incluyen un aparato para el cálculo general de operaciones de potenciación y extracción de raíces que comprende (a) una pluralidad de elementos de memoria; y (b) un procesador hardware configurado para calcular la operación de potenciación Xz de un número en punto flotante X, donde Z es un exponente sin restricciones. El exponente sin restricciones puede ser un número en punto fijo o punto flotante. Además, el exponente puede ser el inverso de un número para calcular raíces q- ésimas dentro del mismo procesador hardware. De acuerdo a una realización, el procesador hardware comprende una unidad multiplexora, una unidad recíproca, una unidad logarítmica, una unidad exponencial, una unidad de multiplicación, una unidad de desplazamiento, o una combinación de todas ellas. La unidad recíproca, unidad logarítmica y la unidad de multiplicación están configuradas para llevar a cabo los cálculos concurrentemente, y la unidad exponencial está configurada para llevar a cabo los cálculos de forma on-line. En una realización particular, y sin limitación, las unidades
recíproca, logarítmica y de multiplicación están configuradas para realizar los cálculos comenzando por el dígito más significativo. Las realizaciones mostradas también incluyen métodos para calcular funciones de potenciación y extracción de raíces generales.
BREVE DESCRIPCIÓN DE LAS FIGURAS
Las modalidades detalladas en las figuras se ilustran a modo de ejemplo y no a modo de limitación:
La Figura 1 es una secuencia de operaciones para calcular la función de potenciación Xz, con un exponente Z en punto fijo de acuerdo a una realización. La Figura 2 es un diagrama de bloques de un procesador para calcular la función de potenciación Xz, con un exponente Z en punto fijo de acuerdo a una realización.
La Figura 3 es una secuencia de operaciones para calcular
siendo X e Y número en puntos flotante de precisión simple de acuerdo a una realización.
La Figura 4 muestra un método para desplazar el logaritmo de acuerdo a una realización. La Figura 5 es un diagrama de bloques de un procesador para calcular la función de potenciación Xz, con un exponente Z en punto fijo o punto flotante de acuerdo a una realización.
La Figura 6 es un ejemplo de parámetros para el cálculo de potencias y de raíces con un exponente en punto fijo, número de bits de los resultados intermedios y latencias, usando un radix r = 128 y resultados en simple y doble precisión.
La Figura 7 es un ejemplo de parámetros para el cálculo de potencias y de raíces con un exponente en punto flotante, número de bits de los resultados intermedios y latencias, usando un radix r = 128 y resultados en simple y doble precisión.
DESCRIPCIÓN DETALLADA DE LA INVENCIÓN
Los microprocesadores tienen una estructura general para llevar a cabo operaciones comunes, tales como acceso a memoria, ejecución de instrucciones software, control de periféricos y cálculos aritméticos. La complejidad de algunas operaciones, tales como la raíz cuadrada, raíz cúbica o cálculo del recíproco no permiten la incorporación de hardware específico para llevar a cabo estas operaciones dentro del microprocesador. Por lo tanto, los microprocesadores actuales incorporan unidades de punto flotante, del
inglés Floating Point Unit (FPU), para llevar a cabo operaciones complejas tales como raíz cuadrada o división de número en punto flotante. Sin embargo, la funcionalidad de las FPUs es limitada, ya que no pueden implementar un gran número de operaciones y las operaciones complejas se deben llevar a cabo empleando una solución software. La solución software degrada el rendimiento global del sistema y ralentiza los cálculos. Las realizaciones mostradas incluyen un aparato y un método que calcula operaciones generales de potenciación y raíces q-ésimas.
Las realizaciones mostradas, y sin limitación, incluyen métodos y aparatos para el cálculo de potencias y raíces XY, siendo X e Y números en punto flotante e
significandos que incluyen el bit oculto, y el bit menos significativo, del inglés Less Significant Bit (LSB), tiene un peso de
y los exponentes con signo de
bits, o Y un exponente en punto fijo de
bits de la forma:
siendo y un número entero con signo de bits, con para el cálculo de raíces.
A. Aparato para exponente en punto fijo
De acuerdo a una realización particular, y sin limitación, el aparato que calcula la potencia Z o la raíz Z-ésima de un número X comprende: (a) una pluralidad de elementos de memoria, tales como registros, que almacenan un número X cuya potencia Z o raíz Z- ésima calcula el aparato, un número en punto fijo Z que indica el exponente de la potencia o raíz, el número de bits significativos del número X y del resultado del cálculo, la operación llevada a cabo, cálculo de potencia Z o de raíz Z-ésima y el exponente Z; (b) un unidad de cálculo de recíproco que calcula el recíproco de Z obteniendo un número A; (c) una unidad logarítmica que calcula el logaritmo en base 2 del número X resultando en un número B; (d) una unidad de multiplicación que calcula el producto de los número A y B resultando en un número C; y (e) un unidad exponencial que calcula la exponencial del número C, obteniendo así el resultado de la operación. En realizaciones particulares, la unidad de cálculo del recíproco opera en paralelo con la unidad logarítmica, las operaciones de la unidad logarítmica y la unidad de multiplicación se superponen durante los cálculos, la unidad exponencial calcula la exponencial siguiendo una base on-line y la unidad logarítmica y la unidad de multiplicación calculan el logaritmo y el producto
comenzando por el bit más significativo. De acuerdo a una realización particular, tal y como se muestra en la Figura 2, la arquitectura de los aparatos comprende una unidad de cálculo del recíproco con tabla de verdad, un unidad logarítmica de radix elevado
un multiplicador izquierda-derecha sin acarreo, del inglés left-to-right carry-free (LRCF), una unidad de conversión, y una unidad exponencial de radix elevado. En una realización alternativa la arquitectura del aparato comprende una unidad de desplazamiento de longitud de palabra, una unidad recíproca de radix elevado, una unidad logarítmica de radix elevado, una unidad de multiplicación de radix elevado, una unidad de conversión y una unidad exponencial de radix elevado. La Figura 2 muestra el diagrama de bloques del aparato que calcula Xz de acuerdo a una realización. Las líneas más gruesas representan operandos de longitud de palabra elevada (alrededor de n bits), las líneas más finas representan operandos de longitud de palabra pequeña (alrededor de b, donde es el radix empleado, o bits) y las líneas dobles representan dígitos
redundantes con signo de radix elevado en un formato borrow-save. El resultado es una conversión de los dígitos con signo con radix r. Además, un sumador borrow-save se puede implementar como un sumador de acarreo almacenado, del inglés Carry Save Adder (CSA). La Figura 1 muestra la secuencia de operaciones que involucran el cálculo de la función de potenciación Xz con un exponente en punto fijo de acuerdo a una realización. A modo ilustrativo, el aparato se muestra para las operaciones de potenciación y cálculo de raíz, con un exponente en punto fijo y un radix genérico
En una realización particular el número X se representa en precisión flotante doble o simple de acuerdo al estándar IEEE-754.
B. Método para un exponente en punto fijo
De acuerdo a una realización particular, el cálculo de la potencia Z-ésima o de la raíz Z- ésima en un procesador hardware comprende: (a) almacenar un número X en un primer elemento de memoria del procesador, donde X es un número cuya potencia Z-ésima o raíz Z-ésima se va a calcular; (b) almacenar el número Z en un segundo elemento de memoria del procesador, donde Z es un número de punto fijo que indica el exponente de la potenciación o de la operación de extracción de raíz; (c) almacenar el número de bits significativos del número X y del resultado del cálculo en un tercer elemento de memoria del procesador; (d) almacenar la operación que se va a llevar a cabo, potenciación o raíz, en un cuarto elemento de memoria del procesador; (e) almacenar el exponente del número Z en un quinto elemento de memoria; (f) calcular el recíproco del número Z cuyo resultado es un número A; (g) calcular el logaritmo en base 2 del número X cuyo resultado es un número B; (h) calcular el producto de los número A y B cuyo resultado es
un número C; (i) separar la parte entera y fraccionaria del número C; y G) calcular la exponencial del número C. En una realización particular, el cálculo del la exponencial y del producto se solapan; el cálculo del producto y el logaritmo se solapan; el número X es un número flotante con precisión doble o simple de acuerdo al estándar IEEE-754; y el procesador se escoge de entre el grupo consistente en circuitos integrados, dispositivo FPGA, microprocesador, microcontrolador, procesador digital de señal (DSP), unidad de procesamiento gráfico (GPU) y procesador de propósito general.
De acuerdo a una realización particular, y sin limitación, el método se deriva como sigue:
donde es la concatenación de los dígitos de Ex (valor entero) y
[0,1). De acuerdo a (2),
de puede calcular como la secuencia de operaciones: (1) logaritmo del significando (2) suma de (concatenación de cadenas
binarias); (3) multiplicación del resultado de (2) por Z; y (4) cálculo de la exponencial del resultado de la multiplicación. Para una implementación eficiente, las operaciones se solapan. Esto requiere un modo de operación izquierda-derecha dígito más significativo primero, del inglés left-to-right most-significand digit first (MSDF), y el uso de representación redundante. Se utiliza una representación con signo radix-r con un conjunto máximo de dígitos redundantes {-(r-1), 0, ...(r-1)}.
Una potencial limitación de este método para ciertas aplicaciones es el rango de la función exponencial
Los algoritmos exponenciales de recurrencia de dígitos requieren que el argumento esté dentro del intervalo (-1 , 1), mientras que Z x S puede estar fuera de este rango. Para extender el rango de convergencia y garantizar la convergencia del método, las partes entera y fraccional de Z x S se extraen de forma serie y la ecuación (2) se puede escribir como:
siendo
y las partes entera y fraccional de ZxS, respectivamente. Por lo
enteros de Z x S es mayor para
que para
En el caso de extracción de raíces, el número de bits enteros depende sólo de
pero en las operaciones de potenciación depende además de y. De acuerdo a una realización, la secuencia de operaciones del método es:
1. Evaluación de (sólo si se extrae la raíz, REC en Figura 1), siendo
el signo de y. Para consideración práctica, una baja precisión para |y| es suficiente y se prefiere una tabla (LUT) para el cálculo de
Por lo tanto, se usa una LUT con
entradas y salidas bits fracciónales, representación binaria no redundante).
algoritmo de recurrencia de dígitos de radix elevado. El logaritmo se representa empleando una representación radix-r con signo. Hay que indicar que como el logaritmo en la función de potenciación necesita un paso más que en la extracción de raíces, la primera etapa se evita en el caso de extracción de raíces. 3. Multiplicación T = Z x S. El operando se obtiene
concatenando los dígitos de Ex (dígitos enteros), recodificados a una representación radix-r con signo, y L (bits fracciónales). La multiplicación se evalúa usando un multiplicador LRCF.
4. Extracción serie de la parte entera int(T) y de la parte fraccional frac(T) de 7, y la conversión on-line de int(T) a una representación no redundante. Hay que indicar que el número de dígitos enteros depende de la operación y que se requiere un ciclo para obtener cada uno. Así, el número de dígitos enteros es para extracción de
raices.
5. Cálculo de la exponencial de radix elevado on-line con
con una precisión de bits, y un retardo on-line δ = 2.
El número de etapas del logaritmo de la multiplicación son diferentes para la potenciación y para la extracción de raíces, de hecho, a partir del análisis de errores, en este caso, el cálculo de la operación de potenciación requiere una etapa adicional de cálculo de logaritmo y de multiplicación con respecto a la operación de extracción de raíz. Para acomodar estos dos flujos de datos con diferentes número de etapas para el logaritmo y la multiplicación, y diferente número de dígitos enteros, se introducen varios multiplicadores en la primera etapa en el procesador tal y como se indica en la Figura 1. El número de dígitos en la parte entera es para potenciación y
el número de ciclos requeridos para obtener la parte entera de ambas operaciones es la misma, Por lo tanto la latencia total viene dada por :
Para obtener un resultado correctamente redondeado para la potenciación y extracción de raíz los resultados se redondean con un error de 1 ulp con respecto al resultado obtenido. Asumiendo un redondeo al número par más próximo, la precisión requerida y la mínima latencia para cada operación intermedia y la latencia para la operación completa se muestran en la Figura 6. Estos valores están indicados para precisión simple (SP) y precisión doble (DP) con radix r = 128.
C. Aparato para exponente en punto fijo y punto flotante
De acuerdo a una realización particular, y sin limitación, el aparato para calcular la potencia Z-ésima o la raíz Z-ésima de un número X comprende: (a) una pluralidad de elementos de memoria, como por ejemplo registros, para almacenar el número X cuya potencia Z-ésima o raíz Z-ésima se va a calcular, un número Z en punto fijo o punto flotante que indica el exponente de la potencia o la raíz, el número de bits significativos del número X y del resultado del cálculo, la operación que se va a llevar a cabo,
potenciación o cálculo de raíz y el exponente de Z; (b) una unidad de cálculo del recíproco que calcula el recíproco de Z cuyo resultado es un número A; (c) una unidad logarítmica que calcula el logaritmo en base 2 del número X cuyo resultado es un número B; (d) una unidad de desplazamiento que desplaza el número B en caso de que Z sea un número en punto flotante, cuyo resultado es un número B'; (e) una unidad de multiplicación que calcula el producto de los números A y B o B', cuyo resultado es un número C; y (f) una unidad exponencial que calcula la exponencial del número C, resultado de la operación. En una realización particular, la unidad recíproca opera en paralelo con la unidad logarítmica, se superponen las operaciones de la unidad logarítmica y la unidad de multiplicación, la unidad exponencial calcula la exponencial siguiendo una base on-line, la unidad logarítmica calcula el logaritmo comenzando por el dígito más significativo, el desplazamiento se calcula en comenzando por el dígito más significativo, y/o la unidad de multiplicación calcula el producto comenzando por el dígitos más significativo. De acuerdo a una realización particular, la arquitectura del aparato comprende una unidad de selección de exponente, una unidad de selección de operación, una unidad de tabla de verdad recíproca, un unidad logarítmica de radix elevado, un multiplicador LRCF, una unidad de conversión y una unidad exponencial de radix elevado. En una realización alternativa, la arquitectura del aparato comprende una unidad de desplazamiento de longitud de palabra, una unidad de cálculo de recíproco de radix elevado, una unidad logarítmica de radix elevado, una unidad de multiplicación de radix elevado, una unidad de conversión y una unidad exponencial de radix elevado. La Figura 5 muestra el diagrama de bloques que calcula Xz para exponentes generales. En una realización particular el número X se representa en precisión flotante doble o simple de acuerdo al estándar IEEE-754. D. Método para exponente en punto flotante
De acuerdo a una realización, el cálculo de la potencia Z-ésima o de la raíz Z-ésima en un procesador hardware comprende: (a) almacenar un número X en un primer elementos de memoria del procesador, donde X es un número cuya potencia Z-ésima o raíz Z-ésima se va a calcular; (b) almacenar el número Z en un segundo elemento de memoria del procesador, donde Z es un número de punto fijo o punto flotante que indica el exponente de la potenciación o de la operación de extracción de raíz; (c) almacenar el número de bits significativos del número X y del resultado del cálculo en un tercer elemento de memoria del procesador; (d) almacenar la operación que se va a llevar a cabo, potenciación o raíz, en un cuarto elemento de memoria del procesador; (e) almacenar el exponente del número Z en un quinto elemento de memoria; (f) calcular el recíproco del
número Z cuyo resultado es un número A; (g) calcular el logaritmo en base 2 del número X cuyo resultado es un número B; (h) desplazar el número B, en caso de que Z sea un número en punto flotante, cuyo resultado es un número B'; (i) calcular el producto de los número A y B o B' cuyo resultado es un número C; (j) separar la parte entera y fraccionaria del número C; y (k) calcular la exponencial del número C, obteniendo así el resultado de la operación. En una realización particular, el cálculo de la exponencial y del producto se solapan; el cálculo del producto y el logaritmo se solapan; el número X se representa en precisión flotante doble o simple de acuerdo al estándar IEEE-754; y el procesador se escoge de entre el grupo consistente en circuitos integrados, dispositivo FPGA, microprocesador, microcontrolador, procesador digital de señal (DSP), unidad de procesamiento gráfico (GPU) y procesador de propósito general.
De acuerdo a una realización se va a calcular la función
siendo X e Y números en punto flotante, . Sustituyendo el exponente
Para usar el mismo multiplicador para ambas operaciones, se normaliza
En el caso de que el exponente sea un número en punto fijo, para garantizar la convergencia del algoritmo, la parte entera y la parte fraccional se extraen de forma serie,
siendo Z = Y o Z = 1/Y y
para potenciación y extracción de raíz, respectivamente.
La secuencia de operaciones es: (1) cálculo de recíproco para el caso de
extracción de una raíz; (2) evaluación de
(3) desplazamiento del resultado del logaritmo, (4) multiplicación por y (5) cálculo exponencial siguiendo
una base on-line. De acuerdo a una realización, la secuencia de operaciones del método es:
2. Cálculo de El logaritmo se calcula como dígito a dígito.
Para asegurar la convergencia del logaritmo, los argumentos Ex y Mx se modifican ligeramente. Para reducir el número de iteraciones, se estima el número de ceros/unos a la izquierda,
en y se evitan las primeras iteraciones. Por contra,
una iteración inicial (reducción de rango) se necesita para calcular varias variables. En el primer ciclo, los ceros/unos a la izquierda de la parte fraccional y las partes enteras de L, respectivamente, se obtienen usando detectores de ceros a la izquierda, del inglés
Leading-Zero Detectors (LZD) o detectores de unos a la izquierda, del inglés Leading- One detector (LOD), que permiten calcular el número de iteraciones que se evitan, K, y el número de ceros de la parte entera de KEx. Después de esto, se calcula el logaritmo con
bits de precisión, lo que requiere Λ/, =/~ 'n+nEx+6)/b iteraciones.
3. Desplazar L por El desplazamiento se describe en la sección D.1.
4. Multiplicación en base on-line sin acarreo izquierda-derecha
en el ciclo 5 con un retardo on-line
Se debe seleccionar el operando adecuado para llevar a cabo la operación, y en el caso de una implementación independiente de la operación de potenciación el retardo on-line
es cero. Se calcula un dígito significativo adicional T0 para detectar el desbordamiento para desbordamiento).
5. Cálculo on-line de la exponencial
comenzando en el ciclo 7, ya que el retardo on-line de la exponencial es δ = 2.
La latericia del método es donde (para el cálculo de la raíz
exponencial.
Los desplazamientos
imponen una limitación en el rango de valores soportado de Y (i.e. el desplazamiento no puede producir un valor mayor que el máximo o menos que el mínimo número representable de punto flotante). De acuerdo a una realización particular, el rango práctico de para la potenciación está limitado a:
En el caso de extracción de raíz cuadrada, el rango práctico de está limitado a :
(extracción de raíz) en precisión doble y simple para representación en punto flotante, respectivamente.
Para obtener un valor de la potenciación o de la raíz correctamente redondeado el resultado tiene una precisión 1 ulp con respecto al resultado exacto. Asumiendo un redondeo al par más cercano, los valores de precisión requerida y latencia mínima para cada operación intermedia y la latencia para la operación completa se muestran en la Figura 7. Estos valores son para precisión simple (SP) y precisión doble (DP) con r = 128.
D.1 Método de desplazamiento El cálculo de una potencia y una raíz genéricas, en el método que opera con exponentes en punto fijo y punto flotante, requiere realizar el desplazamiento por
ambos casos el desplazamiento puede ser negativo o positivo.
Para simplificar la representación del desplazamiento se ilustra considerando un desplazamiento por para potenciación, para extracción
de raíz. La Figura 4(A) muestra el formato de Debido a la adición de
hay una parte entera de dígitos en radix-r, de los cuales son ceros a
la izquierda. Si ΚΕχ = χ la parte entera de L es cero, que corresponde a los
de 0 o 1 consecutivos más significativos de la parte fraccional de Mx. Los dígitos radix-r que no son ceros de la parte entera y fraccional se denotan como
, respectivamente (i.e., los ceros a la izquierda se evitan durante el cálculo, estos dígitos no se emplean en el cálculo pero están representados para una mejor comprensión del desplazamiento).
Los dígitos del logaritmo se calculan de forma serie, comenzando por el dígito más significativo, y los dígitos de la parte entera y fraccional se obtienen en paralelo, como se muestra en la Figura 4(B). El desplazamiento a la izquierda o derecha se implementa
como un desplazamiento a derecha: como los ceros/unos a la izquierda no se utilizan, el primer dígito que no es un cero de la parte entera y fraccional de L se obtienen simultáneamente en el ciclo 2; esto es equivalente a prealinear L colocando sus
el máximo desplazamiento posible la izquierda.
El desplazamiento se divide en dos partes: (1) un desplazamiento a la derecha de dígitos radix-r y (2) un desplazamiento binario a
de desplazamiento con Ns radix-b dígitos (Figura 4(C)), donde Ns es aproximadamente
(en los casos de interés Todos los dígitos enteros entran en la misma posición
Por otro lado, el dígito entra posiciones a la derecha del dígito Los
dígitos se desplazan a la izquierda, un dígito cada ciclo.
La posición de los dígitos de entrada al registro está determinada en función de y
Se identifican dos casos:
desplazamiento a la izquierda permitido en L es Entonces, los dígitos entran en
el registro en la posición y la salida del registro tiene
ceros/unos a la izquierda.
desplazamiento máximo permitido a la izquierda en L es
Entonces, los L¡ dígitos se introducen en la posición Una vez que los dígitos han sido
desplazado, hay dígitos ceros/unos a la izquierda en S.
Por lo tanto, el logaritmo desplazado S tiene dígitos. El bit más significativo
permite detectar el desbordamiento (si entonces hay
desbordamiento), los siguientes
dígitos en radix-r corresponden a la parte entera del logaritmo desplazado y los restantes
dígitos radix-r corresponden a la parte fraccional. El desplazamiento binario de se lleva a cabo introduciendo los dígitos
b bits más significativos, como se muestra en la Figura 4(D).
Claims
1. Un procesador hardware para el cálculo general de
donde X es un número en punto flotante e Y es un exponente en punto flotante, comprende:
a. una unidad de cálculo de recíproco que calcula el valor
como
c. una unidad de desplazamiento que desplaza L por
en el caso de cálculo de potencia o por
en el caso de cálculo de raíz, obteniendo un valor S; d. una unidad de multiplicación que calcula el producto en el caso
de cálculo de raíz y en el caso de cálculo de potencia; y
e. una unidad de cálculo exponencial que calcula el valor de frac(T), donde frac indica parte fraccional, que es el resultado de la operación de cálculo de raíz o de cálculo de potencia.
2. El procesador según la reivindicación 1 , en el que la unidad de desplazamiento opera en modo izquierda-derecha dígito más significativo primero, del inglés left-to-right most-significand digit first (MSDF).
3. El procesador según la reivindicación 2 en el que la unidad de desplazamiento izquierda o derecha del logaritmo, que tiene una parte entera de
exponente, de los cuales KEx son ceros a la izquierda, y una parte fraccional que tiene ceros a la izquierda seguidos por N| dígitos, donde es el número de
0 o 1 consecutivos más significativos de la parte fraccional de
que comprende: a. desplazador a la derecha de dígitos en radix-r cuando la
b. desplazador binario a la derecha de
4. El procesador según la reivindicación 1 en el que los números X e Y se representan de acuerdo al estándar IEEE-754.
5. Un método del cálculo de la potencia Y-ésima o de la raíz Y-ésima de un número X,
en un procesador hardware, siendo X e Y números en punto flotante,
, que comprende:
b. calcular
6. El método según la reivindicación 5 en el que el desplazamiento se lleva a cabo en modo de operación izquierda-derecha dígito más significativo primero, del inglés left- to-right most-significand digit first (MSDF).
7. El método según la reivindicación 6 en el que el desplazamiento a izquierda o derecha del logaritmo, que tiene una parte entera de dígitos en radix-
r, donde
es el radix empleado, de los cuales
son ceros a la izquierda, y una parte fraccional que tiene ceros a la izquierda seguidos por N| dígitos,
donde es el número de 0 o 1 consecutivos más significativos de la parte fraccional de que comprende: a. realizar un desplazamiento a la derecha de dígitos en radix-
b. realizar un desplazamiento binario a la derecha de
8. El método según la reivindicación 5 en el que los números X e Y se representan de acuerdo al estándar IEEE-754.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP13827706.6A EP2884403A1 (en) | 2012-08-09 | 2013-08-08 | Apparatus and method for calculating exponentiation operations and root extraction |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ES201231286A ES2396673B2 (es) | 2012-08-09 | 2012-08-09 | Aparato y método para calcular operaciones de potenciación y extracción de raíces |
ESP201231286 | 2012-08-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014023871A1 true WO2014023871A1 (es) | 2014-02-13 |
Family
ID=47664683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/ES2013/070586 WO2014023871A1 (es) | 2012-08-09 | 2013-08-08 | Aparato y método para calcular operaciones de potenciación y extracción de raíces |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP2884403A1 (es) |
ES (1) | ES2396673B2 (es) |
WO (1) | WO2014023871A1 (es) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111630509A (zh) * | 2018-01-05 | 2020-09-04 | Ntt电子股份有限公司 | 运算电路 |
-
2012
- 2012-08-09 ES ES201231286A patent/ES2396673B2/es active Active
-
2013
- 2013-08-08 WO PCT/ES2013/070586 patent/WO2014023871A1/es active Application Filing
- 2013-08-08 EP EP13827706.6A patent/EP2884403A1/en not_active Withdrawn
Non-Patent Citations (10)
Title |
---|
A. PI IEIRO; J. D. BRUGUERA; F. LAMBERTI; P. MONTUSCHI: "A Radix-2 Digit-by-Digit Architecture for Cube Root", IEEE TRANSACTIONS ON COMPUTERS, vol. 57, no. 4, April 2008 (2008-04-01), pages 562 - 566 |
J. A. PINEIRO; J. D. BRUGUERA; J. M. MULLER: "Faithful Powering Computation Using Table Lookup and Fused Accumulation Tree", PROCEEDINGS 15TH IEEE SYMPOSIUM ON COMPUTER ARITHMETIC, June 2001 (2001-06-01), pages 40 - 47 |
J. A. PINEIRO; M. D. ERCEGOVAC; J. D. BRUGUERA: "Algorithm and Architecture for Logarithm, Exponential and Powering Computation", IEEE TRANSACTIONS ON COMPUTERS, vol. 53, no. 9, September 2004 (2004-09-01), pages 1085 - 1096 |
J. CAO; B. W. Y. WEI; J. CHENG: "High-performance architectures for elementary function generation", PROCEEDINGS 15TH IEEE SYMPOSIUM ON COMPUTER ARITHMETIC, June 2001 (2001-06-01), pages 136 - 144 |
M. D. ERCEGOVAC: "Digit-by-Digit Methods for Computing Certain Functions", 41ST ASILOMAR CONFERENCE ON SIGNALS, SYSTEMS AND COMPUTERS, November 2007 (2007-11-01), pages 338 - 342 |
N. TAKAGI: "A Digit-Recurrence Algorithm for Cube Rooting", IEICE TRANSACTIONS ON FUNDAMENTALS OF ELECTRONICS, COMMUNICATIONS AND COMPUTER SCIENCES, vol. E84-A, no. 5, May 2001 (2001-05-01), pages 1309 - 1314 |
N. TAKAGI: "Powering by a Table Look-Up and a Multiplication with Operand Modification", IEEE TRANSACTIONS ON COMPUTERS, vol. 47, no. 11, November 1998 (1998-11-01), pages 1216 - 1222 |
P. MONTUSCHI; J. D. BRUGUERA; L. CIMINIERA; J. A. PINEIRO: "An Digit-by-Digit Algorithm for m-th Root Extraction", IEEE TRANSACTIONS ON COMPUTERS, vol. 56, no. 12, December 2007 (2007-12-01), pages 1696 - 1706 |
PINEIRO, J.-A. ET AL.: "Algorithm and architecture for logarithm, exponential,and powering computation", COMPUTERS, IEEE TRANSACTIONS, vol. 53, no. 9, September 2004 (2004-09-01), pages 1085 - 1096, XP055190648 * |
VAZQUEZ, A. ET AL.: "Composite Iterative Algorithm and Architecture for q-th Root Calculation", COMPUTER ARITHMETIC (ARITH), 2011 20TH IEEE SYMPOSIUMON, 25 July 2011 (2011-07-25), pages 52 - 61, XP032036961 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111630509A (zh) * | 2018-01-05 | 2020-09-04 | Ntt电子股份有限公司 | 运算电路 |
CN111630509B (zh) * | 2018-01-05 | 2023-12-08 | Ntt创新器件有限公司 | 执行积和运算的运算电路 |
Also Published As
Publication number | Publication date |
---|---|
EP2884403A1 (en) | 2015-06-17 |
ES2396673A1 (es) | 2013-02-25 |
ES2396673B2 (es) | 2014-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2340527T3 (es) | Procesador de coma flotante con una subprecision seleccionable. | |
CN107077415B (zh) | 用于执行转换运算的装置和方法 | |
US9753695B2 (en) | Datapath circuit for digital signal processors | |
Schulte et al. | Approximating elementary functions with symmetric bipartite tables | |
RU2412462C2 (ru) | Процессор с плавающей запятой с пониженной потребляемой мощностью для выбираемой субточности | |
Allan et al. | Parameterised floating-point arithmetic on FPGAs | |
JP3891997B2 (ja) | 可変幅の符号付きおよび符号なしオペランドのためのモジュラ2進乗算器 | |
US10255041B2 (en) | Unified multiply unit | |
WO2016171847A1 (en) | High performance division and root computation unit | |
Bhardwaj et al. | ACMA: Accuracy-configurable multiplier architecture for error-resilient system-on-chip | |
KR102581403B1 (ko) | 공유 하드웨어 로직 유닛 및 그것의 다이 면적을 줄이는 방법 | |
Patil et al. | Out of order floating point coprocessor for RISC V ISA | |
Jaiswal et al. | Area-efficient architectures for double precision multiplier on FPGA, with run-time-reconfigurable dual single precision support | |
US8019805B1 (en) | Apparatus and method for multiple pass extended precision floating point multiplication | |
US20160034256A1 (en) | Fast integer division | |
Bandil et al. | Modified restoring array-based power efficient approximate square root circuit and its application | |
Habegger et al. | An efficient hardware implementation for a reciprocal unit | |
Vazquez et al. | A radix-10 SRT divider based on alternative BCD codings | |
Bruguera | Composite iterative algorithm and architecture for q-th root calculation | |
WO2014023871A1 (es) | Aparato y método para calcular operaciones de potenciación y extracción de raíces | |
Birman et al. | Design of a high-speed arithmetic datapath | |
US20140052767A1 (en) | Apparatus and architecture for general powering computation | |
Putra et al. | Optimized hardware algorithm for integer cube root calculation and its efficient architecture | |
Panda et al. | A novel vedic divider architecture with reduced delay for VLSI applications | |
Arish et al. | Run-time-reconfigurable multi-precision floating-point matrix multiplier intellectual property core on FPGA |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13827706 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
REEP | Request for entry into the european phase |
Ref document number: 2013827706 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2013827706 Country of ref document: EP |