DMA é abreviação de "Direct Memory Access". O DMA permite que os periféricos acessem diretamente a memória RAM, sem ocupar o processador.
Os canais de DMA são utilizados apenas por dispositivos de legado (placas ISA, portas paralelas e drives de disquete) para transferir dados diretamente para a memória RAM, reduzindo dessa forma a utilização do processador.
Existem 8 canais de DMA, numerados de 0 a 7. Os canais de 0 a 3 são herança do PC original e trabalham a 8 bits, assim como o barramento externo no processador 8080. Os canais de 4 a 7 foram introduzidos com o 286 e, acompanhando o barramento de dados do processador, são canais de 16 bits. Os canais de DMA são relacionados ao barramento ISA e, justamente por isso, nunca foram introduzidos canais de 32 bits. Em vez disso, o barramento PCI (seguido pelos demais barramentos modernos) trouxe o Bus Mastering, um sistema muito mais eficiente e rápido.
Tipicamente, o canal DMA 2 era reservado para a controladora do drive de disquetes, o 3 para a porta paralela (quando configurada para operar em modo ECP), enquanto uma placa de som ISA utilizava os endereços 1 e 5.
Justamente por serem muito lentos, os canais de DMA caíram em desuso desde a década de 1990 e continuaram sendo utilizados apenas por periféricos de legado, como drives de disquete, placas de som ISA e portas paralelas padrão ECP. Conforme esses periféricos foram caindo em desuso, os canais de DMA simplesmente deixaram de ser usados, embora permaneçam disponíveis mesmo nos PCs atuais.
Bus Mastering
Uma das principais vantagens do PCI e outros barramentos modernos sobre o VLC, ISA e os demais barramentos antigos é o suporte a Bus Mastering. Tanto o EISA quanto o VLB ofereciam um sistema de Bus Mastering rudimentar, mas o recurso acabou não sendo muito utilizado por um conjunto de fatores, incluindo as dificuldades no desenvolvimento dos drivers. Apenas com o PCI foi criado um padrão realmente confiável, que foi adotado em massa pelos fabricantes.
O Bus Mastering é um sistema avançado de acesso direto à memória, que permite que HDs, placas de vídeo e outros periféricos leiam e gravem dados diretamente na memória RAM, deixando o processador livre.
Um dos melhores exemplos é quando o sistema está ocupado inicializando vários programas simultaneamente. O HD precisa transferir grandes quantidades de arquivos e bibliotecas para a memória, a placa de vídeo precisa exibir as telas de progresso e atualizar a tela, enquanto o processador fica ocupado processando as configurações e outras informações necessárias aos carregamento dos programas. Graças ao Bus Mastering, um micro atual ainda continua respondendo aos movimentos do mouse e às teclas digitadas no teclado, os downloads e transferências de arquivos através da rede não são interrompidos e assim por diante, muito diferente dos micros antigos que literalmente "paravam" durante transferências de arquivos e carregamento dos programas.