Logo NEXUS

NEXUS didattica

← Torna indietro
Informatica / Lezione Teorica

Direct Memory Access (DMA)

Architettura e funzionamento del DMA: trasferimento dati ad alta velocitĂ  tra periferiche e memoria senza sovraccaricare la CPU.

1. Il Collo di Bottiglia dell'I/O Tradizionale

Nei sistemi senza supporto hardware avanzato, ogni singolo byte o blocco di dati trasferito da una periferica di I/O (come un disco rigido o una scheda di rete) alla memoria RAM richiedeva l'intervento diretto della CPU. La CPU doveva leggere il dato dalla porta della periferica e scriverlo in memoria un blocco alla volta. Questo approccio consumava una quantitĂ  enorme di cicli di clock, riducendo drasticamente le prestazioni globali del sistema.

2. Cos'è il Direct Memory Access (DMA)

Il DMA (Accesso Diretto alla Memoria) è una tecnologia hardware che consente a dispositivi periferici di trasferire dati direttamente da e verso la memoria principale (RAM) scavalcando la CPU.

Per gestire questo flusso autonomo, il sistema si avvale di un chip specializzato chiamato DMAC (Direct Memory Access Controller). Una volta che la CPU ha programmato il controller DMA specificando l'indirizzo di origine, l'indirizzo di destinazione e il numero di byte da trasferire, la CPU può dedicarsi ad altre elaborazioni mentre il DMAC gestisce il bus di sistema in autonomia.

3. Fasi di un Trasferimento DMA

  1. Configurazione: La CPU invia al controller DMA i parametri di trasferimento (indirizzo sorgente, indirizzo di destinazione, dimensione del blocco).
  2. AttivitĂ  di I/O: La CPU si libera dal compito e prosegue con l'esecuzione dei processi.
  3. Trasferimento Dati: Il controller DMA assume il controllo del bus di sistema e sposta i dati direttamente tra la periferica e la RAM.
  4. Notifica: Al completamento del trasferimento, il controller DMA invia un segnale di interruzione (IRQ) alla CPU per comunicare la fine dell'operazione.
Vantaggi Chiave:
  • Scarico della CPU: Previene lo spreco di cicli di clock preziosi per operazioni ripetitive di copia dati.
  • Elevata Larghezza di Banda: Consente trasferimenti massivi ad alte prestazioni (fondamentale per SSD NVMe, schede grafiche e interfacce di rete veloci).

4. Simulatore Interattivo: Confronto I/O CPU vs DMA

Seleziona una modalitĂ  di trasferimento per confrontare l'impatto sul carico di lavoro della CPU e sull'efficienza complessiva.

dma-sim@nexus-core:~# Bus Controller & Transfer Simulator
> In attesa di selezione per la simulazione del trasferimento dati...