Ingeniero
Construcción de una Unidad Aritmético Lógica (ALU)
Introducción
La unidad aritmético lógica o ALU es el músculo del computador, es el dispositivo que se
encarga de realizar las operaciones aritméticas (suma y resta) y las operaciones lógicas (and, or y
xor).
A lo largo de este capítulo iremos construyendo la ALU paso a paso y veremoscómo es capaz de
realizar todas las operaciones indicadas.
Para construir la ALU vamos a partir de bloques funcionales ya vistos, puertas AND, OR, XOR,
inversores y multiplexadores, tal como aparecen en las figuras siguientes.
1. Puerta and ( s = a ⋅ b)
s
a
0
0
1
1
s = a·b
0
0
0
1
a
0
0
1
1
a
b
0
1
0
1
b
0
1
0
1
s = a+b
0
1
1
1
b
2. Puerta or (s = a + b)
s
a
b
3. Inversor ( s = a )
s
a
s=a
0
1
1
0
a
0
0
1
1
b
0
1
0
1
a
4. Puerta xor ( s = a ⊕ b)
1
s = a⊕b
0
1
1
0
Construcción de una Unidad Aritmético Lógica (ALU)
s
a
b
5. Multiplexor (Si a0 = 0, s := e0; sino, s := e1)
s
Mux
e0
a0
0
1
a0
s
e0
e1
e1
Los computadores trabajan con palabras devarios bits, y por lo tanto la ALU debe ser capaz de
operar con estas palabras. Por motivos de simplicidad, inicialmente vamos a diseñar una ALU de
un bit para posteriormente extender el diseño al número de bits de la palabra del computador.
Construcción de una ALU de 1 bit
En primer lugar, las operaciones lógicas a realizar sobre los bits son fáciles de construir, puesto
que se correspondencon puertas lógicas ya existentes. Los valores de entrada se llevan
directamente a las puertas, y mediante un multiplexor elegimos la salida de una u otra puerta, es
decir, elegimos el resultado de una u otra operación. En la figura 1 aparece la construcción de
esta unidad de operación lógica.
Resultado
a1
a0
MUX
e0
Op1
Op0
e1 e2 e3
A
B
Figura 1. Implementación de lasoperaciones lógicas en una ALU de 1 bit.
2
Construcción de una Unidad Aritmético Lógica (ALU)
El siguiente paso a dar en la construcción de nuestra ALU elemental de un bit será incorporar las
operaciones aritméticas. Para ello utilizamos un bloque sumador, este bloque sumador ya ha sido
desarrollado en el tema de circuitos combinacionales.
Si
Ci
Sumador
elemental
Ai
Ci-1
BiFigura 2. Esquema del bloque sumador elemental de 1 bit.
Debe recordarse que el bloque sumador tenía tres entradas, dos entradas para los bits a sumar y
la tercera entrada para el carry de la suma anterior o carry previo, que aquí llamaremos carry in.
Las salidas del bloque sumador serán el bit de resultado y el bit de carry de salida, que aquí
llamaremos carry out, y que a su vez serácarry in para el siguiente sumador. El bloque por el
que representaremos el sumador aparece en la figura 2.
Si ahora incorporamos el bloque sumador a nuestra ALU, que sólo realizaba operaciones lógicas,
tendremos una primera ALU elemental capaz de realizar operaciones lógicas y aritméticas. En
esta primera ALU elemental, existen cuatro posibles operaciones, AND, OR, XOR y Suma, a
partir de losmismos operandos de entrada. La elección de una u otra se realiza a través del
multiplexor, la combinación binaria que aparece en las líneas de selección del multiplexor
indicarán cuál de las entradas (qué operación) aparece a la salida de nuestra ALU elemental. La
combinación binaria de entrada viene dada por la señal Operación (compuesta por dos bits) que
se corresponde con la operación quequeremos realizar. En la figura 3 aparece este primer
esquema de ALU elemental.
Resultado
s
a1
MUX
Op1
a0
Op0
e0 e1 e2 e3
Si
Ci
Cout
Sumador
elemental
Ai
Ci-1
Bi
B
A
Figura 3. Esquema de una ALU elemental con operaciones lógica y Sumador elemental.
3
Cin
Construcción de una Unidad Aritmético Lógica (ALU)
Queda ahora por añadir a esta...
Regístrate para leer el documento completo.