Visita Encydia-Wikilingue.con

Unidad lógica y aritmética

unidad lógica y aritmética - Wikilingue - Encydia

Error al crear miniatura:
Un símbolo esquemático típico para una ULA, donde "A" y "B" son operandos, "R" es la salida, "F" es la entrada de la unidad de control y "D" es la salida de status

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.

Resumiendo

-La ULA ejecuta operaciones aritméticas comunes.

-También toma decisiones lógicas, resolviendo sintaxis lógicas en una programación.

Tabla de contenido

Primero desarrollo

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]

Sistemas numéricos

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?]

Visión general práctica

Una simple ULA de 2-bit que hace AND, OR, XOR, y adición (clic en la imagen para explicación)

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.

Operaciones simples

Muchas ULA pueden realizar las siguientes operaciones:

Desplazamientos pueden ser interpretados como multiplicaciones o divisiones por 2.

Operaciones complejas

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:

  1. Proyectar una ULA extremadamente compleja que calcula la raíz cuadrada de cualquier número en un único paso. Eso es llamado cálculo en paso-único de clock .
  2. Proyectar una ULA bastante compleja que calcula la raíz cuadrada de cualquier número en varios pasos. Pero, existe un truco, los resultados intermediarios van a través de una serie de circuitos arreglados en línea, como en una línea de producción. Que hace con que la ULA sea capaz de aceptar nuevos números para cálculo antes aún de terminar el cálculo de los anteriores. Eso hace con que la ULA sea capaz de producir números tan rápido como cálculos en paso-único de reloj, con un retraso inicial hasta los números comiencen a salir. Eso es llamado cálculo en pipeline.
  3. Proyectar una ULA compleja que calcula la raíz cuadrada a través de varios pasos. Eso es llamado de cálculo iterativo, y usualmente confía en el control de una compleja unidad de control con microcódigo.
  4. Proyectar una ULA simple en el procesador y vender separadamente un procesador especializado y caro que el consumidor pueda instalarlo al lado de ese, realizando una de las opciones arriba. Eso es llamado de co-procesador .
  5. Decir a los programadores que no hay ningún co-procesador y que no hay ninguna emulação, así ellos tiene que escribir sus propios algoritmos para calcular la raíz cuadrada por software. Eso es llamado de bibliotecas de software.
  6. Emular la existencia de un co-procesador, o sea, siempre que un programa intenta realizar el cálculo de la raíz cuadrada, hace el procesador verificar se hay co-procesador presente y lo utiliza se está allí; si no hay, interrumpe el programa e invoca el sistema operativo para realiza el cálculo de la raíz a través de algún algoritmo de software. Eso es llamado de emulação de software.

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.

Entradas y Salidas

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]

ULA vs. UPF

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

Notas

  1. a b Stallings page 19
  2. Stallings página 290-291
  3. Stallings page 290-291

Conexiones externas

ULA - slide y HDS para Hades

Ícone de esboço Este sobre Informática es uno esbozo. Usted puede ayudar la Wikipédia expandiéndolo.