ES2396673A1 - 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 PDF

Info

Publication number
ES2396673A1
ES2396673A1 ES201231286A ES201231286A ES2396673A1 ES 2396673 A1 ES2396673 A1 ES 2396673A1 ES 201231286 A ES201231286 A ES 201231286A ES 201231286 A ES201231286 A ES 201231286A ES 2396673 A1 ES2396673 A1 ES 2396673A1
Authority
ES
Spain
Prior art keywords
calculation
unit
root
document
exponent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
ES201231286A
Other languages
English (en)
Other versions
ES2396673B2 (es
Inventor
Javier DÍAZ BRUGUERA
Álvaro VÁZQUEZ ÁLVAREZ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Universidade de Santiago de Compostela
Original Assignee
Universidade de Santiago de Compostela
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Universidade de Santiago de Compostela filed Critical Universidade de Santiago de Compostela
Priority to ES201231286A priority Critical patent/ES2396673B2/es
Publication of ES2396673A1 publication Critical patent/ES2396673A1/es
Priority to EP13827706.6A priority patent/EP2884403A1/en
Priority to PCT/ES2013/070586 priority patent/WO2014023871A1/es
Application granted granted Critical
Publication of ES2396673B2 publication Critical patent/ES2396673B2/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods 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/556Logarithmic or exponential functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods 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/552Powers or roots, e.g. Pythagorean sums
    • G06F7/5525Roots or inverse roots of single operands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3852Calculation with most significant digit first
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5356Via reciprocal, i.e. calculate reciprocal only, or calculate reciprocal first and then the quotient from the reciprocal and the numerator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers

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 XZ=2Zxlog2X. 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 (X1/2), raíz cuadrada inversa (X-1/2), raíz cúbica (X1/3), raíz cúbica inversa (X-1/3), cuadrado (X2), cuadrado inverso (X-2), recíproco (X-1), exponencial (2y o ey), 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 elementary 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-by-Digit 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, 41st Asilomar Conference on Signals, 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ónexponencial acelerada por el uso de redundancia y aritmética on-line, y extendidas para el cálculo de X1/q. 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 XY y X1/Y, 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.
ES 2 396 673 Al
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 5 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 10 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
15 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.
20 los significandos de n-bits (es decir, los n bits de los significandos que incluyen el bit oculto, y el bit menos significativo, del inglés Less Significant Bit (LSB), tiene un peso de 2-(n-1)); y Ex y Ey los exponentes con signo de nEx bits, o Y un exponente en punto fijo de ny+1 bits de la forma:
siendo y un número entero con signo de ny+1 bits, con |y| Ӌ2 para el cálculo de raíces.
25 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 30 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 35 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 40 logarítmica de radix elevado (r = 2b, b �1), 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 45 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 r=2b es el radix empleado, o nEx 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
5 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 r = 2b. 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
10 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
15 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
20 número C; y (j) 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.
25 De acuerdo a una realización particular, y sin limitación, el método se deriva como sigue:
(1)
considerando que X es un número en punto flotante esta ecuación se puede reescribir como:
(2)
donde S=Ex + log2Mx es la concatenación de los dígitos de Ex (valor entero) y log2(Mx) E [0,1).
30 De acuerdo a (2), XZ de puede calcular como la secuencia de operaciones: (1) logaritmo del significando Mx (log2(Mx) E [0,1)); (2) suma de Ex y log2Mx (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
35 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 2ZxS. 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
40 puede escribir como:
(3)
siendo int(ZxS) y frac(ZxS) las partes entera y fraccional de ZxS, respectivamente. Por lo tanto, de acuerdo a la
ecuación (3), y considerando , el significando
y el exponente
de XZ son:
ES 2 396 673 Al
(4)
(5)
El argumento de la exponencial 2frac(ZxS) está ahora en el rango (-1,1). El número de bits enteros de Z x S es mayor para Xy que para X1/y. En el caso de extracción de raíces, el número de bits enteros depende sólo de EX; 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:
(sólo si se extrae la raíz, REC en Figura 1), siendo sy el signo de y. Para
1.
Evaluación de
consideración práctica, una baja precisión para |y| es suficiente y se prefiere una tabla (LUT) para el cálculo de 1/|y|. Por lo tanto, se usa una LUT con ny entradas y nz salidas (nz bits fraccionales, representación binaria no redundante).
2.
Evaluación del logaritmo L = log2 M x E [0,1) con una precisión de nl bts usando un 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 fraccionales). 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 T, 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
extracción de raíces.
5. Cálculo de la exponencial de radix elevado on-line 2frat(T) E (0.5,2) con frac(T) E (-1,1), con una precisión de ne bits, y un retardo on-line 5 = 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.
para
El número de dígitos en la parte entera es para potenciación y
extracción de raíces. Como la extracción de raíces requiere obtener Z = 1/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 :
(6)
es la latencia del cálculo de la exponencial 2frac(T).
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. 10. 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 X1/Y o XY, siendo X e Y números en punto flotante,
. Sustituyendo el exponente en la ecuación 1 por un
exponente Y en punto flotante:
(7)
De forma similar:
(8)
Para usar el mismo multiplicador para ambas operaciones, se normaliza
al intervalo [1,2); entonces:
(9)
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,
(10)
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 L = log2 |X|; (3) desplazamiento del resultado del logaritmo, ; (4) multiplicación por
o
; y (5) cálculo exponencial siguiendo una base on-line. 15 De acuerdo a una realización, la secuencia de operaciones del método es:
1.
Evaluación de , sólo en el caso de extracción de raíz, mediante un método de recurrencia
para nr bits de precisión.
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 20 iteraciones, se estima el número de ceros/unos a la izquierda, lx, en
y se evitan las K= L(lx-1)/bj
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, lx y lEx, 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
25 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 nl = n + nEx + 6 + b bits de precisión, lo que requiere Nl =((n+nEx+6)/b7+1 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 T = M x S ó , dependiendo
y
de la operación que se esté llevando a cabo, comenzando en el ciclo 5 con un retardo on-line om=1. Se debe
30 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 om es cero. Se calcula un dígito significativo adicional T0 para detectar el desbordamiento (T0 ӆ 0 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 o = 2.
, donde o = 2, om=1 (para el cálculo de la raíz q-ésima),
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 Ey para la potenciación está limitado a:
(11)
En el caso de extracción de raíz cuadrada, el rango práctico de Ey está limitado a :
(12)
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 , en el cálculo de cálculo de potencia o
por
en el caso de extracción de raíz. En ambos casos el desplazamiento puede ser negativo o
positivo.
Para simplificar la representación del desplazamiento se ilustra considerando un desplazamiento por , con
para potenciación, y 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 casos (1) con
y (2)
con
(i.e., se filtra el caso
ya que su evaluación es directa). La parte fraccional tiene
ceros a la izquierda radix-r seguidos por dígitos. Los dígitos radix-r que no son ceros de la
parte entera y fraccional se denotan como I1,.,Iy-y L1,.,LNl , respectivamente (i.e., los ceros a la
KEx 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
se obtienen
simultáneamente en el ciclo 2; esto es equivalente a prealinear L colocando sus
( si la parte entera no
es cero) o (si la parte entera es cero) dígitos a la izquierda , el máximo desplazamiento posible la
izquierda.
El desplazamiento se divide en dos partes: (1) un desplazamiento a la derecha de
o
dígitos radix-r y (2) un desplazamiento binario a la derecha de
bits. El
desplazamiento dígito a dígito se lleva a cabo con un registro de desplazamiento con NS radix-b dígitos (Figura
4(C)), donde NS es aproximadamente Nl (en los casos de interés NS = Nl). Todos los dígitos enteros
entran en
la misma posición del registro pero en ciclos consecutivos. Ocurre lo mismo para los dígitos fraccionales . Por
otro lado, el digito 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:
1. La parte entera es distinta de cero, , que corresponde a . El máximo 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.
o . El desplazamiento máximo
2. La parte entera es cero, , que corresponde a
permitido a la izquierda en L es . Entonces, los 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 o , entonces hay desbordamiento), los siguientes y 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
e juntos en un registro de desplazamiento a la derecha de b bits y descartando los b bits más
significativos, como se muestra en la Figura 4(D).

Claims (16)

  1. REIVINDICACIONES
    1. Un aparato para el calculo general de potencias y raíces que comprende:
    a.
    una pluralidad de elementos de memoria; y
    b.
    un procesador hardware configurado para calcular la función de potenciación XZ de un número en punto flotante X, donde Z es un exponente sin restricciones.
  2. 2.
    El aparato según la reivindicación 1, aparato (a), en el que la pluralidad de elementos de memoria almacenan, un número X cuya potencia Z o raíz Z-ésima calcula el aparato, un número en punto fijo Z o punto flotante que indica el exponente de la potencia o raíz que se va a calcular, 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.
  3. 3.
    El aparato según reivindicación 1, apartado (b), donde el exponente sin restricciones es un exponente en punto fijo o punto flotante.
  4. 4.
    El aparato según la reivindicación 3 en el que el exponente sin restricciones es el inverso de un número para calcular el inverso del número y habilitar el cálculo de la raíz q-ésima dentro del mismo procesador hardware.
  5. 5.
    El aparato según la reivindicación 1, aparatado (b), en el que el procesador hardware comprende:
    a.
    una unidad de cálculo de recíproco que calcula el recíproco de Z obteniendo un número A;
    b.
    una unidad logarítmica que calcula el logaritmo en base 2 del número X resultando en un número B;
    c.
    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';
    d.
    una unidad de multiplicación que calcula el producto de los número A y B o B’ resultando en un número C; y
    e.
    una unidad exponencial que calcula la exponencial del número C, obteniendo así el resultado de la operación.
  6. 6.
    El aparato según la reivindicación 5, en el que la unidad de cálculo del recíproco, la unidad logarítmica y la unidad de multiplicación están configuradas para realizar las operaciones concurrentemente.
  7. 7.
    El aparato según la reivindicación 5, apartado (e), en el que la unidad exponencial está configurada para llevar a cabo las operaciones en forma on-line.
  8. 8.
    El aparato según la reivindicación 5 en el que la unidad recíproca, la unidad logarítmica y la unidad de multiplicación está configuradas para llevar a cabo los cálculos comenzando por el dígito más significativo.
  9. 9.
    El aparato según la reivindicación 1, apartado (b), en el que el procesador hardware se elige de entre el grupo circuito integrado, dispositivo FPGA, microprocesador, microcontrolador, procesador digital de señal (DSP), unidad de procesamiento gráfico (GPU) y procesador de propósito general.
  10. 10.
    El aparato según la reivindicación 1 en el que el número X se representa en precisión flotante doble o simple de acuerdo al estándar IEEE-754.
  11. 11.
    Un método de cálculo de la potencia Z-ésima o de la raíz Z-ésima de un número X en un procesador hardware que 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 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 5 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; 10 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; y
    j.
    separar la parte entera y fraccionaria del número C; y 15 k. calcular la exponencial del número C, que es el resultado final de la operación XZ.
  12. 12.
    EL método según la reivindicación 11 en el que el cálculo de la exponencial y del producto se solapan.
  13. 13.
    El método según la reivindicación 11 en el que el cálculo del producto y el logaritmo se solapan.
  14. 14.
    El método según la reivindicación 11 en el que el número X se representa en precisión flotante doble o simple de acuerdo al estándar IEEE-754.
    20 15. El método según la reivindicación 11 en el que 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.
    Figura 2
    OFICINA ESPANOLA DE PATENTES Y MARCAS ESPANA
    INFORME SOBRE EL ESTADO DE LA TECNICA
    51 Int. Cl. : G06F17/10 (2006.01)
    21 N.O solicitud: 201231286 22 Fecha de presentaci6n de la solicitud: 09.08.2012 32 Fecha de prioridad:
    DOCUMENTOS RELEVANTES
    Categoría
    56 Documentos citados Reivindicaciones afectadas
    x
    VAZQUEZ, A.; BRUGUERA, J.D., "Composite Iterative Algorithm and Architecture for q-th Root 1-15
    Calculation," Computer Arithmetic (ARITH), 2011 20th IEEE Symposium on, pp.52-61, 25-27 Julio
  15. 2011. doi: 10.1109/ARITH.2011.16
    URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5992108&isnumber=5992089
    A
    PINEIRO, J.-A.; ERCEGOVAC, M.D.; BRUGUERA, J.D., "Algorithm and architecture for logarithm, 1-15
    exponential, and powering computation," Computers, IEEE Transactions on, vol. 53, no. 9,
    pp. 1085-1096, Sept. 2004. doi: 10.1109/TC.2004.53
    URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1315603&isnumber=29154
    Categoria de los documentos citados x: de particular relevancia Y: de particular relevancia combinado con otro/s de la misma categoria A: refleja el estado de la tecnica O: referido a divulgaci6n no escrita P: publicado entre la fecha de prioridad y la de presentaci6n de la solicitud E: documento anterior, pero publicado despues de la fecha de presentaci6n de la solicitud
    El presente informe ha sido realizado • para todas las reivindicaciones • para las reivindicaciones nO:
    Fecha de realización del informe 31.01.2013
    Examinador M. L. Alvarez Moreno Página 1/4
    INFORME DEL ESTADO DE LA T�CNICA
    NO de solicitud: 201231286
    Documentaci6n minima buscada (sistema de clasificaci6n seguido de los simbolos de clasificaci6n) G06F Bases de datoselectr6nicas consultadas durante la b�squeda (nombre de la base de datos y, si es posible, terminos de
    b�squeda utilizados) INVENES, EPODOC, �PI, Inspec, Internet
    Informe del Estado de la Tecnica Pagina 2/4
    OPINIÓN ESCRITA
    NO de solicitud: 201231286
    Fecha de Realizaci6n de la Opini6n Escrita: 31.01.2013
    Declaración
    Novedad (Art. 6.1 LP 11/1986)
    Reivindicaciones 11-15 Reivindicaciones 1-10 SI NO
    Actividad inventiva (Art. 8.1 LP11/1986)
    Reivindicaciones Reivindicaciones 1-15 SI NO
    Se considera que la solicitud cumple con el requisito de aplicaci6n industrial. Este requisito fue evaluado durante la fase de examen formal y tecnico de la solicitud (Articulo 31.2 Ley 11/1986).
    Base de la Opinión.-
    La presente opini6n se ha realizado sobre la base de la solicitud de patente tal y como se publica.
    Informe del Estado de la Tecnica Pagina 3/4
    OPINIÓN ESCRITA
    NO de solicitud: 201231286
    1. Documentos considerados.-
    A continuaci6n se relacionan los documentos pertenecientes al estado de la tecnica tomados en consideraci6n para la realizaci6n de esta opini6n.
    Documento
    Número Publicación o Identificación Fecha Publicación
    D01
    VAZQUEZ, A.; BRUGUERA, J.D., "Composite Iterative Algorithm and Architecture for q-th Root Calculation," Computer Arithmetic (ARITH), 2011 20th IEEE Symposium on, pp. 52-61, 25-27 Julio 2011. doi: 10.1109/ARITH.2011.16 URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5992108&isnumber=5992089
    D02
    PINEIRO, J.-A.; ERCEGOVAC, M.D.; BRUGUERA, J.D., "Algorithm and architecture for logarithm, exponential, and powering computation," Computers, IEEE Transactions on, vol. 53, no. 9, pp. 1085-1096, Sept. 2004. doi: 10.1109/TC.2004.53 URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1315603&isnumber=29154
  16. 2. Declaración motivada según los artículos 29.6 y 29.7 del Reglamento de ejecución de la Ley 11/1986, de 20 de marzo, de Patentes sobre la novedad y la actividad inventiva; citas y explicaciones en apoyo de esta declaración
    Reivindicación independiente 1
    La reivindicaci6n caracteriza el aparato por comprender elementos muy generales propios de toda arquitectura implementada en ordenador (elementos de memoria y procesador), sin definir caracteristicas particulares de los mismos propias de la invenci6n. El documento D01 muestra [Abstract; 1. Introduction] un algoritmo de calculo de raices que permite realizar dicho calculo mediante medios de procesamiento informaticos. Dichosmedios de procesamiento disponen de los elementos de memoria pertinentes (p. ej. diversos registros en todas las figuras). A la vista del documento D01 la reivindicaci6n 1 carece de novedad seg�n el articulo 6 de la Ley de Patentes.
    Reivindicación dependientes 2 a 4
    Las reivindicaciones 2 a 4 no muestran caracteristicas particulares del aparato, �nicamente definen el mismo por su capacidad de almacenar informaci6n (x, Z...) y operar en punto fijo o flotante. El documento D01 muestra que los requisitos hardware se han optimizado [Abstract] para trabajar en precisi6n flotante simple o doble. A la vista del documento D01 las reivindicaciones 2 a 4 carecen de novedad seg�n el articulo 6 de la Ley de Patentes.
    Reivindicaciones dependientes 5 a 10
    La arquitectura mostrada en el documento D01 esta formada [figuras 2 y 7] por una unidad de calculo de reciproco, una unidad logaritmica, una uni dad de multiplicaci6n, una u nidad de des plazamiento y una unidad e xponencial on -line. E l documento indica [pagina 6] que el calculo de la extracci6n de raiz se realiza mediante una secuencia de operaciones, las cuales pueden realizarse de forma concurrente, comenzando los calculos por el digito mas significativo. Al igual que en D01, los requisitos hardware se han optimizado [Abstract] para trabajar en precisi6n flotante simple o doble. Puede verse que el documento D01 contiene todas las caracteristicas definidas en las reivindicaciones 5 a 8 y 10. La reivindicaci6n 9 no define caracteristicas particulares del procesador, pudiendo utilizarse cualquiera de los habitualmente utilizados para este tipo de calculos. A la vista del D01 las reivindicaciones 5 a 10 carecen de novedad seg�n el articulo 6 de la Ley de Patentes.
    Reivindicación independiente 11
    El doc umento D 01 m uestra e xplicitamente [ pagina 7; figura 1] ci ertas etapas coincidentes con l as definidas en l a reivindicaci6n 11. Estas etapas explicitamente citadas son: calculo del reciproco del n�mero Z (exponente), calculo del logaritmo en base 2 de x, calcular el producto de los resultados anteriores, separar la parte entera y fraccionaria del resultado anterior y calcular el exponente del mismo. En casos particulares [pagina 15; figura 6] tambien se realiza un desplazamiento del l ogaritmo previamente c alculado e n l a et apa g. E l documento D 01 no m uestra de f orma e xpresa l as acciones de almacenamiento, en elementos de memoria, de la informaci6n imprescindible para realizar el calculo (x, Z, n�mero de bits significativos...), pero de la lectura del documento se pueden deducir dichas acciones ya que son los valores que algoritmo considera como punto de partida [Tabla 1] para su posterior procesamiento. A la vista del documento D01 la reivindicaci6n 11 carece de actividad inventiva seg�n el articulo 8 de la Ley de Patentes.
    Reivindicaciones dependientes 12 a 15
    El documento D01 indica [pagina 6] que el calculo de la extracci6n de raiz se realiza mediante una secuencia de operaciones, las cuales pueden realizarse de forma concurrente. Los requisitos hardware se han optimizado [Abstract] para trabajar en precisi6n flotante simple o doble. Puede verse que el documento D01 identifica todas las caracteristicas definidas en las reivindicaciones 12 a 14. La reivindicaci6n 15 no define ninguna etapa del procedimiento, pudiendo utilizarse cualquiera d e l os procesadores habitualmente ut ilizados para est e t ipo de ca lculos. A l a vi sta del docu mento D 01 l as reivindicaciones 12 a 15 carecen de actividad inventiva seg�n el articulo 8 de la Ley de Patentes.
    Informe del Estado de la Tecnica Pagina 4/4
ES201231286A 2012-08-09 2012-08-09 Aparato y método para calcular operaciones de potenciación y extracción de raíces Active ES2396673B2 (es)

Priority Applications (3)

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
EP13827706.6A EP2884403A1 (en) 2012-08-09 2013-08-08 Apparatus and method for calculating exponentiation operations and root extraction
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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
ES2396673A1 true ES2396673A1 (es) 2013-02-25
ES2396673B2 ES2396673B2 (es) 2014-01-24

Family

ID=47664683

Family Applications (1)

Application Number Title Priority Date Filing Date
ES201231286A Active ES2396673B2 (es) 2012-08-09 2012-08-09 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6863907B2 (ja) * 2018-01-05 2021-04-21 日本電信電話株式会社 演算回路

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Pineiro, J.-A.; Ercegovac, M.D.; Bruguera, J.D.; , "Algorithm and architecture for logarithm, exponential, and powering computation," Computers, IEEE Transactions on , vol.53, no.9, pp. 1085- 1096, Sept. 2004. doi: 10.1109/TC.2004.53 URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1315603&isnumber=29154 *
Vazquez, A.; Bruguera, J.D.; , "Composite Iterative Algorithm and Architecture for q-th Root Calculation," Computer Arithmetic (ARITH), 2011 20th IEEE Symposium on , vol., no., pp.52-61, 25-27 July 2011. doi: 10.1109/ARITH.2011.16 URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5992108&isnumber=5992089 *

Also Published As

Publication number Publication date
WO2014023871A1 (es) 2014-02-13
EP2884403A1 (en) 2015-06-17
ES2396673B2 (es) 2014-01-24

Similar Documents

Publication Publication Date Title
US9753695B2 (en) Datapath circuit for digital signal processors
Mohan et al. Residue Number Systems
ES2340527T3 (es) Procesador de coma flotante con una subprecision seleccionable.
US20110153701A1 (en) Implementation of arbitrary galois field arithmetic on a programmable processor
US8725786B2 (en) Approximate SRT division method
US10255041B2 (en) Unified multiply unit
US20160313976A1 (en) High performance division and root computation unit
Jaiswal et al. Area-efficient architecture for dual-mode double precision floating point division
ES2396673B2 (es) Aparato y método para calcular operaciones de potenciación y extracción de raíces
Bruguera Composite iterative algorithm and architecture for q-th root calculation
Ushasree et al. VLSI implementation of a high speed single precision floating point unit using verilog
US7174015B1 (en) Methods and apparatus for variable radix scalable modular multiplication
Gök et al. Multi-functional floating-point MAF designs with dot product support
Rashidi High-speed hardware implementation of Gaussian normal basis inversion algorithm over F2m
US20140052767A1 (en) Apparatus and architecture for general powering computation
Putra et al. Optimized hardware algorithm for integer cube root calculation and its efficient architecture
CN114385112A (zh) 处理模数乘法的装置及方法
Cilardo Variable-latency signed addition on fpgas
Chang et al. Fixed-point computing element design for transcendental functions and primary operations in speech processing
Gustafsson et al. Basic arithmetic circuits
US20240111489A1 (en) Bignum addition and/or subtraction with carry propagation
Gopal Design and performance analysis of high throughput and low latency double precision floating point division on FPGA
Sun et al. Design of scalable hardware architecture for dual-field montgomery modular inverse computation
Zhou et al. Implementing elliptic curve cryptography on Nios II processor
Özbilen et al. A single/double precision floating-point reciprocal unit design for multimedia applications

Legal Events

Date Code Title Description
FG2A Definitive protection

Ref document number: 2396673

Country of ref document: ES

Kind code of ref document: B2

Effective date: 20140124