Acceso Directo a la Memoria

Fiabilidad

Los ordenadores y dispositivos computacionales modernos incluyen algunas herramientas que hacen más efectivo el proceso en la transmisión de datos, sin comprometer los recursos de la CPU. 

Un ejemplo de ello es el Acceso Directo a la Memoria, también conocido como DMA o direct memory access por sus siglas en inglés, el cual es un componente que se encarga de transmitir los datos a la memoria, sin que se saturen los demás componentes del sistema. 

Si te interesa este tema, a continuación te diremos qué es la memoria de acceso directo y cómo funciona este proceso de datos de entrada y de salida de la información en los ordenadores. 

¿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).

Definición de 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 con sistemas 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.

Acceso Directo a la Memoria y los recursos computacionales

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 solo 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 solo cuando no es requerido por el procesador.

El acceso directo a la memoria y problemas de caché

Cabe destacar que 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é.

Preguntas frecuentes

¿Cómo funciona el acceso directo a la memoria?

¿Qué es DMA o acceso directo a la memoria?

 

Temas relacionados

Margaret Rouse
Experta en tecnología

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,…