You are on page 1of 0

11-1

Capítulo
ONZE
Noções de Entrada e Saída
11. 1 Introdução
Englobam-se sob a denominação de Entrada e Saída (E/S) todas as atividades de troca de
informações do computador com o meio externo. Basicamente, o computador pode utilizar
atividades de entrada/saída com as seguintes finalidades:
• troca de informações com os usuários humanos do sistema, utilizando-se, para a
entrada de informações ou para a exibição, dos chamados dispositivos periféricos.
Estes dispositivos podem ser teclados, vídeos, mouses, impressoras, leitoras de
cartões, etc.
• permitir ao computador acessar dispositivos de armazenamento para grandes conjuntos
de dados, e que normalmente não podem ser mantidos todo o tempo em memória
primária. Estes dispositivos são englobados sob a denominação de memória
secundária e incluem, em geral discos e disquetes magnéticos, CD-Rom, discos
magneto-óticos e fitas magnéticas.
• permitir ao computador comunicar-se com outros equipamentos, tais como outros
computadores e outros equipamentos científicos e industriais, através de linhas
telefônicas e equipamentos específicos requeridos por este tipo de comunicação
(modens).
A arquitetura de E/S os elementos que um programa utiliza para transportar dados entre o
processador e os diversos dispositivos de E/S. Ela precisa especificar:
• um método para identificação do dispositivo a ser utilizado em uma operação de E/S;
• o endereço do dado, ou seja, a fonte do dado a ser transportado para uma operação de
saída ou o destino do dado em uma operação de entrada;
• a quantidade de dados a serem transportados;
• os métodos para determinar quando as operações de E/S tiverem terminado ou
encontrarem dificuldades que impeçam o seu término.
Estes parâmetros não precisam ser necessariamente especificados a cada transferência; alguns
deles podem ser convencionados de tal forma que estarão implícitos quando ocorrer o início
da operação.
Uma característica importante e fundamental da maioria dos dispositivos de E/S, sejam eles
orientados ao intercâmbio de informações diretamente com o usuário ou atuando no
armazenamento intermediário de informações, é que eles operam em velocidades
consideravelmente mais lentas do que em processadores ou memórias (do tipo “primárias”).
Assim, referências a dados ou interações com seres humanos consomem enormes
quantidades de tempo em comparação a funções computacionais dentro de um par
processador-memória. Por esta razão, o projeto de E/S é crucial para minimizar atrasos e o
projeto de funções de E/S é normalmente sentido diretamente na arquitetura.
11-2
11. 2 Dispositivos periféricos
A classe de dispositivos que são utilizados atualmente para realização de operações de
entrada e saída (isto é, que atuam na troca de informações tendo de um lado um computador
e do outro usuários humanos do sistema) é bastante ampla e diversa, apresentando um leque
bastante variado de características e operação. Entre elas estão:
• impressoras: para criar cópia em papel ou similar, de textos e figuras. As impressoras
variam em atributos, tendo com forma mais primitiva dispositivos que se
assemelham a máquinas de escrever. Atualmente, as mais modernas utilizam como
tecnologia a impressão a laser e podem imprimir até milhares de linha por minuto;
• monitores (ou telas): que mostram textos e figuras, ambos podendo ser formatados de
diversas maneiras e utilizar várias cores. O tipo mais comum, utiliza um tubo não
muito diferente de um tubo de televisão (tubo de raios catódicos). Atualmente,
utiliza-se também visores de cristal líquido, que consomem menor quantidade de
energia;
• dispositivos gráficos (ou plotters): que criam cópias impressas de gráficos e curvas de
papel. Com o avanço tecnológico, as impressoras atualmente tem capacidade de
produzir material gráfico de ótima qualidade, tendo sua maior limitação no campo
(tamanho) de impressão. Os traçadores, dependendo das suas características podem
produzir desenhos com mais de um metro de largura e comprimento limitado pela
bobina de papel;
• dispositivos de exploração ótica: que podem ler diretamente documentos. Dentre os
mais primitivos, pode-se citar as leitoras óticas de cartões ou folhas de marcas
(como as usadas no vestibular para registro das respostas). Atualmente, existem
dispositivos bem mais complexos como os scanners, que podem transferir para o
computador imagens obtidas em figuras, textos e fotografias;
• dispositivos de apontamento: que podem indicar informações ao computador através do
posicionamento de um cursor sobre a tela, como é o caso do mouse e da caneta
luminosa (ou lightpen).
O âmbito de dispositivos utilizados por computadores para comunicar-se com os usuários
encontra-se em expansão e melhorando em qualidade de interação. De forma a complementar
os dispositivos recém-mencionados, há grandes avanços no campo do reconhecimento de
voz e saída de voz. Já há alguma disponibilidade nesta última opção.
11. 3 Memória secundária
O grande volume de dados armazenados no computador inviabiliza a manutenção permanente
destas informações integralmente na memória principal. Isto faz com que grande parte das
informações, utilizadas menos freqüentemente, seja guardada em dispositivos de uma classe
diferente dos empregados para a construção da memória principal (antes, memórias de
núcleos magnéticos, atualmente circuitos semicondutores). Os dispositivos mais usados
anteriormente eram discos, tambores rotativos e fitas, todos magnéticos; atualmente são os
discos e disquetes magnéticos, fitas magnéticas e os CD's.
Estes dispositivos são endereçados utilizando-se conceitos de arquitetura e organização de
E/S, embora não se enquadrem na primeira classe apresentada de dispositivos de E/S que
pressupõem interação entre o computador e o usuário ou ser humano. Eles podem ser
considerados como arquivos eletrônicos que estão aptos a responder a uma solicitação de
dados.
11. 4 Comunicação com outras máquinas
A troca de informações com outras máquinas também consiste em uma atividade de entrada e
saída. Inicialmente, eram utilizadas para troca de informações entre computadores ou entre
computador e algum periférico especial localizados dentro de um prédio, em salas próximas.
11-3
Atualmente são usadas para comunicação entre máquinas situadas geograficamente distantes,
empregando linhas telefônicas e outros meios convencionais. Para isto, os sinais
empregados devem seguir normas especiais, afim de não perturbar os serviços normais
oferecidos pela rede telefônica. Estes serviços são utilizados em larga escala como, por
exemplo: por bancos, para transferir informações referentes às transações, saldos, extratos,
etc; por universidades e centros de pesquisa, para difusão de conhecimento e troca de
informações; por empresas, para difusão de informações entre filiais e setores agregados ou
junto a clientes, etc.
As características básicas desta atividade diferem das demais, principalmente devido à
distância onde os elementos envolvidos estão colocados. Portanto, neste tipo de operação de
E/S:
• existem equipamentos que operam eletricamente os dados para controlar nível de
sinal, forma de transmissão, etc, que são os chamados “modens” (moduladores-
demoduladores);
• a informação está mais sujeita a ser modificada, com a introdução de erros, por efeito
de ruído elétrico. Assim, em geral há necessidade de utilizar formas especiais de
codificação;
• para evitar que haja muita perda de tempo no estabelecimento da comunicação,
incluindo o envio de informações de controle, convém trabalhar com a transmissão de
blocos de informação grandes. Isto faz com que, em cada bloco de informação
transmitida, haja um percentual pequeno de caracteres ou palavras destinadas ao
controle e exigidas pelo protocolo de comunicação.
11. 5 Sistemas de E/S
Como visto nas unidades anteriores, as atividades principais dos computadores envolvem
dois componentes: a unidade central de processamento (UCP) e a memória principal. A
unidade central de processamento busca instruções e dados na memória principal, processa-
os e armazena os resultados na memória principal. Os demais componentes podem ser
genericamente denominados de sistema de entrada e saída, uma vez que destinam-se a
transferir informações entre a memória ou a CPU e o ambiente externo a estes. O sistema de
E/S inclui os dispositivos de E/S (periféricos ou demais elementos), unidades de controle
para estes dispositivos e o software especialmente projetado para operações de E/S. Na
seqüência, serão referidos apenas periféricos, já que as demais operações de entrada e saída
podem ser tratadas de forma análoga.
Existem várias maneiras de se executar as operações de E/S: a possibilidade de se empregar
estas formas depende dos recursos de software e hardware disponíveis. A opção por uma
delas depende basicamente do desempenho desejado, dos dispositivos envolvidos, e do
volume dos dados.
11. 5. 1 Entrada e saída programada
Quando as operações de E/S são controladas inteiramente pela UCP, isto é, a UCP executa
programas que iniciam, dirigem e terminam as operações de E/S, diz-se que o computador
emprega E/S programada. Este sistema existe em quase todos os computadores: emprega
pouco hardware especial, mas pode ocupar tempo demasiado da UCP no controle de
operações relativamente simples de E/S. Uma destas funções é o teste do estado dos
dispositivos de E/S para determinar se eles estão ou não requisitando serviços da CPU.
Neste contexto, a transferência é realizada, em geral, entre um registrador da UCP (por
exemplo, o acumulador) e um registrador ligado ao dispositivo de E/S. A transferência de
um dado do dispositivo de E/S para a memória principal necessita da execução de duas
instruções pela UCP:
11-4
• uma instrução (INPUT) para transferir uma palavra de um dispositivo de E/S para a
UCP;
• uma instrução (STORE) para transferir uma palavra da UCP para a memória principal.
Endereçamento
Em sistemas com E/S programada, os dispositivos de E/S, a memória principal e a UCP se
comunicam através de um barramento de uso comum, partilhado entre eles. As linhas de
endereçamento deste barramento, usadas para para selecionar posições de memória, também
podem ser utilizadas para selecionar dispositivos de E/S. Cada ligação entre o barramento
principal e o dispositivo de E/S é chamada de porta de E/S, sendo atribuída a ela um
endereço exclusivo. A porta de E/S pode incluir um registrador de dados.
Em algumas máquinas, parte do espaço de endereçamento da memória principal é usado para
portas de E/S (E/S mapeada em memória). Neste caso, não há necessidade de dispor-se de
instruções especiais de entrada e saída, mas estes aspectos serão tratados mais tarde, em
outras disciplinas.
Instruções de E/S
O esquema de E/S programada pode ser implementado com poucas instruções. O
microprocessador Intel 8080, por exemplo, que usa o sistema de endereçamento explicado
no parágrafo anterior, emprega apenas duas instruções de E/S:
• IN x, que transfere uma palavra da porta de E/S x para o acumulador do 8080;
• OUT x, que transfere uma palavra do acumulador do 8080 para a porta de E/S x.
A UCP não atribui qualquer interpretação às palavras transferidas: o programador deve fazê-
lo. Algumas palavras podem indicar o estado do dispositivo de E/S e outras podem ser
instruções especiais para este dispositivo.
O simples envio de dados, sem que o dispositivo esteja pronto para recebê-los, pode resultar
na perda de informações. Por outro lado, a espera de informações sem que haja tempos pré-
determinados, pode resultar em tempos de execução excessivamente longos. Assim, o ideal é
que se tenha possibilidade de testar as condições de recebimento / envio de informações pelo
dispositivo de E/S, ou seja, avaliar o estado do dispositivo. Normalmente este estado pode
ser especificado por um bit de informação que o dispositivo mantém disponível de forma
contínua (independente das linhas de dados). Assim, serão necessários os seguintes passos:
• Passo 1: lê a informação de estado;
• Passo 2: testa o estado para determinar se o dispositivo está pronto para iniciar a
transferência de dados;
• Passo 3: se não está pronto, retorna ao passo 1; se está pronto, efetua a transferência
do dado.
A seguir, tem-se como exemplo um programa escrito para o INTEL 8080, que executa a
transferência de uma palavra de dados de um dispositivo de E/S para o acumulador na UCP.
Por hipótese, o dispositivo está ligado às portas 1 e 2. O estado do dispositivo está
disponível continuamente na porta 1, enquanto que os dados solicitados estão disponíveis na
porta 2 quando a palavra de estado tem o valor READY.
Instrução Comentário
WAIT: IN 1 Lê estado do dispositivo de E/s para o acumulador
CMP READY Compara a palavra READY (de forma imediata, com o
acumulador; de for igual, liga Z=1, senão, Z=0
JNZ WAIT Se Z≠1 (disp. de E/S não está pronto), volta para WAIT
IN 2 Lê palavra de dados para o acumulador
Figura 11.1 - Trecho de programa de E/S
11-5
11. 5. 2 Acesso direto à memória
Com pequeno aumento na complexidade do hardware, o dispositivo de entrada e saída pode
ser munido da capacidade de transferir um bloco de informação da memória principal, ou
para esta, sem a intervenção da CPU. Isto requer que o dispositivo de E/S seja capaz de
gerar endereços e transferir dados através do barramento da memória principal. Também
deve existir um sinal de solicitação de acesso ao barramento e um mecanismo de seleção pré-
definido (por exemplo, por prioridades).
A UCP é responsável pela inicialização de cada transferência de cada bloco. A partir daí, o
dispositivo de E/S pode realizar a transferência sem a necessidade de execução de programa
pela UCP, ou seja, sem que a UCP se envolva diretamente na operação, exceto no seu final.
Quando isto ocorre, UCP e o dispositivo de E/S interagem e a UCP retoma o controle do
barramento através do qual foi feita a transferência. Este tipo de capacidade de entrada e saída
é denominada de acesso direto à memória.
11. 5. 3 Interrupção
O dispositivo de E/S também pode conter circuitos que o habilitam a requisitar serviços da
UCP, isto é, provocam na UCP a execução de um programa de atendimento ao dispositivo
periférico. Este tipo de solicitação é chamada de interrupção. A disponibilidade de serviços
de interrupção livra a UCP de estar periodicamente testando o estado do dispositivo de E/S
(afim de verificar se ele tem dados para transferir ou não). Diferentemente do acesso direto à
memória, uma interrupção faz com que a UCP páre temporariamente a execução do
programa em curso, salvando o estado correspondente, e transfira o controle de execução
para um programa de tratamento de interrupção. Assim, quando termina o atendimento da
interrupção, a UCP pode reassumir a execução do programa antes interrompido.
11. 5. 4 Informações complementares
Uma outra opção para execução das atividades de entrada e saída é a existência de
processadores especiais, denominados de processadores de E/S ou canais de E/S, que
assumem o controle total deste tipo de operações. Com isto, eles aliviam consideravelmente a
atividade da UCP, liberando-a para outro tipo de processamento. Estes processadores podem
acessar diretamente à memória, podem interromper a UCP, ou executar programas, com
conjuntos especiais de instruções, orientadas a operações de E/S. Eles também podem estar
ligados à UCP por um barramento especial, chamado de barramento de E/S ou interface de
E/S.