37
Arquitectura de Computadores (ACom) MEAer Acetatos das Aulas Te´oricas Vers˜ ao 5.0 - Portuguˆ es Aula N o 06: ıtulo: Perif´ ericos do P3: entradas e sa´ ıdas, interrup¸ oes e tempo- rizador Sum´ ario: Ambiente de desenvolvimento do P3; Perif´ ericos do P3; En- tradas e sa´ ıdas;Interrup¸c˜ oes; Contagem do Tempo. 2015/2016 [email protected]

Arquitectura de Computadores (ACom) · Perif ericos do P3: entradas e sa das, interrup c~ oes e temporizador Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 1 / 47 Aula Anterior Arquitectura

  • Upload
    lykien

  • View
    212

  • Download
    0

Embed Size (px)

Citation preview

Arquitectura de Computadores(ACom)

MEAer

Acetatos das Aulas Teoricas

Versao 5.0 - Portugues

Aula No 06:

Tıtulo: Perifericos do P3: entradas e saıdas, interrupcoes e tempo-rizador

Sumario: Ambiente de desenvolvimento do P3; Perifericos do P3; En-tradas e saıdas; Interrupcoes; Contagem do Tempo.

2015/2016

[email protected]

Perifericos do P3: entradas esaıdas, interrupcoes e temporizador

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 1 / 47

Arquitectura de Computadores(ACom)

Aula Anterior

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 2 / 47

Na aula anterior...

� Recursos do P3� Instrucoes do P3:

◮ Instrucoes Aritmeticas

◮ Instrucoes Logicas

◮ Instrucoes de Deslocamento

◮ Instrucoes de Controlo

◮ Instrucoes de Transferencia de Dados

◮ Instrucoes Genericas

Road Map

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 3 / 47

Planeamento

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 4 / 47

� Planeamento

Sumario

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 5 / 47

Hoje:

� Ambiente de desenvolvimento do P3;� Perifericos do P3;� Entradas e saıdas;� Interrupcoes;� Contagem do Tempo.

Bibliografia:

• Seccoes 14.5 e A.2

Ambiente de Desenvolvimento do P3

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 6 / 47

Ambiente de Desenvolvimento do P3

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 7 / 47

Constituıdo por duas ferramentas distintas (em Linux):

� Compilador de linguagem AssemblyInvocacao: $ p3as-linux <nome>.as

Resultado:

◮ <nome>.exe - Codigo binario◮ <nome>.lis - Listagem das referencias (tags) utilizadas

� Simulador do processador P3Invocacao: $ java -jar p3sim.jar <nome>.exe

Simulador do processador P3

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 8 / 47

� Simulador do processador P3:

Perifericos do processador P3

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 9 / 47

Perifericos do processador P3

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 10 / 47

� Varios perifericos disponıveis:

◮ Entrada:

• 8 Interruptores ON-OFF (switches)• 15 Botoes de pressao*

◮ Saıda:

• 16 LEDs• 4 Displays de 7 segmentos• LCD de 2 linhas

◮ Entrada & Saıda:

• Janela de texto

◮ Outros:

• Temporizador*

* - Atraves de interrupcao

LEDs

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 11 / 47

� Utilizacao:

◮ Acessıveis atraves do endereco FFF8h;◮ O estado individual de cada LED (ligado/desligado) e

definido por uma escrita para este porto;◮ O LED da direita e controlado pelo bit menos

significativo da palavra escrita.

LEDs

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 12 / 47

� Exemplo:

LEDS EQU FFF8h

ORIG 0000h

...

MOV R1,1100111011011011b

MOV M[LEDS], R1

...

Interruptores ON-OFF (switches)

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 13 / 47

� Utilizacao:

◮ Acessıveis atraves do endereco FFF9h;◮ Uma leitura deste endereco permite ler, em simultaneo,

o estado do conjunto dos 8 interruptores;◮ Ao interruptor da direita corresponde o bit menos

significativo da palavra lida.

Interruptores ON-OFF (switches)

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 14 / 47

� Exemplo:

LEDS EQU FFF8h

SWITCH EQU FFF9h

ORIG 0000h

...

ReadSW: MOV R1, M[SWITCH]

MOV M[LEDS], R1

BR ReadSW

...

Displays de 7 Segmentos

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 15 / 47

� Utilizacao:

◮ Acessıveis atraves dos enderecos FFF0h, FFF1h, FFF2h eFFF3h;

◮ Cada um destes portos controla, da direita para aesquerda, um conjunto de 7 segmentos de LEDs;

◮ Os 4 bits menos significativos determinam o caracterhexadecimal (0h a Fh) que aparece no display.

Displays de 7 Segmentos

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 16 / 47

� Exemplo:

DISPLAY7SEG0 EQU FFF0h

DISPLAY7SEG1 EQU FFF1h

DISPLAY7SEG2 EQU FFF2h

DISPLAY7SEG3 EQU FFF3h

ORIG 0000h

...

MOV R1, 3

MOV R2, 15

MOV M[DISPLAY7SEG3], R2

SUB R2, R1

MOV M[DISPLAY7SEG2], R2

SUB R2, R1

MOV M[DISPLAY7SEG1], R2

SUB R2, R1

MOV M[DISPLAY7SEG0], R2

...

LCD

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 17 / 47

� Utilizacao:

◮ Display com 16 colunase 2 linhas de texto;

◮ Uma escrita para oporto FFF5h faz ecoar ocaracter ASCIIcorrespondente aos8 LSBs da palavraescrita;

◮ O porto FFF4h e um porto de controlo:

• Bit 15 - Liga ou desliga o LCD;• Bit 5 - Limpa o LCD;• Bit 4 - Posiciona o cursor na linha 0 ou 1;• Bits 3 a 0 - Posiciona o cursor na coluna especificada.

LCD

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 18 / 47

� Exemplo:

LCD_CTR EQU FFF4h

LCD_CHAR EQU FFF5h

ORIG 8000h

Text STR ’Hello World’,0

ORIG 0000h

...

MOV R1, 1000000000100000b ; Activa e limpa o LCD

MOV M[LCD_CTR], R1

MOV R1, 1000000000000011b ; Linha 0, Coluna 3

MOV M[LCD_CTR], R1

MOV R2, Text ; Ponteiro para o caracter a escrever

Other: MOV R3, M[R2]

CMP R3, R0

BR.Z EndLCD

CMP R3, ’ ’

BR.NZ Cont

OR R1, 0000000000010000b ; Muda de linha

Cont: MOV M[LCD_CHAR], R3 ; Escreve caracter

INC R2

INC R1

MOV M[LCD_CTR], R1 ; Avanca para a proxima posic~ao

BR Other

EndLCD: BR EndLCD

Janela de Texto

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 19 / 47

Janela de Texto

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 20 / 47

� Utilizacao:

◮ Permite ler caracteres do teclado do computador;◮ Permite escrever caracteres numa janela com 24 linhas e

80 colunas;◮ Estao reservados 4 portos:

• Porto de Leitura - FFFFh (leitura):

◦ Retorna o caracter ASCII correspondente a ultimatecla premida sobre a janela de texto;

• Porto de Escrita - FFFEh (escrita):

◦ Permite escrever um dado caracter ASCII na janela detexto;

◦ A janela mantem internamente um cursor onde estecaracter e escrito;

Janela de Texto

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 21 / 47

� Utilizacao:

• Porto de Estado - FFFDh (leitura):

◦ Permite testar se existe ou nao algum caracter para lerna janela de texto; caso nao haja, uma leitura desteporto retorna 0;

• Porto de Controlo - FFFCh (escrita):

◦ Uma escrita do valor FFFFh inicializa (apaga) a janelade texto;

◦ Apos a inicializacao, a escrita de um caracter no portode escrita incrementa automaticamente o cursor;

◦ E possıvel posicionar o cursor numa dada posicaoarbitraria da janela escrevendo, para o porto decontrolo, a coordenada desejada de acordo com aseguinte representacao:

15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00Linha Coluna

Janela de Texto

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 22 / 47

� Exemplo:

TXT_CTR EQU FFFCh

TXT_ST EQU FFFDh

TXT_WR EQU FFFEh

TXT_RD EQU FFFFh

ORIG 8000h

Prompt STR ’Type some text (press . to finish): ’,0

Nome TAB 80

ORIG 0000h

...

MOV R2, Prompt ; Ponteiro para o caracter a escrever

NxChar: MOV R3, M[R2]

CMP R3, R0

BR.Z RdKey

MOV M[TXT_WR], R3 ; Escreve caracter

INC R2

BR NxChar

RdKey: ...

Janela de Texto

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 23 / 47

� Exemplo (cont):...

MOV R2, R0

Wait: CMP M[TXT_ST], R0 ; Ciclo de espera por uma tecla primida

BR.Z Wait

MOV R1, M[TXT_RD] ; Le a ultima tecla primida

CMP R1, ’.’

BR.Z EndInp

MOV M[TXT_WR], R1 ; Escreve caracter lido

MOV M[R2+Nome], R1

INC R2

BR Wait

EndInp: MOV M[R2+Nome], R0

...

Janela de Texto

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 24 / 47

� Exemplo (cont):...

MOV R1, FFFFh

MOV M[TXT_CTR], R1 ; Inicializa e limpa a janela

MOV R1, 050Ah ; Linha 5, coluna 10

MOV M[TXT_CTR], R1 ; Posiciona cursor

MOV R2, R0

NxStep: MOV R3, M[R2+Nome]

CMP R3, R0

BR.Z EndPrg

MOV M[TXT_WR], R3 ; Escreve caracter

INC R2

INC R1 ; Avanca para a proxima coluna

MOV M[TXT_CTR], R1 ; Posiciona cursor

BR NxStep

EndPrg: BR EndPrg

Janela de Texto

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 25 / 47

� Exemplo (cont):...

MOV R1, FFFFh

MOV M[TXT_CTR], R1 ; Inicializa e limpa a janela

MOV R1, 050Ah ; Linha 5, coluna 10

MOV M[TXT_CTR], R1 ; Posiciona cursor

MOV R2, R0

NxStep: MOV R3, M[R2+Nome]

CMP R3, R0

BR.Z EndPrg

MOV M[TXT_WR], R3 ; Escreve caracter

INC R2

INC R1 ; Avanca para a proxima coluna

MOV M[TXT_CTR], R1 ; Posiciona cursor

BR NxStep

EndPrg: BR EndPrg

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 26 / 47

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 27 / 47

� Interrupcoes:

◮ Acontecem quando a sequencia normal das instrucoes ealterada por motivos externos (e nao so) ao processador;

◮ Necessidade de efectuar algum processamento especıfico;◮ Operacoes de entrada/saıda (teclado, porto serie, etc.).

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 28 / 47

� Exemplos:

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 29 / 47

� Exemplos:

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 30 / 47

� Alternativa ao uso de interrupcoes:

◮ Polling - o processador amostra, a intervalos regulares, ovalor sob observacao;Problema: sobrecarga grande do processador!!!

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 30 / 47

� Alternativa ao uso de interrupcoes:

◮ Polling - o processador amostra, a intervalos regulares, ovalor sob observacao;Problema: sobrecarga grande do processador!!!

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 30 / 47

� Alternativa ao uso de interrupcoes:

◮ Polling - o processador amostra, a intervalos regulares, ovalor sob observacao;Problema: sobrecarga grande do processador!!!

� Melhor solucao - Interrupcoes:

◮ Possibilidade de um dispositivo exterior sinalizar que asequencia normal de instrucoes deve ser interrompida eque o controlo deve ser transferido para uma rotina deatendimento da interrupcao.

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 30 / 47

� Alternativa ao uso de interrupcoes:

◮ Polling - o processador amostra, a intervalos regulares, ovalor sob observacao;Problema: sobrecarga grande do processador!!!

� Melhor solucao - Interrupcoes:

◮ Possibilidade de um dispositivo exterior sinalizar que asequencia normal de instrucoes deve ser interrompida eque o controlo deve ser transferido para uma rotina deatendimento da interrupcao.

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 31 / 47

� Sinalizacao das Interrupcoes:

◮ Cada processador disponibiliza uma ou mais linhas deinterrupcao que sao activadas pelos dispositivosexteriores;

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 31 / 47

� Sinalizacao das Interrupcoes:

◮ Cada processador disponibiliza uma ou mais linhas deinterrupcao que sao activadas pelos dispositivosexteriores;

� Identificacao das Interrupcoes:

◮ Apos ter recebido a indicacao de que uma interrupcaovai ser atendida, o dispositivo utiliza um dosbarramentos exteriores para identificar a interrupcao -vector de interrupcao;

→ uma unica linha de interrupcao pode sinalizar variasinterrupcoes diferentes!

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 32 / 47

� Atendimento das Interrupcoes:

◮ O processador acede a uma tabela que indica qual oendereco da sub-rotina que deve ser usada para atendero pedido - tabela de rotinas de interrupcao;

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 32 / 47

� Atendimento das Interrupcoes:

◮ O processador acede a uma tabela que indica qual oendereco da sub-rotina que deve ser usada para atendero pedido - tabela de rotinas de interrupcao;

◮ Transfere o controlo da execucao para esta sub-rotina,apos a salvaguarda (automatica) na pilha de:

• Registo de Estado (RE);• Program Counter (PC)

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 32 / 47

� Atendimento das Interrupcoes:

◮ O processador acede a uma tabela que indica qual oendereco da sub-rotina que deve ser usada para atendero pedido - tabela de rotinas de interrupcao;

◮ Transfere o controlo da execucao para esta sub-rotina,apos a salvaguarda (automatica) na pilha de:

• Registo de Estado (RE);• Program Counter (PC)

� Para que os registos RE e PC sejam correctamenterecuperados, as rotinas de atendimento das interrupcoesdevem obrigatoriamente terminar com a instrucao RTI(em vez de RET, como habitualmente).

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 33 / 47

� Tabela de rotinas de interrupcao:

◮ Residente numa zona fixa de memoria;◮ Possui tantas entradas quantas as interrupcoes do

processador;◮ Cada entrada contem o endereco do inıcio da rotina de

tratamento dessa interrupcao.

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 33 / 47

� Tabela de rotinas de interrupcao:

◮ Residente numa zona fixa de memoria;◮ Possui tantas entradas quantas as interrupcoes do

processador;◮ Cada entrada contem o endereco do inıcio da rotina de

tratamento dessa interrupcao.

� No P3 esta tabela comeca no endereco FE00h;

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 33 / 47

� Tabela de rotinas de interrupcao:

◮ Residente numa zona fixa de memoria;◮ Possui tantas entradas quantas as interrupcoes do

processador;◮ Cada entrada contem o endereco do inıcio da rotina de

tratamento dessa interrupcao.

� No P3 esta tabela comeca no endereco FE00h;Exemplo:

Caso seja activada a interrupcao n, a execucao da rotina deatendimento da interrupcao ocorrera a partir do valor guardado naposicao de memoria FE00h + n:

PC ← M[FE00h + n]

Se for a interrupcao 5...PC ← M[FE05h]

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 34 / 47

� NOTA: as interrupcoes podem ocorrer em qualquermomento, sem que o processador o possa prever...Exemplo: entre a execucao de uma instrucao aritmetica e ainstrucao de salto condicional que dela depende:

Loop: DEC R1

← Interrupc~ao !!!

BR.Z Loop

Daı a necessidade em salvaguardar o Registo deEstado (RE)...

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 35 / 47

� Activacao/Inibicao das Interrupcoes:

◮ O programador pode desactivar um bit de estado (E) demodo a impedir que as interrupcoes sejam atendidas;

→ Necessario em zonas de codigo onde a ocorrencia deuma interrupcao pode causar comportamentosindesejados;

◮ Como?

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 35 / 47

� Activacao/Inibicao das Interrupcoes:

◮ O programador pode desactivar um bit de estado (E) demodo a impedir que as interrupcoes sejam atendidas;

→ Necessario em zonas de codigo onde a ocorrencia deuma interrupcao pode causar comportamentosindesejados;

◮ Como?[P3]: Instrucoes ENI e DSI.

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 35 / 47

� Activacao/Inibicao das Interrupcoes:

◮ O programador pode desactivar um bit de estado (E) demodo a impedir que as interrupcoes sejam atendidas;

→ Necessario em zonas de codigo onde a ocorrencia deuma interrupcao pode causar comportamentosindesejados;

◮ Como?[P3]: Instrucoes ENI e DSI.

� No P3 as interrupcoes sao automaticamente inibidas duranteo tempo em que o processador executa uma rotina deatendimento de interrupcao.Porque?

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 36 / 47

� Activacao/Inibicao das Interrupcoes:

◮ E ainda possıvel filtrar as interrupcoes que devem seratendidas ou impedir o atendimento de outras atraves deuma mascara de interrupcoes:

• Colocar a zero o bit com peso igual ao vector deinterrupcao que se pretende inibir:

15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 36 / 47

� Activacao/Inibicao das Interrupcoes:

◮ E ainda possıvel filtrar as interrupcoes que devem seratendidas ou impedir o atendimento de outras atraves deuma mascara de interrupcoes:

• Colocar a zero o bit com peso igual ao vector deinterrupcao que se pretende inibir:

15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1

◮ Em geral, a mascara reside numa determinada posicaode memoria do processador:[P3]: endereco FFFAh

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 36 / 47

� Activacao/Inibicao das Interrupcoes:

◮ E ainda possıvel filtrar as interrupcoes que devem seratendidas ou impedir o atendimento de outras atraves deuma mascara de interrupcoes:

• Colocar a zero o bit com peso igual ao vector deinterrupcao que se pretende inibir:

15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1

◮ Em geral, a mascara reside numa determinada posicaode memoria do processador:[P3]: endereco FFFAh

Exemplo: activacao das interrupcoes 0, 1 e 3

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 36 / 47

� Activacao/Inibicao das Interrupcoes:

◮ E ainda possıvel filtrar as interrupcoes que devem seratendidas ou impedir o atendimento de outras atraves deuma mascara de interrupcoes:

• Colocar a zero o bit com peso igual ao vector deinterrupcao que se pretende inibir:

15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1

◮ Em geral, a mascara reside numa determinada posicaode memoria do processador:[P3]: endereco FFFAh

Exemplo: activacao das interrupcoes 0, 1 e 3

MOV R1, 0000 0000 0000 1011b

MOV M[FFFAh], R1

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 37 / 47

� Como e que e desencadeada uma interrupcao?

◮ Botoes de Pressao:

• Estao disponıveis 15 botoes de pressao, cada umassociado a um vector de interrupcao;

• O accionamento do botao de ındice i faz com que oP3 chame a rotina de interrupcao associada aovector i: PC <- M[FE00h+i]

◮ Temporizador (vemos a seguir)

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 38 / 47

� Passos necessarios para a utilizacao de interrupcoes:

0. Inicializacao do Stack!!!1. Preenchimento da tabela de interrupcoes2. Inicializacao da mascara de interrupcoes3. Activacao das interrupcoes

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 38 / 47

� Passos necessarios para a utilizacao de interrupcoes:

0. Inicializacao do Stack!!!

SP INICIAL EQU FDFFh

; Programa principal

Inicio: MOV R7, SP INICIAL

MOV SP, R7

...

1. Preenchimento da tabela de interrupcoes2. Inicializacao da mascara de interrupcoes3. Activacao das interrupcoes

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 38 / 47

� Passos necessarios para a utilizacao de interrupcoes:

0. Inicializacao do Stack!!!1. Preenchimento da tabela de interrupcoes

; Tabela de interrupc~oes

ORIG FE00h

INT0 WORD ...

INT1 WORD ResetCont

INT2 WORD ...

; Rotina de atendimento da interrupc~ao

ResetCont: MOV M[Contador], R0

RTI

2. Inicializacao da mascara de interrupcoes3. Activacao das interrupcoes

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 38 / 47

� Passos necessarios para a utilizacao de interrupcoes:

0. Inicializacao do Stack!!!1. Preenchimento da tabela de interrupcoes2. Inicializacao da mascara de interrupcoes

INT MASK ADDR EQU FFFAh

INT MASK EQU 0000000000000010b

; Programa principal

Inicio: ...

MOV R7, INT MASK

MOV M[INT MASK ADDR], R7

...

3. Activacao das interrupcoes

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 38 / 47

� Passos necessarios para a utilizacao de interrupcoes:

0. Inicializacao do Stack!!!1. Preenchimento da tabela de interrupcoes2. Inicializacao da mascara de interrupcoes3. Activacao das interrupcoes

; Programa principal

Inicio: ...

ENI

...

Interrupcoes

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 39 / 47

� Exemplo:

SP INICIAL EQU FDFFh

INT MASK ADDR EQU FFFAh

INT MASK EQU 0000000000000001b

; Tabela de interrupc~oes

ORIG FE00h

INT0 WORD ResetCont

ORIG 0000h ; Programa principal

Inicio: MOV R7, SP INICIAL

MOV SP, R7

MOV R7, INT MASK

MOV M[INT MASK ADDR], R7

ENI

...

; Rotina de atendimento da interrupc~ao

ResetCont: MOV M[Contador], R0

RTI

Contagem do Tempo

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 40 / 47

Contagem do Tempo

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 41 / 47

� Como tratar a passagem do tempo numcomputador?Solucao: temporizadores (timers)

Contagem do Tempo

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 41 / 47

� Como tratar a passagem do tempo numcomputador?Solucao: temporizadores (timers)

� O processador P3 possui um temporizador (timer) parapermitir contabilizar de forma precisa a passagem do tempo;

Contagem do Tempo

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 41 / 47

� Como tratar a passagem do tempo numcomputador?Solucao: temporizadores (timers)

� O processador P3 possui um temporizador (timer) parapermitir contabilizar de forma precisa a passagem do tempo;

� Implementado atraves de um contador que e decrementado aintervalos de tempo regulares de 100 ms;

Contagem do Tempo

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 41 / 47

� Como tratar a passagem do tempo numcomputador?Solucao: temporizadores (timers)

� O processador P3 possui um temporizador (timer) parapermitir contabilizar de forma precisa a passagem do tempo;

� Implementado atraves de um contador que e decrementado aintervalos de tempo regulares de 100 ms;Como contar 1 minuto e 30 segundos?

Contagem do Tempo

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 41 / 47

� Como tratar a passagem do tempo numcomputador?Solucao: temporizadores (timers)

� O processador P3 possui um temporizador (timer) parapermitir contabilizar de forma precisa a passagem do tempo;

� Implementado atraves de um contador que e decrementado aintervalos de tempo regulares de 100 ms;Como contar 1 minuto e 30 segundos?1m30s = 90s = 900 intervalos de 100 ms

Contagem do Tempo

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 42 / 47

� O temporizador e controlado por duas posicoes de memoria:

◮ endereco FFF6h - corresponde ao temporizadorpropriamente dito, contendo o numero de unidades detempo a decrementar;

◮ endereco FFF7h - permite parar (=0) ou activar (=1) ofuncionamento do contador;

Contagem do Tempo

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 42 / 47

� O temporizador e controlado por duas posicoes de memoria:

◮ endereco FFF6h - corresponde ao temporizadorpropriamente dito, contendo o numero de unidades detempo a decrementar;

◮ endereco FFF7h - permite parar (=0) ou activar (=1) ofuncionamento do contador;

� Inicialmente a posicao de memoria FFF7h esta a 0 sendonecessario escrever la o valor 1 para que a contagem tenhainıcio;

Contagem do Tempo

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 42 / 47

� O temporizador e controlado por duas posicoes de memoria:

◮ endereco FFF6h - corresponde ao temporizadorpropriamente dito, contendo o numero de unidades detempo a decrementar;

◮ endereco FFF7h - permite parar (=0) ou activar (=1) ofuncionamento do contador;

� Inicialmente a posicao de memoria FFF7h esta a 0 sendonecessario escrever la o valor 1 para que a contagem tenhainıcio;

� Quando o temporizador atinge o valor 0 (fim de contagem),a posicao de memoria FFF7h e automaticamente colocada a0, parando a contagem;

Contagem do Tempo

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 42 / 47

� O temporizador e controlado por duas posicoes de memoria:

◮ endereco FFF6h - corresponde ao temporizadorpropriamente dito, contendo o numero de unidades detempo a decrementar;

◮ endereco FFF7h - permite parar (=0) ou activar (=1) ofuncionamento do contador;

� Inicialmente a posicao de memoria FFF7h esta a 0 sendonecessario escrever la o valor 1 para que a contagem tenhainıcio;

� Quando o temporizador atinge o valor 0 (fim de contagem),a posicao de memoria FFF7h e automaticamente colocada a0, parando a contagem;

� Para iniciar nova contagem sera pois necessario colocar novovalor em FFF6h e colocar 1 em FFF7h.

Contagem do Tempo

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 43 / 47

� O temporizador esta associado a interrupcao 15, a qual eactivada quando o contador atinge o valor 0

Contagem do Tempo

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 43 / 47

� O temporizador esta associado a interrupcao 15, a qual eactivada quando o contador atinge o valor 0:

◮ Para garantir a maxima precisao, e conveniente que are-programacao do timer seja feita pela propria rotinade atendimento da interrupcao!!!

• Re-iniciar intervalo de contagem em FFF6h• Re-activar contagem em FFF7h

Contagem do Tempo (exemplo)

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 44 / 47

TopoPilha EQU FDFFh ; endereco do topo da pilha

InterrupMask EQU FFFAh ; endereco da Mascara de Interrupc~oes

TimerValue EQU FFF6h ; endereco do Temporizador

TimerControl EQU FFF7h ; endereco do controlo do temporizador

Int15_mask EQU 8000h ; 1000 0000 0000 0000 b

TimeLong EQU 0050h

EnableTimer EQU 0001h

ORIG FE0Fh ; FE0Fh = FE00h + Fh (Fh = 15)

INT15 WORD TimerSub ; Preenchimento da posic~ao 15 da Tabela de Interrupc~oes

ORIG 0000h

MOV R1,TopoPilha

MOV SP,R1 ; inicializa SP

MOV R1,Int15_mask

MOV M[InterruptMask],R1 ; Permite a interrupc~ao 15 (timer)

MOV R1,TimeLong

MOV M[TimerValue],R1 ; definir valor de contagem do timer

MOV R1,EnableTimer

MOV M[TimerControl],R1 ; inicia contagem

ENI ; aceita interrupc~oes

...

; esta subrotina e chamada quando o temporizador chegou ao fim (0) vai ser necessario

; definir novo valor de contagem e permitir que essa contagem comece ( M[FFF7h] = 1 )

TimerSub: PUSH R1

MOV R1,TimeLong

MOV M[TimerValue],R1 ; definir valor de contagem do timer

MOV R1,EnableTimer

MOV M[TimerControl],R1 ; inicia contagem

...

POP R1

RTI

Proxima Aula

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 45 / 47

Proxima Aula

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 46 / 47

� Traducao de linguagem de alto nıvel para Assembly:

◮ Constantes◮ Variaveis◮ Estruturas de controlo◮ Chamadas a sub-rotinas

� Passagem de parametros para sub-rotinas:

◮ Por registo◮ Por memoria◮ Pela pilha

Nota de Agradecimento

Ambiente deDesenvolvimento doP3

Perifericos doprocessador P3

Interrupcoes

Contagem do Tempo

Proxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 47 / 47

Agradecimento

Algumas paginas desta apresentacao foram extraidas de:

[1] Jose Carlos Monteiro, “Arquitectura de Computadores”, InstitutoSuperior Tecnico (IST), Universidade Tecnica de Lisboa, Portugal,2010.