Você está na página 1de 8

Os endereos de IRQ so interrupes de hardware, canais que os

dispositivos podem utilizar para chamar a ateno do processador.


Na maioria das situaes, o sistema operacional simplesmente chaveia
entre os aplicativos ativos, permitindo que ele utilize o processador durante
um determinado espao de tempo e passe a bola para o seguinte. Como o
processador trabalha a uma frequncia de clock muito alta, o chaveamento
feito de forma muito rpida, dando a impresso de que todos realmente
esto 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 princpio continua o mesmo, j que em um PC
tpico temos um nmero sempre muito maior de aplicativos ativos.
Muitas operaes, entretanto, no podem esperar. O exemplo mais tpico
so 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 operaes
que precisam de ateno semelhante, incluindo as transferncias de dados
recebidos atravs da placa de rede, operaes de leitura e escrita nos HDs e
assim por diante.
A placa de rede, por exemplo no pode ficar simplesmente esperando que
cheque a sua vez dentro do sistema multitarefa, pois isso retardaria a
transmisso dos pacotes, aumentando o ping e reduzindo a taxa de
transmisso da rede.
neste ponto que entram os endereos de IRQ. Ao ser avisado atravs de
qualquer um destes canais, o processador imediatamente pra qualquer
coisa que esteja fazendo e d ateno ao dispositivo, voltando ao trabalho
logo depois. Cada endereo uma espcie de campainha, que pode ser
tocada a qualquer momento. Se no fossem pelos endereos de IRQ, o
processador no seria capaz de ler as teclas digitadas no teclado, nem os
clicks do mouse, a sua conexo pararia toda vez que abrisse qualquer
programa e assim por diante.
Em PCs antigos, os endereos de IRQ no podiam ser compartilhados entre
os dispositivos, o que freqentemente causava problemas, j que existem
apenas 16 endereos de IRQ disponveis. Sempre que os endereos de IRQ
se esgotavam (pela instalao de muitos perifricos) ou dois dispositivos
eram configurados para utilizar o mesmo endereo, tnhamos os famosos
conflitos, que faziam com ambos os dispositivos deixassem de funcionar
corretamente.
Atualmente, os conflitos relacionados aos endereos de IRQ so muito raros,
pois as placas atuais suportam diversos sistemas de compartilhamento e

atribuio automtica de endereos. No caso das placas PCI, por exemplo, o


controlador PCI passa a centralizar as requisies enviadas por todas as
placas instaladas, de forma que todas possam utilizar um nico endereo.
Isto possvel por que as placas passam a enviar as requisies para o
controlador e apenas ele entra em contrato direto com o processador.
De qualquer forma, importante entender como o sistema funciona, de
forma que voc possa solucionar conflitos que eventualmente apaream,
alm de aprender a se virar ao dar manuteno em PCs antigos.
Para variar, tudo comea com o PC original, aquele lanado em 1981. Ele
tinha apenas 8 endereos de IRQ, numerados de 0 a 7. Isso acontecia por
que 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 perifricos. Com isto, tinha apenas
8 IRQs.
Os 8 endereos disponveis ficavam geralmente configurados da seguinte
forma:

IRQ
IRQ
IRQ
IRQ
IRQ
IRQ
IRQ
IRQ

0
1
2
3
4
5
6
7

Sinal de clock da placa me


Teclado
Livre
COM 2
COM 1
Disco Rgido
Drive de disquetes
Porta paralela

O nmero do endereo de IRQ indica tambm a sua prioridade, comeando


do 0 que o que tem a prioridade mais alta. No toa que o IRQ 0
ocupado pelo sinal de clock da placa me, pois ele quem sincroniza o
trabalho de todos os componentes, inclusive do processador.
Logo depois vem o teclado, que ocupa o IRQ 1. Veja que o teclado o
dispositivo com um nvel de prioridade mais alto, para evitar que as teclas
digitadas se percam. Isso pode parecer desnecessrio, j que um
processador atual processa bilhes de operaes por segundo e dificilmente
algum digita mais do que 300 ou talvez 400 teclas por minuto, mas, na
poca do XT, as coisas no eram assim to rpidas.
Em seguida vm os demais perifricos, como as portas seriais e o drive de
disquetes. A IRQ2 ficava livre para a instalao de um perifrico qualquer.
Na verdade, na maioria das vezes o 5 tambm ficava livre, pois os HDs no
eram algo muito comum naquela poca.

A partir do 286, houve uma evoluo neste esquema, pois finalmente os PCs
passaram a ter 16 endereos de IRQ, numerados de 0 a 15, como nos dias
de hoje. Como quase todas as evolues na famlia PC, foi preciso manter
compatibilidade com o padro 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 endereos. Este
segundo controlador passou a ser ligado no IRQ 2, que costumava ficar livre.
Todos os pedidos de interrupo dos perifricos ligados aos endereos 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
no pode mais ser utilizado por nenhum perifrico. Caso fosse instalado um
modem ISA, por exemplo, configurado atravs dos jumpers para utilizar o
IRQ 2, ele seria remapeado para o IRQ 9. Ou seja, na prtica, no temos 16
endereos de IRQ, mas apenas 15.
Em segundo lugar, como o segundo controlador est ligado ao IRQ 2, todas
as placas que utilizarem os endereos de 8 a 15, tero prioridade sobre as
que usarem os IRQs de 3 a 7, pois, do ponto de vista do processador, esto
ligadas ao IRQ 2, que por onde todos os pedidos chegam a ele:

Este seria um exemplo de configurao comum de endereos em um PC da


era Pentium baseado em uma placa me soquete 7:

IRQ
IRQ
IRQ
IRQ
IRQ

0
1
2
3
4

Sinal de clock da placa me (fixo)


Teclado (fixo)
Cascateador de IRQs (fixo)
Porta serial 2
Porta serial 1

IRQ
IRQ
IRQ
IRQ
IRQ
IRQ
IRQ
IRQ
IRQ
IRQ
IRQ

5 - Livre
6 - Drive de disquetes
7 - Porta paralela (impressora)
8 - Relgio do CMOS (fixo)
9 - Placa de vdeo
10 - Livre
11 - Controlador USB
12 - Porta PS/2
13 - Coprocessador aritmtico (fixo)
14 - IDE Primria
15 - IDE Secundria

Veja que com apenas a placa de vdeo e os dispositivos da placa me, j


sobravam apenas dois endereos de IRQ disponveis. Ao adicionar uma
placa de som e um modem, todos os endereos estariam ocupados, no
dando mais margem de expanso para uma placa de rede ou uma placa
SCSI por exemplo. A soluo seria desabilitar dispositivos que no
estivessem sendo usados, como por exemplo, a segunda porta serial, a
porta PS/2, o controlador USB, etc. Mas, de qualquer forma, logo chegaria o
ponto em que no haveria mais nada a ser desabilitado.
Este problema comeou a tornar-se cada vez mais evidente, medida que
mais e mais perifricos comearam a tornar-se padro. Os nicos perifricos
"de fbrica" em um 286 eram o monitor e o teclado, todo o restante era
opcional. Em um PC atual temos um nmero muito maior de dispositivos, a
comear pelos componentes onboard.
Felizmente, pensaram neste problema quando desenvolveram o barramento
PCI, incluindo o recurso de PCI Steering, que permite que dois, ou mais
perifricos PCI compartilhem o mesmo endereo de IRQ. Neste caso, o
controlador PCI passa a atuar como uma ponte entre os perifricos e o
processador. Ele recebe todos os pedidos de interrupo, 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 possvel ocupar apenas um endereo de IRQ. Do lado do
software, o PCI Steering passou a ser suportado a partir do Windows 95
OSR/2, alm de ser suportado, por parte do Kernel, praticamente desde as
primeiras verses do Linux.
Nem todos os dispositivos PCI suportam trabalhar desta maneira, mas a
grande maioria funciona sem problemas. No Windows, voc pode verificar a
distribuio dos endereos dentro do Painel de Controle > Sistema >
Hardware > Gerenciador de Dispositivos. Na janela principal, clique no Exibir
> Recursos por tipo.
No screenshot abaixo, temos um PC antigo, rodando o Windows 2000, onde
as duas placas de rede e a placa de som compartilhando o IRQ 9:

Alm do barramento PCI, outros barramentos usados atualmente permitem


compartilhar um nico IRQ entre vrios perifricos. 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
sua placa me tenha 6 portas USB e voc utilize todas, ter ocupado apenas
um endereo.
Caso voc utilizasse apenas perifricos USB, incluindo o mouse, impressora,
scanner, etc. poderia desabilitar todas as portas de legado da sua placa
me: as duas portas seriais, a porta paralela e a porta PS/2, o que liberaria 4
endereos de IRQ.
No caso de placas me com duas interfaces IDE, cada uma ocupa dois
endereos (por padro o 14 e o 15). Mas, caso voc no pretenda usar a IDE
secundria, sempre existe a possibilidade de desabilit-la no Setup. Todas
estas opes aparecem na sesso "Integrated Peripherals".
Com todas estas facilidades, ficava fcil ter um sistema com vrios IRQs
livres, como no exemplo abaixo:

IRQ
IRQ
IRQ
IRQ
IRQ
IRQ
IRQ
IRQ
IRQ
IRQ
IRQ
IRQ
IRQ

0 - Sinal de clock da placa me (fixo)


1 - Teclado (fixo)
2 - Cascateador de IRQs (fixo)
3 - Livre (serial 2 desativada)
4 - Modem
5 - Livre
6 - Drive de disquetes
7 - Livre (porta paralela desativada)
8 - Relgio do CMOS (fixo)
9 - Placa de som, placa de rede (1), placa de rede (2)
10 - Placa de vdeo
11 - Controlador USB (Mouse, impressora e scanner)
12 - Porta PS/2

IRQ 13 - Coprocessador aritmtico


IRQ 14 - IDE Primria
IRQ 15 - Livre (IDE Secundria desativada)
Todos estes dispositivos e ainda 4 endereos de IRQ livres no soam nada
mal. Na verdade, a escassez de endereos de IRQ um problema muito
menor hoje em dia do que j foi no passado. Antigamente era preciso
configurar manualmente o endereo a ser usado por cada placa e no havia
como compartilhar um IRQ entre dois perifricos como temos hoje. Um
jumper no lugar errado era o suficiente para o modem ou a placa de som
entrarem em conflito com algum e pararem de funcionar.
Hoje em dia, todas as placas novas so PCI, o que naturalmente significa
que so plug and play. Basta espeta-las para que o BIOS atribua
automaticamente um endereo. Usando apenas placas PCI, voc ter
conflitos apenas caso realmente todos os IRQs estejam ocupados.
Mas nem tudo est resolvido. Apesar dos conflitos ao se usar apenas placas
PCI sejam rarssimos, ainda esto em uso muitos PCs antigos com placas
ISA. a que as coisas podem complicar um pouco.
Existem dois tipos de placas ISA: as ISA Plug-and-Play e as placas de legado
(Legacy ISA). As primeiras, que comearam a aparecer ainda na poca do
486, tem seus endereos configurados automaticamente pelo BIOS, mas
no so capazes de compartilhar IRQs como as placas PCI.
O sistema de plug-and-play utilizado nelas funciona de forma limitada, de
forma que elas ainda podem entrar em conflito com perifricos PCI, mesmo
que existam alguns endereos livres. Neste caso, voc pode alterar
manualmente o endereo a ser usado pela placa ISA atravs do gerenciador
de dispositivos do Windows, basta clicar sobre o cone do dispositivo,
acessar as propriedades e abrir a guia de recursos.
J nas placas Legacy ISA, preciso configurar os endereos de IRQ
manualmente, atravs de jumpers, ou ento usando um software que
acompanha a placa (o que muito comum em placas de rede ISA). Uma vez
configurada para usar um endereo, a placa ir entrar em conflito com
qualquer dispositivo que tente us-lo. Para complicar, o BIOS no enxerga as
placas de legado, de forma que existe a possibilidade de que ele atribua o
mesmo endereo para algum dispositivo plug-and-play, gerando um
conflito.
Para evitar este problema, preciso reservar manualmente os endereos de
IRQ e DMA ocupados por perifricos ISA de legado atravs da sesso
"PNP/PCI Setup" do CMOS Setup. o tipo de coisa com a qual voc no
precisa se preocupar em um PC atual (que no possuem sequer slots ISA),
mas que era uma necessidade a duas geraes atrs.

Caso o PC tivesse instalado um modem ISA, configurado para utilizar o IRQ


7, por exemplo, voc precisava marc-lo com a opo "Legacy ISA" no
Setup. Na foto abaixo temos a sesso "PnP/PCI" do Setup de uma placa me
com BIOS Award. Veja que cada endereo de IRQ pode ser configurado
separadamente:

A opo default no reservar os endereos, deixando-os livres para o uso


de qualquer dispositivo PnP. Para reservar um endereo, basta alterar a
opo. Lembre-se de reservar apenas os endereos necessrios, pois ao
reservar um endereo ele deixa de estar disponvel para as placas plug-andplay.
Existe mais um ponto interessante sobre as placas ISA, que o fato de
existirem tanto placas ISA de 8 bits, quanto placas de 16 bits. fcil
diferenci-las, pois as placas de 8 bits utilizam apenas a primeira parte do
encaixe. As placas de 8 bits utilizam exatamente o mesmo barramento que
era usado no XT, o que significa que estas placas enxergam apenas os IRQs
de 0 a 7. Este o caso por exemplo de muitos modems ISA.
Neste caso no existe muito segredo, caso todos os seus IRQs de 0 a 7 j
estejam ocupados, o jeito ser mudar o endereo de um dos dispositivos,
dando lugar ao modem. Voc pode simplesmente reservar no Setup o
endereo que esteja sendo usado por uma placa plug-and-play que esteja
instalada, assim da prxima vez que iniciar o micro, o BIOS se encarrega de
dar outro endereo para ela, deixando o modem em paz.
Toda a configurao de endereos feita perlo BIOS armazenado numa rea
do CMOS, chamado ESCD. Em casos onde o BIOS no detecte um dispositivo
recm-instalado ou onde ele insista em assinar o mesmo endereo para
duas placas que no suportam o PCI Steering, causando um conflito, existe
a opo de limpar o ESCD. Isto far com que o BIOS precise reconfigurar o
endereos de todas as placas, partindo do zero. Para limpar o ESCD, basta

acessar o Setup e ativar a opo "Force Update ESCD" ou "Reset


Configuration data".