































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Este documento explica o conceito de interrupções no arm, diferenciar interrupções de subrotinas, conhecer os mecanismos de interrupção do arm, aprender a instalar interrupções na memória e detalhar o atendimento de uma interrupção. O texto inclui um exemplo prático e a organização dos endereços de interrupção.
Tipologia: Exercícios
1 / 39
Esta página não é visível na pré-visualização
Não perca as partes importantes!
































INTERRUPÇÃO
Objetivos
Controlador
Vamos supor que você está jogando CandyCrush no seu smartphone e alguém resolve ligar para você...
É a quebra da sequência de operação de forma a atender eventos especiais, tais como:
Como eu informo a CPU que um evento quer interrompê-la?
Via um sinal de interrupção enviado ao GSI por linhas de interrupção
Cada linha de interrupção têm associada a ela um dispositivo (ou conjunto deles) que enviam o sinal de interrupção quando desejam ser atendidos.
GERADOR DE SINAIS DE INTERRUPÇÃO
D Q
CLR Q
GERADOR DE SEQUÊNCIA DE INTERRUPÇÃO
^ ...^ ...
...
sinais de controle sinais de controle sinal do fim da sequência de micro- comandos
sinal do fim da sequência de micro- comandos
sinal de^ C.O. interrupção
Flip-Flop de Interrupção sinais de controle
Onde iremos armazenas essas informações?
Pilha ← (PC) Pilha ← (PSW) PC ← End da RSI
End de retorno Estado corrente do processador
GERADOR DE SINAIS DE INTERRUPÇÃO
Desvia a execução para RSI
ROTINAS DE SERVIÇO DE INTERRUPÇÃO
Qual é o endereço da Rotina de Serviço de Interrupção?
Mapeamento Interno à CPU
Mapeamento
ROTINAS DE SERVIÇO DE INTERRUPÇÃO
Qual é o endereço da Rotina de Serviço de Interrupção?
Mapeamento Externo à CPU
end
Controlador de Interrupções
GSI
INTERRUPÇÃO
Onde se encontram as Rotinas de Serviço de Interrupção?
Possibilidade 1: Nos endereços associadas às linhas de interrupção L1 → RS L2 → RS
L3 → RS
(1) Em posições não contíguas de memória
Ln (^) ENDn
“mouse”
“mouse”
“teclado”
“teclado”
Invadiu a área reservada para a RSI de outra linha de interrupção!
Solução?
Desviar a execução para uma área livre da memória
“teclado” – P
“teclado” – P
... JUMP ENDX
Nesta forma de organização, cada endereço associado à linha de interrupção possui um conjunto de palavras para instalação das RSIs.
SINAIS DO GSI PUSH PC PUSH PSW JUMP ENDi PC ← ENDi
ORGANIZAÇÃO DOS ENDEREÇOS DE INTERRUPÇÃO
(2) Em vetores (interrupção vetorizada)
Ln (^) ENDn
Nesta forma de organização, os endereços associados à cada linha de interrupção estão em posições contíguas da memória ...
Desta forma, os endereços de interrupção conterão apenas os endereços das RSI apropriadas.
Isto implica não haver espaço para a instalação da RSI ...
SINAIS DO GSI PUSH PC PUSH PSW JUMP (ENDi) PC ← (ENDi) = RSIi
ORGANIZAÇÃO DOS ENDEREÇOS DE INTERRUPÇÃO
ORGANIZAÇÃO DOS ENDEREÇOS DE INTERRUPÇÃO
L3 L2 L
Se, antes de executar a RSI eu seto 001 no PSW, quem poderá interrompê-la?
A este valor que setamos no PSW chamamos de MÁSCARA DE INTERRUPÇÃO
Apenas a Linha 1!
Muitas vezes faz-se necessário passar uma máscara para o Registrador de Estado antes de iniciar a execução da RSI. Como faremos isso?
INTERRUPÇÃO X SUBROTINAS
ATENDIMENTO Síncrono (programa)
Assíncrono (sinal externo)
Própria Instrução Vetor de Interrupções
DESVIO DA EXECUÇÃO Salva PC Salva PC e PSW
RETORNO AO Restaura PC Restaura PC e PSW PROGRAMA
Controlador ao executar CALL
Controlador ao executar RTS
Controlador ao executar RTI
Diferença entre Interrupção e Subrotina?
INSTALANDO RSIs
Seja uma arquitetura onde as linhas de interrupção L1, L2 e L3 estão associadas a um Vetor de Interrupções de endereços contíguos e sem PSW. O Vetor de Interrupções começa na posição 0 de memória e as RSIs estão, respectivamente, nas posições 300, 400 e 500. Escreva um programa que implemente estas condições.
L END L2 (^) END L3 (^) END
Antes de continuar, vamos falar mais um pouco sobre pseudo-instruções ...