Anexo 1. - Departamento de Tecnología Electrónica

Anuncio
Sistemas de Multiprocesamiento
La ALU
Parte 1.- TEORÍA DEL PARALELISMO
Tema 2.- ARQUITECTURA BASICA
Anexo 1.- La Unidad Aritmético-Lógica (ALU).
INDICE
Capitulo 2.1.- INTRODUCCION.......................................................................................................................................... 2
Capitulo 2.2.- TIPOS DE OPERADORES............................................................................................................................ 3
Operadores generales y especializados.............................................................................................................................. 3
Operadores combinacionales y secuenciales ..................................................................................................................... 3
Operadores paralelo y serie ............................................................................................................................................... 4
Operadores MOS y bipolares............................................................................................................................................. 4
Capitulo 2.3.- LAS OPERACIONES DE LA UNIDAD ARITMETICA Y LOGICA ......................................................... 5
OPERACIONES DE DESPLAZAMIENTO..................................................................................................................... 6
Desplazamientos lógicos................................................................................................................................................ 7
Desplazamientos circulares............................................................................................................................................ 8
Desplazamientos aritméticos ......................................................................................................................................... 8
Desplazamientos concatenados...................................................................................................................................... 9
OPERACIONES LOGICAS ............................................................................................................................................. 9
OPERACIONES ARITMETICAS .................................................................................................................................. 11
Cambio de signo .......................................................................................................................................................... 11
Extensión de signo....................................................................................................................................................... 12
Adición y Sustracción...................................................................................................................................................... 12
Sumador elemental ...................................................................................................................................................... 12
Sumador paralelo ......................................................................................................................................................... 14
Sumador serie .............................................................................................................................................................. 15
Restador paralelo ......................................................................................................................................................... 16
Suma y resta en binario sin signo ................................................................................................................................ 17
Suma y resta en complemento a uno............................................................................................................................ 17
Suma y resta en complemento a dos ............................................................................................................................ 18
Suma y resta en signo y magnitud ............................................................................................................................... 19
Sumador rápido de acarreo anticipado......................................................................................................................... 21
Sumador-restador BCD ............................................................................................................................................... 25
Unidad aritmética-lógica para Abacus............................................................................................................................. 28
Aritmética binaria en coma flotante................................................................................................................................. 30
Sumador-restador en coma flotante ............................................................................................................................. 30
Funcionamiento de un operador de suma flotante. ...................................................................................................... 32
Multiplicación y división en coma flotante ................................................................................................................. 34
OPERACION DE MULTIPLICACION ......................................................................................................................... 34
Algoritmo de suma desplazamiento............................................................................................................................. 34
Algoritmo de sumas y restas........................................................................................................................................ 37
Algoritmo de Booth ..................................................................................................................................................... 39
Multiplicador rápido .................................................................................................................................................... 40
Multiplicación celular en paralelo. .............................................................................................................................. 41
OPERACION DE DIVISION POR SUSTRACCION-DESPLAZAMIENTO............................................................... 42
División con restauración sin signo ............................................................................................................................. 42
División con y sin restauración.................................................................................................................................... 46
División sin restauración sin signo .............................................................................................................................. 47
División con signo ....................................................................................................................................................... 48
Capitulo 2.4.- OPERACIONES DECIMALES................................................................................................................... 49
El contador decimal. ........................................................................................................................................................ 49
El sumador decimal en paralelo....................................................................................................................................... 49
Capitulo 2.5.- UNIDADES LOGICO ARITMETICAS INTEGRADAS ........................................................................... 51
Unidad lógico aritmética 74181....................................................................................................................................... 51
Unidad aritmética Am 29203........................................................................................................................................... 54
ETSII – Dpto. Tecnología Electrónica
Página: 1 / 55
MSA
Sistemas de Multiprocesamiento
La ALU
Capitulo 2.1.- INTRODUCCION
La Unidad Aritmética y Lógica, llamada abreviadamente ALU, es la encargada de realizar en el computador las
operaciones con los datos, de acuerdo con el programa en curso.
Se compone de una unidad capaz de ejecutar todo el surtido de instrucciones del calculador o de varias unidades
funcionales u operadores, cada uno especializado en la ejecución de una o varias clases de operaciones.
Las operaciones que puede efectuar esta unidad son muy elementales, puesto que la mayoría de los
computadores configuran la Unidad Aritmética con un sencillo sumador-restador.
La ejecución de operaciones complejas se lleva a cabo descomponiéndolas en pasos elementales, que se
ejecutan a la velocidad de varios millones por segundo.
La Unidad de Control del computador se encarga de enviar la información a procesar a la Unidad Aritmética, así
como el código que selecciona la operación que se debe hacer.
La estructura de la Unidad Aritmética consta de:
1. Uno o varios operadores, que son circuitos electrónicos que realizan una función aritmética o lógica.
2. Un banco de registros de tipo general, donde se almacenan los datos.
Por lo general, el banco se compone de 8 o 16 registros.
3. Un registro, llamado Acumulador, en el que se deposita el resultado que origina el operador y que
soporta la información en numerosas operaciones.
4. Un conjunto de señalizadores de estado, que son unos biestables que señalizan ciertas condiciones de
la última operación realizada por la Unidad Aritmética.
Las más corrientes son:
Cero: Se pone a 1 si el resultado ha sido cero.
Negativo: Se pone a 1 si el resultado ha sido negativo,
Acarreo: Se pone a 1 si el resultado tiene acarreo.
Desbordamiento: Se pone a 1 si el resultado no cabe en el lugar que le corresponde
(sobrepasamiento).
5. A veces, una instrucción se descompone en varias operaciones elementales, existiendo un
Secuenciador que genera las señales apropiadas para desarrollar las diversas microinstrucciones que
conforman la instrucción.
Para cada instrucción se indica el operador que interviene, la operación a efectuar y los registros que
participan.
Diagrama general de la
estructura de bloques
de la Unidad Aritmética:
ETSII – Dpto. Tecnología Electrónica
Página: 2 / 55
MSA
Sistemas de Multiprocesamiento
La ALU
Capitulo 2.2.- TIPOS DE OPERADORES
Como ya se ha dicho los operadores son circuitos electrónicos que realizan una o varias operaciones lógicas o
aritméticas, tales como AND, OR, XOR, suma y resta.
En la figura se presenta a un operador elemental encargado de efectuar la suma binaria de dos bits junto al
acarreo previo, produciendo el resultado y el acarreo final.
Los operadores tienen diferentes clasificaciones, de acuerdo con el concepto que se considere.
Operadores generales y especializados
Los operadores generales pueden realizar distintas clases de operaciones, mientras que los especializados se
restringen a una muy determinada: por ejemplo, sumas y restas en coma flotante.
Los computadores convencionales poseen un solo operador, de tipo general, que hace todas las operaciones
posibles.
Los computadores muy sofisticados, cuya Unidad Aritmética consta de varios operadores especializados, han de
soportar un elevado coste.
Operadores combinacionales y secuenciales
Los operadores combinacionales suministran una salida que es función del estado de las entradas.
No dispone de elementos de memoria y el tiempo de respuesta está dado por la suma de los retardos de las
puertas lógicas que deben atravesar las señales desde las entradas hasta la salida.
Los operadores secuenciales requieren varias fases para obtener el resultado, debiendo contar con elementos de
memoria que almacenan la información que ha de transmitirse entre fase (resultados intermedios / parciales), así
como un contador de las mismas.
En este tipo de operadores se define un algoritmo con el que se halla el resultado y que contiene las etapas
necesarias y la función que ha de efectuar cada una de ellas.
Es habitual que la Unidad de Control genere las fases del operador, con lo que éste se simplifica notablemente.
De lo expuesto se deduce que una operación cualquiera puede realizarse de cuatro formas posibles:
a) Mediante un circuito combinacional. La operación consta de una sola fase.
b) Mediante un circuito secuencial que genera sus propias fases.
c) Mediante un circuito secuencial cuyas fases las genera la Unidad de Control.
d) Mediante un programa.
ETSII – Dpto. Tecnología Electrónica
Página: 3 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Los operadores puramente combinacionales se montan entre dos registros fuentes F1 y F2 (o dos buses fuentes)
para los operandos y un registro R para el resultado (o un bus para el resultado) según el esquema de la figura 1.
(Obsérvese que, sobre este esquema, el resultado solo es válido en tanto los operandos fuentes permanezcan
posicionados).
Los operadores con acumulador (fig. 2) no exigen más que un registro fuente para almacenar uno de los
operandos, ya que el otro es memorizado por el acumulador durante todo el tiempo de la operación.
Cuando a las salidas de los operadores elementales quedan establecidos los niveles lógicos, un impulso EAC
introduce el resultado en el acumulador.
Operadores paralelo y serie
Un operador paralelo realiza la operación correspondiente simultáneamente sobre todos los dígitos de los
operandos.
El operador serie trabaja dígito a dígito, siendo de tipo secuencial y requiere tantas fases como dígitos procesa.
Operadores MOS y bipolares
La tecnología que se aplica en la fabricación de los operadores determina la velocidad de funcionamiento.
Para comparar distintos diseños, se toma como base el tiempo de respuesta de una puerta NAND, al que se
denomina “a”.
El tiempo de las restantes puertas se expresa en función de a.
El retardo típico de una puerta NAND TTL estándar es de 10 ns;
si es Schottky TTL de 3 ns
y
si es CMOS de 50 a 70 ns.
ETSII – Dpto. Tecnología Electrónica
Página: 4 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Capitulo 2.3.- LAS OPERACIONES DE LA UNIDAD ARITMETICA Y LOGICA
Las operaciones que puede efectuar la Unidad Aritmética, según su propósito, se clasifican en tres grandes
grupos:
1. De desplazamiento.
2. Aritméticas.
3. Lógicas.
En la tabla de la figura se muestra el conjunto de operaciones típicas que realizan las cuatro categorías de
computadores: microprocesador, minicomputador, computador medio y computador rápido.
También se indica la manera habitual de llevar a cabo la operación mediante:_
• unidad combinacional (C),
• unidad secuencial específica (S),
• tareas controladas por la Unidad de Control (UC),
• por programa (P).
ETSII – Dpto. Tecnología Electrónica
Página: 5 /55
MSA
Sistemas de Multiprocesamiento
La ALU
OPERACIONES DE DESPLAZAMIENTO
Los desplazamientos se realizan corriendo los bits de una palabra, dato o registro hacia la derecha o izquierda.
Si el operando origen, A, está compuesto por los bits: a n −1 , a n − 2 ,..., a1 , a 0
el operando resultado B, después
de realizar el desplazamiento, estará compuesto por una cadena de bits, que cumplen la ley:
b j +k = a j
donde k indica el número de posiciones que se han desplazado.
Si k > 0, el desplazamiento se efectúa hacia la izquierda y viceversa.
En realidad, la expresión no puede aplicarse a los extremos del operando Æ éstos se rellenan según el
desplazamiento sea lógico o aritmético.
El operador de desplazamiento puede estar constituido únicamente por puertas lógicas, en cuyo caso posee un
carácter puramente combinacional.
En general, los computadores sencillos no pueden ejecutar más que un desplazamiento elemental (una posición a
derecha o a izquierda) por impulso. Puede montarse el acumulador como un registro de desplazamiento.
A fin de no tener que utilizar una instrucción para cada desplazamiento elemental, se emplea un descontador de
desplazamiento, cargado al principio de la operación con el número de desplazamientos por efectuar, número que
aparece como operando inmediato en la instrucción. Este contador se ve restado en una unidad a cada impulso
de orden de desplazamiento; la operación se detiene cuando el descontador de desplazamientos llega a cero.
Es un primer ejemplo de operador secuencial y de su dispositivo de control.
En las máquinas más importantes, el acumulador está cableado de tal manera que puedan ejecutarse
desplazamientos de 1, 2, 3 ó k posiciones, a derecha o izquierda, a la recepción de cada impulso de reloj.
En la figura se muestra un operador de desplazamiento que permite desplazamientos de 0, 1, 2 y 4 posiciones en
ambos sentidos. Sólo se ha representado el esquema correspondiente a un bit. Las señales de control necesarias
para definir el desplazamiento son comunes a todos los bits.
Es frecuente que coincidan el operando origen y el destino, con lo que el desplazador se reduce a un simple
registro de desplazamiento.
ETSII – Dpto. Tecnología Electrónica
Página: 6 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Desplazamientos lógicos
Los valores de los extremos se completan con ceros, es decir, los k bits derechos o izquierdos, según la dirección
del desplazamiento, serán rellenados con ceros.
Obsérvese que en los desplazamientos lógicos existe pérdida dé información.
También hay operadores de desplazamiento que permiten rellenar con unos las posiciones vacías.
ETSII – Dpto. Tecnología Electrónica
Página: 7 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Desplazamientos circulares
Los k bits que se vacían en un extremo se rellenan con los que salen por el otro.
Con los desplazamientos circulares no hay pérdida de información.
Desplazamientos aritméticos
Los desplazamientos aritméticos se realizan sobre números en representación de complemento y son parecidos a
los lógicos, pero salvando o manteniendo el signo de la cantidad.
Estos desplazamientos suponen una multiplicación o división por una potencia de 2.
En la figura se muestra, gráficamente, el comportamiento de este tipo de desplazamientos.
Para multiplicar por potencias de 2 un número negativo, representado en complemento a 1 se deben introducir
"unos" por la derecha, en lugar de "ceros".
ETSII – Dpto. Tecnología Electrónica
Página: 8 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Desplazamientos concatenados
Son desplazamientos que afectan a un conjunto concatenado de dos o más elementos, que pueden ser:
1. Dos registros.
2. Un registro con el biestable de acarreo.
3. Un registro con el biestable de signo.
En la figura se muestran algunos ejemplos de desplazamientos concatenados.
OPERACIONES LOGICAS
Con este tipo de operaciones, a cada bit del operando origen se le aplica una función lógica, independientemente
de los restantes bits, lo que significa que el resultado de aplicar un operador lógico a un bit no afecta al resultado
de los demás bits.
Las operaciones lógicas más comunes en los computadores son:
-
Negación o inversión lógica ( A)
OR o suma lógica (A + B).
AND o producto lógico (A * B).
EOR ó OR Exclusiva ( A ⊕ B ) .
También son frecuentes las operaciones NOR y NAND.
ETSII – Dpto. Tecnología Electrónica
Página: 9 /55
MSA
Sistemas de Multiprocesamiento
La ALU
La operación negación se efectúa sobre un solo operando, por lo que recibe el nombre de monádica, mientras que
las restantes operaciones lógicas actúan sobre dos operandos y se llaman diádicas.
En el caso del operador combinacional, basta referirse al esquema de la figura 1, sustituyendo los operadores
elementales por circuitos AND, si se trata de la operación de intersección, OR si se trata de la operación de
reunión, OR exclusivo si de la operación OR exclusivo.
En el caso del operador con acumulador, la organización presentada en la figura 2 puede simplificarse, si se parte
de la idea siguiente: en vez de ejecutar la operación con los bits homólogos del registro fuente y del acumulador,
se observa que hasta, según el valor del bit fuente Fi, con dejar inalterado el bit del acumulador o forzarle a un
valor no dependiente más que de Fi.
Por ejemplo, para el AND, el bit acumulador continua inalterado si Fi = 1, pero debe ponerse a cero si Fi = 0.
Este razonamiento conduce a los esquemas de la figura 3. Se observa, además, que estas diferentes funciones
pueden agruparse en un mismo operador gracias a señales asociadas a las diferentes operaciones y controlando
puertas lógicas (fig. 4).
ETSII – Dpto. Tecnología Electrónica
Página: 10 /55
MSA
Sistemas de Multiprocesamiento
La ALU
OPERACIONES ARITMETICAS
A continuación se van comentando las más importantes.
Cambio de signo
La operación de "cambio de signo" se efectúa de distinta forma según el tipo de representación que se emplee.
1. Representación en binario puro Æ Sólo se modifica el bit de signo.
2. Representación en complemento a uno Æ El cambio de signo coincide la negación lógica.
En la figura se muestra una etapa de varias puertas R, que cambia el signo del operando cuando la señal
de control C1 = 1. Cuando C1 = 0, se transmite el dato sin modificarlo.
3. Representación en complemento a dos Æ equivale, a realizar una negación lógica y añadir una unidad.
En la figura se muestra un esquema que cambia el signo a los datos expresados en complemento a dos.
ETSII – Dpto. Tecnología Electrónica
Página: 11 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Extensión de signo
Cuando se traslada un valor numérico a la memoria, a un registro, a un bus, a un operador u otro elemento de
mayor número de bits, los bits sobrantes deben rellenarse de forma que no cambie el significado.
Según el tipo de representación elegido, el tratamiento es diferente.
a) Representación en binario con signo Æ El bit de signo se traslada al bit de más peso del destino,
rellenando con ceros los bits sobrantes.
b) Representación en complemento a uno o a dos Æ Los bits sobrantes de más peso se rellenan con el
mismo valor que el bit de signo.
Adición y Sustracción
Estas dos operaciones se resuelven de manera similar, puesto que la resta puede considerarse como una suma si
se toma el sustraendo en forma de complemento a dos.
La suma es la operación más importante sobre la que se diseña la Unidad Aritmética del computador.
Los sumadores adoptan diferentes estructuras de acuerdo con el tipo de representación que manejan.
Sumador elemental
Es un operador, consistente en un circuito combinacional capaz de sumar dos dígitos binarios más el posible
acarreo previo de la etapa anterior, produciendo el dígito suma y el de acarreo para la siguiente etapa.
Ejemplo:
si de S se obtiene sumando los bits (ai + bi ) junto al acarreo previo ci −1 .
Además de si , también se genera el acarreo ci para la siguiente etapa sumadora.
Cada bit
La tabla de la verdad para este sumador elemental se ofrece en la figura:
ETSII – Dpto. Tecnología Electrónica
Página: 12 /55
MSA
Sistemas de Multiprocesamiento
La ALU
De la cual se deduce:
El tiempo de retardo del sumador elemental de la figura será de 20 ns, tomando como retardo por puerta 10 ns.
En realidad, el resultado si se obtiene en 10 ns y el acarreo en 20 ns.
ETSII – Dpto. Tecnología Electrónica
Página: 13 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Por lo general, las sumas se realizan con números de varios bits, por lo que son relativamente, complejos los
sumadores, aunque todos ellos se basan en sumadores elementales.
Según el tratamiento de los bits de los sumandos, existen sumadores paralelo y serie.
Sumador paralelo
Consta de tantos sumadores elementales encadenados como bits tengan los operandos.
El acarreo c −1 se debe poner a cero antes de producirse la suma.
El retardo total del esquema de la figura viene dado por el máximo número de puertas que deben atravesar las
señales.
Como se considera que cada sumador tiene un tiempo de respuesta de 2 retardos de 10 ns cada
uno para producir la suma y el acarreo, el resultado total del sumador de la figura no será correcto hasta que
transcurran n * 20 ns.
ETSII – Dpto. Tecnología Electrónica
Página: 14 /55
MSA
Sistemas de Multiprocesamiento
La ALU
La figura presenta el esquema de utilización del sumador paralelo, que emplea los registros R1 y R2 para
almacenar los operandos.
El resultado se almacena en R1, activando la señal de carga, que también sirve para determinar el acarreo c n −1 se
deposite en el señalizador de acarreo.
Sumador serie
En este caso, un único sumador elemental va sumando cada pareja de bits de los registros.
Un sumador elemental va recibiendo, en cada paso controlado por la señal de reloj procedente de la Unidad de
Control, los dos bits que están contenidos en los registros R1 y R2 cuyo contenido se desplaza una posición a la
derecha en cada paso.
Un flip-flop, tipo D, se carga con el acarreo producido con cada suma, mientras que el previo que contenía de la
fase anterior lo introduce, al sumador elemental para que se sume con los bits extraídos de R1 y R2.
Los bits suma se guardan en otro registro de desplazamiento dedicado a este fin.
ETSII – Dpto. Tecnología Electrónica
Página: 15 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Por lo tanto, con cada impulso de reloj se producen los siguientes acontecimientos:
1. Se sacan 2 bits de R1 y R2, que se suman con el acarreo de la suma anterior, guardado en el flip-flop D.
2. El bit suma se guarda en otro registro de desplazamiento que contendrá el resultado.
3. Además, el flip-flop D se carga con el acarreo actual, que se memoriza hasta que se efectúe la suma de
la siguiente pareja de bits.
Restador paralelo
Aunque se pueden diseñar restadores elementales, como la operación más frecuente es la suma, se suele añadir
al sumador un circuito que permita llevar a cabo la suma y la resta, seleccionando la operación a efectuar
mediante una señal de control, llamada S/R, que suma si S/R = 0.
Sea la resta de dos operados positivos, (A – B).
Sumando y restando
2 n se puede escribir:
A-B =A-B+
2 n - 2 n = A + ( 2 n - B) - 2n
n
El término ( 2 - B) es el complemento a dos de B y se calcula haciendo la negación lógica de B y sumando una
unidad al resultado.
La negación se puede realizar a base puertas XOR y el 1 que hay que sumar se consigue introduciendo 1 por el
acarreo c −1 .
2 n al resultado es lo mismo que restar 1 al bit s n inexistente, lo que en la práctica se reduce
a ignorar el acarreo c n −1
Por otro lado, restar
En la figura se muestra el esquema de un sumador-restador paralelo.
Si la señal S/R = 0, el circuito produce la suma de los operandos, mientras que si S/R = 1, genera la resta.
ETSII – Dpto. Tecnología Electrónica
Página: 16 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Suma y resta en binario sin signo
Se puede emplear directamente el esquema de la figura para este tipo de representación.
Las condiciones en las que se origina desbordamiento (DE) son las siguientes:
1. En el caso de la suma, el desbordamiento es directamente suministrado por el bit de acarreo
c n −1 ,
puesto que se "lleva 1 " que no cabe en el resultado.
2. En el caso de la resta, el desbordamiento se produce cuando B > A, puesto que daría resultado
n
n
n
negativo. Dado que el resultado realmente calculado es A = ( 2 - B), si B > A, será 2 + A - B < 2 y
por tanto, c n −1 = 0, lo que significa que la condición de desbordamiento se produce cuando c n −1 = 0
De aquí se deduce que la condición de desbordamiento sigue la expresión:
DE = c n −1 ⊕ S / R
Suma y resta en complemento a uno
Las operaciones de suma y resta en complemento a uno, precisan de una ligera modificación en el esquema de la
figura para funcionar correctamente.
Por un lado, una cantidad en complemento a uno sólo exige la negación lógica y, por lo tanto, no se deberá
introducir la señal de control S/R por el acarreo c −1 .
Por otro lado, al sumar dos números con este tipo de representación, para que el resultado sea correcto hay que
sumar el acarreo al resultado.
Ejemplo:
c n −1 al resultado se puede conseguir recirculando dicho bit hasta el acarreo c −1 .
La condición de desbordamiento sigue la ley: DE = c n −1 ⊕ c n − 2
La suma del acarreo final
ETSII – Dpto. Tecnología Electrónica
Página: 17 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Suma y resta en complemento a dos
El esquema propuesto en el sumador-restador paralelo produce la suma realizando el complemento a dos del
sustraendo (B), por lo que es directamente utilizable para operandos en forma de complemento a dos.
Sin embargo, como los bits de-más peso de los operandos ( a n −1 , bn −1 ) representan el signo y el resto la magnitud,
el desbordamiento viene dado al igual que el complemento a uno, por: DE =
c n −1 ⊕ c n − 2
Al sumar dos números en complemento a dos, se pueden dar cuatro casos:
1) Los sumandos A y B son positivos
Admite dos variantes:
a) Si la suma es menor que 2 − 1 , o sea, el resultado cabe en el número de bits que tienen los
operandos y c n −1 y c n − 2 son cero.
n
En este caso el desbordamiento ( c n −1 ⊕ c n − 2 ) será cero (como debe ser) y
rn −1 también será
cero, indicando que el resultado es un número positivo.
Ejemplo:
b) Si la suma "no cabe" en el espacio reservado,
c n − 2 será uno y c n −1 será cero, con lo que el
c n −1 ⊕ c n − 2 = 1 . Se produce desbordamiento, puesto que el resultado sale de
tipo negativo rn −1 = 1 cuando debería ser cero.
desbordamiento
Ejemplo:
2) Cuando A > 0 y B < 0, siendo A ≥ B
c n −1 y c n − 2 valdrán siempre 1, quedando la expresión del desbordamiento: c n −1 ⊕ c n − 2 = 0 , como debe
ser, puesto que la suma de dos números de distinto signo no puede producir sobrepasamiento en ningún
caso.
Ejemplo:
3) Cuando A > 0 y B < 0, siendo A < B Æ
c n −1 y c n − 2 valen cero y el desbordamiento c n −1 ⊕ c n − 2 = 0 .
Igual que en el caso anterior, no se puede producir desbordamiento y
rn −1 = 1 al ser A < B .
Ejemplo:
ETSII – Dpto. Tecnología Electrónica
Página: 18 /55
MSA
Sistemas de Multiprocesamiento
La ALU
4) Cuando A < 0 y B < 0.
Pueden producirse dos casos:
a) Si la suma "cabe" en el lugar reservado, siendo
Además
c n −1 = c n − 2 = 1 Æ c n −1 ⊕ c n − 2 = 0
rn −1 = 1 , indicando que el número es negativo.
Ejemplo:
b) Si "no cabe" la suma en el lugar reservado,
desbordamiento y
c n − 2 =0 y c n −1 =1, por lo que se produce
rn −1 = 1 .
Ejemplo:
Suma y resta en signo y magnitud
Se utiliza la señal auxiliar de complemento (CPTO) para indicar si se realiza el complemento a uno del segundo
operando (CPTO = 1) o no (CPTO = 0).
Esta señal se obtiene mediante una combinación de
ETSII – Dpto. Tecnología Electrónica
a n −1 , bn −1 y S / R , según la tabla de la figura.
Página: 19 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Para corregir las sumas que se indican en la tabla, al resultado se le invierte cuando CPTO = 1 y el acarreo del
número (sin considerar el signo), c n − 2 =0.
La señal que controla esta inversión es la salida CPTS, que corresponde a la función: CPTS = CPTO * c n − 2
Por trabajar con complemento a uno, cuando se produce acarreo en el número (sin contar el signo) se suma el
mismo mediante una realimentación a través de c −1
Los 8 casos de la tabla pueden comprobarse para constatar que realizan correctamente la suma con el
procedimiento propuesto.
Ejemplo:
Primer paso de la tabla.
El bit de signo (subrayado) se trata, paralelamente, con otra lógica para obtener el signo de la suma.
El número será positivo ( s n −1 = 0 ) en cualquiera de estos casos:
1. Cuando hay llevada en
c n − 2 y el signo de A es positivo.
2. Cuando no hay llevada y la operación es resta de un número negativo.
3. Cuando no hay llevada y la operación es suma de un número positivo.
En los demás casos, el resultado es negativo.
Algebraicamente se representa así:
El sobrepasamiento DE se produce cuando CPTO = 0 y
c n − 2 =1.
En la figura se muestra el diagrama del sumador-restador de signo y magnitud.
ETSII – Dpto. Tecnología Electrónica
Página: 20 /55
MSA
Sistemas de Multiprocesamiento
La ALU
De la tabla se ha obtenido CPTO, llamando A =
a n −1 , B = bn −1 y R = S / R .
Sumador rápido de acarreo anticipado
Con objeto de aumentar la velocidad de los sumadores, se presenta un modelo que no tiene que esperar a que se
originen los acarreos en los sumadores elementales para pasar de un paso sumador completo al siguiente.
Utilizando una lógica auxiliar se proporcionan, simultáneamente, todas las entradas de acarreo.
Los sumadores de "acarreo anticipado" son considerablemente más rápidos que los sumadores paralelos con
arrastre en serie y se emplean en los computadores rápidos.
Si se llama C1 al acarreo del primer sumador completo, éste valdrá 1 en los dos siguientes casos:
1. Cuando A1 = B1 = 1
2. Cuando A1 o B1 valen 1 y además, el acarreo previo
ETSII – Dpto. Tecnología Electrónica
Página: 21 /55
C0 = 1 .
MSA
Sistemas de Multiprocesamiento
Si se denomina G a la primera condición:
La ALU
G1 = A1 * B1
Para expresar la segunda condición, se comienza definiendo P1 :
P1 = A1 * B1 + A1 * B1 = A ⊕ B con estas
dos definiciones, la ecuación lógica completa para la primera y segunda condición se puede escribir:
C1 = G1 + P1 * C 0
Donde cada uno de los dos términos representa una de las dos condiciones y los subíndices 1 se refieren al
primer paso sumador.
Para el segundo paso se puede escribir una ecuación similar:
C 2 = G2 + P2 * C1
Sin embargo, en esta ecuación el término C1 puede sustituirse por su valor de la siguiente manera:
Por lo tanto, la expresión de C2 se representa en términos de G y P solamente, a excepción de C 0 .
Esto es importante, ya que ahora C2 sólo depende de las señales de entrada A y B hasta los dos primeros pasos
sumadores. Esto significa que, para conocer C2 sólo es necesario disponer de los valores de A1, A2, B1 y B2.
No se precisa la salida C1 del primer paso.
De forma semejante, la ecuación de C3 se puede escribir, únicamente, en términos G y P:
Generalizando para un valor k de etapa sumadora:
Esta última ecuación indica que las entradas de acarreo de todas las etapas de un sumador pueden desarrollarse
tan pronto como se reciben las señales A y B, puesto que los términos G y P sólo dependen de A y B.
La figura se muestra un sumador de acarreo anticipado de 4 bits con los circuitos lógicos de generación de G y P.
ETSII – Dpto. Tecnología Electrónica
Página: 22 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Si se supone que la lógica de anticipación del acarreo consume un tiempo de 30 ns y cada paso sumador precisa
de otros 30 ns, el sumador completo de la figura tardará 60 ns en producir el resultado correcto.
Para sumadores de 5 o más bits, la diferencia entre el tiempo de retardo de este tipo de sumador y los de acarreo
serie, se hace cada vez mayor.
La limitación más importante del sumador con acarreo anticipado es que, a medida que aumenta el número de
etapas, la ecuación se hace más larga, al igual que cada uno de sus términos. Se necesitan más puertas y éstas
deben poseer mayor número de entradas.
En la figura se presenta el diagrama lógico del circuito integrado comercial 74182, que realiza la función de
generador de acarreo anticipado.
ETSII – Dpto. Tecnología Electrónica
Página: 23 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Otra de entre las numerosas soluciones propuestas para acelerar la operación de la suma, citaremos la técnica
del "puente" (by pass)
Se divide el sumador en secciones (o subsumadores), cada uno de ellos activo sobre un pequeño número de bits.
En una primera fase, se realizan las sumas al nivel de cada sección, sin tomar en cuenta el arrastre,
eventualmente generado en la sección inmediatamente anterior.
En una segunda fase, los arrastres son propagados.
El arrastre generado en la sección (i – 1) debe conducir a añadir 1 a la sección i.
Esta operación puede llevar a la sección i a propagar también este arrastre hasta la sección (i + 1).
La astucia del procedimiento se centra en detectar, sin necesidad de realizar la propagación en la sección i, si
este arrastre existe y ha de transmitirse a la sección (i + 1).
Si la respuesta es positiva, el arrastre generado en la sección (i – 1) se transmitirá a la sección (i + 1) cuenteando
a la sección i; por consiguiente, no tendrá que atravesar más que una puerta.
Es cuestión de encontrar la condición que permitirá saber, sin tener que efectuar realmente la propagación, si el
arrastre puenteará o no la sección.
Es fácil convencerse de que tal condición se enuncia así: el arrastre será bloqueado cuando los dos operandos
presenten dos dígitos binarios idénticos en una de sus posiciones, por lo menos, (o si el resultado obtenido en la
primera fase de la operación posee al menos un dígito cero).
En dicho tipo de sumador, la duración de la suma es igual al doble del tiempo máximo de propagación del arrastre
en una sección.
ETSII – Dpto. Tecnología Electrónica
Página: 24 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Sumador-restador BCD
En los computadores, tanto la suma como la resta se realizan casi siempre en código binario puro.
En calculadoras electrónicas y otras aplicaciones se utiliza, frecuentemente, el código BCD, que es el decimal
codificado en binario.
Los sumadores y restadores BCD realizan las operaciones poniendo en práctica los mismos algoritmos e iguales
circuitos básicos que cualquier otro sumador-restador binario; sin embargo, los datos se emplean en formato BCD,
en lugar del binario.
Ejemplo:
Se presenta un ejercicio de suma en BCD.
En forma decimal, la suma, incluido el acarreo de 1, nos resulta muy similar.
Sin embargo, en BCD la suma de cada uno de los grupos de dígitos, da como resultado tres números. 5, 12 y 9.
Si se leyese directamente, la suma se escribiría: 5, (12), 9, lo cual, naturalmente, resulta incorrecto.
El procedimiento adecuado determina que en las decenas se ponga sólo el número 2, arrastrando el 1 a la
posición de las centenas, para cambiar el 5 que habrá en esa posición por un 6.
Cuando se suma un número en formato BCD mediante circuitos lógicos, se precisa una lógica auxiliar especial
para detectar el acarreo y corregir los dígitos BCD siguiendo el procedimiento expuesto.
En el ejemplo anterior, además de la detección del acarreo y su propagación al grupo de las centenas, el grupo de
las decenas debe corregirse para proporcionar una salida en forma binaria de 2 y no de 12, lo que ocasiona el
cambio del número 1100 al 0010.
La figura muestra un circuito sumador BCD que puede generar el acarreo y corregir la salida del sumador a un
dígito BCD de 4 bits.
ETSII – Dpto. Tecnología Electrónica
Página: 25 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Antes de discutir la lógica auxiliar para producir la generación de acarreo y la corrección, pero en el caso general,
cualquiera de los grupos de dígitos puede exceder de sumar dos números cuya suma sea tan grande como 15 sin
generar acarreo, se precisa una corrección y un acarreo decimal siempre que la suma supere a 10.
En el ejemplo precedente, sólo el grupo de las decenas generó acarreo y precisaba de corrección, pero en el
caso general, cualquiera de los grupos de dígitos puede exceder de 9 al hacer una suma.
Por ejemplo, para hacer una suma de dos números BCD de 3 dígitos, se requieren 3 fases paralelas de sumador,
cada una de ellas con capacidad para generar un acarreo y corregir la salida cuando sea necesario.
En el esquema existe un circuito de detección en cada etapa del sumador para proporcionar en la salida un
acarreo si el número suma es mayor que 9.
Este detector consiste en unas pocas puertas decodificadoras (U1 a U3), que detectan los resultados de 10,
11,12, 13, 14 ó 15, o el acarreo binario para sumas comprendidas entre los valores 16 a 19.
Para corregir la salida de la suma de cualquier fase que ha generado un acarreo se suma 6 (en binario 0110) a
dicho resultado, puesto que 0110 es el complemento a dos de 1010 (10) y sumar 0110 es lo mismo que restar
1010 (en decimal 10). La corrección se efectúa en un segundo sumador, en donde se añade 0110 a la suma sin
corregir. La figura ilustra la forma en que la presencia de un acarreo a la salida de U1 (resultado superior a 9)
hace que se sume 0110 en el sumador de corrección y la ausencia de acarreo, hace que se sume 0000 y no se
modifique el resultado del primer sumador.
La etapa de la figura se puede conectar en paralelo con varias etapas idénticas para formar un sumador
multidígito BCD. Los sumadores de 4 bits que hay en cada etapa pueden ser de tipo paralelo simple, de tipo de
acarreo circular o alguna combinación de ambos.
Si la salida de acarreo está conectada a C IN de la siguiente etapa, forma un sumador BCD con acarreo en serie,
La resta BCD puede realizarse de diversas formas.
En este análisis se considerarán sólo dos:
• la resta por complemento a uno y
• la resta por complemento a nueve.
En la resta por complemento a uno se efectúa la diferencia A - B de dos cantidades BCD, tratándolas como si
estuviesen representadas en binario puro y haciendo el complemento a uno del sustraendo B.
Posteriormente se deben hacer las correcciones pertinentes, que consisten en complementar a uno el resultado si
es negativo, o sea, si no existe acarreo superior, y en sumar 1010 a aquellos dígitos que cumplan la condición
XOR entre su acarreo hexadecimal y el acarreo del dígito superior.
Las figuras muestran unos ejemplos y un circuito que emplea esta técnica, que necesita de una etapa sumadora
para la resta binaria y otra para llevar a cabo las correcciones comentadas.
ETSII – Dpto. Tecnología Electrónica
Página: 26 /55
MSA
Sistemas de Multiprocesamiento
ETSII – Dpto. Tecnología Electrónica
La ALU
Página: 27 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Los principios básicos de sustracción por complemento a nueve se presentan de forma gráfica en el diagrama.
Obsérvese que cada uno de los sumadores BCD tiene un circuito BCD sumador.
El algoritmo de la resta por complemento a nueve consiste en complementar el sustraendo y, después, seguir el
algoritmo de suma, excepto que la salida de acarreo de la última etapa (la más significativa) se ha de conectar con
la entrada de acarreo de la primera.
Debido a que un restador de complemento a nueve usa los mismos circuitos que un sumador, puede construirse
un sumador-restador con menos lógica auxiliar, que la necesaria si se construyese a base de dos circuitos
independientes.
Unidad aritmética-lógica para Abacus
Tenemos en nuestra mano todos los elementos para componer el esquema de una unidad aritmética-lógica
elemental, con la que dotar a Abacus.
La unidad aritmética de Abacus está montada entre un bus fuente M, donde se mantienen los niveles lógicos
representativos del segundo operando y un acumulador AC que mantiene los niveles lógicos correspondientes al
primer operando hasta que la señal de muestreo EAC introduce el resultado en el acumulador.
Consta de un sumador en paralelo y de un conjunto de puertas para ejecutar las operaciones lógicas y distribuir
las informaciones de acuerdo con las operaciones aritméticas por efectuar.
Además, el acumulador está montado como registro de desplazamiento.
Las diferentes operaciones están gobernadas por señales lógicas, procedentes normalmente del generador
central de secuencias del ordenador.
Todas estas señales son de nivel, de tal suerte que al cabo de un cierto tiempo después de su posicionamiento el
resultado de la operación se estabiliza bajo la forma de niveles lógicos, que serán introducidos en el acumulador
por el impulso EAC.
La figura representa el i-simo elemento de esta unidad.
ETSII – Dpto. Tecnología Electrónica
Página: 28 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Pasamos revista a las diferentes operaciones que permite:
¾
¾
CAR carga: transferencia al acumulador de la información presente sobre el bus M.
CARC carga con complementación: el mismo proceso, pero después de complementar cada dígito.
SUM adición: suma al contenido del acumulador la información presente sobre el bus M.
Esta adición es operada por el sumador en paralelo y la duración de la misma es el tiempo de propagación
de los arrastres.
¾ SUS sustracción: se resta la información en el bus M del contenido del acumulador.
Se realiza complementando la información del bus M y después sumandola en el sumador paralelo.
La operación es correcta si Abacus opera en complemento a 1.
Si no, se precisa posicionar un nivel 1 a la entrada de arrastre a la etapa de sumador de menor peso.
¾
¾
¾
AND
OR
¾
ORX
¾
DESI desplazamiento a izquierda: desplazamiento del contenido del acumulador una posición binaria
a la izquierda.
DESD desplazamiento a derecha: desplazamiento del contenido del acumulador una posición binaria a
la derecha.
¾
intersección lógica entre la información en el bus M y el contenido del acumulador.
reunión lógica entre la información en el bus M y el contenido del acumulador.
(Estas dos últimas operaciones se realizan según el esquema de la figura 4).
OR exclusivo entre la información en el bus M y el contenido del acumulador.
Esta operación se ejecuta aquí por parte del sumador, inhibiendo la propagación de los arrastres.
ETSII – Dpto. Tecnología Electrónica
Página: 29 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Los indicadores asociables a la unidad aritmética de Abacus podrían ser los siguientes:
¾
DEB indicador de desbordamiento cableado según el esquema de la figura 9, si Abacus opera en
complemento a 2.
¾
S
¾
CE
indicador de cero. Puede cablearse mediante un NOR recibiendo todas las salidas Q de los
biestables del acumulador, si Abacus trabaja en complemento a 2. (En complemento a 1 se precisaría un
OR detrás de un NOR para todas las salidas Q y de un NOR para todas las salidas Q).
indicador de signo, igualmente cableado según el esquema de la figura 9.
Aritmética binaria en coma flotante
Para empezar, recordemos que los números en coma flotante se representan en la forma S .M .α , donde S es el
signo del número, M la mantisa y E el exponente y α generalmente vale 2 ó 16 en aritmética binaria.
E
Las operaciones se llevan a cabo sobre números normalizados, esto es, sobre números cuyo valor de exponente
está ajustado para que la mantisa tenga el mayor número posible de dígitos significativos. Por consiguiente, los
operadores en aritmética flotante deben, no solamente ejecutar la operación correspondiente, sino también
normalizar el resultado obtenido.
Sumador-restador en coma flotante
En la representación en coma flotante, los n bits de los operandos se dividen en dos grupos, uno de p bits, que
expresa la mantisa M y otro, de q bits, que representa el exponente E.
Siendo r la base del exponente, el valor del operando es:
X = M *rE
Dados los operandos A y B de mantisa MA y M B y de exponentes respectivos EA y EB, la realización de la
operación de suma o de resta requiere los siguientes pasos:
1. Separación de exponentes y mantisas. Así se puede proceder a su tratamiento individual.
Esta separación supone una extensión de signo para que cada elemento MA, MB, EA y EB ocupe una
palabra de n bits. Puesto que la representación de los exponentes suele hacerse en exceso a 2
extensión de signo se reduce a rellenar con ceros los bits adicionales.
En el caso de las mantisas, se extenderá el signo de acuerdo con su representación.
q −1
, la
2. Resta de los exponentes. El resultado de esta sustracción define el exponente previo del resultado, la
mantisa que se debe desplazar para alinear los dígitos de igual peso, así como el número de
desplazamientos que requiere la alineación.
3. Alineación de mantisas. Esta operación consiste en desplazar aritméticamente a la derecha el
operando de menor exponente. De esta forma, se consigue que MA y MB tengan los dígitos del
z
mismo peso, en posiciones idénticas. Es importante notar, que, si r = 2 , cada incremento de una
unidad en el exponente supone un desplazamiento de z lugares, que es normal en bastantes
4
máquinas que tienen r = 16 = 2 .
Evidentemente, en este desplazamiento se pierden dígitos significativos del operando menor.
Supongamos a sumar los números A = 12.000 x
ETSII – Dpto. Tecnología Electrónica
10 −1 y B = 80.000 x 10 2 que se escriben, respectivamente:
Página: 30 /55
MSA
Sistemas de Multiprocesamiento
La ALU
4. Suma o resta de las mantisas. En el caso frecuente de usar la representación de signo y magnitud,
habrá que determinar, analizando los signos y la operación pedida, si se hace suma o resta.
La obtención de resultados que excedan de los p bits es muy frecuente en esta operación, puesto que, al
estar normalizadas las mantisas, la suma de dos cantidades positivas o negativas dará siempre
desbordamiento de mantisa en el resultado. Ahora bien, si se ha hecho la extensión de signo, este
desbordamiento no se refleja en el operador de suma y resta que tiene n bits.
La forma de eliminar los bits sobrantes, se conoce como redondeo.
Consideremos la sustracción A - B. En la representación en valor absoluto y signo, se deberán primeramente
comparar las mantisas de A y B, comprobar que la de B es superior a la de A y deducir de ello que la operación
pertinente es sustraer la mantisa de A de la mantisa de B y al resultado darle el signo menos:
4. Normalización del resultado. Se trata de desplazar adecuadamente la mantisa resultado, de forma que
su dígito más significativo ocupe el lugar izquierdo de los p bits disponibles.
Simultáneamente, se corrige el exponente para reflejar los desplazamientos efectuados.
Cuando existe desbordamiento de mantisa en el resultado, esta normalización produce un
deslizamiento a la izquierda e incrementa en uno al exponente, eliminando así este desbordamiento.
El proceso de normalización puede producir un desbordamiento del exponente, rebasando los límites de su rango
( 2 − q ; 0). En este caso, se excede el rango total de representación y se debe activar un biestable de
desbordamiento y/o acotar el resultado al mayor o menor número capaz de ser representado.
q
Aunque es posible diseñar un operador combinacional que contenga los elementos necesarios para realizar las
funciones descritas, su complejidad y costo hacen que sea muy excepcional el computador que lo posea.
Este operador necesitaría:
- Un restador de exponentes con un selector para el mayor.
- Un desplazador de mantisas con una serie de multiplexores para seleccionar la mantisa MA o MB a
desplazar.
- Un sumador-restador de mantisas.
- Un normalizador compuesto por un incrementador-decrementador de exponente y
- Un desplazador de mantisa.
ETSII – Dpto. Tecnología Electrónica
Página: 31 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Funcionamiento de un operador de suma flotante.
Nos proponemos describir el funcionamiento de dicho operador sobre operandos con la siguiente configuración:
S Æ 1 bit signo del operando; signo más: S = 0 y signo menos: S = 1;
E Æ e bits exponente; representa una potencia de 2 y está comprendido entre − 2
El exponente − 2
e −1
(
está representado por E = 0 y el exponente 2
e −1
)
e −1
(
y 2
e −1
)
−1
− 1 está representado por E = 2 e − 1 .
M Æ m bits mantisa; la mantisa de un operando negativo está representada en complemento a 2.
Un operando normalizado se caracteriza por el hecho de que el bit de signo y el bit de mayor peso de la mantisa
tienen valores diferentes.
El operador utilizado, según esquema en la figura 23, comprende dos registros A y B para los operandos y un
sumador de m + 1 bits que ejecuta las sustracciones por complementación previa del segundo operando.
Se emplea, de una parte, para comparar los exponentes por sustracción, cuyo resultado va a un registro CD
montado como contador-descontador binario con bit de desbordamiento, y de otra parte, para las operaciones con
signo y mantisa, cuyo resultado va a un registro RD montado como registro de desplazamiento a derecha e
izquierda con bit de desbordamiento. (En general, se utiliza el sumador de la unidad aritmética fija, al que se
añade eventualmente un sumador de exponentes)
La operación se divide en varias fases (fig. 24):
ETSII – Dpto. Tecnología Electrónica
Página: 32 /55
MSA
Sistemas de Multiprocesamiento
La ALU
(1) Comparación de los exponentes:
Se resta EB de EA sumando a EA EB complementado y el resultado va a CD.
Si el resultado es nulo, las dos mantisas están correctamente alineadas y se pasa inmediatamente a la
fase de suma o sustracción de las mantisas.
Si no, el contenido de CD permitirá contar los desplazamientos necesarios para alinear a las mantisas.
(2) Alineamiento de las mantisas.
Esta operación se realiza sobre el operando cuyo exponente es menor.
Si EA < EB, el resultado de la sustracción de los exponentes es negativo, y se caracteriza por el valor 1
del bit de desbordamiento.
El complemento del contenido de CD indica el número de desplazamientos por efectuar.
CD se usará entonces en funciones de contador, y los desplazamientos se sucederán hasta un nuevo
desbordamiento. El desplazamiento de la mantisa se efectúa en RD; entonces se envía los contenidos de
SA y MA, yuxtapuestos a RD y se opera por desplazamiento aritmético hacia la derecha (lo que permite
reproducir el signo en los bits no significativos y por tanto conservar la representación complementada).
En el caso EA > EB, el desplazamiento aritmético a la derecha afecta a SB y MB, pero en esta ocasión el
registro CD se emplea como descontador, deteniéndose los desplazamientos cuando CD = 0 (nótese que,
después de todo, pueden detenerse al cabo del m-simo desplazamiento, ya que a partir de entonces la
mantisa pierde todo su significado).
Esta fase finaliza preservando el mayor exponente en CD y devolviendo la mantisa contenida en RD al
registro A o B que corresponda.
(3) Suma-sustracción de las mantisas.
Estas operaciones se ejecutan sobre el conjunto formado por el signo y mantisa, yuxtapuestos.
La sustracción se obtiene sumando a SA MA el complemento auténtico de SB MB.
El resultado a RD, tomando en cuenta el signo y un eventual desbordamiento.
Las operaciones de normalización se llevan a efecto mediante desplazamientos sobre el registro RD, que contiene
el signo y la mantisa del resultado, y sobre el registro CD, que contiene el exponente.
ETSII – Dpto. Tecnología Electrónica
Página: 33 /55
MSA
Sistemas de Multiprocesamiento
La ALU
(4) Normalización en el caso de desbordamiento.
Consiste en desplazar la mantisa del resultado una posición a la derecha, siendo sustituido el bit de mayor
peso por el de desbordamiento.
El signo queda inalterado.
El contenido del registro CD se ve aumentado en una unidad.
(5) Normalización en el caso que la mantisa del resultado contenga dígitos no significativos a su izquierda.
Esta eventualidad es detectable haciendo un test sobre el signo y el dígito de mayor peso de la mantisa.
Si son distintos, el número ya estaba normalizado.
Si no, es preciso realizar desplazamientos aritméticos de la mantisa hacia la izquierda hasta que sean
distintos. A cada desplazamiento se resta una unidad del contenido de CD.
El proceso se detiene incondicionalmente al cabo de m desplazamientos.
Multiplicación y división en coma flotante
Se puede observar que la multiplicación flotante es reducible a la multiplicación de las mantisas y a la suma de los
exponentes, en tanto que la división se reduce a la división de las mantisas y a la sustracción de los exponentes.
No hay operación preliminar de comparación de exponentes o de alineamiento de las mantisas.
La normalización es sencilla si se compara con la suma.
La multiplicación de dos números comprendidos entre 1/2 y 1 da un resultado entre 1/4 y 1 de tal suerte que la
normalización supondrá, como máximo, un desplazamiento de una posic ión a la izquierda.
La división dará un resultado entre 2 y 1/2, de forma que su normalización implicará, como máximo, un
desplazamiento de una posición a la derecha.
Se ejecutan estas operaciones sobre las mantisas representadas en valor absoluto.
OPERACION DE MULTIPLICACION
La multiplicación se suele realizar utilizando un sumador-restador y un algoritmo adecuado.
Solamente los computadores muy potentes disponen de operadores específicos de multiplicación.
Se estudian los principales algoritmos empleados para realizar productos.
Algoritmo de suma desplazamiento
Su fundamento se basa en el método manual de la multiplicación.
Ejemplo:
ETSII – Dpto. Tecnología Electrónica
Página: 34 /55
MSA
Sistemas de Multiprocesamiento
La ALU
El método empleado para realizar una multiplicación es el siguiente:
a) Se van inspeccionando, sucesivamente, los bits de B (multiplicador).
b) Si bi = 1, se suma al resultado el operando A (multiplicando), desplazado (i – 1) lugares a la izquierda.
c) Si bi = 0, nada se hace.
Consideremos el siguiente ejemplo numérico:
Los productos parciales son iguales al multiplicando si el bit correspondiente del multiplicador es 1, nulos en caso
contrario.
Una primera operación consiste, entonces, en verificar sucesivamente cada bit del multiplicador, de donde se
deducen los productos parciales que, convenientemente desplazados, se totalizan en un acumulador.
Nótese que si multiplicador y multiplicando tienen n bits cada uno, el acumulador necesario deberá poseer
capacidad para 2n bits; por consiguiente, el resultado se obtiene en doble longitud.
La unidad aritmética capaz de realizar una multiplicación debe estar dotada de un anejo al acumulador,
generalmente llamado Multiplicador-Cociente", abreviadamente M.C., porque contiene el multiplicador en el caso
de la multiplicación, el cociente en el caso de la división.
La figura representa la unidad tradicional de multiplicación.
ETSII – Dpto. Tecnología Electrónica
Página: 35 /55
MSA
Sistemas de Multiprocesamiento
La ALU
La operación se inicializa de la manera siguiente:
(1) carga del multiplicador en el acumulador;
(2) desplazamiento a derecha del contenido del conjunto formado por el acumulador y el registro M.C., cuyo
resultado es poner 0 en el acumulador y el multiplicador en M.C.;
(3) carga del multiplicando en B (que, eventualmente, pudiera ser sustituido por el registro M de intercambio
con la memoria),
A continuación se ejecuta la operación siguiendo las líneas marcadas por el organigrama de principio de la figura:
Al final de la operación, el resultado de la multiplicación ocupa en doble longitud el conjunto acumulador + MC.
Los multiplicadores reales, en lugar de desplazar A hacia la izquierda, desplazan el resultado parcial a la derecha.
n
Es decir, se comienza desplazando el resultado parcial totalmente a la izquierda (multiplicado por 2 ).
Por cada bit de B cuyo valor bi = 1, se desplaza a la derecha el resultado y se suma A.
n
Con estos desplazamientos se elimina el producto por 2 al dividir n veces por 2 (desplazamientos a la derecha).
Ejemplo
Se hace referencia al diagrama del multiplicador en el que A y B contienen el multiplicando y el multiplicador y los
registros R1 y R2, encadenados, acabarán conteniendo el producto.
En la figura se muestran los distintos contenidos de los registros del multiplicador, partiendo de que se desea
multiplicar 101011 por 001011.
ETSII – Dpto. Tecnología Electrónica
Página: 36 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Algoritmo de sumas y restas
Un número binario que contenga una sola cadena de unos puede descomponerse así:
Ejemplo:
Descomponer el número 011100.
Por tanto, se verifica que 011100 = 100000 - 100.
Un número con varias cadenas de unos puede descomponerse basándose en esta regla.
ETSII – Dpto. Tecnología Electrónica
Página: 37 /55
MSA
Sistemas de Multiprocesamiento
Ejemplo:
La ALU
Descomponer el número 0110111.
Cuando se encuentra un principio de cadena de unos, al observar el número de derecha a izquierda, se resta 2
siendo i la posición que ocupa el primer uno y se suma 2
unos.
i −1
i −1
cuando se encuentra un cero tras una cadena de
Descomponiendo de esta manera un operando del producto, si éste tiene cadenas largas de unos, se realizan
menos operaciones para realizar la multiplicación.
En efecto, según el método anterior:
hay que realizar 6 sumas.
Sin embargo, descomponiendo B:
hay que realizar 4 sumas/restas.
En la figura se muestra el organigrama de un multiplicador que siga el método expuesto, usando los mismos
registros que el multiplicador de suma desplazamiento.
ETSII – Dpto. Tecnología Electrónica
Página: 38 /55
MSA
Sistemas de Multiprocesamiento
La ALU
El principal interés de este método es que ofrece la base del algoritmo de Booth.
Algoritmo de Booth
Este método permite multiplicar números con signo, expresados en complemento a dos.
Considérese una multiplicación de dos números en complemento a dos, sin tener en cuenta el signo.
Si el multiplicando A es negativo, no hay problemas puesto que las sumas se realizan en complemento.
ETSII – Dpto. Tecnología Electrónica
Página: 39 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Si el multiplicador es negativo, el resultado del producto será:
2n
n
Por lo tanto, para corregir el producto se prescinde del bit de acarreo 2 y se suma A * 2 .
Los números negativos tienen un “1” en su bit de más peso. Consecuentemente, si en el algoritmo de sumas y
n
restas se eliminan los últimos bloques, queda ya descontado A * 2 .
En resumen, este método es equivalente al anterior eliminando los bloques enmarcados en líneas de punto y raya
del diagrama y prescindiendo del bit de acarreo.
Multiplicador rápido
Este multiplicador genera a la vez todos los sumandos que se forman cuando el producto se halla manualmente y
los suma directamente, añadiendo el acarreo a la columna siguiente.
Debido a la acción de las puertas AND, cuando bi = 0 = 0, el sumando es 00...00, y si bi = 1 , el sumando es
a n ,..., a1 .
Dos vías principales permiten aumentar, por medios lógicos, la velocidad de la multiplicación.
(1) Basándose en la técnica tradicional de suma-desplazamiento y disminuyendo el número de operaciones
parciales sucesivas.
(2) Realizando un operador celular para una multiplicación casi paralela.
ETSII – Dpto. Tecnología Electrónica
Página: 40 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Mejora de la técnica de suma-desplazamiento.
Pueden aportarse modificaciones a la técnica descrita.
Entre las diversas soluciones propuestas, escogemos una que se refiere a la condensación de operaciones por
realizar cuando se tiene una sucesión de 0 o una sucesión de 1. Por consiguiente, se presupone que pueda
verificarse el número de 0 (o de 1) sucesivos.
Caso de una sucesión de 0.
La mejora consiste en dotar al acumulador de circuitos para el desplazamiento de varias posiciones en una sola
operación. En estas condiciones, la sucesión de 0 será tratada por un solo desplazamiento.
Caso de una sucesión de 1.
Se emplea el método llamado de "suma y sustracción". En el esquema tradicional una serie de 1 contiguos da
lugar a una serie de adiciones, cada una seguida de un desplazamiento.
El método consiste en sustituir esta serie de adiciones por una adición y una sustracción.
Veámoslo sobre un ejemplo; sea la operación; Multiplicando x 0 1111100; esta operación implica 5 adiciones, pero
el multiplicador puede también escribirse: 10000000-00000100; de donde se deducen las reglas de la operación
para el caso de presentarse una serie de 1:
(1) Al primer 1 de la serie, se resta el multiplicando del contenido del acumulador.
(2) Al primer 0 después de la serie de 1, se suma el multiplicando con el contenido del acumulador, tras haber
ordenado un desplazamiento de tantas posiciones corno 1 hay en la serio.
Este esquema puede llevarse aún más lejos.
Por ejemplo, si se tiene un cero entre dos series de 1, ello conduce normalmente a una suma para tomar en
cuenta al 0 y a una sustracción para el siguiente 1. De hecho, es posible agrupar estas dos operaciones en una
sola sustracción al nivel del 0.
Multiplicación celular en paralelo.
En el método de suma-desplazamiento, eventualmente mejorado, la multiplicación consiste en hacer un
determinado número de operaciones sucesivas, cada una de las cuales debe concluirse antes de pasar a la
siguiente.
Pero es factible un circuito combinacional con dos entradas (el multiplicando y el multiplicador) que dé el resultado
a la salida en una sola operación.
La red celular de la figura 13 realiza la multiplicación:
Esta operación es ejecutada en paralelo.
La señal EAC que, por lo demás, no es necesaria aquí, muestrea los niveles a la entrada del registro A.
Si se exceptúan la fila y la columna 0, la célula está constituida por una puerta AND y una etapa de sumador.
Fijemos nuestra atención en la célula correspondiente a la fila i y a la columna j.
La puerta AND está cerrada si el bit Xi del multiplicador vale 0: el sumador se limita a transmitir a la fila inferior el
resultado parcial precedentemente obtenido, desplazándolo una posición.
En caso contrario, la puerta se abre: el sumador adiciona el nuevo producto parcial Yj al resultado parcial obtenido
en la fila superior, después practica el desplazamiento de una posición transmitiéndolo a la fila inferior.
Esta solución, mucho más cara que la anterior, puesto que se multiplica por n el número de etapas de sumador,
ofrece la ventaja de ser muy rápida: aproximadamente el doble del tiempo de una suma de n dígitos, ya que un
arrastre atraviesa como máximo 2n + 1 etapas de sumador.
ETSII – Dpto. Tecnología Electrónica
Página: 41 /55
MSA
Sistemas de Multiprocesamiento
La ALU
OPERACION DE DIVISION POR SUSTRACCION-DESPLAZAMIENTO
Al igual que con la multiplicación, los computadores convencionales utilizan para realizar esta operación un
sumador-restador y un algoritmo adecuado.
División con restauración sin signo
Se ofrece un ejemplo para recordar la mecánica con la que se efectúa manualmente una división.
En la multiplicación, los productos parciales eran iguales al multiplicando o nulos, según que el correspondiente bit
del multiplicador valiera 1 ó 0. Se iban totalizando después de desplazar una posición hacia la izquierda a cada
producto parcial en relación con el anterior.
En la división, se resta del dividendo el divisor o cero, según que el correspondiente bit del cociente valga 1 ó 0.
Se recomienza después de practicar un desplazamiento a la derecha del divisor en relación con el dividendo.
ETSII – Dpto. Tecnología Electrónica
Página: 42 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Ejemplos:
Mentalmente se comprueba si el dividendo o dividendo parcial "cabe" entre el divisor.
Si "cabe", ponemos un "1" al cociente y si no, ponemos un "0" y desplazamos un lugar a la izquierda al dividendo
o dividendo parcial.
Si "cabe" (cociente = 1), al dividendo o dividendo parcial se le resta el divisor desplazado a la izquierda totalmente,
obteniéndose otro dividendo parcial.
ETSII – Dpto. Tecnología Electrónica
Página: 43 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Para comprobar si "cabe", en un principio hay que desplazar dividendo y divisor en sus registros, de forma que el
bit más significativo de cada uno coincida en la misma posición.
Tras hacer la diferencia entre Dividendo (D) y divisor (d) y obtener el nuevo Dividendo parcial D, entonces:
¾ Si el resultado es positivo, significa que ha "cabido" y se introduce un 1 al cociente (C), aprovechando el
bit de signos S, al mismo tiempo que se desplaza a la izquierda.
¾ Si la resta es negativa, el contenido de D es incorrecto (negativo) y para restituir su valor originario se
suma D + d.
Cuando el bit de más peso del cociente vale 1, se acaba la división.
Por tanto, multiplicación y división son operaciones muy semejantes.
Basta cambiar sumas en sustracciones e invertir el sentido de los desplazamientos.
Sin embargo, en la división aparece una dificultad complementaria: es necesario añadir a cada etapa una
operación de comparación entre los bits de mayor peso de dividendo y divisor a fin de determinar el bit
correspondiente del cociente.
ETSII – Dpto. Tecnología Electrónica
Página: 44 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Para efectuar una división tomaremos de nuevo la unidad aritmética utilizada con la multiplicación (casi siempre es
común la unidad para ambas operaciones) pero transformaremos el sumador en sustractor, invertiremos el
sentido del desplazamiento y añadiremos el dispositivo de comparación.
Generalmente la operación se inicializa de la manera siguiente:
1. Carga del dividendo en el acumulador
2. Desplazamiento a derechas del contenido del conjunto acumulador + M.C., con objeto de poner a cero el
acumulador y cargar el dividendo en el M.C.
3. Carga del divisor en B.
La operación comenzará por un desplazamiento a izquierda del conjunto acumulador + M.C., lo que tiene por
consecuencia poner el bit de mayor peso del dividendo en Ao y liberar el biestable MCo.
Se compara el contenido del acumulador con el contenido del registro B.
¾
¾
Si (AC) < (B) se pone NICO a cero sin tocar al acumulador,
si (AC) >= (B) se resta del acumulador el divisor, se pone MCO a 1.
Al final de la operación, el registro multiplicador cociente alberga al cociente y el resto aparece en el acumulador.
Por lo mismo que hemos obtenido en la multiplicación un resultado en doble longitud, puede presuponerse aquí un
dividendo de doble longitud.
Basta cargar al principio los bits de mayor peso del dividendo en el acumulador, y los bits inferiores al M.C.
En estas condiciones, se corre el riesgo de cometer un error si el contenido del acumulador es mayor que el
divisor: el cociente excedería entonces a la capacidad del M.C. y se perderían sus bits de mayor peso.
ETSII – Dpto. Tecnología Electrónica
Página: 45 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Se evita este error comparando inicialmente los contenidos de acumulador y registro B.
A este nivel es cuando pueden detectarse las divisiones por cero.
También puede convenirse en no dividir más que por números enmarcados a izquierda, de manera que siempre el
bit de mayor peso del divisor sea 1. (Este será el caso en la división de números flotantes).
División con y sin restauración
En el parágrafo precedente hemos dado por supuesto que contábamos con un dispositivo para comparar
directamente los valores numéricos de los contenidos del acumulador y del registro B.
En realidad, casi nunca se cuenta con él por razones de precio, por lo que puede hacerse la comparación
intentando restar el divisor del dividendo y comprobando el signo de] resultado.
Este es, además, el procedimiento que emplearnos cuando nos vemos obligados (desgraciadamente) a operar
una división sin máquina ni regla de cálculo.
Pero, al contrario de lo que sucede sobre el papel, la unidad aritmética pierde el antiguo valor del dividendo
cuando el intento no surte efecto. En tal caso, es necesario restaurarlo, añadiendo el divisor al dividendo antes de
hacer un nuevo intento, de ahí el algoritmo de la división con restauración.
La división sin restauración corresponde a un algoritmo que permite ahorrar la fase de restauración después de
una sustracción con resultado negativo, lo que supone una ganancia de tiempo.
Sea
α
el contenido del acumulador y
Esta consiste en hacer
α +β
β
el divisor antes de la fase de restauración.
sistemáticamente seguida de una sustracción del divisor desplazado (que vale
β /2) y el resultado es (α + β ) − β 2 = α + β 2
.
Se ve que es posible combinar la restauración y la sustracción que la sigue en una sola operación: la suma del
divisor desplazado.
Dicho en otros términos, un intento dando resto positivo irá seguido, al paso siguiente, de la sustracción del divisor
desplazado, mientras que un intento resultando en resto negativo deberá seguirse de la suma del divisor
desplazado.
ETSII – Dpto. Tecnología Electrónica
Página: 46 /55
MSA
Sistemas de Multiprocesamiento
La ALU
División sin restauración sin signo
Según los pasos del método anterior:
Inicialmente: D = DPi (dividendo parcial).
Se resta el divisor: D = DPi - B.
Si D < 0 Æ D = (DPi - B) + B.
Se desplaza: D = [(DPI - B + B) * 2] - B = (DPi - B) * 2 + B.
Al mismo estado se llega con este otro proceso:
Inicialmente: D = DPi.
Se resta el divisor: D = (DPi – B) * 2.
Se suma el divisor por haber sido negativo D en el paso anterior: (DPi - B) * 2 + B
El organigrama operativo de este procedimiento se muestra en la figura.
ETSII – Dpto. Tecnología Electrónica
Página: 47 /55
MSA
Sistemas de Multiprocesamiento
La ALU
División con signo
Este algoritmo realiza la división con operandos con signo.
No se demuestra su validez, pero deriva
del método de división sin restauración y
en la figura se presenta el organigrama
funcional.
ETSII – Dpto. Tecnología Electrónica
Página: 48 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Capitulo 2.4.- OPERACIONES DECIMALES
Primeramente recordemos que las cifras decimales, de 0 a 9, se codifican generalmente con cuatro dígitos
binarios, según varios códigos diferentes: 8.4.2.1, 2.4.2.1, en exceso de 3, etc.
Por tanto los números decimales quedan organizados en grupos de décadas de cuatro bits.
Las operaciones, que en aritmética binaria se efectuaban bit a bit, se realizarán aquí década a década.
Para efectuar una operación decimal elemental con dos cifras decimales se desearía efectuar la operación binaria
correspondiente con sus dos representaciones binarias. Pero el problema de base de toda la aritmética decimal es
que el resultado obtenido no siempre es una cifra decimal: se precisa corregirlo.
Vamos a mostrar sobre ejemplos sencillos cómo puede resolverse este problema.
El contador decimal.
Consideremos una década de un contador decimal trabajando en la representación 8.4.2.1.
Se quiere que esta década cuente los impulsos que le lleguen por la entrada desde 0 hasta 910 es decir 10012 .
El siguiente impulso deberá devolver el contenido de la década a cero y generar un impulso de arrastre hacia la
próxima década.
Se observa en la figura que el problema puede resolverse cableando la década como un contador binario y
añadiendo algunas puertas para tomar en cuenta el paso de 9 a 10.
El sumador decimal en paralelo
Vamos a revisar los problemas planteados en la realización de un sumador decimal, suponiendo que los números
estén representados en código 8421.
El sumador decimal procesa una década.
Admite a la entrada dos cifras decimales codificadas en binario, A y B, con 4 bits y un arrastre R' proveniente de la
década anterior. A la salida, la suma S en decimal codificado en binario con 4 bits y un arrastre R con destino a la
siguiente década.
La idea de base consiste en comparar el resultado obtenido a la salida del sumador con el resultado que se
obtendría si se hubiera utilizado directamente un sumador binario.
ETSII – Dpto. Tecnología Electrónica
Página: 49 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Inmediatamente se deduce que los resultados obtenidos son idénticos si la suma de las dos cifras es inferior a 9,
que difieren en 6 en caso contrario y que el dígito de menor peso So es siempre correcto.
De ello se deduce que el sumador decimal puede constar de dos partes:
¾ un sumador binario en paralelo sobre 4 dígitos y
¾ un circuito complementario para la corrección sobre los tres dígitos de mayor peso, si la suma de las dos
cifras supera al 9 (fig. 20).
Este circuito complementario se compone a su vez de dos elementos:
1. Un circuito de detección, que detecta las operaciones cuyo resultado es superior a 9.
El criterio de detección es evidente cuando el resultado es superior o igual a 16: basta verificar el arrastre
p. Si el resultado queda comprendido entre 10 y 15, ambos inclusive, esto es lo mismo que decir que se
deberá corregir si la expresión lógica σ 3 * (σ 2 + σ 1 ) es cierta (fig. 21).
2. Una etapa de corrección, reducida aquí a un sumador binario auxiliar, puesto que, en todos los casos en
que el resultado supera a 9, es preciso añadir 610 , o sea 0110 2 a la salida del sumador binario.
Se deduce como consecuencia el esquema de la figura 21.
Los operadores de suma decimal trabajan frecuentemente en paralelo con los bits de una década y en serie con
las diferentes décadas.
Por ello, es necesario al circuito de suma decimal un dispositivo de almacenamiento del arrastre (fig22).
ETSII – Dpto. Tecnología Electrónica
Página: 50 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Capitulo 2.5.- UNIDADES LOGICO ARITMETICAS INTEGRADAS
Se presentan algunos ejemplos de circuitos integrados comerciales destinados a implementar la Unidad Aritmética
y que son capaces de realizar varias operaciones.
Unidad lógico aritmética 74181
El circuito integrado 74181 es un operador combinacional de 4 bits, que permite la realización de 16 operaciones
lógicas y 16 aritméticas.
Su diseño está basado en un sumador de 4 + 4 bits, dotado de generador anticipado de acarreo, al que se le han
añadido una serie de puertas adicionales para realizar el resto de las funciones.
El diagrama de conexionado del 74181 y la nomenclatura que en ella se utiliza tiene el siguiente significado:
A0 - A3: Operando A
B0 - B3: Operando B
F0 - F3: Resultado de la operación
S0 - S3: Selección de operación
M: Selección de operaciones aritméticas (M = 0) o lógicas (M = 1)
Cn: Acarreo
A = B: Activo cuando A = B
P: Propagación de acarreo
Cn+4: Salida de acarreo
G: Generación de acarreo
ETSII – Dpto. Tecnología Electrónica
Página: 51 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Tabla con las 32 funciones que puede realizar el 74181.
Los circuitos 74181 se pueden conectar en cascada para construir un operador del ancho de palabra que se
desee.
ETSII – Dpto. Tecnología Electrónica
Página: 52 /55
MSA
Sistemas de Multiprocesamiento
ETSII – Dpto. Tecnología Electrónica
La ALU
Página: 53 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Unidad aritmética Am 29203
Se trata de un circuito integrado que opera con datos de 4 bits, aunque, si se desea operar con palabras de n bits,
basta colocar en cascada n/4 pastillas Am 29202.
Consta de los siguientes elementos:
- Un operador aritmético-lógico para datos de 4 bits.
- 16 registros de 4 bits a los que se puede acceder por dos puertas.
- Un desplazador, que ejecuta desplazamientos lógicos y aritméticos de una posición en un registro
especial, Q.
- Detector de resultado cero.
- Lógica de control que decodifica las órdenes recibidas.
Además de operaciones especiales de ayuda en la implementación de algoritmos para multiplicación y división,
normalización de coma flotante, dispone de 8 funciones lógicas y 5 aritméticas:
ETSII – Dpto. Tecnología Electrónica
Página: 54 /55
MSA
Sistemas de Multiprocesamiento
ETSII – Dpto. Tecnología Electrónica
La ALU
Página: 55 /55
MSA
Descargar