Está en la página 1de 47

ALU

Unidad aritmtico-lgica
Definicin
La ALU (unidad aritmtico-lgica) es el
dispositivo que se encarga de realizar:
a) Operaciones aritmticas (suma, resta, etc.).
b) Operaciones lgicas (and, or, xor, etc.).

Universidad de Sonora Arquitectura de Computadoras 2


Circuitos combinatorios
Su salida depende exclusivamente de sus
entradas.

Universidad de Sonora Arquitectura de Computadoras 3


Compuertas bsicas

Universidad de Sonora Arquitectura de Computadoras 4


Compuertas bsicas
AND OR
A B AB A B A+B
0 0 0 0 0 0
0 1 0 0 1 1
1 0 0 1 0 1
1 1 1 1 1 1

NOT
A
0 1
1 0
Universidad de Sonora Arquitectura de Computadoras 5
Otras compuertas
XOR (or exclusiv0).
EQV (equivalence).
NAND (not AND).
NOR (not OR).

Universidad de Sonora Arquitectura de Computadoras 6


Multiplexor
El multiplexor (mux) tiene 2n entradas de
datos, n bits de seleccin y una salida.
Los bits de seleccin se usan para decidir cul
entrada pasa a la salida.
Mux 2 a 1

Universidad de Sonora Arquitectura de Computadoras 7


Multiplexor
Mux 4 a 1

Mux 8 a 1

Universidad de Sonora Arquitectura de Computadoras 8


Sumador completo
Sumador completo (full adder) de 1 bit:
Entradas: dos nmeros de 1 bit y un bit de
carry de entrada.
Salidas: la suma de 1 bit y un bit de carry de
salida.

Universidad de Sonora Arquitectura de Computadoras 9


Sumador completo

Universidad de Sonora Arquitectura de Computadoras 10


Sumador completo
Suma = a b CarryIn
CarryOut = (a CarryIn) + (b CarryIn) + (a
b)
= (a + b) CarryIn + (a b)

Universidad de Sonora Arquitectura de Computadoras 11


Sumador completo
Diagrama a bloque.

Universidad de Sonora Arquitectura de Computadoras 12


ALU de 1 bit
Dos operaciones: AND y OR.
Un bit para seleccionar la operacin.

Operacin Salida

0 ab

1 a+b

Universidad de Sonora Arquitectura de Computadoras 13


Agregando operaciones
El siguiente paso es agregar la suma.
Se agrega un sumador completo al diseo
anterior.

Universidad de Sonora Arquitectura de Computadoras 14


ALU de 1 bit
3 operaciones: AND, OR y suma.
2 bits para seleccionar la operacin.

Operacin Resultado CarryOut


00 ab X

01 a+b X

10 ab (a + b) CarryIn +
CarryIn (a b)
11 X X

Universidad de Sonora Arquitectura de Computadoras 15


Agregando operaciones
Agregar la resta a b.
a b a + b si b est en complemento a 2.
El complemento a dos de b se encuentra
sumando 1 al complemento a uno de b.
El complemento a uno de b se encuentra
negando a b.
a b = a + (b) = a + (b + 1) = a + b + 1
El 1 de la suma viene en CarryIn.

Universidad de Sonora Arquitectura de Computadoras 16


ALU de 1 bit
4 operaciones: AND, OR, suma y resta.
2 bits para seleccionar la operacin.
Un bit extra para diferenciar entre la suma y
la resta.
En la resta, CarryIn es 1.

Universidad de Sonora Arquitectura de Computadoras 17


ALU de 1 bit

Universidad de Sonora Arquitectura de Computadoras 18


ALU de 1 bit
Operacin Binvert CarryIn Resultado CarryOut
00 X X ab X
01 0 X a+b X
10 0 X a b CarryIn (a + b) CarryIn +
(a b)
10 1 0 X X
10 1 1 ab a + b
11 X X X X

Universidad de Sonora Arquitectura de Computadoras 19


Agregando operaciones
Agregar la operacin NOR:
(a + b)
Ley de DeMorgan:
(a + b) = a b
La ALU ya puede calcular a b y b.
Hace falta poder calcular a.

Universidad de Sonora Arquitectura de Computadoras 20


ALU de 1 bit
5 operaciones: AND, OR, NOR, suma y resta.
2 bits para seleccionar la operacin.
Binvert diferencia entre la suma y la resta.
En la resta, CarryIn es 1.
Ainvert y Binvert diferencian entre AND y
NOR.

Universidad de Sonora Arquitectura de Computadoras 21


ALU de 1 bit

Universidad de Sonora Arquitectura de Computadoras 22


ALU de 1 bit
Operacin Ainvert Binvert CarryIn Resultado CarryOut

00 0 0 X ab X

00 1 1 X a b X

01 0 0 X a+b X

10 0 0 X ab (a + b) CarryIn +
CarryIn (a b)
10 0 1 0 X X

10 0 1 1 ab a + b

11 X X X X X

Universidad de Sonora Arquitectura de Computadoras 23


Agregando operaciones
Variando Ainvert y Binvert permite generar:
8 operaciones lgicas.
5 operaciones aritmticas.

Universidad de Sonora Arquitectura de Computadoras 24


Agregando operaciones
Operacin Ainvert Binvert CarryIn Resultado CarryOut

00 0 0 X ab X
00 0 1 X a b X
00 1 0 X a b X
00 1 1 X a b X
01 0 0 X a+b X
01 0 1 X a + b X
01 1 0 X a + b X
01 1 1 X a + b X
Universidad de Sonora Arquitectura de Computadoras 25
Agregando operaciones
Operacin Ainvert Binvert CarryIn Funcin
aritmtica
10 0 0 0 a+b

10 0 0 1 a+b+1

10 0 1 1 a-b

10 1 0 1 b-a

10 1 1 1 -a - b

Universidad de Sonora Arquitectura de Computadoras 26


ALU de 32 bits
Cmo se genera una ALU de 32 bits?
Con 32 ALUs de 1 bit.
CarryOut de la ALUi se conecta a CarryIn de la
ALUi+1.
En la resta CarryIn ALU0 se conecta a 1.

Universidad de Sonora Arquitectura de Computadoras 27


ALU de 32 bits

Universidad de Sonora Arquitectura de Computadoras 28


ALU para MIPS
El diseo de la ALU est incompleto.
La mayora de las instrucciones de MIPS
pueden ser realizadas con las operaciones
AND, OR, suma y resta.
Se necesita soportar la instruccin slt (set on
less than).
slt $x, $y, $z guarda 1 en $x si $y < $z y 0 en
otro caso.

Universidad de Sonora Arquitectura de Computadoras 29


Soportando slt
slt $x, $y, $z pone a ceros los bits 1 a 31 de
$x.
El bit 0 de $x tiene el resultado de la
comparacin de $y y $z.
$x 0 0 0 $y < $z

31 30 1 0

Universidad de Sonora Arquitectura de Computadoras 30


Soportando slt
Se calcula t = $y - $z.
Si t es negativo $y < $z.
Si t es positivo o cero $y $z.
En MIPS los nmeros negativos tienen 1 en el
bit 31.
El bit 31 de t tiene el resultado de la
comparacin.

Universidad de Sonora Arquitectura de Computadoras 31


Soportando slt
Para hacer una ALU de 32 bits se consideran
dos tipos de ALU distintos.
Una para los bits del 0 al 30.
Parecida al diseo anterior, tiene una entrada
extra llamada Less.
Otra para el bit 31.
Adems de la entrada Less, tiene una salida Set
con el signo de la resta y un detector de
overflow.

Universidad de Sonora Arquitectura de Computadoras 32


ALU para los bits 0 al 30

Universidad de Sonora Arquitectura de Computadoras 33


ALU para el bit 31

Universidad de Sonora Arquitectura de Computadoras 34


ALU de 32 bits
Se conectan las 32 ALUs.
CarryOut de la ALUi se conecta a CarryIn de la
ALUi+1.
Las entradas Less de la ALU1 a la ALU31 se
ponen a 0.
La entrada Less de la ALU0 se conecta a la
salida Set de la ALU31.
En la resta CarryIn de la ALU0 se conecta a 1.

Universidad de Sonora Arquitectura de Computadoras 35


ALU de 32 bits

Universidad de Sonora Arquitectura de Computadoras 36


ALU para MIPS
Falta soportar los brincos condicionales.
beq $x, $y, L brinca a L si $x = $y.
bne $x, $y, L brinca a L si $x $y.
Se calcula t = $x - $y.
Si t es cero, $x = $y.
Si t no es cero, $x $y.

Universidad de Sonora Arquitectura de Computadoras 37


ALU para MIPS
Se agrega una salida Zero que detecte
cuando todos los bits de resultado sean cero.
Zero = (Result31 + Result30 + + Result1 +
Result0)
Se combinan la entradas Binvert y CarryIn de
la ALU0 con el nombre Bnegate.
Binvert = CarryIn = 1 cuando hay que restar.
Binvert = CarryIn = 0 en la suma y operaciones
lgicas.

Universidad de Sonora Arquitectura de Computadoras 38


ALU para MIPS

Universidad de Sonora Arquitectura de Computadoras 39


Diagrama y tabla de la
ALU
Lneas de Funcin
control
C3 C2 C1 C0
0 0 0 0 AND
0 0 0 1 OR
0 0 1 0 suma
0 1 1 0 resta
0 1 1 1 set on less than
1 1 0 0 NOR
C3 = Ainvert
C2 = Bnegate
Universidad de Sonora Arquitectura de Computadoras 40
Overflow
El overflow ocurre cuando el resultado de una
operacin no se puede representar en el
hardware.
Con 4 bits, el rango de enteros con signo,
usando complemento a dos para los
negativos, es de -8 a +7.
La suma 5 + 6 genera overflow.
La resta -5 6 genera overflow.

Universidad de Sonora Arquitectura de Computadoras 41


Overflow
Sumando 5 + 6 con 4 bits:
0101 (+5)
+ 0110 (+6)
-------------
1011 (-5) error!
Restando -5 6 con 4 bits:
1011 (-5)
+ 1010 (-6)
------------
0101 (+5) error!
Universidad de Sonora Arquitectura de Computadoras 42
Detectando overflow
El overflow ocurre en la suma cuando:
Al sumar dos positivos el resultado es negativo.
Al sumar dos negativos el resultado es positivo.
El overflow ocurre en la resta cuando:
Al restar un negativo de un positivo el resultado
es negativo.
Al restar un positivo de un negativo el resultado
es positivo.

Universidad de Sonora Arquitectura de Computadoras 43


Detectando overflow
Operacin A B Resultado indicando
overflow
A+B 0 0 <0
A+B <0 <0 0
AB 0 <0 <0
AB <0 0 0

Universidad de Sonora Arquitectura de Computadoras 44


Detectando overflow
Mtodo obvio: revisar los signos de los
operandos y del resultado.
Si los operandos son positivos, revisar que el
resultado sea positivo.
Los dems casos se hacen igual.
Mtodo no (tan) obvio: si el carry de entrada
es distinto al carry de salida en el bit mas
significativo, se gener overflow.
La demostracin se queda de tarea.

Universidad de Sonora Arquitectura de Computadoras 45


Overflow en MIPS
Las operaciones con enteros con signo deben
reconocer el overflow.
Con 4 bits, el rango es de -8 a +7.
5 + 6 genera overflow.
Las operaciones con enteros sin signo ignoran
el overflow.
Con 4 bits, el rango es de 0 a 15.
5 + 6 = 11.
14 + 7 = 5 (se ignora el ltimo carry).

Universidad de Sonora Arquitectura de Computadoras 46


Overflow en MIPS
En MIPS hay dos clases de instrucciones
aritmticas:
1. La suma (add), suma inmediata (addi) y
resta (sub), reconocen el overflow.
2. La suma sin signo (addu), suma inmediata
sin signo (addiu) y resta sin signo (subu),
ignoran el overflow.

Universidad de Sonora Arquitectura de Computadoras 47

También podría gustarte