IL DMA - I.T.I. Medi

Transcript

IL DMA - I.T.I. Medi
La gestione dell’I/O
IL DMA
Prof. R. Prota
DMA
(Direct Memory Access)


È una tecnica che consente il
trasferimento dei dati dalla periferica
alla memoria senza passare per il
microprocessore
Infatti un processo di I/O tramite DMA
viene attivato dal processore attraverso
un interrupt esterno, ma poi si svolge
sotto il controllo di un apposito
dispositivo detto controllore di DMA
(DMAC).
Prof. R. Prota
Trasferimento dati in DMA
Un tipico trasferimento dati in DMA
prevede i seguenti passi:
 Inizializzazione del trasferimento da
parte del μp
 Acquisizione del possesso dei bus da
parte del DMAC
 Trasferimento sotto il controllo del
DMAC
 Rilascio del possesso dei bus al μp
Prof. R. Prota
Inizializzazione del trasferimento da
parte del μp
Status
μp
Puntatore indirizzi
Contatore parole
Il μp indica al DMAC
 La periferica selezionata
 Il tipo di operazione da compiere
 L’indirizzo della prima locazione di
memoria interessata al trasferimento
 Il numero di dati da trasferire
Prof. R. Prota
Acquisizione dei bus
BUS
HOLD
CPU



HOLDA
DMAREQ
DMAC
PERIFERICA
La periferica segnala al DMAC la propria
disponibilità ad effettuare il trasferimento
(DMAREQ)
Il DMAC richiede al μp il possesso dei bus
(HOLD)
Il μp pone i suoi collegamenti ai bus in stato di
alta impedenza (si congela) e rilascia il
possesso dei bus al DMAC (HOLDA)
Prof. R. Prota
Trasferimento sotto il controllo del
DMAC
È possibile in varie modalità
 a byte (byte mode): il DMAC rilascia il
possesso dei bus dopo il trasferimento
di un solo byte
 a pacchetti di byte (burst mode): il
trsferimento continua fino a che ci sono
byte pronti
 in modo continuo: il DMAC rilascia il
possesso dei bus solo dopo il
trasferimento di tutti i byte previsti.
Prof. R. Prota
Tecniche di trasferimento

Sequenziale:



il dmac legge il dato
lo memorizza in un suo registro
successivamente lo trasferisce in
memoria
MEM
DMAC
CPU
Prof. R. Prota
PERIF
Tecniche di trasferimento

Trasferimento simultaneo (flyby):



Il DMAC legge il dato dalla periferica e lo
mette sul bus
Avvisa la memoria che il dato è disponibile
La memoria acquisisce il dato
MEM
DMAC
CPU
Prof. R. Prota
PERIF
Rilascio del possesso dei bus al μp



Il DMAC disattiva il segnale di
HOLD
Il μp riabilita i collegamenti con i
bus (enable alto)
Il μp disattiva il segnale di HOLDA
Prof. R. Prota
Bus dedicato


Per evitare il congelamento della CPU
può essere aggiunto un bus di I/O che
viene usato solo dal DMAC
Si ottiene così una struttura multibus.
Bus di I/O
MEM
CPU
Bus di memoria
Prof. R. Prota
DMAC
PERIF
μp 8086 e DMA




Il DMAC del μp 8086 è l’integrato
8237
È dotato di quattro canali per 4
operazioni DMA indipendenti
Il canale 0 è usato per il refresh
della RAM
Gli altri 3 canali sono disponibili
per il collegamento con l’Hard disk
e i floppy
Prof. R. Prota