1. BENVENUTO SU CONSOLE TRIBE

    Benvenuto, stai navigando nella nostra community come ospite

    Avere un account su Console Tribe ti permetterà di creare e partecipare alle discussioni e al mercatino, organizzare tornei e partite online, iniziare conversazioni personali con gli altri giocatori del forum e di utilizzare tutte le funzioni di questo sito.

    Registra il tuo account in meno di 5 secondi, se vuoi puoi sfruttare i login social via Facebook, Google Plus o Twitter.

(Richiesto) Cos'è il DMA

Discussione in 'Computer & Technology' iniziata da ConteZero, 31 Marzo 2005.

  1. ConteZero

    ConteZero Tribe Member

    Registrato:
    16 Marzo 2005
    Messaggi:
    7.682
    "Mi Piace" ricevuti:
    1
    Punteggio:
    36
    Intanto diciamo cosa vuol dire la sigla:
    DMA vuol dire letteralmente Direct Memory Access (o Address, a seconda delle fonti).
    Il DMA è una tecnica antica usata spessissimo quando si deve lavorare con dispositivi che fanno accessi molto consistenti alla memoria.
    Un passo indietro per capire meglio:
    In un computer la tecnica tipica di accesso ad un dispositivo è quella del polling (la CPU controlla di quando in quando i dispositivi e recupera i dati in essi mettendoli negli appositi buffer) o dell'interrupt (il device "avverte" la cpu che c'è qualche dato da recuperare e la CPU li recupera mettendola negli appositi buffer), tuttavia questi due metodi richiedono l'uso della CPU, cosa molto scomoda quando la quantità di dati da spostare è notevole (ad esempio da device di massa).
    Per ovviare a questo problema esiste il DMA, i DMA (di solito sono più d'uno) sono dispositivi (delle piccole CPU che fanno solo spostamenti) programmati per spostare dati da device ai buffer o viceversa.
    In pratica il vantaggio dei DMA è che un device quando deve spostare dati da/verso la memoria può farlo "in parallelo" alla CPU; ovviamente i canali DMA sono "stupidi", nel senso che dev'essere la CPU ad impostarli a dovere, un esempio semplice spiega meglio i dettagli:

    CPU: imposto canale DMA, buffer di destinazione e dico al device di eseguire un operazione.
    ...
    Device: ho i dati, "chiamo" il controller DMA assegnato che mi effettua il trasferimento senza fermare la CPU.
    ...
    DMA: ho finito il trasferimento, "chiamo" la CPU per dirgli che ho finito.

    Il passo 2 è molto impegnativo per cui c'è un certo guadagno ad usare il DMA.
    Il DMA ha molte limitazioni (che non citerò quì) ma in generale è una tecnica molto usata, specie quando ci sono molti device.

    Nota a margine: la parola DMA non ha a che fare con le modalità dei dischi IDE (UltraDMA 3/4/5/6); semplicemente i primi dischi IDE non avevano la modalità DMA e, da quando è stata introdotta, si è pensato di mantenere la dicitura "UltraDMA" come distintivo.
  2. Lucatarik

    Lucatarik Tribe Newbie

    Registrato:
    11 Febbraio 2005
    Messaggi:
    14
    "Mi Piace" ricevuti:
    0
    Punteggio:
    1