Acceso directo a memoria (DMA) en arquitectura informática

Acceso directo a memoria (DMA) en arquitectura informática

Para la ejecución de un programa de computadora, se requiere el funcionamiento sincrónico de más de un componente de una computadora. Por ejemplo, Procesadores - proporcionando la información de control necesaria, direcciones ... etc, buses - para transferir información y datos hacia y desde la memoria a dispositivos de E / S ... etc. El factor interesante del sistema sería la forma en que maneja la transferencia de información entre el procesador, la memoria y los dispositivos de E / S. Por lo general, los procesadores controlan todo el proceso de transferencia de datos, desde el inicio de la transferencia hasta el almacenamiento de datos en el destino. Esto agrega carga al procesador y la mayor parte del tiempo permanece en el estado ideal, disminuyendo así la eficiencia del sistema. Para acelerar la transferencia de datos entre los dispositivos de E / S y la memoria, el controlador DMA actúa como maestro de la estación. El controlador DMA transfiere datos con una mínima intervención del procesador.

¿Qué es un controlador DMA?

El término DMA significa acceso directo a memoria. El dispositivo de hardware utilizado para el acceso directo a la memoria se denomina controlador DMA. DMA el controlador es una unidad de control , parte de los dispositivos de E / S circuito de interfaz , que puede transferir bloques de datos entre dispositivos de E / S y la memoria principal con una mínima intervención del procesador.


Diagrama de controlador DMA en arquitectura informática

El controlador DMA proporciona una interfaz entre el bus y los dispositivos de entrada y salida. Aunque transfiere datos sin la intervención del procesador, está controlado por el procesador. El procesador inicia el controlador DMA enviando la dirección de inicio, el número de palabras en el bloque de datos y la dirección de transferencia de los datos. de los dispositivos de E / S a la memoria o de la memoria principal a los dispositivos de E / S. Se puede conectar más de un dispositivo externo al controlador DMA.



DMA en arquitectura informática

DMA en arquitectura informática

El controlador DMA contiene una unidad de dirección para generar direcciones y seleccionar el dispositivo de E / S para la transferencia. También contiene la unidad de control y el recuento de datos para llevar el recuento del número de bloques transferidos e indicar la dirección de la transferencia de datos. Cuando se completa la transferencia, DMA informa al procesador generando una interrupción. El diagrama de bloques típico del controlador DMA se muestra en la siguiente figura.

Diagrama de bloques típico del controlador DMA

Diagrama de bloques típico del controlador DMA

Funcionamiento del controlador DMA

El controlador DMA tiene que compartir el bus con el procesador para realizar la transferencia de datos. El dispositivo que sostiene el bus en un momento dado se llama bus master. Cuando se debe realizar una transferencia del dispositivo de E / S a la memoria o viceversa, el procesador detiene la ejecución del programa actual, incrementa el programa contador, mueve los datos sobre la pila y luego envía una señal de selección DMA al controlador DMA a través del bus de direcciones.

Si el controlador DMA está libre, solicita el control del bus al procesador elevando la señal de solicitud del bus. El procesador otorga el bus al controlador elevando la señal de concesión de bus, ahora el controlador DMA es el bus maestro. El procesador inicia el controlador DMA enviando las direcciones de memoria, el número de bloques de datos a transferir y la dirección de la transferencia de datos. Después de asignar la tarea de transferencia de datos al controlador DMA, en lugar de esperar idealmente hasta que se complete la transferencia de datos, el procesador reanuda la ejecución del programa después de recuperar las instrucciones de la pila.


Transferencia de datos por DMA en computadora por DMA

Transferencia de datos en la computadora por controlador DMA

El controlador DMA ahora tiene el control total de los buses y puede interactuar directamente con la memoria y los dispositivos de E / S independientemente de la CPU. Realiza la transferencia de datos de acuerdo con las instrucciones de control recibidas por el procesador. Una vez completada la transferencia de datos, deshabilita la señal de solicitud de bus y la CPU deshabilita la señal de concesión de bus moviendo así el control de los buses a la CPU.

Cuando un dispositivo de E / S desea iniciar la transferencia, envía una señal de solicitud DMA al controlador DMA, por lo que el controlador reconoce si está libre. Luego, el controlador solicita al procesador el bus, elevando la señal de solicitud del bus. Después de recibir la señal de concesión de bus, transfiere los datos del dispositivo. Para n controlador DMA canalizado, se pueden conectar n cantidad de dispositivos externos.

El DMA transfiere los datos en tres modos que incluyen lo siguiente.

a) Modo de ráfaga : En este modo, DMA transfiere los buses a la CPU solo después de completar la transferencia de datos completa. Mientras tanto, si la CPU requiere el bus, debe permanecer ideal y esperar la transferencia de datos.

b) Modo de robo de ciclo : En este modo, DMA da control de buses a la CPU después de la transferencia de cada byte. Emite continuamente una solicitud de control de bus, realiza la transferencia de un byte y devuelve el bus. Por esta CPU no tiene que esperar mucho tiempo si necesita un bus para una tarea de mayor prioridad.

c) Modo transparente: Aquí, DMA transfiere datos solo cuando la CPU está ejecutando la instrucción que no requiere el uso de buses.

8237 Controlador DMA

  • 8237 tiene 4 canales de E / S junto con la flexibilidad de aumentar el número de canales.
  • Cada canal se puede programar individualmente y tiene una dirección y capacidad de datos de 64k.
  • El bloque de control de tiempo, el bloque de control de comando del programa, el bloque del codificador de prioridad son los tres bloques principales del 8237A.
  • La sincronización interna y las señales de control externas son impulsadas por el bloque de control de sincronización.
  • Varios comandos dados por el microprocesador al DMA son decodificados por el bloque de control de comandos de programa.
  • A qué canal se le debe dar la mayor prioridad se decide por la prioridad bloque codificador .
    8237A tiene 27 registros internos.

8237A opera en dos ciclos: ciclo ideal y ciclo activo, donde cada ciclo contiene 7 estados separados compuestos por un período de reloj cada uno.

S0- El primer estado, donde el controlador ha solicitado el bus y está esperando el reconocimiento del procesador.

S1, S2, S3, S4 se denominan estados de trabajo del 8237A donde tiene lugar la transferencia real de datos. Si se necesita más tiempo para la transferencia, los estados de espera se agregan SW entre estos estados.

Para la transferencia de memoria a memoria, se deben realizar transferencias de lectura de memoria y de escritura a memoria. Se requieren ocho estados para una transferencia única. Los primeros cuatro estados con subíndices S11, S12, S13, S14 realizan la transferencia de lectura desde la memoria y los cuatro siguientes S21, S22, S23, S24 son para la transferencia de escritura a memoria.

DMA entra en el estado ideal cuando ningún canal solicita servicio y realiza el estado SI. SI es un estado inactivo en el que el DMA está inactivo hasta que recibe una solicitud. En este estado, DMA está en condición de programa donde el procesador puede programar el DMA.

Cuando DMA está en el estado ideal y no recibe más solicitudes de canal, envía una señal HRQ al procesador y entra en el estado Activo donde puede iniciar la transferencia de datos ya sea por modo ráfaga, modo de robo de ciclo o modo transparente.

8237 PinDiagram

8237 Diagrama de clavijas

Controlador DMA 8257

Cuando se combina con un único dispositivo de puerto de E / S Intel 8212, el controlador 8257 DMA forma un completo de 4 canales Controlador DMA . Al recibir una solicitud de transferencia, el controlador 8257-

  • Adquiere el control sobre el bus del sistema del procesador.
  • Se reconoce el periférico conectado al canal de mayor prioridad.
  • Los bits menos significativos de la dirección de memoria se mueven sobre las líneas de dirección A0-A7 del bus del sistema.
  • Lo más significativo 8 bits de la dirección de memoria se dirigen al puerto de E / S 8212 a través de líneas de datos.
  • Genera las señales de control adecuadas para la transferencia de datos entre periféricos y ubicaciones de memoria direccionadas.
  • Cuando se transfiere el número especificado de bytes, el controlador informa a la CPU del final de la transferencia activando la salida de conteo de terminales (TC).

Para cada canal 8257 contiene dos Registros de 16 bits - 1) Registro de direcciones DMA y 2) Registro de recuento de terminales, que debe inicializarse antes de habilitar un canal. La dirección de la primera ubicación de memoria a la que se accede se carga en el registro de direcciones DMA. Los 14 bits de orden inferior del valor cargado en el registro de conteo de terminales indican el número de ciclos de DMA menos uno antes de la activación de la salida de conteo de terminales. El tipo de operación de un canal se indica mediante los dos bits más significativos del registro de conteo de terminales.

8257 Diagrama de clavijas

8257 Diagrama de clavijas

Ventajas y desventajas del controlador DMA

Las ventajas y desventajas del controlador DMA incluyen las siguientes.

Ventajas

  • DMA acelera las operaciones de la memoria al evitar la participación de la CPU.
  • La sobrecarga de trabajo en la CPU disminuye.
  • Para cada transferencia, solo se requieren unos pocos ciclos de reloj

Desventajas

  • El problema de coherencia de la caché se puede ver cuando se utiliza DMA para la transferencia de datos.
  • Aumenta el precio del sistema.

DMA ( Memoria de acceso directo ) el controlador se utiliza en tarjetas gráficas, tarjetas de red, tarjetas de sonido, etc. DMA también se utiliza para la transferencia entre chips en procesadores de varios núcleos. Operando en uno de sus tres modos, DMA puede reducir considerablemente la carga del procesador. ¿En cuál de los modos de DMA ha trabajado? ¿Cuál de los modos consideras más efectivo?