ACCESO DIRECTO A MEMORIA
El acceso directo a memoria (DMA, del inglés Direct Memory Access) permite a cierto tipo de componentes de una computadora acceder a la memoria del sistema para leer o escribir independientemente de la unidad central de procesamiento (CPU). Muchos sistemas hardware utilizan DMA, incluyendo controladores de unidades de disco, tarjetas gráficas y tarjetas de sonido.DMA es una característica esencial en todos los ordenadores modernos, ya que permite a dispositivos de diferentes velocidades comunicarse sin someter a la CPU a una carga masiva de interrupciones.
Los modelos de transferencia vistos, siempre hacen uso del procesador para pasar datos de la memoria a un dispositivo externo, o viceversa, con lo cual se le hace perder tiempo en lo que debería ser sufuerte, la elaboración de datos. El acceso directo a memoria tiende a evitar este desperdicio, tratando de que el procesado no pierda tiempo en estas transacciones.
Figura IV.10 - Interface para periféricos programable Intel 8255A (PPI).
Una operación de Acceso Directo a Memoria (DMA) es inicializada por la UCP, luego de lo cual sigue con su trabajo, con lo que se puede transferir una grancantidad de información sin afectar seriamente su performance.
FUNCIONAMIENTO DEL DMA:
Este método de acceso involucra un módulo adicional en el bus del sistema, módulo que es capaz de mimetizar a la UCP, y tomar el control para la realización de las transacciones.
El sistema trabaja de la siguiente manera, cuando la UCP desea leer o escribir un bloque de datos, envía un comando al módulo DMA,conteniendo la siguiente información:
- Que tipo de operación (lectura o escritura) se debe realizar.
- La dirección del dispositivo.
- La locación de memoria de arranque para la lectura o la escritura.
- La cantidad de palabras que deben ser escritas o leídas.
Figura IV.11 - Interface de teclado y display con 8255A.
La UCP continua con otra tarea, delegando la operación de E/S en el módulo DMA, yéste es el que la tomará a su cargo. Dicho DMA transfiere el bloque de datos palabra por palabra, directamente tomándola o entregándola a la memoria, sin intervención de la UCP.
Una vez concluida la transferencia, el módulo DMA advierte de ello a la UCP mediante una señal de interrupción. En consecuencia el procesador solo toma parte en el comienzo y la finalización del proceso. Lo que ya habíaindicado en la figura IV.6.c.
El DMA necesita adquirir el control del bus para transferir los datos desde y hacia la memoria, por lo cual debe usar el bus solamente cuando la UCP no lo hace, o debe forzar a esta para que suspenda temporalmente la operación. Esta última técnica es más común, y se la conoce como de "robo de ciclo", dado que el DMA accede furtivamente a un ciclo de bus.
En la figuraIV.13, tenemos indicado en qué lugar del ciclo de instrucción puede suspenderse la operación de la UCP. En cada caso esta es suspendida justo antes de que necesite usar el bus, el DMA no interrumpe la operación de la UCP, esta no debe salvar el contexto del programa que está ejecutando, ni hacer ninguna otra cosa, solo se hace hacer una pausa de un ciclo de bus. Si bien esto retarda la operación, suefecto total en caso de tener que realizar muchas transacciones, es de mucho mejor rendimiento que las otras dos formas, por programa o por interrupción.
Figura IV.12 - Diagrama de bloques de una DMA típica.
Figura IV.13 - Puntos de ruptura para la DMA y para las interrupciones.
Figura IV.14 - Configuraciones posibles con DMA.
El mecanismo del DMA puede ser configurado en unaamplia variedad de maneras, algunas de las cuales se indican en la figura IV.14.
En el primer ejemplo, todos los módulos comparten el mismo bus del sistema. El módulo DMA actúa como un subordinado de la UCP, utilizando una E/S programada para el intercambio de datos entre la memoria y un módulo de E/S, a través del módulo DMA. Esta configuración, que puede ser muy económica, es claramente...
Regístrate para leer el documento completo.