Sunteți pe pagina 1din 19

Unidad LgicaAritmtica

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.)

Forma parte de la arquitectura interna de una unidad procesadora CPU

Unidad Lgica-Aritmtica

Una ALU dentro de un CPU

La ALU mas simple: de 1 bit


Dos operaciones: AND y OR. Un bit para seleccionar la operacin. Operacin 0 1 Salida ab a+b

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

Ejercicio: Agregando operaciones


Demuestre que variando Ainvert y Binvert en el circuito anterior permite generar:
8 operaciones lgicas. 5 operaciones aritmticas.

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

ab ab ab ab a+b a+b a+b a+b

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

a+b a+b+1 a-b b-a -a - b

12

Diagrama y tabla de la ALU


Lneas de control C3 C2 C1 C0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 1 1 1 0 0 1 0 0 1 0 AND OR suma resta INC a NOR Funcin

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!

Restando -5 6 con 4 bits:


1011 (-5) + 1010 (-6) -----------0101 (+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

Unidad Funcional (ALU)


Unidad Lgica-Aritmtica (ALU)

19

S-ar putea să vă placă și