Unidad Aritmética Lógica
Unidad Aritmética Lógica
Unidad Aritmética Lógica
Ir a la navegación Ir a la búsqueda
Este artículo o sección necesita referencias que aparezcan en una publicación
acreditada.
Este aviso fue puesto el 15 de noviembre de 2013.
Para otros usos de este término, véase Alu (desambiguación).
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.
Índice
1 Historia: Propuesta de Von Neumann
2 Sistemas numéricos
3 Introducción práctica
o 3.1 Detalle
4 Operaciones simples
5 Operaciones complejas
6 Entradas y salidas
7 ALU vs. FPU
8 Véase también
9 Referencias
10 Enlaces externos
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.1 Por lo tanto, creyó que era "razonable que una computadora
debería contener los órganos especializados para estas operaciones".1
Sistemas numéricos
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.
Introducción práctica
Una ALU simple de 2 bits que hace operaciones de AND, OR, XOR y adición (ver
explicación en el texto).
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.2
Una unidad de control controla a la ALU, al ajustar los circuitos que le señala a la ALU qué
operaciones realizar.
Detalle
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. El manejo de este bit es explicado más adelante.
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
Claramente se ve que las otras cuatro entradas del multiplexor están libres para otras
operaciones (sustracción, multiplicación, división, NOT A, NOT B, etc). Aunque OP[2]
actualmente no es usada en este montaje (a pesar de estar incluida y conectada), ésta sería
usada en el momento de realizar otras operaciones además de las 4 operaciones listadas
arriba.
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 simples
La mayoría de las ALU pueden realizar las siguientes operaciones:
Operaciones complejas
Un ingeniero puede diseñar una ALU para calcular cualquier operación, sin importar lo
compleja que sea; el problema es que cuanto más compleja sea la operación, tanto más
costosa será la ALU, más espacio usará en el procesador, y más energía disipará, etc.
1. Diseñar una ALU muy compleja que calcule la raíz cuadrada de cualquier número
en un solo paso. Esto es llamado cálculo en un solo ciclo de reloj.
2. Diseñar una ALU compleja que calcule la raíz cuadrada con varios pasos (como el
algoritmo que algunos hemos aprendido en la escuela). Esto es llamado cálculo
iterativo, y generalmente confía en el control de una unidad de control compleja
con microcódigo incorporado.
3. Diseñar una ALU simple en el procesador, y vender un procesador separado,
especializado y costoso, que el cliente pueda instalar adicional al procesador, y que
implementa una de las opciones de arriba. Esto es llamado coprocesador o unidad
de coma flotante.
4. Emular la existencia del coprocesador, es decir, siempre que un programa intente
realizar el cálculo de la raíz cuadrada, hacer que el procesador compruebe si hay
presente un coprocesador y usarlo si lo hay; si no hay uno, interrumpir el proceso
del programa e invocar al sistema operativo para realizar el cálculo de la raíz
cuadrada por medio de un cierto algoritmo de software. Esto es llamado emulación
por software.
5. Decir a los programadores que no existe el coprocesador y no hay emulación, así
que tendrán que escribir sus propios algoritmos para calcular raíces cuadradas por
software. Esto es realizado por bibliotecas de software.
Las opciones superiores van de la más rápida y más costosa a la más lenta y económica. Por
lo tanto, mientras que incluso la computadora más simple puede calcular la fórmula más
complicada, las computadoras más simples generalmente tomarán un tiempo largo porque
varios de los pasos para calcular la fórmula implicarán las opciones #3, #4 y #5 de arriba.
Entradas y salidas
Las entradas a la ALU son los datos en los que se harán las operaciones (llamados
operandos) y un código desde la unidad de control indicando qué operación realizar. Su
salida es el resultado del cómputo de la operación.
En muchos diseños la ALU también toma o genera como entradas o salidas un conjunto de
códigos de condición desde o hacia un registro de estado. Estos códigos son usados para
indicar casos como acarreo entrante o saliente, overflow, división por cero, etc.2
Generalmente los ingenieros llaman ALU al circuito que realiza operaciones aritméticas en
formatos de número entero (como complemento a dos y BCD), mientras que los circuitos
que calculan en formatos más complejos como coma flotante, números complejos, etc.,
reciben generalmente un nombre más específico, como FPU.