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

Slides:



Advertisements
Apresentações semelhantes
Microcontroladores Uma visão geral.
Advertisements

Contadores e Registradores
Mapeamento de Entrada / Saída em Sistemas Digitais
Software Básico Entrada/Saída Capítulo 2 Mitsuo Takaki
Capitulo 6: Entrada e Saída
Exercícios de Dimensionamento de Memórias Cache
Introdução à Hierarquia de Memória
A Interface entre Processadores e Periféricos
Barramentos Introdução.
Arquiteturas de Barramento
Técnicas para operações E/S
Aula 16: Memória Principal e Memória Virtual
4. Input / Output.
Porta Paralela Prof.Almir.
Modelos de Troca de Dados em Nível Elétrico
ARQUITETURA DE COMPUTADORES II
Multithreading e multiprocessamento
Arquitetura de Sistemas Operacionais
Introdução à Informática
CISC e RISC.
Problemas com Entrada e Saída
Maria Aparecida Castro Livi
Introdução à Informática
Rganização de Computadores A Interface entre o Processador e os Periféricos Capítulo 8 – Patterson & Hennessy (seções 8.4 e 8.5) Organização de Computadores.
Sistemas Operacionais
Organização da Memória Principal
Componentes do Computador e noções de Arquitetura de Computadores
Professor Victor Sotero
Hard disk – disco rígido – winchester.
Processadores – Aula 3 Professor: André Luis Meneses Silva
Placa-mãe.
Arquitetura de Computadores
Processadores – Aula 3 Professor: André Luis Meneses Silva
Sistemas Operacionais I
Sistemas Operacionais
MANUTENÇÃO DE MICRO I A família de CPU X86 E os primeiros PCs
Introdução à Programação
MANUTENÇÃO DE MICRO.
Organização e Arquitetura de Computadores
Barramentos de Expansão ISA, PCI, AGP e PCI Express
BARRAMENTOS Componentes do grupo: Willian Barbosa da Costa
Sistemas Operacionais
Organização de Computadores
Arquiteturas Von Neumann e Harvard Computador Cleópatra
Barramento Ermeson Andrade.
Entrada e Saída (E/S ou I/O)
Agenda Modos de Endereçamento.
Agenda Entrada e Saída.
Infra-Estrutura de Software
DUAL CHANNEL Adinan Southier Soares Senai – São Lourenço do Oeste.
Sistemas Operacionais
Unidade Central De Processamento: Processador
ARQUITETURA DE COMPUTADORES II
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Técnico em Informática
Montagem e Manutenção de Computador I Curso Técnico em Rede de Computadores Aula 05.
Barramentos em Microcomputadores
Entrada e Saída (E/S).
Arquiteturas Von Neumann e Harvard Computador Cleópatra
Localidade Princípio da localidade è um programa acessa uma
Processador 2014/2015 Comunicação de Dados Ricardo Bento 12ºL.
Bruno Iran Ferreira Maciel
Arquitetura de computadores
Arquitetura de ComputadoresProf a Luiza Mourelle Entrada e Saída O processo de fornecer informações ou obtê-las dos computadores é chamado entrada/saída.
Modelos de Troca de Dados em Nível Elétrico ARQUITETURA DE COMPUTADORES II Prof. César Augusto M. Marcon.
Modos de Transferência Acesso Direto à Memória (DMA) ARQUITETURA DE COMPUTADORES II Prof. César Augusto M. Marcon.
Modos de Transferência Acesso Direto à Memória (DMA) ARQUITETURA DE COMPUTADORES II Prof. César Augusto M. Marcon.
 Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:  Somar e subtrair  Mover um dado de um local de armazenamento.
Modos de Transferência Acesso Direto à Memória (DMA)
Transcrição da apresentação:

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

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

DMA – Acesso Direto à Memória 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

Passos Genéricos na Transferência com DMA 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 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 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

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 micro-processador Assim que possível, a CPU 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 CPU libera BUSACK e continua executando instruções

Exercícios 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 1.000 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

Solução de Exercício 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 = 1.000 ciclos Tempo para programação do DMAC = 1.000 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

Exercícios 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

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

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 Uma vez programado DMAC, este envia sinal de HOLD para a CPU CPU conclui instrução corrente e envia HOLDACK DMAC recebendo HOLDACK tem acesso total ao barramento 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

Técnicas para Compartilhamento do Barramento entre CPU e DMAC 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 DMAC assincronamente requer barramento com DMAREQ CPU termina ciclo corrente e envia DMAACK, liberando barramento DMAC faz uma transferência e remove DMAREQ Terminada TODA transferência, DMAC avisa CPU por interrupção

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

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 0 16.7 MBps (Mega bytes por segundo) Ultra DMA 1 25.0 MBps Ultra DMA 2 33.3 MBps Ultra DMA 3 44.4 MBps Ultra DMA 4 66.7 MBps Ultra DMA 5 100.0 MBps Ultra DMA 6 133.0 MBps

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

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? 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 1.000 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?

Solução de Exercícios 4. RESPOSTA: Freqüência de operação = 50 MHz Período do relógio = 1 / 50 MHz = 20 ns Ciclos para programação do DMAC = 1.000 ciclos Tempo para programação do DMAC = 1.000 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 = 2.000 Tempo total = 2.000 * (20 us + 10 us) = 2.000 * 30 us = 60 ms A cada segundo o DMA consome 1000 ms  100% 60 ms  X X = 6 % da CPU

Exercícios 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?

Solução de Exercícios 5. 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 * 1.000 * 1.000 B * 80 ns = 40 ms CONCLUSÃO: Para este caso, não é interessante utilizar DMA