Captulo 10. Unidad Aritmtica. 10.1. Determinacin de ecuaciones lgicas para las condiciones o flags. Se pueden obtener las ecuaciones de un sumador de ancho n, mediante induccin matemtica. Analizaremos un sumador binario de tres bits. 10.1.1. Sumador sin signo. Se ingresan al sumador binario dos nmeros sin signo, con ancho tres. Con A0 y B0 los bits menos significativos. La suma se realiza fijando Carry-in, que es una entrada del sumador, igual a cero.
A2 A1 A0 + B2 B1 B0 Co S2 S1 S0
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. La tabla es un mapa de Karnaugh para las variables de salida: C0, S2, S1 y S0.
Observando la tabla, se advierte una zona triangular en la cual la reserva de salida es uno. Son todos los nmeros que sumados dan ocho o mayor. La seal Carry-out, que es una salida del sumador nos permite detectar el resultado incorrecto.
La reserva de salida del sumador indica resultado incorrecto, con largo de registro igual a tres. (Co: Carry out)
En caso de un sumador de largo n, la condicin de resultado incorrecto para la suma de enteros sin signo es simplemente la seal de Carry-out.
Los diferentes casos que se producen considerando nmeros unsigned, se muestran en la siguiente tabla: 2 Estructuras de Computadores Digitales Profesor Leopoldo Silva Bijit 18-07-2007
Se ingresan al sumador binario dos nmeros con signo, en complemento a dos, de ancho tres. Ntese que en la siguiente tabla las entradas se han reordenado interpretndolas como nmeros con signo. (Es la misma tabla anterior, esto es as ya que el sumador binario es el mismo). Con operandos de largo 3, no pueden representarse los menores que -4 y los mayores que +3.
Se produce resultado incorrecto (overflow), cuando el signo de ambos operandos es diferente del signo del resultado.
Ntese que el Carry-out, no determina esta condicin, ya que existen resultados correctos que tienen Carry-out igual a uno. Esto se debe a que, al sumar dos nmeros de diferente signo, la magnitud del resultado es siempre menor o igual que la del mayor operando (en magnitud). Por lo tanto el resultado, en este caso, es siempre representable.
La ecuacin lgica para el overflow, puede obtenerse en la ltima etapa del sumador, con los bits de signo de los operandos (A 2 , B 2 ) y el bit de signo del resultado (S 2 ). De la cual puede inducirse una ecuacin para un sumador de largo n.
ov = overflow = A 2 B 2 S 2 ' + A 2 ' B 2 ' S 2
Para un sumador de 32 bits: ov = overflow = A 31 B 31 S 31 ' + A 31 ' B 31 ' S 31
Unidad Aritmtica 3 Profesor Leopoldo Silva Bijit 18-07-2007
-4 -3 -2 -1 +0 +1 +2 +3 A+B
100 101 110 111 000 001 010 011 -4 100 1000 1001 1010 1011 0100 0101 0110 0111 -3 101 1001 1010 1011 1100 0101 0110 0111 1000 -2 110 1010 1011 1100 1101 0110 0111 1000 1001 -1 111 1011 1100 1101 1110 0111 1000 1001 1010 +0 000 0100 0101 0110 0111 0000 0001 0010 0011 +1 001 0101 0110 0111 1000 0001 0010 0011 0100 +2 010 0110 0111 1000 1001 0010 0011 0100 0101 +3 011 0111 1000 1001 1010 0011 0100 0101 0110 Figura 10.2 Sumas de nmeros con signo. Largo 3. 10.1.3. Comparaciones. Se desea poder comparar dos nmeros con signo, para hacerlo se efectuar la resta entre ellos. Las entradas de la tabla (y al sumador binario) se ordenan en forma descendente. La condicin se denomina LT (less than). Se ingresan al sumador un nmero (A), y el complemento uno del otro(B). Se fija Carry-in en uno. Se escribe, en cada casilla de la tabla, el Carry-out y los tres bits de la suma.
De este modo se realiza la resta de A menos B, empleando un sumador binario, y asumiendo representacin complemento dos para los operandos.
La zona A < B, se encuentra sobre la diagonal principal de la matriz. La condicin A = B, es la diagonal principal, en la cual todos los bits del resultado son ceros, y uno la reserva de salida.
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 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 ecuacin lgica puede escribirse:
LT = (A < B) = S 2 ov' + S 2 ' ov 4 Estructuras de Computadores Digitales Profesor Leopoldo Silva Bijit 18-07-2007
(-4) (-3) (-2) (-1) (+0) (+1) (+2) (+3) A+(B)+1 011 010 001 000 111 110 101 100 -4 100 1000 0111 0110 0101 1100 1011 1010 1001 -3 101 1001 1000 0111 0110 1101 1100 1011 1010 -2 110 1010 1001 1000 0111 1110 1101 1100 1011 -1 111 1011 1010 1001 1000 1111 1110 1101 1100 +0 000 0100 0011 0010 0001 1000 0111 0110 0101 +1 001 0101 0100 0011 0010 1001 1000 0111 0110 +2 010 0110 0101 0100 0011 1010 1001 1000 0111 +3 011 0111 0110 0101 0100 1011 1010 1001 1000 Figura 10.3 Comparaciones de nmeros con signo. Largo 3. En la zona: A<0, B<0 y S2 el signo del resultado negativo, existe overflow, y la operacin resta da resultado incorrecto. 10.1.4. Comparaciones de nmeros sin signo. Condicin less than unsigned (LTU). Para operandos de largo dos, desarrollando la resta A - B, en el sumador binario, se obtiene la siguiente tabla, en la cual se han destacado las instancias en que se cumple que A<B. Dentro de la cada casilla de la tabla, figuran tres dgitos; el ms significativo es la reserva de salida, los dos siguientes corresponden a la suma.
(+0) (+1) (+2) (+3) A+(B)+1 11 10 01 00 +0 00 100 011 010 001 +1 01 101 100 011 010 +2 10 110 101 100 011 +3 11 111 110 101 100 Figura 10.4 Comparaciones de nmeros sin signo. Largo 2. Entonces la ecuacin lgica para la condicin LTU es:
LTU = ~C out Para largos de operandos de tres bits: Unidad Aritmtica 5 Profesor Leopoldo Silva Bijit 18-07-2007
(+0) (+1) (+2) (+3) (+4) (+5) (+6) (+7) A+(B)+1 111 110 101 100 011 010 001 000 +0 000 1000 0111 0110 0101 0100 0011 0010 0001 +1 001 1001 1000 0111 0110 0101 0100 0011 0010 +2 010 1010 1001 1000 0111 0110 0101 0100 0011 +3 011 1011 1010 1001 1000 0111 0110 0101 0100 +4 100 1100 1011 1010 1001 1000 0111 0110 0101 +5 101 1101 1100 1011 1010 1001 1000 0111 0110 +6 110 1110 1101 1100 1011 1010 1001 1000 0111 +7 111 1111 1110 1101 1100 1011 1010 1001 1000 Figura 10.5 Comparaciones de nmeros sin signo. Largo 2. 10.1.5. Generacin de condiciones. Para un sumador de 32 bits, resumiendo lo visto hasta el momento, se puede construir la siguiente tabla de verdad para las condiciones, en funcin de las entradas A31, B31 y el carry-in a esa etapa, C31.
Las columnas Carry-out (Co) y S31 corresponden a las de un sumador completo, y se obtienen del diseo del sumador. Las columnas de las condiciones Ov y LT, se han escrito cumpliendo las ecuaciones desarrolladas anteriormente.
A31 B31 C31 Co S31 Ov LT 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 1 0 1 0 1 1 1 0 0 0 1 0 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1 0 1 Figura 10.6 Generacin de condiciones. Las condiciones pueden escribirse en funcin de las entradas a la ltima etapa del sumador: ov = ( C 31 Co ) = C 31 Co' + C 31 'Co = (C 31 diferente de Co). Esta es la expresin ms simple para el ov, ya que ocupa menos trminos. Antes se obtuvo relacin empleando S31. Sin emplear carry interno: ov = ( S 31 Co A 31 B 31 )
LT = (A < B ) = ( S 31 ov ) = A 31 C 31 ' + B 31 C 31 ' + A 31 B 31
En estas ecuaciones basta reemplazar el nmero 31, por (n-1) para obtener las condiciones para un sumador de n bits. Las condiciones pueden determinarse con lgica combinacional asociada a la etapa ms significativa del sumador binario.
6 Estructuras de Computadores Digitales Profesor Leopoldo Silva Bijit 18-07-2007 La condicin de operandos iguales, la diagonal principal de la tabla, puede obtenerse a partir de los bits del resultado (para largo de 3 bits):
Zero = ( A == B) = (S 2 + S 1 +S 0 )' = Detecta un resultado igual a cero. Operandos iguales.
Debe notarse que esta ecuacin para un sumador de n bits, es un nor de los bits del resultado, y su realizacin en dos niveles es bastante ms costosa que las dos condiciones anteriores.
Se ilustran a continuacin otras condiciones de comparacin entre dos operandos, y todas ellas pueden derivarse de las seales LT y Zero.
GE = ( A>= B) = ( A<B )' = (LT)' = greater or equal NZ = ( A != B) = Zero' = (S 31 + ...+ S 2 + S 1 +S 0 ) = Resultado diferente a cero = Operandos diferentes GT = ( A > B ) = (A >= B) & NZ = greater than = A mayor que B. LE = ( A <= B ) = (A > B) ' = ( A < B) | Zero = less or equal = A menor o igual que B. 10.2. Arquitectura de una unidad aritmtica. El diseo parte de las especificaciones de la unidad. Es decir el largo de los operandos, las diferentes operaciones que se realizarn y las condiciones que se deben generar.
Siguiendo el esquema del texto gua, dispondremos de cuatro operaciones: and, or, suma, resta y una instruccin de comparacin. Operandos de 32 bits, y condiciones para overflow. En un caso ms general, las operaciones a implementar dependen del repertorio de instrucciones.
Se decide emplear una operacin 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. Terminada la operacin, queda en un registro el resultado de la comparacin, y luego pueden efectuarse saltos o bifurcaciones de acuerdo al valor del registro.
Puede plantearse un diseo modular. El siguiente esquema, basado en multiplexores, logra cumplir las especificaciones dadas. Si Binvert y CarryIn son unos, y la operacin es suma, se logra obtener la resta de A con B. La operacin set on less, deja pasar directamente la entrada Less hacia un bit del resultado. 10.2.1. Para una etapa cualquiera. Todos los mdulos son iguales, salvo el dedicado al bit ms significativo, que segn se ha visto permite determinar las condiciones. Un esquema de la etapa cualquiera es:
Unidad Aritmtica 7 Profesor Leopoldo Silva Bijit 18-07-2007
Figura 10.7 Esquema de una etapa cualquiera. 10.2.2. Etapa del bit ms significativo.
Figura 10.8 Esquema de la etapa ms significativa. Si se une el Carry-Out de una etapa con el Carry-In de la siguiente, exceptuando la primera etapa, en la que puede unirse Binvert con Carry-In (se denomina Bnegate, a la nueva seal) se logra el esquema que se muestra a continuacin:
0 1 2 + Operacin 3 Resultado Binvert CarryIn a i
b i
less 0 1 CarryOut
0 1 2 + Operacin 3 Resultado Binvert CarryIn a n
b n
less 0 1 Generacin Condiciones LT Overflow 8 Estructuras de Computadores Digitales Profesor Leopoldo Silva Bijit 18-07-2007 Debe notarse en el esquema que la seal LT est directamente cableada con la entrada Less de la primera etapa, y que todas las dems etapas tienen entrada cero en Less.
En el esquema tambin se muestra el diseo lgico de la seal Zero. 10.2.3. Esquema general.
Figura 10.9 Conexin de las etapas. La ruta crtica es la propagacin de la reserva a travs de las etapas.
Operacin Bnegate C 2
0 1 2 + 3 S 31 C 31
a 31
b 31
less 31
C 32
Condiciones Ov C LT 0 1 2 + 3 S i
C i
a i
b i
less i
C i+1
0 1 2 + 3 S 0 C 0
a 0
b 0
less 0 C 1
0 1 2 + 3 S 1 C 1
a 1
b 1
less 1
Zero Unidad Aritmtica 9 Profesor Leopoldo Silva Bijit 18-07-2007 Si para el sumador de 32 bits, se plantea una tabla de verdad que tenga como entradas el Carry- in y las 32 entradas del operando A y las 32 entradas del operando B; y como salidas los 32 bits del resultado y los bits de Carry-out y LT, puede efectuarse un diseo en dos niveles, eliminando la propagacin de la reserva. Pero resultara de gran complejidad, una solucin de menor costo que tradicionalmente se emplea es acelerar la propagacin de la reserva en grupos. 10.2.4. Modificacin para tratar nmeros con signo. En caso de agregar comparaciones de nmeros sin signo, en la etapa ms significativa del sumador, debe colocarse un multiplexor, controlado por la seal CLT, para llevar a la entrada less de la etapa menos significativa del sumador, la seal LT, en caso de que se est ejecutando una instruccin slt; o la seal LTU, en caso de que est en ejecucin una instruccin sltu.
Figura 10.10 Condiciones de nmeros con y sin signo. 10.3. Anlisis de un sumador binario. 10.3.1. Ecuaciones. Para un sumador completo se tiene la siguiente tabla de verdad:
0 1 2 + Operacin 3 Resultado Binvert CarryIn a n
b n
less 0 1 Generacin Condiciones LT LTU 0 1 CLT C out 10 Estructuras de Computadores Digitales Profesor Leopoldo Silva Bijit 18-07-2007
Entradas Salidas Ai Bi Ci Ci+1 Si 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 Figura 10.11 Tabla de verdad de sumador binario. Leyendo del mapa se obtienen, minimizando en dos niveles: Ci +1 = Ai Bi + (Ai +Bi) Ci Si = Ci(AiBi+AiBi) + Ci( AiBi +AiBi)
Como: (AiBi+AiBi) = Ai Bi Y su complemento es: (Ai Bi)= (AiBi+AiBi) = (Ai+Bi)(Ai+Bi) = ( AiBi +AiBi) Se puede escribir en forma ms compacta: Si = CiAiBi
Empleando: Gi = Ai Bi Pi = Ai + Bi
Pueden escribirse: Ci+1 = Gi + Pi Ci Si = Ci ( Gi Pi)
Figura 10.12 Generacin de Gi, Pi, Ci+1 y Si. El diagrama muestra que la suma binaria puede realizarse mediante las seales Gi, Pi y Ci. Esta forma se emplea en el diseo del sumador de cuatro bits, con generacin adelantada de la reserva, 74LS283. Ci Bi Ai Gi Pi Si Ci+1 Unidad Aritmtica 11 Profesor Leopoldo Silva Bijit 18-07-2007
Para efectuar un anlisis ms detallado de los retardos combinacionales en un sumador se asumir que la seal Si se genera en dos niveles, a partir de Ai, Bi y Ci. Y que la reserva de salida se genera empleando las seales Gi, Pi y Ci, en tres niveles. 10.3.2. Sumador con propagacin de la reserva. La organizacin de un sumador con propagacin ondulada de la reserva(ripple) produce las salidas con los siguientes retardos de propagacin medidos en unidades de retardo a travs de una compuerta:
Figura 10.13 Tiempos en sumador con propagacin ondulada de la reserva. Todos los tiempos se miden respecto al instante en que estn estables las entradas Ai, Bi y C0. S0 se obtiene con retardo 2, C1 con retardo 3. S1 se obtiene despus de 5 unidades, C2 despus de 6 unidades. Ya que desde las entradas A1, B1 y C1, C2 se genera despus de tres unidades, y S1 despus de 2 unidades. S2 se obtiene despus de 8 unidades, C3 despus de 9 unidades.
Si se obtiene despus de 3*i +2 unidades, Ci+1 despus de 3*i+3 unidades.
Para un sumador de 32 bits, S31 se obtiene despus de 95 unidades y C32 despus de 96 retardos de propagacin de una compuerta.
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 propagacin de una compuerta. Para el caso de 32 bits se tendrn 64 retardos. 10.3.3. Generador de reserva adelantada. Se desea reducir el nmero de niveles para propagar la reserva. Se plantea un diseo modular agrupando 4 sumadores completos y generando las reservas (C1, C2, C3 y C4) en dos niveles. A continuacin se desarrolla, en forma analtica, el diseo lgico:
En las ecuaciones de las reservas de los sumadores completos se efectan los siguientes reemplazos:
Ai Bi Ci Ci+1 Si A0 B0 C0 C1 S0 A1 B1 C1 C2 S1 A2 B2 C2 C3 S2 3 2 6 5 9 8 3i+3 3i+2 12 Estructuras de Computadores Digitales Profesor Leopoldo Silva Bijit 18-07-2007 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.
Se plantean las ecuaciones para las reservas en funcin de Ai, Bi y Ci. Luego se reemplaza la expresin para C1 en la expresin para C2; a su vez sta se reemplaza en la expresin de C3, finalmente se reemplaza esta ltima en la expresin para C4, resultan:
Expresando en funcin 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
Ntese la definicin de G y P en la ltima ecuacin. Se disea un mdulo 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. Ver 74182. Notar que no se genera C4, sino G y P.
El esquema siguiente ilustra las entradas y salidas de los cuatro sumadores completos y del circuito generador de reserva adelantada (look-ahead carry generator).
Respecto del instante en que se tienen estables las entradas Ai, Bi y C0 se tienen, expresando en unidades de retardo de propagacin a travs de una compuerta: S0 se obtiene despus de 2 unidades. P0 y G0 despus de una unidad. C1 despus de 3 unidades. S1 se obtiene despus de 5 unidades (el tiempo de C1 ms los dos niveles del sumador). P1 y G1 despus de una unidad. C2 despus de 3 unidades (lo genera la unidad de adelanto). S2 se obtiene despus de 5 unidades. P2 y G2 despus de una unidad. C3 despus de 3 unidades. S3 se obtiene despus de 5 unidades. P3 y G3 despus de una unidad. P se obtiene despus de dos unidades y G se obtiene despus de 3 unidades. C4 se obtiene despus de 4 unidades, ya que se genera a partir de G + C0P. Unidad Aritmtica 13 Profesor Leopoldo Silva Bijit 18-07-2007
Figura 10.14 Generacin de reservas por grupos de a cuatro bits. Un resumen del sumador de 4 bits con un nivel de generacin adelantada de las reservas, se muestra a continuacin:
Figura 10.15 Tiempos en sumador con propagacin agrupada de la reserva. P0 G0 A0 B0 S0 C0 P1 G1 A1 B1 S1 C1 P2 G2 A2 B2 S2 C2 P3 G3 A3 B3 S3 C3
Ci+4 P G Si..i+3 5 4 2 3 14 Estructuras de Computadores Digitales Profesor Leopoldo Silva Bijit 18-07-2007
Los tiempos, medidos en unidades de retardo de una compuerta, son con respecto al instante en que se tienen niveles estables en las entradas. 10.3.4. Estructuras para sumadores de mayores rdenes. 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. Un esquema se muestra a continuacin:
Se muestran entre parntesis los retardos hasta seales estables en las salidas, a partir del momento en que se dispone de las entradas:
Figura 10.16 Tiempos en sumador de 16 bits con propagacin agrupada de la reserva. Para el n-avo sumador de cuatro bits se tienen 4*n +1 retardos hasta el resultado de la suma de la etapa n-ava y 4*n retardos hasta la reserva de salida. Con ocho sumadores de cuatro bits, se tienen 33 retardos hasta tener resultado estable en la salida, en un sumador de 32 bits.
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 seales P y G de cada sumador de 4 bits, las reservas C4, C8, C12 y C16, mediante la red combinacional de generacin de reservas adelantadas. A12.15 B12.15 C12
G + C12P(16) A4.7 B4.7 C4
G +C4P(8) A8.11 B8.11 C8
G +C8P(12) S8.11(13) S4.7(9) S12.15(17) C16(16) A0.3 B0.3 C0
G +C0P(4) S0.3(5) C4(4) C8(8) C12(12) Unidad Aritmtica 15 Profesor Leopoldo Silva Bijit 18-07-2007 Figura 10.17 Dos niveles de propagacin agrupada de la reserva.
El sumador de 16 bits con dos niveles de adelanto de reserva puede representarse segn el siguiente esquema:
En el diagrama se han mantenido los nombres de las entradas y salidas del generador de reservas adelantadas y se han redefinido las reservas de salida como C4, C8, C12 y C16. A0..3 B0..3 C0
P G S0..3 5 2 A4..7 B4..7 C4
P G S4..7 10 2 A8..11 B8..11 C8
P G S8..11 10 2 A12.15 B12.15 C12
P G S12..15 10 2 PG PG PG PG C0
P G C12 C8 C4 3 5 5 5 5 C16 (6) 16 Estructuras de Computadores Digitales Profesor Leopoldo Silva Bijit 18-07-2007
Figura 10.18 Generacin de dos niveles de propagacin agrupada de la reserva. Un resumen de los tiempos, para el sumador de 16 bits, con dos niveles de adelanto de la reserva, se muestra a continuacin:
Figura 10.19 Tiempos en sumador de 16 bits, con dos niveles de propagacin. Si se forma un sumador de 32, con propagacin ondulada de la reserva entre los sumadores de 16 bits, se logra: P3 = P12 P13 P14 P15 G3 = G15 + G14 P15 + G13 P14 P15 + G12 P13 P14 P15 C16 = G3 + (G2 + (G1 + (G0 + C0 P0) P1 ) P2 ) P3 P0 G0 A0..A3 B0..B3 S0..S3 C0 P1 G1 A4..A7 B4..B7 S4..S7 C4 P2 G2 A8..A11 B8..B11 S8..S11 C8 P3 G3 A12..A15 B12..B15 S12..S15 C12
Ci+16 P G Si..i+15 10 6 3 5 Unidad Aritmtica 17 Profesor Leopoldo Silva Bijit 18-07-2007
Figura 10.20 Sumador de 32 bits, con dos de 16 bits. La solucin anterior logra efectuar la suma en 16 retardos y la reserva de salida en 12.
Para un sumador de 32 bits, con un nivel adicional de generacin adelantada de las reservas (y empleando parcialmente dicho circuito) se obtiene la suma en 16 y la reserva de salida en 7 retardos; es decir no se requiere agregar un tercer nivel, ya que la operacin suma se logra en ambos casos en 16 unidades de retardo de una compuerta. El siguiente esquema ilustra el tercer nivel de generacin de reservas adelantadas para un sumador de 64 bits.
Figura 10.21 Sumador de 32 bits, con tres niveles de propagacin agrupada. Desde un tiempo de operacin suma de 96 64 retardos, se ha logrado reducir el costo de la operacin a 16 unidades; agregando redes combinacionales de generacin agrupada y adelantada de las reservas.
Pueden verse aplicaciones tpicas del circuito generador de reservas adelantadas en la hoja de datos.
A0..15 B0..15 C0
C16 P G S0..15 10 6 3 5 A16..31 B16..31 C16
C32 P G S16..31 16 12 3 5
3 3 3 3 PG PG PG PG C0
C64 P G C48 C32 C16 7 7 7 7 4 8 18 Estructuras de Computadores Digitales Profesor Leopoldo Silva Bijit 18-07-2007 10.4. Desplazador combinacional. (shifter). Las operaciones de corrimiento requieren una unidad combinacional para efectuar los desplazamientos. El siguiente es el repertorio MIPS para las instrucciones de corrimiento:
El campo inmediato de 5 bits est formado por los bits 10 a 6 de la instruccin, y permite describir corrimientos desde 0 a 31 posiciones. En corrimientos lgicos, 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 aritmticos, slo a la derecha, se rellenan con el bit del signo las posiciones que se incorporan al registro por la derecha.
a) Corrimientos Inmediatos. shift left logical inmediato: sll $t1, $t2, 10 Corrimiento lgico a la izquierda, efecta: $t1 = $t2 << 10 shift right logical inmediato: srl $t1, $t2, 8 Corrimiento lgico a la derecha, efecta: $t1 = ((unsigned int) $t2) >> 8 shift right arithmetic inmediato: sra $t1,$t2, 5 Corrimiento aritmtico a la derecha, efecta: $t1 = $t2 >> 5
b) Corrimientos variables(el valor corrimiento se pasa en un registro). shift left logical variable: sllv $t1, $t2, $t3 Corrimiento lgico a la izquierda por variable, efecta: $t1 = $t2 << $t3. shift right logical variable: srlv $t1, $t2, $t3 Corrimiento lgico a la derecha por variable, efecta: $t1 = ((unsigned int) $t2) >> $t3. shift right arithmetic variable: srav $t1, $t2, $t3 Corrimiento aritmtico a la derecha por variable, efecta: $t1 = $t2 >> $t3.
A continuacin se muestra un esquema, empleando mux de dos vas, para desplazar hacia la derecha, empleando redes combinacionales. Unidad Aritmtica 19 Profesor Leopoldo Silva Bijit 18-07-2007
Figura 10.22 Estructura desplazador combinacional con mux 2 a 1. En el esquema anterior, A corresponde al operando de entrada, S al corrimiento y R al resultado. Todos los mux en un nivel se activan con la misma seal de control. Las entradas activadas con S1=1, se alimentan de las salidas desplazadas en dos posiciones de los muxes del nivel anterior. Las entradas activadas con S2=1, se alimentan de las salidas desplazadas en cuatro posiciones de los muxes del nivel anterior. Si no se activan S0, S1 y S2, el valor de A0 pasa a R0. Es decir se logra un corrimiento a la derecha de cero posiciones. Si se activan S0, S1 y S2, el valor de A7 pasa a R0. Es decir se logra un corrimiento a la derecha de siete posiciones.
Para desplazar A31 a la posicin A0 se requieren cinco niveles de muxes, y cinco seales de control.
Cada multiplexor puede disearse con dos niveles de compuertas.
Si los multiplexores son de 4 vas a uno, puede reducirse el nmero de niveles y reducir el tiempo de propagacin. Se muestra una parte del primer nivel, y solo algunas conexiones del segundo nivel.
Cuando las seales de control S3, S2, S1 y S0 son ceros, se coloca en R0 el valor del bit A0. Cuando las seales de control S3, S2 son ceros y S1, S0 son unos, se coloca en R0 el valor del bit A3. 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 A7 A6 A5 A4 A3 A2 A1 A0 R7 R6 R5 R4 R3 R2 R1 R0 S0 S1 S2 20 Estructuras de Computadores Digitales Profesor Leopoldo Silva Bijit 18-07-2007 Cuando las seales de control S3, S2, S1 y S0 son unos, se coloca en R0 el valor del bit A15.
Figura 10.23 Estructura desplazador combinacional con mux 4 a 1. Si se emplean transistores MOS, puede desarrollarse una red que produzca los desplazamientos empleando un nmero menor de transistores.
Se denominan circuitos lgicos de transmisin a aqullos que conducen los datos de entrada hacia las salidas, de acuerdo a los valores de las seales de control. En estas redes debe cumplirse que: Para cualquier combinacin de las entradas de control debe haber a lo menos una va de conduccin entre la entrada y la salida; es decir, un nodo de salida debe ser conducido por alguna entrada, no debe quedar flotando.
Nunca debe existir ms de una va conductora entre las entradas y una salida.
El siguiente diagrama muestra una red lgica de transmisin, que implementa un desplazador: 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 A7 A6 A5 A4 A3 A2 A1 A0 S1 S3 Unidad Aritmtica 21 Profesor Leopoldo Silva Bijit 18-07-2007
Figura 10.24 Estructura desplazador con compuertas de transmisin. Slo una de las entradas de control puede estar activa. Cuando se activa S3, se produce un corrimiento en tres posiciones hacia la derecha. S0 S1 S2 S3 R3 R2 R1 R0 A0 A1 A2 A3 A4 A5 A6 22 Estructuras de Computadores Digitales Profesor Leopoldo Silva Bijit 18-07-2007
ndice general. CAPTULO 10. ...........................................................................................................................................1 UNIDAD ARITMTICA. ..........................................................................................................................1 10.1. DETERMINACIN DE ECUACIONES LGICAS PARA LAS CONDICIONES O FLAGS. ................................1 10.1.1. Sumador sin signo....................................................................................................................1 10.1.2. Sumas y Restas con signo.........................................................................................................2 10.1.3. Comparaciones. .......................................................................................................................3 10.1.4. Comparaciones de nmeros sin signo......................................................................................4 10.1.5. Generacin de condiciones. .....................................................................................................5 10.2. ARQUITECTURA DE UNA UNIDAD ARITMTICA. ................................................................................6 10.2.1. Para una etapa cualquiera.......................................................................................................6 10.2.2. Etapa del bit ms significativo. ................................................................................................7 10.2.3. Esquema general......................................................................................................................8 10.2.4. Modificacin para tratar nmeros con signo...........................................................................9 10.3. ANLISIS DE UN SUMADOR BINARIO. ................................................................................................9 10.3.1. Ecuaciones. ..............................................................................................................................9 10.3.2. Sumador con propagacin de la reserva. ..............................................................................11 10.3.3. Generador de reserva adelantada. ........................................................................................11 10.3.4. Estructuras para sumadores de mayores rdenes. ................................................................14 10.4. DESPLAZADOR COMBINACIONAL. (SHIFTER).................................................................................18 NDICE GENERAL. ....................................................................................................................................22 NDICE DE FIGURAS. ................................................................................................................................22
ndice de figuras. FIGURA 10.1 SUMAS DE NMEROS SIN SIGNO. LARGO 3. ...............................................................................2 FIGURA 10.2 SUMAS DE NMEROS CON SIGNO. LARGO 3...............................................................................3 FIGURA 10.3 COMPARACIONES DE NMEROS CON SIGNO. LARGO 3. .............................................................4 FIGURA 10.4 COMPARACIONES DE NMEROS SIN SIGNO. LARGO 2................................................................4 FIGURA 10.5 COMPARACIONES DE NMEROS SIN SIGNO. LARGO 2................................................................5 FIGURA 10.6 GENERACIN DE CONDICIONES.................................................................................................5 FIGURA 10.7 ESQUEMA DE UNA ETAPA CUALQUIERA. ...................................................................................7 FIGURA 10.8 ESQUEMA DE LA ETAPA MS SIGNIFICATIVA.............................................................................7 FIGURA 10.9 CONEXIN DE LAS ETAPAS........................................................................................................8 FIGURA 10.10 CONDICIONES DE NMEROS CON Y SIN SIGNO. ........................................................................9 FIGURA 10.11 TABLA DE VERDAD DE SUMADOR BINARIO. ..........................................................................10 FIGURA 10.12 GENERACIN DE GI, PI, CI+1 Y SI. .......................................................................................10 FIGURA 10.13 TIEMPOS EN SUMADOR CON PROPAGACIN ONDULADA DE LA RESERVA...............................11 FIGURA 10.14 GENERACIN DE RESERVAS POR GRUPOS DE A CUATRO BITS. ...............................................13 FIGURA 10.15 TIEMPOS EN SUMADOR CON PROPAGACIN AGRUPADA DE LA RESERVA. ..............................13 FIGURA 10.16 TIEMPOS EN SUMADOR DE 16 BITS CON PROPAGACIN AGRUPADA DE LA RESERVA. ............14 FIGURA 10.17 DOS NIVELES DE PROPAGACIN AGRUPADA DE LA RESERVA. ...............................................15 FIGURA 10.18 GENERACIN DE DOS NIVELES DE PROPAGACIN AGRUPADA DE LA RESERVA......................16 FIGURA 10.19 TIEMPOS EN SUMADOR DE 16 BITS, CON DOS NIVELES DE PROPAGACIN. .............................16 Unidad Aritmtica 23 Profesor Leopoldo Silva Bijit 18-07-2007 FIGURA 10.20 SUMADOR DE 32 BITS, CON DOS DE 16 BITS.......................................................................... 17 FIGURA 10.21 SUMADOR DE 32 BITS, CON TRES NIVELES DE PROPAGACIN AGRUPADA. ............................ 17 FIGURA 10.22 ESTRUCTURA DESPLAZADOR COMBINACIONAL CON MUX 2 A 1. .......................................... 19 FIGURA 10.23 ESTRUCTURA DESPLAZADOR COMBINACIONAL CON MUX 4 A 1. .......................................... 20 FIGURA 10.24 ESTRUCTURA DESPLAZADOR CON COMPUERTAS DE TRANSMISIN. ..................................... 21