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
bien
ResponderEliminar