Você está na página 1de 18

Controlador de DMA (DMAC)

Dispositivos Reprogramveis Docente: Joo Baptista Discente: Isabela R. dos Santos Julho/2013

Controlador Intel 8237


Chip de 40 pinos incorporado na arquitetura do microcontrolador Transferncia de informao (dados) entre memria e uma porta E/S com velocidade 1,6 MB/s Pode ser programado Desnecessria interveno da CPU Mnima ateno do processador No precisa armazenar dados

Controlador Intel 8237

Controlador de DMA (DMAC)


Dispositivos Reprogramveis Docente: Joo Baptista Discente: Isabela R. dos Santos Julho/2013

Controlador Intel 8237


Baseado no Intel 8237 Cada um possui quatro canais de DMA separados Dois controladores de DMA Arquitetura Mestre/Escravo Sete canais de DMA Um canal utilizado para a cascata

Arquitetura Intel 8237

Transferncia de dados por DMA


Entrada (da interface para a memria) 1) O DMAC desabilita momentaneamente o processador 2) Faz a leitura do dado da interface que solicitou a transferncia 3) Grava o dado 4) Habilita o processador novamente

Transferncia de dados por DMA


Sada (da memria para a interface) 1) 2) 3) 4) Desabilita o processador Faz a leitura do dado da memria Transmite o dado para a interface apropriada Habilita o processador para funcionar normalmente

Tipos de transferncia de DMA

Transferncia de leitura O DMAC (controlador de DMA) ir ler um dado da memria, escrevendo-o no dispositivo de I/O associado com o canal de DMA.

Tipos de transferncia de DMA

Transferncia de escrita O DMAC ir ler um dado do dispositivo de I/O associado ao canal de DMA, escrevendo-o na memria

Tipos de transferncia de DMA


Transferncia de verificao O DMAC ir executar ciclos de DMA, incluindo a gerao de endereos, mas as linhas de leitura/escrita no sero ativadas. (Utilizado para implementar um refresh de memria.)

Modos de Transferncia
Modo de Transferncia Simples Modo de transferncia de bloco Modo de transferncia por demanda Modo Cascata

Modo de Transferncia Simples


Um dos modos mais utilizados
Permite ao DMAC partilhar (no tempo) o barramento com a CPU

O DMAC devolve o controle de barramento CPU a cada transferncia de um byte (ou palavra)

Modo de Transferncia por Bloco


Utilizado quando o DMAC precisa transferir um bloco de dados O projetista e o programador devem lembrar que o DMAC mantm o controle do barramento por muito tempo Semelhante transferncia simples, porm o DMAC no devolve o controle do barramento CPU at que toda a transferncia tenha sido efetuada.

Modo de Transferncia por Demanda


O DMAC executa ciclos de DMA enquanto o dispositivo de I/O mantiver a linha DRQn ativa Caso o dispositivo de I/O no consiga fornecer dados na taxa do DMAC, a transferncia ser temporariamente suspensa.
O dispositivo de I/O retira o sinal de DRQn

Modo de Transferncia por Cascata


Indica que o DMAC est conectada a outro DMAC ou a um mestre de barramento e no a um dispositivo de I/O Utilizado para cascatear o controlador Mestre e Escravo O controlador Escravo utiliza o Mestre para obter o controle do barramento. Durante a etapa de boot, o canal zero do controlador mestre programado no modo cascata

Lgica de Prioridade do DMAC


Prioridade Fixa Os canais possuem uma prioridade fixa, com a ordem baseada no valor decrescente de seus nmeros. O canal 0 possui a prioridade mais alta e o canal 3 a mais baixa (em cada controlador) Situao default Os canais do controlador escravo possuem a prioridade mais alta
Prioridade Rotativa O ltimo canal a ser atendido ter a prioridade mais baixa, com a prioridade dos demais canais sendo rotacionada adequadamente. Impede que um canal monopolize o sistema

Ciclo de Barramento de DMA


0 8237 implementa uma mquina de estados com 7 estados O DMAC utiliza seu prprio clock para executar os ciclos de barramento
Metade da freqncia de BCLK 4,165MHz em um barramento de 8,33MHz

Transferncia de Byte/Palavra
Transferncia de byte
Canais 0 a 3 Controlador escravo Endereo inicial par ou mpar Vias SA[23:0] alimentadas pelo sistema