ACCESO DIRECTO A MEMORIA El acceso directo a memoria DMA, Permite a ciertos tipo de componentes de una computadora acceder a la memoria
del sistemas para leer o escribir independientemente dela unidad central de proceso (CPU) principal.
Una transferencia DMA consiste principalmente en copiar un bloque de memoria de un dispositivo a otro. En lugar de que la CPU inicie la transferencia, la transferencia se lleva acabo por el controlador DMA.
Cabe destacar que aunque no se necesite a la CPU para la transferencia de datos, si se necesita el bus de sistema (tanto bus de datos como bus de direcciones), por lo que existen diferentes estrategias para regular el uso, permitiendo as que no quede totalmente acaparado por el controlador DMA.
SECUENCIA DE EVENTOS
Una operacin de E/S por DMA se establece ejecutndose una cortina de inicializacin. Consiste en varias instrucciones de salida para asignar valores iniciales a:
AR: direccin de memoria de la regin de datos de E/S IOBUF (buffer de entrada/salida.
WC: Numero de N palabras de datos a transferir. Una vez inicializado, el DMA procede a transferir datos entre el IOBUF y el dispositivo de E/S. se realiza una transferencia cuando el dispositivo de E/S solicite una operacin DMA a travs de la lnea de peticin del DMAC.
Despus de cada transferencia, se decrementa el valor WC y se incrementa el de AR. La operacin termina cuando WC=0, entonces el DMAC (o el perifrico) indica la conclusin de la operacin enviando al procesador una peticin de interrupcin.
SECUENCIA DE EVENTOS DETALLADA [Link] procesamiento inicializa el DMAC programado en AR y WC. [Link] dispositivo de E/S realiza una peticin de DMA al DMAC. [Link] DMAC le responde con una seal de aceptacin. [Link] DMAC activa la lnea de peticin de DMA al procesador. [Link] final del ciclo del bus en curso, el procesador pone las lnea del bus del sistema en al impedancia y activa la sesin de DMA. [Link] DMAC asume el control del bus. [Link] dispositivo de E/D transmite una nueva palabra de datos del registro intermedio de datos del DMAC. [Link] DMAC ejecuta un ciclo de escritura en memoria para transferir el contenido del registro intermedio a la posicin M(AR).
[Link] DMAC decrementa WC e incrementa AR. [Link] DMAC libera el bus y desactiva la lnea de peticin de DMA. [Link] DMAC compara WC con 0: [Link] WC>0, se repite desde el paso 2. [Link] WC=0, el DMAC se detiene y enva una peticin de interrupcin al procesador.
TRANSFERENCIA. En computadoras que no disponen de memoria cache, el DMA debe realizar su tarea evitando ocupar el bus de datos mientras la CPU realiza la fase de captacin de la instruccin. A partie de estas dos posibilidades, existen dos tipos de transferencia de datos del DMA: TRANSFERENCIA MODO REFAGA. una vez que la CPU concede el bus al DMA, este no lo libera hasta que finaliza su tarea completamente. Este tipo de transferencia se usa en sistemas que disponen de una memoria cache en la unidad de procesamiento, ya que mientras la CPU puede seguir trabajando utilizando la cache.
TRANSFERENCIA MODO ROBO DE CICLO
Una vez que la CPU concede el bus DMA, este lo vuelve a liberar al finalizar de transferir cada palabra. Teniendo que solicitar de nuevo el permiso de uso del bus del CPU. Esta operacin se repite hasta que el DMA finaliza la tarea. Este tipo de transferencia se suele usar en sistema que no disponen de memoria cache en la unidad de procesamiento, ya que de este modo, aunque la transferencia de datos tarda ms en realizarse, la CPU puede seguir ejecutando instrucciones.