Elementos+funcionales+de+un+ordenador

=ARQUITECTURA FUNCIONAL DE UN ORDENADOR DIGITAL=

1. Introducción

 * Estructura:** componentes físicos (estáticos) que componen un ordenador.
 * Elementos funcionales:** aquellos que van a permitir que la máquina realice una determinada tarea.
 * Arquitectura:** unión de ambos elementos.

1.1 Circuitos Biestables
El elemento básico de almacenamiento es el **biestable** o **circuito de flip-flop**, siendo un dispositivo capaz de adoptar dos estados estables (asociados a los valores binarios 0 y 1) que pueden perdurar en el tiempo. Se trata, por tanto, de una célula elemental para memorizar **un bit de información**, es decir la unidad mínima de información almacenable.



1.2 Registros
Un conjunto de biestables asociados entre sí de manera que funcionen simultáneamente constituye un **registro**. La **longitud del registro** es el número de bits que un registro es capaz de almacenar simultáneamente. Normalmente, un registro de longitud n se numera del 0 al n-1



2.1 La Memoria Central
La memoria central es el lugar donde residen los programas antes de ser ejecutados, así como los datos a procesar. Estos datos pueden ser:
 * 1) **Datos de entrada:** aquellos datos que va a requerir la aplicación-programa para el inicio de las operaciones que está destinada a aplicar.
 * 2) **Datos intermedios:** son aquellos datos que ya han sido procesados por el programa, pero que, dado que éste no ha finalizado, son susceptibles de volver a ser solicitados y/o modificados.
 * 3) **Datos de salida:** Datos que contienen los resultados tras la ejecución del programa.

Asímismo, se conoce como **espacio o mapa de memoria** a la cantidad de memoria a la que se puede acceder o direccionar.

2.1.1 Direccionamiento de la memoria
Se llama **dirección de memoria** o **posición de memoria** al número que identifica biunívocamente una palabra o registro individual de la memoria. Si una memoria tiene un tamaño de N palabras, la dirección de cada una de ellas será un valor entero comprendido entre 0 y N-1.


 * **Direccionamiento 2D** es aquel en el que existen dos trasductores que se conectan a las celdas que forman cada palabra de la memoria. La imágen sería la de una una matriz en la que cada fila sería una palabra de datos.
 * **Direccionamiento 3D** es aquel en que la memoria se encuentra estratificada en capas de modo que cada celda se correspondería con el mismo bit de cada palabra.

2.1.2 Refresco de la memoria
La memoria necesita ser reescrita cada cierto tiempo, especialmente aquella de carácter volátil como pueda ser la memoria **RAM**. En el caso de que se realice este proceso, llamado refresco de la memoria, se pueden dar las siguientes situaciones:


 * 1) La señal de refresco se emite durante un proceso de lectura
 * 2) Tras realizar el ciclo de lectura, se refresca y se prosigue con la lectura. La señal de refresco no variará el dato a obtener, únicamente lo reescribirá con el mismo valor, por lo que puede interrumpir el proceso de lectura una vez finalice el ciclo de lectura correspondiente, refrescar el dato, y proseguir con un nuevo ciclo de lectura.


 * 1) La señal se emite durante un proceso de escritura
 * 2) El refresco deberá realizarse tras el proceso de escritura, con el nuevo valor de los datos escritos.


 * 1) Si no hay ningún proceso, el refresco se realiza de forma automática.

Unidad de Control
La **Unidad de Control** es la encargada de dirigir y controlar la ejecución de la instrucción que ha sido descodificada. La misión de la unidad de control del computador es traer instrucciones de memoria y ejecutarlas. La secuencia de instrucciones resultante es un programa en lenguaje máquina.

El elemento fundamental de la unidad de control es un circuito específico denominado **circuito de control** (CC), que es el encargado de generar todas las señales de control que gobiernan el ordenador. La mayoría de estas señales se conectan directamente a las correspondientes señales de carga de registros, programación de la UAL, o selección de batería de registros, vistas al describir dichos elementos. También son responsabilidad del CC las señales de selección de buses (implícitas en los esquemas). La información de entrada del CC es la siguiente: 1. La instrucción en curso almacenada en el IR 2. El contenido del Registro de Estado 3. El reloj del sistema 4. Señales de control externas, normalmente de E/S, recibidas por el BC.

De uso general
Los **registros internos de uso general** son aquellos que almacenan cualquier tipo de información. Se distinguen dos tipos:
 * 1) **Registros internos de datos** son aquellos destinados a contener datos que son solicitados con una elevada frecuencia.
 * 2) **Registros internos de direcciones** son aquellos que almacenan la dirección de memoria donde se encuentra un dato, por lo que suelen recibir el nombre de **punteros.**

Específicos
El **contados de programa (CP)** contiene la dirección de memoria de la siguiente instrucción a ejecutar.

El **Registro de instrucción (RI)** se encarga de almacenar la instrucción en curso, proveniente de la unidad de memoria. Su entrada está conectada al bus de datos, por el que recibe la instrucción correspondiente. Su salida se encuentra conectada a tres posibles destinos: al circuito de control, al bus de datos y al bus de direcciones.

El **registro contador de programa (CP)** contiene en todo momento la dirección de memoria de la siguiente instrucción a ejecutar. Para ejecutar la instrucción en curso, el CP ha de facilitar primero la dirección de memoria en que se encuentra, y por ello su salida se encuentra conectada al BA. Una vez que la memoria ha aceptado la dirección, el contenido del CP se incrementa por medio de la señal ICP, de modo que apunte a la siguiente instrucción. También se encuentra unido bidireccionalmente al BA porque en ocasiones el CP recibe una nueva dirección a través del bus.

2.2.2 Unidades Funcionales
La **unidad de caché** se creó originariamente para reducir los tiempos de espera del procesador, conteniendo los datos empleados con mayor frecuencia en una memoria de acceso más rápido.
 * Unidad de caché**

La **Unidad de prebúsqueda** busca las instrucciones que se tienen que ejecutar en cada momento y las sitúa en los registros correspondientes.
 * Unidad de prebúsqueda**

Es la encargada de operar sobre números de coma flotante.
 * Unidad de coma flotante**

Se encarga de conectar la CPU con el bus del sistema para que la información llegue al dispositivo correspondiente.
 * Unidad de interconexión con el bus**

Encargada de calcular la dirección física real donde se encuentra una instrucción a partir de una dirección lineal.
 * Unidad de paginación**

Encagada de obtener direcciones reales a partir de direcciones físicas generadas por el compilador.
 * Unidad de segmentación**

**Unidad de decodificación**
Encargada de la traducción de las instrucciones a las órdenes correspondientes en código máquina, para su ejecución.

Realiza un seguimiento del funcionamiento de la CPU para evitar los tiempos muertos.
 * Monitor de prestaciones**

Consiste en dos unidades de enteros dedicadas al cálculo con coma fija.
 * Unidad de entero superescalar**

Detecta los posibles errores que se pueden producir en las trasferencias de datos.
 * Unidad de redundancia funcional**

Almacena las últimas direcciones calculadas para la realización de bifurcaciones o saltos.
 * Unidad de predicción de bifurcaciones**

Si aparece una instrucción previamente ejecutada, se toma el resultado de ésta en lugar de proceder a su re-ejecución.
 * Unidad de caché de seguimiento de ejecución**

2.3 Reloj
El **Reloj** es un elemento que aparece en todas las unidades de control de los ordenadores que funcionan de forma síncrona. Es un circuito oscilador que genera autónomamente una señal en forma de pulsos. La señal de reloj representa la temporización básica del sistema global, ya que determina el menor tiempo que puede durar una operación elemental. Se llama **período** a la duración del tiempo elemental entre dos pulsos consecutivos del reloj. Este componente temporiza las diferentes tareas para que se realicen en el momento apropiado.

2.4 Buses
La forma más usual de interconexión de elementos en un computador es a través de un **bus** o calle. El bus es una vía de enlace a la que se puede acceder desde cualquiera de los elementos que se desean interconectar. Desde un punto de vista funcional, el bus puede considerarse como un elemento cuya función es la de permitir una comunicación selectiva entre un conjunto de dispositivos conectados a él.

El control del elemento origen EO que en un instante concreto está enviando información a través del bus se realiza por medio de las señales de selección del bus (SEOn). Dado que el número de elementos de destino ED que pueden estar extrayendo información simultáneamente del bus es indiferente, no se requiere ninguna señal de control para seleccionar los elementos de destino.



En el caso de los **buses de expansión**, son aquellos que permiten la ampliación del equipo. Algunos ejemplos de buses de expansión pueden ser el ISA, EISA, PCI, AGP o PCMCIA, este último permitiendo insertar dispositivos con la máquina en funcionamiento.

Se llama **ciclo del bus** a la operación básica del bus que permite realizar una transferencia elemental entre dos de los dispositivos conectados a él. Para permitir varias transferencias simultáneas, se emplean normalmente tres buses:


 * El **bus de datos** es utilizado para transferir los datos entre los diferentes elementos del computador. El ancho de este bus coincide con el ancho de palabra del ordenador.
 * El **bus de direcciones** se utiliza para transferir sólo direcciones, desde los elementos que las generan (en la UCP) hasta la memoria. El ancho de este bus está relacionado con el tamaño de la memoria del ordenador.
 * El **bus de control** está formado por un conjunto de líneas que tienen misiones muy diversas y específicas en cada computador. Suele transmitir señales de control para los diferentes elementos del ordenador.

2.5 Unidades de Entrada/Salida
En términos generales, el objetivo fundamental de las operaciones de entrada/salida es el de transferir información entre algún elemento interno del computador (registro de la UCP, posición de memoria) y un dispositivo exterior. La transferencia puede ser tanto de datos manipulados por el periférico como de información sobre el estado del mismo.

En cualquier caso, es preciso realizar las siguientes funciones básicas:


 * 1) Seleccionar el dispositivo concreto con el que se va a intercambiar información en una operación dada.
 * 2) Disponer de un enlace entre la UCP y el dispositivo seleccionado que permita la transferencia en general en ambos sentidos.
 * 3) Establecer un mecanismo de control de la transferencia riguroso que permita la sincronización o coordinación de la temporización de las operaciones de E/S.

Hay que tener en cuenta que, a diferencia de lo que ocurre en los accesos a memoria en los que la UCP gobierna totalmente el proceso, en transferencias de entrada/salida la responsabilidad es tanto de la UCP como del propio periférico, puesto que éste es en definitiva un elemento externo que funciona de forma independiente.

La unidad de entrada/salida, también denominada en ocasiones **unidad de intercambio de información**, se encarga de realizar la conexión y adaptación de la UCP con una gran variedad de dispositivos periféricos. Dada la amplia gama de periféricos existentes, es preciso establecer algún sistema que permita el intercambio de información entre un dispositivo genérico y el ordenador. Para ello se supondrá que cualquier dispositivo se adapta a una configuración genérica como la representada en el siguiente esquema:




 * El **Controlador** es el que gestiona directamente el dispositivo periférico. Esta parte es muy específica de cada periférico, ya que puede consistir tanto en circuitos de control de vídeo, como en controladores de movimiento de motores, etc.
 * La **Interface** es la parte que se encarga de gestionar el intercambio de información entre el dispositivo y la UCP. Su conexión a la UCP se realiza mediante un conjunto de señales normalizadas para una unidad de entrada/salida concreta.

Hay tres procedimientos básicos que provocan una operación de entrada/salida:


 * **E/S controlada por programa**. Todo ordenador posee instrucciones relativas a entrada/salida. La ejecución desde la UCP de una instrucción de este tipo desencadena la transferencia de una palabra de datos entre el computador y el periférico mediante una operación de E/S.
 * **E/S controlada por interrupciones**. Es un mecanismo más sofisticado por el que el propio periférico solicita el inicio de una operación de transferencia de E/S, a través de una señal de control a la UCP llamada //solicitud de interrupción//. La UCP suspende la ejecución de las instrucciones en uso para ejecutar //una rutina de servicio de interrupción//.
 * ** E /S por acceso directo a memoria (DMA)**. Hay dispositivos periféricos de alta velocidad que necesitan transferir grandes bloques de datos hacia y desde la unidad de memoria del computador. Para liberar a la UCP de las tareas de E/S se utiliza una interface especial llamada //acceso directo a memoria//. Cuando se tiene que transferir un bloque de datos, la UCP informa a la interface DMA de la dirección de memoria y del tamaño del bloque a transferir, y se desentiende de la operación.

2.5.1 Componentes
 * 1) Registros
 * 2) Datos.- Contienen los datos con los que operará la unidad.
 * 3) Control.- Relacionado con el modo de funcionamiento de la unidad.
 * 4) Estado.- Estado del periférico


 * 1) Bloque de decodificación de direcciones / acceso a buses, que averigua si el periférico es solicitado para realizar una operación de entrada/salida.
 * 2) Controlador, que dirige el funcionamiento del periférico.

2.5.2 Funciones
 * Adaptar señales
 * Adaptar los códigos
 * Descarga de la CPU
 * Atención y sincronización del periférico

2.5.3 Métodos de transmisión
 * **SERIE:** los datos se mandan de forma secuencial. Se incluye un bit de avance al inicio de cada bloque.
 * **PARALELO:** existen tantas líneas como bits se quieran enviar, viajando un bit por línea al mismo tiempo. Comparativamente más rápido y más caro que el anterior.

2.5.4 Tipos de transmisión

2.5.5 Modos de transmisión

2.5.6 Organización de E/S

2.5.7 Mecanismos de transmisión de las E/S

2.5.8 Puertos de comunicaciones

2.6 Periféricos