ELO311 Estructuras de Computadores Digitales Unidad...

38
ELO311 Estructuras de Computadores Digitales Unidad Aritmética Tomás Arredondo Vidal Este material está basado en: material de apoyo del texto de David Patterson, John Hennessy, "Computer Organization & Design", (segunda y tercera edición), Morgan Kaufmann, CA. 2005 material del curso anterior ELO311 del Prof. Leopoldo Silva www.wikipedia.org

Transcript of ELO311 Estructuras de Computadores Digitales Unidad...

Page 1: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

ELO311Estructuras de Computadores Digitales

Unidad Aritmética

Tomás Arredondo Vidal

Este material está basado en:

�material de apoyo del texto de David Patterson, John Hennessy, "Computer Organization & Design", (segunda y tercera edición), Morgan Kaufmann, CA. 2005

�material del curso anterior ELO311 del Prof. Leopoldo Silva

�www.wikipedia.org

Page 2: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Sumador sin Signo

�Dos números sin signo, con ancho tres.

�Con A0 y B0 los bits menos significativos.

�Carry-in, que es una entrada del sumador, igual a cero.

A2 A1 A0

+ B2 B1 B0

Co S2 S1 S0

Page 3: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Sumador sin Signo

�Se realizan las sumas binarias, para cada par de valores posibles para las entradas.

�Se forma una tabla, en la que se han indicado los valores de los operandos de entrada en decimal y binario.

�Se produce un resultado incorrecto cuando los bits disponibles para el resultado no pueden acomodarlo (overflow).

Page 4: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Sumador sin Signo

�Ejemplo: Operandos de largo tres A2A1A0 y B2B1B0

Resultado: CoS2S1S0

�La señal Carry-out, que es una salida del sumador nos permite detectar un resultado incorrecto (overflow) para la suma de enteros sin signo.

Page 5: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Sumas y Restas con Signo

�Se forma una tabla, en la que se han indicado los valores de los operandos de entrada en decimal y binario.

�Dos números con signo, en complemento a dos

�Con operandos de largo 3, no pueden representarse los menores que -4 y los mayores que +3.

�Se produce un resultado incorrecto cuando el signo de ambos operandos es diferente del signo del resultado (overflow).

�El Carry-out, no determina esta condición, ya que existen resultados correctos que tienen Carry-out igual a uno.

Page 6: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Sumas y Restas con Signo (cont)

�Ejemplo: Operandos de largo tres A2A1A0 y B2B1B0

Resultado: CoS2S1S0

Overflow: Resultados con signo distinto de ambos operandos

Overflow: Resultados con signo distinto de ambos operandos

Page 7: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Sumas y Restas con Signo (cont)

�La ecuación lógica para el overflow, puede obtenerse en la última etapa del sumador con los bits de signo de los operandos (A2, B2) y el bit de signo del resultado (S2).

ov = overflow = A2 B2 S2' + A2' B2' S2

�Para un sumador de 32 bits:

ov = overflow = A31 B31 S31' + A31' B31' S31

Page 8: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Comparaciones

�Se forma una tabla para comparar dos números con signo, para hacerlo se efectuará la resta entre ellos.

�La condición se denomina LT (less than).

�Se ingresan al sumador un número (A), y el complemento uno del otro (~B).

�Se fija Carryin en uno para que la situación A = B entregue un resultado deseado (e.g. 1000).

Page 9: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Comparaciones (cont)

�Ejemplo: Operandos de largo tres A2A1A0 y B2B1B0

Resultado: CoS2S1S0

�La zona A < B, se encuentra sobre la diagonal principal de la matriz.

�La condición A = B, es la diagonal principal, en la cual todos los bits del resultado son ceros, y uno la reserva de salida.

-4 -3 -2 -1 0 1 2 3

Zona deOverflow

Zona deOverflow

Page 10: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Comparaciones (cont)

�Existen dos zonas triangulares en las que se produce overflow.�Una en que los signos de las entradas al sumador (no los

operandos) son ambos negativos, y el resultado es positivo.

�La otra zona triangular caracteriza operandos de entrada al sumador positivos y signo del resultado es negativo.

�A es menor que B, si el signo del resultado es menos y no hay overflow o si el signo del resultado es positivo y se produce overflow.

�Entonces la ecuación lógica puede escribirse:

LT = (A < B) = S2 ov' + S2' ov

Page 11: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Comparaciones de Números sin Signo

�Condición less than unsigned (LTU).

�Entonces la ecuación lógica para la condición LTU es:�LTU = ~Cout

Page 12: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Generación de Condiciones

�Para un sumador de 32 bits, se puede construir la siguiente tabla de verdad para las condiciones, en función de las entradas A31, B31 y el Carry-in a esa etapa, C31.

1 0 1 1 1 1 1

1 1 0 1 0 1 1

0 0 0 1 1 0 1

1 0 1 0 0 0 1

0 0 0 1 1 1 0

1 0 1 0 0 1 0

0 1 1 0 1 0 0

0 0 0 0 0 0 0

LT OvS31 CoC31 B31A31

Page 13: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Unidad Aritmética

�Las condiciones pueden escribirse en función de las entradas a la última etapa del sumador:

ov = ( C31 ⊕ Co ) = C31Co' + C31'Co = (C31 diferente de Co)

LT = (A < B ) = ( S31 ⊕ ov ) = A31C31' + B31C31' + A31B31

Zero = ( A == B) = (S2 + S1 + S0)'

GE = ( A >= B) = ( A < B )' = (LT)' = greater or equal

NZ = ( A != B) = Zero' = (S31+ ...+ S2 + S1 +S0 ) = not zero

GT = ( A > B ) = (A >= B) & NZ = greater than

LE = ( A <= B ) = (A > B) ' = ( A < B) | Zero = less or equal

Page 14: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Arquitectura de una Unidad Aritmética

�Dispondremos de cuatro operaciones: and, or, suma, resta y una instrucción de comparación.

�Operandos de 32 bits, y condiciones para overflow.

�Se decide emplear una operación de set on less, que deje un uno en el bit menos significativo del resultado si el operando A es menor que el operando B.

�Puede plantearse un diseño modular. El siguiente esquema, basado en multiplexores, logra cumplir las especificaciones dadas.

Page 15: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Arquitectura de una Unidad Aritmética (cont)

�Para una etapa cualquiera.

�Si Binvert y CarryIn son unos, y la operación es suma, se logra obtener la resta de A con B.

Page 16: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Arquitectura de una Unidad Aritmética (cont)

�Etapa del bit más significativo.

Page 17: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

ALU (cont)

�Esquema general.

Page 18: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Arquitectura de una Unidad Aritmética (cont)

�Modificación para tratar números con y sin signo.�slt usaría CLT=0

�sltu usaría CLT=1

Page 19: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Análisis de un Sumador Binario

�Para un sumador completo se tiene la siguiente tabla de verdad:

Page 20: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Análisis de un Sumador Binario (cont)

�Leyendo del mapa se obtienen, minimizando en dos niveles:�Ci + 1 = Ai Bi + (Ai +Bi) Ci

�Si = Ci’(AiBi’+Ai’Bi) + Ci( Ai’Bi’ +AiBi)

�Como: (AiBi’+Ai’Bi) = Ai ⊕ Bi

�Y su complemento es:

(Ai ⊕ Bi)’= (AiBi’+Ai’Bi)’ = (Ai’+Bi)(Ai+Bi’) = ( Ai’Bi’ +AiBi)

�Se puede escribir en forma más compacta: Si = Ci ⊕ Ai ⊕ Bi

Page 21: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Análisis de un Sumador Binario (cont)

�Empleando:�Gi = Ai Bi

�Pi = Ai + Bi

�Pueden escribirse como:�Ci+1 = Gi + Pi Ci

�Si = Ci ⊕ ( Gi’ Pi)

�El diagrama muestra que la suma binaria puede realizarse mediante las señales Gi, Pi y Ci.

�Esta forma se emplea en el diseño del sumador de cuatro bits, con generación adelantada de la reserva, 74LS283.

Page 22: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Análisis de un Sumador Binario (cont)�Para efectuar un análisis más detallado de los retardos

combinacionales en un sumador se asumirá que la señal Si se genera en dos niveles, a partir de Ai, Bi y Ci.

�Y que la reserva de salida se genera empleando las señales Gi, Pi y Ci, en tres niveles.

�La organización de un sumador con propagación ondulada de la reserva (ripple) produce las salidas con los siguientes retardos de propagación medidos en unidades de retardo a través de una compuerta:Etapa: i i = 2 i = 1 i = 0

Page 23: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Análisis de un Sumador Binario (cont)

�Todos los tiempos se miden respecto al instante en que están estables las entradas Ai, Bi y C0.�S0 se obtiene con retardo 2, C1 con retardo 3.

�S1 se obtiene después de 5 unidades, C2 después de 6 unidades. Ya que desde las entradas A1, B1 y C1, C2 se genera después de tres unidades, y S1 después de 2 unidades.

�S2 se obtiene después de 8 unidades, C3 después de 9 unidades.

�Si se obtiene después de 3*i +2 unidades, Ci+1 después de 3*i+3 unidades.

�Si se hubieran generado las reservas y las sumas en dos niveles, se tiene que tanto las suma como la reserva de salida de la etapa i-ésima se obtienen en 2*i+2 retardos de propagación de una compuerta.

�Para el caso de 32 bits se tendrán 64 retardos.

Page 24: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

ALU: Generador de Reserva Adelantada

�Se desea reducir el número de niveles para propagar la reserva.

�Se plantea un diseño modular agrupando 4 sumadores completos y generando las reservas (C1, C2, C3 y C4) en dos niveles.

�A continuación se desarrolla, en forma analítica, el diseño lógico

Page 25: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

ALU: Generador de Reserva Adelantada (cont)

�En las ecuaciones de las reservas de los sumadores completos se efectúan los siguientes reemplazos:�Gi = Ai Bi

� Genera reserva de salida independiente de la reserva de entrada. Si Gi es 1, entonces Ci+1 es uno (se genera reserva)

�Pi = Ai + Bi� Propaga reserva de entrada hacia la reserva de salida. Si Pi es

0, no se propaga.

Page 26: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

ALU: Generador de Reserva Adelantada (cont)

�Se plantean las ecuaciones para las reservas en función de Ai, Bi y Ci.

�Luego se reemplaza la expresión para C1 en la expresión para C2; a su vez ésta se reemplaza en la expresión de C3, finalmente se reemplaza esta última en la expresión para C4, resultan:�C1 = A0B0 +A0 C0 +B0C0 = G0 + C0 P0

�C2 = A1B1 +A1 C1 +B1C1 = G1 + C1 P1 = G1 + (G0 + C0 P0) P1

�C3 = A2B2 +A2 C2 +B2C2 = G2 + C2 P2 = G2 + (G1 +(G0 + C0 P0) P1) P2

�C4 = A3B3 +A3 C3 +B3C3 = G3 + C3 P3 = G3 + (G2 + (G1 +(G0 + C0 P0) P1) P2 )P3

Page 27: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

ALU: Generador de Reserva Adelantada (cont)

�Expresando en función de Gi, Pi y C0 se obtienen:�C1 = G0 + C0 P0

�C2 = G1 + G0 P1 + C0 P0 P1

�C3 = G2 + G1 P2 + G0 P1 P2 + C0 P0 P1 P2

�C4 = G3 + G2 P3 + G1 P2 P3 + G0 P1 P2 P3 + C0 P0 P1 P2 P3 = G + C0 P

�Se diseña un módulo que tenga como entradas Gi, Pi, C0 y como salidas: C1, C2, C3, G y P.

�Las ecuaciones anteriores se han integrado en una sola pastilla (74182).

�Notar que no se genera C4, sino G y P.

Page 28: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

ALU: Generador de Reserva Adelantada (cont)

�Diagrama

(

Page 29: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

ALU: Generador de Reserva Adelantada (cont)

�Respecto del instante en que se tienen estables las entradas Ai, Bi y C0 se tienen, expresando en unidades de retardo de propagación a través de una compuerta:�S0 se obtiene después de 2 unidades.

�P0 y G0 después de una unidad.

�C1 después de 3 unidades.

�S1 se obtiene después de 5 unidades (el tiempo de C1 más los dos niveles del sumador).

�P1 y G1 después de una unidad.

�C2 después de 3 unidades (lo genera la unidad de adelanto).

Page 30: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

ALU: Generador de Reserva Adelantada (cont)

�Respecto del instante en que se tienen estables las entradas Ai, Bi y C0 se tienen, expresando en unidades de retardo de propagación a través de una compuerta (cont):�S2 se obtiene después de 5 unidades.

�P2 y G2 después de una unidad.

�C3 después de 3 unidades.

�S3 se obtiene después de 5 unidades.

�P3 y G3 después de una unidad.

�P se obtiene después de dos unidades y G se obtiene después de 3 unidades.

�C4 se obtiene después de 4 unidades, ya que se genera a partir de G + C0P.

Page 31: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

ALU: Generador de Reserva Adelantada (cont)

�Un resumen del sumador de 4 bits con un nivel de generación adelantada de las reservas, se muestra a continuación:

Page 32: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

ALU: Generador de Reserva Adelantada (cont)

�Sumador de mayor orden�Una posibilidad de construir un sumador mayor es agrupar

bloques similares al anterior y propagar la reserva en forma ondulada entre los sumadores completos de 4 bits:

Page 33: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

ALU: Generador de Reserva Adelantada (cont)

�Otra posibilidad es adelantar la reserva para los cuatro grupos de sumadores de cuatro bits.�Esto consiste en generar a partir de C0 y las señales P y G

de cada sumador de 4 bits, las reservas C4, C8, C12 y C16, mediante la red combinacional de generación de reservas adelantadas.

�Ejemplo: sumador de 16 bits con dos niveles de adelanto de reserva

Page 34: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

ALU: Generador de Reserva Adelantada (cont)�Diagrama: � Resumen de los

tiempos:

Page 35: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

ALU: Generador de Reserva Adelantada (cont)

�Si se forma un sumador de 32, con propagación ondulada de la reserva entre los sumadores de 16 bits, se logra:

�La solución anterior logra efectuar la suma en 16 retardos y la reserva de salida en 12.

Page 36: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Desplazador combinacional (shifter)

�Las operaciones de corrimiento requieren una unidad combinacional para efectuar los desplazamientos.

�En corrimientos lógicos, a la izquierda o a la derecha se rellenan con ceros las posiciones que se incorporan al registro por la derecha o izquierda respectivamente.

�En corrimientos aritméticos, sólo a la derecha, se rellenan con el bit del signo las posiciones que se incorporan al registro por la derecha.

�Instrucciones MIPS de corrimiento inmediatos y variables:

shift left logical inmediato: sll $t1, $t2, 10 ; $t1 = $t2 << 10

shift right logical inmediato: srl $t1, $t2, 8

shift right arithmetic inmediato: sra $t1,$t2, 5

shift left logical variable: sllv $t1, $t2, $t3 ; $t1 = $t2 << $t3.

Page 37: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Desplazador combinacional (shifter) (cont)

�A continuación se muestra un esquema, empleando muxde dos vías, para desplazar hacia la derecha, empleando redes combinacionales

�A corresponde al operando de entrada, S al corrimiento y R al resultado:

Page 38: ELO311 Estructuras de Computadores Digitales Unidad Aritméticaprofesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/elo311... · Análisis de un Sumador Binario (cont) Para

Desplazador combinacional (shifter) (cont)

�Si los multiplexores son de 4 vías a uno, puede reducirse el número de niveles y reducir el tiempo de propagación.

�Se muestra una parte del primer nivel, y solo algunas conexiones del segundo nivel.