Documente Academic
Documente Profesional
Documente Cultură
ALU
Unidad Lgica-Aritmtica
La ALU es el dispositivo que se encarga de realizar operaciones:
a) aritmticas (suma, resta, etc.). b) lgicas (and, or, xor, etc.)
Unidad Lgica-Aritmtica
ALU de 1 bit
3 operaciones: AND, OR y suma. 2 bits para seleccionar la operacin.
Operacin Resultado 00 ab COut X
01 10 11
a+b
ab CarryIn
X
(a + b) CarryIn + (a b)
Ejercicio
Indique las operaciones que puede realizar la ALU con la siguiente arquitectura:
ALU de 1 bit
Operacin Binvert CIn X Resultado COut
00 01 10 10 10 11
0 0 1 1 X
X X 0 1 X
ab a+b
ab CarryIn
X X
(a + b) CarryIn + (a b)
X
Resta comp a2
X
borrow
Agregando operaciones
10
Agregando operaciones
Operacin
Ainvert
Binvert
CarryIn
Resultado CarryOut
00 00 00 00 01 01 01 01
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
X X X X X X X X
X X X X X X X X
11
Agregando operaciones
Operacin Ainvert Binvert CarryIn Funcin aritmtica
10 10 10 10 10
0 0 0 1 1
0 0 1 0 1
0 1 1 1 1
12
C3 = Ainvert C2 = Bnegado
13
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.
Demuestre que: - la suma 5 + 6 genera overflow. la resta -5 6 genera overflow.
14
Overflow
Sumando 5 + 6 con 4 bits:
0101 (+5) + 0110 (+6) ------------1011 (-5) error!
15
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.
16
Detectando overflow
Operacin A B Resultado indicando overflow
A+B A+B AB AB
0 <0 0 <0
0 <0 <0 0
<0 0 <0 0
17
Detectando overflow
Mtodo normal: revisar los signos de los operandos y del resultado.
Si los operandos son positivos, revisar que el resultado sea positivo. Los dems casos se resuelven igual.
Mtodo no (tan) normal: si el carry de entrada es diferente al carry de salida en el bit ms significativo, se gener overflow.
Tarea: demostrar esto!!!!.
18
19