¿Qué es DMA?
(Direct Memory Access o DMA).
El acceso directo a memoria es una características de las computadoras y microprocesadores modernos que permite que ciertos subsistemas de hardware dentro de la computadora puedan acceder a la memoria del sistema para la lectura y/o escritura, independientemente de la unidad central de procesamiento (CPU). De lo contrario, la CPU tendría que copiarcada porción de dato desde el origen hacia el destino, haciendo que ésta no esté disponible para otras tareas.
Los subsistemas de hardware que utilizan DMA pueden ser: controladores de disco duro, tarjetas gráficas, tarjetas de red, tarjetas de sonido y tarjetas aceleradoras. También es utilizado para la transferencia de datos dentro del chip en procesadores con múltiples núcleos. DMA es esencialen los sistemas integrados.
Características generales del DMA
Aquellas computadoras que tienen canales DMA pueden transferir datos desde y hacia los dispositivos con menos utilización de CPU que aquellas computadoras sin canales DMA. Básicamente una transferencia DMA consiste en copiar un bloque de memoria de un dispositivo a otro. Esa transferencia se lleva a cabo por el controlador DMA,en lugar del CPU. El controlador DMA es generalmente un chipset de la placa madre.
En computadoras sin DMA, el CPU generalmente se ocupa completo durante toda la operación de lectura o escritura de la memoria y, por lo tanto, no está disponible para realizar otras tareas. Con DMA, el CPU puede iniciar la transferencia, luego realizar otras operaciones mientras la transferencia está en progreso yluego recibir una interrupción del controlador de DMA una vez que la transferencia termina.
DMA es útil en aplicaciones en tiempo real y en el procesamiento de flujos de datos.
Tipos de transferencia
* DMA por robo de ciclo: es uno de los métodos más usados, ya que requiere poca utilización del CPU. Esta estrategia utiliza uno o más ciclos de CPU para cada instrucción que se ejecuta. Estopermite alta disponibilidad del bus del sistema para la CPU, aunque la transferencia de datos se hará más lentamente.
* DMA por ráfagas: esta estrategia consiste en enviar el bloque de datos solicitado mediante una ráfaga empleando el bus del sistema hasta finalizar la transferencia. Permite una altísima velocidad, pero la CPU no podrá utilizar el bus de sistema durante el tiempo detransferencia, por lo que permanece inactiva.
* DMA transparente: esta estrategia consiste en emplear el bus del sistema cuando la CPU no lo necesita. Esto permite que la transferencia no impida que la CPU utilice el bus del sistema; pero la velocidad de transferencia es la más baja posible.
* DMA Scatter-gather: esta estrategia permite transmitir datos a varias áreas de memoria en una transacción DMAsimple. Equivale al encadenamiento de múltiples peticiones DMA simples. Su objetivo es librar a la CPU la tarea de la copia de datos e interrupciones de entrada/salida múltiples.
Líneas de control
El bus de control tiene líneas específicas para este tipo de intercambios, de forma que el DMA es un subsistema autónomo dentro del mecanismo general de intercambio de datos y control del bus. Son lassiguientes:
• Líneas DRQ1 a DRQ3 (“DMA request”). Utilizadas por los dispositivos que necesitan efectuar un acceso directo a memoria.
• Líneas DACK1 a DACK3 (“DMA acknowledge”). Se utilizan para acusar recibo de la petición DRQ correspondiente.
• AEN (“Access Enabled”) Cuando esta señal está alta, el controlador DMA tiene control sobre ciertas líneas del bus; precisamente las quegobiernan los intercambios con memoria y puertos (MEMR, MEMW, IOR, IOW, Etc).
• MEMR (“Memory Read”) Cuando se activa, esta señal indica a la memoria conectada al bus que escriba los datos en el bus de datos.
• MEMW (“Memory Write”) Cuando se activa, indica a la memoria que almacene los datos situados en el bus de datos.
• Conexiones del controlador DMA con las patillas 30 y 31 de la UCP….