IRQ – Requisi??o de Interrup?

  • Post author:
  • Post category:Sem categoria

Existem dois tipos b?sicos de interrup??es: as usadas por dispositivos (para a comunica??o com a placa m?e) e programas (para obter a aten??o do processador). As interrup??es de software s?o mais usadas por programas, incluindo o sistema operacional e interrup??es de hardware mais usado por perif?ricos. Daqui para frente ser? explicado somente detalhes sobre interrup??es de hardware.

Os antigos computadores 8086/8088 (XT) usavam somente 8 interrup??es de hardware operando a 8 bits. Com o surgimento do AT foram inclu?das 8 novas interrup??es, operando a 16 bits. Os computadores 286 e superiores tem 16 interrup??es de hardware numeradas de 0 a 15. Estas interrup??es oferecem ao dispositivo associado a capacidade de interromper o que o processador estiver fazendo, pedindo aten??o imediata.

As interrup??es do sistema podem ser visualizadas no kernel com o comando cat /proc/interrupts. Abaixo um resumo do uso mais comum das 16 interrup??es de hardware:

0 Timer do Sistema – Fixa

01 Teclado – Fixa

02 Controlador de Interrup??o Program?vel – Fixa.
Esta interrup??o ? usada como ponte para a IRQ 9 e vem dos
antigos processadores 8086/8088 que somente tinham 8 IRQs.
Assim, pera tornar processadores 8088 e 80286 comunic?veis,
a IRQ 2 ? usada como um redirecionador quando se utiliza uma
interrup??o acima da 8.

03 Normalmente usado por /dev/ttyS1 mas seu uso depende dos
dispositivos instalados em seu sistema (como fax-modem,
placas de rede 8 bits, etc).

04 Normalmente usado por /dev/ttyS0 e quase sempre usada pelo mouse
serial a n?o ser que um mouse PS2 esteja instalado no sistema.

05 Normalmente a segunda porta paralela. Muitos micros n?o tem a segunda
porta paralela, assim ? comum encontrar placas de som e outros
dispositivos usando esta IRQ.

06 Controlador de Disquete – Esta interrup??o pode ser compartilhada
com placas aceleradoras de disquete usadas em tapes (unidades de fita).

07 Primeira porta de impressora. Pessoas tiveram sucesso compartilhando
esta porta de impressora com a segunda porta de impressora.
Muitas impressoras n?o usam IRQs.

08 Rel?gio em tempo real do CMOS – N?o pode ser usado por nenhum
outro dispositivo.

09 Esta ? uma ponte para IRQ2 e deve ser a ?ltima IRQ a ser
utilizada. No entanto pode ser usada por dispositivos.

10 Interrup??o livre para dispositivos

11 Interrup??o livre para dispositivos

12 Interrup??o normalmente livre para dispositivos. O mouse PS/2,
quando presente, utiliza esta interrup??o.

13 Processador de dados num?ricos – N?o pode ser usada ou compartilhada

14 Esta interrup??o ? usada pela primeira controladora de discos
r?gidos e n?o pode ser compartilhada.

15 Esta ? a interrup??o usada pela segunda controladora de discos
e n?o pode ser compartilhada. Pode ser usada caso a segunda
controladora esteja desativada.

Dispositivos ISA, VESA, EISA, SCSI n?o permitem o compartilhamento de uma mesma IRQ, talvez isto ainda seja poss?vel caso n?o haja outras op??es dispon?veis e/ou os dois dispositivos n?o acessem a IRQ ao mesmo tempo, mas isto ? uma solu??o prec?ria.

Conflitos de IRQ ocorrem quando dois dispositivos disputam uma mesma IRQ, e normalmente ocasionam a parada ou mal funcionamento de um dispositivo e/ou de todo o sistema. Para resolver um conflito de IRQs, deve-se conhecer quais IRQs est?o sendo usadas por quais dispositivos (usando cat /proc/interrupts) e configurar as interrup??es de forma que uma n?o entre em conflito com outra. Isto normalmente ? feito atrav?s dos jumpers de placas ou atrav?s de software (no caso de dispositivos jumperless ou plug-and-play).

Dispositivos PCI s?o projetados para permitir o compartilhamento de uma mesma IRQ pois as manipulam de forma diferente. Se for necess?rio usar uma interrup??o normal, o chipset (ou BIOS) mapear? a interrup??o para uma interrup??o normal do sistema (normalmente usando alguma interrup??o entre a IRQ 9 e IRQ 12).

3.3.1.1 Prioridade das Interrup??es
Cada IRQ no sistema tem um n?mero que identifica a prioridade que ser? atendida pelo processador. Nos antigos sistemas XT as prioridades eram identificadas em seq??ncia de acordo com as interrup??es existentes:

IRQ 0 1 2 3 4 5 6 7 8
PRI 1 2 3 4 5 6 7 8 9

Com o surgimento do barramento AT (16 bits), as interrup??es passaram a ser identificadas da seguinte forma:

IRQ 0 1 2 (9 10 11 12 13 14 15) 3 4 5 6 7 8
PRI 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Note que a prioridade segue em seq??ncia atrav?s da ponte da IRQ 2 para IRQ 9. Os dispositivos com prioridade mais baixa s?o atendidos primeiro, mas ? uma diferen?a de desempenho praticamente impercept?vel de ser notada nos sistemas atuais.