LUT Newton Raphson
para el cálculo del inverso de un número
Introducción.
El algoritmo en estudio permite hallar el recíproco de un número d dado (d =1/x(k)) a
partir de una iteración de una ecuación derivada por el método de minimización de
Newton-Raphson. El algoritmo es el siguiente:
x(0) := LUT (d);
For i in 0,...,k-1 loop
x(i+1) :=x(i)∗(2–d∗x(i))
endloop;
La LUT usada es una memoria con cierta cantidad de celdas M que contienen los bits (B)
de la primera aproximación X(0) para diferentes valores de d dados.
x(0)
d
M
B
A fin de configurarcorrectamente la LUT es necesario establecer los valores M, B y
todos los contenidos de las celdas. Como mejora adicional se puede aplicar un paso de
optimización que permita homogeneizar lascaracterísticas de los datos contenidos en las
celdas y minimizar el número de bits en las mismas (normalización de los datos).
Determinación de M
M, la cantidad de celdas de la LUT, determina la cantidad devalores de d para los cuales
se puede obtener su inverso desde la memoria. Un M chico permite la implementación de
una memoria de poca área con la desventaja de que se deberá iterar un mayor número deveces para minimizar el error.
Para accesar la memoria con los bits de d se debe considerar lo siguiente. Puesto que d
debe estar normalizado, su rango es
1/b ≤ d < 1
En base 2 con (por ejemplo 4bits fraccionarios) será:
0,1000 ≤ d < 0,1111
Por causa de la exigencia de la normalización, las representaciones de cualquier d en el
rango válido tienen la forma general 0,1xx..x con xx..x yendo desde00..0 hasta 11..1.
Basados en la mantisa xx..x se puede determinar el valor de M que será:
M = 2n,
con n = número de bits de la mantisa
Valores menores de n achican la LUT a costa de menos exactitudinicial en el resultado.
Por ejemplo, para una mantisa de 4 bits normalizada quedaría:
M = 23 = 8 entradas
0,1000
0,1001
0,1010
0,1011
0,1100
0,1101
0,1110
0,1111
Se puede reducir el tamaño...
Regístrate para leer el documento completo.