Entradas populares

CONTROLADOR DMA

Acceso Directo a Memoria

DMA, del inglés Direct Memory Access, permite a cierto tipo de componentes de ordenador acceder a la memoria del sistema para leer o escribir independientemente de la CPU principal.

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.



Estrategias de Transferencia por DMA

DMA por robo de ciclo: se basa en usar uno o más ciclos de CPU por cada instrucción que se ejecuta. De esta forma se consigue una alta disponibilidad del bus del sistema para la CPU, aunque, en consecuencia, la transferencia de los datos será considerablemente lenta.

DMA por ráfagas: consiste en enviar el bloque de datos solicitado mediante una ráfaga, ocupando el bus del sistema hasta finalizar la transmisión.




Estrategias de Transferencia por DMA

DMA Transparente: Se trata de usar el bus del sistema cuando se tiene certeza de que la CPU no lo necesita, como por ejemplo en aquellas fases del proceso de ejecución de las instrucciones donde nunca se usa ya que la CPU realiza tareas internas (v. g. fase de decodificación de la instrucción).

DMA Scatter-gather: Permite la transferencia de datos a varias áreas de memoria en una transacción DMA simple.

Secuencia de Eventos

Una operación de E/S por DMA se establece ejecutando una corta rutina de inicialización.
Consiste en varias instrucciones de salida para asignar valores iniciales a:

AR: Direccion de memoria de la región de datos de E/S IOBUF (buffer de entrada/salida).

WC: Número N de palabras de datos a transferir.

Una vez inicializado, el DMA procede a transferir datos entre IOBUF y el dispositivo de E/S. Se realiza una transferencia cuando el dispositivo de E/S solicite una operación de DMA a través de la línea de petición del DMAC.

Después de cada transferencia, se decrementa el valor de WC y se incrementa el de AR.

La operación termina cuando WC=0, entonces el DMAC (o el periférico) indica la conclusión de la operación enviando al procesador una petición de interrupción.


No hay comentarios:

Publicar un comentario