• Nenhum resultado encontrado

Interrupções. As interrupções são casos especiais de chamadas de procedimentos.

N/A
N/A
Protected

Academic year: 2021

Share "Interrupções. As interrupções são casos especiais de chamadas de procedimentos."

Copied!
10
0
0

Texto

(1)

Interrupções

• Uma interrupção é equivalente a uma chamada de procedimento. A

chamada é equivalente a um CALL gerado pela execução de uma

instrução.

• As interrupções são casos especiais de chamadas de procedimentos.

• Em ambos os casos o procedimento que é executado designa-se “rotina de

serviço à interrupção” ou “

interrupt handler

”.

• O retorno do procedimento ou rotina de serviço à interrupção é feito com a

instrução IRET.

109

• As interrupções possíveis numa CPU são normalmente pré-definidas numa

TABELA DE VECTORES DE INTERRUPÇÃO.

• Um VECTOR DE INTERRUPÇÃO é um número de 4 bytes. A tabela de

vectores de interrupção está armazenada nos primeiros 1K de memória

(endereços de 0 a 3FFh).

• Existem 256 vectores diferentes de interrupção.

• Cada vector contem o endereço do procedimento de serviço à interrupção

(valores para IP e CS). Primeiros 2 bytes têm o IP e os 2 últimos bytes o

CS.

(2)

• Os primeiros 32 VECTORES DE INTERRUPÇÃO são RESERVADOS e

utilizados presentemente pelo fabricante Intel e sistemas de operação (ou

exploração).

• Os restantes vectores de 32-255 estão disponíveis para o utilizador.

• Alguns vectores reservados são para condições de excepção que

ocorrem na execução das instruções: divisão por zero, overflow, ...

111

Mecanismos de Interrupção do CPU

• O manuseamento correcto de interrupções requer:

– desactivação prévia de interrupções

– iniciação do vector de interrupção para o handlerapropriado – activação das interrupções

• O gestor (handler) de uma interrupção deve:

– verificar o estado da flag de interrupções

– guardar o contexto (registos, flags e tudo o mais que for manipulado)

– bloquear as interrupções que possam interferir com o processamento do gestor – permitir as interrupções que não causam interferências (ex. relógio do sistema) – determinar a causa da interrupção e tomar as acções apropriadas

– restaurar o contexto previamente guardado

– desbloquear as interrupções previamente inibidas – retornar ao processo interrompido

(3)

• Aquando de uma interrupção:

– Para além do tempo da chamada e execução da rotina de serviço à

interrupção, o programa não foi afectado pelo funcionamento desta.

– A comunicação entre a rotina e o

programa não pode ser feita por registos, pois estes pertencem ao estado do

processador, que deve ser preservado.

113

Mecanismos de Interrupção do CPU

• As interrupções são tipicamente causadas por eventos externos à

CPU, tais como:

– operações de entrada/saída – detecção de faltas de hardware

– situações catastróficas (falha de energia)

• As interrupções podem estar associadas a 3 tipos de eventos:

– interrupções internas – interrupções externas – interrupções de software

(4)

– NMI (Interrupções não mascaráveis) – Excepções

• Interrupções externas ou de hardware:

– desencadeadas por periféricos ou coprocessadores – ligadas ao NMI ou INTR:

• NMI

– reservado para “catástrofes” (falha de energia, erro de memória) • INTR

– CPU procura o vector

– PIC coloca-o no barramento; multiplexa fontes (XT - 1 PIC: 8 fontes) (AT - 2 PIC: 16 fontes)

115

• Interrupções de software:

– são meras instruções assembly do CPU - INT n

– geram um apontador para uma posição da tabela de vectores de interrupção tal como uma interrupção de hardware.

Exemplo:

• IRQ0 - salta para a posição 08h da tabela de vectores de interrupção • INT 8 - “emula” o IRQ0, saltando para a mesma posição da tabela

– O MS-DOS utiliza as interrupções de software 20h a 3Fh para comunicação com os seus módulos e com as aplicações

(5)

• Interrupções de software (continuação):

– Cada instrução INT tem associado um número de 0 a 255. Por exemplo INT 100, corresponde ao vector de interrupção 100 e encontra-se nos endereços de memória 190H - 193H.

– As interrupções de software são utilizadas para chamar procedimentos do

sistema, dado que não é necessário conhecer o endereço da função do sistema. – Estes procedimentos são comuns a todos os sistemas e aplicações de software. – A instrução IRET permite o retorno ao programa principal. O mesmo que um

POPF seguido de um RET.

– O IRET carrega da stack o estado anterior das flags IF e TF.

– A instrução STI permite receber interrupções. A instrução CLI desabilita as interrupções.

117

• Interrupções por hardware

– O pino INTR é utilizado para desencadear, através de um sinal externo, um dos 256 tipos de interrupção (geralmente entre 20H - 0FFH).

– Estas interrupções podem ser mascaradas, através da colocação a zero da flag

IF pela instrução CLI. Pode ser habilitada através da instrução STI.

(6)

– Se a entrada NMI estiver activa, ocorre uma interrupção do tipo 2.

– O sinal INTA é, também, um pino de interrupção, no entanto, é utilizado como saída para responder ao pedido efectuado em INTR de modo a ser colocado, pelo periférico, o número do tipo de vector de interrupção no barramento de dados D7 - D0.

119

• Prioridade das Interrupções:

– O que acontece se ocorrerem duas interrupções simultaneamente? – Nesse caso será atendida a interrupção de mais alta prioridade.

Mais Elevada

Mais Baixa

Prioridade

Divisão por Zero NMI

INTR

Passo a Passo

Interrupção

Supondo que o pino INTR se encontra habilitado, e que recebe um sinal de interrupção durante uma operação de divisão que resulta numa divisão por

zero. Como a interrupção gerada internamente (interrupção tipo 0) tem maior

prioridade que a interrupção gerada pelo pino INTR, será atendida a interrupção interna.

(7)

• Controlador de Prioridades de Interrupções (PIC)

– Se colocarmos o NMI a detectar as interrupções originadas por falhas de energia, apenas sobra o pino INTR para receber todas as outras interrupções (teclado, impressora, rato, etc.).

– De modo a evitar este problema recorre-se à utilização de um controlador de prioridades de interrupções (PIC) o 8259A.

121

Mecanismos de Interrupção do CPU

• Controlador de Prioridades de Interrupções (PIC)

– Quando o 8259A recebe um sinal de interrupção num dos seus pinos de IR#, envia para o pino INTR do processador um sinal de interrupção. Se IF = 1, o processador responde à interrupção:

1 - efectua um ciclo de reconhecimento de interrupção no pino INTA e prepara o bus de dados para receber informação;

2 - efectua um segundo ciclo para informar o 8259A que pode enviar o informação sobre o tipo de interrupção. Este valor é colocado nas 8 linhas menos significativas do barramento de dados;

3 - efectua o procedimento normal de resposta a uma interrupção.

– A vantagem da utilização do PIC é a possibilidade de converter várias linhas de pedido de interrupção para uma só, sem lógica adicional.

(8)

• Controlador de Prioridades de Interrupções (PIC)

– PIC 8259A

123

Mecanismos de Interrupção do CPU

• Controlador de Prioridades de Interrupções (PIC)

– Podemos interrogar-nos sobre o que acontece se ocorrerem dois pedidos simultâneos de interrupção nas linhas IR#.

– Se o PIC estiver a operar no modo de prioridades fixas, a prioridade mais elevada dos pedidos de interrupção é ordenada de IR0 para IR7.

– O registo interrupt mask tem como função habilitar ou desabilitar entradas de interrupção. Cada bit deste registo corresponde a uma entrada.

– O registo interrupt requestverifica qual a linha de entrada que pede uma interrupção. Cada bit deste registo corresponde a uma entrada.

– O registo in-serviceindica qual a linha de interrupção que está a ser servida. – O priority resolverdefine se, e quando é que, uma das entrada IR# é

(9)

• Controladores de Prioridades de Interrupções Master e Slave - Modo

de funcionamento:

– Se o slavereceber um pedido de interrupção, e se estiver habilitado, envia um sinal para uma entrada IR# do master.

– Se o sinal tiver maior prioridade que qualquer outro, o master envia um sinal para a entrada INTR do processador.

– O processador envia dois sinais de INTA para os dois PIC. O slaveignora o primeiro sinal e o master coloca nos pinos CAS# a identificação do slave, habilitando o PICslave.

– Quando o slaverecebe o segundo pulso do INTA coloca no barramento de dados o número da interrupção pedida.

125

Mecanismos de Interrupção do CPU

• Controladores de Prioridades de Interrupções Master e Slave - Modo de

funcionamento:

– A interface com os PICs é conseguida através das portas 20h/0A0h e 21h/0A1h. • O primeiro endereço em cada par é o endereço do PIC master (IRQ 0 - 7); O

segundo endereço de cada par corresponde ao PIC slave (IRQ 8 - 15). – A porta 20h/0A0h refere-se a uma localização de escrita / leitura a partir da qual é

possível escrever comandos no PIC e ler o estado dos seus registos.

– A porta 21h/0A1h refere-se a uma localização de escrita / leitura que contém o registo da máscara de interrupções.

– No registo da máscara de interrupções, um 0 activa a linha e um 1 desactiva a linha de interrupção.

– Cuidado! Quando se alteram os bits do registo da máscara de interrupções, não se deve escrever o valor directamente na porta 21h/0A1h; deve-se começar por ler o valor actual e depois efectuar operações AND e OR para alterar os bits desejados e só depois escrever o valor em 21h/0A1h.

(10)

de funcionamento:

– Registo da máscara de interrupções – Tabela de IRQs

Referências

Documentos relacionados

novo medicamento, tendo como base para escolha as necessidades de cada segmento do mercado farmacêutico; e c) licenciamento do produto, o processo mais demorado

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

A Lei nº 2/2007 de 15 de janeiro, na alínea c) do Artigo 10º e Artigo 15º consagram que constitui receita do Município o produto da cobrança das taxas

Os testes de desequilíbrio de resistência DC dentro de um par e de desequilíbrio de resistência DC entre pares se tornarão uma preocupação ainda maior à medida que mais

A avaliação da altura das plantas foi feita a partir do nível do substrato na altura do colo até a última gema apical, utilizando-se uma régua milimetrada.. c) Peso de massa seca

suprimentos no ano de 2000, apenas recentemente o conceito tem sido aplicado mais extensiva- mente à gestão da cadeia de suprimentos, promovendo uma nova maneira de pensamento sobre

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

servidores, software, equipamento de rede, etc, clientes da IaaS essencialmente alugam estes recursos como um serviço terceirizado completo...