Interrupções materiais (IRQ) e conflitos

Abril 2015

O que é uma interrupção ?

Dado que o processador não pode tratar várias informações simultaneamente (trata uma informação de cada vez, o multitarefas consiste em alternar partes de instruções das várias tarefas diferentes), um programa em execução pode, graças a uma interrupção, ser temporariamente suspenso, durante o tempo de execução de uma rotina de interrupção. O programa interrompido pode seguidamente retomar a sua execução. Existem 256 endereços de interrupção diferentes.

Uma interrupção torna-se uma interrupção material quando é pedida por um componente material do computador. Com efeito, existem no computador numerosos periféricos. Estes têm geralmente necessidade de utilizar os recursos do sistema, nem que seja para comunicar com ele…
Assim, quando estes têm necessidade de um recurso, enviam às vezes ao sistema um pedido de interrupção, de modo a que este último lhe preste atenção. Assim, os periféricos têm um número de interrupção, que se chama IRQ (Interruption request, que significa “pedido de interrupção”). A título de exemplo, cada periférico puxa “uma corda” ligada a um sino para assinalar ao computador que quer que lhe preste atenção.

Esta “corda” é, com efeito, uma linha física que liga o slot à placa-mãe. Para uma localização ISA de 8 bits, por exemplo, há 8 linhas IRQ (Interrupção Pedido Line) que ligam o slot ISA 8 bits à placa-mãe, ou seja IRQ0 a IRQ7. Estes IRQ são controlados por um “controlador de interrupção” que permite “dar a palavra” ao IRQ que tem mais prioridade. Para os slots 16 bits, os IRQ 8 a 15 foram acrescentados, por isso foi necessário acrescentar um segundo controlador de interrupção, a ligação entre os dois grupos de interrupção faz-se através do IRQ 2 ligado ao IRQ 9 (e chamado “cascata”). A cascata vem, de certa maneira, inserir os IRQ 8 a 15 entre os IRQ 1 e 3:

IRQ2 - Cascata



Sendo a prioridade dada por ordem de IRQ crescente, e sendo os IRQ 8 a 15 inserido entre os IRQ 1 e 3, a ordem de prioridade é por conseguinte a seguinte:

0 > 1 > 8 > 9 > 10 > 11 > 12 > 13 > 14 > 15 > 3 > 4 > 5 > 6 > 7

O que é um DMA ?

OS periféricos têm regularmente necessidade de “pedir memória emprestada” ao sistema para a usarem como zona de tampão (em inglês buffer), ou seja, uma zona de armazenamento temporária que permite registar rapidamente dados em entrada ou saída.

Um canal de acesso directo à memória, chamado DMA (Direct Memory Access ), foi assim definido para remediar.

O canal DMA designa um acesso a um lugar da memória viva (RAM) do computador, localizado por um “endereço de início” (ou “RAM Start Address” em inglês) e “um endereço de fim”. Este método permite a um periférico seguir canais especiais que lhe dão um acesso directo à memória, sem estar a fazer intervir o microprocessador, a fim de o libertar dessas tarefas.


Um computador de tipo PC possui 8 canais DMA. Os quatro primeiros canais DMA têm uma amplitude de banda de 8 bits enquanto os DMA 4 a 7 têm uma amplitude de banda de 16 bits.
Os canais DMA são atribuídos geralmente do seguinte modo:

  • DMA0 - livre
  • DMA1 - (placa de som)/livre
  • DMA2 - controlador de disquetes
  • DMA3 - porta paralela (porta impressora)
  • DMA4 - controlador de acesso directo à memória

(envio para DMA0)
  • DMA5 - (placa de som)/livre
  • DMA6 - (SCSI)/livre
  • DMA7 - disponível

Endereços básicos

Os periféricos têm às vezes necessidade de trocar informações com o sistema, é por isso que endereços memória lhes são atribuídos para o envio e a recepção de dados. Estes endereços chamam-se “endereços básicos” (os termos seguintes são utilizados às vezes: “portas de entrada/saída”, “portas E/S”, “endereço E/S”, “endereços de portas E/S”, “portas básicas”, ou em inglês I/O address que significa IN/OUT address”).

É através deste endereço básico que o periférico pode comunicar com o sistema de exploração. Pode por isso existir apenas um endereço de base único por periférico.

Eis uma lista de alguns endereços de base correntes:

  • 060h - teclado
  • 170h/376h - controlador IDE secundário
  • 1F0h/3F6h - controlador IDE primário
  • 220h - placa de som
  • 300h - placa de rede
  • 330h - carta adaptadora SCSI
  • 3F2h - controlador de leitor de disquetes
  • 3F8h - COM1
  • 2F8h - COM2
  • 3E8h - COM3
  • 2E8h - COM4
  • 378h - LPT1
  • 278h - LPT2



Todos os elementos são contudo invisíveis para o utilizador médio, ou seja, não tem de se preocupar com eles.

Porque há conflitos materiais?

Uma interrupção é por conseguinte uma linha que liga um periférico ao processador, a interrupção é material quando é pedida por um componente material do PC. É o caso, por exemplo,de uma tecla que foi pressionada e o teclado quer atrair a atenção do processador para este acontecimento. Mas as 256 interrupções não podem ser todas pedidas como interrupções materiais. Os diferentes periféricos chamam sempre interrupções bem precisas.
Assim, aquando da instalação de placas de extensão, é necessário ter o cuidado, no momento da configuração, de a mesma interrupção não é utilizada por dois periféricos diferentes.

Com efeito, se dois periféricos tiverem o mesmo IRQ, o sistema não saberá a que material deve dar a mão… o sistema bloqueia- ou funciona anormalmente… chama-se a isto um conflito material. Um conflito material não se produz unicamente para dois periféricos que têm a mesma interrupção material, pode haver um conflito quando dois periféricos têm o mesmo endereço de entradas/saídas ou são atribuídos aos mesmos canais DMA.

Como configurar os IRQ dos periféricos

O IRQ de uma placa pode por conseguinte ser alterado, porque é necessário atribuir-lhe um número de IRQ não utilizado por um outro periférico.

  • Nos antigos periféricos, é fixado graças a jumpers presentes nas placas.
  • Nas placas recentes (que comportam um BIOS Plug & Play), a parametrização dos recursos (IRQ, DMA, Endereços de entrada/saída) faz-se graças a um pequeno utilitário (frequentemente sob DOS) fornecido com a placa de rede (chama-se geralmente setup.exe, install.exe, ezconf.exe, config.exe,…) que permite alterar os valores do IRQ, do DMA,…

Geralmente, é preciso desactivar o modo plug & play para poder alterar os parâmetros manualmente.
  • Por último, numerosas placas podem ser parametrizadas à vontade (é possível afectar um valor de IRQ sob Windows). É nomeadamente o caso da maior parte das placas de som.

Ném sempre é fácil encontrar recursos para todos os periféricos, eis por isso os recursos já utilizados e que não podem por conseguinte ser atribuídos às suas placas de extensão:


IRQPériférico
0 Relógio interno
1 teclado
2 controlador de interrupções programável
Envio para os IRQ 8 à 15
3 porta de comunicação COM2/COM4
4 porta de comunicação COM1/COM3
5 livre
6 controlador de disquetes
7 porta impressora LPT1
8 CMOS (Relógio tempo real)
9 livre
10 livre
11 livre
12 porta rato PS2/livre
13 processador numérico de dados
(Co-processador matemático)
14 controlador de discos duros primário (IDE)
15 controlador de discos duros secundário (IDE)



Como pode observar, as portas COM1 e COM4, bem como as portas COM2 e COM3 utilizam as mesmas interrupções. Isto pode parecer ilógico, na medida em que uma mesma interrupção não pode ser utilizada por dois periféricos. Na realidade, é possível utilizar a porta COM1 bem como a porta COM4 (bem como a porta COM2 e a porta COM3) na condição de estas não estarem simultaneamente activas. No caso contrário, o computador pode bloquear ou ter um comportamento anormal.

Resolver os conflitos materiais

Quando se encontra face a face com um problema que pensa ser relativo à configuração material da sua máquina, a primeira coisa a fazer é tentar isolá-lo. Isto significa tentar eliminar todas as variáveis possíveis, geralmente abrindo a máquina, e tirando, pouco a pouco, todos os elementos susceptíveis de provocar um conflito, ou de isolá-lo por via software (no seu sistema de exploração), até à descoberta do elemento responsável.

Para uma leitura offline, é possível baixar gratuitamente este artigo no formato PDF:
Interrupcoes-materiais-irq-e-conflitos.pdf

A ver igualmente


Hardware interrupts (IRQ) and conflicts
Hardware interrupts (IRQ) and conflicts
Interrupciones (IRQ) y conflictos del hardware
Interrupciones (IRQ) y conflictos del hardware

Materielle Unterbrechungsanforderungen (IRQ) und Konflikte
Materielle Unterbrechungsanforderungen (IRQ) und Konflikte
Interruptions matérielles (IRQ) et conflits
Interruptions matérielles (IRQ) et conflits
Interruzioni hardware (IRQ) e conflitti
Interruzioni hardware (IRQ) e conflitti
Este documento, intitulado « Interrupções materiais (IRQ) e conflitos »a partir de Kioskea (pt.kioskea.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.