Escolar Documentos
Profissional Documentos
Cultura Documentos
Divisores
Paralelos,
Divisores
1. INTRODUCCIN
La operacin de divisin es ms compleja que las
operaciones de suma, resta o multiplicacin. Inicialmente en
algunos procesadores, la divisin es llevada a cabo mediante
rutinas de software, las cuales bsicamente realizan la divisin
como una secuencia de restas y desplazamientos. Sin
embargo, los procesadores de alto desempeo, disponen de
divisores implementados en hardware para incrementar la
velocidad de las operaciones aritmticas.
De otro lado, hace algunos aos era muy difcil realizar
diseos complejos, para volmenes pequeos o medianos de
produccin. Sin embargo, el vertiginoso avance de la
tecnologa permite realizar fcilmente diseos complejos y de
bajo costo, es decir, es posible disear sistemas embebidos
totalmente a la medida para una aplicacin dada, y an para
volmenes muy pequeos, usando dispositivos FPGAs.
En este contexto, los sistemas embebidos son cada da ms
utilizados para diferentes aplicaciones. Por lo tanto, los
principales bloques funcionales de un sistema embebido
deben ser optimizados para los diferentes parmetros de
diseo. Por ejemplo, en la compresin de video, el bloque
funcional que realiza la divisin debe ser de alto desempeo.
Sin embargo, en dispositivos porttiles para telefona celular,
los principales criterios de diseo son relacionados con el rea
2
del cociente como 0, y el dividendo se restaura sumndole de
nuevo el divisor, y entonces este divisor se acomoda para otra
resta [2]. El algoritmo con restauracin para la divisin se
puede entender mediante el ejemplo mostrado en la Figura 1.
Dividendo 11011001 (217), Divisor
1011 (11)
Cociente
10011 (19), Residuo 1000 (8)
10011
1011) 11011001
1011
0101
0000
1010
0000
10100
1011
10011
1011
1000
Cociente
Dividendo
Divisor
Dividendo reducido
Divisor 0 por ser mayor que el
dividendo reducido
Dividendo reducido
Divisor 0 por ser mayor que el
dividendo reducido
Dividendo reducido
Divisor desplazado
Dividendo reducido
Divisor desplazado
Residuo
3
cero (0), entonces se coloca un uno (1) en el cociente y se
resta el resultado con el divisor desplazado. Despus de
realizar N desplazamientos, si el bit MSB es uno (1), entonces
se suma el resultado y el divisor no es desplazado, pero si es
cero (0) no se hace ninguna operacin [4].
Dividendo
Cociente
1000 (8),
10 (2),
Divisor
Residuo
11 (3)
10 (2)
0010 Cociente
00011) 00001000
Dividendo
Resta (1er ciclo)
00011
111100
MSB = 1, entonces 0 en cociente y
se suma, desplazando el Divisor
Divisor desplazado (2do ciclo)
00011
111110 MSB = 1, entonces 0 en cociente y
se suma, desplazando el Divisor
Divisor desplazado (3do ciclo)
00011
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
Figura 3. Divisin binaria basada en el algoritmo sin restauracin.
(1)
(2)
= A. D + (B C ) + A.D (B C )
S = A B C ,
S = A,
si
si
D=0
D=1
(3)
(4)
Figura 6. Divisor paralelo con restauracin para N-bits
Estado0 :
Estado1:
Estado2:
Estado3:
(a)
4. RESULTADOS DE SIMULACIN
En esta seccin, se presentan los resultados de simulacin
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:
Los resultados de simulacin considerando la optimizacin
en velocidad y rea, son presentados en las Tabla I y II.
(b)
(c)
Area (# ALUTs)
917
995
875
1171
1049
Velocidad (Mhz)
21.1
11.9
20.1
14.7
55.8
(d)
Area (# ALUTs)
431
740
519
847
872
Velocidad (Mhz)
7.4
9.47
16.5
16.1
52.4
(e)
6
restauracin (b) con restauracin N bits (c) sin restauracin (d)
Altera (e) Altera con pipeline de 4 etapas
Area (# ALUTs)
120
139
358
Velocidad (Mhz)
302.5
263.9
313.28
Area (# ALUTs)
93
102
351
Velocidad (Mhz)
163.4
155.7
310.46
(a)
(b)
(c)
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.
[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
Small Lookup Table. IEEE Transactions on Computers. Vol.
56, No. 4. April 2004.