Diferencia entre revisiones de «Acceso directo a memoria»

Revirtiendo vandalismo
m (Revertidos los cambios de 191.126.61.170 (disc.) a la última edición de 88.9.175.233)
Etiqueta: Reversión
(Revirtiendo vandalismo)
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, esta se lleva a cabo por el controlador DMA. Un ejemplo típico es mover un bloque de memoria desde una memoria externa a una interna más rápida. Tal operación no ocupa al procesador y, por ende, éste puede efectuar otras tareas. Las transferencias DMA son esenciales para aumentar el rendimiento de [[Aplicación (informática)|aplicaciones]] que requieran muchos recursos.
 
Cabe destacar que aunque no se necesite a la CPU para la transacción de datos, sí se necesita el [[bus (informática)|bus]] del sistema (tanto [[bus de datos]] como [[bus de direcciones]]), por lo que existen diferentes estrategias para regular su uso, permitiendo así que no quede totalmente acaparado por el controlador DMA.
 
== Problemas de coherencia en la memoria caché==
La DMA puede llevar a ''problemas de coherencia'' de [[caché]]. Imagine una CPU equipada con una memoria caché y una memoria externa que se pueda acceder directamente por los dispositivos que utilizan DMA. Cuando la CPU accede a X lugar en la memoria, el valor actual se almacena en la caché. Si se realizan operaciones posteriores en X, se actualizará la copia en caché de X, pero no la versión de memoria externa de X. Si la caché no se vacía en la memoria antes de que otro dispositivo intente acceder a X, el dispositivo recibirá un valor caducado de X.
 
Del mismo modo, si la copia en caché de X no es invalidada cuando un dispositivo escribe un nuevo valor en la memoria, entonces la CPU funcionará con un valor caducado de X.
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.
;Transferencias modo robo de ciclo: una vez que la CPU concede el bus al DMA, este lo vuelve a liberar al finalizar de transferir cada palabra. Teniendo que solicitar de nuevo el permiso de uso del bus a la CPU. Esta operación 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 más en realizarse, la CPU puede seguir ejecutando instrucciones.
 
Jose Keloke Y Billy Palomo
 
== Ejemplos ==
4226

ediciones