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