A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Modos de Transferência Acesso Direto à Memória (DMA) ARQUITETURA DE COMPUTADORES II Prof. César Augusto M. Marcon.

Apresentações semelhantes


Apresentação em tema: "Modos de Transferência Acesso Direto à Memória (DMA) ARQUITETURA DE COMPUTADORES II Prof. César Augusto M. Marcon."— Transcrição da apresentação:

1 Modos de Transferência Acesso Direto à Memória (DMA) ARQUITETURA DE COMPUTADORES II Prof. César Augusto M. Marcon

2 2 / 18 DMA – Acesso Direto à Memória Problema –Interrupção não necessita que CPU aguarde por eventos –Porém CPU é responsável por realizar transferência de dados Solução –DMA Funcionamento –Dispositivo controlador (DMA Controller - DMAC) é responsável pela transferência de dados Características de funcionamento –Mecanismos de interrupção continuam sendo utilizados Mas apenas no término de um evento de E/S, ou na ocorrência de erros –Comparando com polling e interrupção, DMA deve ser utilizado para interface de periféricos que necessitem de grande vazão –Durante operação DMAC se torna mestre do barramento e controla transferência entre E/S e Memória

3 3 / 18 Considerações –Se a CPU precisar do barramento durante o DMA, ocorrerá atraso, uma vez que a memória está ocupada –Utilizando caches no processador o desempenho irá melhorar, uma vez que o processador não precisará aguardar pela liberação do barramento DMA – Acesso Direto à Memória

4 4 / 18 Passos Genéricos na Transferência com DMA 1.CPU programa DMAC com –Identificação do dispositivo que solicitou DMA –Operação a ser realizada no dispositivo (escrita/leitura) –Endereço origem e destino (da memória principal e do periférico) –Número de bytes a serem transmitidos 2.DMAC assume barramento, iniciando a operação –Transferência inicia quando dado está disponível. O DMAC fornece o endereço de leitura ou escrita. Se requisição necessitar mais de uma transferência, o DMAC gera próximo endereço de memória –Por meio deste mecanismo o DMA pode transferir milhares de bytes do entre periférico e memória, sem interromper a CPU 3.Concluída transferência de DMA, DMAC interrompe CPU que poderá verificar se operação foi realizada com sucesso examinando memória ou interrogando DMAC Uma vez programado DMAC, DMAC e CPU operam em paralelo

5 5 / 18 Arquitetura Exemplo de DMA Transferência de Dados Exemplo Para os dados irem de um dispositivo para memória: 1.Dispositivo assinala DMAREQ para o DMAC 2.DMAC assinala BUSREQ ao micro-processador 3.Assim que possível, a CPU assinala BUSACK 4.DMAC indica endereço para escrever os dados no barramento de endereço 5.DMAC assinala DMAACK para o dispositivo e WRITE para a memória 6.Dispositivo utiliza o barramento de dados 7.DMAC libera DMAACK, o endereço de barramento e BUSREQ 8.CPU libera BUSACK e continua executando instruções

6 6 / 18 Exercícios 1.Qual fração de tempo da CPU é consumida na operação de DMA considerando as informações que seguem? CPU operando a 50 MHz HD transferindo dados a 2 MBps continuamente, utilizando DMA Duração da programação do controlador de DMA pela CPU necessita ciclos de relógio Duração da rotina de interrupção para tratar término do DMA é de 500 ciclos de relógio Cada operação de transferência do disco manipula 4 KB

7 7 / 18 Solução de Exercício 1.Solução: Freqüência de operação = 50 MHz Período do relógio = 1 / 50 MHz = 20 ns Ciclos para programação do DMAC = ciclos Tempo para programação do DMAC = ciclos * 20 ns = 20 us Ciclos para interrupção de DMA = 500 ciclos Tempo para interrupção de DMA = 500 ciclos * 20 ns = 10 us Taxa de transferência de dados do HD = 2 MBps Volume de transferência por operação = 4 KB Número de operações necessárias por segundo = 2 MB / 4 KB = 500 Tempo total = 500 * (20 us + 10 us) = 500 * 30 us = 15 ms A cada segundo o DMA consome 1000 ms 100% 15 ms X = 1,5 % da CPU

8 8 / 18 Exercícios 2.Quanto tempo de CPU consome a mesma transferência de dados do problema anterior com as informações que seguem? Supondo agora que o barramento de dados entre o HD e a CPU seja de 32 bits A cada ciclo, a CPU consegue transferir um dado do HD para a memória

9 9 / 18 Solução de Exercícios 2. Solução: Período do relógio = 20 ns Número de ciclos para transferir um dado = 1 Tempo para transferir um dado = 1 * 20 ns = 20 ns Taxa de transferência de dados do HD = 2 MBps Número de bytes de um dado = 32 / 8 = 4 Número de dados transferidos por segundo = 2 MB / 4 B = 0,5 M Tempo para transferir todos os bytes = 0,5 M * 20 ns = 10 ms CONCLUSÃO: Para este caso, não é interessante utilizar DMA, pois o tempo para programá-lo somado ao de interrupção (15ms) é maior que o consumido apenas pela CPU

10 10 / 18 Técnicas para Compartilhamento do Barramento entre CPU e DMAC Halt (Transferência de Bloco) –Método simples, onde DMAC suspende processador (ganha barramento) –Usa pino de HOLD –CPU pode realizar operações que não fazem acesso ao barramento –Passos 1.Uma vez programado DMAC, este envia sinal de HOLD para a CPU 2.CPU conclui instrução corrente e envia HOLDACK 3.DMAC recebendo HOLDACK tem acesso total ao barramento 4.Ao término da transferência DMAS remove HOLD Entrelaçado (interleaved) –DMAC disputa barramento com CPU para fazer acesso à memória –Controlador do barramento pode dar prioridade a CPU para evitar atrasos

11 11 / 18 Roubo de Ciclo (cycle stealing) –Envia palavra a palavra (ou bloco a bloco) –DMAC requer barramento e CPU entrega entre ciclos de máquina –Passos 1.DMAC assincronamente requer barramento com DMAREQ 2.CPU termina ciclo corrente e envia DMAACK, liberando barramento 3.DMAC faz uma transferência e remove DMAREQ 4.Terminada TODA transferência, DMAC avisa CPU por interrupção Técnicas para Compartilhamento do Barramento entre CPU e DMAC

12 12 / 18 Estudos de Caso de DMA DMA em PC (entre memória principal e placa de som) com 8237A –CPU programa DMAC –DMAC recebe da CPU sinal para iniciar DMA –DMAC realiza leitura na RAM e envia para a placa –CPU realiza em paralelo outras operações que não envolvam barramento Antes de iniciar uma transferência é necessário definir –Página da memória a ser utilizada –Deslocamento na página –Quantidade de dados a ser transferida Limitações do DMA no PC –Máximo 64 KB por vez (pois contador de bytes do DMAC contém 16 bits) –Só pode transferir dentro da mesma página –Velocidade: apenas 6 MHz (para a época do XT era suficiente), logo para processador com mais de 200 MHz não faz sentido utilizar este padrão de DMA

13 13 / 18 Estudos de Caso de DMA Fast Multiword DMA –Padrão de DMA permitido pelo chipset Triton da Intel que utiliza um modo de transferência de dados entre disco rígido e memória –Este modo transfere 48 bits por vez ao invés dos 16 bits originais –Transferência pode chegar a 16,6 MB/s Ultra DMA –Transfere dados no modo de rajadas (burst mode) –Desenvolvido pela Quantum Corporation e Intel para tornar-se um padrão da indústria. –Introduzido em computadores no final de 1997 com o objetivo de torná-lo um padrão de interface para disco rígido –Evoluiu conforme as interfaces ATA (AT Attachment) Ultra DMA MBps (Mega bytes por segundo) Ultra DMA MBps Ultra DMA MBps Ultra DMA MBps Ultra DMA MBps Ultra DMA MBps Ultra DMA MBps

14 14 / 18 Estudos de Caso de DMA DMA no Cell –Cell é um multiprocessador integrado em um único CI (MultiProcessor System-on-Chip - MPSoC), composto por 9 processadores –Desempenho chega a 200 GBps (Gigabytes por segundo) –Transferência em um único bloco de até 16KBytes ou uma lista de 2 a 2048 blocos –DMA no Cell suporta coerência de cache

15 15 / 18 Exercícios 1.Qual a principal aplicação do método de E/S tipo DMA? Mostre como um dispositivo DMA pode ser programado para realizar a transferência entre dispositivos 2.Em que casos a utilização do método de E/S tipo DMA é recomendada? 3.Explique o procedimento roubo de ciclo (ou cycle stealing) utilizado em DMAs. Como ele pode ser otimizado? 4.Supor uma CPU operando a 50 MHz, com HD transferindo dados a 2 MBps continuamente, utilizando DMA. Se a duração da programação do controlador de DMA pela CPU necessita ciclos de clock, a duração da rotina de interrupção para tratar término do DMA é de 500 ciclos de relógio, e cada operação de transferência do disco manipula 4 KB, qual a fração de tempo da CPU é consumida na operação?

16 16 / RESPOSTA: Freqüência de operação = 50 MHz Período do relógio = 1 / 50 MHz = 20 ns Ciclos para programação do DMAC = ciclos Tempo para programação do DMAC = ciclos * 20 ns = 20 us Ciclos para interrupção de DMA = 500 ciclos Tempo para interrupção de DMA = 500 ciclos * 20 ns = 10 us Taxa de transferência de dados do HD = 2 MBps Volume de transferência por operação = 4 KB Número de operações necessárias por segundo = 2 MB / 4 KB = 2 K = Tempo total = * (20 us + 10 us) = * 30 us = 60 ms A cada segundo o DMA consome 1000 ms 100% 60 ms XX = 6 % da CPU Solução de Exercícios

17 17 / 18 Exercícios 5.Supondo agora que o barramento de dados entre o HD e a CPU seja de 32 bits, e a cada 4 ciclos, a CPU consegue transferir um dado do HD para a memória, quanto tempo de CPU consumiria a mesma transferência de dados?

18 18 / RESPOSTA: Período do clock = 20 ns Número de ciclos para transferir um dado (32 bits) = 4 Tempo para transferir um dado (32 bits) = 4 * 20 ns = 80 ns Taxa de transferência de dados do HD = 2 MBps Número de dados necessários para transferência por segundo = 2 MB / 4 B = 0,5 M Tempo para transferir todos os bytes = 0,5 M * 80 ns = 0,5 * * B * 80 ns = 40 ms CONCLUSÃO: Para este caso, não é interessante utilizar DMA Solução de Exercícios


Carregar ppt "Modos de Transferência Acesso Direto à Memória (DMA) ARQUITETURA DE COMPUTADORES II Prof. César Augusto M. Marcon."

Apresentações semelhantes


Anúncios Google