Optimización de Operaciones de Entrada/Salida en Sistemas Computacionales
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 12,57 KB
Módulos de E/S: Funciones y Órdenes
Funciones
- Control y temporización: Sincronización; asíncrono/analógico - síncrono/digital.
- Comunicación con la CPU (direccionamiento).
- Comunicación con los dispositivos (estado, datos…).
- Almacenamiento temporal de datos (buffering).
- Detección de errores.
Instrucción de E/S
La CPU proporciona una dirección (módulo de E/S), el dispositivo externo, y una orden de E/S:
- Control: Activar el periférico e indicarle qué hacer (específicas del tipo de dispositivo).
- Test: Controlar diversas condiciones de estado asociadas con el módulo de E/S y sus periféricos.
- Lectura/escritura.
Contenido del Capítulo
- Módulos de E/S
- Direccionamiento de E/S
- Técnicas de E/S
- E/S programada
- E/S por interrupciones
- E/S por acceso directo a memoria (DMA)
- Periféricos de Entrada
- Periféricos de Salida
- Monitores y Tarjetas gráficas
- Impresoras
- Bibliografía y Actividades
Direccionamiento de E/S
- Diversos dispositivos de E/S están conectados al sistema a través de módulos.
- Cada dispositivo tiene asociado un identificador único o dirección.
- Cuando la CPU envía una orden de E/S, ésta contiene la dirección del dispositivo.
- Cada módulo de E/S debe interpretar las líneas de dirección para determinar si la orden es para él.
- Un módulo que controla varios periféricos tendrá una dirección base + offset para los registros internos.
- Cuando la CPU, la memoria principal, y las E/S comparten un bus común, son posibles dos modos de direccionamiento:
- Asignado a memoria (“memory-mapped”)
- Aislado o a través de puertos.
Direccionamiento de E/S: Asignada en Memoria
- Existe un único espacio de direcciones para las posiciones de memoria y los dispositivos de E/S.
- La CPU considera a los registros de estado y de datos de los módulos de E/S como posiciones de memoria.
- Utiliza las mismas instrucciones máquina para acceder tanto a la memoria como a los dispositivos de E/S.
- Con las E/S asignadas en memoria, se necesita una sola línea de lectura y otra línea de escritura en el bus.
Direccionamiento de E/S: Aislada
- El bus dispone de líneas de lectura y escritura en memoria junto con líneas para órdenes de E/S.
- 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.
- El rango de direcciones está disponible para ambos. Con E/S aislada, los puertos sólo son accesibles mediante una orden específica de E/S, que activa las líneas de órdenes de E/S del bus.
- La mayor parte de las CPUs disponen de un conjunto relativamente grande de instrucciones distintas para acceder a memoria.
Contenido del Capítulo
- Módulos de E/S
- Direccionamiento de E/S
- Técnicas de E/S
- E/S programada
- E/S por interrupciones
- E/S por acceso directo a memoria (DMA)
- Periféricos de Entrada
- Periféricos de Salida
- Monitores y Tarjetas gráficas
- Impresoras
- Bibliografía y Actividades
Técnicas de E/S
A la hora de intercambiar datos entre la CPU y los dispositivos de E/S existen diversas técnicas para gestionar dicha comunicación.
En concreto estudiaremos tres metodologías diferentes a lo largo de este capítulo:
- E/S programada
- E/S por interrupciones
- Acceso directo a memoria (DMA)
Técnicas de E/S: Rendimiento
Destacar dos puntos clave en el rendimiento del sistema:
- Sobrecarga de E/S: Porcentaje de tiempo (ciclos) que la CPU pierde llevando a cabo la gestión de E/S.
- Tiempo de transferencia: Número de ciclos que la CPU pierde por el envío de información.
- Para toda transferencia de E/S, se pierde un ciclo de bus por palabra que se transmita.
Contenido del Capítulo
- Módulos de E/S
- Direccionamiento de E/S
- Técnicas de E/S
- E/S programada
- E/S por interrupciones
- E/S por acceso directo a memoria (DMA)
- Periféricos de Entrada
- Periféricos de Salida
- Monitores y Tarjetas gráficas
- Impresoras
- Bibliografía y Actividades
Técnicas de E/S: Programada
- Cuando la CPU está ejecutando un programa y encuentra una instrucción relacionada con una E/S, ejecuta dicha instrucción enviando una orden al módulo de E/S apropiado.
- El módulo de E/S realizará la acción solicitada y después activa los bits apropiados en el registro de estado de E/S.
- No realiza ninguna acción especial para avisar a la CPU.
- La CPU es la responsable de comprobar periódicamente el estado del módulo de E/S hasta que encuentra la operación que ha terminado.
Técnicas de E/S: Programada (2)
- Es por esto que se dice que la CPU ejecuta un programa que controla directamente la operación de E/S.
- Esta operación incluye la comprobación del estado del dispositivo, el envío de una orden de lectura o escritura, y la transferencia del dato.
- Al ser la CPU normalmente más rápida que el módulo de E/S se está desperdiciando tiempo.
- La sobrecarga se produce por tanto durante toda la transferencia de los datos.
Contenido del Capítulo
- Módulos de E/S
- Direccionamiento de E/S
- Técnicas de E/S
- E/S programada
- E/S por interrupciones
- E/S por acceso directo a memoria (DMA)
- Periféricos de Entrada
- Periféricos de Salida
- Monitores y Tarjetas gráficas
- Impresoras
- Bibliografía y Actividades
Técnicas de E/S: Interrupciones
Alternativa: la CPU, tras enviar una orden de E/S a un módulo continúa realizando algún trabajo útil.
Posteriormente, el módulo de E/S interrumpirá a la CPU para solicitar su servicio cuando esté preparado para intercambiar datos.
La CPU ejecuta entonces la transferencia de datos y después continúa con el procesamiento previo.
Técnicas de E/S: Interrupciones (2)
Recordad que la CPU comprobaba si había interrupciones al final de cada ciclo de instrucción.
Cuando se produce una interrupción la CPU guarda el contexto (contador de programa y registro de la CPU) del programa en curso y procesa la interrupción.
La CPU entonces lee la palabra de datos del módulo de E/S y la almacena en memoria.
Después recupera el contexto del programa que estaba ejecutando (o de otro programa) y continua su ejecución.
La sobrecarga se genera en el cambio de contexto y en la rutina de servicio de interrupción, pero no en el envío.
Sistema de Interrupciones
En la implementación de las E/S mediante interrupciones aparecen dos cuestiones:
- Puesto que casi invariablemente habrá múltiples módulos de E/S ¿cómo determina la CPU qué dispositivo ha provocado la interrupción?
- Si se han producido varias interrupciones, ¿cómo decide la CPU la que debe procesar?
Existen módulos controladores de interrupciones, que incluyen:
- Lógica de determinación del módulo interruptor.
- Implementan prioridades.
- Contienen los vectores de interrupción programados.
Sistema de Interrupciones (2)
Identificación del dispositivo: Cuatro tipos de técnicas se utilizan comúnmente:
- Múltiples líneas de interrupción.
- Consulta software (“software poll”).
- Daisy chain.
- Arbitraje de bus (“vectorizado”).
Además proporcionan una forma de asignar prioridades cuando más de un dispositivo está pidiendo que se sirva su interrupción.
Múltiples líneas de Interrupción
- Se proporcionan varias líneas de interrupción entre la CPU y los módulos de E/S.
- No resulta práctico dedicar más de unas pocas líneas del bus o terminales de la CPU a ser líneas de interrupción.
- Es probable que a cada una se conecten varios módulos de E/S. Por eso, se debe utilizar alguna de las otras tres técnicas en cada línea.
Consulta Software
- Se lanza una rutina de servicio de interrupción que se encarga de consultar a cada módulo de E/S.
- La consulta podría realizarse mediante una línea específica, activando dicha señal y situando la dirección de un módulo de E/S en las líneas de dirección.
- El módulo de E/S responde positivamente si solicitó la interrupción.
- Una vez identificado el módulo, la CPU ejecuta la rutina de servicio específica para ese dispositivo.
- La desventaja de esta técnica reside en el tiempo que consume.
Daisy Chain o Consulta Hardware
- Todos los módulos de E/S comparten una línea común para solicitar interrupciones.
- La línea de reconocimiento de interrupción se conecta encadenando los módulos uno tras otro.
- Cuando la CPU recibe una interrupción, activa el reconocimiento de interrupción. Esta señal se propaga a través de la secuencia de módulos de E/S.
- El módulo solicitante, responde colocando una palabra en las líneas de datos. Esta palabra se denomina vector y es la dirección del módulo de E/S o algún otro tipo de identificador específico (interrupciones vectorizadas).
- La CPU utiliza el vector como un puntero a la rutina de servicio de dispositivo apropiada. Así se evita tener que ejecutar una rutina de servicio general en primer lugar.
Arbitraje de Buses
- Un módulo de E/S debe disponer del control del bus antes de poder activar la línea de petición de interrupción: sólo un módulo puede activar la línea en un instante.
- Cuando la CPU detecta la interrupción, responde mediante la línea de reconocimiento de interrupción.
- Después, el módulo que solicitó la interrupción sitúa su vector en las líneas de datos.
- A continuación se procede como en el caso anterior (interrupciones vectorizadas).
Contenido del Capítulo
- Módulos de E/S
- Direccionamiento de E/S
- Técnicas de E/S
- E/S programada
- E/S por interrupciones
- E/S por acceso directo a memoria (DMA)
- Periféricos de Entrada
- Periféricos de Salida
- Monitores y Tarjetas gráficas
- Impresoras
- Bibliografía y Actividades
Técnicas de E/S: Acceso Directo a Memoria (DMA)
Toda transferencia de datos requiere intervención de la CPU:
- Utilizando E/S programada, la CPU se dedica a la tarea de E/S y puede transferir datos a alta velocidad al precio de no hacer nada más.
- La E/S con interrupciones libera en parte a la CPU, a expensas de reducir la velocidad de E/S.
- Por tanto presentan dos inconvenientes asociados:
- La velocidad de transferencia de E/S es limitada por la velocidad a la cual la CPU puede comprobar y dar servicio a un dispositivo.
- La CPU debe dedicarse a la gestión de transferencias: debe ejecutar cierto número de instrucciones por transferencia de E/S.
Técnicas de E/S: DMA (2)
Imprimir un archivo de 10KB en una impresora láser de 20 páginas por minuto
- E/S programada:
- La CPU entra en un bucle: envía un nuevo byte cada vez que la impresora está preparada.
- La impresora tarda 10s en imprimir 10 Kbytes.
- La CPU está ocupada 10 s con la operación de E/S: podría haber ejecutado 1·10^9 instr.
- E/S por interrupciones:
- La impresora genera una interrupción cada vez que está preparada.
- Si la Rutina de Servicio de Interrupción tiene 10 instrucciones: salvar contexto, comprobar estado, transferir byte, restaurar contexto, rti).
- Para transferir 10 Kbytes se ejecuta 10.000 · 10 instrucciones.
- La CPU está ocupada 0,001 s con la operación de E/S.