Mortuux

Diario de un estudiante geek. Informática, tecnología, programación, redes, sistemas operativos, bases de datos…

Archivos por Etiqueta: arquitectura

Arquitectura del microprocesador: Buses (IV)

Arquitectura del microprocesador: La unidad de control (I)

Arquitectura del microprocesador: Unidad aritmético-lógica (II)

Arquitectura del microprocesador: El banco de registros (III)

Arquitectura del microprocesador: Buses (IV)

Para construir un sistema informático, ya sea un ordenador o cualquier otro tipo de equipo, además del microprocesador se precisan otros elementos de apoyo que faciliten el almacenamiento temporal de la información y la comunicación con el exterior.

El bus de datos está formado por una serie de líneas, físicamente salen del microprocesador en forma de patillas/pines que se conectan sobre un zócalo en una laca de circuito impreso, por las que se transmiten en paralelo un número determinado de bits, tantos como líneas existan. Al número de esas líneas a lo que se denomina ancho del bus que, por regla general, coincide con la capacidad del acumulador y una parte de los registros de propósito general. El bus de datos es bidireccional, de forma que permite tanto enviar datos desde el microprocesador hacia el exterior como a la inversa.

Mediante el bus de direcciones el microprocesador selecciona la posición de memoria en la que va a escribirse o de la que se quiere leer. También sirve para seleccionar dispositivos de E/S en caso de que éstos tengan asociado un espacio de entrada/salida en la memoria. A diferencia del bus de datos, el de direcciones es unidireccional. El número de líneas que lo forman determina el ancho del bus de direcciones que, a su vez, fijará el número máximo de direcciones que es posible componer y, en consecuencia, el límite de memoria al que puede accederse de manera directa.

Tanto el bus de datos como el de direcciones tienen una estructura homogénea, en el sentido de que sus líneas contribuyen por igual, con un bit, a generar el dato o la dirección que va a transferirse ocupando el bus completo. El bus de control, por el contrario, es heterogéneo y las líneas que lo forman tienen cada una un fin distinto, por lo que raramente se utilizan de manera simultánea. Algunas de dichas lineas son solamente de salida, otras únicamente de entrada y en raras ocasiones de entrada/salida.

A través de las líneas del bus de control el microprocesador comunicará al sistema si la dirección que está colocando en el bus de direcciones ha de ser enviada a la memoria o a un dispositivo de E/S o si lo que se quiere es efectuar una lectura o escritura.

Los dispositivos externos emplearán una cierta línea de este bus para comunicar al microprocesador que necesitan su atención, provocando una interrupción que, por ejemplo, recoja la última pulsación del teclado.

Anuncios

Arquitectura del microprocesador: El banco de registros. (III)

Arquitectura del microprocesador: La unidad de control (I)

Arquitectura del microprocesador: Unidad aritmético-lógica (II)

Arquitectura del microprocesador: El banco de registros (III)

Arquitectura del microprocesador: Buses (IV)

Tradicionalmente el banco de registros se ha divido en dos grupos: los registros de propósito general y los que tienen una función específica. Al primer grupo pertenecen aquellos que el programador puede usar libremente para almacenar temporalmente datos, mientras que los segundos se utilizan de manera indirecta. Los registros con función específica más usuales son:

  • Contador de programa: Contiene la dirección de la memoria donde está alojada la siguiente instrucción a ejecutar. Actúa, por tanto, como un puntero y, de hecho en algunos microprocesadores se denomina puntero de instrucción. Es la unidad de control la que utiliza este registro para recuperar las instrucciones del programa, incrementando su contenido a medida que se avanza en la ejecución o modificándolo cuando se encuentra una instrucción de salto.
  • Puntero de pila: En ocasiones es necesario guardar temporalmente el contador de programa, por ejemplo al saltar a una subrutina o cuando el microprocesador debe atender una interrupción externa, con la intención de recuperarlo posteriormente. Los primeros microprocesadores contaban con una pila interna, en el propio circuito integrado, que tenía una capacidad limitada y solía permitir 5 u 8 niveles como máximo. Actualmente la pila se almacena en memoria principal, externa al microprocesador de forma que éste lo único que necesita es conocer la dirección donde está el tope o parte alta de la pila. Almacenar dicha dirección es el objetivo del registro del puntero de pila.
  • Acumulador: Puede ser utilizado como registro de propósito general en muchas situaciones, pero en otras adquiere el papel de registro específico al ser el destinatario de diferentes operaciones aritméticas, lógicas o de entrada/salida.
  • Estado: Su denominación cambia según el tipo de diseño y fabricante, pero su finalidad es siempre la misma: mantener una serie de bits indicando el estado en que se encuentra el microprocesador. Ese estado proviene normalmente de la ejecución de la última instrucción, pudiendo influir en cómo se ejecutarían las posteriores. También es posible que ciertos bits modifiquen el modo de funcionamiento del procesador, de forma general o ante determinadas instrucciones.
  • Otros registros: Si bien los cuatro citados pueden considerarse los más importantes, todos los microprocesadores disponen además de otros registros de uso específico, ocultos en su mayor parte que emplean para almacenar el código de la instrucción que está ejecutándose, contener temporalmente datos procedentes de memoria que van a intervenir en un cálculo, etc.

En un principio los microprocesadores contaban sólo con registros de 8 o 16 bits pensados para operar con aritmética entera, pero en la actualidad el tamaño ha crecido hasta los 32, 64 e incluso 80 bits, contemplándose tanto la aritmética entera como la de punto flotante.

Arquitectura del microprocesador: Unidad aritmético-lógica (II)

Arquitectura del microprocesador: La unidad de control (I)

Arquitectura del microprocesador: Unidad aritmético-lógica (II)

Arquitectura del microprocesador: El banco de registros (III)

Arquitectura del microprocesador: Buses (IV)

Conocida también como ALU (Arithmetic Logic Unit), podría decirse que es la calculadora interna del microprocesador, con capacidad para realizar operaciones aritméticas pero también de tipo lógico.

Las operaciones aritmético-lógicas que puede ejecutar por sí mismo un procesador dependerán del diseño de la ALU. Los x86 hasta el 80386, por ejemplo, contaban con una ALU que ofrecía únicamente operaciones con aritmética entera y solamente se contemplaban las cuatro operaciones aritméticas básicas. Las aplicaciones que requerían trabajar con coma flotante, y realizar operaciones más complejas, tenían que hacerlo por software, lo cual era lento, o bien requerir que el sistema contase con un coprocesador matemático.

En la actualidad los microprocesadores disponen de una ALU preparada para operara con aritmética entera y de punto flotante, ejecutando por hardware operaciones complejas que, de ser implementadas mediante software, requerirían mucho más tiempo.

La ALU cuenta con dos entradas, asumiéndose que una de ellas siempre es el acumulador y que la otra, procedente de cualquier otro registro o e la memoria, está en un registro temporal. La única salida, en la parte superior, se dirige al acumulador. En el funcionamiento de la ALU también interviene el contenido del registro de estado, si bien éste no actúa como un tercer operando sino como un agente externo que puede influir en la operación que realice la ALU. Dicha operación vendrá dictada por la unidad de control que, a través del bus interno, controla también el funcionamiento de la ALU.

Arquitectura microprocesador: La unidad de control (I)

Un microprocesador es un circuito integrado formado por millones de componentes lógicos que es necesario coordinar para que cada uno realice su trabajo en el momento que se espera, tarea que recae fundamentalmente en la conocida CU (Control Unit) o unidad de control.
Es tarea de la CU emitir las señales necesarias para que la siguiente instrucción de un programa, cuya localización  en memoria indica un registro específico al que suele llamarse “contador de programa” o “puntero de instrucción”, sea transferida hasta el interior del microprocesador (fase de captación). A continuación esa instrucción se analiza y se preparan los operandos que precise (fase de descodificación) para a continuación ejecutarla (fase de ejecución) y generar los resultados que correspondan (fases de escritura en memoria y registros).
A través de un bus interno la unidad de control se comnica con el resto de elementos del microprocesador, estableciendo por ejemplo los registros que han de utilizarse como operandos en un cálculo o fijando la operación que debe llevar acabo la ALU sobre dichos operandos.
Un microprocesador es un circuito integrado formado por millones de componentes lógicos que es necesario coordinar para que cada uno realice su trabajo en el momento que se espera, tarea que recae fundamentalmente en la conocida CU (Control Unit)o unidad de control.Es tarea de la CU emitir las señales necesarias para que la siguiente instrucción de un programa, cuya localización  en memoria indica un registro específico al que suele llamarse “contador de programa” o “puntero de instrucción”, sea transferida hasta el interior del microprocesador (fase de captación). A continuación esa instrucción se analiza y se preparan los operandos que precise (fase de descodificación) para a continuación ejecutarla (fase de ejecución) y generar los resultados que correspondan (fases de escritura en memoria y registros).A través de un bus interno la unidad de control se comnica con el resto de elementos del microprocesador, estableciendo por ejemplo los registros que han de utilizarse como operandos en un cálculo o fijando la operación que debe llevar acabo la ALU sobre dichos operandos.