Che cos’è l’accesso diretto alla memoria?

L’accesso diretto alla memoria, talvolta chiamato DMA, è un metodo per trasferire dati dalla memoria ad accesso casuale a un’altra parte di un computer senza occupare l’unità di elaborazione centrale. Questa capacità è integrata nella maggior parte dei moderni sistemi informatici. Consente al computer di eseguire più attività contemporaneamente, rendendo il computer più veloce.

Proprio come il proprietario di una piccola impresa si occupa di tutti i rapporti e le informazioni che entrano o escono dal suo ufficio, l’unità di elaborazione centrale di un computer deve elaborare tutti gli input o gli output del computer. Prima dell’accesso diretto alla memoria, il download o il caricamento dei dati richiedeva tutta l’attenzione del processore centrale. Potrebbe svolgere solo un compito alla volta.

Un computer con accesso diretto alla memoria abilitato è come un piccolo imprenditore con un paio di assistenti. Invece di trattare direttamente tutte le informazioni, l’unità di elaborazione centrale è in grado di delegare il compito al controller di accesso diretto alla memoria. Questo è un dispositivo integrato nella scheda madre che supervisiona le operazioni di accesso diretto alla memoria. L’unità centrale di elaborazione è quindi libera di eseguire altre attività durante il caricamento o il download. Quando l’attività delegata è completata, il controller DMA informa l’unità di elaborazione centrale.

Ogni porta su un computer ha almeno un canale di accesso diretto alla memoria che può essere assegnato ai dispositivi collegati tramite quella porta. Per funzionare correttamente, a ogni dispositivo deve essere assegnato un canale diverso. La maggior parte delle schede che possono essere installate in un computer, come le schede audio, di rete o video, possono utilizzare l’accesso diretto alla memoria per svolgere le proprie attività.

I processori multi-core sono anche in grado di utilizzare l’accesso diretto alla memoria. Generalmente hanno un tipo di memoria temporanea chiamata memoria locale o scratchpad. Quando l’azione su cui stanno lavorando è completata, possono trasferire i dati dalla memoria locale alla memoria principale utilizzando un canale di memoria ad accesso diretto.

Lo svantaggio di dipendere da DMA è che può causare quella che viene chiamata una perdita di coerenza della cache. Fondamentalmente questo significa che i dati si spostano continuamente e possono essere archiviati in più posizioni temporanee. Il problema è che quando al computer viene chiesto di accedere alle informazioni, potrebbe non accedere alle informazioni più recenti. I produttori di computer possono risolvere questo problema utilizzando hardware speciale o programmando il sistema operativo per evitare la perdita di coerenza della cache.