Acceso Directo a la Memoria

¿Qué es la memoria de acceso directo?

El acceso directo a la memoria (Controlador DMA) es un método que permite a un dispositivo de entrada/salida (E/S) enviar o recibir datos directamente a o desde la memoria principal, sin pasar por la CPU para acelerar las operaciones de memoria.

El proceso lo gestiona un chip conocido como sistema DMA (DMAC).

Techopedia explica el acceso directo a la memoria

Se utiliza una porción definida de memoria para enviar datos directamente desde un periférico a la placa base sin involucrar al microprocesador, de modo que el proceso no interfiera con el funcionamiento general del ordenador.

En los ordenadores más antiguos, los cuatro canales DMA se numeraban 0, 1, 2 y 3. Cuando se introdujo el bus de expansión de arquitectura estándar industrial (ISA) de 16 bits, se añadieron los canales 5, 6 y 7.

ISA era un bus estándar para ordenadores compatibles con IBM, que permitía a un dispositivo iniciar transacciones (bus mastering) a mayor velocidad. El controlador DMA ISA dispone de 8 canales DMA, cada uno de ellos asociado a una dirección de 16 bits y registros de recuento.

Desde entonces, ISA ha sido sustituida por las tarjetas de expansión AGP (puerto gráfico acelerado) y PCI (interconexión de componentes periféricos), que son mucho más rápidas. Cada DMA transfiere aproximadamente 2 MB de datos por segundo.

Los recursos del sistema de un ordenador se utilizan para la comunicación entre el hardware y el software. Los cuatro tipos de recursos del sistema son:

  • Direcciones de E/S.
  • Direcciones de memoria.
  • Números de petición de interrupción (IRQ).
  • Canales de acceso directo a la memoria (DMA).

Los canales DMA se utilizan para comunicar datos entre el dispositivo periférico y la memoria del sistema. Los cuatro recursos del sistema dependen de determinadas líneas de un bus. Algunas líneas del bus se utilizan para IRQs, otras para direcciones (las direcciones de E/S y la dirección de memoria) y otras para canales DMA.

Un canal DMA permite a un dispositivo transferir datos sin exponer a la CPU a una sobrecarga de trabajo. Sin los canales DMA, la CPU copia cada pieza de datos usando un bus periférico desde el dispositivo de E/S. El uso de un bus periférico ocupa la CPU durante el proceso de lectura/escritura y no permite realizar otro trabajo hasta que la operación se haya completado.

Con DMA, la CPU puede procesar otras tareas mientras se realiza la transferencia de datos. La CPU inicia primero la transferencia de datos. El bloque de datos puede ser transferido hacia y desde la memoria por el DMAC de tres maneras: En modo ráfaga, el sistema bus se libera sólo después de que se haya completado la transferencia de datos. En el modo de robo de ciclos, durante la transferencia de datos entre el canal DMA y el dispositivo de E/S, el sistema bus se cede durante unos pocos ciclos de reloj para que la CPU pueda realizar otras tareas. Cuando se completa la transferencia de datos, la CPU recibe una petición de interrupción del controlador DMA. Y en modo transparente, el DMAC puede hacerse cargo del sistema bus sólo cuando no es requerido por el procesador.

Sin embargo, el uso de un controlador DMA puede causar problemas de coherencia en la caché. Los datos almacenados en la RAM a los que accede el controlador DMA pueden no actualizarse con los datos correctos de la caché si la CPU está utilizando memoria externa.

Las soluciones incluyen limpiar las líneas de caché antes de iniciar las transferencias DMA salientes, o realizar una invalidación de caché en las transferencias DMA entrantes cuando las escrituras externas son señaladas al controlador de caché.

Temas relacionados

Margaret Rouse

Margaret Rouse es una galardonada escritora técnica y profesora conocida por su habilidad para explicar temas técnicos complejos a una audiencia de negocios no técnica. Durante los últimos veinte años, sus explicaciones han aparecido en sitios web de TechTarget y ha sido citada como autoridad en artículos del New York Times, Time Magazine, USA Today, ZDNet, PC Magazine y Discovery Magazine. La idea de diversión de Margaret es ayudar a profesionales de TI y negocios a aprender a hablar los idiomas altamente especializados de cada uno. Si tienes una sugerencia para una nueva definición o cómo mejorar una explicación técnica,…