¿Qué es la unidad aritmética lógica?
Una unidad aritmética lógica es la parte de una unidad central de procesamiento que realiza operaciones aritméticas y lógicas sobre los operandos de las palabras de instrucción de la computadora.
En algunos procesadores, la ALU se divide en dos unidades: una unidad aritmética (AU) y una unidad lógica (LU). Algunos procesadores contienen más de una AU, por ejemplo, una para operaciones de coma fija y otra para operaciones de coma flotante.
En los sistemas informáticos, los cálculos de coma flotante a veces se realizan mediante una unidad de coma flotante (FPU) en un chip separado llamado coprocesador numérico.
¿Cómo funciona la unidad aritmética lógica?
Normalmente, la ALU tiene acceso directo de entrada y salida al controlador del procesador, a la memoria principal (memoria de acceso aleatorio o RAM en una computadora personal) y a los dispositivos de entrada/salida. Las entradas y salidas fluyen a lo largo de una ruta electrónica que se denomina bus.
La entrada consta de una palabra de instrucción, a veces llamada palabra de instrucción de máquina, que contiene un código de operación u «opcode», uno o más operandos y, a veces, un código de formato. El código de operación le dice a la ALU qué operación debe realizar y los operandos se utilizan en la operación.
Por ejemplo, se pueden sumar o comparar lógicamente dos operandos. El formato se puede combinar con el código de operación e indica, por ejemplo, si se trata de una instrucción de coma fija o de coma flotante.
La salida consiste en un resultado que se coloca en un registro de almacenamiento y en configuraciones que indican si la operación se realizó correctamente. Si no es así, se almacenará algún tipo de estado en un lugar permanente que a veces se denomina palabra de estado de la máquina.
En general, la ALU incluye lugares de almacenamiento para los operandos de entrada, los operandos que se suman, el resultado acumulado (almacenado en un acumulador) y los resultados desplazados. El flujo de bits y las operaciones que se realizan sobre ellos en las subunidades de la ALU están controlados por circuitos con compuertas.
Las compuertas de estos circuitos están controladas por una unidad lógica de secuencia que utiliza un algoritmo o secuencia particular para cada código de operación. En la unidad aritmética, la multiplicación y la división se realizan mediante una serie de operaciones de suma o resta y desplazamiento.
Existen varias formas de representar números negativos. En la unidad lógica, se puede realizar una de las 16 operaciones lógicas posibles — como comparar dos operandos e identificar dónde no coinciden los bits.
El diseño de la ALU es una parte fundamental del procesador y se desarrollan continuamente nuevos enfoques para acelerar el procesamiento de instrucciones.
¿Qué tipo de funciones admiten las ALU?
En informática, las ALU funcionan como un circuito digital combinacional que realiza operaciones a nivel de bit y aritméticas con números binarios. Se trata de un componente básico de los circuitos lógicos aritméticos para numerosos tipos de unidades de control y circuitos informáticos, incluidas las unidades centrales de procesamiento (CPUs), las FPUs y las unidades de procesamiento gráfico.
Mucho antes de las PC modernas, las ALU ayudaron a dar soporte a los microprocesadores y transistores en la década de 1970.
A continuación, se muestran algunos ejemplos de operaciones lógicas bit a bit y operaciones aritméticas básicas admitidas por las ALUs:
- Adición. Suma A y B con la suma de entrada o salida en Y.
- Resta. Resta B de A o viceversa con la diferencia en Y y entrada o salida.
- Incremento. Donde A o B se incrementa en uno e Y representa el nuevo valor.
- Decremento. Donde A o B se disminuye en uno e Y representa el nuevo valor.
- AND. La operación lógica AND a nivel de bits de A y B se representa con Y.
- OR. La operación lógica OR a nivel de bits de A y B se representa con Y.
- OR exclusivo. La operación lógica XOR a nivel de bits de A y B se representa con Y.
Las funciones de desplazamiento de ALU hacen que los operandos A o B se desplacen, ya sea hacia la derecha o hacia la izquierda, y el nuevo operando está representado por Y. Las ALUs complejas utilizan desplazadores de barril para desplazar los operandos A o B en cualquier número de bits en una sola operación.