Unidad aritmético lógica del computador (ALU)




La unidad aritmético-lógica (ALU) es la parte del microprocesador que realiza los cálculos y las operaciones con los datos indicados en las instrucciones. Podríamos llamarla "calculador" si únicamente realizarse operaciones aritméticas; pero como es capaz de realizar operaciones de varios tipos, es mejor llamarla unidad aritmético-lógica para destacar que es capaz de realizar operaciones lógicas. Estas operaciones lógicas que la ALU puede realizar son en realidad la simple aplicación de una reglas simples de comparación de dos datos. Pueden establecerse comparaciones de igual, mayor, menor que, menor o igual que y mayor o igual que. Usando estos tipos de instrucciones, el computador podrá similar el comportamiento lógico humano y adoptar actuaciones diferentes frente a situaciones diferentes. Pero esto no es inteligencia automática o inteligencia artificial; debe ser el programa realizado por el programador el que contemple convenientemente el uso de estas instrucciones para simular la capacidad de decisión que la inteligencia comporta.
La unidad aritmético-lógica posee una circuitería que le proporciona la capacidad de realizar estas operaciones aritméticas y lógicas con los datos. El conjunto de operaciones que puede llevar a cabo la ALU está concebido y fijado durante su diseño; en el caso de una unidad aritmético-lógica elemental, esta podrá sumar, restar, realizar operaciones lógicas (Y, O, NO) y relacionales (=,<,>,>=,<=,<>).  El resto de operaciones se realizará a partir de las operaciones elementales, por ejemplo, multiplicar dos números se harían durante una sucesión de sumas. Podemos hacer un símil entre un computador y una orquesta dirigida por su director. Toda la orquesta compondría el hardware del sistema.

El director de la orquesta actuaría como microprocesador: su labor es leer una serie de instrucciones (partitura) y enviar órdenes al resto de la orquesta para que esta "funcione". Los músicos y sus instrumentos funcionarán como elementos periféricos: reciben órdenes de microprocesador y actúan en consecuencia. La partitura del director sería el programa, que está almacenado en la memoria del computador; sin tal partitura, la orquesta no hace nada. La labor del director es ir tomando las instrucciones escritas en la partitura y dando órdenes correspondientes a los músicos. El director no haría nada por iniciativa propia sino que lee la partitura y actúa en consecuencia.
En el símil anterior de la orquesta, quizá la parte que más adecuadamente se ajusta a la labor del director de orquesta es la unidad de control: no toca ningún instrumento pero su batuta es lo que hace que cada instrumento intervenga en el momento oportuno. Para marcar los intervalos precisos de tiempo de las actividades de todos los dispositivos que controla, la unidad de control dispone -también a semejanza de un director de orquesta- de un cadenciómetro para lograr la sincronización. En un microprocesador; esta labor la lleva a cabo el reloj.

Repertorio o juego de instrucciones: La potencia de un microprocesador dependerá de su velocidad en la ejecución de las instrucciones pero también del tipo, variedad y riqueza de operaciones que sea capaz de realizar. Cada microprocesador dispone de un repertorio de instrucciones propio, que se conoce como juego de instrucciones del microprocesador . Este juego depende de la circuitería interna con la cual ha sido diseñado. Afortunadamente, existen lenguajes de programación que evitan tener que aprender el lenguaje de cada máquina en particular. Dentro del repertorio completo de instrucciones del microprocesador existirá un conjunto asociado a las distintas operaciones que puede realizar la ALU. Cuando la UC identifica un código de instrucción que indica una determinada operación correspondiente dentro de la ALU.
El formato general de las instrucciones que son ejecutadas por el microprocesador se ajusta al formato:
<Código de operación> <Operando 1> <Operando 2>
Pueden existir operaciones que solo contengan un operador o incluso ninguno. Supóngase un microprocesador que puede realizar la siguiente operación: sumar el contenido de un registro con un determinado valor y guardar el resultado en el propio registro. Considérese que el código de dicha operación es 0011. El registro se llamará A, y el valor por sumar es 2. La instrucción que debería recibir el microprocesador, para sumar el contenido de A con el valor de 2, es: 0011 0010 (código de operación, y primero y único operando).

Al entrar en un ciclo de búsqueda, la UC extraerá desde la posición de memoria señalada por IP él código de la siguiente instrucción por ejecutar. Al recibir el código de instrucción 0011, se enviarán las señales de control necesarias para:
  1. Hacer llegar los operandos implicados en la suma a la ALU (contenido del registro A y valor 0010)
  2. Indicarle a la ALU que debe realizar una operación de suma
  3. Almacenar el resultado de la suma efectuada en el registro A
Estas son una simplificación de todas las señales elementales que habrían de ser generadas. La popularización de los micro computadores comenzó en los años 70's con el computador Apple II, sin embargo, su impacto comercial comienza cuando IBM lanza en 1981 su computador  personal PC (Personal Computaer), basado en el microprocesador 8088 muchos de Intel. A este lanzamiento le siguieron otros muchos: Compaq, ALR, Olivetti, Tandom, Hewlett-Pakard (Hp), etcétera. Desde entonces, la evolución ha sido continua en la aparición de nuevos microprocesadores y modelos de micro-computadores, cada vez más potentes y veloces. Hoy día, prácticamente todos los fabricantes de computadores comercializan computadores personales. Se puede decir, en comparación con la industria del automóvil, que los computadores personales vienen a ser los utilitarios de la informática.
Actualmente, la mayor parte de los micro-computadores se basa en dos grandes familias de microprocesadores: la Intel y la Motorola. La familia Intel (8088, 8086, 80286, 80386, 80486, Pentium) es la base de todos los computadores IBM y compatibles (PC, XT, AT, PS/2, 386, 486, Pentium). La familia Motorola (68000, 68010, 68020, 68030, 68040) es la base de los computadores Apple Macintosh, y son especialmente populares los computadores de tipo PC. A este tipo de computadores está orientada la mayoría de las descripciones presentes en este tema.





Procesadores Risc y Cisc

Existen en la actualidad dos grandes tendencias en la construcción de procesadores, que se diferencian esencialmente en las características de su repertorio de instrucciones. Los procesadores Cisc (Complex Instruction Set Computer) tienen un repertorio con un alto número de instrucciones (200-300); estas instrucciones además son más complejas que las de Risc, con lo que la circuitería necesaria para de-codificación y secuenciación también aumenta, y la velocidad del proceso disminuye.
Como ventaja, debe indicarse que se necesitan menos instrucciones para ejecutar una tarea. Además, el formato de las instrucciones es bastante variable (es decir, hay bastantes formatos). Así mismo, el diseño hace que el procesador tenga que realizar constantes accesos a memoria.

Tipo de procesadores en el que se basan los PC's

Los procesadores Risc (Reduced Instruction Set Computer) tienen características opuestas a los Cisc. Su juego de instrucciones es mas reducido (menos de 128) y las instrucciones son mas sencillas (con lo que se necesitarán mas instrucciones para ejecutar una tarea). El formato de instrucciones es fijo (o serán pocos formatos), con lo que el control del hardware es más sencillo y le facilita la colocación de las instrucciones en la memoria, lo que implica que los accesos a esta se aceleren. Por otra parte, estos accesos a memoria son menos frecuentes, ya que el procesador posee un mayor número de registros. 
Estos procesadores son lo que están presentes en las estaciones de trabajo. Como ejemplos, se pueden citar los procesadores Alpha, de Digital Equipment, y los Super Sparc y MicroSparc, de Sun Microsystems y Texas INstruments. Relacionada con los conceptos Risc y Cisc está la técnica pipeline, que consiste en dividir la ejecución de la instrucción en bloques independientes ejecutadas en paralelo. Es más eficiente para los procesadores Risc, ain que también se implementa en Cisc.

Aquí se elaboran todos los procedimientos 
matemáticos realizados por la máquina.

Coprocesador matemático

También conocido como procesador numérico, es otro microprocesador adicional que se puede incorporar a los microcomputadores. Su objetivo es descargar de las operaciones aritméticas al procesador principal (no lo sustituye sino que colabora con él). Los coprocesadores matemáticos realizan directamente las operaciones con números reales y con algunas funciones (seno, coseno, tangente, potencias del número e). La presencia del coprocesador matemático en un computador es importante, siempre que se vallan a efectuar cálculos matemáticos (manejo de números reales) y para otras tareas como el trabajo con gráficos (las funciones trigonométricas son necesarias para realizar las operaciones). No obstante, el coprocesador no es un elemento imprescindible para un computador; si este no está presente, las operaciones serán realizadas por el procesador principal (con menos eficiencia).
Los procesadores matemáticos de la familia Intel son el 8087, 80287, y 80387. Esta familia también cuenta con microprocesadores con coprocesador matemático incorporado en el mismo chip, como es el caso del microprocesador 80486 DX. Los de la familia Motorola son el 68881 y el 68882.

Buses

Un bus se puede definir como una línea de interconexión portadora de información, constituida por varios hilos conductores (en sentido físico) o varios canales o líneas (en sentido de la lógica de transmisión), por cada una de las cuales se transporta un bit de información. El número de líneas que forman los buses (ancho del bus) es fundamental: si un bus está compuesto por 16 líneas, podrá enviar 16 bits al mismo tiempo (paralelamente); por el contrario, si el bus tiene 32 líneas, podrá enviar 32 bits en el mismo tiempo. En la familia de los computadores personales, los buses interconectan toda la circuitería interna. Cuando un dato pasa de un componente a otro, viaja a lo largo de este camino para alcanzar su destino. Es decir, los distintos subsistemas del computador intercambian datos gracias a los buses. Podemos distinguir principalmente tres categorías de buses.





Buses de datos

Sirve para transmitir información entre el microprocesador, la memoria y los periféricos. Por él circulan los datos y las instrucciones. Tiene tantas líneas como bits se transmiten en paralelo (una para cada bit). El flujo es de doble sentido, y a mayor número de bits paralelos mayor podrá ser la velocidad de transmisión que consigamos. El ancho de este bus (número de bits que puede transmitir simultáneamente en paralelo) es una medida de la potencia del microprocesador. Este bus es como una autopista de datos electrónicos, y cuanto más ancho sea, mas datos podrá moverse al mismo tiempo. El ancho del bus de datos Esdi es una de las características mas importantes del microprocesador. Cuando se dice que un microprocesador es, por ejemplo de 16 bits, se habla del ancho de su bus de datos.

Bus de direcciones

Es utilizado por el microprocesador para señalar la celda de memoria (o el dispositivo de E/S) con el que se quiere operar. El tipo de operación será de lectura o de escritura, y los datos implicados viajarán por el bus de datos. Por él circula la expresión binaria de la dirección de memoria a la cual el microprocesador quiere acceder. Tiene sentido de flujo unidireccional desde el microprocesador hacia la memoria. Una vez localizados los datos pedidos, su transmisión hacia el microprocesador (o hacia donde sea) se hará a través del bus de datos. Si se quiere leer el valor de una celda de memoria, se selecciona la celda en concreto, escribiendo su dirección en el bus de direcciones, y se recibe su contenido a través del bus de datos.
Los dispositivos de E/S intercambian la información con el microprocesador mediante los puertos de E/S. Cada puerto está asociado con un determinado dispositivo y tiene una dirección que lo identifica. El ancho de este bus también es una medida de la potencia del microprocesador, ya que determina la cantidad de memoria a la que éste puede acceder, es decir, la cantidad de espacio direccionable. El espacio de direcciones es el rango de valores distintos que el microprocesador puede seleccionar. Si únicamente se tuviera un bus de direcciones de dos líneas, entonces solo se podrían enviar cuatro direcciones: 00, 01, 10, 11. En general, la cantidad máxima de direcciones disponibles serán 2n, siendo n el número de líneas del bus de direcciones. 

Bus de control

Por él circulan las señales que marcan las interrelaciones entre los distintos componentes del procesador. Es de doble sentido de flujo. Sirve para transportar las señales que se encargan de dirigir el correcto funcionamiento del sistema: señales de reloj, alimentación, interrupciones y otras. Mediante las señales de control se gestiona el correcto funcionamiento y la sincronización de las tareas que deben realizar los distintos subsistemas.
También se puede hacer otra clasificación de los buses, según el criterio de su situación física: buses internos y buses externos. El primero de ellos mueve datos entre los componentes internos del microprocesador, mientras el segundo se utiliza para comunicar el micro y otras partes, como periféricos y memoria.
De todo lo dicho anteriormente podemos concluir que las características por valorar en un procesador serán: 
  • Ancho del bus de datos (se mide en bits)
  • Ancho del bus de direcciones (se mide en bits)
  • Velocidad de reloj a la que trabaja (se mide en megahercios)
  • Repertorio de instrucciones
  • Rendimiento global del microprocesador, que da una medida de la cantidad de instruccionems que el microprocesador puede llevar a cabo en una unidad de tiempo (un segundo). Esta magnitud se mide en Mips (millones de instrucciones por segundo).


Vamos a crear una comunidad en Telegram para conocernos: https://t.me/joinchat/ESj08RDkp2kx5BiSDlzWtQ 
 Y nuestro Canal para que estés atento a todas las entradas Link de la comunidad https://t.me/Conodigital

Comentarios

Entradas populares