Unidad aritmética lógica

En computación, la unidad aritmética lógica o unidad aritmético-lógica, también conocida como ALU (siglas en inglés de arithmetic logic unit), es un circuito digital que realiza operaciones aritméticas (suma, resta) y operaciones lógicas (SI, Y, O, NO) entre los valores de los argumentos (uno o dos) Por mucho, los circuitos electrónicos más complejos son los que están construidos dentro de los chips de microprocesadores modernos.

En esta propuesta, von Neumann esbozó lo que él creyó sería necesario en su máquina, incluyendo una ALU.

Von Neumann explicó que una ALU es un requisito fundamental para una computadora porque necesita efectuar operaciones matemáticas básicas: adición, sustracción, multiplicación, y división.

Para los procesadores modernos, este formato casi siempre es la representación del número binario de complemento a dos.

Las ALU para cada uno de estos sistemas numéricos mostraban diferentes diseños, y esto influenció la preferencia actual por el complemento a dos, debido a que ésta es la representación más simple, para el circuito electrónico de la ALU, para calcular adiciones, sustracciones, etc.

Por lo tanto, los ingenieros siempre calculan un compromiso, para proporcionar al procesador (u otros circuitos) una ALU suficientemente potente para calcular rápido, pero no de una complejidad de tal calibre que haga una ALU económicamente prohibitiva.

Estos códigos son usados para indicar casos como acarreo entrante o saliente, overflow, división por cero, etc.[2]​ Una unidad de coma flotante, Floating Point Unit (FPU), también realiza operaciones aritméticas entre dos valores, pero lo hace para números en representación de coma flotante, que es mucho más complicada que la representación de complemento a dos usada comúnmente en una ALU.

Para hacer estos cálculos, una FPU tiene incorporados varios circuitos complejos, incluyendo algunas ALU internas.

Un típico símbolo esquemático para una ALU: A y B son operandos; R es la salida; F es la entrada de la unidad de control ; D es un estado de la salida.
Una ALU simple de 2 bits que hace operaciones de AND , OR , XOR y adición (ver explicación en el texto).