Definição de IRQ

Por Carlos E. Morimoto. Há .

IRQ é abreviação de "Interrupt Request Line". Os endereços de IRQ são interrupções de hardware, canais que os dispositivos podem utilizar para chamar a atenção do processador.

Na maioria das situações, o sistema operacional simplesmente chaveia entre os aplicativos ativos, permitindo que ele utilize o processador durante um determinado espaço de tempo e passe a bola para o seguinte. Como o processador trabalha a uma freqüência de clock muito alta, o chaveamento é feito de forma muito rápida, dando a impressão de que todos realmente estão sendo executados ao mesmo tempo

No caso dos processadores dual-core, temos na realidade dois processadores, de forma que dois threads podem ser processados simultaneamente, mas o princípio continua o mesmo, já que em um PC típico temos um número sempre muito maior de aplicativos ativos.

Muitas operações, entretanto, não podem esperar. O exemplo mais típico são os caracteres digitados no teclado e os movimentos do mouse (que precisam ser interpretados rapidamente pelo sistema, mesmo enquanto o PC está executando tarefas pesadas), mas existem muitas outras operações que precisam de atenção semelhante, incluindo as transferências de dados recebidos através da placa de rede, operações de leitura e escrita nos HDs e assim por diante.

A placa de rede, por exemplo, não pode ficar simplesmente esperando que chegue a sua vez dentro do sistema multitarefa, pois isso retardaria a transmissão dos pacotes, aumentando o ping e reduzindo a taxa de transmissão da rede.

É neste ponto que entram os endereços de IRQ. Ao ser avisado através de qualquer um desses canais, o processador imediatamente pára qualquer coisa que esteja fazendo e dá atenção ao dispositivo, voltando ao trabalho logo depois. Cada endereço é uma espécie de campainha, que pode ser tocada a qualquer momento. Se não fossem pelos endereços de IRQ, o processador não seria capaz de ler as teclas digitadas no teclado ou os clicks do mouse, a transmissão de dados através da rede pararia toda vez que você abrisse qualquer programa e assim por diante.

Em PCs antigos, os endereços de IRQ não podiam ser compartilhados entre os dispositivos, o que freqüentemente causava problemas, já que existem apenas 16 endereços de IRQ disponíveis. Sempre que os endereços de IRQ se esgotavam (pela instalação de muitos periféricos) ou dois dispositivos eram configurados para utilizar o mesmo endereço, tínhamos os famosos conflitos, que faziam com que ambos os dispositivos deixassem de funcionar corretamente.

Atualmente, os conflitos relacionados aos endereços de IRQ são muito raros, pois as placas atuais suportam diversos sistemas de compartilhamento e atribuição automática de endereços. No caso das placas PCI, por exemplo, o controlador PCI passa a centralizar as requisições enviadas por todas as placas instaladas, de forma que todas possam utilizar um único endereço. Isto é possível porque as placas passam a enviar as requisições para o controlador e apenas ele entra em contato direto com o processador.

De qualquer forma, é importante entender como o sistema funciona, de forma que você possa solucionar conflitos que eventualmente apareçam, além de aprender a se virar ao dar manutenção em PCs antigos.

Para variar, tudo começa com o PC original, aquele lançado em 1981. Ele tinha apenas 8 endereços de IRQ, numerados de 0 a 7. Isso acontecia porque ele ainda era baseado no processador 8088, que apesar de ser internamente um processador de 16 bits, utilizava um barramento de apenas 8 bits para comunicar-se com os periféricos. Com isto, tinha apenas 8 IRQs.

A partir do 286, houve uma evolução nesse esquema, pois finalmente os PCs passaram a ter 16 endereços de IRQ, numerados de 0 a 15, como nos dias de hoje. Como quase todas as evoluções na família PC, foi preciso manter compatibilidade com o padrão anterior, para que as placas para XT pudessem funcionar nos PCs 286 em diante.

Assim, resolveram manter o controlador de IRQs original para que tudo continuasse funcionando da mesma maneira que antes e simplesmente adicionar um segundo controlador para obter os 8 novos endereços. Este segundo controlador passou a ser ligado no IRQ 2 que costumava ficar livre. Todos os pedidos de interrupção dos periféricos ligados aos endereços entre 8 e 15, controlados pelo segundo controlador, passam primeiro pelo IRQ 2, para só depois chegar ao processador. Isto é chamado de cascateamento de IRQs.

Dá para notar duas coisas neste esquema. Em primeiro lugar que o IRQ 2 não pode mais ser utilizado por nenhum periférico. Caso fosse instalado um modem ISA, por exemplo, configurado através dos jumpers para utilizar o IRQ 2, ele seria remapeado para o IRQ 9. Ou seja, na prática, não temos 16 endereços de IRQ, mas apenas 15.

Em segundo lugar, como o segundo controlador está ligado ao IRQ 2, todas as placas que utilizarem os endereços de 8 a 15, terão prioridade sobre as que usarem os IRQs de 3 a 7, pois, do ponto de vista do processador, estão ligadas ao IRQ 2, que é por onde todos os pedidos chegam a ele.

Este seria um exemplo de configuração comum de endereços em um PC da era Pentium baseado em uma placa-mãe soquete 7:

  • IRQ 0 - Sinal de clock da placa-mãe (fixo)
  • IRQ 1 - Teclado (fixo)
  • IRQ 2 - Cascateador de IRQs (fixo)
  • IRQ 3 - Porta serial 2
  • IRQ 4 - Porta serial 1
  • IRQ 5 - Livre
  • IRQ 6 - Drive de disquetes
  • IRQ 7 - Porta paralela (impressora)
  • IRQ 8 - Relógio do CMOS (fixo)
  • IRQ 9 - Placa de vídeo
  • IRQ 10 - Livre
  • IRQ 11 - Controlador USB
  • IRQ 12 - Porta PS/2
  • IRQ 13 - Coprocessador aritmético (fixo)
  • IRQ 14 - IDE Primária
  • IRQ 15 - IDE Secundária

Veja que com apenas a placa de vídeo e os dispositivos da placa-mãe, já sobravam apenas dois endereços de IRQ disponíveis. Ao adicionar uma placa de som e um modem, todos os endereços estariam ocupados, não dando mais margem de expansão para uma placa de rede ou uma placa SCSI por exemplo. A solução seria desabilitar dispositivos que não estivessem sendo usados como, por exemplo, a segunda porta serial, a porta PS/2 e o controlador USB (naquela época os dispositivos USB ainda eram novidade e as portas raramente eram usadas). Mas, de qualquer forma, se você continuasse instalando mais e mais periféricos, logo chegaria o ponto em que não teria mais o que desabilitar.

Esse problema começou a tornar-se cada vez mais evidente, à medida que mais e mais periféricos passaram a ser utilizados por padrão. Os únicos periféricos "de fábrica" em um 286 eram o monitor e o teclado, todo o restante era opcional. Em um PC atual temos um número muito maior de dispositivos, a começar pelos componentes onboard.

Felizmente, pensaram nesse problema quando desenvolveram o barramento PCI, incluindo o recurso de PCI Steering, que permite que dois ou mais periféricos PCI compartilhem o mesmo endereço de IRQ. Nesse caso, o controlador PCI passa a atuar como uma ponte entre os periféricos e o processador. Ele recebe todos os pedidos de interrupção, os encaminha para o processador e, ao receber as respostas, novamente os encaminha para os dispositivos corretos. Como o controlador é o único diretamente conectado ao processador é possível ocupar apenas um endereço de IRQ. Do lado do software, o PCI Steering passou a ser suportado a partir do Windows 95 OSR/2, além de ser suportado (por parte do Kernel) praticamente desde as primeiras versões do Linux.

Nem todos os dispositivos PCI suportam trabalhar dessa forma, mas a grande maioria funciona sem problemas. No Windows, você pode verificar a distribuição dos endereços dentro do Painel de Controle > Sistema > Hardware > Gerenciador de Dispositivos. Na janela principal, clique no Exibir > Recursos por tipo.

Além do barramento PCI, outros barramentos usados atualmente permitem compartilhar um único IRQ entre vários periféricos.

O USB é um bom exemplo. O controlador ocupa um único IRQ, que é compartilhado entre todas as portas USB e todos os dispositivos conectados a elas. Mesmo que a placa-mãe tenha 6 portas USB e você utilize todas, terá ocupado apenas um endereço.

Se você utilizasse apenas periféricos USB (mouse, impressora, scanner, etc.), poderia desabilitar todas as portas de legado da placa-mãe (as duas portas seriais, a porta paralela e a porta PS/2), o que liberaria 4 endereços de IRQ.

No caso de placas-mãe com duas interfaces IDE, cada uma ocupa dois endereços (por padrão o 14 e o 15). Mas, caso você não pretenda usar a IDE secundária, sempre existe a possibilidade de desabilitá-la no Setup. Todas essas opções aparecem na sessão "Integrated Peripherals".

Com todas essas facilidades, ficava fácil ter um sistema com vários IRQs livres.

Na verdade, a escassez de endereços de IRQ é um problema muito menor hoje em dia do que já foi no passado. Antigamente, era preciso configurar manualmente o endereço a ser usado por cada placa e não havia como compartilhar um IRQ entre dois periféricos como temos hoje. Um jumper no lugar errado era o suficiente para o modem (ou a placa de som) entrar em conflito com alguém e parar de funcionar.

Hoje em dia, todas as placas de expansão são PCI, PC Card, PCI Express ou Express Card, o que naturalmente significa que são plug-and-play. Basta espetá-las para que o BIOS atribua automaticamente um endereço. Desta forma, você terá conflitos apenas caso realmente todos os IRQs estejam ocupados.

Veja também
Garry’s Mod, jogo clássico da Steam, remove 20 anos de conteúdo por causa da Nintendo
Garry’s Mod, jogo clássico da Steam, remove 20 anos de conteúdo por causa da Nintendo
Games
X/Twitter vai ganhar um aplicativo de streaming de vídeos para TVs
X/Twitter vai ganhar um aplicativo de streaming de vídeos para TVs
Notícias
Um toque de elegância: a história do exclusivo PS1 dourado produzido pela Sony em 1996
Um toque de elegância: a história do exclusivo PS1 dourado produzido pela Sony em 1996
Artigos
Seu Jorge usa fone de ouvido que purifica o ar e viraliza nas redes; mas será que funciona?
Seu Jorge usa fone de ouvido que purifica o ar e viraliza nas redes; mas será que funciona?
Notícias
Propaganda em todo lugar! Uber mostrará anúncios antes das corridas no Brasil
Propaganda em todo lugar! Uber mostrará anúncios antes das corridas no Brasil
Notícias
The Crew: Americanas faz promoção de game que não funciona mais
The Crew: Americanas faz promoção de game que não funciona mais
Games
true