Acceso directo a memoria

En lugar de que la CPU inicie la transferencia, esta se lleva a cabo por el controlador DMA.Tal operación no ocupa al procesador y, por ende, este puede efectuar otras tareas.Las transferencias DMA son esenciales para aumentar el rendimiento de 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 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.Cuando la CPU accede a X lugar en la memoria externa, el valor actual se almacena en la caché.Del mismo modo, si la copia en caché de X no es invalidada cuando un dispositivo escribe un nuevo valor en la memoria externa, entonces la CPU funcionará con un valor caducado de X.Este problema puede ser abordado en el diseño del sistema de las siguientes dos formas: Los híbridos también existen, donde la caché secundaria L2 es coherente, mientras que la caché L1 (generalmente la CPU) es gestionada por el software.Consiste en varias instrucciones de salida para asignar valores iniciales a: Una vez inicializado, el DMA procede a transferir datos entre IOBUF y el dispositivo de E/S.Intel incluye estos motores en los servidores de gama alta, llamado I/O Acceleration Technology (IOAT)..Como puede verse, hay un buen número de pasos necesarios para una transferencia DMA, sin embargo, plantea muchos problemas, ya que el dispositivo PCI o bus PCI sí son más lentos que el resto de componentes.En el caso del PCI, por ejemplo, no se necesita un controlador DMA central desde que los buses del DMA siguen una interfaz de maestro, pero se necesita de un circuito que gestione los casos en que haya varios buses máster presentes en el sistema.Internamente, en los dispositivos existe un motor multicanal DMA controlar los casos de concurrencia.