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.