Unidad aritmético-lógica (ALU)

Una unidad aritmético-lógica (ALU) es la parte de un procesador de computadora (CPU) que realiza operaciones aritméticas y lógicas en los operandos en palabras de instrucción de 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 punto fijo operaciones y otra para punto flotante operaciones. (En las computadoras personales, las operaciones de coma flotante a veces se realizan mediante una unidad de coma flotante en un chip separado llamado coprocesador numérico).

Normalmente, la ALU tiene acceso directo de entrada y salida al controlador del procesador, la memoria principal (memoria de acceso aleatorio o RAM en una computadora personal) y dispositivos de entrada / salida. Las entradas y salidas fluyen a lo largo de una ruta electrónica que se llama 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, 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 realizar y los operandos que se utilizan en la operación. (Por ejemplo, dos operandos pueden sumarse o compararse lógicamente). El formato puede combinarse con el código de operación y dice, 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 almacenamiento "registrarse" y 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 operandos de entrada, operandos que se están agregando, el resultado acumulado (almacenado en un acumulador) y resultados modificados. El flujo de bits y las operaciones ejecutadas sobre ellos en las subunidades de la ALU está controlado por circuitos cerrados. Las puertas 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, resta y desplazamiento. Hay 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 los bits no coinciden.

El diseño de la ALU es obviamente una parte crítica del procesador y continuamente se están desarrollando nuevos enfoques para acelerar el manejo de instrucciones.