SEL/EESC-USP Grupo de Sistemas Digitais SEL-0415 Introdução à Organização de Computadores Dispositivos de Entrada e Saída Aula 9 Prof. Dr. Marcelo Andrade da Costa Vieira ENTRADA e SAÍDA (E/S) SEL/EESC-USP Grupo de Sistemas Digitais (I/O - Input/Output) n Inserção dos dados (programa) n Apresentação dos resultados n Comunicação Homem/Máquina ENTRADA e SAÍDA (E/S) SEL/EESC-USP Grupo de Sistemas Digitais (I/O - Input/Output) ENTRADA e SAÍDA (E/S) SEL/EESC-USP Grupo de Sistemas Digitais (I/O - Input/Output) n Entrada Æ Dispositivos (geralmente baseados em chaves) por onde informações entram na memória n Ex.: Teclados, Portas n Saída Æ Dispositivos que mostram o resultado da operação executada n Ex: Ø Monitores Ø Impressoras Ø Armazenamento secundário… Dispositivos de Entrada SEL/EESC-USP Grupo de Sistemas Digitais Periféricos n Existem alguns que são especializados apenas em ENTRADA: Ø Teclado Æ Lê os caracteres digitados pelo usuário Ø MOUSE Æ Lê os movimentos e toque de botões Ø Drive de CD-ROM Æ Lê dados de discos CD-ROM Ø Microfone Æ Transmite sons para o computador Ø SCANNER Æ Usado para “digitalizar" figuras ou fotos Dispositivos de Saída SEL/EESC-USP Grupo de Sistemas Digitais Periféricos n Outros especializados apenas em SAÍDA: Ø Vídeo Æ Mostra ao usuário, na tela caracteres e gráficos Ø Impressora Æ Imprime caracteres e gráficos Ø Alto-falante Æ Realiza comunicação com o usuário através de som Dispositivos de Entrada e Saída SEL/EESC-USP Grupo de Sistemas Digitais Periféricos n Outros em ENTRADA E SAÍDA Ø Disco rígido - Grava e lê dados Ø Drive de disquete - Grava e lê dados em disquetes Ø Unidade de fita magnética - Grava e lê dados em fitas magnéticas Ø MODEM - Transmite e recebe dados pela linha telefônica Dispositivos de Entrada e Saída para Controle de Processos SEL/EESC-USP Grupo de Sistemas Digitais Periféricos n Menos Tradicionais (microcontroladores) Ø Sensores Ø Motores de Passo Ø Fotocélulas Ø Termostatos SEL/EESC-USP Grupo de Sistemas Digitais Dispositivos de Entrada e Saída Interfaces de Entrada e Saída SEL/EESC-USP Grupo de Sistemas Digitais Interfaces de (I/O) n Geralmente a CPU não pode comunicar-se diretamente com os periféricos [ a comunicação é feita com a ajuda de circuitos chamados de Interfaces ou Módulos de I/O n Funções: n n n n Presentes entre o barramento e o periférico Compatibilidade entre os dispositivos e o µP Controle da comunicação Ex.: controlador de vídeo, controlador de disco, etc... SEL/EESC-USP Grupo de Sistemas Digitais Interfaces de Entrada e Saída SEL/EESC-USP Grupo de Sistemas Digitais Interface de Entrada e Saída Buffers Interface SEL/EESC-USP Grupo de Sistemas Digitais Operações de E/S Operações de I/O SEL/EESC-USP Grupo de Sistemas Digitais Métodos para realização de operações de I/O u Três tipos principais: u Programada (Pooling) u Interrupção u Acesso Direto à Memória (DMA) SEL/EESC-USP Grupo de Sistemas Digitais EXEMPLO FIGURATIVO A EMPREGADA ESTÁ LIMPANDO A CASA E TEM COMO FUNÇÃO RECEBER O RECADO DE QUEM LIGAR. SEL/EESC-USP Grupo de Sistemas Digitais EXEMPLO FIGURATIVO PROGRAMADA (telefone SEM campainha): a empregada de tempos em tempos verifica se há alguém querendo lhe falar ao telefone INTERRUPÇÃO (telefone COM campainha): a empregada pára de fazer o serviço quando o telefone toca, pois há alguém querendo lhe falar ao telefone DMA - ACESSO DIRETO À MEMÓRIA (telefone COM campainha e COM secretária eletrônica): o telefone toca, a secretária eletrônica armazena o recado e a empregada pára de fazer o serviço quando lhe convier para ouvir o recado. Varredura SEL/EESC-USP Grupo de Sistemas Digitais I/O por Programa (Varredura) u A CPU controla diretamente todas as etapas da comunicação u O programa deve verificar os dispositivos de entrada e saída e parar o processamento durante a transmissão u Subrotina de verificação dos dispositivos de entrada e saída u Tempo de transmissão dos dispositivos de I/O são muito altos comparados ao µP u Processo muito pouco eficiente Interrupção SEL/EESC-USP Grupo de Sistemas Digitais I/O por Interrupção u A CPU aguarda a interface de I/O requisitar uma transmissão u Enquanto isso o µP pode realizar outras tarefas u Quando a interface está pronta para a transmissão ela avisa o µP u O µP interrompe a atividade corrente e inicia a comunicação com o dispositivo de I/O u Processo mais eficiente do que a operação por varredura, mas ainda sobrecarrega o µP durante a comunicação com o periférico SEL/EESC-USP Grupo de Sistemas Digitais INTERRUPÇÃO 1. Atende à acontecimentos assíncronos (imprevisível); 2. Não precisa esperar para que ele ocorra – o microprocessador não deixa de ser utilizado para outras funções; 3. Pode ser interna ou externa 4. Interna: divisão por zero, overflow, etc. 5. Externa: Interface de I/O SEL/EESC-USP Grupo de Sistemas Digitais INTERRUPÇÃO 6. O evento envia um sinal de pedido de interrupção (INTERRUPT REQUEST – IRQ) ao µP por meio de uma linha de controle do barramento externo do sistema 7. O µP pode aceitar ou rejeitar o pedido, gerando um sinal de reconhecimento de interrupção (INTERRUPT ACKNOWLEDGE – IACK) numa linha de controle do barramento externo do sistema 8. O µP pára a execução do programa (via hardware), grava o endereço de retorno (PC+1) na pilha e atende à rotina de interrupção 9. Após a execução da rotina de interrupção, a microprocessador volta ao ponto onde parou no programa principal 10. Nem sempre é possível prever o local exato de retorno da interrupção 11. Uma subrotina é um evento síncrono (previsível) – varredura, a interrupção não é. SEL/EESC-USP Grupo de Sistemas Digitais INTERRUPÇÃO Grupo de Sistemas Digitais Pilha (Stack) § Memória Sequencial do tipo LIFO (Last in First Out) § Acessada sequencialmente pela CPU § Reservada geralmente para armazenamento de endereços de retorno de sub-rotina ou interrupção Pilha (Stack) ü uso mais importante Æ chamada de sub-rotina: ü CALL Æ instrução que diz à CPU para ir ao endereço de início de uma sub-rotina e executála Grupo de Sistemas Digitais ü RETURN Æ última instrução Guarda automaticamente o endereço de retorno na pilha (PC+1) antes de ir para a sub-rotina Resgata da pilha o endereço de retorno e salva no registrador PC (program counter) Pilha (Stack) § Pode também ser usada para armazenar/ler dados temporários sequenciais se necessário (instruções Push e Pop) Grupo de Sistemas Digitais § Cada posição da pilha possui m bits [ tamanho necessário para armazenar cada endereço de retorno (do registrador Program Counter – PC). § No microcontrolador PIC 16F877, por exemplo, a pilha é uma memória de 8 posições separada da RAM interna. § No microcontrolador 8051, por exemplo, usa uma área da RAM que deve ser reservada para a pilha, que é indicada por um ponteiro (Stack Pointer - SP) Ponteiro de Pilha Registrador Stack Pointer • SP Æ Ponteiro de Pilha (Stack Pointer) • Indica o último endereço da pilha (topo da pilha) e é incrementado cada vez que é usado Grupo de Sistemas Digitais • O SP tem largura de n bits [ o qual define o tamanho máximo da pilha (número de endereços) • cada posição da pilha possui m bits [ tamanho suficiente para armazenar cada endereço de retorno (do registrador Program Counter – PC). Ponteiro de Pilha Registrador Stack Pointer • SP é incrementado antes dos dados serem armazenados como resultado de uma instrução PUSH ou CALL ou de um atendimento à interrupção Grupo de Sistemas Digitais • SP é decrementado após os dados serem lidos como resultado de uma instrução POP ou RETURN • A pilha pode ficar em qualquer posição na RAM interna, carregando-se o endereço adequado no SP DMA SEL/EESC-USP Grupo de Sistemas Digitais I/0 por DMA (Direct Memory Access) u Permite a movimentação de dados entre os dispositivos de I/O e a memória do microcomputador sem envolver o processador nesta transferência u Processo mais eficiente do que todos os outros, pois não utiliza o µP e não sobrecarrega o barramento. DMA - ACESSO DIRETO À MEMÓRIA SEL/EESC-USP Grupo de Sistemas Digitais u u u Dispositivo de hardware dedicado à operação de transferência de dados entre um dispositivo de I/O e a memória; Coloca a saída do microprocessador em estado de alta impedância (desligado) para permitir a um dispositivo externo o Acesso Direto à Memória – Bus Request Acesso direto à memória (DMA) permite uma forma mais rápida de mover dados entre as portas de I/O e a memória. SEL/EESC-USP Grupo de Sistemas Digitais DMA - ACESSO DIRETO À MEMÓRIA SEL/EESC-USP Grupo de Sistemas Digitais FIM