Direct Memory Access: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Corretto un errore di ortografia.
Ho esplicitato gli acronimi DC e IOAR
Riga 10:
Essenzialmente, in un trasferimento DMA un blocco di memoria viene copiato da una periferica a un'altra. Il distacco del [[bus (informatica)|bus dati]] dal [[processore]] per assegnarlo al controllo del DMA, che questi utilizza per il trasferimento dei dati tra le due periferiche, avviene tramite dei ''bus switches'' su richiesta del DMAC. La CPU si limita a dare avvio al trasferimento rilasciando il bus dati, mentre il trasferimento vero e proprio è svolto dal ''controller DMA'' (DMAC). Un caso tipico è lo spostamento di un blocco di memoria da unità di memoria esterna alla [[memoria primaria|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 didei due [[registro (informatica)|registri]] (DC (Data Counter) e IOAR (Input/Output Address Register). 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.
 
Il trasferimento tra DMA e I/O può avvenire in diversi modi: