¿Qué es el acceso directo a memoria?

El acceso directo a la memoria, a veces llamado DMA, es un método para transferir datos desde la memoria de acceso aleatorio a otra parte de una computadora sin ocupar la unidad central de procesamiento. Esta capacidad está integrada en la mayoría de los sistemas informáticos modernos. Permite que la computadora realice múltiples tareas a la vez, lo que finalmente hace que la computadora sea más rápida.

Así como el propietario de una pequeña empresa se ocupa de todos los informes y la información que entra o sale de su oficina, la unidad central de procesamiento de una computadora debe procesar todas las entradas o salidas de la computadora. Antes del acceso directo a la memoria, la descarga o carga de datos ocupaba toda la atención del procesador central. Solo podía hacer una tarea a la vez.

Una computadora con acceso directo a memoria habilitado es como el propietario de una pequeña empresa con un par de asistentes. En lugar de tratar con toda la información directamente, la unidad central de procesamiento puede delegar la tarea al controlador de acceso directo a la memoria. Este es un dispositivo integrado en la placa base que supervisa las operaciones de acceso directo a la memoria. La unidad central de procesamiento queda libre para realizar otras tareas mientras se realiza la carga o descarga. Cuando se completa la tarea delegada, el controlador DMA informa a la unidad central de procesamiento.

Cada puerto de una computadora tiene al menos un canal de acceso directo a la memoria que se puede asignar a los dispositivos conectados a través de ese puerto. Para que funcione correctamente, a cada dispositivo se le debe asignar un canal diferente. La mayoría de las tarjetas que se pueden instalar en una computadora, como las de sonido, de red o de video, pueden usar el acceso directo a la memoria para realizar sus tareas.

Los procesadores de varios núcleos también pueden utilizar el acceso directo a la memoria. Por lo general, tienen un tipo de memoria temporal llamada memoria local o memoria virtual. Cuando se completa la acción en la que están trabajando, pueden transferir los datos de la memoria local a la memoria principal utilizando un canal de memoria de acceso directo.

El inconveniente de depender de DMA es que puede provocar lo que se denomina pérdida de coherencia de la caché. Básicamente, esto significa que los datos se mueven todo el tiempo y pueden almacenarse en múltiples ubicaciones temporales. El problema con esto es que cuando se le pide a la computadora que acceda a información, es posible que no acceda a la información más reciente. Los fabricantes de computadoras pueden lidiar con esto usando hardware especial o programando el sistema operativo para protegerse contra la pérdida de coherencia de la caché.