--- title: Dispositivos I/O description: Dispositivos I/O tags: Arq. de computadores --- # Módulos de entrada e saida (I/O) ### Oque é? São dispositivos que possuem a lógica para realizar a comunicação entre o barramento da placa mãe e os periféricos. ### E/S mapeada na memória Há um único espaço de endereçamento para posições de memória e dispositivos de E/S. Exemplo: • Endereçamento de Byte • Endereços de 10 bits → 1024 Bytes • Endereços 0-511: memória principal • Endereços 512-1023: dispositivos de E/S ### E/S independente Espaço de endereçamento de E/S é independente do espaço de endereçamento da memória. ### Dispositivos Externos * Legíveis ao ser humano: adequados para a comunicação com usuários • Monitor, impressora, teclado * Legíveis à máquina: adequados para a comunicação com equipamentos • Disco magnético e fita • Sensores e atuadores * Comunicação: adequados para a comunicação com dispositivos remotos • Modem • Placa de interface de rede ![](https://i.imgur.com/pOVtf0K.png) ### Visão interna de um dispositivo I/O ![](https://i.imgur.com/VtRPgox.png) | Nome | Oque faz? | | ---------- | ------------------------------------------------------------------------------------------ | | Transdutor | Recebe dados do ambiente externo e transforma em dados digitais(ou vice versa) | | Buffer | Responsavel por armazenar durante um tempo a entrada e enviar de uma só vez ou em pacotes | | Lógica de controle|Responsavel por gerenciar a conexão, recebendo sinais de controle e enviando sinais de estado| ## Visão interna de um modulo I/O ![](https://i.imgur.com/hYkMhVp.png) | Nome | Oque faz? | | ---------- | ------------------------------------------------------------------------------------------ | | Lógica de interface com I/O | Responsavel por identificar qual dispositivo foi conectado ao modulo | | Lógica I/O | Responsavel por gerenciar e enviar os dados para os devidos barramentos | ### Quais suas funçoes? | Função | Oque faz? | Exemplo | | ------------------------------------------ | ----------------------------------------------------------------------- | ------------------------------------ | | **Controle e temporização da comunicação** | Gerenciar fluxo de trafego entre recursos internos e externos | ![](https://i.imgur.com/9QqQ9lR.png) | | **Comunicação com processador:** | Gerenciar comunicação entre processador e dispositivo I/O | ![](https://i.imgur.com/qbOHxUk.png) | | **Comunicação com dispositivos** | Gerenciar comunicação informando estado e dados | | | **Armazenamento temporario de dados (buffering)** | Armazenar no buffer os dados temporariamente, em determinadas situações | | | **Detecção de erros:**|Relatar ao processador que ocorreu erros na utilização dos dispositivos|| ### Porque não conectar o periferico no barramento? * Seria necessario um barramento especifico para cada tipo de periferico e uma área no processador para cada periferico. * Cada periferico possui uma frequencia de transferencia diferente, normalmente mais lenta do que a velocidade da memoria e processador. * Os perifericos utilizam formatos de dados e tamanhos de palavras diferentes, em relação aos que são usados pelo computador. # Barramentos ### Oque é? São os fios presentes na placa mae, que agem como links de comunicação. Os mais comuns são utilizados para I/O e comunicação entre processador e memoria. ### Qual sua função? É usado para que diferentes subsistemas de um computador tenham interfaces uns com os outros, funcionando como um caminho de comunicação compartilhado. ### Vantagens 1. Facil inclusão de novos dispositivos; 2. Baixo custo de implantação, por ser um conjunto de fios compartilhado entre os dispositivos; ### Desvantagens 1. Se torna um gargalo de comunicação, por todos estarem conectados ao mesmo barramento, caso ele esteja em uso, os outros devem aguarda-lo ser liberado. 2. Quanto mais comprido, mais sucetivel a interferencia interna; 3. Comprimento do barramento (geralmente precisa ser pequeno). ### Composição de um barramento Alguns barramentos tem dois conjuntos de linhas, sendo eles: Linhas de controle e Linhas de dados | Tipo | Oque faz? | | ------------------ | ---------------------------------------------------------------------------------------------------------- | | Linhas de controle | Controla quem esta usando o barramento, com quem ele quer se comunicar e que tipo de dado será transmitido | | Linha de dados | Transporta os dados da fonte ao destino | ### Transação com barramento Envolve dois passos: 1. Dizer qual destino da operação 2. Realizar a escrita ou leitura no destino ![](https://i.imgur.com/DcVf3Xj.png) ### Passo a passo de operação de saida 1. Processador escreve o dado na memoria principal; 2. Memoria avisa ao dispositivo atraves do barramento que o dado esta disponivel; 3. Dispositivo recebe os dados ### Passo a passo de operação de entrada 1. Dispositivo de I/O através do modulo I/O sinaliza no barramento que está avendo uma entrada e onde deve ser armazenado; 2. A entrada é salva em memoria; 3. A medida q o processador fica livre, ele processa os dados na memoria ### Tipos de barramento | Tipos| Caracteristicas| | ------------------- | ----------- | | Processador-Memoria | Curto e extremamente rapido, é o barramento que faz ligação direta entre processador e memoria | | Entrada e saida | Longos, podendo ter muitos dispositivos conectados a ele, atendendo multiplas faixas de banda | | Backplane| Projetados para conectar memoria, processador e dispostivos de I/O existam em um mesmo barramento| # Comunicação de Processador com Modulo I/O ### Como é feito? | Tipos de transferencia | Sem interrupçoes | Com interrupções | | ------------------------------------- | ---------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | | Memoria e I/O por meio de processador | I/O programado(Polling), processador checa se já ouve transmição de dados. (burro: já chegou?) ![](https://i.imgur.com/e7icyS6.png)| I/O programado por interrução, pega o primeiro pacote de dados e quando o ultimo for enviado notifica o processador, indicando o fim do envio e o interrompe. O Processador efetua a transferência e depois retorna ao seu processamento. ![](https://i.imgur.com/PYg6QRw.png) | | Direta entre memoria e I/O| --- | Controlador de acesso direto a memoria(DMAC), imita o processador nas funçoes de I/O de dados, tirando essa responsabilidade dele| ### Como funciona um DMAC (Controlador de Acesso Direto à Memória) • Usa o barramento apenas quando o processador não o utiliza. • Força o processador a suspender temporariamente sua operação – técnica conhecida como **roubo de ciclo**. 1. Processador ativa o DMAC informando: * Qual dispositivo ele quer se comunicar; * Qual operação ele quer(leitura ou escrita ); * O endereço de memoria a ser manipulado; * A quantidade de bytes a serem transferidos; 2. O DMAC incia a operação sobre o dispositivo: * Gerencia o barramento, tentando acessa-ló para fazer a comunicação; * Fornece os endereços a serem manipulados para os modulos I/O * Quando os dados estiverem prontos ele os transfere * Gera o proximo endereço de memoria para a nova transferencia 3. Quando o DMAC completar a transferencia: * DMAC interrompe o processador; * O processador verifica se a operação foi feita com sucesso; * O processador retoma o controle do barramento # Canais de I/O ### Oque é? Representa uma extensão do conceito de DMAC, podendo executar as instruções I/O, oque lhe da controle completo sobre operaçoes I/O, permitindo que o processador só solicite os dados. **GPUs** são os modelos mais comuns desse assunto. # Evolução ![](https://i.imgur.com/pUdbpEh.png) ![](https://i.imgur.com/AHR52Ps.png)