"Monografia"
TEMA: "Introducción a los Sistemas Informáticos"
INDICE GENERAL
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
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.
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 .
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.
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.
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.
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.

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.
![]()
Número de visitantes actuales disponible desde el 14/07/2002:
Autor: lrmdavid@exa.unne.edu.ar
Ó FACENA - http://exa.unne.edu.ar
Servicios WEB: webmaster@exa.unne.edu.ar