Professional Documents
Culture Documents
La ALU
Pgina: 1 / 55
MSA
Sistemas de Multiprocesamiento
La ALU
Diagrama general de la
estructura de bloques
de la Unidad Aritmtica:
Pgina: 2 / 55
MSA
Sistemas de Multiprocesamiento
La ALU
Los operadores tienen diferentes clasificaciones, de acuerdo con el concepto que se considere.
Pgina: 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) segn el esquema de la figura 1.
(Obsrvese que, sobre este esquema, el resultado solo es vlido en tanto los operandos fuentes permanezcan
posicionados).
Los operadores con acumulador (fig. 2) no exigen ms 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 operacin.
Cuando a las salidas de los operadores elementales quedan establecidos los niveles lgicos, un impulso EAC
introduce el resultado en el acumulador.
Pgina: 4 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Pgina: 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, despus
de realizar el desplazamiento, estar compuesto por una cadena de bits, que cumplen la ley:
b j +k = a j
Pgina: 6 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Desplazamientos lgicos
Los valores de los extremos se completan con ceros, es decir, los k bits derechos o izquierdos, segn la direccin
del desplazamiento, sern rellenados con ceros.
Obsrvese que en los desplazamientos lgicos existe prdida d informacin.
Tambin hay operadores de desplazamiento que permiten rellenar con unos las posiciones vacas.
Pgina: 7 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Desplazamientos circulares
Los k bits que se vacan en un extremo se rellenan con los que salen por el otro.
Con los desplazamientos circulares no hay prdida de informacin.
Desplazamientos aritmticos
Los desplazamientos aritmticos se realizan sobre nmeros en representacin de complemento y son parecidos a
los lgicos, pero salvando o manteniendo el signo de la cantidad.
Estos desplazamientos suponen una multiplicacin o divisin por una potencia de 2.
En la figura se muestra, grficamente, el comportamiento de este tipo de desplazamientos.
Para multiplicar por potencias de 2 un nmero negativo, representado en complemento a 1 se deben introducir
"unos" por la derecha, en lugar de "ceros".
Pgina: 8 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Desplazamientos concatenados
Son desplazamientos que afectan a un conjunto concatenado de dos o ms 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 funcin lgica, independientemente
de los restantes bits, lo que significa que el resultado de aplicar un operador lgico a un bit no afecta al resultado
de los dems bits.
Pgina: 9 /55
MSA
Sistemas de Multiprocesamiento
La ALU
La operacin negacin se efecta sobre un solo operando, por lo que recibe el nombre de mondica, mientras que
las restantes operaciones lgicas actan sobre dos operandos y se llaman didicas.
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 operacin de interseccin, OR si se trata de la operacin de
reunin, OR exclusivo si de la operacin OR exclusivo.
En el caso del operador con acumulador, la organizacin presentada en la figura 2 puede simplificarse, si se parte
de la idea siguiente: en vez de ejecutar la operacin con los bits homlogos del registro fuente y del acumulador,
se observa que hasta, segn el valor del bit fuente Fi, con dejar inalterado el bit del acumulador o forzarle a un
valor no dependiente ms 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, adems, que estas diferentes funciones
pueden agruparse en un mismo operador gracias a seales asociadas a las diferentes operaciones y controlando
puertas lgicas (fig. 4).
Pgina: 10 /55
MSA
Sistemas de Multiprocesamiento
La ALU
OPERACIONES ARITMETICAS
A continuacin se van comentando las ms importantes.
Cambio de signo
La operacin de "cambio de signo" se efecta de distinta forma segn el tipo de representacin que se emplee.
1. Representacin en binario puro Slo se modifica el bit de signo.
2. Representacin en complemento a uno El cambio de signo coincide la negacin lgica.
En la figura se muestra una etapa de varias puertas R, que cambia el signo del operando cuando la seal
de control C1 = 1. Cuando C1 = 0, se transmite el dato sin modificarlo.
3. Representacin en complemento a dos equivale, a realizar una negacin lgica y aadir una unidad.
En la figura se muestra un esquema que cambia el signo a los datos expresados en complemento a dos.
Pgina: 11 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Extensin de signo
Cuando se traslada un valor numrico a la memoria, a un registro, a un bus, a un operador u otro elemento de
mayor nmero de bits, los bits sobrantes deben rellenarse de forma que no cambie el significado.
Segn el tipo de representacin elegido, el tratamiento es diferente.
a) Representacin en binario con signo El bit de signo se traslada al bit de ms peso del destino,
rellenando con ceros los bits sobrantes.
b) Representacin en complemento a uno o a dos Los bits sobrantes de ms peso se rellenan con el
mismo valor que el bit de signo.
Adicin y Sustraccin
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 operacin ms importante sobre la que se disea la Unidad Aritmtica del computador.
Los sumadores adoptan diferentes estructuras de acuerdo con el tipo de representacin que manejan.
Sumador elemental
Es un operador, consistente en un circuito combinacional capaz de sumar dos dgitos binarios ms el posible
acarreo previo de la etapa anterior, produciendo el dgito suma y el de acarreo para la siguiente etapa.
Ejemplo:
Cada bit
Pgina: 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. Tecnologa Electrnica
Pgina: 13 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Por lo general, las sumas se realizan con nmeros de varios bits, por lo que son relativamente, complejos los
sumadores, aunque todos ellos se basan en sumadores elementales.
Segn 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 mximo nmero de puertas que deben atravesar las
seales.
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.
Pgina: 14 /55
MSA
Sistemas de Multiprocesamiento
La ALU
La figura presenta el esquema de utilizacin del sumador paralelo, que emplea los registros R1 y R2 para
almacenar los operandos.
El resultado se almacena en R1, activando la seal de carga, que tambin sirve para determinar el acarreo c n 1 se
deposite en el sealizador 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 seal de reloj procedente de la Unidad de
Control, los dos bits que estn contenidos en los registros R1 y R2 cuyo contenido se desplaza una posicin 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 contena de la
fase anterior lo introduce, al sumador elemental para que se sume con los bits extrados de R1 y R2.
Los bits suma se guardan en otro registro de desplazamiento dedicado a este fin.
Pgina: 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. Adems, el flip-flop D se carga con el acarreo actual, que se memoriza hasta que se efecte la suma de
la siguiente pareja de bits.
Restador paralelo
Aunque se pueden disear restadores elementales, como la operacin ms frecuente es la suma, se suele aadir
al sumador un circuito que permita llevar a cabo la suma y la resta, seleccionando la operacin a efectuar
mediante una seal 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
Pgina: 16 /55
MSA
Sistemas de Multiprocesamiento
La ALU
c n 1 ,
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 condicin de desbordamiento se produce cuando c n 1 = 0
De aqu se deduce que la condicin de desbordamiento sigue la expresin:
DE = c n 1 S / R
Pgina: 17 /55
MSA
Sistemas de Multiprocesamiento
La ALU
c n 1 c n 2
rn 1 tambin ser
rn 1 = 1 al ser A < B .
Ejemplo:
Pgina: 18 /55
MSA
Sistemas de Multiprocesamiento
La ALU
c n 1 = c n 2 = 1 c n 1 c n 2 = 0
Ejemplo:
rn 1 = 1 .
Ejemplo:
Pgina: 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
nmero (sin considerar el signo), c n 2 =0.
La seal que controla esta inversin es la salida CPTS, que corresponde a la funcin: CPTS = CPTO * c n 2
Por trabajar con complemento a uno, cuando se produce acarreo en el nmero (sin contar el signo) se suma el
mismo mediante una realimentacin a travs 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 lgica para obtener el signo de la suma.
El nmero 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.
c n 2 =1.
Pgina: 20 /55
MSA
Sistemas de Multiprocesamiento
La ALU
a n 1 , B = bn 1 y R = S / R .
Pgina: 21 /55
C0 = 1 .
MSA
Sistemas de Multiprocesamiento
La ALU
G1 = A1 * B1
C1 = G1 + P1 * C 0
Donde cada uno de los dos trminos representa una de las dos condiciones y los subndices 1 se refieren al
primer paso sumador.
Para el segundo paso se puede escribir una ecuacin similar:
C 2 = G2 + P2 * C1
Sin embargo, en esta ecuacin el trmino C1 puede sustituirse por su valor de la siguiente manera:
Por lo tanto, la expresin de C2 se representa en trminos de G y P solamente, a excepcin de C 0 .
Esto es importante, ya que ahora C2 slo depende de las seales de entrada A y B hasta los dos primeros pasos
sumadores. Esto significa que, para conocer C2 slo 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 ecuacin de C3 se puede escribir, nicamente, en trminos G y P:
Esta ltima ecuacin indica que las entradas de acarreo de todas las etapas de un sumador pueden desarrollarse
tan pronto como se reciben las seales A y B, puesto que los trminos G y P slo dependen de A y B.
La figura se muestra un sumador de acarreo anticipado de 4 bits con los circuitos lgicos de generacin de G y P.
Pgina: 22 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Si se supone que la lgica de anticipacin 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 ms bits, la diferencia entre el tiempo de retardo de este tipo de sumador y los de acarreo
serie, se hace cada vez mayor.
La limitacin ms importante del sumador con acarreo anticipado es que, a medida que aumenta el nmero de
etapas, la ecuacin se hace ms larga, al igual que cada uno de sus trminos. Se necesitan ms puertas y stas
deben poseer mayor nmero de entradas.
En la figura se presenta el diagrama lgico del circuito integrado comercial 74182, que realiza la funcin de
generador de acarreo anticipado.
Pgina: 23 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Otra de entre las numerosas soluciones propuestas para acelerar la operacin de la suma, citaremos la tcnica
del "puente" (by pass)
Se divide el sumador en secciones (o subsumadores), cada uno de ellos activo sobre un pequeo nmero de bits.
En una primera fase, se realizan las sumas al nivel de cada seccin, sin tomar en cuenta el arrastre,
eventualmente generado en la seccin inmediatamente anterior.
En una segunda fase, los arrastres son propagados.
El arrastre generado en la seccin (i 1) debe conducir a aadir 1 a la seccin i.
Esta operacin puede llevar a la seccin i a propagar tambin este arrastre hasta la seccin (i + 1).
La astucia del procedimiento se centra en detectar, sin necesidad de realizar la propagacin en la seccin i, si
este arrastre existe y ha de transmitirse a la seccin (i + 1).
Si la respuesta es positiva, el arrastre generado en la seccin (i 1) se transmitir a la seccin (i + 1) cuenteando
a la seccin i; por consiguiente, no tendr que atravesar ms que una puerta.
Es cuestin de encontrar la condicin que permitir saber, sin tener que efectuar realmente la propagacin, si el
arrastre puentear o no la seccin.
Es fcil convencerse de que tal condicin se enuncia as: el arrastre ser bloqueado cuando los dos operandos
presenten dos dgitos binarios idnticos en una de sus posiciones, por lo menos, (o si el resultado obtenido en la
primera fase de la operacin posee al menos un dgito cero).
En dicho tipo de sumador, la duracin de la suma es igual al doble del tiempo mximo de propagacin del arrastre
en una seccin.
Pgina: 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 cdigo binario puro.
En calculadoras electrnicas y otras aplicaciones se utiliza, frecuentemente, el cdigo BCD, que es el decimal
codificado en binario.
Los sumadores y restadores BCD realizan las operaciones poniendo en prctica los mismos algoritmos e iguales
circuitos bsicos que cualquier otro sumador-restador binario; sin embargo, los datos se emplean en formato BCD,
en lugar del binario.
Ejemplo:
Pgina: 25 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Antes de discutir la lgica auxiliar para producir la generacin de acarreo y la correccin, pero en el caso general,
cualquiera de los grupos de dgitos puede exceder de sumar dos nmeros cuya suma sea tan grande como 15 sin
generar acarreo, se precisa una correccin y un acarreo decimal siempre que la suma supere a 10.
En el ejemplo precedente, slo el grupo de las decenas gener acarreo y precisaba de correccin, pero en el
caso general, cualquiera de los grupos de dgitos puede exceder de 9 al hacer una suma.
Por ejemplo, para hacer una suma de dos nmeros BCD de 3 dgitos, 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 deteccin en cada etapa del sumador para proporcionar en la salida un
acarreo si el nmero 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 correccin se efecta en un segundo sumador, en donde se aade 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 correccin 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 idnticas para formar un sumador
multidgito BCD. Los sumadores de 4 bits que hay en cada etapa pueden ser de tipo paralelo simple, de tipo de
acarreo circular o alguna combinacin 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 anlisis se considerarn slo dos:
la resta por complemento a uno y
la resta por complemento a nueve.
En la resta por complemento a uno se efecta la diferencia A - B de dos cantidades BCD, tratndolas 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 dgitos que cumplan la condicin
XOR entre su acarreo hexadecimal y el acarreo del dgito superior.
Las figuras muestran unos ejemplos y un circuito que emplea esta tcnica, que necesita de una etapa sumadora
para la resta binaria y otra para llevar a cabo las correcciones comentadas.
Pgina: 26 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Pgina: 27 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Los principios bsicos de sustraccin por complemento a nueve se presentan de forma grfica en el diagrama.
Obsrvese 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, despus, seguir el
algoritmo de suma, excepto que la salida de acarreo de la ltima etapa (la ms 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 lgica auxiliar, que la necesaria si se construyese a base de dos circuitos
independientes.
Pgina: 28 /55
MSA
Sistemas de Multiprocesamiento
La ALU
SUM adicin: suma al contenido del acumulador la informacin presente sobre el bus M.
Esta adicin es operada por el sumador en paralelo y la duracin de la misma es el tiempo de propagacin
de los arrastres.
SUS sustraccin: se resta la informacin en el bus M del contenido del acumulador.
Se realiza complementando la informacin del bus M y despus sumandola en el sumador paralelo.
La operacin 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 posicin binaria
a la izquierda.
DESD desplazamiento a derecha: desplazamiento del contenido del acumulador una posicin binaria a
la derecha.
Pgina: 29 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Los indicadores asociables a la unidad aritmtica de Abacus podran ser los siguientes:
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 precisara un
OR detrs de un NOR para todas las salidas Q y de un NOR para todas las salidas Q).
Las operaciones se llevan a cabo sobre nmeros normalizados, esto es, sobre nmeros cuyo valor de exponente
est ajustado para que la mantisa tenga el mayor nmero posible de dgitos significativos. Por consiguiente, los
operadores en aritmtica flotante deben, no solamente ejecutar la operacin correspondiente, sino tambin
normalizar el resultado obtenido.
Sumador-restador en coma flotante
En la representacin 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
q 1
, la
2. Resta de los exponentes. El resultado de esta sustraccin define el exponente previo del resultado, la
mantisa que se debe desplazar para alinear los dgitos de igual peso, as como el nmero de
desplazamientos que requiere la alineacin.
3. Alineacin de mantisas. Esta operacin consiste en desplazar aritmticamente a la derecha el
operando de menor exponente. De esta forma, se consigue que MA y MB tengan los dgitos del
z
mismo peso, en posiciones idnticas. 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
Pgina: 30 /55
MSA
Sistemas de Multiprocesamiento
La ALU
4. Suma o resta de las mantisas. En el caso frecuente de usar la representacin de signo y magnitud,
habr que determinar, analizando los signos y la operacin pedida, si se hace suma o resta.
La obtencin de resultados que excedan de los p bits es muy frecuente en esta operacin, 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 extensin 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 sustraccin A - B. En la representacin en valor absoluto y signo, se debern 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 operacin
pertinente es sustraer la mantisa de A de la mantisa de B y al resultado darle el signo menos:
4. Normalizacin del resultado. Se trata de desplazar adecuadamente la mantisa resultado, de forma que
su dgito ms significativo ocupe el lugar izquierdo de los p bits disponibles.
Simultneamente, se corrige el exponente para reflejar los desplazamientos efectuados.
Cuando existe desbordamiento de mantisa en el resultado, esta normalizacin produce un
deslizamiento a la izquierda e incrementa en uno al exponente, eliminando as este desbordamiento.
El proceso de normalizacin puede producir un desbordamiento del exponente, rebasando los lmites de su rango
( 2 q ; 0). En este caso, se excede el rango total de representacin y se debe activar un biestable de
desbordamiento y/o acotar el resultado al mayor o menor nmero capaz de ser representado.
q
Aunque es posible disear 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 necesitara:
- 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.
Pgina: 31 /55
MSA
Sistemas de Multiprocesamiento
La ALU
e 1
e 1
e 1
y 2
e 1
Pgina: 32 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Pgina: 33 /55
MSA
Sistemas de Multiprocesamiento
La ALU
OPERACION DE MULTIPLICACION
La multiplicacin se suele realizar utilizando un sumador-restador y un algoritmo adecuado.
Solamente los computadores muy potentes disponen de operadores especficos de multiplicacin.
Se estudian los principales algoritmos empleados para realizar productos.
Algoritmo de suma desplazamiento
Su fundamento se basa en el mtodo manual de la multiplicacin.
Ejemplo:
Pgina: 34 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Los productos parciales son iguales al multiplicando si el bit correspondiente del multiplicador es 1, nulos en caso
contrario.
Una primera operacin consiste, entonces, en verificar sucesivamente cada bit del multiplicador, de donde se
deducen los productos parciales que, convenientemente desplazados, se totalizan en un acumulador.
Ntese 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 aritmtica capaz de realizar una multiplicacin debe estar dotada de un anejo al acumulador,
generalmente llamado Multiplicador-Cociente", abreviadamente M.C., porque contiene el multiplicador en el caso
de la multiplicacin, el cociente en el caso de la divisin.
La figura representa la unidad tradicional de multiplicacin.
Pgina: 35 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Al final de la operacin, el resultado de la multiplicacin 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
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, acabarn 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.
Pgina: 36 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Ejemplo:
Un nmero con varias cadenas de unos puede descomponerse basndose en esta regla.
Pgina: 37 /55
MSA
Sistemas de Multiprocesamiento
Ejemplo:
La ALU
Cuando se encuentra un principio de cadena de unos, al observar el nmero de derecha a izquierda, se resta 2
siendo i la posicin que ocupa el primer uno y se suma 2
unos.
i 1
i 1
Descomponiendo de esta manera un operando del producto, si ste tiene cadenas largas de unos, se realizan
menos operaciones para realizar la multiplicacin.
En efecto, segn el mtodo anterior:
hay que realizar 6 sumas.
Pgina: 38 /55
MSA
Sistemas de Multiprocesamiento
La ALU
El principal inters de este mtodo es que ofrece la base del algoritmo de Booth.
Algoritmo de Booth
Este mtodo permite multiplicar nmeros con signo, expresados en complemento a dos.
Considrese una multiplicacin de dos nmeros 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.
Pgina: 39 /55
MSA
Sistemas de Multiprocesamiento
La ALU
2n
Por lo tanto, para corregir el producto se prescinde del bit de acarreo 2 y se suma A * 2 .
Los nmeros negativos tienen un 1 en su bit de ms peso. Consecuentemente, si en el algoritmo de sumas y
n
a n ,..., a1 .
Dos vas principales permiten aumentar, por medios lgicos, la velocidad de la multiplicacin.
(1) Basndose en la tcnica tradicional de suma-desplazamiento y disminuyendo el nmero de operaciones
parciales sucesivas.
(2) Realizando un operador celular para una multiplicacin casi paralela.
Pgina: 40 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Pgina: 41 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Pgina: 42 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Ejemplos:
Pgina: 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 ms significativo de cada uno coincida en la misma posicin.
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 ms peso del cociente vale 1, se acaba la divisin.
Por tanto, multiplicacin y divisin son operaciones muy semejantes.
Basta cambiar sumas en sustracciones e invertir el sentido de los desplazamientos.
Sin embargo, en la divisin aparece una dificultad complementaria: es necesario aadir a cada etapa una
operacin de comparacin entre los bits de mayor peso de dividendo y divisor a fin de determinar el bit
correspondiente del cociente.
ETSII Dpto. Tecnologa Electrnica
Pgina: 44 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Para efectuar una divisin tomaremos de nuevo la unidad aritmtica utilizada con la multiplicacin (casi siempre es
comn la unidad para ambas operaciones) pero transformaremos el sumador en sustractor, invertiremos el
sentido del desplazamiento y aadiremos el dispositivo de comparacin.
La operacin 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.
Al final de la operacin, el registro multiplicador cociente alberga al cociente y el resto aparece en el acumulador.
Por lo mismo que hemos obtenido en la multiplicacin 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 excedera entonces a la capacidad del M.C. y se perderan sus bits de mayor peso.
Pgina: 45 /55
MSA
Sistemas de Multiprocesamiento
La ALU
La divisin sin restauracin corresponde a un algoritmo que permite ahorrar la fase de restauracin despus de
una sustraccin con resultado negativo, lo que supone una ganancia de tiempo.
Sea
/2) y el resultado es ( + ) 2 = + 2
Se ve que es posible combinar la restauracin y la sustraccin que la sigue en una sola operacin: la suma del
divisor desplazado.
Dicho en otros trminos, un intento dando resto positivo ir seguido, al paso siguiente, de la sustraccin del divisor
desplazado, mientras que un intento resultando en resto negativo deber seguirse de la suma del divisor
desplazado.
Pgina: 46 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Pgina: 47 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Pgina: 48 /55
MSA
Sistemas de Multiprocesamiento
La ALU
El contador decimal.
Consideremos una dcada de un contador decimal trabajando en la representacin 8.4.2.1.
Se quiere que esta dcada 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 dcada a cero y generar un impulso de arrastre hacia la
prxima dcada.
Se observa en la figura que el problema puede resolverse cableando la dcada como un contador binario y
aadiendo algunas puertas para tomar en cuenta el paso de 9 a 10.
La idea de base consiste en comparar el resultado obtenido a la salida del sumador con el resultado que se
obtendra si se hubiera utilizado directamente un sumador binario.
Pgina: 49 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Inmediatamente se deduce que los resultados obtenidos son idnticos si la suma de las dos cifras es inferior a 9,
que difieren en 6 en caso contrario y que el dgito 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 dgitos y
un circuito complementario para la correccin sobre los tres dgitos 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 deteccin, que detecta las operaciones cuyo resultado es superior a 9.
El criterio de deteccin 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 expresin lgica 3 * ( 2 + 1 ) es cierta (fig. 21).
2. Una etapa de correccin, reducida aqu a un sumador binario auxiliar, puesto que, en todos los casos en
que el resultado supera a 9, es preciso aadir 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 dcada y en serie con
las diferentes dcadas.
Por ello, es necesario al circuito de suma decimal un dispositivo de almacenamiento del arrastre (fig22).
Pgina: 50 /55
MSA
Sistemas de Multiprocesamiento
La ALU
A0 - A3: Operando A
B0 - B3: Operando B
F0 - F3: Resultado de la operacin
S0 - S3: Seleccin de operacin
M: Seleccin de operaciones aritmticas (M = 0) o lgicas (M = 1)
Cn: Acarreo
A = B: Activo cuando A = B
P: Propagacin de acarreo
Cn+4: Salida de acarreo
G: Generacin de acarreo
Pgina: 51 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Los circuitos 74181 se pueden conectar en cascada para construir un operador del ancho de palabra que se
desee.
Pgina: 52 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Pgina: 53 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Pgina: 54 /55
MSA
Sistemas de Multiprocesamiento
La ALU
Pgina: 55 /55
MSA