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 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.
Por
mucho, los circuitos electrónicos más complejos son los que están construidos
dentro de los chips de microprocesadores modernos. Por lo tanto, estos
procesadores tienen dentro de ellos un ALU muy complejo y potente. De hecho, un
microprocesador moderno (y los mainframes) puede tener múltiples núcleos, cada
núcleo con múltiples unidades de ejecución, cada una de ellas con múltiples
ALU.
Muchos
otros circuitos pueden contener en el interior una unidad aritmético lógica:
unidades de procesamiento gráfico como las que están en las GPU modernas, FPU
como el viejo coprocesador matemático 80387, y procesadores digitales de
señales como los que se encuentran en tarjetas de sonido, lectoras de CD y los
televisores de alta definición. Todos éstos tienen en su interior varias ALU
potentes y complejas.
Historia: Propuesta de Von Neumann
El
matemático John von Neumann propuso el concepto de la ALU en 1945, cuando
escribió un informe sobre las fundaciones para un nuevo computador llamado
EDVAC (Electronic Discrete Variable Automatic Computer) (Computador Automático
Variable Discreto Electrónico). Más adelante, en 1946, trabajó con sus colegas
diseñando un computador para el Princeton Institute of Advanced Studies (IAS)
(Instituto de Princeton de Estudios Avanzados). El IAS computer se convirtió en
el prototipo para muchos computadores posteriores. 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. Por lo tanto, creyó que era "razonable que una
computadora debería contener los órganos especializados para estas operaciones".
Una ALU debe procesar números usando el mismo
formato que el resto del circuito digital. Para los procesadores modernos, este
formato casi siempre es la representación del número binario de complemento a
dos. Las primeras computadoras usaron una amplia variedad de sistemas de
numeración, incluyendo complemento a uno, formato signo-magnitud, e incluso
verdaderos sistemas decimales, con diez tubos por dígito.
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.