Pedidos de interrupção (IRQ) - Hardware

Maio 2017

O que é o conflito de interrupção de hardware

Dado que o processador não pode tratar informações simultaneamente, pois é capaz de tratar apenas uma informação de cada vez, um programa em execução pode, graças a uma interrupção, ser temporariamente suspendido, durante o tempo em que é executada uma rotina de interrupção. O programa interrompido pode depois retomar a execução. Saiba que existem 256 endereços de interrupção diferentes. Uma interrupção torna-se uma interrupção de hardware quando é solicitada por um de seus componentes.


Existem, no computador, muitos periféricos que utilizam os recursos do sistema, mesmo que seja apenas para estabelecer uma comunicação com ele. Quando um periférico deseja acessar um recurso, ele envia um pedido de interrupção ao processador para que este considere a solicitação. Deste modo, os periféricos têm um número de interrupção chamado IRQ (Interruption ReQuest e, em português pedido de interrupção). Metaforicamente, cada periférico puxa ‘um cordão’ ligado a um sino para avisar o computador que requer a sua atenção.

Este ‘cordão’ é, na verdade, uma linha física que conecta os conectores de extensão, bem como as interface de entrada/saída, à placa mãe. Para uma posição ISA de 8 bits, por exemplo, existem 8 linhas IRQ que conectam os slots ISA 8 bits à placa- mãe (IRQ0 à IRQ7). Estes IRQ são controlados por um controlador de interrupção encarregado de ‘dar a ordem’ ao IRQ que tem a prioridade.

Com o aparecimento de slots 16 bits, os IRQ 8 a 15 foram acrescentados, assim, foi necessário adicionar um segundo controlador de interrupção. A conexão entre os dois grupos de interrupções faz-se através do IRQ 2 conectado ao IRQ 9, chamado cascata. Esta vem, então, em certa medida ‘inserir’ os IRQ 8 a 15 entre os IRQ 1 e 3:

IRQ2 - Cascade

Sendo a prioridade dada por ordem do IRQ crescente, e os IRQ 8 a 15 inseridos entre os IRQ 1 e 3, a ordem de prioridade será a seguinte:

0 > 1 > 8 > 9 > 10 > 11 > 12 > 13 > 14 > 15 > 3 > 4 > 5 > 6 > 7

Como é o canal de acesso direto à memória - DMA

Os periféricos precisam regularmente ‘emprestar memória’ ao sistema para servir como zona tampão (em inglês buffer), ou seja, uma zona de armazenamento temporária que permite registrar rapidamente dados de entrada ou saída.

Para remediar este problema, foi definido um canal de acesso direto à memória, chamado DMA (Direct Memory Access ou Acesso direto à memória em português).

O canal DMA designa um acesso a um lugar da memória viva (RAM) do computador, localizado ‘por um endereço de início’ (ou RAM Start Address em inglês) e ‘um endereço de fim’. Este método permite aos periféricos seguir canais especiais que lhe dão um acesso direto à memória, sem acionar o microprocessador.

Um computador de tipo PC possui 8 canais DMA. Os quatro primeiros canais têm uma amplitude de banda de 8 bits enquanto que os DMA 4 a 7 têm uma amplitude de banda de 16 bits.
Os canais DMA são geralmente atribuídos do seguinte modo:

DMA0 - livre
DMA1 - (placa som)/ livre
DMA2 - controlador de disquetes
DMA3 - porta paralela (porta impressora)
DMA4 - controlador de acesso direto à memória (envio para DMA0)
DMA5 - (placa som)/ livre
DMA6 - (SCSI)/ livre
DMA7 - disponível

O que são os endereços básicos

Os periféricos têm, às vezes, necessidade de trocar informações com o sistema, é por isso que são atribuídos endereços de memória para o envio e a recepção de dados. Estes endereços são chamados endereços básicos (ou portas de entrada/saída, portas E/S, endereço E/S, endereços de portas E/S, portas básicas, ou em inglês I/O adress que significa Input/Output Address, literalmente Endereço de entrada/saída). É através deste endereço básico que o periférico pode comunicar com o sistema operacional, logo, existe apenas um endereço básico por periférico.

Veja, abaixo, uma lista de alguns endereços básicos:

060h –teclado
170h/376h - controlador IDE secundário
1F0h/3F6h - controlador IDE primário
220h - carta som
300h - carta rede
330h - carta adaptadora SCSI
3F2h - controlador de leitor de disquetes
3F8h - COM1
2F8h - COM2
3E8h - COM3
2E8h - COM4
378h - LPT1
278h - LPT2

Todos os elementos são, contudo, transparentes para o usuário, ou seja, este não tem que se preocupar com eles.

Como gerenciar os conflitos de hardware

Uma interrupção é uma linha que conecta um periférico ao processador. A interrupção é de hardware quando é pedida por um componente do PC. É o caso, por exemplo, quando uma tecla foi pressionada e o teclado quer chamar o processador para este acontecimento. Entretanto, as 256 interrupções não podem ser todas solicitadas como interrupções de hardware e os diferentes periféricos chamam sempre interrupções bem definidas. Assim, durante a instalação de placas de extensão, é preciso garantir, no momento da configuração, que a mesma interrupção não seja utilizada por dois periféricos diferentes, por que isso provocaria um conflito de hardware, provocando, por sua vez, o mau funcionamento de um ou mais periféricos.

Fica evidente então que, se dois periféricos utilizarem a mesma interrupção, o sistema não saberá distingui-la. Um conflito de hardware não se produz unicamente com dois periféricos que têm a mesma interrupção, um conflito pode igualmente produzir-se quando dois periféricos possuem o mesmo endereço de entradas/saídas ou utilizam os mesmos canais DMA.

Configurar um IRQ

O IRQ, endereços de interrupções de hardware, de uma placa de extensão pode ser alterado para atribuir um número de IRQ não utilizado por outro periférico. Nos periféricos, mais antigos, a fixação na placa era feita graças a jumpers, presentes na placa. Nas placas mais recentes (com um BIOS Plug & Play), a configuração dos recursos (IRQ, DMA, Endereços de entrada/saída) é automático. Pode ser realizada também graças ao sistema operacional ou pelos utilitários fornecidos com a placa de extensão. O modo ‘plug & play’ deve muitas vezes ser desativado para poder alterar as configurações manualmente. Nem sempre é fácil encontrar recursos livres para todos os periféricos, veja, abaixo, uma lista não exaustiva de recursos geralmente utilizados e que não podem ser atribuídos manualmente:


IRQPeriférico
0Relógio interno
1teclado
2controlador de interrupções programável Envio para os IRQ 8 a 15
3porta de comunicação COM2/COM4
4porta de comunicação COM1/COM3
5livre
6controlador de disquetes
7porta impressora LPT1
8CMOS (Relógio tempo real)
9livre
10livre
11livre
12porta mouse PS2/livro
13processador numérico de dados (Co-processador aritmético)
14controlador de discos rígidos primário (IDE)
15controlador de discos rígidos secundário (IDE)


As portas COM1 e COM4 como as portas COM2 e COM3 utilizam as mesmas interrupções. Isto pode parecer ilógico, já que uma mesma interrupção não pode ser utilizada por dois periféricos simultaneamente. Na verdade, é possível utilizar a porta COM1 assim como a porta COM4 na condição destas não estarem simultaneamente ativas. Em caso contrário, o computador pode bloquear ou ter um comportamento anormal.

Como eliminar os conflitos de hardware

No caso de problema de hardware, a primeira coisa a fazer é tentar isolar o problema para determinar qual o periférico está provocando o problema. Isto significa que é necessário eliminar todas as variáveis possíveis até à descoberta do elemento responsável: abrindo a cobertura da máquina e tirando pouco a pouco os elementos susceptíveis de provocar um conflito; desativando os periféricos por via ‘software’ no sistema operacional.

Veja também

Última modificação: 15 de maio de 2017 às 06:43 por ninha25.
Este documento, intitulado 'Pedidos de interrupção (IRQ) - Hardware', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.