| Error al crear miniatura: |
La Unidad lógica y aritmética (ULA) o en inglés Arithmetic Logic Unit (ALU) es la unidad del procesador (Céntrico Processing Unit, o simplemente CPU), que realmente ejecuta las operaciones aritméticas y lógicas referenciadas por los opcodes.
ES en la verdad, una "gran calculadora electrónica" del tipo desarrollado durante la II Guerra Mundial, y su tecnología ya estaba disponible cuando los primeros ordenadores modernos fueron construidos.
El matemático John von Neumann propuso el concepto de ULA en 1945, cuando escribió un informe sobre los fundamentos para un nuevo ordenador llamado EDVAC.
La tecnología utilizada fue inicialmente relés, herencia de la telefonía, y posteriormente válvulas, herencia de la radiofonia. Con la aparición de los transistores, y tras los circuitos integrados, los circuitos de la unidad aritmética y lógica pasaron a ser implementados con la tecnología de semi-conductores.
La ULA ejecuta las principales operaciones lógicas y aritméticas del ordenador. Ella suma, subtrai, divide, determina si un número es positivo o negativo o se es cero. Además de ejecutar funciones aritméticas, una ULA debe ser capaz de determinar si una cantidad es más pequeña o mayor que otra y cuando cantidades son iguales. La ULA puede ejecutar funciones lógicas con letras y con números.
-La ULA ejecuta operaciones aritméticas comunes.
-También toma decisiones lógicas, resolviendo sintaxis lógicas en una programación.
Tabla de contenido |
En 1946, von Neumann trabajó con sus compañeros en el proyecto de un ordenador para el Instituto de Estudios Avanzados de Princeton (Princeton Institute of Advanced Studies -IBAS). El ordenador IBAS se hube hecho el prototipo de muchos ordenadores. En la propuesta, von Neumann describió lo que él creía que sería preciso en su máquina, incluyendo una ULA. Von Neumann dije que la ULA era una necesidad para el ordenador porque ella garantizaría que el ordenador calcularía operaciones matemáticas básicas, incluyendo adición, subtracción, multiplicación, y división..[1] Él entonces hallaba razonable que un ordenador contuviera un órgano especializados para esas operaciones.[1]
Una ULA debe procesar números usando el mismo formato que el resto del circuito digital. En los modernos procesadores, que casi siempre es el número binario en representación de complemento para dos. Los primeros ordenadores usaban una gran variedad de sistemas numéricos, incluyendo los formatos complemento para uno, señal-magnitud y aún el sistema decimal. ULAs para cada uno de esos sistemas numéricos tenían diferentes proyectos, e influenció la actual preferencia por el complemento para dos, y esa es la representación que es de más fácil para la ULA calcular adiciones y subtracciones.[carece de fuentes]
Muchas de las acciones de los ordenadores son ejecutadas por la ULA. Esta recibe datos de los registradores, que son procesados y los resultados de la operación son almacenados en los registradores de salida. Otros mecanismos mueven los datos entre esos registradores y la memoria.[2] Una unidad de control controla la ULA, a través de circuitos que dicen que operaciones la ULA debe realizar.
Muchas ULA pueden realizar las siguientes operaciones:
Desplazamientos pueden ser interpretados como multiplicaciones o divisiones por 2.
Un ingeniero puede proyectar una ULA para calcular cualquier operación, sin embargo eso genera complejidad; el problema es que mientras más compleja la operación, más cara es la ULA, más espacio utiliza del procesador y más disipa energía. Entonces, ingenieros siempre calculan un compromiso entre el poder de procesamiento y su complejidad, satisfaciendo a los requisitos del procesador o de otro circuito. Imagine un escenario, donde es preciso calcular la raíz cuadrada. El ingeniero tendría las siguientes opciones:
Las opciones arriba van desde de más rápida y cara hasta de más lenta y más complicada. Entonces, mientras el más simple ordenador puede calcular de más compleja fórmula, los ordenadores más simples van a llevar usualmente más tiempo haciendo eso porque llevan varios pasos para calcular la fórmula. Procesadores poderosos como Intel Core y AMD64 utilizan la opción #1 para las operaciones más simples, #2 para las operaciones complejas más comunes y #3 para las operaciones extremadamente complejas. Eso es posible a través de la construcción de ULAs muy complejas en esos procesadores.
Las entradas para la ULA son los datos a ser operados (llamados operandos) y el código de la unidad de control indicando las operaciones para ejecutar. Las salidas son los resultados de la computación.
En muchos proyectos la ULA también lleva o genera las entradas o salidas un conjunto de códigos de condiciones de o para un registro de status. Esos códigos son usados para indicar casos como va-uno (presta-uno), (en inglés)overflow, división-por-cero.[3]
Una Unidad de punto flotante también realiza operaciones aritméticas entre dos valores, pero ellos realizan eso con número en representación de punto flotante, que es muy más compleja que a complemento para dos. Para hacer esos cálculos, una UPF tiene varios circuitos complejos, incluyendo algunas ULAs internas. Usualmente ingenieros llaman una ULA el circuito que realiza operaciones aritméticas con números enteros en complemento para dos o BCD , mientras circuitos que calculan en formatos como punto flotante usualmente reciben ese ilustre n