Direct Memory Access: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Aggiunta paragrafo "Funzionamento"
RolloBot (discussione | contributi)
m Bot: Correzione di uno o più errori comuni
Riga 33:
Infine quando il contatore si azzera, il controllore DMA smette di trasferire dati e manda un impulso sulla linea di interrupt collegata al chip della CPU. In presenza di DMA, la CPU deve solo inizializzare pochi registri, dopo di che è libera di svolgere altri compiti fino al completamento del trasferimento, segnalato da un interrupt proveniente dal controllore DMA. Alcuni controllori DMA dispongono di due, tre o più insiemi di registri per controllare trasferimenti simultanei.
 
Anche se con il DMA la CPU viene sollevata dal carico pesante dell'I/O, il procedimento non è del tutto gratuito. Se un dispositivo ad alta velocità, come per esempio un disco, è in fase di trasferimento controllato dal DMA, ci vorranno molti cicli di bus per gli accessi alla memoria e al dispositivo. Durante questi cicli la CPU deve restare in attesa (il DMA ha una priorità di bus sempre maggiore di quella della CPU, perchèperché i dispositivi di I/O difficilmente tollerano ritardi). Il fenomeno che si verifica quando il controllore DMA sottrae cicli di bus alla CPU si dice '''appropriazione di cicli''' (''cycle stealing'', "furto di cicli"). Nientemeno il guadagno che si ottiene nel non dover gestire un interrupt per byte (o per parola) ripaga largamente del danno causato dall'appropriazione di cicli.
 
== Note ==