---
# System prepended metadata

title: Dispositivos I/O
tags: [Arq. de computadores]

---

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

