SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
Dispositivos de Entrada e Saída
SEL-0415 Introdução à Organização de Computadores
Prof. Dr. Marcelo Andrade da Costa Vieira
Aula 8
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
ENTRADA e SAÍDA(I/O - Input/Output)
n Inserção dos dados
n Apresentação dos resultados
n Comunicação Homem/Máquina
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
ENTRADA e SAÍDA (E/S) (I/O - Input/Output)
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
ENTRADA e SAÍDA (E/S) (I/O - Input/Output)
n Entrada Æ Dispositivos (geralmente baseadosem chaves) por onde informações entram namemória
n Ex.: teclados, botões, mouse;
n Saída Æ Dispositivos que mostram o resultadoda operação executada
n Ex: monitores, impressoras, memória secundária;
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
Dispositivos de Entrada
Periféricosn 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
Gru
po d
e Si
stem
as D
igita
is
Dispositivos de Saída
Periféricosn 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
Gru
po d
e Si
stem
as D
igita
is
Dispositivos de Entrada e Saída
PeriféricosnOutros em ENTRADA E SAÍDA
ØDisco rígido - Grava e lê dadosØUSB Flash Drive - Grava e lê dados em memória FLASHØMODEM - Transmite e recebe dados pela linha telefônica
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
Dispositivos de Entrada e Saída para Controle de Processos
Periféricos
n Para sistemas embarcados
Ø SensoresØ BotõesØ Motores de PassoØ ServomotoresØ FotocélulasØ Termostatos
n Grande variedade de periféricos:n Entregando diferentes quantidades de dados.n Em velocidades diferentes.n Em formatos diferentes.
n Todos mais lentos que a CPU e Memória RAM.n Precisa de módulos (interfaces) de I/O.
Dispositivos de Entrada e Saída
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
Dispositivos de Entrada e Saída
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
Interfaces de Entrada e SaídaInterfaces de (I/O)
n Geralmente a CPU não pode comunicar-se diretamentecom os periféricos [ a comunicação é feita com aajuda de circuitos chamados de Interfaces ouMódulos de I/O
n Funções:n Presentes entre o barramento e o periféricon Compatibilidade entre os dispositivos e o µPn Controle da comunicaçãon Ex.: controlador de vídeo, controlador de disco, etc...
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
Interfaces de Entrada e Saída
Operações de I/O
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
Métodos para realização de operações de I/O
u Três tipos principais:
Operações de I/O
u Varredura (Pooling)
u Interrupção
u Acesso Direto à Memória (DMA)
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
EXEMPLO FIGURATIVO
O FUNCIONÁRIO ESTÁ TRABALHANDO E TEM COMO
FUNÇÃO RECEBER O RECADO DE QUEM LIGAR.
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
EXEMPLO FIGURATIVO
VARREDURA (telefone SEM campainha): ofuncionário de tempos em tempos verifica sehá alguém querendo lhe falar ao telefone;
INTERRUPÇÃO (telefone COM campainha):o funcionário apenas para de fazer o trabalhoquando o telefone toca, pois há alguémquerendo lhe falar ao telefone;
DMA - ACESSO DIRETO À MEMÓRIA(telefone COM campainha e COM secretáriaeletrônica): o telefone toca, a secretáriaeletrônica armazena o recado e o funcionáriosó para de fazer o trabalho quando lheconvier para ouvir o recado.
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
u A CPU controla diretamente todas as etapas dacomunicação com o dispositivo de I/O;
u O programa deve verificar os dispositivos de I/O detempos em tempos e parar o processamento principaldurante a comunicação;
u Deve-se criar uma sub-rotina para varredura e paraatendimento de cada dispositivo de I/O;
u Processo muito pouco eficiente:u Gasta-se muito tempo verificando os dispositivos de I/O;u O atendimento ao dispositivo de I/O pode não ser imediato;
I/O por Varredura (Pooling)
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
Exemplo de programa para o 8051:
n O computador deve realizara tarefa de mover dados damemória RAM interna;
n Ao mesmo tempo, deveverificar o estado de umbotão conectado na portaP3.2 (varredura);
n Se o botão for apertado,deve-se ligar um LEDconectado na porta P0.0;
I/O por Varredura (Pooling)
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
Exemplo de programa para o 8051:
I/O por Varredura (Pooling)
ORG 0000hSJMP PROG
VERIFICA: JNB P3.2,VOLTASETB P0.0
VOLTA: RETPROG: MOV 10h,30h
MOV 11h,31h ACALL VERIFICAMOV 12h,32hMOV 13h,33h ACALL VERIFICAMOV 14h,34hMOV 15h,35h...
Sub-rotina de varredura e de atendimento
Verificação
Verificação
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
u A CPU aguarda a interface de I/O requisitar umacomunicação;
u O programa não precisa verificar os dispositivos deI/O de tempos em tempos;
u Não precisa criar uma sub-rotina de varredura paraos dispositivos de I/O, já que a verificação érealizada automaticamente pelo hardware;
u Apenas deve-se criar uma sub-rotina paraatendimento à interrupção de cada um dosdispositivos de I/O;
u Essa sub-rotina deve ser escrita em um endereçopré-definido na memória de programa.
I/O por Interrupção
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
Exemplo de programa para o 8051:
n O computador deve realizara tarefa de mover dados damemória RAM interna;
n Ao mesmo tempo, deveverificar, por interrupção, oestado de um botãoconectado na porta P3.2
n Se o botão for apertado,deve-se ligar um LEDconectado na porta P0.0;
I/O por Interrupção
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
Exemplo de programa para o 8051:
I/O por InterrupçãoSE
L/EE
SC-U
SP G
rupo
de
Sist
emas
Dig
itais
Sub-rotina de atendimento à
interrupção
Não há a necessidade de
verificação de I/O por software
ORG 0000hSJMP PROGORG 0003hSETB P0.0RETI
PROG: MOV 10h,30hMOV 11h,31h MOV 12h,32hMOV 13h,33h MOV 14h,34hMOV 15h,35h...
ORG 0000hSJMP PROG
VERIFICA: JNB P3.2,VOLTASETB P0.0
VOLTA: RETPROG: MOV 10h,30h
MOV 11h,31h ACALL VERIFICAMOV 12h,32hMOV 13h,33h ACALL VERIFICAMOV 14h,34hMOV 15h,35h...
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
Varredura x InterrupçãoSE
L/EE
SC-U
SP G
rupo
de
Sist
emas
Dig
itais
ORG 0000hSJMP PROGORG 0003hSETB P0.0RETI
PROG: MOV 10h,30hMOV 11h,31h MOV 12h,32hMOV 13h,33h MOV 14h,34hMOV 15h,35h...
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
u Processo mais eficiente do que a varredura:u Enquanto a interrupção não ocorre, o µP pode realizaroutras tarefas;
u O µP só interrompe a tarefa atual quando ocorre arequisição de interrupção;
u Não gasta-se tempo verificando os dispositivos de I/O;u O atendimento ao dispositivo de I/O é imediato;
u Pode ser externa ou interna:u Interna: divisão por zero, overflow de timer, etc.u Externa: interfaces de I/0, disparo de timer, etc.
I/O por Interrupção
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is 1. Quando o evento ocorre, o µP altera um FLAGcorrespondente para sinalizar que existe umarequisição de interrupção;
2. Se o µP aceitar o pedido de interrupção (que pode serconfigurado via software), o µP termina de executar ainstrução atual e grava o endereço de retorno (PC+1)*em uma memória sequencial chamada PILHA (stack);
3. Em seguida, o µP desvia o programa (valor doregistrador PC) para o endereço pré-definido namemória de programa para executar a rotina deatendimento à interrupção;
* PC = Registrador Program Counter
I/O por InterrupçãoPasso-a-passo de uma Interrupção:
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is 4. Após o término da execução da rotina de interrupção(instrução de retorno: RET, RETI, etc.), o µP volta aoprograma principal no ponto onde parou, ou seja, oregistrador PC recebe de volta o endereço que haviasido armazenado na PILHA;
5. Nem sempre é possível prever o local exato noprograma onde ocorrerá o desvio para a sub-rotina deinterrupção (evento assíncrono);
6. A varredura é um evento síncrono, pois o local exatodo desvio para verificação está definido no programa.
I/O por InterrupçãoPasso-a-passo de uma Interrupção:
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
I/O por Interrupção
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
DMA (Direct Memory Access)
u Permite a movimentação de dados entre osdispositivos de I/O e a memória do computadorsem envolver o microprocessador na transferência;
u Processo mais eficiente do que todos os outros,pois não utiliza o µP e não sobrecarrega obarramento.
I/O por DMA
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
u Dispositivo de hardware dedicado à operação detransferência de dados entre um dispositivo de I/O e amemória principal;
u Coloca a saída do microprocessador em estado dealta impedância (tri-state) para permitir a umdispositivo externo o Acesso Direto à Memória – BusRequest;
u Acesso direto à memória (DMA) permite uma formamais rápida de mover dados entre as portas de I/O e amemória.
DMA:ACESSO DIRETO À MEMÓRIA
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
isDMA:
ACESSO DIRETO À MEMÓRIA
PILHA (STACK)
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
Gru
po d
e Si
stem
as D
igita
is
Pilha (Stack)n Memória de escrita e leitura (RWM);
n Sequencial;
n Tipo LIFO[ Last in First Out;n Utilizada principalmente para armazenamento de endereçode retorno de uma sub-rotina de varredura ou deinterrupção;
n A pilha também pode ser usada para armazenamento dedados temporários, utilizando as instruções PUSH e POP;
n Cada posição da pilha possui m bits [ tamanhonecessário para armazenar endereços da memória deprograma (registrador Program Counter – PC).
Gru
po d
e Si
stem
as D
igita
is
Pilha (Stack)
Gru
po d
e Si
stem
as D
igita
is
Guarda automaticamente o endereço de retorno na pilha (PC+1) antes de desviar para a sub-rotina
Resgata da pilha o endereço de retorno e salva no registrador PC (program counter)
Pilha (Stack)üUso mais importante Æ armazenar endereços deretorno de sub-rotinas de varredura ou interrupção:
ü Instrução de varredura: ACALL, LCALL ou umaInterrupção Æ O programa principal é desviadopara o endereço de início da sub-rotina;
ü Instrução de retorno: RET, RETI Æ últimainstrução da sub-rotina;
Gru
po d
e Si
stem
as D
igita
is
Stack Pointer (SP)n Registrador Stack Pointer (Ponteiro de Pilha):
n O SP aponta para o último endereço da pilha (topoda pilha) e é incrementado cada vez que umendereço ou dado é armazenado na pilha;
n O SP é decrementado cada vez que um endereçoou dado é lido na pilha;
n O SP garante que os dados sejam escritos ou lidossequencialmente na pilha;
n O SP tem largura de n bits [ o qual define o tamanhomáximo da pilha (número máximo de endereços oudados que ela consegue armazenar).
Gru
po d
e Si
stem
as D
igita
is
Pilha (Stack)Após uma chamada de sub-rotina de varredura (instruçãoACALL, LCALL) ou uma interrupção ou uma instruçãoPUSH:
Gru
po d
e Si
stem
as D
igita
is
Pilha (Stack)Término de execução de uma sub-rotina de varredura ouinterrupção (instrução de retorno: RET, RETI) ou apósuma instrução POP:
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
Pilha (Stack)
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
Exemplo de Funcionamento da Pilha
Memória ROM
Pilha
SP
PC
PCPCPC
SP 13h
PCPCPCPC
SP 0Ch
PCPCPCPCPC
PCPCPCPC
PCPCPC
Gru
po d
e Si
stem
as D
igita
is
Pilha (Stack)n Alguns computadores usam uma área da memória dedados (RAM) para servir como pilha;
n Nesse caso, a pilha pode ser alocada para qualquer áreana RAM interna, carregando-se o endereço adequado noregistrador SP;
n Para o 𝜇C 8051:
SEL/
EESC
-USP
Gru
po d
e Si
stem
as D
igita
is
FIM