(Parte 5 de 8)

Os antigos computadores 8086/8088 (XT) usavam somente 8 interrupções de hardware operando a 8 bits. Com o surgimento do AT foram incluídas 8 novas interrupções, operando a 16 bits. Os computadores 286 e superiores tem 16 interrupções de hardware numeradas de 0 a 15. No kernel 2.4 e superiores do Linux, a função APIC (Advanced Programmable Interruption Controller) permite gerenciar de forma avançada mais de 15 interrupções no sistema operacional. Estas interrupções oferecem ao dispositivo associado a capacidade de interromper o que o processador estiver fazendo, pedindo atenção imediata.

As interrupções do sistema podem ser visualizadas no kernel com o comando cat /proc/interrupts. Abaixo um resumo do uso mais comum das 16 interrupções de hardware:

0 Timer do Sistema - Fixa 01 Teclado - Fixa

02 Controlador de Interrupção Programável - Fixa.

Esta interrupção é usada como ponte para a IRQ 9 e vem dos antigos processadores 8086/8088 que somente tinham 8 IRQs. Assim, pera tornar processadores 8088 e 80286 comunicáveis, a IRQ 2 é usada como um redirecionador quando se utiliza uma interrupção acima da 8.

03 Normalmente usado por /dev/ttyS1 mas seu uso depende dos dispositivos instalados em seu sistema (como fax-modem, placas de rede 8 bits, etc).

04 Normalmente usado por /dev/ttyS0 e quase sempre usada pelo mouse serial a não ser que um mouse PS2 esteja instalado no sistema.

Capítulo 3. Hardware 16

05 Normalmente a segunda porta paralela. Muitos micros não tem a segunda porta paralela, assim é comum encontrar placas de som e outros dispositivos usando esta IRQ.

06 Controlador de Disquete - Esta interrupção pode ser compartilhada com placas aceleradoras de disquete usadas em tapes (unidades de fita).

07 Primeira porta de impressora. Pessoas tiveram sucesso compartilhando esta porta de impressora com a segunda porta de impressora. Muitas impressoras não usam IRQs.

08 Relógio em tempo real do CMOS - Não pode ser usado por nenhum outro dispositivo.

09 Esta é uma ponte para IRQ2 e deve ser a última IRQ a ser utilizada. No entanto pode ser usada por dispositivos.

10 Interrupção normalmente livre para dispositivos. O controlador USB utiliza essa interrupção quando presente, mas não é regra.

1 Interrupção livre para dispositivos

12 Interrupção normalmente livre para dispositivos. O mouse PS/2, quando presente, utiliza esta interrupção.

13 Processador de dados numéricos - Não pode ser usada ou compartilhada

14 Esta interrupção é usada pela primeira controladora de discos rígidos e não pode ser compartilhada.

15 Esta é a interrupção usada pela segunda controladora de discos e não pode ser compartilhada. Pode ser usada caso a segunda controladora esteja desativada.

Dispositivos ISA, VESA, EISA, SCSI não permitem o compartilhamento de uma mesma IRQ, talvez isto ainda seja possível caso não haja outras opções disponíveis e/ou os dois dispositivos não acessem a IRQ ao mesmo tempo, mas isto é uma solução precária.

Conflitos de IRQ ocorriam nesse tipo de hardware acima ocasionando a parada ou mal funcionamento de um dispositivo e/ou de todo o sistema. Para resolver um conflito de IRQs, deve-se conhecer quais IRQs estão sendo usadas por quais dispositivos (usando cat /proc/interrupts) e configurar as interrupções de forma que uma não entre em conflito com outra. Isto normalmente é feito através dos jumpers de placas ou através de software (no caso de dispositivos jumperless ou plug-and-play).

Dispositivos PCI, PCI Express são projetados para permitir o compartilhamento de interrup-

Capítulo 3. Hardware 17 ções. Se for necessário usar uma interrupção normal, o chipset (ou BIOS) mapeará a interrupção para uma interrupção normal do sistema (normalmente usando alguma interrupção entre a IRQ 9 e IRQ 12) ou usando APIC (se estiver configurado).

Prioridade das Interrupções

Cada IRQ no sistema tem um número que identifica a prioridade que será atendida pelo processador. Nos antigos sistemas XT as prioridades eram identificadas em seqüência de acordo com as interrupções existentes:

Com o surgimento do barramento AT (16 bits), as interrupções passaram a ser identificadas da seguinte forma:

Note que a prioridade segue em seqüência através da ponte da IRQ 2 para IRQ 9. Os dispositivos com prioridade mais baixa são atendidos primeiro, mas é uma diferença de desempenho praticamente imperceptível de ser notada nos sistemas atuais.

3.3.2 DMA - Acesso Direto a Memória

A DMA é usada para permitir a transferência de dados entre dispositivos I/O e a memória sem precisar do processador faze-lo. Ele livra esta carga do processador e resulta em uma rápida transferência de dados.

O PC padrão tem dois controladores de DMA. O primeiro controla os canais 0, 1, 2, 3 e o segundo os canais 4, 5, 6, 7, assim temos 8 canais. No entanto, o canal 4 é perdido porque é usado pelo controlador de acesso direto a memória. Os canais 0-3 são chamados de canais baixos porque podem somente mover um byte (8 bits) por transferência enquanto canais altos movem 2 bytes (16 bits) por transferência.

Os dados movidos usando a DMA não são movidos através do controlador de DMA. Isto oferece uma limitação porque a DMA somente podem mover dados entre os dispositivos (portas I/O) e a memória. Não é possível mover dados entre as portas ou entre a memória.

Existem dois controladores de DMA nos computadores AT e superiores. Ao contrário do que acontece com os dois controladores de IRQ, o primeiro controlador é ligado ao segundo e não o segundo ao primeiro. Os canais de DMA altos (5 ao 7) somente podem ser acessados por dispositivos de 16 bits (aqueles que utilizam a segunda parte do slot AT). Como resultado temos 8 canais de DMA, de 0 a 7, sendo que a DMA 4 é usada como ligação entre eles.

Os canais de DMA em uso no sistema podem ser visualizados com cat /proc/dma. Abaixo uma listagem de uso mais comum dos canais de DMA.

Capítulo 3. Hardware 18

DMA Barram. Uso 0 - Usada pelo circuito de refresh da memória DRAM 1 8/16 bits Normalmente usado por placas de som (canal 8 bits), porta paralela ECP, adaptadoras SCSI, placas de rede ou controladora de scanner. 2 8/16 bits Normalmente usado pela controladora de disquetes ou controladoras de tapes. 3 8/6 bits Usado pela porta paralela ECP, placa de som, controladoras de tapes, controladoras SCSI ou controladora de scanner antiga. 4 - Usada como ponte para a outra controladora de DMA (0-3) 5 16 bits Normalmente usada pela placa de som (canal 16 bits), placas controladoras SCSI, placas de rede ou controladora de scanner. 6 16 bits Placa de som (canal 16 bits), controladora de scanner ou placa de rede. 7 16 bits Placa de som (canal 16 bits), controladora de scanner ou placa de rede.

Somente dispositivos ISA e derivados dele, como o EISA e VESA, usam os canais de DMA padrão. Os atuais dispositivos de alta taxa de transferência (normalmente PCI) possuem seu próprio controlador de DMA embutido, muito mais rápido do que a DMA padrão. Este controlador de DMA é chamado de Bus Mastering e muito usado nos discos rígidos atuais e pode atingir taxas de 3,3MB/s (no modo 2) e 66MB/s (no modo 4 - requer um cabo IDE com aterramento para evitar interferências de ruídos externos).

Conflitos de DMA

Um canal de DMA não pode ser compartilhado entre dispositivos. Ainda é possível configurar dois dispositivos para usarem um mesmo canal de DMA, desde que ele não seja usado ao mesmotempo. IstoacontececomScannersparalelosquecompartilhamamesmaportaparalela com a impressora. Se você for uma pessoa que explora os recursos de multitarefa de seu Linux e seu desempenho, evite estes tipos de dispositivos, prefira aqueles que utilizam seus próprios recursos.

Quando ocorre um conflito de DMA, os dados podem ser misturados e ocorrerem coisas estranhas até o travamento total do sistema. Este tipo de conflito é difícil de se diagnosticar, a não ser que o técnico seja experiente o bastante e tenha desconfiado do que o problema se trata...

3.3.3 I/O - Porta de Entrada/Saída

Cada dispositivo possui um endereço de porta. O endereço é uma localização da memória usada pelo computador para enviar dados ao dispositivo e onde o dispositivo envia dados ao computador. Ao contrários da IRQ e DMA, o dispositivo pode usar mais de uma porta de

Capítulo 3. Hardware 19

Entrada/Saída ou uma faixa de endereços. Por exemplo, uma placa de som padrão usa as portas 0x220, 0x330 e 0x388, respectivamente audio digital, midi e opl3.

As placas de rede normalmente transferem grandes quantidades de dados, assim ocupam uma faixa de endereços. Uma NE2000, por exemplo, ocupa a faixa de endereços 0x260 a 0x27F (0x260-0x27F). O tamanho da faixa de endereços varia de acordo com o tipo de dispositivo.

Os endereços de I/O em uso no sistema podem ser visualizados com o comando cat /proc/ioports.

Endereços das portas de entrada/saída não podem ser compartilhados

3.4 Hardwares configuráveis por jumpers, dip-switches, jumperless e Plug-and-Play.

3.4.1 Jumpers

Hardwares configuráveis por jumpers (pinos metálicos protegidos por uma capa plástica) tem sua configuração alterada através da colocação, retirada ou mudança de posição física do pino. Este tipo de hardware, antigamente presente em placas ISA e VESA, não é mais usado atualmente devido a configuração Plug and Play de dispositivos PCI, PCI express, etc.

As disposição dos jumpers são normalmente definidas em fechado/aberto e multi-posição. Na disposição fechado/aberto, o jumper pode ou não ser colocado, definindo a configuração do dispositivo:

(Parte 5 de 8)

Comentários