Microprocessore - 8257 DMA Controller

DMA è l'acronimo di Direct Memory Access. È progettato da Intel per trasferire i dati alla velocità più elevata. Consente al dispositivo di trasferire i dati direttamente dalla / alla memoria senza alcuna interferenza della CPU.

Utilizzando un controller DMA, il dispositivo richiede alla CPU di conservare i suoi dati, indirizzo e bus di controllo, quindi il dispositivo è libero di trasferire dati direttamente da / verso la memoria. Il trasferimento dei dati DMA viene avviato solo dopo aver ricevuto il segnale HLDA dalla CPU.

Come vengono eseguite le operazioni DMA?

Di seguito è riportata la sequenza delle operazioni eseguite da un DMA:

  • Inizialmente, quando un dispositivo deve inviare dati tra il dispositivo e la memoria, il dispositivo deve inviare una richiesta DMA (DRQ) al controller DMA.

  • Il controller DMA invia una richiesta di sospensione (HRQ) alla CPU e attende che la CPU asserisca l'HLDA.

  • Quindi il microprocessore triplica tutti i bus dati, bus indirizzi e bus di controllo. La CPU lascia il controllo sul bus e conferma la richiesta HOLD tramite il segnale HLDA.

  • Ora la CPU è in stato HOLD e il controller DMA deve gestire le operazioni sui bus tra CPU, memoria e dispositivi I / O.

Caratteristiche di 8257

Ecco un elenco di alcune delle caratteristiche principali di 8257:

  • Dispone di quattro canali che possono essere utilizzati su quattro dispositivi I / O.

  • Ogni canale ha un indirizzo a 16 bit e un contatore a 14 bit.

  • Ogni canale può trasferire dati fino a 64kb.

  • Ogni canale può essere programmato indipendentemente.

  • Ogni canale può eseguire il trasferimento in lettura, il trasferimento in scrittura e verificare le operazioni di trasferimento.

  • Genera il segnale MARK al dispositivo periferico che 128 byte sono stati trasferiti.

  • Richiede un orologio monofase.

  • La sua frequenza varia da 250Hz a 3MHz.

  • Funziona in 2 modalità, ovvero Master mode e Slave mode.

8257 Architecture

L'immagine seguente mostra l'architettura di 8257 -

Descrizione pin 8257

L'immagine seguente mostra il diagramma dei pin di un controller DMA 8257 -

DRQ 0 −DRQ3

Questi sono i quattro ingressi di richiesta DMA dei canali individuali, che vengono utilizzati dai dispositivi periferici per l'utilizzo dei servizi DMA. Quando è selezionata la modalità a priorità fissa, DRQ 0 ha la priorità più alta e DRQ 3 ha la priorità più bassa tra di loro.

DACK o - DACK 3

Queste sono le linee di riconoscimento DMA attivo-basso, che aggiorna la periferica richiedente sullo stato della loro richiesta da parte della CPU. Queste linee possono anche fungere da linee strobo per i dispositivi richiedenti.

D o - D 7

Si tratta di linee dati bidirezionali utilizzate per interfacciare il bus di sistema con il bus dati interno del controller DMA. In modalità Slave, trasporta le parole di comando a 8257 e la parola di stato a 8257. In modalità master, queste linee vengono utilizzate per inviare il byte più alto dell'indirizzo generato al latch. Questo indirizzo viene ulteriormente bloccato utilizzando il segnale ADSTB.

IOR

È una linea di ingresso a tre stati bidirezionale attivo-basso, che viene utilizzata dalla CPU per leggere i registri interni dell'8257 in modalità Slave. In modalità master, viene utilizzato per leggere i dati dai dispositivi periferici durante un ciclo di scrittura della memoria.

IOW

È una linea a tre stati bi-direzionale bassa attiva, che viene utilizzata per caricare il contenuto del bus dati nel registro modalità a 8 bit o nel byte superiore / inferiore di un registro indirizzi DMA a 16 bit o nel registro di conteggio terminale. In modalità master, viene utilizzato per caricare i dati sui dispositivi periferici durante il ciclo di lettura della memoria DMA.

CLK

È un segnale di frequenza di clock necessario per il funzionamento interno dell'8257.

RIPRISTINA

Questo segnale viene utilizzato per RESETTARE il controller DMA disabilitando tutti i canali DMA.

A o - A 3

Queste sono le quattro righe di indirizzo meno significative. In modalità slave, agiscono come un ingresso, che seleziona uno dei registri da leggere o scrivere. In modalità master, sono le quattro linee di uscita dell'indirizzo di memoria meno significative generate da 8257.

CS

È una linea di selezione del chip attivo-basso. In modalità Slave abilita le operazioni di lettura / scrittura a / da 8257. In modalità master disabilita le operazioni di lettura / scrittura a / da 8257.

A 4 - A 7

Questi sono il nibble superiore dell'indirizzo di byte inferiore generato da DMA in modalità master.

PRONTO

È un segnale di ingresso asincrono attivo-alto, che rende pronto il DMA inserendo stati di attesa.

HRQ

Questo segnale viene utilizzato per ricevere il segnale di richiesta di attesa dal dispositivo di uscita. In modalità slave, è collegato con una linea di ingresso DRQ 8257. In modalità Master, è collegato con l'ingresso HOLD della CPU.

HLDA

È il segnale di conferma di attesa che indica al controller DMA che il bus è stato concesso alla periferica richiedente dalla CPU quando è impostato a 1.

MEMR

È il segnale di lettura della memoria insufficiente, che viene utilizzato per leggere i dati dalle posizioni di memoria indirizzate durante i cicli di lettura DMA.

MEMW

È il segnale a tre stati attivo-basso che viene utilizzato per scrivere i dati nella posizione di memoria indirizzata durante l'operazione di scrittura DMA.

ADST

Questo segnale viene utilizzato per convertire il byte più alto dell'indirizzo di memoria generato dal controller DMA nei latch.

AEN

Questo segnale viene utilizzato per disabilitare il bus indirizzo / bus dati.

TC

Sta per "Terminal Count", che indica l'attuale ciclo DMA per i dispositivi periferici attuali.

MARCHIO

Il contrassegno verrà attivato dopo ogni 128 cicli o multipli interi dall'inizio. Indica che il ciclo DMA corrente è il 128 ° ciclo dall'uscita MARK precedente al dispositivo periferico selezionato.

V cc

È il segnale di potenza necessario per il funzionamento del circuito.