"Monografia"

 

TEMA: "Introducción a los Sistemas Informáticos"

 

INDICE GENERAL


INTRODUCCIÓN

ELEMENTOS BASICOS

Unidad Central de Procesamiento (CPU)

¿Qué es la CPU?
Objetivos de la CPU
¿Qué necesita la CPU para hacer su trabajo?
Memoria principal
Módulos de e/s
interconexión de sistemas

REGISTROS
Visibles al usuario
registros de control y estado

EJECUCIÓN DE INSTRUCCIONES
Lectura y ejecución de instrucciones
Funciones de E/S

INTERRUPCIONES
Las interrupciones y el ciclo de instrucción
tratamiento de las interrupciones
Tratamiento de una Interrupción simple
Interrupciones Múltiples
Multiprogramación

JERARQUIA DE ALMACENAMIENTO
MEMORIA CACHE
Objetivos Y Motivación
Principios de la cache
Diseño de la cache
Clases de memoria cache
El cache de disco por software

TÉCNICAS DE COMUNICACIÓN DE E/S
Técnicas de e/s
E/S programada
E/S dirigida por interrupciones
Inicio de la operación de e/s
Tabla de estado de dispositivos
Acceso directo a memoria (DMA)
Funciones de los módulos de e/s
Tipos de controladores
Direccionamiento de los módulos de e/s

INTRODUCCIÓN


En la actualidad, el concepto de sistemas informáticos es muy usado y a la vez importante ya que esta íntimamente ligado a los avances tecnológicos que se producen.
Los sistemas informáticos marcan el inicio de una época importante para el hombre. Son una herramienta poderosa e inigualable, particularmente para ayudar a los hombres de negocios y profesionales a mejorar el manejo y rendimiento de sus trabajos. Permiten además expandir a un rango de aplicaciones aun mas grandes; y que los trabajos se realicen de manera automática, rápida y segura, liberando al usuario de los procesos complejos que se realizan internamente.
Por ello, desarrollaremos en este trabajo, los principales aspectos de los componentes mas importantes que forman parte de los sistemas informáticos. Para llegar a la comprensión del funcionamiento de los mismos, y de su potencial.

ELEMENTOS BASICOS

Un sistema informático consta de procesador, memoria y componentes de entrada/salida, con uno o mas módulos de cada tipo. Estos componentes están interconectados de alguna forma para llevar a cabo la función principal del computador, que es ejecutar programas. Así pues, existen cuatro elementos estructurales principales.

 

UNIDAD CENTRAL DE PROCESAMIENTO (CPU)

¿Qué es la CPU?
Es el "cerebro" de la computadora
Su función es ejecutar programas almacenados en la memoria principal buscando sus instrucciones y examinándolas para después ejecutar una tras otra

Objetivos de la CPU
Captar instrucciones.
Debe leer instrucciones de la memoria.
Interpretar instrucciones.
La instrucción debe decodificarse para determinar qué acción es necesaria.
Captar datos.
La ejecución de una instrucción puede exigir leer datos de la memoria o de un módulo de E/S
Procesar datos.
La ejecución de una instrucción puede exigir leer datos de la memoria o de un módulo de E/S
Escribir datos.
Los resultados de una ejecución pueden exigir escribir datos en la memoria o en un módulo de E/S.

¿Qué necesita la CPU para hacer su trabajo?
Para leer/escribir en memoria o en un dispositivo de E/S:
- Mecanismo de comunicación con la memoria y los dispositivos de E/S: buses del sistema
Para trabajar con instrucciones/datos:
- Mecanismo de almacenamiento interno de información: registros
- Mecanismo interno de comunicación: buses
Para realizar operaciones con los datos, tomar decisiones acerca del flujo de control
- Unidad Aritmético-Lógica: ALU
Para controlar la secuencia de operaciones a realizar en todo este proceso:
- Unidad de Control: CU

Memoria principal
Un componente esencial de cada computadora es la memoria principal. Sin memoria no puede haber computadoras como las conocemos ahora. La memoria es utilizada para almacenar las instrucciones que serán ejecutadas y los datos. La única función de la unidad de memoria es almacenar programas y datos.
La memoria principal contiene un gran número de celdas semiconductoras de almacenamiento, cada una es capaz de almacenar un bit de información (celdas binarias).
En estas celdas rara vez se lee o se escribe como celdas individuales. Mas bien se procesan en grupos de tamaño fijo conocidos como palabras .
La memoria principal está organizada de forma que el contenido de una palabra que contenga n bits, pueda almacenarse o recuperarse en una operación básica.
Para proporcionar fácil acceso a cualquier palabra en la memoria, resulta útil asociar a cada localidad de palabra un nombre diferente. Estos nombres son números que identifican localidades sucesivas, por lo que se denominan direcciones.
El acceso a una palabra se logra especificando su dirección y emitiendo un comando de control que inicie el proceso de almacenamiento y recuperación. El número de bits de cada palabra a menudo se le denomina longitud de palabra de la computadora.

Módulos de e/s
Junto con la CPU y el conjunto de módulos de memoria, el tercer elemento clave de un computador es el conjunto de módulos de E/S, donde cada módulo se conecta al bus del sistema y controla uno o más dispositivos periféricos, este modulo esta dotado de una inteligencia es decir, que contiene una lógica necesaria para permitir la comunicación entre el periférico y el bus del sistema.
Existe un aspecto clave de la E/S que es el empleo de buffers controlados por utilidades de E/S mas que por los procesos de aplicación. Este tipo de almacenamiento sirve para igualar las diferencias de velocidades internas de computador y las velocidades de los dispositivos de E/S.
Para la comunicación con el exterior se necesita un módulo de E/S. Lo cual tiene dos funciones principales).
* Realizar la interfaz entre la CPU y la memoria a través del bus del sistema.
* Realizar la interfaz entre uno o más dispositivos periféricos mediante enlaces de datos específicos.
Un modulo de E/S es el elemento del computador responsable del control de uno o mas dispositivos externos, del intercambio de datos entre estos dispositivos y la memoria principal y/o los registros de la CPU.
Función del módulo:
Las principales funciones o requisitos de un modulo de E/S se encuentran dentro de las siguientes categorías:
o Control y temporización: En cualquier momento la CPU puede comunicarse con uno o más dispositivos externos en cualquier orden según las necesidades de E/S del programa. Así la función de E/S incluye los requisitos de control y temporización.
o Comunicación con la CPU: Esta comunicación implica.
* Decodificación de ordenes.- el módulo de e/s acepta ordenes de la CPU que generalmente se envían utilizando líneas del bus de control.
* Datos.- la CPU y el módulo de E/S intercambian datos a través del bus de datos.
* Información de estado.- puesto que los periféricos son lentos, es importante conocer el estado del modulo de E/S.
* Reconocimiento de dirección.- de igual forma que cada palabra tiene una dirección cada dispositivo de E/S tiene otra, esto permite que el modulo reconozca la dirección para cada uno de los periféricos.
o Comunicación con los dispositivos: Esta comunicación implica intercambiar ordenes, información del estado y datos(ver figura2)
o Almacenamiento temporal de datos: Esta es una necesidad clara (figura1) pues la velocidad de transferencia desde y hacia la memoria principal o la CPU es bastante alta dicha velocidad puede ser varios ordenes de magnitud menor para la mayoría de los dispositivos periféricos.
o Detección de errores: El módulo de E/S es el responsable de dicha detección de errores y de informar de estos errores a la CPU. Una clase de errores son los efectos mecánicos y eléctricos en el funcionamiento del dispositivo.(Por ejemplo papel atascado).
Un modulo de E/S que se encarga de la mayoría de los detalles del procesamiento presentando a la CPU una interfaz de alto nivel, se le denomina generalmente canal de E/S o procesador de E/S (utilizados en grandes computadores centrales).

Interconexión de Sistemas
Son mecanismos y estructuras que permiten la comunicación entre procesadores , memoria principal y los módulos de entrada /salida.
El intercambio de los datos con la memoria es una de las tantas funciones que realiza el procesador . Utiliza los siguientes recursos internos del procesador, para realizar esa función: registro de direcciones de memoria (MAR, Memory Address Register) que especifica la dirección en la memoria de la próxima lectura , y un Registro intermedio de memoria (MBR,Memory Buffer Register), contiene los datos que van a ser escritos en la memoria o que fueron leídos de la misma .

Registros

Visibles al usuario
Permiten al programador del lenguaje de máquina minimizar las referencias a memoria principal.
Normalmente, existen de 8 a 32 de estos registros, aunque algunas implementaciones RISC tienen más de 100.
Pueden contener operandos para cualquier código de operación. A veces hay restricciones como la de tener registros especiales para operaciones de punto flotante
Registro de datos: No pueden ser usados para el cálculo de la dirección de un operando, se pueden utilizar por cualquier instrucción de maquina que realice operaciones sobre los datos. Suele tener ciertas limitaciones. El programador puede asignar estos registros a diversas funciones.
Registro de dirección: Puede estar dedicado a un modo especial de direccionamiento de memoria, ya que contiene las direcciones de la memoria principal de datos e instrucciones o bien una parte de la dirección, que se usa para el calculo de la dirección completa.
Como por ejemplo los registros índice, puntero de pila y puntero de segmento.
Registro índice: Para obtener la dirección efectiva suma un índice a un valor base.
Puntero de segmentos: La memoria se divide en bloques (segmentos) de palabras de longitud variables , utiliza un registro que almacena una dirección base de un segmento, el cual indica su ubicación inicial. La referencia a la memoria esta formada por una referencia a un segmento particular y un desplazamiento dentro del mismo.
Punteros de pila: Cada proceso tiene una o más pilas LIFO de sistema asociadas. Las pilas se utilizan para almacenar los parámetros y las direcciones de retorno de los procedimientos y de las llamadas al sistema. El puntero de pila siempre apunta a la cima de la pila.

Registros de control y estado
Son utilizados por la Unidad de Control para controlar el funcionamiento de la CPU y por el Sistema de Operación para controlar la ejecución de programas.
Hay varios registros del procesador que se emplean para controlar su funcionamiento. Entre estos se incluyen:
Contador de programa: Contiene la dirección de la próxima instrucción a ser tratada.
Códigos de condición: Muestran el resultado de la operación aritmética o lógica más reciente (signo, cero, acarreo, igualdad, desbordamiento).
Información de estado o Registro de instrucción: Incluye los indicadores de habilitación o inhabilitación de interrupciones y el modo de ejecución.

EJECUCIÓN DE INSTRUCCIONES

Los pasos a seguir para el procesamiento de las instrucciones son los siguientes:
1. cada instrucción es leída ( una a la vez), desde la memoria, por el procesador y,
2. cada instrucción es ejecutada por el procesador.
La repetición de la lectura y ejecución ( pasos 1 y 2 respectivamente), conforman la "ejecución de un programa". Dicha ejecución puede detenerse si: la máquina se apaga, ocurre un error que no puede ser recuperado, o si, se encuentra una instrucción en el programa que detenga la computadora.
Ciclo de instrucción: es el procesamiento requerido para la instrucción. En este Ciclo, se encuentran los dos pasos citados anteriormente, denominados Ciclo de lectura (feth) y Ciclo de ejecución.

Lectura y ejecución de instrucciones
El procesador lee una instrucción de la memoria, al comienzo de cada Ciclo de instrucción. Se cuenta con un contador de programas ( PC program counter ), que lleva la cuenta de cual es la próxima instrucción a leer.
Luego de leer cada instrucción el procesador incrementara el PC, de manera tal que la siguiente instrucción a leer será; la que se encuentra en la dirección inmediatamente superior de la memoria. La instrucción leída es cargada en el registro de instrucción ( IR instuction register ), que es un registro del procesador.
El procesador interpreta la instrucción, la cual está en forma de código binario, que especifica la acción que el procesador llevará a cabo, y realizará la acción requerida.
Las acciones que se realizan para la lectura y ejecución de instrucciones se pueden clasificar en las siguientes categorías:
· Procesador-memoria: los datos se transfieren del procesador a la memoria o viceversa.
· Procesador E/S: los datos se transfieren desde o hacia un dispositivo periférico. Se realiza la transferencia entre el procesador y un módulo de entrada-salida.
· Tratamiento de datos: el procesador puede realizar alguna operación aritmética o lógica sobre los datos.
· Control: la secuencia de ejecución puede ser alterada si la instrucción lo especifica.
La ejecución de una instrucción puede incluir una combinación de las acciones antes mencionadas.

Funciones de E/S
Los módulos de E/S, por ejemplo un controlador de disco, peden intercambiar datos directamente con el procesador y el este puede iniciar una escritura o lectura en la memoria, para ello debe indicar la dirección de una ubicación especifica.
El procesador puede leer datos de un módulo de E/S o escribir en él, para ello indica a un dispositivo especifico que esta controlado por un determinado módulo de E/S.
Para relevar al procesador de la tarea de E/S, es conveniente que los intercambios de E/S se produzcan directamente con la memoria. De esta manera el procesador le da a un módulo de E/S autoridad para leer o escribir en la memoria de modo que la transferencia de E/S se realiza sin obstruir al procesador.
Se releva al procesador durante la transferencia de la responsabilidad de intercambio, ya que el modulo de E/S emite ordenes de lectura o escritura en la memoria. La operación realizada se conoce como DMA (direct memory access) o acceso directo a memoria.

INTERRUPCIONES

La interrupción es básicamente un suceso que altera la secuencia de ejecución de las instrucciones.
Existen varios tipos de interrupciones de los cuales los más comunes son los siguientes:
1) De programa o de verificación de programa: son ocasionadas por condiciones que se producen como resultado de la ejecución de una instrucción.
Ejemplo: - la división por cero
- el intento de ejecutar una instrucción privilegiada.
2) De reloj: son producidas por un reloj interno del procesador. Para que de esa forma se realicen funciones con una cierta regularidad.
3) De Entrada / Salida: son generadas por un controlador de E/S para indicar la finalización de una operación; o e cambio de estado de un dispositivo o canal; o también alguna condición de error.
4) Por fallo del Hardware o de verificación de máquina: son causadas por el mal funcionamiento del equipo, cortes de energía, etc.
Con el uso de las interrupciones el procesador se puede utilizar de una manera más eficaz.

Las interrupciones y el ciclo de instrucción
Utilizando interrupciones el procesador puede ejecutar instrucciones mientras una operación de E/S está en proceso. Siguiendo esta idea se concluye que la operación de E/S y un programa usuario son ejecutados concurrentemente.
Desde la postura del programa de usuario, una interrupción no es más que la alteración de la secuencia normal de ejecución. Cuando el tratamiento de la interrupción termina, la ejecución continua.
Para tratar a las interrupciones, se agrega un ciclo de interrupción al ciclo de instrucción.
En el ciclo de interrupción, el procesador verifica si ha ocurrido alguna interrupción, indicado por la presencia de una señal de interrupción. Si no hay interrupciones pendientes, el procesador continúa con el ciclo de lectura y trae la próxima instrucción del programa en curso. Si hay una interrupción pendiente, el procesador suspende la ejecución del programa en curso y ejecuta una rutina de tratamiento de la interrupción.

tratamiento de las interrupciones
Una interrupción lleva a una serie de sucesos, tanto en el hardware del procesador como en el software.

Tratamiento de una Interrupción simple
Cuando un dispositivo de E/S completa una operación E/S se produce en el Hardware estas secuencias de sucesos:
1. El dispositivo envía una señal de interrupción al procesador.
2. El procesador finaliza la ejecución de la instrucción en curso ante de responder a la interrupción.
3. El procesador pregunta por la interrupción; si existe una envía una señal de reconocimiento al dispositivo que la genero, al ser reconocido el dispositivo suprime la señal de interrupción
4. El procesador se prepara para transferir el control a la rutina de interrupción. Se debe salvar la información necesaria para abandonar la ejecución del programa en curso en el punto de interrupción. La mínima información requerida es la palabra de estado del programa (PSW) y la ubicación de la siguiente instrucción a ejecutar, que se almacena en el contador del programa; se introducen en la pila del control del sistema
5. Se carga el contador de programa con la ubicación de entrada del programa de tratamiento de la interrupción.
Puede haber un solo programa por cada tipo de interrupción, o uno por cada dispositivo y por cada tipo de interrupción, dependiendo de la arquitectura del computador y del diseño del sistema operativo.
El procesador debe invocar a una rutina en especial si existe más de una.
Esta información puede estar en la señal original de la interrupción o el procesador tendrá que preguntarle al dispositivo que creo la interrupción para obtener respuesta sobre la información que necesita.

Una vez cargado el contador de programa, donde se encuentra el contenido de la instrucción, el procesador continua con el siguiente ciclo de instrucción que comienza trayendo la próxima instrucción.
La ejecución de este programa tiene las siguientes operaciones:
6. El contador de programa y la PSW relativa al programa interrumpido se salvaron en la pila del sistema. La rutina de tratamiento de la interrupción comienza salvando en la pila el contenido de todos los registros del procesador. Es necesario salvar estos valores mas cualquier otra información sobre el estado de ejecución del programa.
7. La rutina de tratamiento de la interrupción puede ahora procesar la interrupción. Se examina el estado de la información relativa a la operación de E/S o a otro evento que causó la interrupción.
8. Una vez completo el tratamiento de la interrupción se recuperan de la pila los valores de los registros que se salvaron y se recuperan sobre los registros del procesador.
9. Finaliza con la restauración de los valores de la PSW y del contador de programa a partir de la pila. Como resultado la siguiente instrucción a ser ejecutada será del programa interrumpido previamente.

Es importante salvar toda la información para su reanudación posterior, ya que la rutina de tratamiento de la interrupción no es una rutina llamada desde el programa. La interrupción puede producirse en cualquier punto de la ejecución del programa de usuario.

Interrupciones Múltiples
Existen dos enfoques:
1°) Se inhabilitan las interrupciones mientras se esté procesando una. El procesador ignora la señal de interrupción quedando pendiente dicha interrupción. Una vez finalizada la rutina de tratamiento de interrupción se habilitan las interrupciones antes de comenzar el programa y el procesador comprueba si se produjo alguna interrupción adicional, por lo que las interrupciones son tratadas en forma secuencial.
La limitación es que no tiene en cuenta las prioridades relativas o necesidades críticas de tiempo. Si el primer lote de entrada no se proceso, cuando llega el segundo pueden perderse datos porque el buffer de dispositivos de E/S puede estar lleno y producirse un desbordamiento.
2°) Se definen las prioridades para las interrupciones, permitiendo que una interrupción más alta interrumpa a la rutina de tratamiento de una interrupción de prioridad más baja.

Multiprogramación
Es la técnica por medio de la cual el procesador puede soportar la ejecución de varios trabajos activos (que se están ejecutando) al mismo tiempo.
Puede ocurrir que aún utilizando interrupciones el procesador no sea eficientemente aprovechado.
Cuando el procesador tiene que ocuparse de varios programas, el orden de ejecución de éstos dependerá de la prioridad relativa de cada uno y de si están esperando una E/S.
Cuando un programa es interrumpido, el control se transfiere a la rutina de tratamiento de la interrupción, luego de que ésta haya terminado, puede que no se devuelva el control inmediatamente al programa de usuario que estaba ejecutándose en el momento de la interrupción. Puede ser que el control se transfiera a otro programa pendiente con mayor prioridad. Y por último, cuando una prioridad más alta, se reanudará el programa de usuario que fue interrumpido.

JERARQUIA DE ALMACENAMIENTO

En el almacenamiento secundario se pueden mantener los programas y datos que no se van a usar de forma inmediata. El almacenamiento principal maximiza la velocidad en referencia al almacenamiento secundario, el cual disminuye la velocidad y el costo por bit.
Los diferentes tipos de memoria de trabajo de las PC's se dividen en grupos:
· Chips DRAM (Dinamic Random Access Memory - Memoria dinámica de acceso aleatorio).
· SIMM's (Single In-Line Memory Module - Módulos simples de memoria en línea).
· DIMM's (Dual In-Line Memory Module - Módulo de memoria dual en linea).
· SIP's (Single In-Line packages - Paquetes simples de memoria en línea).
· Chips SRAM (Static Random Access Memory - Memoria stática de acceso aleatorio).
Los sistemas con varios niveles de almacenamiento requieren destinar recursos para administrar el movimiento de programas y datos entre niveles.
Para esto se recurrió a los principios utilizados en los mainframes: utilizar una memoria estática de menor tamaño que la memoria total o principal del sistema como ser la memoria "cache"(un nivel adicional). Se utiliza una pequeña cantidad de memoria mucho mas rápida que la memoria de trabajo para almacenar datos de la memoria principal y que la CPU tome los datos de esta memoria más rápida y no deba acceder tan frecuentemente a la otra, que es mucho mas lenta.
Impone al sistema un nivel más de traspaso: los programas son traspasados de la memoria principal al cache antes de su ejecución.
Al utilizar memoria cache se espera que: la sobrecarga que supone el traspaso de programas de un nivel de memoria a otro sea mucho menor que, la mejora en el rendimiento obtenida por la posibilidad de una ejecución mucho mas rápida en la cache.
Al poseer una cache interna el procesador la tiene más cerca y puede acceder a la misma a través del bus interno con un ancho de datos mucho mayor que el externo. La cache interna es mucho mas pequeña que la externa, pero es el doble de rápida que esta última. Al utilizar una cache integrada, los procesadores reducen drásticamente el tiempo necesario para acceder a memoria. Si no están en la cache interna, podrán estar en la externa, o si no en el almacenamiento principal y en el peor de los casos habrá que recurrir a el almacenamiento secundario.

MEMORIA CACHE

La memoria cache es invisible para el sistema operativo. Es un tipo de memoria de acceso aleatorio mucho mas rápida que la memoria RAM.
La memoria cache es una clase de memoria especial de alta velocidad que esta diseñada para acelerar el proceso de las instrucciones de memoria en la CPU. La CPU puede obtener las instrucciones y los datos ubicados en la memoria cache mucho más rápidamente que las instrucciones y datos almacenados en la memoria principal. Por ejemplo, en una placa madre típica de 100 mega hertz, el CPU necesita hasta 180 nanosegundos para obtener información de la memoria principal, mientras que la información de la memoria cache sólo necesita de 45 nanosegundos. Por lo tanto, cuantas más instrucciones y datos la CPU pueda obtener directamente de la memoria cache, más rápido será el funcionamiento de la computadora.
Objetivos
? Mantener el tiempo de acceso promedio a la memoria pequeño.
? Reducir el ancho de banda entre memoria principal y procesador.
Motivación
En todos los ciclos de instrucción el procesador accede a la memoria al menos una vez para leer la instrucción y otras veces para leer los operandos, o para almacenar resultados.

La frecuencia con la que el procesador puede ejecutar las instrucciones se encuentra limitada por el tiempo de ciclo de memoria - es la suma de tiempos de acceso (tiempo mínimo que necesita para identificar la información que se quiere leer) y el tiempo de carga (tiempo que tarda en trasladar la información a destino). Estos tiempos se miden en nanosegundos.
Dicha limitación constituye un problema, ya que si la memoria no puede alimentar las peticiones del procesador se producirá una reducción en el rendimiento de la PC.

Este problema es ocasionado por el desfasaje entre la velocidad del procesador, que se ha incrementado constantemente, y la velocidad de acceso a la memoria principal. La solución a este problema la brinda la memoria cache, que constituye una forma de equilibrar velocidad, coste y tamaño de la memoria.

Principios de la cache
La memoria cache intenta obtener velocidades cercanas a las de las memorias más rápidas disponibles y al mismo tiempo proporcionar una memoria grande al precio de las memorias de semiconductores, que son menos costosas.

La cache contiene una copia de una parte de la memoria principal. Cuando el procesador intenta leer una palabra de la memoria, se comprueba si la palabra determinada esta en la memoria cache, si esta, se envía la palabra al procesador, si no esta, un bloque de memoria principal, formado por un numero fijo de palabras se introduce en la cache, este bloque contiene la palabra buscada, y se envía al procesador.
Dado que existe una alta probabilidad que la instrucción siguiente este relacionada con la anterior se aceleran los tiempos en que estos datos están disponibles.

La siguiente figura representa la estructura de un sistema de cache y memoria principal.


La memoria consta de 2n palabras direccionables, cada palabra tiene una única dirección de n bits. Se considera que esta memoria consta de un numero d bloques de longitud fija de K palabras cada uno. Es decir, hay M=2n /K bloques. La cache consta de C secciones de K palabras cada una y el numero de secciones es considerablemente menor que el numero de bloques de memoria principal. Debido a que existen menos secciones que bloques, una sección individual no puede ser destinada permanentemente a un bloque en particular. De esta manera cada sección incluye un identificador, que informa el bloque que actualmente ocupa dicha sección. Este indicador esta conformado por un número de bits mas significativos de la dirección, refiriéndose a las direcciones que comienzan con esa serie de bits.
Diseño de la cache
? Cuando se habla del Tamaño de la cache se dice que una memoria cache razonablemente pequeña puede tener un impacto significativo sobre el rendimiento. La performance de la cache decrecerá a medida que el tamaño de la memoria cache aumente por sobre el valor optimo (512 Kb).
? Otra cuestión es el tamaño del bloque es la unidad de intercambio de datos entre la cache y la memoria principal, a medida que el tamaño del bloque aumenta, pasan a la cache mas datos útiles, la tasa de aciertos - hit - (proporción de veces que una referencia se encuentra en la cache) aumentara al comienzo, debido al principio de cercanía (existe una alta probabilidad de que se haga referencia en un futuro próximo a datos cercanos a la palabra referenciada. La tasa de acierto comenzara a disminuir dado que el bloque se hace aun mayor y la probabilidad de uso del dato leído mas recientemente se hace menor que la probabilidad de reutilizar el dato que hay que sacar de la cache para hacer sitio para un nuevo bloque.
? Cuando se lleva un nuevo bloque de datos a la cache la función de traducción (mapping) es quien determinara la posición de la cache que ocupara el nuevo bloque. Influyen en el diseño de la función el hecho que un nuevo bloque que llegue a la cache reemplazara a otro bloque; debe hacerse esto de manera tal que se reduzca la probabilidad de reemplazar un bloque que se vaya a necesitar en un futuro próximo. A mayor flexibilidad de la función de traducción, mayor será la envergadura del diseño del algoritmo que maximice la tasa de aciertos; además cuando mas flexible sea la función de traducción, mas complejo será el sistema de circuitos necesarios para determinar si un bloque dado esta en la cache.
? El algoritmo de reemplazo se elige bajo las restricciones de la función de traducción, seria conveniente reemplazar el bloque que tenga menos probabilidad de necesitarse en un futuro cercano. Aunque resulta imposible identificar tal bloque, una estrategia bastante efectiva es la de reemplazar el bloque que lleva mas tiempo en la cache sin que haya sido referenciado, por lo cual se necesitan mecanismos de hardware para dicha identificación. Dicha estrategia se denomina algoritmo del menos recientemente usado.
? En el caso de modificar el contenido de un bloque de la cache deberá escribirse de nuevo en la memoria principal antes de reemplazarlo. La política de escritura dicta cuando tiene lugar la operación de escribir en memoria. Por un lado, la escritura puede producirse cada vez que el bloque se actualice, por otro, la escritura se producirá solo cuando se reemplaza el bloque. Esta última política reduce las operaciones de escritura en memoria pero deja la memoria principal en un estado obsoleto.

Clases de memoria cache
Las clases de memoria cache incluyen cache principal (también conocida como cache L1 y una cache secundaria (conocidas como cache L2). La memoria cache L1 es una memoria que esta situada dentro del microprocesador, se la conoce también con el nombre de memoria cache interna. Actualmente se utilizan como mínimo 64/128 Kb. El controlador de la cache utilizando una serie de algoritmos obtiene las probables próximas lecturas de memoria. La memoria cache L2 es una memoria externa que se encuentra generalmente entre el microprocesador y la memoria. Es una memoria súper rápida conformada por chips SRAM. Una de las características de la cache L2 es que es de mayor tamaño que la L1. En el caso de los microprocesadores que tienen la cache integrada al mismo, su principal característica es que esta trabaja a la misma velocidad que la interna del micro.
La memoria cache puede ser por hard, cuando usamos un soporte físico; o por soft cuando se utiliza un soporte por software y se hace un simil de memoria cache en el disco rígido.
La siguiente figura nos muestra un circuito esquemático de memoria cache física:

El "cerebro" del sistema de la memoria cache es el llamado controlador de memoria cache. Cuando un controlador de memoria cache accede a una instrucción de la memoria principal, también almacena las instrucciones posteriores. Esto se hace debido a que existe una alta probabilidad de que las instrucciones adyacentes también sean necesarias. Esto aumenta la probabilidad de que el CPU encuentre las instrucciones que necesita en la memoria cache, permitiendo así que la computadora funcione con mayor rapidez.
El controlador de cache se encarga de efectuar la lectura-escritura de la memoria RAM (Principal) y de la memoria cache comunicándose directamente con el microprocesador.
La memoria cache esta conformada por una memoria rápida del tipo SRAM (compuesta por transistores, por lo cual no pierde la información periódicamente), mientras que la memoria principal es del tipo DRAM (cada celda esta compuesta por un capacitor y un transistor, los capacitores pierden su carga naturalmente a menos que sufran un proceso de recarga - refreshing).

El cache de disco por software
Existe otra posibilidad de generar una memoria cache utilizando la memoria DRAM como hardware, a través de un software se puede generar una cache virtual. Los sistemas operativos suelen incluir programas de cache de disco.
Se carga un programa de cache de disco, este queda residente en la memoria RAM y reserva como buffer del cache un segmento de esta. El segmento de memoria utilizado dependerá del sistema operativo que utilicemos. Los software de cache se dividen en:
??? Los que toman una porción fija de memoria.
??? Los que utilizan toda la memoria disponible, liberándola a medida que otras aplicaciones o programas requieran espacio en la misma.

TÉCNICAS DE COMUNICACIÓN DE E/S

La función principal del S.O. es el control de todos los dispositivos de E/S.
Las principales funciones son: Enviar comandos a los dispositivos, detectar interrupciones, controlar errores.
Las posibles tres técnicas son:

Técnicas de E/S
A medida que los sistemas informáticos han evolucionados, se ha producido una tendencia creciente en la complejidad y sofisticación de cada componente individual. Al principio el procesador controlaba directamente los dispositivos periféricos, luego intervino menos con el uso de la e/s, las interrupciones permitidas hacían que el procesador no desperdiciaran tiempo esperando que se realice una operación de e/s.

E/S programada:
Los datos se intercambian entre el CPU y el modulo de E/S. El CPU ejecuta un programa que controla directamente la operación de e/s, incluyendo la comprobación del estado del dispositivo, el envío de la orden de lectura o escritura y la transferencia del dato. Cuando el CPU envía la orden debe esperar hasta que la operación de e/s concluya. Si el CPU es mas rápido esté estará ocioso. El CPU es el responsable de comprobar periódicamente el estado del modulo de e/s hasta que encuentre que la operación ha finalizado.
Cada dispositivo tiene asociado un identificador o dirección. Cuando el CPU envía una orden de e/s, la orden contiene la dirección del dispositivo deseado.
El problema con la e/s es que la CPU tiene que esperar un tiempo considerable para que el modulo de e/s concerniente este listo para la recepción o transmisión de datos. Y el echo de que la CPU deba interrogar repetidamente por el status del modulo de e/s hace que el nivel de performance de todo el sistema sea severamente degradado.
Ordenes de E/S
Ø Al ejecutar una instrucción relacionada con una E/S, la CPU proporciona una dirección, especificando el módulo de E/S particular y el dispositivo externo. Hay cuatro tipos de ordenes de E/S.
Ø Orden de control, se utiliza para activar el periférico e indicarle que hacer.
Ø Orden de test, se utiliza para comprobar diversas condiciones de estado asociadas con el módulo de E/S y sus periféricos.
Ø Orden de lectura, hace que el módulo de E/S capte un dato de un periférico y lo sitúe en un buffer interno
Ø Orden de escritura, hace que el módulo de E/S tome un dato (byte o palabra) del bus de datos y posteriormente lo trasmita al periférico.
Instrucciones de E/S
Ø Existe una estrecha correspondencia entre las instrucciones que la CPU capta de memoria y las ordenes de E/S que la CPU envía a un modulo de E/S al ejecutar las instrucciones. Normalmente hay muchos dispositivos conectados al sistema por lo cual tiene asociado un identificador único o dirección. Cuando la CPU envía una orden de E/S, la orden contiene la dirección del dispositivo deseado. Así cada modulo de entrada y salida debe interpretar las líneas de dirección para determinar si la orden es para él.
Ø Cuando los tres componentes principales del computador comparten un bus común son posibles dos modos de direccionamiento: asignado en memoria y aislado.
Ø Las E/S asignadas en memoria, existe un único espacio de direcciones para las posiciones de memoria y los dispositivos de E/S. En este tipo de direccionamiento se necesita una sola línea de lectura y una sola línea de escritura en el bus
Ø E/S aislada, el bus puede disponer de líneas de lectura y escritura en memoria junto con líneas para ordenes de entrada y salida. En este caso, las líneas de órdenes especifican si la dirección se refiere a una posición de memoria o a un dispositivo de E/S. Puesto que el espacio de direcciones de E/S esta aislado del de memoria

E/S dirigida por interrupciones:
Cuando la interrupción desde un modulo de E/S ocurre, la CPU salva el contexto de ejecución del programa corriente y procesa la interrupción. La E/S por interrupción es mas eficiente que la E/S programada porque elimina la espera innecesaria de la cpu por la E/S.El modulo de E/S interrumpirá al CPU para solicitar sus servicios cuando esté preparado para intercambiar datos.
Se pueden distinguir dos tipos : E/S sincrónica y E/S asincrónica
· E/S sincrónica: cuando la operación de e/s finaliza, el control es retornado al proceso que la generó. La espera por E/S se lleva a cabo por medio de una instrucción wait que cobra al CPU en un estado ocioso hasta que ocurre otra interrupción. Aquellas máquinas que no tienen esta instrucción utilizan un loop. Este loop continua hasta que ocurre una interrupción transfiriendo el control a otra parte del sistema operativo. Sólo se atiende a una solicitud de E/S por vez. El sistema operativo conoce exactamente que dispositivo esta interrumpiendo. Esta alternativa excluye el procesamiento simultaneo por de E/S.
· E/S asincrónica : retorna al programa usuario sin esperar a que la operación de E/S finalice. Se necesita una llamada al sistema que le permita al usuario esperar por la finalización de E/S ( si es requerido). También es necesario llevar un control de las distintas solicitudes de E/S. Para ello el S.O. utiliza una tabla que contiene una entrada para cada dispositivo de E/S ( Tabla de Estado de Dispositivo). La ventaja de este tipo de E/S es el incremento de la eficiencia del sistema. Mientras se lleva a cabo la E/S, la CPU puede ser usado para procesar o para planificar otras E/S.

Inicio de la Operación de E/S

Para realizar la operación de E/S, el Cpu actualiza los registros necesarios en el modulo de E/S. El mismo examina el contenido de estos registros para determinar que acción será llevada a cabo.

Tabla de Estado de Dispositivos
Cuando el cpu recibe una interrupción que indica que ha finalizado una operación de E/S el sistema de operación debe saber a cual proceso pertenece. Para esto se mantiene una tabla de estado de dispositivos. Cada entrada en la tabla contiene: tipo de dispositivo, dirección y estado (ocioso, ocupado, no funcionando) si el dispositivo se encuentra ocupado, entonces el tipo de solicitud junto con otros parámetros son almacenados en la tabla.
Las operaciones TYPEAHEAD son un esquema usado por algunos dispositivos que permiten a los usuarios "adelantar" la entrada de datos antes de ser requeridas. Cuando sucede la interrupción del final de E/S no hay proceso que la requirió ,por lo tanto se necesita un buffer para almacenar los caracteres adelantados hasta que algún programa los requiera. En Gral. Se requiere un buffer para cada terminal de entrada.

Acceso Directo a Memoria (DMA)
Tanto en las E/S Programadas como en as E/S por Interrupciones la CPU es responsable de extraer los datos de la memoria central para el output o almacenar los datos en la memoria central para input. La alternativa a esto se conoce como Acceso Directo a Memoria (DMA). En este modo , el Modulo de E/S y la memoria central intercambian datos directamente sin involucrar a la CPU.
El modulo DMA es capaz de imitar a la CPU y de relevarla en el control del sistema para transferir los datos con la memoria por el bus del sistema. Cuando la CPU desea leer o escribir un bloque de datos emite un comando a módulo del DMA, enviándole la siguiente información: si el pedido es una lectura o una escritura, la dirección del dispositivo de E/S involucrado, la ubicación en memoria desde donde empezar a leer o escribir y el numero de palabras a ser leídas o escritas. La CPU continua con otro trabajo, a delegado esta operación de E/S al modulo DMA. Cuando la transferencia termina el modulo DMA manda una señal de interrupción al procesador. La CPU solo opera al comienzo y al final de la transferencia.
El modulo de DMA utiliza el bus solo cuando la CPU no lo necesita o debe forzarla a que suspenda temporalmente su operación. Esta ultima operación se conoce como Robo de Ciclo.
Los módulos de E/S no se conectan directamente al bus del sistema. Ya que existe una variedad de periféricos con modos de direccionamientos diferentes. Además la velocidad de transferencia de datos de los periféricos es mucho menor que la de la memoria o el procesador.

Tipos de controladores:
Ø Generales
Ø Procesadores de E/S.
Ø Controladores de dispositivos específicos.

Direccionamiento de los módulos de E/S:
Ø Mapeada en memoria.
Ø El sistema dispone de un único espacio de direcciones.
Ø La cpu no dispone de líneas de control especiales, ni instrucciones para realizar las operaciones de E/S.
Ø Los registros del controlador son listos como posesiones de memoria.
Ø Se dispone de un espacio de direcciones para memoria y otro para los controladores independientes.
Ø La CPU debe tener líneas de control e instrucciones especificas para realizar las operaciones de E/S.

                      

   Anterior          Índice          Siguiente

Para mayor información, seleccione una opción:

Número de visitas efectuadas desde el 17/12/2001: 
 
Estadísticas diarias desde el 10/07/2002:    

Número de visitantes actuales disponible desde el 14/07/2002:

 

AddFreeStats.com Free Web Stats in real-time !  

 

 

 

Autor: lrmdavid@exa.unne.edu.ar

Ó FACENA - http://exa.unne.edu.ar

Servicios WEB: webmaster@exa.unne.edu.ar