Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
del cociente como 0, y el dividendo se restaura sumndole de modificado (Bvariable inicial), el cual se obtiene detectando el
nuevo el divisor, y entonces este divisor se acomoda para otra bit ms significativo en uno (1) del divisor (en la posicin P) y
resta [2]. El algoritmo con restauracin para la divisin se desplazando este bit N-P veces hacia la posicin ms
puede entender mediante el ejemplo mostrado en la Figura 1. significativa (por ejemplo: divisor = 00001010 y Bvariable
inicial = 10100000). En la Figura 2, el bit mas significativo en
Dividendo 11011001 (217), Divisor 1011 (11) uno (1) del divisor es el bit en la posicin 4 (P4), el cual es
Cociente 10011 (19), Residuo 1000 (8) desplazado hacia la posicin 8 (P8). Luego, se compara el
Bvariable inicial con el dividendo, si el dividendo es mayor,
10011 Cociente se realiza la resta y se desplaza hacia la izquierda el registro
1011) 11011001 Dividendo que contiene el cociente con un uno (1), en caso contrario, no
1011 Divisor se realiza la resta y el registro del cociente se desplaza con un
0101 Dividendo reducido cero (0), esta iteracin (comparacin, resta, desplazamiento)
0000 Divisor 0 por ser mayor que el se realizara hasta que el valor de Bvariable sea menor que el
dividendo reducido valor del divisor (P+1 veces). En el ejemplo de la Figura 2, el
1010 Dividendo reducido divisor es 10 y una vez modificado se convierte en 160
0000 Divisor 0 por ser mayor que el (10100000), el cual es mucho mayor que 64 (01000000), por
dividendo reducido tanto la resta no se realiza y el registro del cociente se
10100 Dividendo reducido desplaza con un cero (0).
1011 Divisor desplazado En la segunda iteracin, el divisor se desplaza a la derecha
10011 Dividendo reducido una posicin y el nuevo valor del divisor es 80 (01010000), el
1011 Divisor desplazado cual es mayor que el dividendo, entonces la resta no se realiza
1000 Residuo y el registro del cociente se desplaza con un cero (0). Para la
Figura 1. Divisin binaria basada en el algoritmo con restauracin tercera iteracin, el divisor tendr un valor de 40 (00101000),
el cual es menor que el dividendo, entonces la resta se realiza
Como se observa en el ejemplo de la Figura 1, el algoritmo
y el registro del cociente se desplaza con un uno (1). En la
consiste en: Realizar una resta entre el dividendo y el divisor,
cuarta iteracin, el nuevo valor del divisor es 20 (00010100),
pero desde el bit ms significativo (MSB). Si el MSB del
el cual es menor que el obtenido de la resta anterior (24),
resultado es uno (1) entonces en el cociente se coloca un cero
entonces se realiza la resta y el registro del cociente se
(0) y se adiciona el siguiente bit del dividendo y se desplaza el
desplazara con un uno (1).
divisor, pero si el MSB del resultado es cero (0), entonces se
Las iteraciones terminan cuando se detecte que el valor de
coloca un uno (1) en el cociente, y se desplaza el divisor.
Bvariable es menor que el valor inicial del divisor, entonces el
Todo lo anterior se hace N (nmero de bits del divisor) veces.
valor del residuo es el resultado de la ultima resta. En el
ejemplo, el resultado de la ultima resta es 4.
2.2 Algoritmo de divisin con restauracin de N/N bits.
2.3 Divisor sin restauracin de 2N/N bits.
En este trabajo se propone una modificacin al algoritmo
anterior para poder realizar la operacin entre operandos de N
La principal consideracin para implementar en hardware
bits, el cual es presentado en la Figura 2.
divisores basados en el algoritmo sin restauracin es que
dados dos enteros N y D tal que D N < D, existen dos
enteros, Q y R que satisfacen la ecuacin: 2N= (2Q1) B + R.
Esta ecuacin puede ser re-escrita como: 2N + 2D = 2BQ + B
+ R.
Es conocido por el teorema de la divisin de enteros que,
dados dos enteros (2N + 2D) y 2D, se puede encontrar un
nico cociente Q y un nico residuo (B + R) que satisfagan la
ecuacin anterior y reflejando la propiedad al residuo (D R
< D). En conclusin, la principal consideracin para este
algoritmo es que los dos nmeros (enteros positivos)
satisfagan la siguiente condicin: 0 N < D [3].
Es posible mejorar la divisin basada en el algoritmo sin
restauracin evitando restaurar el dividendo despus de una
resta sin xito, es decir, si el resultado es negativo.
En la Figura 3 se muestra la divisin basada en el algoritmo
sin restauracin. Esta figura presenta un ejemplo en el cual se
observa que en el primer ciclo se realiza la resta entre el
Figura 2. Divisin binaria basada en la modificacin del dividendo y el divisor, pero desde el bit MSB. Si el bit MSB
algoritmo con restauracin para operndos de N bits del resultado es uno (1), entonces se coloca un cero (0) en el
cociente y se suma el resultado con el divisor desplazado; si es
El algoritmo consiste en: inicialmente, se obtiene el divisor
3
0010 Cociente
00011) 00001000 Dividendo Figura 4. Divisor paralelo con restauracin para N=3 bits
00011 Resta (1er ciclo)
111100 MSB = 1, entonces 0 en cociente y El circuito calcula los cocientes Q = 0.Q0Q1Q2 y los
se suma, desplazando el Divisor residuos R = 0.R0R1R2R3R4R5 de N=0.N0N1N2N3N4N5 para
00011 Divisor desplazado (2do ciclo) D=0.D0D1D2 bajo la premisa que N < D. Por ejemplo, para 3
111110 MSB = 1, entonces 0 en cociente y bits, N=0.100011 y D=0.101, entonces Q=0.111 y
se suma, desplazando el Divisor R=0.000000.
00011 Divisor desplazado (3do ciclo)
000010 MSB = 0, entonces 1 en cociente y
se resta, desplazando el Divisor
00011 Divisor desplazado (4to ciclo)
11111 MSB = 1, entonces 0 en coc. y se
suma el Divisor. Si MSB = 0,
00011 entonces 1 en cociente y no se hace
ninguna operacin.
00010 Residuo
3. ARQUITECTURAS HARWARE PARA LA DIVISION 3.1.2 Divisor paralelo con restauracin de N/N bits
En esta seccin se presentan las arquitecturas
implementadas en hardware para los divisores paralelos y Una arquitectura para el divisor basado en el algoritmo de
secuenciales de 2N/N y N/N bits, los cuales son basados en restauracin modificado se muestra en la Figura 6. En este
los algoritmos con y sin restauracin. caso, se utiliza la celda bsica que muestra en la Figura 7.
S = A B C , si D=0 (3)
S = A, si D=1 (4)
4. RESULTADOS DE SIMULACIN
En esta seccin, se presentan los resultados de simulacin (b)
para los divisores implementados en hardware para N=16 bits.
En este caso, los parmetros de diseo tenidos en cuenta son:
velocidad o frecuencia mxima y rea o nmero de ALUTs
(Arimethic Look-Up Table). El dispositivo utilizado es el
Stratix II EP2S15F484C3 de Altera y la herramienta de
sntesis usada fue QUARTUS II 4.1sp2 Web Full Edition
4.1 Divisores Paralelos:
(c)
Los resultados de simulacin considerando la optimizacin
en velocidad y rea, son presentados en las Tabla I y II.
restauracin (b) con restauracin N bits (c) sin restauracin (d) 5. Conclusiones y Trabajo Futuro
Altera (e) Altera con pipeline de 4 etapas
Este trabajo presenta el diseo de divisores paralelos y
4.2 Divisores Secuenciales secuenciales de N/N bits y presenta una comparacin entre las
Los resultados de simulacin muestran el resultado arquitecturas en hardware de divisores paralelos y
obtenido de la divisin considerando optimizacin en secuenciales de 2N/N bits. Los divisores paralelos y
velocidad y rea, son presentados en las Tabla III y IV. Para el secuenciales, fueron diseados usando QUARTUS II versin
caso del divisor con restauracin de N/N-bits, donde pos es 4.1sp2 y las arquitecturas fueron sintetizadas sobre el Stratix
la posicin del bit ms significativo en uno (1) del divisor. II. EP2S15F484C3.
En los casos donde el rea y/o velocidad sean criterios de
TABLA III. DIVISORES SECUENCIALES OPTIMIZADOS PARA VELOCIDAD diseo primordial, el uso de la megafuncin lpm_divide de
Algoritmo Area (# ALUTs) Velocidad (Mhz) Altera para implementar la divisin no es la ms adecuada.
Con restauracin 2N-N 120 302.5
Sin Restauracin 2N-N 139 263.9
Los divisores paralelos con y sin restauracin, siempre
Con restauracin N-N 358 313.28 utilizan menor rea, que la megafuncin lpm_divide y los
divisores secuenciales, presentan una ventaja con respecto a
TABLA IV. DIVISORES SECUENCIALES OPTIMIZADOS PARA AREA los paralelos, utilizan poca rea y trabajan a mayor velocidad
Algoritmo Area (# ALUTs) Velocidad (Mhz) para la seal de reloj. Sin embargo, el resultado de la divisin
Con restauracin 2N-N 93 163.4 es obtenido despus de un nmero de ciclos de reloj.
Sin Restauracin 2N-N 102 155.7 El divisor implementado a partir de la megafuncin
Con restauracin N-N 351 310.46
lpm_divide usando arquitectura pipeline de 4 etapas, presenta
el mejor desempeo desde el punto de vista de velocidad. Sin
Desde la Tabla III podemos concluir que la embargo, presenta la desventaja que usa una gran cantidad de
implementacin en hardware del divisor secuencial con rea.
restauracin es casi 40Mhz (20%) ms rpida que la Los resultados de algunas arquitecturas de divisores
implementacin con el algoritmo sin restauracin, con un paralelos muestran que son una opcin viable para sistemas
ahorro de rea del 18%. Los datos de la Tabla IV, nos embebidos, con bajo consumo de potencia y que justifican la
muestran una reduccin en la velocidad de casi el 60% de la escasa perdida de velocidad con respecto a la megafuncin
velocidad obtenida en la optimizacin para velocidad, con un lpm_divide con pipeline de 4 etapas.
ahorro de rea de aproximadamente el 25%, siendo la mejor El trabajo futuro, ser orientado a disear divisores de alta
solucin la que utiliza el algoritmo con restauracin. Los velocidad considerando nuevos algoritmos y arquitecturas
resultados de simulacin son mostrados en la Figura 17. tales como divisores basados en el algoritmo SRT [7] y en
usar pequeas tablas de bsqueda [8].
6. AGRADECIMIENTOS
Este trabajo ha sido patrocinado por Altera Corporation a
travs del Programa Universitario. Los autores dan especial
agradecimientos a Mrs. Ralene Marcoccia de Altera
Corporation.
(a)
Referencias
[1] V.C. Hamacher, Z.G. Vranesic y S.G.Zaky, Organizacin de
Computadoras, Mc Graw Hill.
[2] W. Stallings, Organizacin y Arquitectura de Computadores,
Prentice Hall.
[3] M. Davio, Digital Systems with Algorithm Implementation, John
Wiley & Sons.
[4] M. Morris Mano. Arquitectura de Computadoras, Prentice Hall,
Prentice Hall.
(b) [5] lpm_divide Megafunction User Guide. Altera Corporation.
September 2004
[6] D.A. Paterson y S.L. Hennessy, Computer Organization and
Design: the Hardware / Software Interface, Morgan Kaufmann
Publishers.
[7] David L. Harris, Stuart F. Oberman. Mark A. Horowitz. SRT
Division Architectures and Implementations. 2000.
[8] Jong-Chul Jeong, Woo-Chan Park, Woong Jeong, Tack-Don
Han, Moon-Key Lee, A Cost-Effective Pipeline Divider with a
(c) Small Lookup Table. IEEE Transactions on Computers. Vol.
Figura 17. Resultados de simulacin del divisor secuencial (a) 56, No. 4. April 2004.
con restauracin (b) sin restauracin (c) con restauracin N bits