Está en la página 1de 5

Unidad aritmtica lgica

1. Teoria
En computacin, la unidad aritmtica lgica o unidad aritmtico-lgica, tambin
conocida como ALU (siglas en ingls de arithmetic logic unit), es un circuito
digital que calcula operaciones aritmticas (como suma, resta, multiplicacin, etc.) y
operaciones lgicas (si, y, o, no), entre valores (generalmente uno o dos) de los
argumentos.
Muchos tipos de circuitos electrnicos necesitan realizar algn tipo de operacin
aritmtica, as que incluso el circuito dentro de un reloj digital tendr una ALU
minscula que se mantiene sumando 1 al tiempo actual, y se mantiene
comprobando si debe activar el sonido de la alarma, etc.
Por mucho, los circuitos electrnicos ms complejos son los que estn 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 mltiples ncleos, cada
ncleo con mltiples unidades de ejecucin, cada una de ellas con mltiples ALU.
Muchos otros circuitos pueden contener en el interior una unidad aritmtico
lgica: unidades de procesamiento grfico como las que estn en las GPU
modernas, FPU como el viejo coprocesador matemtico 80387, y procesadores
digitales de seales como los que se encuentran en tarjetas de sonido, lectoras de
CD y los televisores de alta definicin. Todos stos tienen en su interior varias ALU
potentes y complejas.
Historia: Propuesta de Von Neumann
El matemtico 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
Automtico Variable Discreto Electrnico). Ms adelante, en 1946, trabaj con sus
colegas diseando 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 sera necesario en su mquina, incluyendo una
ALU.
Von Neumann explic que una ALU es un requisito fundamental para una
computadora porque necesita efectuar operaciones matemticas bsicas: adicin,
sustraccin, multiplicacin, y divisin.1 Por lo tanto, crey que era "razonable que
una computadora debera contener los rganos especializados para estas
operaciones".1
Sistemas numricos
Una ALU debe procesar nmeros usando el mismo formato que el resto del circuito
digital. Para los procesadores modernos, este formato casi siempre es la
representacin del nmero binario de complemento a dos. Las primeras
computadoras usaron una amplia variedad de sistemas de numeracin,
incluyendo complemento a uno, formato signo-magnitud, e incluso
verdaderos sistemas decimales, con diez tubos por dgito.
Las ALU para cada uno de estos sistemas numricos mostraban diferentes diseos,
y esto influenci la preferencia actual por el complemento a dos, debido a que sta
es la representacin ms simple, para el circuito electrnico de la ALU, para calcular
adiciones, sustracciones, etc.
Operaciones simples
La mayora de las ALU pueden realizar las siguientes operaciones:
Operaciones aritmticas de nmeros enteros (adicin, sustraccin, y a
veces multiplicacin y divisin, aunque esto es ms complejo)
Operaciones lgicas de bits (AND, NOT, OR, XOR, XNOR)
Operaciones de desplazamiento de bits (Desplazan o rotan una palabra en un
nmero especfico de bits hacia la izquierda o la derecha, con o sin extensin de
signo). Los desplazamientos pueden ser interpretados como multiplicaciones o
divisiones por 2.
Operaciones complejas
Un ingeniero puede disear una ALU para calcular cualquier operacin, sin importar
lo compleja que sea; el problema es que cuanto ms compleja sea la operacin,
tanto ms costosa ser la ALU, ms espacio usar en el procesador, y ms energa
disipar, etc.
Por lo tanto, los ingenieros siempre calculan un compromiso, para proporcionar
al procesador (u otros circuitos) una ALU suficientemente potente para calcular
rpido, pero no de una complejidad de tal calibre que haga una ALU
econmicamente prohibitiva. Imagina que necesitas calcular, digamos, la raz
cuadrada de un nmero; el ingeniero digital examinar las opciones siguientes para
implementar esta operacin:
Disear una ALU muy compleja que calcule la raz cuadrada de cualquier nmero en
un solo paso. Esto es llamado clculo en un solo ciclo de reloj.
Disear una ALU compleja que calcule la raz cuadrada con varios pasos (como el
algoritmo que aprendimos en la escuela). Esto es llamado clculo iterativo, y
generalmente confa en el control de una unidad de control compleja
con microcdigo incorporado.
Disear 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.
Emular la existencia del coprocesador, es decir, siempre que un programa intente
realizar el clculo de la raz 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 clculo de la raz cuadrada
por medio de un cierto algoritmo de software. Esto es llamado emulacin por
software.
Decir a los programadores que no existe el coprocesador y no hay emulacin, as
que tendrn que escribir sus propios algoritmos para calcular races cuadradas por
software. Esto es realizado por bibliotecas de software.
Las opciones superiores van de la ms rpida y ms costosa a la ms lenta y
econmica. Por lo tanto, mientras que incluso la computadora ms simple puede
calcular la frmula ms complicada, las computadoras ms simples generalmente
tomarn un tiempo largo porque varios de los pasos para calcular la frmula
implicarn las opciones #3, #4 y #5 de arriba.
Los procesadores complejos como el Pentium IV y el AMD Athlon 64 implementan la
opcin #1 para las operaciones ms complejas y la ms lenta #2 para las
operaciones extremadamente complejas. Eso es posible por la capacidad de
construir ALU muy complejas en estos procesadores.
Entradas y salidas
Las entradas a la ALU son los datos en los que se harn las operaciones
(llamados operandos) y un cdigo desde la unidad de control indicando qu
operacin realizar. Su salida es el resultado del cmputo de la operacin.
En muchos diseos la ALU tambin toma o genera como entradas o salidas un
conjunto de cdigos de condicin desde o hacia un registro de estado. Estos cdigos
son usados para indicar casos como acarreo entrante o saliente, overflow, divisin
por cero, etc.2
ALU vs. FPU
Una unidad de coma flotante, Floating Point Unit (FPU), tambin realiza operaciones
aritmticas entre dos valores, pero lo hace para nmeros en representacin de coma
flotante, que es mucho ms complicada que la representacin de complemento a
dos usada comnmente en una ALU. Para hacer estos clculos, una FPU tiene
incorporados varios circuitos complejos, incluyendo algunas ALU internas.
Generalmente los ingenieros llaman ALU al circuito que realiza operaciones
aritmticas en formatos de nmero entero (como complemento a dos y BCD),
mientras que los circuitos que calculan en formatos ms complejos como coma
flotante, nmeros complejos, etc., reciben generalmente un nombre ms especfico,
como FPU.
2. Simulacin y tablas de verdad
2.1 Operaciones Aritmticas

2.2 Operaciones Lgicas


OR
AND

XOR

También podría gustarte