Che cos'è l'accesso diretto alla memoria?
L'accesso diretto alla memoria, a volte chiamato DMA, è un metodo per trasferire dati dalla memoria ad accesso casuale a un'altra parte di un computer senza occupare l'unità centrale di elaborazione. Questa funzionalità è integrata nella maggior parte dei moderni sistemi informatici. Consente al computer di eseguire più attività contemporaneamente, rendendolo alla fine più veloce.
Proprio come il proprietario di una piccola impresa si occupa di tutti i report e le informazioni che entrano o escono dal suo ufficio, l'unità centrale di elaborazione di un computer deve elaborare tutti gli input o output del computer. Prima dell'accesso diretto alla memoria, il download o il caricamento dei dati ha attirato tutta l'attenzione del processore centrale. Poteva svolgere solo un'attività alla volta.
Un computer con accesso diretto alla memoria abilitato è come un piccolo imprenditore con un paio di assistenti. Invece di gestire direttamente tutte le informazioni, l'unità centrale di elaborazione è in grado di delegare l'attività al controller di accesso diretto alla memoria. Questo è un dispositivo integrato nella scheda madre che sovrintende alle operazioni di accesso diretto alla memoria. L'unità centrale di elaborazione è quindi libera di eseguire altre attività mentre è in corso il caricamento o il download. Al termine dell'attività delegata, il controller DMA comunica all'unità centrale di elaborazione.
Ogni porta su un computer ha almeno un canale di accesso diretto alla memoria che può essere assegnato a dispositivi collegati attraverso quella porta. Per funzionare correttamente, a ciascun dispositivo deve essere assegnato un canale diverso. La maggior parte delle schede che possono essere installate su un computer, come schede audio, di rete o video, possono utilizzare l'accesso diretto alla memoria per eseguire 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 usando un canale di memoria ad accesso diretto.
Lo svantaggio di dipendere da DMA è che può causare 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 viene chiesto al computer di accedere alle informazioni, potrebbe non accedere alle informazioni più recenti. I produttori di computer possono occuparsene utilizzando hardware speciale o programmando il sistema operativo per evitare la perdita di coerenza della cache.