• 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

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...

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