Dicas Vas-y.com
Menu

Curso de hardware: AVANÇADO I

1. Endereços de I/O, Interrupções de Hardware e Canais de DMA

Considero que este seja o item mais importante para o perfeito funcionamento do sistema. Os endereços de I/O, as interrupções de hardware e os canais de DMA são responsáveis pela comunicação entre as diversas placas e periféricos com o processador e a memória. Vamos ver, resumidamente, como tudo isso funciona.

A comunicação entre a CPU e os periféricos é feita utilizando-se os seguintes artifícios:

- Uma área de escrita e leitura, a exemplo de um quadro negro, com diversas divisões, uma para cada dispositivo, onde são registradas as diversas mensagens.

- Vários dispositivos de acionamento, como campanhias, uma para cada dispositivo, que avisam quando uma nova mensagem foi disposta numa área do quadro negro.

Digamos que uma placa fax-modem deseja se comunicar com a CPU. Para isso, ela irá até o quadro negro e escreverá a mensagem para a CPU. Essa mensagem será escrita na área destinada à placa fax-modem. Feito isto, será necessário que a placa fax-modem avise à CPU que há uma mensagem para ela. Nesse momento, a CPU deverá o interromper o seu processamento para verificar o conteúdo do quadro negro. Como fazer isso ? Tocando a campanhia que vai da placa fax-modem até a CPU. Entendeu ?

No exemplo acima, aplicamos os conceitos de endereços de I/O e interrupções de hardware.

Endereços de I/O (Input/Output = entrada/saída) representam uma área da memória RAM destinada à troca de informações entre periféricos e CPU. Essa área consiste no primeiro KB da memória RAM, ou seja, os primeiros 1024 bytes do sistema. Esses 1024 KB encontram-se divididos em áreas de 8 bytes, num total de 128 áreas. Cada placa ocupa uma área diferente, sendo que algumas, por necesidade de realizarem troca de 16, 24 ou 32 informações ao mesmo tempo, ocupam 2, 3 ou 4 áreas de uma só vez, num total de 16, 24 ou 32 bytes. Trocando em miúdos, cada byte representa uma informação diferente. Agora, o mais importante: CADA ÁREA OU CONJUNTO DE 2, 3 OU 4 ÁREAS SÓ PODE SER OCUPADO POR UM ÚNICO DISPOSITIVO. O não cumprimento dessa regra é um dos responsáveis por conflitos no sistema.

Interrupções de hardware (IRQ ou Interrupt Request Lines ou Linhas de Requisição de Interrupção) representam um artifício que os periféricos utilizam para forçar a CPU a interromper o seu processamento normal e verificar as informações enviadas para ela por intermédio dos endereços de I/O. Nos XT existem 8 linhas de interrupção (como 8 campanhias disponíveis). Nos AT e Pentium são 16 interrupções. Agora, o mais importante: a exemplo dos endereços de I/O, CADA INTERRUPÇÃO DE HARDWARE SÓ PODE SER OCUPADA POR UM ÚNICO DISPOSITIVO. O não cumprimento dessa regra também é um dos responsáveis por conflitos no sistema.

E os tais canais de DMA ?

Canais de DMA (Direct Memory Access ou Acesso Direto à Memória) permitem que um periférico (geralmente os rápidos) acesse diretamente a memória sem a interferência da CPU. Os canais de DMA geralmente são utilizados para operações de disco, disquete e multimídia. Cabe ressaltar que como a CPU executa uma troca dinâmica com a memória (veja em Básico I), sempre que o artifício dos canais de DMA é utilizado a memória se volta exclusivamente para o periférico em questão e a CPU pára o seu processamento até que a operação acabe. Mas não se preocupe; são frações de segundos. Basta dizer que a sua placa de som está constantemente executando operações com canais de DMA. Agora (mais uma vez), o mais importante: a exemplo dos endereços de I/O e das Interrupções de Hardware, CADA CANAL DE DMA SÓ PODE SER OCUPADO POR UM ÚNICO DISPOSITIVO. O não cumprimento dessa regra também é um dos responsáveis por conflitos no sistema.

Existem 4 canais de DMA nos XT e 8 nos AT e Pentium. Apenas como curiosidade, os canais de DMA utilizam duas linhas de comunicação. Uma, a DRQ, solicita a operação e a outra, a DACK, confirma a operação. Se solicitados, os valores da DRQ e da DACK devem ser os mesmos da DMA.

2. Tabelas de Endereços de I/O, IRQ e DMA

Abaixo, disponibilizamos algumas tabelas que contém valores padrão para diversos eventos e dispositivos.

ont color="#000000">Controladora de teclado AT
a. Tabela 1 - Endereços de I/O utilizados exclusivamente pelo sistema
Intervalo Dispositivo
000 - 01F 1ª Controladora de canais de DMA
020 - 03F 1ª Controladora de IRQ
040 - 05F Timer
060 - 06F
070 - 07F Clock do CMOS
080 - 09F Registro de página de DMA
0A0 - 0BF 2ª Controladora de IRQ
0C0 - 0DF 2ª Controladora de canais de DMA
0F0 - 0F1 Clear e reset do co-processador

1) Interrupções fixas
(2) Interrupções livres, caso seus dispositivos sejam desactivados
(3) Dispositivos naturalmente livres

c. Tabela 3 - Interrupções no XT e no AT e superiores
Interrupções do XT Contro color="#000000" size="2">Interrup. do AT e superiores
IRQ 0 Timer (1) IRQ 0 Timer (1)
IRQ 1 Teclado (1) IRQ 1 Teclado (1)
IRQ 2 Livre (3) IRQ 2 Ligação com IRQ 9 (1)
IRQ 3 COM 2 (2) IRQ 3 COM 2 / COM 4 (2)
IRQ 4 COM 1 (2) IRQ 4 COM 1 / COM 3 (2)
IRQ 5 HDD (1) IRQ 5 LPT 2 (2)
IRQ 6 FDD (1) IRQ 6 FDD (1)
IRQ 7 LPT 1 (2) IRQ 7 LPT 1 / LPT 3 (2)
- IRQ 8 Clock (1)
- IRQ 9 Ligação com IRQ 2 (1)
- IRQ 10 Livre (3)
- IRQ 11 Livre (3)
- IRQ 12 Livre (3)
- IRQ 13 Co-processador (1)
- IRQ 14 HDD/CD (1º IDE) (1)
- IRQ 15 HDD/CD (2º IDE) (2)
b. Tabela 2 - Endereços de I/O utilizados
pelos periféricos, portas e sistema
Intervalo Dispositivo
168 - 16F 4ª Controladora de CD-ROM IDE
170 - 177 2ª Controladora de HD e CD-ROM IDE
1E8 - 1EF 3ª Controladora de CD-ROM IDE
1F0 - 1F7 1ª Controladora de HD e CD-ROM IDE
200 - 20F Interface de joystick
278 - 27F LPT - porta paralela para impressora
2E8 - 2EF COM 4 - porta serial
2F8 - 2FF COM 2 - porta serial
300 - 31F Reservado para a CPU
360 - 36F Reservado para a CPU
370 - 377 2ª Interface de drives
378 - 37F LPT - porta paralela para impressora
3B0 - 3BF Placa de vídeo MDA e Hercules ou LPT
3C0 - 3CF Placa VGA e SVGA
3D0 - 3DF Placa CGA (e VGA)
3E8 - 3EF COM 3 - porta serial
3F0 - 3F7 1ª Interface de drives
3F8 - 3FF COM 1 - porta serial

(1) Interrupções fixas
(2) Dispositivos naturalmente livres

d. Tabela 4 - Canais de DMA no XT e no AT e superiores
DMA no XT DMA no AT e superiores
DMA 0 Refresh (1) DMA 0 Livre (2)
DMA 1 Livre (2) DMA 1 Livre (2)
DMA 2 FDD (1) DMA 2 FDD (1)
DMA 3 HDD (1) DMA 3 Livre (2)
- DMA 4 Extensão DMA 5 a 7 (1)
- DMA 5 Livre (2)
- DMA 6 Livre (2)
- DMA 7 Livre (2)

3. Sugestões de valores a serem utilizados

Dispositivo Endereço I/O IRQ DMA Obs
COM 1 - Placa IDE 3F8h 4 -
COM 2 - Placa IDE 2F8h 3 - (1)
COM 3 - Placa IDE 3E8h 4 - (2)
COM 4 - Placa IDE 2E8h 3 - (3)
LPT 1 - Placa IDE 378h 7 ou 5 - (4)
LPT 2 - Placa IDE 278h 7 ou 5 - (4)
LPT 3 - Placa IDE 3BCh 7 ou 5 - (4)
Sound Blaster e compatíveis 220h 5 1 e 5 ou 0 e 1
Sound Blaster MIDI 330h - -
CD-ROM comum (1x e 2x) 230h - -
CD-ROM IDE na placa de som 1E8h 11 -
CD-ROM IDE na placa-mãe 1F0h 14 -
Hand Scanner 280h 10 3
Fax-Modem 2F8h 3 - (5)

Á direita vemos um quadro de sugestões de valores a serem utilizados com os principais dispositivos de um sistema. Lembre-se que os valores abaixo, apesar de serem um padrão recomendado, podem sofrer variações.

(1) A porta serial COM 2 é utilizada para modem externo, plotter e impressora serial. Levando-se em conta que pouquíssimos usuários possuem algum desses equipamentos, essa porta pode ficar desabilitada. Se você estiver utilizando uma placa fax-modem, deve obrigatoriamente desabilitar a COM 2, em virtude da referida placa gerar uma porta COM 2.

(2) A porta COM 3 só poderá existir se não existir a COM 1.

(3) A porta COM 4 só poderá existir se não existir a COM 2 ou placa fax-modem.

(4) Todas essas portas paralelas admitem os endereços 378h, 278h e 3BCh.

(5) Só poderá existir se a COM 2 estiver desabilitada.

4. Identificando os valores utilizados pelo Windows

Para verificar os valores utilizados pelo Windows, faça o seguinte:

a. Clique em Iniciar;

b. Clique em Configurações;

c. Clique em Painel de Controle;

d. Dê 2 cliques em Sistema;

e. Selecione a pasta Gerenciador de Dispositivos;

f. Dê 2 cliques no item Computador (é o primeiro da lista).

 
voltar