Una operación de E/S por DMA se establece ejecutando una corta rutina de inicialización. Consiste en varias instrucciones de salida para asignar valores iniciales a:
- AR: Dirección de memoria de la región de datos de E/S IOBUF (buffer de entrada/salida).
- WC: Número N de palabras de datos a transferir.
Una vez inicializado, el DMA procede a transferir datos entre IOBUF y el dispositivo de E/S. Se realiza una transferencia cuando el dispositivo de E/S solicite una operación de DMA a través de la línea de petición del DMAC.
Después de cada transferencia, se decrementa el valor de WC y se incrementa el de AR.
La operación termina cuando WC=0, entonces el DMAC (o el periférico) indica la conclusión de la operación enviando al procesador una petición de interrupción.
SECUENCIA DE EVENTOS DETALLADA
- El procesador inicializa el DMAC programando AR y WC.
- El dispositivo de E/S realiza una petición de DMA al DMAC.
- El DMAC le responde con una señal de aceptación.
- El DMAC activa la línea de petición de DMA al procesador.
- Al final del ciclo del bus en curso, el procesador pone las líneas del bus del sistema en alta impedancia y activa la cesión de DMA.
- El DMAC asume el control del bus.
- El dispositivo de E/S transmite una nueva palabra de datos al registro intermedio de datos del DMAC.
- El DMAC ejecuta un ciclo de escritura en memoria para transferir el contenido del registro intermedio a la posición M[AR].
- El DMAC decrementa WC e incrementa AR.
- El DMAC libera el bus y desactiva la línea de petición de DMA.
- El DMAC compara WC con 0:
- Si WC > 0, se repite desde el paso 2.
- Si WC = 0, el DMAC se detiene y envía una petición de interrupción al procesador.
Esta información de acuerdo a :
- Arquitectura de computadoras. (2018). ACCESO DIRECTO A MEMORIA (DMA). 20/03/2018, de WordPress Sitio web: https://conceptosarquitecturadecomputadoras.wordpress.com/acceso-directo-a-memoria-dma/
Gracias por la información, la necesitaba para una tarea.
ResponderEliminar