EA-869 - Dúvidas Frequentes
Capítulo VI
A seção VI.2 do livro-texto apresenta uma
lista de dúvidas frequentes e soluções. Ela é muito elucidativa.
O que é uma rotina de serviço crítica?
O que é um sinal de reconhecimento de interrupção
(interrupt acknowledge)?
Solução do exercício 23 do Capítulo.
O que é uma rotina de serviço crítica?
No contexto da Capítulo VI uma rotina de serviço crítica é aquela
cuja execução não deve ser interrompida.
O que é um sinal de reconhecimento de interrupção
(interrupt acknowledge)?
Quando o mapeamento de endereço de rotina de interrupção
é externo à UCP, o Controlador de Interrupções pode gerar um sinal
no pino de interrupção de processador em decorrência de um
evento externo. Em algumas arquiteturas, o processador, assim
que estiver apto para receber o endereço da rotina de serviço
identificado pelo Controlador de Interrupções, gera o sinal
de reconhecimento de interrupção que habilita a
transferência deste endereço do Controlador para CPU via o
barramento de dados.
Solução do exercício 23 do Capítulo.
Como a arquitetura é mascaramento por nível,
uma rotina de serviço só pode ser interrompida se
ocorrer um nível de interrupção maior ou igual ao
nível de prioridade corrente.
Para o nosso problema, podemos associar a cada uma das
três linhas de interrupção um nível de prioridade. Por exemplo,
Linha |
Nível de Prioridade |
L1 |
3 (máxima) |
L2 |
2 |
L3 |
1 |
Quando uma linha, por exemplo L2, é atendida,
atribuimos o valor 1 ao campo
de nível de prioridade de interrupção
(2 bits menos significativos) do registrador de estado, SR ou PSW, para que ela possa
ser interompida pelas outras duas linhas, L3 (prioridade 3)
e L1 (prioridade 1).
Observe, entretanto, que a rotina
também pode ser interrompida pela própria linha, L2, já que
o nível desta é 2. Para mascararmos seletivamente
a linha L2, podemos utilizar o registrador de máscara seletivo
disponível no Controlador de Interrupções, conforme mostra
o seguinte mapa de memória (o conteúdo a partir do endereço 200):
Endereço |
Conteúdo |
Comentários |
1 |
100 |
Endereço da rotina de serviço da L1 |
|
: |
10 |
200 |
Endereço da rotina de serviço da L2 |
|
: |
20 |
300 |
Endereço da rotina de serviço da L3 |
|
: |
100 |
MOV #110,CONTRL |
Mascarar a L1 |
|
MOV #01,SR |
Nível de Prioridade = 1 |
|
: |
|
RTI |
|
: |
200 |
MOV #101,CONTRL |
Mascarar a L2 |
|
MOV #01,SR |
Nível de Prioridade = 1 |
|
: |
|
RTI |
|
: |
300 |
MOV #011,CONTRL |
Mascarar a L3 |
|
MOV #10,SR |
Nível de Prioridade = 2 |
|
: |
|
RTI |
|
: |
1000 |
MOV #111,CONTRL |
Nenhuma linha é mascarada |
|
MOV #01,SR |
Nível de Prioridade = 1 |
Last modified: Mon Oct 27 23:10:21 BRA 1997
Sugestões para ting@dca.fee.unicamp.br
Voltar para a página do curso.
Ting