Acceso directo a memoria (DMA)

El acceso directo a la memoria (DMA), es una técnica de acceso a la memoria en informática . Permite que algunos subsistemas de hardware (periféricos de la computadora) dentro de la computadora lean y escriban directamente la memoria del sistema de forma independiente sin la intervención de la unidad central de procesamiento (CPU). Es un método de transferencia de datos rápido con el mismo grado de carga del procesador. Muchos sistemas de hardware lo utilizan, incluidos los controladores de disco duro , las tarjetas gráficas , las tarjetas de red y las tarjetas de sonido.

memoria de acceso directo

DMA es una característica importante de todas las computadoras modernas, que permite que los dispositivos de hardware de diferentes velocidades se comuniquen sin depender de la gran carga de interrupciones de la CPU . De lo contrario, la CPU necesita copiar cada dato de la fuente al scratchpad y luego volver a escribirlos en la nueva ubicación. Durante este tiempo, la CPU no está disponible para otros trabajos.

Las transferencias DMA se utilizan a menudo para copiar un área de memoria de un dispositivo a otro. Cuando la CPU inicia la acción de transferencia, la misma acción de transferencia es ejecutada y completada por el controlador DMA . Un ejemplo típico es mover un bloque de memoria externa a una memoria más rápida dentro del chip. Este tipo de operaciones no detiene el trabajo del procesador para que pueda reprogramarse para manejar otro trabajo. Las transferencias DMA son esenciales para los algoritmos y redes de sistemas integrados de alto rendimiento. Por ejemplo, el controlador ISA DMA de una computadora personal  tiene 8 canales DMA, 7 de los cuales pueden ser utilizados por la unidad central de procesamiento de la computadora. Cada canal DMA tiene un registro de dirección de 16 bits y un registro de conteo de 16 bits. Para iniciar una transferencia de datos, el controlador del dispositivo configura la dirección y el registro de conteo del canal DMA, así como la dirección de la transferencia de datos, lectura o escritura. Luego instruya al hardware DMA para iniciar la transferencia. Cuando finaliza la transmisión, el dispositivo notifica a la CPU con una interrupción.

El DMA "Scatter-gather" (Dispersión-recopilación) permite que los datos se transfieran a múltiples áreas de memoria en una sola transacción de DMA. Es equivalente a encadenar varias solicitudes de DMA simples juntas. Nuevamente, el propósito de hacer esto es liberar a la CPU de múltiples interrupciones de E/S y tareas de copia de datos. DRQ significa solicitud de DMA; DACK significa confirmación de DMA. Estos símbolos generalmente se ven en el perfil de hardware de los sistemas informáticos con capacidades DMA. Representan las líneas de transmisión de señales electrónicas entre la CPU y el controlador DMA.

Problemas de coherencia de caché

DMA puede causar problemas de coherencia de caché . Imagine una situación en la que la CPU tiene caché y memoria externa, y la operación de DMA es acceder a la memoria externa. Cuando la CPU accede a cierta dirección de la memoria externa, escribe temporalmente el nuevo valor en el caché, pero los datos en la memoria externa no se ha actualizado.Si se produce DMA antes de que los datos en el caché se actualicen en la memoria externa, el proceso de DMA leerá los datos que no se han actualizado.

Del mismo modo, si el dispositivo externo escribe un nuevo valor en la memoria externa, la unidad central de procesamiento accederá a los datos que no se han actualizado al acceder a la memoria caché.

Estos problemas se pueden resolver de dos formas:

  1. Sistema coherente con la caché: se implementa por hardware. Cuando un dispositivo externo escribe en la memoria, se utiliza una señal para notificar al controlador de caché que el valor de una determinada dirección de memoria ha caducado o que los datos deben actualizarse.
  2. Sistema no coherente (Non-coherent system): Completado por método de software, el sistema operativo debe confirmar que el programa DMA se ha iniciado o prohíbe DMA cuando se lee el caché.

El segundo método causará la carga del sistema de DMA.

motor DMA

Además de estar relacionado con la interacción del hardware, DMA también puede descargar el consumo de memoria. Como la tecnología de aceleración de E/S de Intel  (IOAT). El sucesor de IOAT es la tecnología Data Direct I/O (DDIO) del procesador Xeon  E5.

Referirse a

Enlace externo

Este artículo se publica en  Wikipedia . El texto está bajo licencia  Creative Commons-Attribution-Sharealike . Pueden aplicarse términos adicionales para los archivos multimedia.

Supongo que te gusta

Origin blog.csdn.net/weixin_40191861/article/details/132250186
Recomendado
Clasificación