Alcune periferiche sono in grado di trasferire direttamente dati verso la memoria senza passare dalla CPU. Per questo ci sono appositi canali, chiamati "DMA channel". I diversi canali sono riservati alle diverse periferiche. Come per gli IRQ possono verificarsi conflitti se i canali DMA non sono assegnati correttamente. Ma problemi si verificano di rado nei PC moderni; nei vecchi PC c'erano solo 4 canali DMA, numerati da 0 a 3 e gestiti da un "DMA controller", quando il bus fu portato a 16 bit fu aggiunto un secondo controller per avere piu' canali.
numero del canale | uso |
---|---|
0 | memory refresh |
1 | scheda audio |
2 | floppy |
3 | schede SCSI, ed altre |
4 | serve a collegare i 2 DMA controllers |
5 | schede SCSI, rete |
6 | varie periferiche |
7 | varie periferiche |
Una evoluzione del concetto di DMA e' il "bus mastering" , in cui la periferica assume in controllo del bus per effettuare il trasferimento dei dati.