Marcos Daniel Rodríguez Farfán
Unidad aritmética lógica
Una ALU (Unidad Aritmética-Lógica) es un
circuito que permite, como su nombre lo
indica, realizar operaciones lógicas y
aritméticas es un circuito digital que calcula
operaciones aritméticas (como suma, resta,
multiplicación, etc.) y operaciones lógicas (si,
y, o, no), entre valores (generalmente uno o
dos) de los argumentos. Además de los
operadores lógicos y aritméticos, la ALU
cuenta con una serie de registros para
almacenar los datos, y bits de información
sobre los resultados, también llamados banderas.
Las banderas más comunes son: Carry, Auxiliary Carry, Borrow, Overflow, Parity, Zero.
Las señales de entrada son:
• Las líneas de control que determinan la operación a implementar.
• Las líneas de datos de entrada correspondiente a los argumentos de la operación (registros de
entrada).
Las señales de salida son:
• Las líneas de datos donde se retorna el resultado de la operación implementada (registro de
salida).
• Los indicadores de estado (o flags), que indican la validez e información adicional de la operación
(desbordamiento, acarreo, signo, zero, etc).
Funcionamiento:
La ALU se compone básicamente de: Circuito Operacional, Registros de Entradas, Registro
Acumulador y un Registro de Estados, conjunto de registros que hacen posible la realización de cada
una de las operaciones.
La mayoría de las acciones de la computadora son realizadas por la ALU. La ALU toma datos de los
registros del procesador. Estos datos son procesados y los resultados de esta operación se
almacenan en los registros de salida de la ALU. Otros mecanismos mueven datos entre estos
registros y la memoria.
Una unidad de control controla a la ALU, al ajustar los circuitos que le señala a la ALU qué
operaciones realizar.
En la imagen se detalla una ALU de 2 bits con dos entradas (operandos) llamadas A y B: A[0] y B[0]
corresponden al bit menos significativo y A[1] y B[1] corresponden al bit más significativo.
Cada bit de la ALU se procesa de manera idéntica, con la excepción del direccionamiento del bit del
acarreo.
Marcos Daniel Rodríguez Farfán
Las entradas A y B van hacia las cuatro puertas de la derecha, de arriba a abajo, XOR, AND, OR. Las
tres primeras puertas realizan las operaciones XOR, AND, y OR sobre los datos A y B. La última puerta
XOR es la puerta inicial de un sumador completo.
El paso final de las operaciones sobre cada bit es la multiplexación de los datos. La entrada OP de 3
bits, OP[0], OP[1] y OP[2] (desde la unidad de control) determina cual de las funciones se van a
realizar:
OP = 000 → XOR
OP = 001 → AND
OP = 010 → OR
OP = 011 → Adición
Los datos de acarreo de entrada y acarreo de salida, llamados flags (banderas), son típicamente
conectados a algún tipo de registro de estado.
Operaciones
La mayoría de las ALU pueden realizar las siguientes operaciones:
Operaciones aritméticas de números enteros (adición, sustracción, y a veces multiplicación
y división, aunque esto es más complejo)
Operaciones lógicas de bits (AND, NOT, OR, XOR, XNOR)
Operaciones de desplazamiento de bits (Desplazan o rotan una palabra en un número
específico de bits hacia la izquierda o la derecha, con o sin extensión de signo). Los
desplazamientos pueden ser interpretados como multiplicaciones o divisiones por 2.
Overflow
El desbordamiento ocurre cuando el
resultado de una operación aritmética
implementada por la ALU cae fuera del
rango de codificación definido para la
salida.
Condiciones de Overflow
Del análisis se deriva que:
• Al sumar dos números complemento
dos de distinto signo, el resultado nunca
genera un overflow pues la magnitud del
número resultante es estrictamente
menor que la de cada uno de sus
argumentos, y por consiguiente
representable.
• Sin embrago, al sumar números de igual
signo, el overflow se da cuando, como
consecuencia de estas rotaciones, el
resultado corresponde a un numero de
Marcos Daniel Rodríguez Farfán
signo contrario al de sus argumentos. Esta condición define la lógica de control que debe
implementar la ALU para detectar estos eventos.
Acarreo
En aritmética, el acarreo es el nombre utilizado para describir un recurso mnemotécnico en una
operación aritmética, principalmente en la operación suma.
Se usa cuando un dígito ha sido transferido de una columna de dígitos a otra columna de mayor
potencia en un algoritmo de cálculo.
El acarreo del bit de mayor potencia de una
operación aritmética (o el desplazamiento del
último bit, en una operación de desplazamiento)
es ubicado en un bit especial, llamado bit de
acarreo, el cual podrá ser usado como entrada de
acarreo en una operación aritmética de precisión
múltiple, o será usado para el control de ejecución
de un programa informático.3
El acarreo reserva es, en la suma, la señal que marca el desbordamiento de la suma de dos números
y que se añade como 1 al valor de su izquierda.
Bit de pariedad
Un bit de paridad, o bit de verificación , es un bit agregado a una cadena de código binario para
garantizar que el número total de 1 bits en la cadena sea par o impar . Los bits de paridad se utilizan
como la forma más simple de código de detección de errores.
Hay dos variantes de bits de paridad: bit de paridad par y bit de paridad impar.
En el caso de paridad par, para un conjunto dado de bits, se cuentan las apariciones de bits cuyo
valor es 1. Si ese recuento es impar, el valor del bit de paridad se establece en 1, lo que hace que el
recuento total de ocurrencias de 1s en todo el conjunto (incluido el bit de paridad) sea un número
par. Si el recuento de 1s en un conjunto de bits dado ya es par, el valor del bit de paridad es 0.
En el caso de paridad impar, la codificación se invierte. Para un conjunto de bits dado, si el recuento
de bits con un valor de 1 es par, el valor del bit de paridad se establece en 1, lo que hace que el
recuento total de 1 en todo el conjunto (incluido el bit de paridad) sea un número impar. Si el
recuento de bits con un valor de 1 es impar, el recuento ya es impar, por lo que el valor del bit de
paridad es 0.