Los pasos a seguir en una operación de E/S con DMA( Direct Memory Access) 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 datos
pendientes 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.
PARA LA REALIZACIÓN DE UNA
OPERACIÓN DE E/S SE DEBEN EFECTUAR LAS SIGUIENTES FUNCIONES:
qRecuento de las
unidades de información transferidas (normalmente bytes) para reconocer el fin
de operación.
qSincronizació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.)
qAlmacenamiento
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.
No hay comentarios:
Publicar un comentario