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