O FUNCIONAMENTO DMA BÁSICO
Por: Rodrigo Nagy • 5/9/2017 • Trabalho acadêmico • 2.948 Palavras (12 Páginas) • 389 Visualizações
DMA - direct memory access
A técnica DMA I/O fornece acesso direto à memória enquanto o microprocessador é desativado temporariamente. Isso permite que os dados sejam transferidos entre a memória e o dispositivo de I/O a uma taxa limitada apenas pela velocidade dos componentes de memória no sistema ou no controlador DMA. A velocidade de transferência DMA pode aproximar-se de 33 a 150 M-bytes de taxa de transferência com os componentes de memória RAM de alta velocidade de hoje. As transferências de DMA são usadas para muitos propósitos, mas os mais comuns são a atualização de DRAMs, utilizar a tela para exibições de vídeo e o sistema de memória de disco de leitura e gravação. A transferência DMA também é usada para fazer transferências de memória para memória de alta velocidade. A memória de disco inclui disco flexível, fixo e armazenamento de disco óptico. Os sistemas de vídeo incluem monitores digitais e analógicos.
FUNCIONAMENTO DMA BÁSICO
Dois sinais de controle são usados para solicitar e reconhecer uma transferência de acesso direto à memória (DMA) no sistema baseado em microprocessador. O pino HOLD é uma entrada que é usada para solicitar uma ação DMA e o pino HLDA é uma saída que reconhece a ação DMA. A Figura 13-1 mostra o tempo que é tipicamente encontrado nestes dois pinos de controle DMA.
[pic 1]
Sempre que a entrada HOLD é colocada em um nível lógico 1, uma ação DMA (hold) é solicitada. O microprocessador responde, dentro de alguns perídos de clock, suspendendo a execução do programa e colocando seu endereço, dados e barramento de controle em seu nível alto - estados de impedância. O estado de alta impedância faz com que o microprocessador apareça como se tivesse sido removido do seu soquete. Este estado permite que dispositivos externos de I/O ou outros microprocessadores obtenham acesso aos barramentos do sistema para que a memória possa ser acessada diretamente.
Como o diagrama de tempo indica, HOLD é amostrado no meio de qualquer ciclo de clock. Assim, a espera pode ter efeito a qualquer momento durante a operação de qualquer instrução no conjunto de instruções do microprocessador. Assim que o microprocessador reconhece a espera, pára de executar o software e entra em ciclos de espera. Note que a entrada HOLD tem uma prioridade mais alta do que as entradas de interrupção NMI ou INTR. As interrupções entram em vigor no final de uma instrução, enquanto uma HOLD tem efeito em meio a uma instrução. O único pino do microprocessador que tem uma prioridade mais alta HOLD é o pino RESET. Observe que a entrada HOLD pode não estar ativa durante um RESET ou a reinicialização não é garantida.
O sinal HLDA torna-se activo para indicar que o microprocessador de facto colocou os seus buses no seu estado de alta impedância, como pode ser visto no diagrama de temporização. Observe que há alguns ciclos de clock entre o tempo que HOLD muda e até HLDA muda. A saída HLDA é um sinal para o dispositivo externo solicitante de que o microprocessador tenha abandonado o controle de sua memória e do espaço de I / O. Você pode chamar a entrada HOLD uma entrada de solicitação DMA e a saída HLDA um sinal de concessão DMA.
Definições DMA básicas
Normalmente, os acessos de memória directa ocorrem entre um dispositivo de I/O e memória sem o uso do microprocessador. Uma leitura DMA transfere dados da memória para o dispositivo de I/O. Uma gravação DMA transfere dados de um dispositivo de I/O para a memória. Em ambas as operações, a memória e a I/O são controladas simultaneamente, razão pela qual o sistema contém sinais separados de memória e de I/O. Esta estrutura de barramento de controle especial do microprocessador permite transferências DMA. Uma leitura DMA faz com que os sinais MRDC e IOWC sejam ativados simultaneamente, transferindo dados da memória para o dispositivo de I/O. Uma escrita DMA faz com que os sinais MWTC e IORC para ambos ativar. Estes sinais de barramento de controle estão disponíveis para todos os microprocessadores da família Intel, exceto o sistema 8086/8088. O 8086/8088 requer a sua geração com um controlador de sistema ou um circuito como o ilustrado na Figura 13-2. O controlador DMA fornece a memória com seu endereço e um sinal do controlador (DACK) seleciona o dispositivo de I/O durante a transferência DMA.
A velocidade de transferência de dados é determinada pela velocidade do dispositivo de memória ou por um controlador DMA que muitas vezes controla as transferências de DMA. Se a velocidade da memória for 50 ns, as transferências de DMA ocorrem em taxas de até 1/50 ns ou 20 M-bytes por segundo. Se o controlador DMA em um sistema funciona a uma taxa máxima de 15 MHz e ainda usamos 50 ns memória, a taxa de transferência máxima é 15 MHz porque o controlador DMA é mais lento do que a memória. Em muitos casos, o controlador de DMA diminui a velocidade do sistema quando transferências DMA ocorrerem.
[pic 2]
CURIOSIDADE:
Devido ao switch para transferências de dados em série em sistemas de computadores modernos, o DMA está se tornando menos importante. O barramento PCI Express, que é serial, transfere dados a taxas que excedem as transferências DMA. Mesmo a interface SATA (serial ATA) para unidades de disco usa transferências seriais à taxa de 300 Mbps, que substituiu as transferências DMA para unidades de disco rígido. As transferências em série em placas-mãe (motherboards) entre componentes que utilizam técnicas em série podem aproximar-se a 20 Gbps para a conexão PCI Express.
O CONTROLADOR DMA 8237
O controlador DMA 8237 fornece a memória e I / O com sinais de controle e informações de endereço de memória durante a transferência DMA. O 8237 é na verdade um microprocessador de propósito especial cujo trabalho é a transferência de dados de alta velocidade entre a memória ea E / S. A Figura 13-3 mostra o diagrama de pinos e blocos do controlador programável DMA 8237. Embora este dispositivo não apareça como um componente discreto em modernos sistemas baseados em microprocessadores, ele aparece dentro dos conjuntos de chips de controlador do sistema encontrados na maioria dos sistemas. Embora não seja descrito devido à sua complexidade, o conjunto de chips moderno (ISP ou controlador de periféricos integrados) e seu conjunto integrado de dois controladores DMA são programados quase exatamente (não suporta transferências de memória para memória) como o 8237. O ISP Também fornece um par de controladores de interrupção programáveis 8259A para o sistema.
...