Escolar Documentos
Profissional Documentos
Cultura Documentos
Unidad aritmtico-lgica
Definicin
Arquitectura de Computadoras
Circuitos combinatorios
Su salida depende exclusivamente de sus entradas.
Arquitectura de Computadoras
Compuertas bsicas
Arquitectura de Computadoras
Compuertas bsicas
AND
OR
AB
A+B
NOT
A
Arquitectura de Computadoras
Otras compuertas
XOR (or exclusiv0).
EQV (equivalence).
NAND (not AND).
NOR (not OR).
Arquitectura de Computadoras
Multiplexor
El multiplexor (mux) tiene 2n entradas de datos, n bits
Arquitectura de Computadoras
Multiplexor
Mux 4 a 1
Mux 8 a 1
Arquitectura de Computadoras
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.
Arquitectura de Computadoras
Sumador completo
Arquitectura de Computadoras
10
Sumador completo
Suma = a b CarryIn
CarryOut = (a CarryIn) + (b CarryIn) + (a b)
= (a + b) CarryIn + (a b)
Arquitectura de Computadoras
11
Sumador completo
Diagrama a bloque.
Arquitectura de Computadoras
12
ALU de 1 bit
Dos operaciones: AND y OR.
Un bit para seleccionar la operacin.
Arquitectura de Computadoras
Operacin
Salida
ab
a+b
13
Agregando operaciones
El siguiente paso es agregar la suma.
Se agrega un sumador completo al diseo anterior.
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
01
a+b
10
ab
CarryIn
(a + b) CarryIn +
(a b)
11
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.
Arquitectura de Computadoras
17
ALU de 1 bit
Arquitectura de Computadoras
18
ALU de 1 bit
Operacin Binvert CarryIn
Resultado
CarryOut
00
ab
01
a+b
10
10
10
ab
a + b
11
a b CarryIn (a + b) CarryIn +
(a b)
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.
Arquitectura de Computadoras
21
ALU de 1 bit
Arquitectura de Computadoras
22
ALU de 1 bit
Operacin Ainvert
Binvert
CarryIn
Resultado
CarryOut
00
ab
00
a b
01
a+b
10
ab
CarryIn
(a + b) CarryIn +
(a b)
10
10
ab
a + b
11
Arquitectura de Computadoras
23
Agregando operaciones
Variando Ainvert y Binvert permite generar:
8 operaciones lgicas.
5 operaciones aritmticas.
Arquitectura de Computadoras
24
Agregando operaciones
Operacin
Ainvert
Binvert
CarryIn
Resultado
CarryOut
00
ab
00
a b
00
a b
00
a b
01
a+b
01
a + b
01
a + b
01
a + b
Arquitectura de Computadoras
25
Agregando operaciones
Operacin
Ainvert
Binvert
CarryIn
Funcin
aritmtica
10
a+b
10
a+b+1
10
a-b
10
b-a
10
-a - b
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.
Arquitectura de Computadoras
27
ALU de 32 bits
Arquitectura de Computadoras
28
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
31
30
Arquitectura de Computadoras
$y < $z
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.
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.
Arquitectura de Computadoras
32
Arquitectura de Computadoras
33
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
Arquitectura de Computadoras
36
Arquitectura de Computadoras
37
Arquitectura de Computadoras
38
Arquitectura de Computadoras
39
Funcin
C3 C2 C1 C0
0
AND
OR
suma
resta
NOR
C3 = Ainvert
C2 = Bnegate
Arquitectura de Computadoras
40
Overflow
El overflow ocurre cuando el resultado de una
Arquitectura de Computadoras
41
Overflow
Sumando 5 + 6 con 4 bits:
0101 (+5)
+ 0110 (+6)
------------1011 (-5) error!
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.
Arquitectura de Computadoras
43
Detectando overflow
Operacin
Resultado indicando
overflow
A+B
<0
A+B
<0
<0
AB
<0
<0
AB
<0
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.
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.
overflow.
Con 4 bits, el rango es de 0 a 15.
5 + 6 = 11.
14 + 7 = 5 (se ignora el ltimo carry).
Arquitectura de Computadoras
46
Overflow en MIPS
Arquitectura de Computadoras
47