>> Tecnologia Eletrônica >  >> Celulares e Acessórios >> PDAs

O Que É um Controlador DMA? Acesso Direto à Memória Explicado

Definição

Um **Controlador DMA (DMAC)** é uma unidade de hardware que permite dispositivos de E/S transferirem dados diretamente para/de memória do sistema **sem intervenção da CPU** — liberando o processador para outras tarefas.

Como Funciona

  1. Dispositivo requisita transferência DMA (asserta DRQ).
  2. DMAC ganha controle do barramento (via HOLD/HLDA ou árbitro de barramento).
  3. DMAC gera endereços de memória, sinais de leitura/escrita.
  4. Dados movem: Dispositivo ↔ Memória (bypass registradores CPU).
  5. DMAC sinaliza conclusão (interrupção ou flag de status).
  6. CPU retoma.

Principais Benefícios

  • Descarrega CPU: Nenhum ciclo de instrução para movimento de dados.
  • Maior throughput: Transferências em burst na velocidade do barramento.
  • Concorrência: CPU computa enquanto E/S prossegue.
  • Latência determinística: Crítico para áudio, vídeo, rede.

Usos Comuns

  • E/S de disco (controladores SATA/NVMe têm DMA embutido)
  • Pacotes de rede (NIC → RAM)
  • Streaming áudio/vídeo (placa de som, GPU)
  • Memória-para-memória (aceleração memcpy)
  • Microcontroladores: UART/SPI/I2C/ADC → buffers RAM

Tipos

  • Single-channel / Multi-channel (ex.: 8237: 4 canais; SoCs modernos: 16–64+)
  • Cycle steal / Burst / Block / Demand / Cascade modes
  • Scatter-gather — cadeias de descritores para buffers não contíguos.

Contexto Moderno

No x86, DMA gerenciado por chipset/PCIe root complex. Em ARM/MCUs, DMAC integrado (PL330, DMA2D, etc.). Drivers programam descritores; hardware executa. Essencial para performance.