TEMA 5 ARITMÉTICA DE ALTA VELOCIDAD - uv.es · Con lo cual el circuito sumador con acarreo...

17
Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 25/10/2010 TEMA 5 ARITMÉTICA DE ALTA VELOCIDAD

Transcript of TEMA 5 ARITMÉTICA DE ALTA VELOCIDAD - uv.es · Con lo cual el circuito sumador con acarreo...

Page 1: TEMA 5 ARITMÉTICA DE ALTA VELOCIDAD - uv.es · Con lo cual el circuito sumador con acarreo adelantado para números de 4 bits queda como aparece a continuación: ... podemos encontrar

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

TEMA 5

ARITMÉTICA DE ALTA VELOCIDAD

Page 2: TEMA 5 ARITMÉTICA DE ALTA VELOCIDAD - uv.es · Con lo cual el circuito sumador con acarreo adelantado para números de 4 bits queda como aparece a continuación: ... podemos encontrar

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

5. Procesadores Aritméticos. 5.1. Aritmética en coma fija de alta velocidad.

Bibliografía recomendada:

“Computer Arithmetic Algorithms” by Israel Koren.

“Digital Arithmetic” (The Morgan Kaufmann Series in Computer Architecture and Design) by Milo

D. Ercegovac

“Computer Arithmetic: Algorithms and Hardware Designs” by Behrooz Parhami

“Elementary Functions: Algorithms and Implementation” by Jean-Michel Muller

“Advanced Computer Arithmetic Design” by Michael J. Flynn

Contenido del libro:

1. Review of Basic Number Representations and

Arithmetic Algorithms

2. Two-Operand Addition

3. Multi-Operand Addition

4. Multiplication

5. Division by Digit Recurrence

6. Square Root by Digit Recurrence

7. Reciprocal, Division, Reciprocal Square Root and

Square Root by Iterative Approximation

8. Floating-Point Representation, Algorithms, and

Implementations

9. Digit-Serial Arithmetic

10. Function Evaluation

11. CORDIC Algorithm and Implementations

Milo D. Ercegovac

Contenido del libro:

Israel Koren http://www.ecs.umass.edu/ece/koren/arith/simulator/

Page 3: TEMA 5 ARITMÉTICA DE ALTA VELOCIDAD - uv.es · Con lo cual el circuito sumador con acarreo adelantado para números de 4 bits queda como aparece a continuación: ... podemos encontrar

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

5.1.1 Sumadores con anticipación de Acarreo.

El sumador paralelo de n bits que se ha mostrado hasta ahora, tiene un nivel de retardo de 2*n puertas, pues

necesita 2*n etapas de puertas lógicas para que las salidas queden completamente estabilizadas, al tener que

calcular y propagar los acarreos entre todos los sumadores completos, como se muestra en la figura

siguiente:

Pero existen otras implementaciones para ganar rapidez en el cálculo del resultado, que consisten en generar

el acarreo para cada etapa sin esperar de que llegue de etapas anteriores, a este método se le llama

anticipación de acarreo.

En el caso anteriormente visto el acarreo debía recorrer todas las etapas sumadoras para dar el

resultado correcto, esta nueva implementación se basa en la generación adelantada del acarreo, circuito que

se suele denominar anticipador de acarreo. Para ello se definen dos funciones lógicas g y p:

Generador de acarreo: gi = ai ·bi

Propagador de acarreo: pi = ai + bi

La función g informa de que en la etapa i se ha producido un acarreo. La función p informa que un

acarreo de etapa anterior será propagado. Aplicando estas fórmulas al cálculo del resultado de la suma y el

acarreo para cada etapa, tenemos que:

ci = ci-1 · pi + gi

si = pi + ci-1

y desarrollando para cada acarreo obtenemos:

c0 = g0 + c-1 · p0

c1 = g1 + g0 · p1 + c-1 · p0 · p1

c2 = g2 + g1 · p2 + g0 · p1 · p2 + c-1 · p0 · p1 · p2

c3 = g3 + g2 · p3 + g1 · p2 · p3 + g0 · p1 · p2 · p3 + c-1 · p0 · p1 · p2 · p3

. . .

ci = gi + gi-1 · pi + ...+ g0 · p1 · p2 · ... · pi + c-1 · p0 · p1 · ... · pi

La función p nos da una noción de si por el bit considerado se puede transmitir un acarreo, mientras

que g nos informa de si en ese bit se produce un acarreo. De esta forma es posible obtener todos los acarreos

en el tiempo de tres retardos de puerta lógica después de que los operandos y el primer acarreo estén

disponibles, el primero de los retardos vendrá dado por el cálculo de g y p y dos para cada acarreo. Para

obtener el resultado además tendremos que esperar dos retardos más para calcular s. Así independientemente

del número de bits a sumar el tiempo de espera total para obtener la suma será siempre de cinco retardos de

Page 4: TEMA 5 ARITMÉTICA DE ALTA VELOCIDAD - uv.es · Con lo cual el circuito sumador con acarreo adelantado para números de 4 bits queda como aparece a continuación: ... podemos encontrar

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

puerta lógica. En el caso del sumador paralelo de n bits era de 2*n retardos de puerta, ya que cada sumador

tenía dos retardos y el acarreo debía recorrer n sumadores.

Lo podemos ver en la figura siguiente:

Con lo cual el circuito sumador con acarreo adelantado para números de 4 bits queda como aparece a

continuación:

Un problema práctico que puede aparecer es el hecho de que las puertas lógicas tienen un número

limitado de entradas. La expresión ci+1 requiere i+2 entradas al mayor término AND e i+2 al OR. Por lo

general el número de entradas está restringido a 5 como máximo.

Page 5: TEMA 5 ARITMÉTICA DE ALTA VELOCIDAD - uv.es · Con lo cual el circuito sumador con acarreo adelantado para números de 4 bits queda como aparece a continuación: ... podemos encontrar

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

Veamos un esquema de cómo quedaría el diseño mostrando todos los niveles de puertas lógicas:

Otro diseño equivalente es el que se muestra a continuación:

Page 6: TEMA 5 ARITMÉTICA DE ALTA VELOCIDAD - uv.es · Con lo cual el circuito sumador con acarreo adelantado para números de 4 bits queda como aparece a continuación: ... podemos encontrar

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

Y si nos vamos a los fabricantes de circuitos integrados, podemos encontrar el SN54F283 que es un sumador

completo de 4 bits con acarreo adelantado (Fast-Carry). Este es su diseño:

Page 7: TEMA 5 ARITMÉTICA DE ALTA VELOCIDAD - uv.es · Con lo cual el circuito sumador con acarreo adelantado para números de 4 bits queda como aparece a continuación: ... podemos encontrar

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

P1): Realizar la tabla de tiempos de un sumador de números de 8 bits que utilizan un nivel de

anticipación a partir de concatenar dos sumadores de 4 bits con anticipación de acarreo. A continuación

se muestra su esquema.

T1

T2

T3

T4

T5

T6

Page 8: TEMA 5 ARITMÉTICA DE ALTA VELOCIDAD - uv.es · Con lo cual el circuito sumador con acarreo adelantado para números de 4 bits queda como aparece a continuación: ... podemos encontrar

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

P2): Realizar la tabla de tiempos de un sumador de números de 16 bits que utilizan un nivel de

anticipación a partir de concatenar cuatro sumadores de 4 bits con anticipación de acarreo. A

continuación se muestra su esquema.

T1

T2

T3

T4

T5

T6

T7

T8

Page 9: TEMA 5 ARITMÉTICA DE ALTA VELOCIDAD - uv.es · Con lo cual el circuito sumador con acarreo adelantado para números de 4 bits queda como aparece a continuación: ... podemos encontrar

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

Sumador con anticipación de acarreo de 16 bits y dos niveles de anticipación.

Si usamos cuatro de estos sumadores conectados en cascada, como en el caso del sumador paralelo de 4 bits,

tenemos un sumador de 16 bits que requiere un tiempo de retraso total de 10 retrasos de puerta, ya que se

requiere un retraso para g y p, dos por cada c4, c8, c12, c15 y unos más para las sumas del último bloque de 4

bits. Veamos lo en la figura siguiente:

Además este tipo de sumador se puede acelerar aún más con la técnica del realizar un segundo nivel de

anticipación. Para ello definimos dos Gk* y Pk

* donde k indica el bloque de 4 bits que genera estas señales.

P0* = p3p2p1p0

G0* = g3 + p3g2 + p3p2g1 + p3p2p1g0

Dicho con otras palabras, si se dice gi y pi determina si una etapa i de bits genera o propaga un

acarreo o no, entonces Gk* y Pk

* determinan si el bloque k genera o propaga otro acarreo, o no. Si se dispone

de estas nuevas funciones, no es necesario esperar que los acarreos se propaguen en cascada a través de

bloques para la generación de los nuevos acarreos. Veámoslo:

En la figura siguiente apreciamos como cambia el primer nivel de anticipación para calcular las funciones p*

y g*. Desaparece el cálculo del acarreo de salida de bloque (el C3 de la figura de la derecha).

c3 = G0* + P0

* c-1

c7 = G1* + P1

* G0

* +P1

* P0

* c-1

c11 = G2* + P2

* G1

* +P2

* P1

* G0

* + P2

* P1

* P0

* c-1

c15 = G3* + P3

* G2

* +P3

* P2

* G1

* + P3

* P2

* P1

* G0

* + P3

* P2

* P1

* P0

*c-1

Page 10: TEMA 5 ARITMÉTICA DE ALTA VELOCIDAD - uv.es · Con lo cual el circuito sumador con acarreo adelantado para números de 4 bits queda como aparece a continuación: ... podemos encontrar

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

y en la siguiente imagen vemos como quedan definidas las funciones de los acarreos anticipados de bloque

de 4 bits:

Con todo esto, el diseño por bloques del sumador de 16 bits con dos niveles de anticipación queda

como se muestra en la figura siguiente:

Page 11: TEMA 5 ARITMÉTICA DE ALTA VELOCIDAD - uv.es · Con lo cual el circuito sumador con acarreo adelantado para números de 4 bits queda como aparece a continuación: ... podemos encontrar

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

Para construir un sumador rápido de 16 bits se puede utilizar cuatro módulos de sumadores

rápidos de 4 bits y dos niveles de anticipación, tal como aparece en la figura siguiente:

Completar la tabla lateral con las funciones lógicas.

Page 12: TEMA 5 ARITMÉTICA DE ALTA VELOCIDAD - uv.es · Con lo cual el circuito sumador con acarreo adelantado para números de 4 bits queda como aparece a continuación: ... podemos encontrar

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

Ejercicio P3: Realizar la tabla de tiempos de un sumador de números de 32 bits y de otro de 64 bits que

utilizan dos niveles de anticipación. Realización en puertas lógicas de todo el circuito. A continuación se

muestra el diseño detallado del de 32 bits.

En la figura siguiente se aprecia mejor el detalle del circuito. Es imprescindible realizar los circuitos con este

detalle si queremos saber con precisión en que instante se generan las señales de salida.

Page 13: TEMA 5 ARITMÉTICA DE ALTA VELOCIDAD - uv.es · Con lo cual el circuito sumador con acarreo adelantado para números de 4 bits queda como aparece a continuación: ... podemos encontrar

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

Observar como el segundo bloque de 16 bits comienza a generar las salidas a partir de disponer de acarreo

C15, pero las señales Pi, Gi, Pi* y Gi* las tiene activadas a la vez que el primer bloque de sumador de 16

bits.

Page 14: TEMA 5 ARITMÉTICA DE ALTA VELOCIDAD - uv.es · Con lo cual el circuito sumador con acarreo adelantado para números de 4 bits queda como aparece a continuación: ... podemos encontrar

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

Page 15: TEMA 5 ARITMÉTICA DE ALTA VELOCIDAD - uv.es · Con lo cual el circuito sumador con acarreo adelantado para números de 4 bits queda como aparece a continuación: ... podemos encontrar

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

Ejercicio P4: Realizar la tabla de tiempos de un sumador de números de 64 bits que utiliza tres niveles de

anticipación. Además mostrar las funciones del tercer nivel de anticipación y la realización en puertas

lógicas de todo el circuito. (para este último apartado vendrá bien fotocopiar los circuidos vistos con anterioridad y

replicarlos).

P**0 =

P**1 =

P**2 =

P**3 =

g**0 =

g**1 =

g**2 =

g**3 =

Page 16: TEMA 5 ARITMÉTICA DE ALTA VELOCIDAD - uv.es · Con lo cual el circuito sumador con acarreo adelantado para números de 4 bits queda como aparece a continuación: ... podemos encontrar

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

Restador.

En el caso de la resta podemos utilizar un restador elemental y actuar igual que para el caso de la

suma, es decir, a continuación ir ampliando mediante n circuitos restadores elementales. Pero ya que hemos

introducido el sumador parece más útil utilizarlo para realizar la resta también esto es así debido a:

A - B = A - B + 2n - 2

n

o bien

A - B = A + (2n - B) - 2

n

Lo que supone que para realizar la resta se debe realizar el complemento a dos de B, sumar el valor

de A y restar 2n. Para realizar el complemento a dos de B debemos realizar la negación lógica de B y sumar

uno al resultado. La negación se puede realizar mediante una etapa XOR y la suma introduciendo un 1 en el

primer acarreo c-1. Por otro lado, restar 2n al resultado sería restar uno al bit sn inexistente por lo cual lo único

que debemos hacer es ignorar el bit de acarreo cn-1 producido en la suma. Así el esquema del sumador

restador se muestra a continuación, la entrada s/r=0 realiza operación de suma y s/r=1 es operación de resta:

-

Sumador restador.

Problema: completa la siguiente Tabla de tiempos.

Nº de bits Sumadores completos con

Acarreo propagado

1 Nivel de

Anticipación

2 Niveles 3 Niveles

4 8 niveles de puertas lógicas 4 n.p.l. - -

8 16 n.p.l. 6 n.p.l. - -

16 32 n.p.l. 10 n.p.l. 8 n.p.l.

32 64 n.p.l.

48 96 n.p.l.

64 128 n.p.l.

Page 17: TEMA 5 ARITMÉTICA DE ALTA VELOCIDAD - uv.es · Con lo cual el circuito sumador con acarreo adelantado para números de 4 bits queda como aparece a continuación: ... podemos encontrar

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática.

Vicente Arnau Llombart 25/10/2010

Ejemplo:

0 0 1 0

+ 1 0 1 1

1 1 0 1

En complemento a 2 la operación anterior sería: (1011)=-5, (0010)=2 y resultado (1101)=-3.

Para el caso de números sin signo sería: (1011)=11, (0010)=2 y resultado (1101)=13.