Swappa : Uni / Architettura degli elaboratori - DMA
Creative Commons License

Torna alla pagina di Architettura degli elaboratori


Questa pagina è stata aggiornata GRAZIE agli appunti che AVETE INVIATO nel periodo di chiusura della sezione UniCrema!! È SERVITA A QUALCOSA, NO?! ;)

 :: Architettura degli elaboratori - DMA ::

Il DMA (Direct Memory Access) è un meccanismo che permette ad alcune periferiche di accedere direttamente alla memoria di sistema per scambiarsi dati, oppure leggere o scrivere, senza chiamare in causa la CPU per ogni byte trasferito tramite il meccanismo usuale dell'interrupt e la successiva richiesta di operazione desiderata, ma generando un singolo interrupt per blocco trasferito.
Il DMAC è il DMA-Controller, ed è formato da quattro registri a cui la CPU può accedere:

Gli elementi coinvolti nel funzionamento del meccanismo DMA sono tre: CPU, DMAC e interfaccia a disco. Il comportamento della CPU a livello software è che inizializza il DMAC e l’interfaccia mediante la routine readisk del sistema operativo. Il programma in esecuzione della CPU richiede lettura da memoria di massa a disco chiamando la routine readisk. Questa routine inizializza il DMAC inserendo:

Inizializza quindi l’interfaccia comunicandole il numero della traccia e del settore da leggere da disco, e che si tratta di lettura.

Il comportamento a livello hardware dei tre elementi è il seguente:

Il DMAC pone sull’address bus il contenuto dell’MDA e attiva in all’interfaccia e memwrite alla memoria. Viene così trasferito il dato direttamente da interfaccia a memoria mediante il databus. Viene disattivata sia la linea di HOLDREQ che HOLDACK; viene incrementato l’MDA e decrementato il DC. Se il DC > 0 continua il trasferimento, se DC = 0 finisce. A questo punto il DMAC invia un segnale di interruzione alla CPU; la CPU attiva la routine di risposta all’interrupt, che segnala al readisk che è terminata l’operazione. Infine il sistema operativo riattiva il programma che aveva richiesto lettura da disco.


Torna alla pagina di Architettura degli elaboratori

(Printable View of http://www.swappa.it/wiki/Uni/ADE-DMA)