Escritos
B. Piropo
Anteriores:
< Trilha Zero >
Volte de onde veio
16/08/1993

< Interrupções II >


Semana passada começamos nossa caminhada pelo escorregadio terreno das interrupções de hardware, as usadas pelos dispositivos para se comunicar com a CPU e controladas diretamente pela placa mãe. Mais especificamente por um chip da placa mãe denominado controlador de interrupções, que pode controlar até oito delas. Vimos também que um XT dispõe de um único controlador e, por conseguinte, está limitado a apenas oito interrupções, cada uma designada por um "número" que corresponde à sua prioridade. Assim, em um XT, a IRQ0 é a de maior prioridade e a IRQ7 a de menor.

Já um AT dispõe de dois chips, e portanto pode controlar até dezesseis interrupções, de IRQ0 até IRQ15. Seguindo a mesma linha de raciocínio, concluiríamos que a IRQ15 é a de menor prioridade. Mas, como já estamos cansados de saber, quando se trata de destrinchar o que há nas entranhas de nossas máquinas, nem sempre o que é lógico é correto. O assunto não tem grande importância, pois desde que não haja conflito de interrupções (ou seja, desde que dois dispositivos não tentem usar a mesma interrupção simultaneamente), na imensa maioria das vezes elas são atendidas tão rapidamente que pouco importa qual será primeiro. Mas, se você se interessa por detalhes, saiba que em um AT o segundo controlador de interrupções está ligado na linha correspondente à IRQ2 do primeiro, em uma configuração denominada "cascata". O que leva a uma curiosa ordem de prioridades: as controladas pelo segundo chip, como foram "encaixadas" no lugar da IRQ2, assumem prioridades maiores que as de ordem mais alta controladas pelo primeiro. Se isso lhe pareceu complicado, esqueça. Como disse, para nós, simples micreiros, pouco importa a ordem em que as interrupções sejam atendidas desde que os dispositivos que as usam funcionem.

Mas, afinal, que dispositivos são esses? Bem, praticamente tudo que se pode "pendurar" em um micro precisa se comunicar com a CPU através de uma interrupção. Isso inclúi desde as coisas mais corriqueiras, como teclado, discos rígidos, drives de disquetes, impressoras e mouses, até itens relativamente raros há algum tempo, mas que se estão tornando cada vez mais comuns, como placas de som, drives CD-ROM e scanners. E você já percebeu onde o carro pega: o número de dispositivos que requerem interrupções está aumentando enquanto o número de interrupções permanece fixo. Se fosse só isso, a coisa já seria séria, particularmente nos XT, com suas míseras oito interrupções. Mas, no momento de escolher uma interrupção para um novo dispositivo que estamos instalando em nossa máquina, há ainda que considerar dois complicadores adicionais nada desprezíveis. O primeiro é que, como vimos semana passada, muitas destas interrupções já estão indissoluvelmente ligadas a determinados dispositivos, e portanto não estão disponíveis. Tudo bem: sempre sobram algumas. Mas aí entra o segundo: alguns dispositivos só podem usar determinadas interrupções. Por exemplo: em um XT a impressora só pode usar a IRQ7, mas em um AT pode usar a IRQ7 ou a IRQ5. Complicou? Sinto muito, a culpa não é minha. O negócio é complicado mesmo. Mas seja paciente e siga em frente, que suas dúvidas logo serão esclarecidas.

Vamos destrinchar a complicação começando pela lista das interrupções que já têm dono e, portanto, podem ser liminarmente descartadas da lista das disponíveis. Algumas têm números diferentes nos AT e nos XT, outras mantêm o mesmo número. Vamos a elas.

A primeira, essencial, pois dela depende todo o funcionamento da máquina, é a usada pelo temporizador do sistema, a "timer interrupt". Não a confunda com a do relógio interno, já que sua função não é "contar" o tempo, mas controlar a frequência de operação de todo o sistema. Portanto, não é de admirar que seja a de mais alta prioridade: tanto no XT quanto no AT corresponde à IRQ0.

Em seguida, e quase tão importante quanto ela, vem a interrupção do teclado, essencial em qualquer máquina. Por isso, também tanto no XT quanto no AT, é a de prioridade seguinte, a IRQ1.

Depois, a dos drives de disquete. Com exceção de poucas estações de trabalho ligadas em rede, toda máquina dispõe deles. E tanto os XT quanto os AT usam para isso a IRQ6.

Finalmente o HD, um dispositivo em tese opcional mas que dificilmente você encontrará uma máquina onde esteja ausente. O XT reservou a IRQ5 para a sua controladora. Já o AT designou a IRQ14 para este fim (portanto, se você tem um AT, já "pintou" a primeira interrupção que pode estar disponível, a IRQ5). Note que a interrupção é atribuída à controladora de HD, não ao drive. Como, à semelhança dos drives de discos flexíveis, uma controladora pode gerenciar até dois HD, você não terá problema se quiser adicionar um segundo disco rígido à seu micro. Mas daí para a frente, só usando uma interface SCSI. Sobre a qual voltaremos a falar mais adiante, pois pode ser uma solução quando as interrupções disponíveis em sua máquina escassearem.

Agora, aquelas que foram incluidas apenas nos AT: a IRQ8 fica à disposição do relógio interno (real time Clock) e a IRQ13 pertence ao coprocessador matemático.

Pronto. Por hoje ficamos por aqui. Semana que vem vamos examinar as interrupções utilizadas pelas "portas", ou canais que o micro usa para se comunicar com alguns dispositivos mais comuns. Que são de dois tipos: paralelas e seriais. Até lá.

PS: Recebi, afinal, a versão beta de Windows NT diretamente da Microsoft do Brasil. Um portentoso CD-ROM com a devida documentação que vai ganhar um lugar de honra nesta máquina que vos fala. Para evitar interferências, decidi dedicar um HD só para ela, que será instalada logo após a COMDEX. Breve dou notícias.

B. Piropo