quinta-feira, 25 de julho de 2013

Pedido de interrupção (IRQ) II

Além do barramento PCI, outros barramentos usados actualmente 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 sua placa mãe tenha 6 portas USB e você utilize todas, terá ocupado apenas um endereço.

Caso você utilizasse apenas periféricos USB, rato, impressora, scanner, etc. poderia desabilitar todas as portas de legado da sua placa mãe: as duas de série, a paralela e a PS/2. Seriam 4 endereços de IRQ livre.

Outro exemplo são as controladoras SCSI, onde é possível conectar até 15 dispositivos, entre discos rígidos, CD-ROMs, gravadores, etc. em troca de um único endereço de IRQ.

As portas IDE da placa mãe consomem dois IRQs, já que temos duas portas. Mas, caso você tenha apenas um disco rígido, e não pretenda usar a IDE secundária, sempre existe a possibilidade de desabilitá-la no setup. Todas estas opções aparecem na sessão “Integrated Peripherals”.

Com todas estas facilidades, fica fácil ter um sistema com vários IRQs livres, como no exemplo abaixo:

IRQ 0 - Sinal de relógio da placa mãe (fixo)
IRQ 1 - Teclado (fixo)
IRQ 2 - Cascateador de IRQs (fixo)
IRQ 3 - Livre (porta de série 2 desactivada)
IRQ 4 - Modem
IRQ 5 - Livre
IRQ 6 - Drive de disquetes
IRQ 7 - Livre (porta paralela desactivada)
IRQ 8 - Relógio do CMOS (fixo)
IRQ 9 - Placa de som, placa de rede (1), placa de rede (2)
IRQ 10 - Placa de vídeo
IRQ 11 - Controlador USB (Rato, impressora e scanner)
IRQ 12 - Porta PS/2
IRQ 13 - Coprocessador aritmético
IRQ 14 - IDE Primária
IRQ 15 - Livre (IDE Secundária desactivada)
 
Todos estes dispositivos e ainda 4 endereços de IRQ livres não soam nada mal. 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 entrarem em conflito com alguém e pararem de funcionar.

Hoje em dia, todas as placas novas são PCI, o que naturalmente significa que são plug and play.

Basta espetá-las para que o BIOS atribua automaticamente um endereço. Usando apenas placas PCI, 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 raríssimos, ainda estão em uso muitos PCs antigos com placas ISA. É aí que as coisas podem complicar um pouco.

Existem dois tipos de placas ISA, as que são plug-and-play e as placas de legado. As primeiras, que começaram a aparecer ainda na época do 486, já são configuradas automaticamente pelo BIOS, mas não são capazes de compartilhar IRQs como as placas PCI. O plug-and-play destas placas ISA não é tão confiável quanto o das placas PCI, elas podem entrar em conflito mesmo
existindo IRQs livres. Neste caso, você pode alterar manualmente o endereço a ser usado pela placa através do gerenciador de dispositivos do Windows, basta clicar sobre o ícone do dispositivo, aceder às propriedades e abrir a guia de recursos.

As placas ISA plug-and-play são uma espécie de meio termo. Além delas existem as placas ISA de legado ou legacy ISA, onde é preciso configurar os endereços de IRQ manualmente, através de jumpers, ou então usando um software que acompanha a placa (o que é muito comum em placas de rede ISA). Uma vez configurada para usar um endereço, a placa irá entrar em conflito com qualquer dispositivo que tente usa-lo. Para complicar, o BIOS não enxerga as placas de legado, podendo atribuir o mesmo endereço para alguma placa plug-and-play, causando o conflito.

Para evitar este problema, é preciso reservar manualmente os endereços de IRQ e DMA ocupados por periféricos ISA de legado através da sessão “PNP/PCI Setup” do CMOS Setup. Se, por exemplo, você tiver um modem jumpeado para utilizar o IRQ 7 você deve marcá-lo com a opção “Legacy ISA”. Na foto abaixo temos a sessão “PnP/PCI” do Setup de uma placa mãe com BIOS Award. Veja que cada endereço de IRQ pode ser configurado separadamente:


A opção default é não reservar os endereços, deixando-os livres para o uso de qualquer dispositivo PnP; para reservar um endereço, basta alterar a opção. Lembre-se de reservar apenas os endereços necessários, pois ao reservar um endereço ele deixa de estar disponível para as placas Plug-and-play. Se reservar muitos endereços você terá problemas de conflitos mesmo com vários
IRQs livres.

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. É fácil diferencia-las, pois as placas de 8 bits utilizam apenas a primeira parte do encaixe. As placas de 8 bits utilizam exactamente 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 de 28.8 e 33.6 da US Robotics. Neste caso não existe muito segredo, caso todos os seus IRQs de 0 a 7 já estejam ocupados, o jeito será mudar o endereço de um dos dispositivos, dando lugar ao modem. Você pode simplesmente reservar no Setup o endereço que esteja sendo usado por uma placa Plug-and-play que esteja instalada, assim da próxima vez que iniciar o computador, o BIOS se encarregará de dar outro endereço para ela, deixando o modem em paz.

Note que toda a configuração de endereços feita pelo BIOS é armazenado numa área do CMOS, chamado ESCD. Caso por exemplo o BIOS não reconheça uma placa recém instalada, mesmo que ela seja plug-and-play e existam endereços livres, caso ele insista em assinar o mesmo endereço para duas placas que não suportam o PCI Steering, causando um conflito, ou qualquer outro problema do género, existe a opção de limpar o ESCD. Isto fará com que o BIOS precise reconfigurar o endereços de todas as placas, partindo do zero.

Para limpar o ESCD, basta aceder ao Setup e activar a opção “Force Update ESCD” ou “Reset Configuration data”. Não se preocupe, pois não será preciso reinstalar as placas, apenas podem ser alterados os IRQs usados por algumas.

in Manual de Hardware Completo
de Carlos E Marimoto


Sem comentários: