s Dispositivos de Entrada e Saída

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

Transcript of s Dispositivos de Entrada e Saída

Page 1: s 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-0415 Introdução à Organização de Computadores

Prof. Dr. Marcelo Andrade da Costa Vieira

Aula 8

Page 2: s Dispositivos de Entrada e Saída

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

Page 3: s Dispositivos de Entrada e Saída

SEL/

EESC

-USP

Gru

po d

e Si

stem

as D

igita

is

ENTRADA e SAÍDA (E/S) (I/O - Input/Output)

Page 4: s Dispositivos de Entrada e Saída

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;

Page 5: s Dispositivos de Entrada e Saída

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

Page 6: s Dispositivos de Entrada e Saída

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

Page 7: s 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

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

Page 8: s 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 para Controle de Processos

Periféricos

n Para sistemas embarcados

Ø SensoresØ BotõesØ Motores de PassoØ ServomotoresØ FotocélulasØ Termostatos

Page 9: s Dispositivos de Entrada e Saída

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

Page 10: s 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

Page 11: s 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...

Page 12: s Dispositivos de Entrada e Saída

SEL/

EESC

-USP

Gru

po d

e Si

stem

as D

igita

is

Interfaces de Entrada e Saída

Page 13: s Dispositivos de Entrada e Saída

Operações de I/O

SEL/

EESC

-USP

Gru

po d

e Si

stem

as D

igita

is

Page 14: s Dispositivos de Entrada e Saída

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)

Page 15: s Dispositivos de Entrada e Saída

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.

Page 16: s Dispositivos de Entrada e Saída

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.

Page 17: s Dispositivos de Entrada e Saída

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)

Page 18: s Dispositivos de Entrada e Saída

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)

Page 19: s Dispositivos de Entrada e Saída

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

Page 20: s Dispositivos de Entrada e Saída

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

Page 21: s Dispositivos de Entrada e Saída

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

Page 22: s Dispositivos de Entrada e Saída

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

Page 23: s Dispositivos de Entrada e Saída

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

Page 24: s Dispositivos de Entrada e Saída

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

Page 25: s Dispositivos de Entrada e Saída

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:

Page 26: s Dispositivos de Entrada e Saída

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:

Page 27: s Dispositivos de Entrada e Saída

SEL/

EESC

-USP

Gru

po d

e Si

stem

as D

igita

is

I/O por Interrupção

Page 28: s Dispositivos de Entrada e Saída

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

Page 29: s Dispositivos de Entrada e Saída

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

Page 30: s Dispositivos de Entrada e Saída

SEL/

EESC

-USP

Gru

po d

e Si

stem

as D

igita

isDMA:

ACESSO DIRETO À MEMÓRIA

Page 31: s Dispositivos de Entrada e Saída

PILHA (STACK)

SEL/

EESC

-USP

Gru

po d

e Si

stem

as D

igita

is

Page 32: s Dispositivos de Entrada e Saída

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

Page 33: s Dispositivos de Entrada e Saída

Gru

po d

e Si

stem

as D

igita

is

Pilha (Stack)

Page 34: s Dispositivos de Entrada e Saída

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;

Page 35: s Dispositivos de Entrada e Saída

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

Page 36: s Dispositivos de Entrada e Saída

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:

Page 37: s Dispositivos de Entrada e Saída

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:

Page 38: s Dispositivos de Entrada e Saída

SEL/

EESC

-USP

Gru

po d

e Si

stem

as D

igita

is

Pilha (Stack)

Page 39: s Dispositivos de Entrada e Saída

SEL/

EESC

-USP

Gru

po d

e Si

stem

as D

igita

is

Exemplo de Funcionamento da Pilha

Page 40: s Dispositivos de Entrada e Saída

Memória ROM

Pilha

SP

PC

PCPCPC

SP 13h

PCPCPCPC

SP 0Ch

PCPCPCPCPC

PCPCPCPC

PCPCPC

Page 41: s Dispositivos de Entrada e Saída

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:

Page 42: s Dispositivos de Entrada e Saída

SEL/

EESC

-USP

Gru

po d

e Si

stem

as D

igita

is

FIM