DMA
Control de E/S
• E/S Programada (Polling)
• E/S por interrupciones
• DMA …
Transferencia de datos
MIENTRAS True
Incrementar contador_datos
SI contador_datos> total_datos ENTONCES
SALIR
FINSI
Colocar dato en buffer destino
Levantar señal de dato listo
REPETIR
ESPERAR
HASTA QUE nuevo_dato_listo()?
FINMIENTRAS
Computadora con DMA
bus
DMAC
CPU
Controlador
LED
LED
Memoria
Controlador
Sensor
Humedad
Sensor
Humedad
Computadora con DMA
• DMAC y CPU comparten Bus de Memoria
• Generalmente, E/S tienen mayor prioridad
de acceso al bus
• DMA crea ráfagas de tráfico en el bus
Protocolo DMA
1. El CPU configura el DMAC
2. El CPU arranca el DMAC y continúa con
la próxima tarea
3. El DMAC realiza la transferencia de
datos
4. Cuando finaliza la transferencia, el
DMAC solicita interrupción al CPU
5. El CPU atiende la interrupción del DMAC
Computadora con DMA (2)
Computadora con DMA (2)
• Computadora con más de un bus entre
componentes
– Bus de Memoria (CPU, DMAC, Memoria)
– Bus de E/S (DMAC, Controladoras)
• Posibilita paralelismo de transferencias de
datos de dispositivos
Canal de E/S
• DMA con mayor inteligencia
(responsabilidad) del lado del DMAC
• Se utilizan pequeños CPUs optimizados
para E/S (IOPs)
– Ejecutan instrucciones aritméticas y de saltos
• El IOP negocia protocolos, envía
comandos al dispositivo de E/S
Computadora con Canales de E/S
Protocolo Canal E/S
1. El CPU coloca un programa de E/S en la
memoria principal
2. El CPU indica la dirección de inicio del
programa de E/S al IOP, y lo arranca
3. El IOP ejecuta el programa de E/S,
cuando concluye el programa, emite
interrupción al CPU
4. El CPU atiende la interrupción
Conclusiones
Descargar

DMA / Almacenamiento