Microprocesador - Controlador DMA 8257

DMA son las siglas de Direct Memory Access. Está diseñado por Intel para transferir datos a la velocidad más rápida. Permite que el dispositivo transfiera los datos directamente a / desde la memoria sin ninguna interferencia de la CPU.

Usando un controlador DMA, el dispositivo solicita a la CPU que contenga sus datos, dirección y bus de control, por lo que el dispositivo es libre de transferir datos directamente hacia / desde la memoria. La transferencia de datos DMA se inicia solo después de recibir la señal HLDA de la CPU.

¿Cómo se realizan las operaciones de DMA?

A continuación se muestra la secuencia de operaciones realizadas por un DMA:

  • Inicialmente, cuando cualquier dispositivo tiene que enviar datos entre el dispositivo y la memoria, el dispositivo tiene que enviar una solicitud DMA (DRQ) al controlador DMA.

  • El controlador DMA envía una solicitud de retención (HRQ) a la CPU y espera a que la CPU confirme la HLDA.

  • Luego, el microprocesador tres estados de todo el bus de datos, bus de direcciones y bus de control. La CPU deja el control sobre el bus y reconoce la solicitud de RETENCIÓN a través de la señal HLDA.

  • Ahora la CPU está en estado HOLD y el controlador DMA tiene que administrar las operaciones sobre los buses entre la CPU, la memoria y los dispositivos de E / S.

Características de 8257

Aquí hay una lista de algunas de las características destacadas del 8257:

  • Tiene cuatro canales que se pueden utilizar en cuatro dispositivos de E / S.

  • Cada canal tiene una dirección de 16 bits y un contador de 14 bits.

  • Cada canal puede transferir datos de hasta 64 kb.

  • Cada canal se puede programar de forma independiente.

  • Cada canal puede realizar transferencias de lectura, transferencia de escritura y verificación de operaciones de transferencia.

  • Genera la señal MARK al dispositivo periférico de que se han transferido 128 bytes.

  • Requiere un reloj monofásico.

  • Su frecuencia varía de 250Hz a 3MHz.

  • Opera en 2 modos, es decir, Master mode y Slave mode.

8257 Arquitectura

La siguiente imagen muestra la arquitectura del 8257 -

8257 Pin Descripción

La siguiente imagen muestra el diagrama de pines de un controlador DMA 8257 -

DRQ 0 −DRQ3

Estas son las cuatro entradas de solicitud DMA de canal individual, que son utilizadas por los dispositivos periféricos para utilizar los servicios DMA. Cuando se selecciona el modo de prioridad fija, DRQ 0 tiene la prioridad más alta y DRQ 3 tiene la prioridad más baja entre ellos.

DACK o - DACK 3

Estas son las líneas de reconocimiento de DMA activo-bajo, que actualiza el periférico solicitante sobre el estado de su solicitud por parte de la CPU. Estas líneas también pueden actuar como líneas estroboscópicas para los dispositivos solicitantes.

D o - D 7

Estas son líneas de datos bidireccionales que se utilizan para conectar el bus del sistema con el bus de datos interno del controlador DMA. En el modo esclavo, lleva las palabras de comando al 8257 y la palabra de estado del 8257. En el modo maestro, estas líneas se utilizan para enviar un byte más alto de la dirección generada al pestillo. Esta dirección se bloquea aún más mediante la señal ADSTB.

IOR

Es una línea de entrada de tres estados bidireccional baja activa, que es utilizada por la CPU para leer los registros internos del 8257 en el modo esclavo. En el modo maestro, se utiliza para leer datos de los dispositivos periféricos durante un ciclo de escritura de memoria.

OIA

Es una línea de tres estados bidireccional baja activa, que se utiliza para cargar el contenido del bus de datos en el registro de modo de 8 bits o en el byte superior / inferior de un registro de direcciones DMA de 16 bits o un registro de conteo de terminales. En el modo maestro, se utiliza para cargar los datos a los dispositivos periféricos durante el ciclo de lectura de la memoria DMA.

CLK

Es una señal de frecuencia de reloj que se requiere para el funcionamiento interno del 8257.

REINICIAR

Esta señal se utiliza para REINICIAR el controlador DMA desactivando todos los canales DMA.

A o - A 3

Estas son las cuatro líneas de dirección menos significativas. En el modo esclavo, actúan como una entrada, que selecciona uno de los registros a leer o escribir. En el modo maestro, son las cuatro líneas de salida de dirección de memoria menos significativas generadas por 8257.

CS

Es una línea de selección de chip activo bajo. En el modo esclavo, habilita las operaciones de lectura / escritura hacia / desde 8257. En el modo maestro, deshabilita las operaciones de lectura / escritura hacia / desde 8257.

A 4 - A 7

Estos son el nibble más alto de la dirección de byte más baja generada por DMA en el modo maestro.

LISTO

Es una señal de entrada asíncrona activa alta, que prepara DMA insertando estados de espera.

HRQ

Esta señal se utiliza para recibir la señal de solicitud de retención del dispositivo de salida. En el modo esclavo, está conectado con una línea de entrada DRQ 8257. En el modo maestro, está conectado con la entrada HOLD de la CPU.

HLDA

Es la señal de confirmación de retención que indica al controlador DMA que la CPU ha concedido el bus al periférico solicitante cuando se establece en 1.

MEMR

Es la señal de lectura de memoria baja, que se utiliza para leer los datos de las ubicaciones de memoria direccionadas durante los ciclos de lectura de DMA.

MEMW

Es la señal activa-baja de tres estados que se utiliza para escribir los datos en la ubicación de la memoria direccionada durante la operación de escritura DMA.

ADST

Esta señal se utiliza para convertir el byte más alto de la dirección de memoria generada por el controlador DMA en pestillos.

AEN

Esta señal se utiliza para deshabilitar el bus de direcciones / bus de datos.

TC

Significa 'Terminal Count', que indica el ciclo actual de DMA a los dispositivos periféricos actuales.

MARCA

La marca se activará después de cada 128 ciclos o múltiplos enteros desde el principio. Indica que el ciclo DMA actual es el ciclo 128 desde la salida MARK anterior al dispositivo periférico seleccionado.

V cc

Es la señal de potencia que se requiere para el funcionamiento del circuito.