domingo, 7 de junio de 2015

ALU


Introducción


La unidad aritmética 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 dos números.


Muchos tipos de circuitos electrónicos necesitan realizar algún tipo de operación aritmética, así que incluso el circuito dentro de un reloj digital tendrá una ALU minúscula 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 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.


La ALU se compone básicamente de: Circuito Operacional, Registros de Entradas, Registro Acumulador y un Registro, conjunto de registros que hacen posible la realización de cada una de las operaciones.


La mayoría de las acciones de la computadora son realizadas por la ALU. La ALU toma datos de los registros. 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.


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 izquierda, 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 cuál 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.











HISTORIA


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.1 Por lo tanto, creyó que era "razonable que una computadora debería contener los órganos especializados para estas operaciones".

No hay comentarios:

Publicar un comentario