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.