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

Slides:



Advertisements
Apresentações semelhantes
Software Básico Entrada/Saída Capítulo 2 Mitsuo Takaki
Advertisements

Modos de Transferência Acesso Direto à Memória (DMA)
Técnicas para operações E/S
ARQUITETURA DE COMPUTADORES II
Arquitetura de Sistemas Operacionais
Sistemas Operacionais I
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.
A CPU E SUA EVOLUÇÃO. CPU (Central Processing Unit ou Unidade Central de Processamento)  DEFINIÇÕES:  A CPU é o hardware principal do computador; 
Sistema Multiutilizador
Wireshark Captura de Protocolos da camada de aplicação Captura de Protocolos da camada de aplicação Maicon de Vargas Pereira Maicon de Vargas Pereira.
Capítulo 10 Conjuntos de instruções: Características e funções William Stallings Arquitetura e Organização de Computadores 8 a Edição © 2010 Pearson Prentice.
Introdução a Ciência da Computação Aula 05 Prof. Francisco G. Rodrigues.
Administração de Sistemas Operacionais 1 -Windows Processos Curso Técnico em Redes de Computadores Prof. Emerson Felipe.
Como funciona o processador Nomes: Fernando, Maurício, William Turma: 1J-1PC1 Disciplina: Fundamentos da Computação Curso: Técnico em Programação de Computadores.
ARQUITETURA AULA 3 Prof. Luiz Ricardo Lima 2º sem de 2016.
Atividades em sala (6) Componentes de armazenamento. HD
Gerência de Arquivos.
Manutenção de Periféricos II
IFAC1 Hardware e software.
Organização e Arquitetura de Computadores II
PSI3441 – Arquitetura de Sistemas Embarcados
Barramentos Alberto Felipe Friderichs Barros.
Caracterização do equipamento
Modelos de Comunicação Digital
Gestão de periféricos Varrimentos vs Interrupções Cache
Mapeamento de Entrada e Saída em Sistemas Digitais
Organização de Computadores 2º Semestre Aula 12 – Parte 2 Prof
Barramento ou Bus de um Sistema Informático
INTRODUÇÃO Estendendo LANs.
SISTEMAS OPERACIONAIS AULA 01 - Introdução aos Sistemas Operacionais
Administração de Gerência de servidores
Hardware É a parte física de um sistema de computação, ou seja, todos os elementos materiais que o constituí (circuitos eletrônicos, dispositivos mecânicos,
Introdução ao Módulo Arthur Albertin
Sistemas Operativos Multiprogramação; Multiplexação; Memória Física; Memória virtual; Trabalho/Job - Processo/Process/Task - Thread.
TRABALHO REALIZADO POR Fábio Rodrigues, Sandro Garcia, Rafael Lourenço
Organização e Arquitetura de Computadores 2º Semestre Aula 1 Prof
Administração de Sistemas Operacionais I
Arquitetura e organização de computadores
1 Introdução aos COMPUTADORES Profª Alda Vagarinho.
Como funciona o computador? Modulo 1 AULA 3 Noções de informática Prof.: Alexlima.
NOÇÕES DE HARDWARE.
Arquitetura de Barramentos
Introdução a Redes v5.1 Capítulo 5: Ethernet. © 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas.
Notas de aula baseadas no livro de William Stallings Arquitetura e Organização de Computadores 8a Edição Capítulo 1 Introdução.
Aplicações de Flip-Flops Registradores
Tipos de Memória Prof. André Luís Del Mestre Martins
Caracterização do equipamento
Gerência de Dispositivos e Sistemas de Arquivos
Tecnologia da Informação Visão Geral sobre Informática
Funcionamento básico de um processador de 8 bits
Sistemas Operacionais I
COMPONENTES DO COMPUTADOR E SUAS FUNÇÕES. PLACA MÃE A placa-mãe é o principal componente de um computador, pois ela é responsável por interligar todos.
Programação Estruturada Aula 1 Prof. Jorge Barreto Julho 2018.
Sistemas Operacionais Aula 3
Estrutura do Sistema Operacional
Unidades de Medidas na Informática
Microprocessadores e Microcontroladores
Arquitetura de Computadores
Instalação e Manutenção de Computadores Técnico em Informática MAI1
MODELO DE REFERÊNCIA OSI
Organização de um Computador
Hierarquia de memória Memória Interna. Memória A.W. Burks, H.H. Goldstine e J. von Neumann Preliminary Discussion of the Logical Design of na Eletronic.
Conceito de Hardware e Software. Hardware Hardware – São os dispositivos físicos de um Computador (placas mãe, memorias auxiliar e principal, periféricos.
Placa Mãe Professor Roney sousa. O que é a Placa Mãe É a maior e mais importante placa de nosso computador, onde todos os demais componentes são ligados.
Hardware QuickPath Interconnect (QPI) e HyperTransport
Questionário Cada questão valerá 0,1 décimo a mais na nota de umas das provas anteriores; Ordem de respostas: lista de chamada. Caso o aluno chamado não.
Arquitectura de Computadores
Hardware – Montagem e Manutenção Educador Prof. Alexsand Farias.
Sistema Computacional Integração de componentes atuando como uma entidade, com o propósito de processar dados Hardware: Componente físico de um sistema.
Transcrição da apresentação:

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

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

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

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

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

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

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 = 1.500 ciclos Tempo para programação do DMAC = 1.500 ciclos * 20 ns = 30 us Ciclos para interrupção de DMA = 1.000 ciclos Tempo para interrupção de DMA = 1.000 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 = 2.000 * (30 us + 20 us) = 2.000 * 50 us = 100 ms A cada segundo o DMA consome 1000 ms  100% 100 ms  X = 10 % do processador

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

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

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

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

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

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

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 2.048 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? (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?

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.

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