Acceso Directo a Memoria
Direct Memory Access
- El módulo DMA es un coprocesador que administra toda la entrada y salida por el CPU Principal mediante interrupciones
- Tiene tres tipos de registros y un módulo de control
- ↔ Contador de datos
- ↔ Registros de datos
- Registros de direcciones
- ↔ Línea de datos
- ↔ Línea de direcciones
- Lógica de control
O
Solicitud de DMAI
Reconocimiento de DMAO
InterrupciónI
LecturaI
Escritura
Funcionamiento
Cuando el CPU quiere leer o escribir un bloque de datos, envía un mandato al módulo DMA con la siguiente información:
- El tipo de operación (se levanta el voltaje en la línea de Lectura o Escritura)
- La dirección del dispositivo de E/S
- La dirección inicial de memoria que se quiere modificar, que se guarda en el registro de dirección
- El número de palabras a transferir, guardado en el registro contador
Luego el CPU continúa normalmente y el DMA transfiere el bloque completo directamente a/desde la memoria sin pasar por el CPU y le envía una interrupción cuando termina.
Configuraciones de Bus
Bus único, DMA independiente
- Todos los módulos E/S comparten el mismo bus del sistema
- DMA usa E/S programada
- Es ineficiente
Bus único, DMA con E/S integrado
- Reduce bastante los ciclos de bus requeridos
- Hay un camino entre el módulo DMA y varios módulos E/S que no incluyen el bus de sistema
Bus de E/S
- Reduce a 1 el número de interfaces de E/S en el módulo DMA
- Es más fácil escalar el número de dispositivos con este modelo