Aula 08 - Entrada e Saída-3-27.pdf

Full Transcript

Entrada/Saída Introdução Além do processador e um conjunto de módulos de memória, o terceiro elemento chave de um sistema de computação é um conjunto de módulos de E/S. Cada módulo se conecta ao barramento do sistema central e controla um ou mais dispositivos periféricos. Um módu...

Entrada/Saída Introdução Além do processador e um conjunto de módulos de memória, o terceiro elemento chave de um sistema de computação é um conjunto de módulos de E/S. Cada módulo se conecta ao barramento do sistema central e controla um ou mais dispositivos periféricos. Um módulo de E/S não é simplesmente um conjunto de conectores mecânicos que conectam um dispositivo fisicamente ao barramento do sistema. Em vez disso, o módulo de E/S contém uma lógica para realizar uma função de comunicação entre o periférico e o barramento. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Entrada/Saída Introdução Por que não se conectam os periféricos diretamente no barramento do sistema? ○ Existe uma grande variedade de periféricos, com diversos métodos de operação. Seria impraticável incorporar a lógica necessária dentro do processador para controlar todos os tipos de dispositivos. ○ A taxa de transferência de dados dos periféricos normalmente é muito mais lenta do que a da memória ou do processador. É impraticável usar o barramento de alta velocidade do sistema para se comunicar diretamente com um periférico. ○ Os periféricos normalmente utilizam formatos de dados e tamanhos de palavras diferentes do que é usado pelo computador ao qual estão conectados. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Entrada/Saída Introdução O módulo de entrada e saída tem duas funções especiais: ○ Interface com o processador e a memória por meio do barramento do sistema. ○ Interface com um ou mais dispositivos periféricos por conexões de dados adequados. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Entrada/Saída Dispositivos externos As operações de E/S são realizadas por meio de uma grande variedade de dispositivos externos. Um dispositivo externo se conecta ao computador por uma conexão com o módulo de E/S. A conexão é usada para trocar sinais de controle, estado e dados entre os módulos de E/S e o dispositivo externo. Um dispositivo externo conectado a um módulo de E/S normalmente é chamado de periférico. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Entrada/Saída Dispositivos externos Podemos classificar os dispositivos externos em três categorias: ○ Legíveis ao ser humano: adequados para a comunicação com usuários de computador. Ex: Monitores, impressoras, caixa de som, etc. ○ Legíveis à máquina: adequados para a comunicação com equipamentos. Ex: HD, fita, sensor, etc. ○ Comunicação: adequados para a comunicação com dispositivos remotos. USB, placa de rede, etc. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Entrada/Saída Dispositivos externos A figura ao lado apresenta um diagrama de blocos de um dispositivo externo. A interface com o módulo de E/S ocorre na forma de sinais de controle, dados e estado. ○ Sinais de controle: determinam a função que o dispositivo realizará (leitura, escrita, informar estado, posicionar uma cabeça de disco, etc) ○ Dados: estão na forma de um conjunto de bits a serem enviados ou recebidos do módulo de E/S. ○ Sinais de estado: indicam o estado do dispositivo (Ready/Not-ready, para indicar se o dispositivo está pronto para uma transferência de dados. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Módulo de E/S Função do módulo Controle e temporização ○ Coordena o fluxo de tráfego entre os recursos internos e dispositivos externos. ○ Por exemplo, o controle da transferência de dados de um dispositivo externo ao processador poderia envolver a seguinte sequência de etapas: i. O processador interroga o módulo de E/S para verificar o estado do dispositivo conectado. ii. O módulo de E/S retorna o estado do dispositivo. iii. Se o dispositivo estiver operacional e pronto para transmitir, o processador solicita a transferência de dados por meio de um comando ao módulo de E/S. iv. O módulo de E/S obtém uma unidade de dados (8, 16 ou 32 bits, por exemplo) do dispositivo externo. v. Os dados são transferidos do módulo de E/S ao processador. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Módulo de E/S Função do módulo Comunicação com o processador ○ Envolve o seguinte: i. Decodificação de comando: O módulo de E/S aceita comandos do processador, normalmente enviados como sinais no barramento de controle. Exemplo: Read, Write, etc. ii. Dados: os dados são trocados entre o processador e o módulo de E/S pelo barramento de dados. iii. Informação de estado: Indica o estado do periférico. Ex: Busy, ready, etc. iv. Reconhecimento de endereço: assim como cada palavra de memória tem um endereço, cada dispositivo de E/S também tem. Desse modo, um módulo de E/S precisa reconhecer um endereço exclusivo para cada periférico que controla. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Módulo de E/S Função do módulo Comunicação com o dispositivo ○ Essa comunicação envolve: Comandos Informação de estado Dados Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Módulo de E/S Função do módulo Armazenamento temporário (buffering) de dados. ○ A necessidade dessa função é aparente na figura ao lado. ○ Enquanto a taxa de transferência para entrada/saída na memória principal ou no processador é alta, as taxas dos dispositivos periféricos compreendem uma grande faixa. ○ Os dados vindos da memória principal são enviados para um módulo de E/S de modo rápido. Os dados são mantidos em um buffer no módulo de E/S e depois enviados ao dispositivo periférico em sua taxa de dados. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Módulo de E/S Função do módulo Detecção de erro ○ Responsável por relatar erros ao processador. ○ Exemplos de erros: Mecânicos e elétricos (atolamento de papel em impressora). Mudanças nos padrões de bits. ○ O módulo pode conter um algoritmo de detecção de erro. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Módulo de E/S Estrutura Diagrama de blocos de um módulo de E/S. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Módulo de E/S Técnicas de operações de E/S E/S programada E/S controlada por interrupção Acesso direto à memória (DMA) Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados E/S programada Visão geral Os dados são trocados entre o processador e o módulo de E/S. O processador executa um programa que lhe oferece controle direto da operação de E/S, incluindo: ○ Percepção do estado de dispositivo. ○ Envio de um comando de leitura. ○ Escrita e transferência de dados. Quando o processador emite um comando ao módulo de E/S, ele precisa esperar até que a operação de E/S termine. Isso desperdiça o tempo do processador. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados E/S programada Comandos de E/S Para executar uma instrução relacionada a E/S, o processador emite: ○ Um endereço, especificando o módulo de E/S e dispositivo externo em particular. ○ Um comando de E/S. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados E/S programada Comandos de E/S Existem quatro tipos de comandos de E/S que um módulo de E/S pode receber quando é endereçado por um processador: ○ Controle: usado para ativar um periférico e dizer-lhe o que fazer. Por exemplo, uma unidade de fita magnética pode ser instruída a rebobinar. ○ Teste: usado para testar diversas condições de estado associadas a um módulo de E/S e seus periféricos. O processador deseja saber se o periférico de interesse está ligado e disponível para uso. Também deseja saber se a operação de E/S mais recente terminou e se houve algum erro. ○ Leitura: Faz com que o módulo de E/S obtenha um item de dados do periférico e o coloque em um buffer interno. O processador pode obter o item de dados solicitando que o módulo de E/S o coloque no barramento de dados. ○ Escrita: faz com que o módulo de E/S apanhe um item de dado do barramento de dados e depois transmita esse dado ao periférico. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados E/S programada Funcionamento A figura ao lado ilustra o uso da E/S programada para ler um bloco de dados de um periférico (por exemplo, um registro da fita) para a memória. Os dados são lidos em uma palavra por vez. Para cada palavra lida, o processador precisa permanecer em um ciclo de verificação de estado até que determine que a palavra está disponível no registrador de dados do módulo de E/S. Esse fluxograma destaca a principal desvantagem dessa técnica: é um processo demorado, que mantém o processador ocupado desnecessariamente. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados E/S controlada por interrupção Visão geral O problema com a E/S programada é que o processador tem que esperar muito tempo para que o módulo de E/S de interesse esteja pronto para recepção ou transmissão de dados. O processador, enquanto espera, precisa interrogar repetidamente o estado do módulo de E/S. Como resultado, o nível de desempenho do sistema inteiro é bastante degradado. Um alternativa é que o processador emita um comando de E/S para um módulo e depois continue realizando algum outro trabalho útil. O módulo de E/S, então, interrompe o processador para solicitar atendimento quando estiver pronto para trocar dados com o processador. O processador, então, executa a transferência de dados, como antes, e depois retoma seu processamento anterior Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados E/S controlada por interrupção Funcionamento Ponto de vista do módulo de E/S ○ Para a entrada, o módulo de E/S recebe um comando READ do processador. O módulo, então, prossegue para ler dados de um periférico associado. ○ Quando os dados estão no registrador de dados do módulo, o módulo envia um sinal de interrupção ao processador por uma linha de controle. O módulo, então, espera até que seus dados sejam solicitados pelo processador. ○ Quando a solicitação termina, o módulo coloca seus dados no barramento de dados e então está pronto para outra operação de E/S. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados E/S controlada por interrupção Funcionamento Ponto de vista do processador ○ O processador emite um comando READ. Depois ele prossegue com outras tarefas (por exemplo, o processador pode estar trabalhando em vários programas diferentes ao mesmo tempo). ○ Ao final de cada ciclo de instrução, o processador verifica se há interrupções. Quando ocorre uma interrupção do módulo de E/S, o processador salva o contexto (por exemplo, o contador de programa e os registradores do processador) do programa atual e processa a interrupção. ○ Nesse caso, o processador lê a palavra de dados do módulo de E/S e o armazena na memória. Depois, ele restaura o contexto do programa em que estava trabalhando e retoma a execução. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados E/S controlada por interrupção Funcionamento A figura ao lado ilustra o uso da E/S controlada por interrupção para ler um bloco de dados de um periférico (por exemplo, um registro da fita) para a memória. A E/S controlada por interrupção é mais eficiente que a E/S programada, pois elimina a espera desnecessária, porém, ainda consome muito tempo do processo, pois a cada palavra de dados que vem da memória para o módulo de E/S ou do módulo de E/S para a memória precisa passar pelo processador. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Acesso direto à memória (DMA) Visão geral A E/S controlada por interrupção, embora mais eficiente que a E/S programada, ainda requer a intervenção ativa do processador para transferir dados entre a memória e um módulo de E/S, e quaisquer transferências de dados precisam atravessar um caminho passando pelo processador. Assim, essas duas formas de E/S tem duas desvantagens inerentes: ○ A taxa de transferência de E/S é limitada pela velocidade com a qual o processador pode testar e atender a um dispositivo. ○ O processador fica ocupado no gerenciamento de uma transferência de E/S; diversas instruções precisam ser executadas para cada transferência de E/S. Quando grandes volumes de dados precisam ser movidos, uma técnica mais eficiente é necessária: acesso direto à memória (DMA). Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Acesso direto à memória (DMA) Função do DMA DMA envolve um módulo adicional no barramento do sistema. O módulo de DMA é capaz de imitar o processador e, na realidade, assumir o controle do sistema do processador. Ele precisa fazer isso para transferir dados de e para a memória pelo barramento do sistema. Para essa finalidade, o módulo de DMA precisa usar o barramento apenas quando o processador não precisa dele, ou então precisa forçar o processador a suspender a operação temporariamente. Essa última técnica é mais comum e é conhecida como roubo de ciclo (cycle stealing). Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Acesso direto à memória (DMA) Função do DMA Quando o processador deseja ler ou escrever um bloco de dados, ele envia um comando ao módulo de DMA com as seguintes informações: ○ Indicação de uma operação de leitura ou escrita usando a linha de controle de leitura ou escrita entre o processador e o módulo de DMA. ○ O endereço do dispositivo de E/S envolvido. ○ O local inicial na memória para ler ou escrever, comunicado nas linhas de dados e armazenado pelo módulo de DMA em seu registrador de endereço. ○ O número de palavras a serem lidas ou gravadas, novamente comunicado por meio das linhas de dados e armazenado no registrador contador de dados. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Acesso direto à memória (DMA) Função do DMA O processador, então, continua com outro trabalho. Ele delegou essa operação de E/S a um módulo de DMA. O DMA transfere o bloco de dados inteiro, uma palavra de cada vez, diretamente de ou para a memória, sem passar pelo processador. Quando a transferência termina, o módulo de DMA envia um sinal de interrupção ao processador. Assim, o processador é envolvido apenas no início e no final da transferência. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados

Use Quizgecko on...
Browser
Browser