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