ALU (Unidad Aritmetica Lógica)


Una ALU es una unidad aritmética lógica. Es una unidad de creación fundamental de cualquier procesador de CPU en el mundo informático actual. Lógicamente, su rendimiento y aplicación son relativamente fáciles de entender. Dos números enteros en forma de bits se aplican a la entrada de la ALU y otro terminal recibe las instrucciones para manipular dicha entrada. Estas instrucciones, como el nombre de unidades lo indica, son cálculos matemáticos tales como la adición o sustracción. Una vez que la ALU ha realizado la manipulación ordenada, emite el valor correcto.

Una ALU (Unidad Aritmética-Lógica) es un circuito que permite, como su nombre lo indica, realizar operaciones lógicas y aritméticas.Además de los operadores lógicos y aritméticos, la ALU cuenta con una serie de registros para almacenar los datos, y bits de información sobre los resultados, también llamados banderas.

Las banderas más comunes son: 

  • Carry, 
  • Auxiliary Carry, 
  • Borrow, 
  • Overflow, 
  • Parity, 
  • Zero
Partes de la ALU: 
 Sumador/restador rápido 
Operadores lógicos (AND, OR, XOR, NOT) 
Un acumulador y un registro auxiliar Un registro de salida 
 Señales de control que indiquen la operación a realizar 
Registro de banderas de estatus




Operaciones simples

 La mayoría de las ALU pueden realizar las siguientes operaciones: 
• Operaciones aritméticas de números enteros (adición, sustracción, y a veces multiplicación y división, aunque ésto es más complejo) 
• Operaciones lógicas de bits (AND, NOT, OR, XOR, XNOR) 
• Operaciones de desplazamiento de bits (Desplazan o rotan una palabra en un número específico de bits hacia la izquierda o la derecha, con o sin extensión de signo). Los desplazamientos pueden ser interpretados como multiplicaciones o divisiones por 2. 

Operaciones complejas 

Un ingeniero puede diseñar una ALU para calcular cualquier operación, sin importar lo compleja que sea; el problema es que cuanto más compleja sea la operación, tanto más costosa será la ALU, más espacio usará en el procesador, y más energía disipará, etc. 

Por lo tanto, los ingenieros siempre calculan un compromiso, para proporcionar al procesador (u otros circuitos) una ALU suficientemente potente para calcular rápido, pero no de una complejidad de tal calibre que haga una ALU económicamente prohibitiva. Imagina que necesitas calcular, digamos, la raíz cuadrada de un número; el ingeniero digital examinará las opciones siguientes para implementar esta operación: 

1. Diseñar una ALU muy compleja que calcule la raíz cuadrada de cualquier número en un solo paso. Esto es llamado cálculo en un solo ciclo de reloj. 
2. Diseñar una ALU compleja que calcule la raíz cuadrada con varios pasos (como el algoritmo que aprendimos en la escuela). Esto es llamado cálculo interactivo, y generalmente confía en el control de una unidad de control compleja con microcódigo incorporado. 
3. Diseñar 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. 
4. Emular la existencia del coprocesador, es decir, siempre que un programa intente realizar el cálculo de la raíz 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 cálculo de la raíz cuadrada por medio de un cierto algoritmo de software. Esto es llamado emulación por software. 
5. Decir a los programadores que no existe el coprocesador y no hay emulación, así que tendrán que escribir sus propios algoritmos para calcular raíces cuadradas por software. Esto es realizado por bibliotecas de software

Referencias:

  1. ALU. (s. f.). Arrow. https://www.arrow.com/es-mx/categories/standard-and-specialty-logic/specialty-logic/alu
  2. Unidad Aritmética Lógica (ALU). (s. f.). Páginas Personales. http://profesores.fi-b.unam.mx/normaelva/ALU.pdf
  3. García García, A. D. (s. f.). Procesadores. Homepage. http://homepage.cem.itesm.mx/garcia.andres/PDF201411/Arquitectura%20Computacional.pdf

Comentarios

Entradas populares de este blog

Software para programar amiba2 (INTegra)

Amiba 2

¿QUÉ ES UN USART?