UNIDAD ARITMÉTICA Y LÓGICA (ALU)
Una unidad aritmética lógica puede realizar un conjunto de
operaciones aritméticas básicas y un conjunto de operaciones lógicas, a través
de líneas de selección. En inglés ALU significa Arithmetic
Logic Unit (Unidad
Aritmética Lógica). La figura 3.12.1. muestra el diagrama de bloques de una ALU.

Figura
3.12.1. Diagrama de bloques de una ALU
Las cuatro entradas de A se combinan con las de B generando
una operación de salida de cuatro bits en F. La
entrada de selección de modo S2 distingue entre las operaciones aritméticas y lógicas. Las
entradas de selección S0 y S1 determinan la operación aritmética o lógica. Con las entradas S0 y S1 se
pueden elegir cuatro operaciones aritméticas (con S2 en un estado) y cuatro logicas (con S2 en otro
estado). Los acarreos de entrada y salida tienen sentido únicamente en las
operaciones aritméticas. El diseño de una ALU implica el diseño de la sección aritmética, la sección lógica y
la modificación de la sección aritmética para realizar las operaciones
aritméticas y lógicas.
Sección Lógica
Los datos de entrada en una operación lógica son manipulados en
forma separada y los bits son tratados como variables binarias. En la tabla
3.12.1. se listan cuatro operaciones lógicas OR, OR - Exclusiva, AND y NOT. En el circuito, las dos líneas de selección (S1, S0)
permiten seleccionar una de las compuertas de entrada, correspondientes a la
función Fi .
S1
|
S0
|
Salida
|
Función
Fi
|
0
|
0
|
F=Ai+Bi
|
OR
|
0
|
1
|
F=AiÅBi
|
XOR
|
1
|
0
|
F=Ai·Bi
|
AND
|
1
|
1
|
F=A'i
|
NOT
|
Tabla
3.12.1. Tabla de Función Lógica.
El circuito lógico de la figura 3.12.2 es una etapa de un
circuito lógico de n bits.

Figura
3.12.2. Diagrama lógico de un circuito lógico de una ALU
Sección Aritmética
El componente básico de la sección aritmética es un sumador en
paralelo (ver lección 3.10.1). Las
operaciones aritméticas configuradas en el circuito aritmético se presentan en
la tabla 3.12.2. En una ALU, la suma
aritmética se puede implementar con un número binario en A, otro número en la entrada B y el acarreo de entrada Cin en un valor lógico 0. El
resto de las funciones se enuncian en la columna descripción.
Selección
de Función
|
Salida
N
|
Función
|
Descripción
|
||
S1
|
S0
|
Cin
|
N
|
F
|
|
0
|
0
|
0
|
0
|
A
|
Transferir A
|
0
|
0
|
1
|
0
|
A+1
|
Incrementar A
|
0
|
1
|
0
|
B
|
A+B
|
Suma ó agregar B a A
|
0
|
1
|
1
|
B
|
A+B+1
|
Suma con accarreo ó
agregar B a A más 1
|
1
|
0
|
0
|
B’
|
A+B’
|
Agregar el complemento
de 1 de B a A
|
1
|
0
|
1
|
B’
|
A+B’+1
|
Agregar el complemento
de 2 de B a A
|
1
|
1
|
0
|
Todos unos
|
A-1
|
Decrementar A
|
1
|
1
|
1
|
Todos unos
|
A
|
Trasferir A
|
Tabla
3.12.2. Tabla de la Función F en un Circuito Aritmético
La implementación de las funciones anteriores por medio de un
circuito lógico sencillo se describe a continuación. El circuito se diseña bajo
el precepto de intervenir cada entrada Bi para obtener las siguientes funciones:
S1
|
S0
|
Ni
|
0
|
0
|
0
|
0
|
1
|
Bi
|
1
|
0
|
Bi'
|
1
|
1
|
1
|
Tabla
3.12.3. Tabla del circuito para la entrada Bi
La figura 3.12.3. muestra el circuito.

Figura
3.12.3. Circuito para la tabla 3.12.2.
Por medio de estas funciones se pueden lograr las funciones de
la tabla 3.12.2 al agregar el número Ni (tabla 3.12.3) a la entrada A a través de un sumador en paralelo
para cada etapa, teniendo en cuenta el valor de la entrada Cin. El
circuito combinacional aritmético se muestra en la figura 3.12.4. En la figura,
la entrada A se denomina Mi en el
sumador completo.

Figura
3.12.4. Circuito aritmético
Diseño de una Unidad Aritmética Lógica
En el diseño de una ALU se deben seguir los siguientes pasos:
1.
Diseñar la sección aritmética independientemente de la sección
lógica.
2.
Determinar las operaciones lógicas del circuito aritmético,
asumiendo que los acarreos de salida de todas las etapas son 0.
3.
Modificar el circuito aritmético para obtener las operaciones
lógica requeridas.
El diseño simple de una ALU se hace utilizando el sumador
completo para generar las operaciones lógicas de la unidad. Por lo tanto es
necesario introducir una variable de control adicional (S2), con
el fin de seleccionar entre las operaciones lógicas y aritméticas. En este
diseño, un valor S2 = 1 hace que
el circuito efectúe operaciones lógicas. Recordando
la salida de un sumador completo:
F = (Ai Å Bi) Å Cin
A partir de esta ecuación, es posible obtener la función lógica
requerida, utilizando la debida manipulación lógica. La función requerida se
expone en la tabla 3.12.4.
S2
|
S1
|
S0
|
Ai
|
Bi
|
Cin
|
Operación Sumador
Completo
|
Función requerida Fi
|
Manipulación
|
Salida
|
1
|
0
|
0
|
Ai
|
0
|
0
|
Ai
|
OR
|
Aplicar una función OR Ai + Bi
|
Ai+Bi
|
1
|
0
|
1
|
Ai
|
Bi
|
0
|
Ai Å Bi
|
XOR
|
Ninguna
|
AiÅBi
|
1
|
1
|
0
|
Ai
|
Bi'
|
0
|
Ai·Bi
|
AND
|
Aplicar una función OR Ai + Bi'
|
Ai·Bi
|
1
|
1
|
1
|
Ai
|
1
|
0
|
A'i
|
NOT
|
Ninguna
|
A'i
|
Tabla
3.12.4. Tabla de obtención de las funciones lógicas con un sumador completo
Partiendo de la tabla 3.12.4., las entradas Mi, Ni y Cini en un sumador completo, son equivalentes a las siguientes
expresiones:
Mi = Ai + S2·S1'·S0'·Bi + S2·S1·S0'·Bi'
Ni = S0·Bi + S1·Bi'
Cini = S2'·Ci
La figura 3.12.5. muestra el diagrama de la unidad aritmética
lógica de dos etapas.

Figura
3.12.5. Diagrama lógico de una ALU
Las doce operaciones generadas en el ALU se
resumen en la tabla 3.12.5., la función en particular se selecciona a través de S2, S1, S0 y Cin. Las operaciones
aritméticas son las mismas del circuito aritmético.
Selección
|
Salida F
|
hDescripción
|
|||
hS2
|
hS1
|
hS0
|
Cin
|
F
|
|
0
|
0
|
0
|
0
|
A
|
Trasferir A
|
0
|
0
|
0
|
1
|
A+1
|
Incrementar A
|
0
|
0
|
1
|
0
|
A+B
|
Suma
|
0
|
0
|
1
|
1
|
A+B+1
|
Suma con accarreo
|
0
|
1
|
0
|
0
|
A-B-1
|
Resta con préstamo
|
0
|
1
|
0
|
1
|
A-B
|
Sustracción
|
0
|
1
|
1
|
0
|
A-1
|
Decrementar A
|
0
|
1
|
1
|
1
|
A
|
Transferir A
|
1
|
0
|
0
|
X
|
A+B
|
OR
|
1
|
0
|
1
|
X
|
A Å B
|
OR-Exclusiva
|
1
|
1
|
0
|
X
|
A·B
|
AND
|
1
|
1
|
1
|
X
|
A’
|
Complementar A
|
No hay comentarios:
Publicar un comentario