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

### Visão interna de um dispositivo I/O

| 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

| 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 |  |
| **Comunicação com processador:** | Gerenciar comunicação entre processador e dispositivo I/O |  |
| **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

### 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?) | 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.  |
| 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

