Direct Memory Access: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 3:
Il DMA è usato da molti sistemi hardware come controller di [[Disco rigido|unità a disco]], [[scheda grafica|schede grafiche]] e [[scheda audio|schede audio]].
 
Essenzialmente, in un trasferimento DMA un blocco di memoria viene copiato da una periferica a un'altra. Il distacco del bus dati dal processore per assewgnarloassegnarlo al controllo del DMA, che questi utilizza per il trasferimento dei dati tra le due periferiche, avviene tramite dei ''bus switches''. La CPU si limita a dare avvio al trasferimento, mentre il trasferimento vero e proprio è svolto dal ''controller DMA''. Un caso tipico è lo spostamento di un blocco di memoria da unità di memoria esterna alla memoria principale. Se questa operazione, come avviene grazie al DMA, non blocca il processore, esso può continuare a svolgere altre operazioni.
 
Il DMA gestisce i trasferimenti tra CPU e periferiche tramite l'utilizzo di diverse linee (Acknowledge, richiesta, controllo) e di due registri (DC e IOAR). Nel momento in cui la CPU necessita di dati presenti in memoria carica in IOAR l'indirizzo dal quale iniziare l’operazione e in DC il numero di dati consecutivi da trattare, informando il DMA su un ulteriore bit se si tratta di un’operazione di lettura o scrittura. A questo punto il DMA invia la richiesta alla periferica e nel momento in cui riceve il segnale di acknowledge inizia il trasferimento. Ad ogni passo viene incrementato IOAR e decrementato DC finché DC non è uguale a 0.