Aula 13 - Professor Diovani

Propaganda
Arquitetura e organização de
computadores.
Tratamento de execeções
Aula 13
Prof. Diovani Milhorim
Tipos de Exceções
Interrupção: salto assíncrono causado por
eventos externos ao programa. Ex: timer,
operações de E/S, etc.
Trap: salto síncrono causado por eventos
determinados por programas. Ex: overflow,
violação de memória protegida, etc
Tratadores de Exceção
Relembrando:
 Etapas para Iniciar o Tratador:
Salvamento de contexto
Salvamento do endereço de retorno na pilha
Endereço inicial do tratador de exceção é colocado no
Apontador de Instrução (PC)
Tratador é executado
 Etapas para Finalizar o Tratador:
Restaura contexto
Restaura PC com endereço de retorno armazenado
na pilha.
Tratadores de Exceção: Ações do
Hardware
Controlador do dispositivo ativa linha de interrupção do
barramento.
CPU reconhece ativando linha acknowledge do barramento
Controlador responde ao reconhecimento da CPU colocando
o nº do dispositivo nas linhas de dados do barramento (vetor
de interrupção)
CPU armazena o vetor de interrupção
CPU salva o PC, onde o processo foi interrompido, e o
registrador PSW (flags) na pilha.
Endereço inicial do tratador de exceção é buscado em uma
tabela que está no início da memória e o coloca no PC e o
tratador é executado
Tratadores de Exceção: Ações do
Software
A rotina de tratamento de interrupção inicia armazenado os
registradores ou na pilha ou em uma tabela do sistema
Identificação do dispositivo causador da interrupção obtenção
de informações de status (exemplo, erro de E/S)
Controlador responde ao reconhecimento da CPU colocando
o nº do dispositivo nas linhas de dados do barramento (vetor
de interrupção)
Trata-se a interrupção podendo gerar sinalização para indicar
ao controlador que a interrupção foi tratada.
Restaura os registradores salvos
Restaura o PC (onde o processo foi interrompido) e o
registrador PSW (flags) buscando da pilha.
executa instrução RETORNE DA INTERRUPÇÃO
Múltiplas Interrupções
Como a arquitetura Intel 386/686 trata
interrupções?
80x86 tem uma linha de interrupção
Intel 82C59A é um controlador de interrupção
82C59A possui 8 linhas de interrupção
Seqüência de Eventos
82C59A aceita interrupção
82C59A determina a prioridade
82C59A sinaliza ao 80386 (INTR)
CPU reconhece
82C59A coloca o correto vetor de
interrupção no barramento de dados
CPU processa a interrupção
Configuração da Ligação 82C59A ao
80386
8259A
IRQ0
IRQ1
IRQ2
IRQ3
IRQ4
IRQ5
IRQ6
IRQ7
8086
INTR
Configuração da Ligação
82C59A ao 80386
(IRQ 2)
8259A
8259A
IRQ0 (8)
IRQ0
IRQ1 (9)
IRQ1
IRQ2 (10)
IRQ2
IRQ3 (11)
IRQ3
IRQ4 (12)
IRQ4
IRQ5 (13)
IRQ5
IRQ6 (14)
IRQ6
IRQ7 (15)
IRQ7
80x86
INTR
Esquema de Prioridades 82C59A
Programável através 80386 que coloca
uma palavra no registrador de controle
Totalmente aninhado: ordenados de
acordo com a linha 0 (IRQ0) e 7 (IRQ7)
Circular: vários dispositivos com mesma
prioridade e esta é diminuída quando
este acaba de ser atendido
Máscara especial: processador pode
inibir interrupção de certos dispositivos
Prioridade de interrupção (PC)
O PC processa interrupções de dispositivo
de acordo com o nível de prioridade. A
prioridade é dada pela linha de
interrupção de entrada no controlador de
interrupção, ou seja, pelo número da IRQ.
Prioridade de interrupção (PC)
 Para controlar mais que 8 interrupções (linhas
de 0 a 7), um segundo conjunto de 8
interrupções são conectados ao controlador
através da linha IRQ2 do primeiro controlador.
 Isto significa que o primeiro controlador vê
quaisquer destas interrupções como estando no
nível de prioridade de seu" IRQ2."
 O resultado disto é que as prioridades se
tornam 0, 1, (8, 9, 10, 11, 12, 13, 14, 15), 3, 4,
5, 6, 7.
 IRQs 8 a 15 tomam o lugar de IRQ2.
Tabela de IRQ – arquitetura PC
IRQ
Bus Line
Priority
Typical Default
Use
Other Common Uses
0
no
1
System timer
None
1
no
2
Keyboard
controller
None
2
no
(rerouted)
n/a
None; cascade
for IRQs 8-15.
Replaced by
IRQ 9
Modems, very old (EGA)
video cards, COM3 (third
serial port), COM4 (fourth
serial port)
3
8/16-bit
11
COM2 (second
serial port)
COM4 (fourth serial port),
modems, sound cards,
network cards, tape
accelerator cards
Tabela de IRQ – arquitetura PC
IRQ
Bus Line
Priority
Typical Default
Use
Other Common Uses
4
8/16-bit
12
COM1 (first
serial port)
5
8/16-bit
13
Sound card
6
8/16-bit
14
Floppy disk
controller
COM3 (third serial port),
modems, sound cards,
network cards, tape
accelerator cards
LPT2 (second parallel port),
LPT3 (third parallel port),
COM3 (third serial port),
COM4 (fourth serial port),
modems, network cards,
tape accelerator cards, hard
disk controller on old PC/XT
Tape accelerator cards
7
8/16-bit
15
LPT1 (first
parallel port)
LPT2 (second parallel port),
COM3 (third serial port),
COM4 (fourth serial port),
modems, sound cards,
network cards, tape
accelerator cards
Tabela de IRQ – arquitetura PC
IRQ
Bus Line
Priority
Typical
Default Use
Other Common Uses
8
no
3
Real-time
clock
None
9
16-bit
only
4
Network cards, sound
cards, SCSI host adapters,
PCI devices, rerouted
IRQ2 devices
10
16-bit
only
5
11
16-bit
only
6
Network cards, sound
cards, SCSI host adapters,
secondary IDE channel,
quaternary IDE channel,
PCI devices
Network cards, sound
cards, SCSI host adapters,
VGA video cards, tertiary
IDE channel, quaternary
IDE channel, PCI devices
Tabela de IRQ – arquitetura PC
IRQ
Bus Line
Priority
Typical Default
Use
Other Common Uses
12
16-bit
only
7
PS/2 mouse
Network cards, sound
cards, SCSI host adapters,
VGA video cards, tertiary
IDE channel, PCI devices
13
no
8
Floating Point
Unit (FPU /
NPU / Math
Coprocessor)
None
14
16-bit
only
9
Primary IDE
channel
SCSI host adapters
15
16-bit
only
10
Secondary IDE
channel
Network cards, SCSI host
adapters
Linha IRQ e Barramento
 Os dispositivos que usam interrupções sinalizam
em linhas disponíveis pelo barramento.
 A maioria das interrupções é fornecida pelo
barramento do sistema para uso dos dispositivos.
 Algumas interrupções só são usadas
interiormente pelo sistema, e não são disponíveis
como linhas no barramento, exemplos:
interrupções 0, 1, 2, 8 e 13
 Atualmente IRQ2 é ligado a IRQ9 na
motherboard.
Interrupções não-mascaráveis -NonMaskable Interrupts (NMI)
Todas as interrupções normais que nos
referimos através de números são
chamadas de interrupções mascaráveis.
O processador pode mascarar, ou
temporariamente ignorar, qualquer
interrupção se precisar terminar qualquer
outra coisa que está fazendo.
Interrupções não-mascaráveis -NonMaskable Interrupts (NMI)
O PC tem uma interrupção não-mascaráveis
(NMI) que podem ser usadas em condições
sérias que exigem a atenção imediata do
processador.
O NMI não pode ser ignorado pelo sistema a
menos que especificamente esteja
desligado.
Quando um sinal de NMI é recebido, o
processador pára tudo que estava fazendo
imediatamente e atende a interrupção.
Interrupções não-mascaráveis -NonMaskable Interrupts (NMI)
O sinal de NMI normalmente é só usado
para situações de problema críticas, como
erros de hardware sérios.
O uso mais comum de NMI é sinalizar um
erro de paridade do subsistema de
memória. Este erro deve ser negociado
imediatamente para prevenir possível
corrupção de dados.
Exemplo de Tabela de Interrupção
tratador de Interrupção 3
TABELA DE
VETORES DE
INTERRUPÇÃO
Exemplo: 3
...
...
N
Endereço RTI N
...
...
3
Endereço RTI 3
2
Endereço RTI 2
1
Endereço RTI 1
0
Endereço RTI 0
Interrupções por
hardware do PC
Interrupção
Vetor de Interrupção
NMI
02H
IRQ0
08H
IRQ1
09H
IRQ2
0AH
IRQ3
0BH
IRQ4
0CH
IRQ5
0DH
IRQ6
0EH
IRQ7
0FH
IRQ8
70H
IRQ9
71H
IRQ10
72H
IRQ11
73H
IRQ12
74H
IRQ13
75H
IRQ14
76H
IRQ15
77H
Exercícios
1) Diferencie interrupção e trap.
2) Desenhe o ciclo de instrução
desconsiderando a existência de
interrupções.
3) Desenhe o ciclo de instrução
considerando a existência de
interrupções.
Download