l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l...

25
EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 251 ____________________________________________________________________________ ____________________________________________________________________________ Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos m O processamento de exceção está associado à ocorrência de condições excepcionais que fogem ou modificam o processamento normal de instruções, como, por exemplo: interrupção, reset, instruções ilegais, instruções TRAP, erro de endereçamento (acesso a word e long word em endereço ímpar). m O processamento de exceção está associado tanto a eventos internos como a eventos externos ao processador. n Exemplos de eventos externos são: Reset, Erro de Barramento (bus error) e Interrupção. n Exemplos de eventos internos: Erro de Endereçamento, Execução Passo-a-Passo (Trace), execução de Instrução Ilegal ou para Emulação, Violação de Privilégio, execução de instrução TRAP, TRAPV ou CHK, e tentativa de Divisão por Zero (DIVS, DIVU).

Transcript of l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l...

Page 1: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 251____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Processamento de Exceção - conceitos

m O processamento de exceção está associado à ocorrência de condições excepcionais que fogem ou modificam o processamento normal de instruções, como, por exemplo: interrupção, reset, instruções ilegais, instruções TRAP, erro de endereçamento (acesso a word e long wordem endereço ímpar).

m O processamento de exceção está associado tanto a eventos internos como a eventos externos ao processador.

n Exemplos de eventos externos são: Reset, Erro de Barramento (bus error) e Interrupção.

n Exemplos de eventos internos: Erro de Endereçamento, Execução Passo-a-Passo (Trace), execução de Instrução Ilegal ou para Emulação, Violação de Privilégio, execução de instrução TRAP, TRAPV ou CHK, e tentativa de Divisão por Zero (DIVS, DIVU).

Page 2: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 252____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Processamento de Exceção - conceitos

m As exceções do MC6800 são classificadas em 3 grupos distintos, dependendo do instante em que a mesma é atendida pelo processador.

GRUPO EXCEÇÃO PROCESSAMENTO

0RESET

ERRO DE BARRAMENTOERRO DE ENDEREÇAMENTO

Processamento de exceçãocomeça assim que o evento

for reconhecido

1TRACE

INTERRUPÇÃOINSTRUÇÃO ILEGAL

VIOLAÇÃO DE PRIVILÉGIO

Processamento de exceçãocomeça antes do início da

próxima instrução

2TRAP, TRAPV

CHKDIVISÃO POR ZERO

Processamento de exceçãoé disparado pela

execução da instrução

Page 3: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 253____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Processamento de Exceção - conceitos

m Exceções do MC6800

Page 4: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 254____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Processamento de Exceção - conceitos

m O mecanismo geral de processamento de uma exceção pode ser descrito pelo seguintes passos:

1) É feita uma cópia temporária do SR. O conteúdo de SR é alterado:

n bit S ← 1 (processador passa para o modo supervisor)

n bit T ← 0 (execução passo-a-passo éinibida)

n No caso de interrupção, a máscara também é alterada.

2) O número do vetor de exceção é determinado.

3) O contexto (na maioria dos casos SR e PC) do processador é salvo na pilha do supervisor (A7 apontador de pilha)

4) É feito um desvio para o endereço definido pelo vetor de exceção.

OBS.: Detalhes deste mecanismo geral podem variar conforme a exceção.

Page 5: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 255____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Processamento de Exceção - conceitos

m Registrador de Estado SR

m Diagrama de Estado - transição entre estado supervisor/usuário

Page 6: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 256____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Processamento de Exceção - conceitos

m Códigos de Função FC2* FC1 FC0*

Page 7: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 257____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Processamento de Exceção - conceitos

m Protegendo a memória com os códigos de função FC2* FC1* FC0*

Page 8: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 258____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Processamento de Exceção - conceitos

m Tabela de Vetores de Exceção

No. Endereço Atribuição0 $000 Reset: SSP inicial1 $004 Reset: PC inicial2 $008 Erro no Barramento3 $00C Erro de Endereçamento4 $010 Instrução Ilegal5 $014 Divisão por Zero6 $018 Instrução CHK7 $01C Instrução TRAPV8 $020 Violação de Privilégio9 $024 Trace10 $028 Emulação 101011 $02C Emulação 111112 $030 Reservado13 $034 Reservado14 $38 Reservado15 $03C Interrupção Não-Inicializada

16-23 $040-$05F Reservado24 $060 Interrupção Espúria25 $064 Interrupção 1: Auto-vetor26 $068 Interrupção 2: Auto-vetor27 $06C Interrupção 3: Auto-vetor28 $070 Interrupção 4: Auto-vetor29 $074 Interrupção 5: Auto-vetor30 $078 Interrupção 6: Auto-vetor31 $07C Interrupção 7: Auto-vetor

32-47 $080-$0BF Instruções TRAP48-63 $0C0-$0FF Reservado64-255 $100-$3FF Vetores de Interrupção do Usuário

Page 9: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 259____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Processamento de Exceção - conceitos

m O Reset é ocasionado fisicamente forçando-se as entradas reset (pino 20) e halt (pino 19) do MC68000 simultaneamente para “0”. O processamento associado ao reset é, em geral, reservado para a inicialização do sistema e recuperação de falhas graves no sistema. O processamento interrompido por um reset é abortado, não existindo forma de retomá-lo.

m Um Erro de Barramento (Bus Error) (por exemplo acesso a posição de memóriainexistente) é sinalizado por circuito externo ao processador através de seu pino 24 - BERR*.

m Um Erro de Endereçamento (Address Error) ocorre quando da tentativa de se ter acesso a uma word ou long word residente em endereço ímpar.

Page 10: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 260____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Processamento de Exceção - conceitos

m Para facilitar o desenvolvimento de programas, o MC68000 suporta a Execução Passo-a-Passo(trace). No modo trace (Bit T do SR igual a “1”), após a execução de cada instrução uma exceção é gerada, facilitando a monitoração/depuração do programa em desenvolvimento.

Page 11: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 261____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Processamento de Exceção - conceitos

m No MC6800 existem 7 níveis distintos de interrupções, cada um associado a uma prioridade. Os níveis de interrupção são numerados de 1 a 7, refletindo a sua prioridade (nível 7 prioridade máxima - nível 1 prioridade mínima). A máscara de interrupção (3 bits) contida no SR indica qual a prioridade de interrupção em vigor. Caso ocorra um pedido de interrupção com prioridade maior que a máscara de interrupção, o processamento de exceção associado a esta interrupção começa imediatamente após o término da instrução que eventualmente esteja em execução. Caso o pedido de interrupção tenha nível igual ou menor ao indicado pela máscara de interrupção, o seu atendimento é postergado até que a máscara contenha valor que permita o seu atendimento. O nível 7 não é mascarável.

Page 12: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 262____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Processamento de Exceção - conceitos

m O termo Instrução ilegal é utilizado para designar qualquer palavra que não represente uma palavra válida de operação (operation word). Durante o processamento normal, caso uma destas palavras seja detectada, o processador inicia um processamento de exceção. A Motorola se reserva o direito de definir novas instruções utilizando palavras de operações ilegais. Entretanto, três palavras são reservadas para serem ilegais permanentemente: $4AFA, $4AFB, e $4AFC. As duas primeiras são reservadas para produtos Motorola. A última está reservada para o usuário.

m Palavras de operação com os bits 15 a 12 iguais a 1010 ($A) ou 1111 ($F) são designadas como instruções não implementadas. Vetores de exceção estão associados a estas palavras para permitir a emulação, por programa, de novas instruções.

Page 13: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 263____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Processamento de Exceção - conceitos

m Para garantir a segurança do sistema, algumas instruções são privilegiadas, só podendo ser executadas no modo supervisor. A tentativa de execução de destas instruções no modo usuário ocasiona uma exceção de violação de privilégio. As instruções privilegiadas são:

1) STOP

2) RESET

3) RTE

4) MOVE <ea>,SR

5) ANDI #XX,SR

6) EORI #XX,SR

7) ORI #XX,SR

8) MOVE An,USP

9) MOVE USP,An.

Page 14: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 264____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Processamento de Exceção - conceitos

m Algumas instruções estão associadas ao processamento de exceção. Tais instruções são: TRAP, TRAPV, DIVS, e DIVU.

m A execução de uma instrução TRAP sempre força o processamento de exceção. No MC68000 existem 16 instruções TRAPs numeradas de 0 a 15. As instruções TRAP fornecem um mecanismo seguro de permitir que os usuários tenham acesso a funções (críticas) do sistema operacional.

m As instruções TRAPV e CHK disparam o processamento de exceção se erro for detectado durante o processamento. A instrução TRAPV está associada à ocorrência de overflow. A instrução CHK está associada ao fato do conteúdo de registrador estar fora de faixa permitida (p. ex., esta instrução pode ser usada para evitar que usuário tenha acesso a elementos fora da dimensão pré-definida de um array).

m As instruções de divisão DIVS e DIVU acarretam uma exceção, quando da divisão por zero.

Page 15: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 265____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Interrupção

m Mecanismo que permite que dispositivo externo pode solicite à CPU a execução de uma rotina (denominada de rotina de tratamento de interrupção).

m Obs.: A instrução RTE (Return from Exception) desempilha o SR e PC.

Programa Em Execução

. . .

Instrução i

Instrução i+1

...

Pedido deInterupção

Rotina de Tratamento

Instrução 1

...

RTE

Page 16: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 266____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Interrupção

m MC68000 possui 7 níveis de interrupções com prioridades crescente de 1 a 7.

m As interrupções são mascaráveis. A máscara de interrupção do SR (bit 8 9 10) indica que apenas interrupções de nível maior serão atendidas. A interrupção de nível 7 foge da regra, não sendo mascarável.

m Um pedido de interrupção é efetuado através dos pinos IPL0* IPL1* IPL2 do processador. O nível da interrupção solicitada é codificado nestes sinais.

Page 17: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 267____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Interrupção

m O processamento de interrupção associado a uma interrupção é:

1) É feita uma cópia temporária do SR. O contéudo de SR é alterado:

n bit S ← 1 (processador passa para o modo supervisor)

n bit T ← 0 (execução passo-a-passo éinibida)

n A Máscara de Interrupção é feita igual ao nível em atendimento

2) O dispositivo externo é consultado para fornecer o número do vetor de exceção (acesso de leitura no barramento). Aqui temos duas opções Interrupção Vetorizada e interrupção Auto-Vetorizada

3) O contexto do processador é salvo na pilha (SR e PC).

4) É feito um desvio para o endereço definido pelo vetor de exceção.

Page 18: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 268____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Interrupção

m No passo 3, o processador efetua um acesso externo para ler o Número do Vetor associado à interrupção.

m Neste acesso, o processador informa pelos sinais FC0 FC1 FC2 (111) que está efetuando um atendimento de interrupção. Nos bits A01 A02 e A03 do barramento de endereços o processador informa o nível da interrupção que está atendendo.

m Como resposta a este acesso de leitura, o dispositivo pode:n Fornecer o Número do Vetor de Interrupção,

colocando 8 bits no barramento de dados e acionando devidamente o sinal DTACK*.

n Optar pela modalidade Auto-Vetorizada. Para tanto o dispositivo aciona o sinal VPA* (em vez de DTACK*). Na modalidade Auto-Vetorizada, o dispositivo não fornece o número do vetor. O processador utiliza número pré-definido.

Page 19: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 269____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Interrupção

m Visão Geral Hardware do Processamento de Interrupção

Page 20: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 270____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Interrupção

m Circuito de Codificação de Interrupção

Page 21: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 271____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Interrupção

m Fluxograma da seqüência de atendimento de interrupção (vetorizada)

Page 22: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 272____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Interrupção

m Interrupção Vetorizada - exemplo de circuito

Page 23: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 273____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Interrupção

m Interrupção Auto-Vetorizada - exemplo de circuito

Page 24: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 274____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Processamento de Exceção - RESET

m Processamento do RESET

Page 25: l Processamento de Exceção - conceitos · Capítulo 6 - Processamento de Exceção l Processamento de Exceção - conceitos mO termo Instrução ilegal é utilizado para designar

EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 275____________________________________________________________________________

____________________________________________________________________________Capítulo 6 - Processamento de Exceção

l Processamento de Exceção - RESET

m Circuito para RESET (Power-On e Manual)