Seguidores

lunes, 16 de abril de 2012

4.4 Operaciones de E/S


Tanto en la E/S programada como la basada en interrupciones, la UCP debe encargarse de la transferencia de datos una vez que sabe que hay datos disponibles en el controlador. Una mejora importante para incrementar la concurrencia entre la UCP y la E/S consiste en que el controlador del dispositivo se pueda encargar de efectuar la transferencia de datos, liberando de este trabajo a la UCP, e interrumpir a la UCP sólo cuando haya terminado la operación completa de EIS. Esta técnica se denomina acceso directo a memoria (DMA, Direct Memory Access). 

Los pasos a seguir en una operación de E/S con DMA son los siguientes:

1. Programación de la operación de E/S. Se indica al controlador la operación, los datos a transferir y la dirección de memoria sobre la que se efectuará la operación.
2. El controlador contesta aceptando la petición de E/S.
3. El controlador le ordena al dispositivo que lea (para operación de lectura) una cierta cantidad de datos desde una posición determinada del dispositivo a su memoria interna.
4. Cuando los datos están listos, el controlador los copia a la posición de memoria que tiene en sus registros, incrementa dicha posición de memoria y decrementa el contador de datospendientes de transferir.
5. Los pasos 3 y 4 se repiten hasta que no quedan más datos por leer.
6. Cuando el registro de contador está a cero, el controlador interrumpe a la UCP para in dicar que la operación de DMA ha terminado.


Funciones que realizan:
        
Vamos a señalar las funciones que debe realizar un computador para ejecutar trabajos de entrada/salida:

     - Direccionamiento o selección del dispositivo que debe llevar a cabo la operación de E/S.
     - Transferencia de los datos entre el procesador y el dispositivo (en uno u otro sentido).
     - Sincronización y coordinación de las operaciones.

Esta ultima función es necesaria debido a la deferencia de velocidades entre los dispositivos y la CPU y a la independencia que debe existir entre los periféricos y la CPU (por ejemplo, suelen tener relojes diferentes.

Definiremos una operación de E/S como el conjunto de acciones necesarias para la transferencia de un conjunto de datos (es decir, una transferencia completa de datos). 

 Para la realización de una operación de E/S se deben efectuar las siguientes funciones:
  •  Recuento de las unidades de información transferidas (normalmente bytes) para reconocer el fin de operación.
  • Sincronización de velocidad entre la CPU y el periférico.Detección de errores (e incluso corrección) mediante la utilización de los códigos necesarios (bits de paridad, códigos de        redundancia cíclica, etc.)
  • Almacenamiento temporal de la información. Es más eficiente utilizar un buffer temporal específico para las operaciones        de E/S que utilizan el área de datos del programa.

Juanita Ramirez Ojeda
Ramón Francisco Quezada Reyes
José Paulo Torres Sánchez


  

 

1 comentario: