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)

Apresentações semelhantes


Apresentação em tema: "Modos de Transferência Acesso Direto à Memória (DMA)"— Transcrição da apresentação:

1 Modos de Transferência Acesso Direto à Memória (DMA)
Organização e Arquitetura de Computadores II Modos de Transferência Acesso Direto à Memória (DMA) Capítulo 10 do Monteiro Capítulo 7.5 do Stallings Última alteração: 17/08/2017 Prof. Ney Laert Vilar Calazans Baseado em notas de aulas originais do Prof. Dr. César Marcon

2 DMA – Acesso Direto à Memória
Problema Interrupção  não requer que processador aguarde eventos, mas Processador responsável por transferências Solução Usar mecanismo que desonere o processador  Direct Memory Access (DMA) Definição de DMA Modo de transferência entre máquinas com características programadas e não programadas, que libera o uso do processador Classificação

3 DMA – Acesso Direto à Memória
Funcionamento Dispositivo controlador de DMA (DMA Controller ou DMAc) é responsável pela transferência de dados Características de funcionamento Mecanismos de interrupção  ainda utilizados Ao fim de E/S, ou devido a exceções Comparado com polling e interrupção, DMA  interface de periféricos c/ grande volume/vazão de dados Durante operação  DMAc assume comunicação c/ memória - realiza transferência(s) entre periférico e memória Considerações Se processador precisar do barramento durante DMA  atrasos, pois memória ocupada Usando caches (processador)  desempenho melhora  processador pode não precisar esperar liberação do barramento

4 Passos Genéricos na Transferência com DMA
Processador programa DMAc com Identificação do dispositivo que solicitou DMA Operação a ser realizada (escrita/leitura) Endereço origem e destino (da memória principal e do periférico) Número de bytes a transmitir DMAc assume barramento, iniciando a operação Transferência inicia quando dado está disponível. DMAc fornece o endereço de leitura ou escrita. Se requisição inclui múltipla transferências, DMAc gera sequência de endereços (de memória) DMA pode transferir grande volume de dados entre periférico e memória, sem interromper o processador Concluída transferência por DMA, DMAc interrompe processador que poderá verificar se operação foi realizada com sucesso interrogando o DMAc Durante transferência, pode haver exceções (e.g., erros de escrita/leitura) Uma vez programado, DMAc opera em paralelo com o processador

5 Arquitetura Exemplo de DMA Transferência de Dados Exemplo
Para os dados irem de um dispositivo para memória: Dispositivo assinala DMAREQ para o DMAc DMAc assinala BUSREQ ao processador Assim que possível, processador assinala BUSACK DMAc indica endereço para escrever os dados no barramento de endereço DMAc assinala DMAACK para o dispositivo e WRITE para a memória Dispositivo utiliza o barramento de dados DMAc libera DMAACK, o endereço de barramento e BUSREQ Processador libera BUSACK e continua executando instruções

6 Exercício Resolvido Qual fração de tempo do processador é consumido na operação de DMA considerando as informações que seguem? Processador operando a 50 MHz Disco transferindo dados a 2 MBps continuamente, utilizando DMA Duração da programação do controlador de DMA pelo processador necessita 1.500 ciclos de relógio Duração da rotina de interrupção para tratar término do DMA é de 1.000 ciclos de relógio Cada operação de transferência do disco manipula 1 KB

7 Solução do Exercício Solução: Frequê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 = 30 us Ciclos para interrupção de DMA = ciclos Tempo para interrupção de DMA = ciclos * 20 ns = 20 us Taxa de transferência de dados do HD = 2 MBps Volume de transferência por operação = 1 KB Número de operações necessárias por segundo = 2 MB / 1 KB = 2.000 Tempo total = * (30 us + 20 us) = * 50 us = 100 ms A cada segundo o DMA consome 1000 ms  100% 100 ms  X = 10 % do processador

8 Exercício Resolvido Quanto tempo de processamento 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 o processador seja de 32 bits O processador consegue transferir um dado do HD para a memória a cada 6 ciclos de relógio

9 Solução do Exercício 2. Solução: Período do relógio = 20 ns
Número de ciclos para transferir um dado = 6 Tempo para transferir um dado = 6 * 20 ns = 120 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 * 120 ns = 60 ms CONCLUSÃO: Para este caso, não é interessante utilizar DMA, pois o tempo para programá-lo somado ao de interrupção (60 ms) é maior que o consumido apenas pelo processador

10 Técnicas para Compartilhamento do Barramento entre Processador 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 Uma vez programado DMAC, este envia sinal de HOLD para o processador Processador conclui instrução corrente e envia HOLDACK DMAC recebendo HOLDACK tem acesso total ao barramento Ao término da transferência DMAC remove HOLD Entrelaçado (interleaved) DMAC disputa barramento com processador para fazer acesso à memória Controlador do barramento pode dar prioridade a processador para evitar atrasos

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

12 Estudos de Caso de DMA DMA em PC (entre memória principal e placa de som) com 8237A Processador programa DMAC DMAC recebe da processador sinal para iniciar DMA DMAC realiza leitura na RAM e envia para a placa Processador 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 Estudos de Caso de DMA Fast Multiword DMA Ultra 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 Ultra DMA MBps

14 Estudos de Caso de DMA DMA no Cell
Cell é um multiprocessador integrado em um único CI (Multi-Processor 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 blocos DMA no Cell suporta coerência de cache

15 Exercícios 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 Em que casos a utilização do método de E/S tipo DMA é recomendada? Explique o procedimento “roubo de ciclo” (ou cycle stealing) utilizado em DMAs. Como ele pode ser otimizado? (Extraído do Tanembaum) Um computador usa DMA para ler de seu disco. O disco tem 64 setores de 512 bytes por trilha. O tempo de rotação do disco é 16ms. O barramento tem 16 bits de largura e transferências do barramento levam 500ns cada. Na média, uma instrução do processador requer dois ciclos de barramento. De quanto é o atraso causado pelo DMA?

16 Exercícios (POSCOMP 2011, Questão 40) O gerenciamento dos sistemas de entrada/saída de dados é normalmente implementado em duas camadas: uma responsável pelo controle do dispositivo e outra, pelo gerenciamento de entrada/saída. Por que isso representa um projeto eficiente? a) Porque permite o uso de duas linguagens de programação na sua implementação, pois o controle do dispositivo exige a programação em linguagem de máquina b) Porque permite separar as operações de entrada das operações de saída de dados c) Porque permite o compartilhamento dos dispositivos de entrada/saída através do gerenciamento de entrada/saída d) Porque permite evitar o uso de DMA para a operação de entrada/saída e) Porque permite separar características de hardware de características funcionais do dispositivo de entrada/saída.

17 Resposta de Exercícios
(POSCOMP 2011, Questão 40) O gerenciamento dos sistemas de entrada/saída de dados é normalmente implementado em duas camadas: uma responsável pelo controle do dispositivo e outra, pelo gerenciamento de entrada/saída. Por que isso representa um projeto eficiente? a) Porque permite o uso de duas linguagens de programação na sua implementação, pois o controle do dispositivo exige a programação em linguagem de máquina b) Porque permite separar as operações de entrada das operações de saída de dados c) Porque permite o compartilhamento dos dispositivos de entrada/saída através do gerenciamento de entrada/saída d) Porque permite evitar o uso de DMA para a operação de entrada/saída e) Porque permite separar características de hardware de características funcionais do dispositivo de entrada/saída


Carregar ppt "Modos de Transferência Acesso Direto à Memória (DMA)"

Apresentações semelhantes


Anúncios Google