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

Slides:



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

Sistemas Operacionais
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
Modos de Transferência Acesso Direto à Memória (DMA)
A Interface entre Processadores e Periféricos
Arquitetura e organização de computadores.
Barramentos Introdução.
Técnicas para operações E/S
4. Input / Output.
Modelos de Troca de Dados em Nível Elétrico
ARQUITETURA DE COMPUTADORES II
Arquitetura de Sistemas Operacionais
Problemas com Entrada e Saída
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
Professor: Carlos Roberto da Silva Filho, M. Eng.
Componentes do Computador e noções de Arquitetura de Computadores
Processadores – Aula 3 Professor: André Luis Meneses Silva
Arquitetura de Computadores
Arquitetura de Computadores
Processadores – Aula 3 Professor: André Luis Meneses Silva
Sistemas Operacionais I
Sistemas Operacionais
Introdução à Programação
Tecnologias Especificas Informática
Prof. Felipe Ferreira de Oliveira
Fundamentos da Arquitetura de Computadores
Barramentos de Expansão ISA, PCI, AGP e PCI Express
Sistemas Operacionais
BARRAMENTOS Componentes do grupo: Willian Barbosa da Costa
Sistemas Operacionais
Sistemas Operacionais I
Organização de um computador
Barramento Ermeson Andrade.
Organização e Arquitetura de Computadores
Entrada e Saída (E/S ou I/O)
Agenda Entrada e Saída.
Infra-Estrutura de Software
DUAL CHANNEL Adinan Southier Soares Senai – São Lourenço do Oeste.
SISTEMAS OPERACIONAIS I
Unidade Central De Processamento: Processador
Sistemas Operacionais
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.
Sistemas Operacionais
Barramentos em Microcomputadores
Entrada e Saída (E/S).
Arquiteturas Von Neumann e Harvard Computador Cleópatra
Subsistema de Entrada e Saída do Kernel
Localidade Princípio da localidade è um programa acessa uma
DSC/CEEI/UFCG Introdução à Computação. DSC/CEEI/UFCG 2 Hardware – Memória  Componente de um sistema de computação cuja função é armazenar informações.
Processador 2014/2015 Comunicação de Dados Ricardo Bento 12ºL.
Bruno Iran Ferreira Maciel
Introdução à Engenharia de Computação
Funcionamento interno do computador
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.
Sistemas Operacionais IV – Gerenciamento de E/S
ARQUITETURA DE COMPUTADORES Nível do Conjunto de Instruções
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Slots, Placa-Mãe, USB e Fontes. Nomes: Daniel, Dhiego e Otávio.
Modelos de Troca de Dados em Nível Elétrico ARQUITETURA DE COMPUTADORES II Prof. César Augusto M. Marcon.
Por Cássio Mello e André Luis.  É a parte inteligente do circuito, onde sinais de controle serão recebidos e enviados e o processamento será efetuado.
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 Prof. César Augusto M. Marcon

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 / 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 / 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 / 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 / 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 / 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 / 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 / 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 / 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 / 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 / 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 / 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 Ultra DMA MBps

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

16 / 18 Exercícios 5.Fazer um exercício que compare o uso do modo entrelaçado com o modo por blocos em relação ao tempo para efetuar a transferência. Pode ser o exercício 1 (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?)

17 / 18 Exercícios 6.(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.

18 / 18 Resposta de Exercícios 6.(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