SEL/EESC-USP
Grupo
de
Sistemas
Digitais
Dispositivos de Entrada e Saída
SEL-0415 Introdução à Organização de
Computadores
Prof. Dr. Marcelo Andrade da Costa Vieira
Aula 9
SEL/EESC-USP
Grupo
de
Sistemas
Digitais
ENTRADA e SAÍDA (E/S)
(I/O - Input/Output)
! Inserção dos dados (programa)
! Apresentação dos resultados
! Comunicação Homem/Máquina
SEL/EESC-USP
Grupo
de
Sistemas
Digitais
ENTRADA e SAÍDA (E/S)
(I/O - Input/Output)
SEL/EESC-USP
Grupo
de
Sistemas
Digitais
ENTRADA e SAÍDA (E/S)
(I/O - Input/Output)
! Entrada ! Dispositivos (geralmente baseados
em chaves) por onde informações entram na
memória
! Ex.: Teclados, Portas
! Saída ! Dispositivos que mostram o resultado
da operação executada
! Ex:
" Monitores
" Impressoras
" Armazenamento secundário…
SEL/EESC-USP
Grupo
de
Sistemas
Digitais
Dispositivos de Entrada
Periféricos
! 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
SEL/EESC-USP
Grupo
de
Sistemas
Digitais
Dispositivos de Saída
Periféricos
! 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
SEL/EESC-USP
Grupo
de
Sistemas
Digitais
Dispositivos de Entrada e Saída
Periféricos
! 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
SEL/EESC-USP
Grupo
de
Sistemas
Digitais
Dispositivos de Entrada e Saída
para Controle de Processos
Periféricos
! Menos Tradicionais (microcontroladores)
"Sensores
"Motores de Passo
"Fotocélulas
"Termostatos
SEL/EESC-USP
Grupo
de
Sistemas
Digitais
Dispositivos de Entrada e Saída
SEL/EESC-USP
Grupo
de
Sistemas
Digitais
Interfaces de Entrada e Saída
Interfaces de (I/O)
! 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
! Funções:
! 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
Interface de Entrada e Saída
Buffers
Operações de E/S
SEL/EESC-USP
Grupo
de
Sistemas
Digitais
SEL/EESC-USP
Grupo
de
Sistemas
Digitais
- ID;D E A O D ; DE ; , /
# I ED E C: E
Operações de I/O
# 0 D ;
# ,CI E D
# (: D ID V - -(
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.
SEL/EESC-USP
Grupo
de
Sistemas
Digitais
, / ED 0 D ;
# ( )0 :DCI DA ; I CI ID; I E ;
:D C : D
# / E D ; : D ; ED I D ;
CI ; ; E D E D: CID ; CI
I C D
# DI C ; : D ;D ; ED I D ;
CI ; ;
# ED ; I C D ;D ; ED I D ; , / D
ID AID :D E ;D D Q0
# 0 D: D ID ED :D : CI
Varredura
SEL/EESC-USP
Grupo
de
Sistemas
Digitais
, / ED ,CI E D
# ( )0 ; CI : ; , / I
I C D
# C CID D D Q0 ED; A O D I I
# C;D CI : I E DCI E I C D
A D Q0
# / Q0 CI D E I ; ; :D CI C :
:D C : D :D D ; ED I D ; , /
# 0 D: D : CI ;D DE D ED
; C; D : D Q0 ; CI
:D C : D :D D E :D
Interrupção
SEL/EESC-USP
Grupo
de
Sistemas
Digitais
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
,. 0TS/
SEL/EESC-USP
Grupo
de
Sistemas
Digitais
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 é.
,. 0TS/
SEL/EESC-USP
Grupo
de
Sistemas
Digitais
,. 0TS/
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
Grupo
de
Sistemas
Digitais
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)
%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
% RETURN ! última instrução
Grupo
de
Sistemas
Digitais
Pilha (Stack)
$ Pode também ser usada para armazenar/ler dados
temporários sequenciais se necessário (instruções Push e
Pop)
$ 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)
Grupo
de
Sistemas
Digitais
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
• 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).
Grupo
de
Sistemas
Digitais
• SP é incrementado antes dos dados serem
armazenados como resultado de uma instrução PUSH
ou CALL ou de um atendimento à interrupção
• 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
Ponteiro de Pilha
Registrador Stack Pointer
SEL/EESC-USP
Grupo
de
Sistemas
Digitais
, ED -( :I - D N (::
# 0 I D CI D ; ; ;D CI D
; E D I D ; , / ; D
: D:D E I ;D C DA D E D: ;D
C I I C C:
# 0 D: D : CI ;D ID;D D D I D
ED C D I A O D Q0 C D D : D
CID
DMA
SEL/EESC-USP
Grupo
de
Sistemas
Digitais
# ED I D ; ; ; ; : ;D V DE D ;
I C C: ; ; ;D CI ; ED I D ; , /
# )DAD: ; ;D : DE D: ;D I ;D ;
AI E ; C: ; A ;D E E I
; ED I D MI CD D (: D ID V - c
# (: D ; ID V -( E I D
E ; ; D ; ;D CI ED I ; , /
-( () / , / R - -U ,(
SEL/EESC-USP
Grupo
de
Sistemas
Digitais
-( () / , / R - -U ,(
SEL/EESC-USP
Grupo
de
Sistemas
Digitais
FIM

Aula 9 - Dispositivos de Entrada e Saida.pdf