sábado, 21 de septiembre de 2013

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 ALUsignifica 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 S1 se pueden elegir cuatro operaciones aritméticas (con S2en 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 OROR - ExclusivaAND NOT. En el circuito, las dos líneas de selección (S1S0) permiten seleccionar una de las compuertas de entrada, correspondientes a la función Fi .
S1S0SalidaFunción Fi
00F=Ai+BiOR
01F=AiÅBiXOR
10F=Ai·BiAND
11F=A'iNOT
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 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. 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 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ónSalida NFunciónDescripción
S1S0Cin NF 
0000ATransferir A
0010A+1Incrementar A
010BA+BSuma ó agregar B a A
011BA+B+1Suma con accarreo ó agregar B a A más 1
100B’A+B’Agregar el complemento de 1 de B a A
101B’A+B’+1Agregar el complemento de 2 de B a A
110Todos unosA-1Decrementar A
111Todos unosATrasferir 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 Bipara obtener las siguientes funciones:
S1S0Ni
000
01Bi
10Bi'
111
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 valoS= 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.
S2S1S0AiBiCinOperación Sumador CompletoFunción requerida FiManipulaciónSalida
100Ai00AiORAplicar una función OR Ai + BiAi+Bi
101AiBi0Ai Å BiXORNingunaAiÅBi
110AiBi'0Ai·BiANDAplicar una función OR Ai + Bi'Ai·Bi
111Ai10A'iNOTNingunaA'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 Cini en un sumador completo, son equivalentes a las siguientes expresiones:

Mi = Ai S2·S1'·S0'·Bi SSS0'·Bi'
Ni = S0·Bi S1·Bi'
Cini =
 S2Ci
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 S2S1S0 y Cin. Las operaciones aritméticas son las mismas del circuito aritmético.
SelecciónSalida FhDescripción
hS2hS1hS0CinF 
0000ATrasferir A
0001A+1Incrementar A
0010A+BSuma
0011A+B+1Suma con accarreo
0100A-B-1Resta con préstamo
0101A-BSustracción
0110A-1Decrementar A
0111ATransferir A
100XA+BOR
101XÅ BOR-Exclusiva
110XA·BAND
111XA’Complementar A
Tabla 3.12.5. Tabla de verdad de una ALU

No hay comentarios:

Publicar un comentario