La unidad aritmética y lógica ó ALU (Aritmetic Logic Unit) es el horno donde se cuece la información; su tarea consiste en recibir instrucciones junto con sus argumentos y ejecutarlas, dando a cambio el resultado de su operación.
Esta unidad consta de un(os) operador(es) que ejecuta(n) físicamente las instrucciones recibidas, una serie de registros para almacenar información mientras se ejecuta una instrucción (entre estos registros destaca el registro acumulador, al que se hará referencia de nuevo cuando estudiemos el direccionamiento de las instrucciones) y algunos señalizadores de estado que indican resultados interesantes obtenidos al realizar un cómputo (resultado cero, overflow o desbordamiento, : : : )
Los operadores son dispositivos físicos (circuitos electrónicos) que pueden realizar operaciones elementales sobre datos binarios. Las operaciones que son capaces de hacer estos dispositivos pueden ser de desplazamiento, lógicas o aritméticas.
Las operaciones de desplazamiento consisten en desplazar los bits de una palabra varios lugares hacia la izquierda o hacia la derecha. Dependiendo de la acción del desplazamiento sobre los extremos de la palabra podemos distinguir varios tipos de desplazamiento:
- Desplz. lógico: si el extremo de la palabra que queda vacío tras el desplazamiento se completa con ceros.
- Desplz. aritmético: es similar al anterior, pero se mantiene el bit de signo. Se utiliza para representar multiplicaciones y divisiones de una potencia de 2.
- Desplz. circular: los bits que quedan fuera tras el desplazamiento se emplean en llenar los huecos libres del otro extremo de la palabra.
- Desplz. concatenado: se desplaza conjuntamente el contenido de dos o más registros.
Las operaciones lógicas tales como NOT, AND y OR se realizan bit a bit. La primera de estas operaciones sólo depende de un argumento, mientras que las restantes necesitan dos argumentos.
Las operaciones aritméticas más importantes que se realizan en la UAL son las de suma, resta, multiplicación y división, la de cambio de signo y la de extensión de signo. Esta última operación se hace necesaria cuando se transmite información a un elemento con mayor longitud de palabra pues es necesario completar los bits restantes sin alterar la información. En general las operaciones de multiplicar y dividir se hacen usando sumas y restas mediante un algoritmo apropiado; sólo computadores muy potentes (y caros) disponen de operadores particulares que las realicen directamente.
Se puede mejorar la capacidad de cálculo numérico de algunos procesadores añadiendo un coprocesador matemático. Los dispositivos de este tipo complementan la UAL del procesador por otra más potente; con mayores y más numerosos registros operativos, con una representación interna de los datos de mayor precisión y con instrucciones numéricas más complejas (funciones exponenciales, logarítmicas y trigonométricas).
Para ello, comparten el flujo de instrucciones y datos del procesador y cuando detectan alguna instrucción numérica toman el control del programa, ejecutan la instrucción, calculan el resultado y devuelven el control al procesador.

No hay comentarios:
Publicar un comentario