Início » Computador » O que é DMA? [Acesso direto à memória]

O que é DMA? [Acesso direto à memória]

Ignorando a CPU; saiba o que é DMA como essa função trabalha, quais os motivos e benefícios estão previstos no processo

Leandro Kovacs Por

A ideia do DMA é a troca de ordem nos acessos, alterando a sequência comum. Veja abaixo, o que é DMA e saiba como acontece esse processo, existem motivos específicos ou benefícios para a atuação dessa forma? A descrição detalhada das respostas está no texto na sequência.

DMA é o método que permite acesso direto a memória sem o uso da CPU (Imagem: Vitor Pádua/Tecnoblog)

Acesso direto?

O DMA ou Direct Memory Access é o método que permite que um dispositivo de entrada e saída envie ou receba dados diretamente da memória principal, ignorando a CPU, acelerando as operações que envolvem a memória.

Todo o processo é controlado por um chip chamado DMAC ou Direct Memory Access Controller que determina quais dispositivos ou entradas estarão aptas ao DMA.

Qual a função específica do DMA?

Como explicamos acima, o DMA basicamente trabalha com transferência de dados entre o computador e dispositivos de entrada e saída. São 3 formas de procedimento conhecidos:

Programada

Neste método, o processador continua fazendo a varredura de algum dispositivo que esteja pronto para transferência de dados. Se um dispositivo estiver pronto, o processador se dedica totalmente à transferência de dados entre ele e a memória.

A transferência dos dados ocorre em uma taxa alta, mas não pode participar de outra atividade durante a transferência de dados. Esta é a principal desvantagem do método programado.

Por interrupção

Quando existe a opção de interrupção, sempre que o dispositivo está pronto para transferência de dados, ele gera uma interrupção tendo o processador como alvo. Em seguida, o processador conclui a execução da instrução em andamento e salva seu estado atual.

Feito o salvamento do estado, muda para a transferência de dados, causando um atraso. Aqui, o processador não fica procurando dispositivos prontos para transferência de dados. Mas, também está totalmente envolvido no processo de transferência de dados, perdendo parte de sua eficiência.

DMA Direct Memory Access

Os dois modos de transferência de dados acima não são úteis para transferir um grande bloco de dados, devido ao fato de exigirem concentração da CPU na operação. No DMA, o controlador conclui a tarefa em uma taxa mais rápida e também é eficaz para a transferência de grandes blocos de dados.

Vantagens e desvantagens do DMA

Vantagens

  • Transferir os dados sem o envolvimento do processador irá acelerar a tarefa de leitura e gravação;
  • O DMA reduz o ciclo de clock necessário para ler ou gravar um bloco de dados;
  • Implementar DMA também reduz a sobrecarga do processador.

Desvantagens

  • Por se tratar de uma unidade de hardware, existe custo ao instalar um controlador DMA no sistema;
  • O problema de coerência do cache pode ocorrer durante o uso do controlador DMA — gerando possíveis erros no sistema.

Com informação: Minitool, Techopedia, Binary Terms.

Comentários da Comunidade

Participe da discussão
1 usuário participando