tecnología DMA

Resumen primero:
DMA se refiere a la tecnología de interfaz para dispositivos externos para intercambiar datos directamente con la memoria del sistema sin pasar por la CPU

El trabajo principal lo realiza el controlador DMA.

El texto comienza a continuación.

-------------------------------------------------- --------------------------

1, derivado de DMA

DMA (Acceso directo a memoria, acceso directo a memoria). Antes de la aparición de DMA, los métodos de transferencia de datos entre la CPU y los periféricos incluían la transferencia de programas y la transferencia de interrupciones. La CPU está conectada con otros componentes a través del bus del sistema para la transmisión de datos.

1.1 Método de transmisión del programa

El modo de transmisión del programa se refiere a la operación de entrada/salida de datos directamente bajo el control del programa. Hay dos tipos: modo de transferencia incondicional y consulta (modo de transferencia condicional).

1.1.1 Método de transmisión incondicional

 Algunos periféricos simples en el sistema de la microcomputadora, como interruptores, relés, tubos digitales, diodos emisores de luz, etc., cuando funcionan, se puede considerar que el dispositivo de entrada está listo para proporcionar datos a la CPU en cualquier momento, y el dispositivo de salida también está listo para recibir datos enviados por la UCP en cualquier momento, de esta manera, cuando la UCP necesita intercambiar información con los periféricos, puede usar las instrucciones IN o OUT para realizar operaciones de entrada/salida directamente en estos periféricos . Dado que la CPU no necesita considerar el estado de los periféricos cuando realiza operaciones de entrada/salida en los periféricos de esta manera, se denomina método de transferencia incondicional.

1.1.2 Método de transmisión de consulta (condicional) 

La transmisión de consulta también se denomina transmisión condicional, que se refiere a consultar el estado del dispositivo correspondiente antes de ejecutar el comando de entrada (IN) o el comando de salida (OUT).Cuando el dispositivo de entrada está listo y el dispositivo de salida está inactivo estado, la CPU ejecutará instrucciones de entrada/salida para intercambiar información con los periféricos. Por esta razón, debe haber puertos de datos y puertos de estado en el circuito de interfaz.

1.2 Método de transmisión de interrupción

El método de transmisión de interrupción significa que cuando el dispositivo periférico necesita intercambiar información con la CPU, el dispositivo periférico envía una señal de solicitud a la CPU, lo que hace que la CPU suspenda el programa que se está ejecutando y luego realice operaciones de entrada/salida de datos. se completa la transferencia de datos, la CPU continúa ejecutando el programa suspendido.

En los dos métodos anteriores, la transmisión de datos es controlada por la CPU. La diferencia es que el método de transmisión del programa utiliza la CPU para consultar el estado de los periféricos. La CPU está en una posición activa, mientras que los periféricos están en una posición pasiva. . Esto es lo que se dice a menudo: el sondeo de los periféricos es ineficiente. El maestro de la transmisión de interrupción es que el dispositivo periférico envía activamente una solicitud a la CPU y espera a que la CPU la procese. Cuando no hay solicitud, la CPU y el dispositivo periférico pueden realizar su propio trabajo de forma independiente. Es necesario proteger y restaurar el punto de interrupción y la escena, lo que desperdicia mucho tiempo de CPU y es adecuado para la transmisión de una pequeña cantidad de datos.

1.3 Principio de DMA

La aparición de DMA es para resolver el problema de entrada/salida de datos por lotes. DMA se refiere a la tecnología de interfaz en la que el dispositivo externo intercambia datos directamente con la memoria del sistema sin pasar por la CPU. De esta forma, la velocidad de transmisión de datos depende de la velocidad de trabajo de la memoria y periféricos.

Por lo general, el bus del sistema es administrado por la CPU. En el modo DMA, se espera que la CPU renuncie a estos buses, es decir, las líneas conectadas a estos buses por la CPU están en el tercer estado (estado de alta impedancia). y el controlador de DMA se hace cargo y los controla. El número de bytes transferidos, para determinar si el DMA ha terminado y para señalar el final del DMA. Por lo tanto, el controlador DMA debe tener las siguientes funciones:

1. Puede enviar una señal de retención del sistema (HOLD) a la CPU y realizar una solicitud de toma de control del bus;

2. Cuando la CPU envía una señal de permiso para hacerse cargo, es responsable del control del bus y entra en el modo DMA;

3. Puede dirigirse a la memoria y modificar el puntero de dirección para realizar la lectura y escritura de la memoria;

4. Puede determinar la cantidad de bytes transferidos por DMA esta vez y juzgar si la transferencia de DMA ha terminado.

5. Envíe la señal final de DMA para que la CPU vuelva al estado de funcionamiento normal.

Las transferencias DMA se copiarán de un espacio de direcciones a otro. Cuando la CPU inicia la transferencia, la transferencia misma es ejecutada y completada por el controlador DMA. Ejemplo típico --- mover un bloque de memoria externa a un área de memoria más rápida dentro del chip.

Para la realización de la transmisión DMA, está directamente a cargo del bus (bus de dirección, bus de datos y bus de control) por parte del controlador DMA, por lo que existe un problema de transferencia correcta del control del bus.

Antes de que comience la transferencia DMA: CPU------>controlador DMA

Después de la transferencia DMA: controlador DMA------>CPU

Un proceso completo de transferencia de DMA debe pasar por 4 pasos: solicitud de DMA, respuesta de DMA, transferencia de DMA y finalización de DMA.

El método DMA es un método de control en el que la información del grupo es transmitida completamente por el hardware, y tiene la ventaja del método de interrupción, es decir, en la etapa de preparación de datos, la CPU y los periféricos trabajan en paralelo.

2. Proceso de transmisión DMA

La transmisión de datos de DMA se divide en tres etapas de preprocesamiento, transmisión de datos y posprocesamiento.

(1) Pretratamiento

La CPU realiza algunos trabajos preparatorios necesarios. Primero, la CPU ejecuta varias instrucciones de E/S para probar el estado del dispositivo de E/S, establecer el valor inicial en los registros relevantes del controlador DMA, establecer la dirección de transferencia, iniciar el dispositivo, etc. Luego, la CPU continúa ejecutando el programa original hasta que el dispositivo de E/S está listo para enviar datos (caso de entrada) o aceptar datos (caso de salida), el dispositivo de E/S envía una solicitud de DMA al controlador de DMA y luego el Controlador DMA Envía solicitudes de bus (denominadas colectivamente solicitudes DMA) a la CPU para transferir datos.

(2) Transmisión de datos

La transmisión de datos de DMA puede tomar un solo byte (o palabra) como unidad básica. Para la transmisión en unidades de bloques de datos (como un disco plateado), las operaciones de entrada y salida de datos después de que DMA ocupa el bus se realizan a través de bucles Lo que debe ser especial es que este ciclo también es implementado por el controlador DMA (en lugar de ejecutar el programa a través de la CPU), es decir, la etapa de transmisión de datos está completamente controlada por el DMA (hardware) .

(3) procesamiento posterior

El controlador de DMA envía una solicitud de interrupción a la CPU, y la CPU ejecuta el programa de servicio de interrupción para completar el procesamiento de DMA, lo que incluye verificar si los datos enviados a la memoria principal son correctos, si hay un error en el proceso de transmisión (si el error se transfiere al programa de diagnóstico), y decidir si continuar usando el DMA Transferir otros bloques de datos, etc.

-------------------------------------------------- -------------------------------------------------- ----------

Fuente de este artículo

Comprensión de DMA

No me sigas, solo soy un portero del artículo.

Supongo que te gusta

Origin blog.csdn.net/weixin_70280523/article/details/132330951
Recomendado
Clasificación