Está en la página 1de 69

LA UNIDAD

ARITMETICO
LOGICA
ALU

Introduccin
Los dos aspectos fundamentales de la aritmtica
del computador son:
La forma de representar las nmeros, (el formato
binario),
Algoritmos utilizados para realizar las operaciones
aritmticas bsicas, (suma, resta, multiplicacin y
divisin).

La mayora de los procesadores implementan la


normalizacin o estndar IEEE 754 para la
representacin de nmeros y aritmtica en coma
flotante.
Esta norma define el formato de 32 bits, as como el
de 64 bits.

La aritmtica de un computador es realizada


normalmente con dos tipos de
nmeros muy
diferentes:
Enteros.
Coma flotante.

LA UNIDAD ARITMETICO LOGICA


(ALU)
La ALU, es la parte del computador que realiza
realmente las operaciones aritmticas y lgicas
con los datos.
El resto de los elementos del computador, (unidad
de control, registros, memoria, E/S), estn
principalmente para suministrar datos.
La ALU puede considerarse como el ncleo central
del computador.

Una ALU, y en realidad todos los componentes


electrnicos del computador, se basan en el uso de
dispositivos
lgicos
digitales,
que
pueden
almacenar dgitos binarios y realizar operaciones
lgicas Booleanas.

Muchos tipos de circuitos electrnicos necesitan


realizar algn tipo de operacin aritmtica, as que
incluso el circuito dentro de un reloj digital tendr
una ALU minscula que se mantiene sumando 1 al
tiempo actual

Por mucho, los ms complejos circuitos electrnicos


son los que estn construidos dentro de los chips
de microprocesadores modernos como el Intel Core
Duo.
Por lo tanto, estos procesadores tienen dentro de
ellos un ALU muy complejo y poderoso. De hecho,
un microprocesador moderno pueden tener
mltiples ncleos, cada ncleo con mltiples
unidades de ejecucin, cada una de ellas con
mltiples ALU.

La mayora de las acciones de la computadora son


realizadas por la ALU.

Operaciones Llevadas a cabo por la


ALU
La mayora de las ALU
siguientes operaciones:

pueden

realizar

las

1.) Operaciones aritmticas de nmeros enteros


(adicin, sustraccin, y a veces multiplicacin y
divisin, aunque esto es ms costoso)
2.) Operaciones lgicas de bits (AND, NOT, OR, XOR,
XNOR)
3.) Operaciones de desplazamiento de bits (Desplazan
o rotan una palabra en un nmero especfico de bits
hacia la izquierda o la derecha).

Operaciones Complejas:
Un ingeniero puede disear una ALU para calcular
cualquier operacin, sin importar lo compleja que
sea; el problema es que cuanto ms compleja sea
la operacin, tanto ms costosa ser la ALU, ms
espacio usar en el procesador, y ms energa
disipar.

Por lo tanto, los ingenieros siempre calculan un


compromiso, para proporcionar al procesador (u
otros circuitos) un ALU suficientemente poderoso
para hacerlo rpido, pero no tan complejo para
llegar a ser prohibitivo.

Una ALU simple de 2


bits que hace
operaciones de
AND, OR, XOR y
adicin

ALU vs. FPU


Una unidad de punto flotante, Floating Point Unit
(FPU), tambin realiza operaciones aritmticas
entre dos valores, pero lo hace para nmeros en
representacin de punto flotante, que es mucho
ms complicada que la representacin de
complemento a dos usada en una tpica ALU. Para
hacer estos clculos, una FPU tiene incorporados
varios circuitos complejos.

Generalmente los ingenieros llaman ALU al circuito


que realiza operaciones aritmticas en formatos de
nmero entero (como complemento a dos),
mientras que los circuitos que calculan en formatos
ms complejos como punto flotante, nmeros
complejos, etc., reciben generalmente un nombre
ms ilustre.

Interconexin de la ALU
Los datos se presentan a la ALU como registros, y
en registros se almacenan los resultados de las
operaciones producidas por la misma.
La ALU puede activar indicadores (flags) como
resultado de una operacin, por ejemplo:
Indicador de desbordamiento se pondr a 1 si el
resultado de una operacin, excede la longitud del
registro en donde se debe almacenar.

Indicadores
Registros

ALU

Registros

La unidad de control proporciona las seales que


gobiernan el funcionamiento de la ALU y la
transferencia de datos dentro y fuera de esta.

Unidad de
control
Registros

Indicadores
ALU

Registros

REPRESENTACION DE
ENTEROS
En el sistema de numeracin binaria, cualquier
numero puede representarse tan solo con dgitos 1
y 0.
Sin embargo, para ser almacenados y procesados
por un computador, no se tiene la posibilidad de
disponer del signo y de la coma.

Representacin en signomagnitud
Existen varias convenciones para representar
nmeros positivos y negativos, esto implica tratar
el bit mas significativo de la palabra, como un bit
de signo:
Ejemplo: 18 0010010
Positivo
Signo magnitud =
negativo

0
1

001001
0
001001
0

La representacin signo-magnitud posee varias


limitaciones. Una de ellas es que la suma y la resta
requiere tener en cuenta tanto los signos de los
nmeros, como sus magnitudes, para llevar a cabo
la operacin en cuestin.
Debido a las limitaciones, raramente se usa la
representacin
en
signo-magnitud
para
implementar en la ALU, las operaciones con
enteros.
Por lo cual, el esquema mas comn
representacin en complemento a dos.

es

la

Representacin en complemento
a dos
Este
mtodo
tambin
utiliza,
para
su
representacin, el bit mas significativo como bit de
signo.
Para obtener el complemento a dos de un numero
binario, simplemente se complementa , es decir, se
pone el opuesto del numero original:
Numero decimal

Numero binario

Complemento a
dos

18

00010010

11101101

Ejemplo: Convertir el numero +18, en complemento a


dos.

Si el 18 es negativo:

Casos problemticos del


complemento a dos
El mtodo de complemento a dos, posee dos casos
particulares de discusin:
0
128

0
En la conversin de un cero
negativo a complemento a dos,
hay un acarreo de la posicin
de bit mas significativo, que es
ignorado.
Como resultado se obtiene que
+0=-0.
Esto es correcto

128
Este segundo
problemtico.

caso

es

mas

Si se genera el complemento a
dos del numero binario y se
vuelve negativo, el numero, el
resultado es el numero binario
original.
Esta
anomala
evitarse.

debe

SUMA Y RESTA
CASO 1 Si el resultado de la operacin es un
numero positivo, se obtiene un numero positivo en
notacin binaria.
CASO 2 Si el resultado de la operacin es un
numero negativo, conseguimos un numero negativo
en complemento a dos.

Caso 1

Caso 2

En cualquier suma, el resultado puede que sea


mayor que el permitido por la longitud de palabra
que se esta utilizando. Esta condicin se denomina
desbordamiento (overflow).
Cuando ocurre un desbordamiento, la ALU debe
indicarlo para que no se intente utilizar el resultado
obtenido.

Acciones a efectuar
ante overflow
Para detectar un overflow, se debe observar la
siguiente regla:
Al sumar dos nmeros, bien sean negativos o
positivos ambos, se produce desbordamiento, SI
Y SOLO SI el signo del resultado es opuesto.

En algunos casos, hay un bit de acarreo mas all del


final de la palabra (desbordamiento), este bit se ignora.
Ejemplo: Sume -4 + -1
Para la operacin de suma, si el numero es positivo se
trabaja como un binario normal, pero cuando el numero
es negativo, primero se realiza la conversin binario
complemento a dos y luego, al resultado, se le adiciona
un 1 que es el que determinara que es negativo.

Ahora se suman las cantidades obtenidas.

Como se puede apreciar, ocurre un desbordamiento, es


decir, el resultado es mayor de 4 bits. El bit mas
significativo, el que se encuentra mas hacia la
izquierda, se ignora.
La respuesta es=

Para sumar, los nmeros se presentan al sumador


desde dos registros (Registro A y Registro B). El
resultado es almacenado normalmente en un
tercer registro o en uno de los ya existentes.
La indicacin de desbordamiento se almacena en
una OF (Overflow Flag) de 1 bit, (bit =0 si no hubo
desbordamientobit
=
1
si
ocurri
desbordamiento).
Para la resta, el sustraendo se pasa a travs de un
complementador, antes de llegar al sumador.

A continuacin se mostrara une ejemplo del camino a


seguir en caso de suma.
Registro B

Registro A

Complementador

SW

OF

SUMADOR

A continuacin se mostrara une ejemplo del camino a


seguir en caso de suma.
Registro B

Registro A

Complementador

SW

OF

Conmutador:
Selecciona si
es suma o
resta

SUMADOR

A continuacin se mostrara une ejemplo del camino a


seguir en caso de suma.
Registro B

Registro A

Complementador

SW

Conmutador:
Selecciona si
es suma o
resta

Bit de
desbordamient
o

OF

SUMADOR

Multiplicacin
Esta operacin es un poco mas compleja que la
suma o la resta. Se han utilizado, tanto soluciones
en Hardware, como diverso algoritmos para llevarla
a cabo.
A continuacin se apreciara una implementacin en
Hardware para la multiplicacin.

Multiplicando
Registro M

SUMADOR

Lgica de control de
desplazamiento y suma

Registro A

Multiplicador
Registro Q

Tomemos como ejemplo la multiplicacin de 11 por


13:
111011
131101
Entonces:

A=0000
Q=1101
M=1011
C= 0, Hasta que no halla un acarreo.

1011

Multiplicando
Registro M

SUMADOR

Lgica de control de
desplazamiento y suma

Registro A

Multiplicador
Registro Q

0
C

0000

1101

La lgica de control lee uno por uno los bits del


multiplicador.
Si Qo es 1:
A=A+M0000+1011
Se desplazan todos los valores, tanto de A como de
Q, hacia la derecha

1011

Multiplicando
Registro M

SUMADOR

Lgica de control de
desplazamiento y suma

Registro A

Multiplicador
Registro Q

0
C

0000

1101

Multiplicando
Registro M

1011

SUMADOR

Lgica de control de
desplazamiento y suma

Registro A

Multiplicador
Registro Q

0
C

0000+101
1

1101

1011

Multiplicando
Registro M

SUMADOR

Lgica de control de
desplazamiento y suma

Registro A

Multiplicador
Registro Q

0
C

1011

1101

1011

Multiplicando
Registro M

SUMADOR

Lgica de control de
desplazamiento y suma

Registro A

Multiplicador
Registro Q

0
C

0101

1110

Si Qo =0:
No se realiza suma, solo se presenta el
desplazamiento a la derecha, de A y Q

1011

Multiplicando
Registro M

SUMADOR

Lgica de control de
desplazamiento y suma

Registro A

Multiplicador
Registro Q

0
C

0101

1110

1011

Multiplicando
Registro M

SUMADOR

Lgica de control de
desplazamiento y suma

Registro A

Multiplicador
Registro Q

0
C

0010

1111

1011

Multiplicando
Registro M

SUMADOR

Lgica de control de
desplazamiento y suma

Registro A

Multiplicador
Registro Q

0
C

0010

1111

Multiplicando
Registro M

1011

SUMADOR

Lgica de control de
desplazamiento y suma

Registro A

Multiplicador
Registro Q

0
C

0010+101
1

1111

1011

Multiplicando
Registro M

SUMADOR

Lgica de control de
desplazamiento y suma

Registro A

Multiplicador
Registro Q

0
C

1101

1111

1011

Multiplicando
Registro M

SUMADOR

Lgica de control de
desplazamiento y suma

Registro A

Multiplicador
Registro Q

0
C

1110

1111

1011

Multiplicando
Registro M

SUMADOR

Lgica de control de
desplazamiento y suma

Registro A

Multiplicador
Registro Q

0
C

1110

1111

Multiplicando
Registro M

1011

SUMADOR

Lgica de control de
desplazamiento y suma

Registro A

Multiplicador
Registro Q

0
C

1110+101
1

1111

Multiplicando
Registro M

1011

SUMADOR

Lgica de control de
desplazamiento y suma

Registro A

Multiplicador
Registro Q

1|1000

1111

1011

Multiplicando
Registro M

SUMADOR

Lgica de control de
desplazamiento y suma

Registro A

Multiplicador
Registro Q

Bit de
acarreo

1
C

1000

1111

El resultado de la multiplicacin es unir, ubicar uno


a continuacin del otro, los valores de A y de Q.
A=1000
Q=1111
Respuesta= 10001111

INICIO

A continuacin se
mostrara
el
diagrama de flujo
que representa la
operacin
de
multiplicacin.

C, A 0
M
Multiplicando
Q Multiplicador
Cuenta n

no

s
i

Qo
=1?

C, A A+M
Desplazar C, A,
Q
Cuenta
cuenta-1

no

Cuenta
=0?

FIN

s
i

Multiplicacin en complemento a
dos
Se hace necesaria la multiplicacin en
complemento a dos, cuando se vallan a multiplicar
nmeros con signo negativo.
Una de las tcnicas mas comunes utilizadas para
este fin es el Algoritmo de Booth.

Algoritmo de Booth
Este algoritmo tiene la ventaja adicional de acelerar el
proceso
de
multiplicacin,
respecto
de
una
aproximacin mas directa.

Q1 Qo Q-1

INICIO

A 0 Q10
M
Multiplicando
Q Multiplicador
Cuenta n

=10

Qo , Q-

=01

1
A A-M

A A+M

=11
=00
Desplazamiento
Aritmtico a derecha:
A, Q , Q-1
Cuenta Cuenta 1

no

Cuenta
=0?

si
FIN

Divisin
La divisin es algo mas compleja que la
multiplicacin pero esta basada en los mismos
principios generales. La operacin conlleva
repetidos desplazamientos y sumas o restas.

INICIO

Ao
M Divisor
Q Dividendo
Cuenta n
Desplaza a
izquierda A ,
Q
A A-M

no

A<0?

si
Q0 0
A A+M

Q01

Cuenta =
Cuenta-1
no
Cuenta
=0?

si
FIN

Cociente
Q

REPRESENTACION EN COMA
FLOTANTE
Un valor real se puede extender a la izquierda o a la
derecha de forma arbitraria.
En la informtica se dispone de una cantidad
limitada de dgitos para representar un valor, un
nmero real puede rebasar este rango con
facilidad.
La coma flotante proporciona un cambio de
ponderacin que en este entorno tcnico permite
almacenar valores con partes significativas de peso
alejado del 0, esto es alejadas de la coma a su
derecha o a su izquierda.

Tipos de datos en coma


flotante
Los nmeros en coma flotante, tambin conocidos
como nmeros reales en otros lenguajes, se utilizan
cuando se calculan funciones que requieren
precisin fraccionaria.
Los clculos complejos, como la raz cuadrada, o
trigonomtricas, como el seno y el coseno, tienen
como resultado un valor cuya precisin requiere un
tipo en coma flotante.

Hay dos clases de tipos en coma flotante, float y


double:
Float, (flotante): 32 bits
Double (doble): 64 bits

También podría gustarte