Microprocessador - 8257 DMA Controller

DMA significa acesso direto à memória. Ele é projetado pela Intel para transferir dados na taxa mais rápida. Ele permite que o dispositivo transfira os dados diretamente de / para a memória sem qualquer interferência da CPU.

Usando um controlador DMA, o dispositivo solicita que a CPU mantenha seus dados, endereço e barramento de controle, de forma que o dispositivo esteja livre para transferir dados diretamente de / para a memória. A transferência de dados DMA é iniciada somente após o recebimento do sinal HLDA da CPU.

Como as operações de DMA são realizadas?

A seguir está a sequência de operações realizadas por um DMA -

  • Inicialmente, quando qualquer dispositivo precisa enviar dados entre o dispositivo e a memória, o dispositivo deve enviar a solicitação DMA (DRQ) ao controlador DMA.

  • O controlador DMA envia a solicitação Hold (HRQ) para a CPU e espera que a CPU confirme o HLDA.

  • Em seguida, o microprocessador tri-estados todos os barramentos de dados, barramentos de endereços e barramentos de controle. A CPU deixa o controle do barramento e reconhece a solicitação HOLD por meio do sinal HLDA.

  • Agora a CPU está no estado HOLD e o controlador DMA deve gerenciar as operações sobre barramentos entre a CPU, memória e dispositivos de E / S.

Características de 8257

Aqui está uma lista de algumas das características proeminentes do 8257 -

  • Possui quatro canais que podem ser usados ​​em quatro dispositivos de E / S.

  • Cada canal possui endereço de 16 bits e contador de 14 bits.

  • Cada canal pode transferir dados de até 64kb.

  • Cada canal pode ser programado de forma independente.

  • Cada canal pode realizar transferências de leitura, transferência de gravação e operações de transferência de verificação.

  • Ele gera um sinal MARK para o dispositivo periférico de que 128 bytes foram transferidos.

  • Requer um relógio de fase única.

  • Sua frequência varia de 250Hz a 3MHz.

  • Ele opera em 2 modos, ou seja, Master mode e Slave mode.

Arquitetura 8257

A imagem a seguir mostra a arquitetura do 8257 -

Descrição do pino 8257

A imagem a seguir mostra o diagrama de pinos de um controlador 8257 DMA -

DRQ 0 -DRQ3

Estas são as quatro entradas de solicitação de DMA de canal individual, que são usadas pelos dispositivos periféricos para usar os serviços de DMA. Quando o modo de prioridade fixa é selecionado, DRQ 0 tem a prioridade mais alta e DRQ 3 tem a prioridade mais baixa entre eles.

DACK o - DACK 3

Estas são as linhas de reconhecimento de DMA ativo-baixo, que atualizam o periférico solicitante sobre o status de sua solicitação pela CPU. Essas linhas também podem atuar como linhas estroboscópicas para os dispositivos solicitantes.

D o - D 7

Estas são linhas de dados bidirecionais que são usadas para fazer a interface do barramento do sistema com o barramento de dados interno do controlador DMA. No modo escravo, ele transporta palavras de comando para 8257 e palavra de status de 8257. No modo mestre, essas linhas são usadas para enviar byte superior do endereço gerado para o latch. Este endereço é posteriormente travado usando o sinal ADSTB.

EU OU

É uma linha de entrada tri-state bidirecional baixa ativa, que é usada pela CPU para ler os registros internos do 8257 no modo Slave. No modo mestre, é usado para ler dados de dispositivos periféricos durante um ciclo de gravação de memória.

IOW

É uma linha de três estados bidirecional baixa ativa, que é usada para carregar o conteúdo do barramento de dados para o registrador de modo de 8 bits ou byte superior / inferior de um registrador de endereço DMA de 16 bits ou registrador de contagem de terminal. No modo mestre, é usado para carregar os dados para os dispositivos periféricos durante o ciclo de leitura da memória DMA.

CLK

É um sinal de freqüência de clock necessário para a operação interna do 8257.

REDEFINIR

Este sinal é usado para RESET o controlador DMA desabilitando todos os canais DMA.

A o - A 3

Estas são as quatro linhas de endereço menos significativas. No modo escravo, atuam como uma entrada, que seleciona um dos registros a ser lido ou escrito. No modo mestre, são as quatro linhas de saída de endereço de memória menos significativas geradas pelo 8257.

CS

É uma linha de seleção de chip baixo-ativo. No modo Slave, ele habilita as operações de leitura / gravação de / para 8257. No modo mestre, ele desabilita as operações de leitura / gravação de / para 8257.

A 4 - A 7

Estes são o nibble superior do endereço de byte inferior gerado pelo DMA no modo mestre.

PRONTO

É um sinal de entrada assíncrono ativo-alto, que torna o DMA pronto inserindo estados de espera.

HRQ

Este sinal é usado para receber o sinal de solicitação de retenção do dispositivo de saída. No modo escravo, é conectado com uma linha de entrada DRQ 8257. No modo Master, é conectado com a entrada HOLD da UCP.

HLDA

É o sinal de confirmação de retenção que indica ao controlador DMA que o barramento foi concedido ao periférico solicitante pela CPU quando ele é definido como 1.

MEMR

É o sinal de leitura de pouca memória, que é usado para ler os dados dos locais de memória endereçados durante os ciclos de leitura de DMA.

MEMW

É o sinal de três estados ativo-baixo que é usado para gravar os dados no local da memória endereçada durante a operação de gravação DMA.

ADST

Este sinal é usado para converter o byte mais alto do endereço de memória gerado pelo controlador DMA nas travas.

AEN

Este sinal é usado para desabilitar o barramento de endereço / barramento de dados.

TC

Significa 'Terminal Count', que indica o ciclo atual de DMA para os dispositivos periféricos presentes.

MARCA

A marca será ativada a cada 128 ciclos ou múltiplos inteiros desde o início. Indica que o ciclo DMA atual é o 128º ciclo desde a saída MARK anterior para o dispositivo periférico selecionado.

V cc

É o sinal de potência necessário para a operação do circuito.