Configurationes DMA (2)
Un Bus, controlador DMA integrado
El controlador puede manejar >1 dispositivo
Cada transferencia usa el bus una vez
DMA a memoria
La CPU es suspendida una vez
Configuraciones DMA (3)
Bus separado de I/O
El Bus suporta todos los dispositivos habilitados para DMA
Cada transferencia usa el bus una vez
DMA a memoria
La CPU es suspendida una vez
Controlador de DMA
El controlador de DMA es un dispositivo capaz de controlar una transferencia de datos entre un periférico y memoria sin intervención de la CPU
El DMAC debe actuar como “máster” del bus durante la transferencia
DMA y debe ser capaz de:
Solicitar el uso del bus mediante las señales y la lógica de arbitraje
necesarias
Ø Especificar la dirección de memoria sobre la que se realiza la transferencia
Ø Generar las señales de control del bus
ð Tipo de operación (lectura/escritura)
ð Señales de sincronización de la transferencia
Diagrama de controlador DMA
Etapas de una transferencia DMA
Ö Inicialización de la transferencia
Ø La CPU debe enviar a la interfase del periférico y al DMAC los parámetros de la transferencia
Inicialización del interfaz (Bus master: CPU – Bus slave: Interfase )
ð Nº de bytes a transferir ð Tipo de transferencia (lectura/escritura)
ð Otra información de control (pista, sector, etc.)
Inicialización del controlador DMA (Bus master: CPU – Bus slave: DMAC)
ð Nº de bytes o palabras a transferir ð Tipo de transferencia (lectura/escritura)
ð Dirección de memoria inicial para la transferencia
ð Nº de canal (para DMAs con varios canales)
Ø Después de la inicialización la CPU retorna a sus tareas y ya no se preocupa más de la evolución de la transferencia
Ö Realización de la transferencia
Ø Cuando el periférico está listo para realizar la transferencia se lo indica al DMAC
Ø El DMAC pide el control del bus y se realiza la transferencia entre el periférico y la memoria
ð Bus máster: DMAC + Periférico – Bus slave: Memoria
ð Después de la transferencia de cada palabra se actualizan los registros del DMA
ü Nº de bytes o palabras a transferir ü Dirección de memoria
Ö Finalización de la transferencia
Ø El DMAC libera el bus y devuelve el control a la CPU
El DMAC suele activar una señal de interrupción para indicar a la CPU la finalización de la
operación de E/S solicitada
Tipos de transferencias
Ö Problema que puede presentar el DMA
Ø Puede degradar el rendimiento de la CPU si el DMAC hace uso intensivo del bus
ð Si el bus está ocupado en una transferencia DMA, la CPU no puede acceder a
memoria para leer instrucciones y datos
Ø Este problema se reduce con el uso de memoria cache
ð La mayor parte del tiempo, la CPU lee instrucciones de la cache, por lo que no
necesita usar el bus de memoria
ð El DMAC puede aprovechar estos intervalos en los que la CPU está leyendo
instrucciones de la cache (y por tanto no usa el bus de memoria) para realizar las
transferencias
Ø En caso de computadores sin cache
ð El procesador no utiliza el bus en todas las fases de la ejecución de una instrucción
ð El DMAC puede aprovechar las fases de ejecución de una instrucción en las que la
CPU no utiliza el bus para realizar sus transferencias
Ö Conclusión
Ø Si el DMAC sólo toma el control del bus durante los intervalos de tiempo en los que la CPU no hace uso del mismo Þ el rendimiento del sistema no sufrirá degradación alguna
Ø Se distinguen, por tanto, dos tipos de transferencias
à Por ráfagas (burst)
à Por robo de ciclo (cycle-stealing)
Página anterior | Volver al principio del trabajo | Página siguiente |