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:

  1. Puesto que casi invariablemente habrá múltiples módulos de E/S ¿cómo determina la CPU qué dispositivo ha provocado la interrupción?
  2. 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:

  1. Múltiples líneas de interrupción.
  2. Consulta software (“software poll”).
  3. Daisy chain.
  4. 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.

Entradas relacionadas: