ES2396673B2 - 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
ES2396673B2
ES2396673B2 ES201231286A ES201231286A ES2396673B2 ES 2396673 B2 ES2396673 B2 ES 2396673B2 ES 201231286 A ES201231286 A ES 201231286A ES 201231286 A ES201231286 A ES 201231286A ES 2396673 B2 ES2396673 B2 ES 2396673B2
Authority
ES
Spain
Prior art keywords
calculation
root
document
unit
logarithm
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.)
Active
Application number
ES201231286A
Other languages
English (en)
Other versions
ES2396673A1 (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 PCT/ES2013/070586 priority patent/WO2014023871A1/es
Priority to EP13827706.6A priority patent/EP2884403A1/en
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
    • 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)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (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{sup,Z}=2{sup,Zxlog{sub,2}X}. El aparato comprende una pluralidad de elementos de memoria; y un procesador hardware configurado para calcular la operación de potenciación X{sup,Z} 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 X{sup,Z}.

Description

Aparato y método para calcular operaciones de potenciación y extracción de raíces
SECTOR TÉCNICO DE LA INVENCIÓN
5 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
10 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.
15 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
20 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
25 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
30 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
35 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
40 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
45 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. Enconsecuencia, 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.
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
sx sz
XY, siendo X e Y números en punto flotante X =_1XM X2Ex e Y =_1XM X2Ey , siendo Mx y My
()x ()y
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:
{y en operaciones de potenciación
Y =
{1/ y en operaciones de cálculo de raíz
siendo y un número entero con signo de ny+1 bits, con |y| ; 2 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 (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 5 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
10 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 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.
15 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 20 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 25 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 (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
30 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:
= 2log2 (XZ )= 2ZXlog2 X
XZ (1)
considerando que X es un número en punto flotante esta ecuación se puede reescribir como:
= 2ZXlog2 (MxX2Ex )= 2ZXS
XZ (2)
35 donde S=Ex + log2Mx es la concatenación de los dígitos de Ex (valor entero) y log2(Mx) E [0,1).
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
40 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 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
45 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:
S 2int ZX)2 frac ZX)
( S( S
XZ =2ZX= (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 F =XZ =Mf X2Ef , el significando Mf y el exponente Ef de XZ son:
2 frac(ZxS)
Mf = (4)
Ef =int(Z XS) (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:
sy X
1.
Evaluación de Z =_11/| y | (sólo si se extrae la raíz, REC en Figura 1), siendo sy 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 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.
fnl /bl
_i
3. Multiplicación T = Z x S. El operando S=Ex +L =" Sirse obtiene concatenando los dígitos
i=_f (nEx_1)/bl +1
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 f (nEx _1)/ b lpara
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 8 = 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 f (nEx _1)/ bl +1para potenciación y f (nEx _1)/ bl para 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, f(nEx _1)/ b l+1. Por lo tanto la latencia total
viene dada por :
N =(f ( _1)/ bl +1)+(5+1)+N (6)
nEx e
donde N=fn/ bl es la latencia del cálculo de la exponencial 2frac(T).
e e
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
5 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
10 é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
15 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
20 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
25 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
30 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 35 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 40 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
45 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,
X =_1XMX2Ex e Y =_1sy XMX2Ey . Sustituyendo el exponente en la ecuación 1 por un
()sx ()
xy
exponente Y en punto flotante:
Y _1)syXMyXlog2|X|X2Ey
| X |=2( (7)
De forma similar:
1/Y _1)syX(1/My )Xlog2|X|X2_Ey
| X |=2( (8)
Para usar el mismo multiplicador para ambas operaciones, se normaliza 1/ ME(0.5,1] al intervalo [1,2);
y
entonces:
sy _( Ey +1)
1/ Y (_1) X(2/ M )Xlog |X|X2
| X| =2 y 2 (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,
Z 2 frac(T ) X2int(T)
| X |=Mf X2Ef = (10)
siendo Z = Y o Z = 1/Y y
{ (_1)sy XMy Xlog2 | X | X2Ey
T =
_(Ey+1)
{(_1)sy X(2 / My ) Xlog2 | X | X2
para potenciación y extracción de raíz, respectivamente.
La secuencia de operaciones es: (1) cálculo de recíproco 1/ M para el caso de extracción de una raíz; (2)
y
evaluación de L = log2 |X|; (3) desplazamiento del resultado del logaritmo, L X2Ey ; (4) multiplicación por M o
y
1/ M; y (5) cálculo exponencial siguiendo una base on-line.
y
De acuerdo a una realización, la secuencia de operaciones del método es:
1. Evaluación de R=(1/ M)X2, sólo en el caso de extracción de raíz, mediante un método de recurrencia
y
de dígitos. La latencia es N=fn/ blpara nr bits de precisión.
rr
2. Cálculo de L =log2 | X |. El logaritmo se calcula como L =E+log2 M dígito a dígito. Para asegurar la
xx
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, lx, en frac| M| y se evitan las K= L(lx-1)/bj
x
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
iteraciones que se evitan, K, y el número de ceros de la parte entera de KEx. Después de esto, se calcula el 30 logaritmo con nl = n + nEx + 6 + b bits de precisión, lo que requiere Nl =f(n+nEx+6)/bl+1 iteraciones.
3.
Desplazar L por 2Ey , S=L X2Ey . El desplazamiento se describe en la sección D.1.
4.
Multiplicación en base on-line sin acarreo izquierda-derecha T =M XS ó T =(2 / M ) XS ,
yy dependiendo de la operación que se esté llevando a cabo, comenzando en el ciclo 5 con un retardo on-line <m=1. 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 <m 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 2 frac(T ) , comenzando en el ciclo 7, ya que el retardo on-line de la exponencial es < = 2.
La latencia del método es 5+r+5+5+N, donde < = 2, <m=1 (para el cálculo de la raíz q-ésima),
me
r=f(nEx _1) / bly Ne es la latencia de la operación de cálculo de la exponencial.
_(Ey+1)
Los desplazamientos 2Ey y 2imponen 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:
_(nEx +nm) Ey n+nEx _2 (11)
En el caso de extracción de raíz cuadrada, el rango práctico de Ey está limitado a :
_(n+nEx _1) Ey nEx +nm +1 (12)
Así, _69 Ey 61 (_62 Ey 70)y _37 Ey 29 (_30 Ey 38) para potenciación (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 L =E+log2 M por E, en el cálculo de cálculo de potencia o
x xy
por _(E+1) en el caso de extracción de raíz. En ambos casos el desplazamiento puede ser negativo o
y
positivo.
Para simplificar la representación del desplazamiento se ilustra considerando un desplazamiento por E, con
z
E=E para potenciación, y Ez =_(E+1)para extracción de raíz. La Figura 4(A) muestra el formato
zyy
de L =Ex +log2 Mx . Debido a la adición de Ex , hay una parte entera de r=f(nEx _1)/ bl dígitos en radix
r, de los cuales KEx son ceros a la izquierda. Si KEx =r la parte entera de L es cero, LL =0j, que
corresponde a los casos (1) E=0 con L E[0,1) y (2) E=_1 con L E(_1, 0) (i.e., se filtra el caso
xx
M=1, E=_1(X =0.5, L =_1)ya que su evaluación es directa). La parte fraccional tiene
xx
K =L(lx _1)/ bj ceros a la izquierda radix-r seguidos por Nl dígitos, donde Ix es el número 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 I1,., Ir_KEx y L1,., LNl , 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 Ese implementa como un desplazamiento a derecha: como los ceros/unos a la izquierda
z
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 KEx +1 ( si la parte entera no es cero) o r+K +1(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 (KEx +1)_LEz / bj o
(K +r+1)_LE/ bj dígitos radix-r y (2) un desplazamiento binario a la derecha de E%b bits. El
zz
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 Ij entran en
la misma posición del registro pero en ciclos consecutivos. Ocurre lo mismo para los dígitos fraccionales Lj . Por
otro lado, el digito Lj entra (r_KEx )+K +1 posiciones a la derecha del dígito Ij . Los dígitos se desplazan a la izquierda, un dígito cada ciclo.
La posición de los Ij dígitos de entrada al registro está determinada en función de KEx y E. Se identifican dos
y
casos:
1. La parte entera es distinta de cero, r*KEx , que corresponde a >1. El máximo desplazamiento a la
Ex izquierda permitido en L es KEx . Entonces, los dígitos Ij entran en el registro en la posición
KEx _LEz / bj+1y la salida del registro tiene KEx _LEy / bjceros/unos a la izquierda.
2. La parte entera es cero, r=KEx , que corresponde a Ex =0 o Ex =_1. El desplazamiento máximo permitido a la izquierda en L es r+K . Entonces, los Lj dígitos se introducen en la posición r+K +1_LE/ bj. Una vez que los dígitos han sido desplazado, hay r+K _LE/ bj dígitos ceros/unos a
zz
la izquierda en S.
Por lo tanto, el logaritmo desplazado S tiene NS Nl +1dígitos. El bit más significativo S0 permite detectar el desbordamiento (si T0 XM*0o E>E, entonces hay desbordamiento), los siguientes r dígitos en
=S0 z zzmax radix-r corresponden a la parte entera del logaritmo desplazado y los restantes K +Nl dígitos radix-r corresponden a la parte fraccional. El desplazamiento binario de E%b se lleva a cabo introduciendo los dígitos
zIj e Ij+1 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 (8)

  1. REIVINDICACIONES
    1.
  2. 2.
  3. 3.
  4. 4.
  5. 5.
    Un procesador hardware para el cálculo general de Xy y de X1/y, donde X es un número en punto flotante e Y es un exponente en punto flotante, X =_()X2Ex e Y =_1sy XMX2Ey , comprende:
    1sx XMx ()y
    a.
    una unidad de cálculo de recíproco que calcula el valor 2 /My;
    b.
    una unidad logarítmica que calcula el valor L=log2|X|, el algoritmo se calcula como L=Ex + log2Mx;
    c.
    una unidad de desplazamiento que desplaza L por 2Ey en el caso de cálculo de potencia o por 2-(Ey+1) en el caso de cálculo de raíz, obteniendo un valor S;
    d.
    una unidad de multiplicación que calcula el producto T= S x 2/ /My en el caso de cálculo de raíz y T =S x My en el caso de cálculo de potencia; y
    e.
    una unidad de cálculo exponencial que calcula el valor de 2frac(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.
    El procesador según la reivindicación 1, en el que la unidad de desplazamiento opera en modo izquierdaderecha dígito más significativo primero, del inglés left-to-right most-significand digit first (MSDF).
    El procesador según la reivindicación 2 en el que la unidad de desplazamiento izquierda o derecha del
    f
    logaritmo, que tiene una parte entera de r=(nEx _1)/ bl dígitos en radix-r, donde r=2b es el radix
    empleado y nEx es el número de bits del exponente, de los cuales KEx son ceros a la izquierda, y una parte fraccional que tiene K =L(lx _1)/ bj ceros a la izquierda seguidos por Nl dígitos, donde Ix es el número de 0 o 1 consecutivos más significativos de la parte fraccional de Mx , que comprende:
    a. desplazador a la derecha de (KEx +1)_LEz / bj dígitos en radix-r cuando la parte entera del logaritmo es distinta de cero, r*KEx , o de (K +r+1)_LEz / bjdígitos radix-r cuando la parte entera del logaritmo es cero, r= ; y
    KEx
    b. desplazador binario a la derecha de Ez%b.
    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. Un método del cálculo de la potencia Y-ésima o de la raíz Y-ésima de un número X, XY o X1/y, en un
    procesador hardware, siendo X e Y números en punto flotante, X =_1XMx e ()y
    ()sx X2Ex
    Y =_1sy XMX2Ey , que comprende:
    a.
    calcular el término 2/ /My ;
    b.
    calcular L=log2|X|;
    c.
    desplazar L por 2Ez, siendo Ez = Ey en el caso de cálculo de potencia y Ez= -(Ey+1) el caso de cálculo de raíz, obteniendo un valor S;
    d.
    multiplicar en base on-line sin acarreo izquierda-derecha los términos My x S = T, en el caso de cálculo de potencia, o (2/My) x S =T, en el caso de cálculo de raíz;
    e.
    separar la parte entera y fraccionaria de T; y
    f.
    calcular de forma on-line la exponencial 2frac(T), donde frac indica parte fraccional, que es el resultado de la operación de cálculo de potencia o cálculo de raíz.
  6. 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).
    5 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 r =f(nEx _1) / bl dígitos en radix-r, donde r=2b es el radix empleado, de los cuales KEx son ceros a la izquierda, y una parte fraccional que tiene K =L(lx _1) / bj ceros a la izquierda seguidos por Nl dígitos, donde Ix es el número de 0 o 1 consecutivos más significativos de la parte fraccional
    de Mx, que comprende:
    10 a. realizar un desplazamiento a la derecha de (KEx +1)_LEz / bj dígitos en radix-r cuando la parte entera del logaritmo es distinta de cero, r* KEx , o un desplazamiento a la derecha de (K +r +1)_LEz / bj dígitos radix-r cuando la parte entera del logaritmo es cero, r= KE ; y
    x
    b. realizar un desplazamiento binario a la derecha de Ez%b
  7. 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 15 IEEE-754.
    Figura 1
    Figura 2
    Figura 3
    Figura 4
    Figura 5
    Figura 6
    Figura 7
    OFICINA ESPAÑOLA DE PATENTES Y MARCAS
    N.º solicitud: 201231286
    ESPAÑA
    Fecha de presentación de la solicitud: 09.08.2012
    Fecha de prioridad:
    INFORME SOBRE EL ESTADO DE LA TECNICA
    51 Int. Cl. : G06F17/10 (2006.01)
    DOCUMENTOS RELEVANTES
    Categoría
    56 Documentos citados Reivindicaciones afectadas
    X
    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 1-15
    A
    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 1-15
    Categoría de los documentos citados X: de particular relevancia Y: de particular relevancia combinado con otro/s de la misma categoría A: refleja el estado de la técnica O: referido a divulgación no escrita P: publicado entre la fecha de prioridad y la de presentación de la solicitud E: documento anterior, pero publicado después de la fecha de presentación de la solicitud
    El presente informe ha sido realizado • para todas las reivindicaciones • para las reivindicaciones nº:
    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
    Nº de solicitud: 201231286
    Documentación mínima buscada (sistema de clasificación seguido de los símbolos de clasificación) G06F Bases de datos electrónicas consultadas durante la búsqueda (nombre de la base de datos y, si es posible, términos de
    búsqueda utilizados) INVENES, EPODOC, WPI, Inspec, Internet
    Informe del Estado de la Técnica Página 2/4
    OPINIÓN ESCRITA
    Nº de solicitud: 201231286
    Fecha de Realización de la Opinión 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 aplicación industrial. Este requisito fue evaluado durante la fase de examen formal y técnico de la solicitud (Artículo 31.2 Ley 11/1986).
    Base de la Opinión.-
    La presente opinión se ha realizado sobre la base de la solicitud de patente tal y como se publica.
    Informe del Estado de la Técnica Página 3/4
    OPINIÓN ESCRITA
    Nº de solicitud: 201231286
    1. Documentos considerados.-
    A continuación se relacionan los documentos pertenecientes al estado de la técnica tomados en consideración para la realización de esta opinión.
    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
  8. 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 reivindicación caracteriza el aparato por comprender elementos muy generales propios de toda arquitectura implementada en ordenador (elementos de memoria y procesador), sin definir características particulares de los mismos propias de la invención. El documento D01 muestra [Abstract; 1. Introduction] un algoritmo de cálculo de raíces que permite realizar dicho cálculo mediante medios de procesamiento informáticos. Dichos medios de procesamiento disponen de los elementos de memoria pertinentes (p. ej. diversos registros en todas las figuras). A la vista del documento D01 la reivindicación 1 carece de novedad según el artículo 6 de la Ley de Patentes.
    Reivindicación dependientes 2 a 4
    Las reivindicaciones 2 a 4 no muestran características particulares del aparato, únicamente definen el mismo por su capacidad de almacenar información (X, Z...) y operar en punto fijo o flotante. El documento D01 muestra que los requisitos hardware se han optimizado [Abstract] para trabajar en precisión flotante simple o doble. A la vista del documento D01 las reivindicaciones 2 a 4 carecen de novedad según el artículo 6 de la Ley de Patentes.
    Reivindicaciones dependientes 5 a 10
    La arquitectura mostrada en el documento D01 está formada [figuras 2 y 7] por una unidad de cálculo de recíproco, una unidad logarítmica, una unidad de multiplicación, una unidad de desplazamiento y una unidad exponencial on-line. El documento indica [página 6] que el cálculo de la extracción de raíz se realiza mediante una secuencia de operaciones, las cuales pueden realizarse de forma concurrente, comenzando los cálculos por el dígito más significativo. Al igual que en D01, los requisitos hardware se han optimizado [Abstract] para trabajar en precisión flotante simple o doble. Puede verse que el documento D01 contiene todas las características definidas en las reivindicaciones 5 a 8 y 10. La reivindicación 9 no define características particulares del procesador, pudiendo utilizarse cualquiera de los habitualmente utilizados para este tipo de cálculos. A la vista del D01 las reivindicaciones 5 a 10 carecen de novedad según el artículo 6 de la Ley de Patentes.
    Reivindicación independiente 11
    El documento D01 muestra explícitamente [página 7; figura 1] ciertas etapas coincidentes con las definidas en la reivindicación 11. Estas etapas explícitamente citadas son: cálculo del recíproco del número Z (exponente), cálculo 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 [página 15; figura 6] también se realiza un desplazamiento del logaritmo previamente calculado en la etapa g. El documento D01 no muestra de forma expresa las acciones de almacenamiento, en elementos de memoria, de la información imprescindible para realizar el cálculo (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 reivindicación 11 carece de actividad inventiva según el artículo 8 de la Ley de Patentes.
    Reivindicaciones dependientes 12 a 15
    El documento D01 indica [página 6] que el cálculo de la extracción de raíz se realiza mediante una secuencia de operaciones, las cuales pueden realizarse de forma concurrente. Los requisitos hardware se han optimizado [Abstract] para trabajar en precisión flotante simple o doble. Puede verse que el documento D01 identifica todas las características definidas en las reivindicaciones 12 a 14. La reivindicación 15 no define ninguna etapa del procedimiento, pudiendo utilizarse cualquiera de los procesadores habitualmente utilizados para este tipo de cálculos. A la vista del documento D01 las reivindicaciones 12 a 15 carecen de actividad inventiva según el artículo 8 de la Ley de Patentes.
    Informe del Estado de la Técnica Página 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
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
EP13827706.6A EP2884403A1 (en) 2012-08-09 2013-08-08 Apparatus and method for calculating exponentiation operations and root extraction

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 ES2396673A1 (es) 2013-02-25
ES2396673B2 true 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 日本電信電話株式会社 演算回路

Also Published As

Publication number Publication date
WO2014023871A1 (es) 2014-02-13
ES2396673A1 (es) 2013-02-25
EP2884403A1 (en) 2015-06-17

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.
CN107305484B (zh) 一种非线性函数运算装置及方法
US8725786B2 (en) Approximate SRT division method
US20160313976A1 (en) High performance division and root computation unit
Bhardwaj et al. ACMA: Accuracy-configurable multiplier architecture for error-resilient system-on-chip
Patil et al. Out of order floating point coprocessor for RISC V ISA
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
US20140052767A1 (en) Apparatus and architecture for general powering computation
Ercegovac et al. Digit-recurrence algorithms for division and square root with limited precision primitives
Panda et al. A novel vedic divider architecture with reduced delay for VLSI applications
Putra et al. Optimized hardware algorithm for integer cube root calculation and its efficient architecture
US8892622B2 (en) Pipelined divide circuit for small operand sizes
Gustafsson et al. Basic arithmetic circuits
Amaricai et al. SRT radix-2 dividers with (5, 4) redundant representation of partial remainder
Chang et al. Fixed-point computing element design for transcendental functions and primary operations in speech processing
Babu et al. Analysis of Low-Delay in 64-bit Vedic multiplier based MAC unit
Sun et al. Design of scalable hardware architecture for dual-field montgomery modular inverse computation
ES2372132B1 (es) Método, célula de recurrencia y circuito para realizar divisiones con operandos de coma fija de alta velocidad.
Özbilen et al. A single/double precision floating-point reciprocal unit design for multimedia applications
Priyanka et al. Design and Implementation Of 32-Bit Unsigned Divider On FPGA

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