Comment Ca Marche l'informatique ?
Accueil
Forum
Aide
bordure
Page d'accueil
Ajouter aux favoris
Signalez une erreur
Ecrire à Jean-Francois Pillou
Disquette boot
Le formatage
Le partitionnement
Système de fichiers
FAT16 et FAT32
NTFS
La défragmentation
L'overclocking
Optimisation du BIOS
Flasher le BIOS
Interruptions - Conflits
Version 2.0.3
Interruptions matérielles (IRQ) et conflits Page précédente Retour à la page d'accueil

Qu'est-ce qu'une interruption?

Puisque le processeur ne peut pas traiter plusieurs informations simultanément (il traite une information à la fois, le multitâche consiste à alterner des morceaux d'instructions de plusieurs tâches différentes), un programme en cours d'exécution peut grâce à une interruption être momentanément suspendu, le temps que s'exécute une routine d'interruption. Le programme interrompu peut ensuite reprendre son exécution. Il existe 256 adresses d'interruption différentes.

Une interruption devient une interruption matérielle lorsqu'elle est demandée par un composant matériel du PC. En effet, il existe dans l'ordinateur de nombreux périphériques. Ceux-ci ont généralement besoin d'utiliser les ressources du système, ne serait-ce que pour communiquer avec lui...
Ainsi, lorsque ceux-ci ont besoin d'une ressource, ils envoient parfois au système une demande d'interruption pour que ce dernier leur prête son attention. Ainsi, les périphériques ont un numéro d'interruption, que l'on appelle IRQ (Interruption resquest, ce qui signifie "requête d'interruption"). Pour utiliser une image, chaque périphérique tire une ficelle reliée à une cloche pour signaler à l'ordinateur qu'il veut qu'on prête attention à lui.

Cette "ficelle" est en fait une ligne physique qui relie le slot à la carte-mère. Pour un slot ISA 8 bits par exemple, il y a 8 lignes IRQ (Interruption Request Line) qui relient le slot ISA 8 bit à la carte-mère, c'est-à-dire IRQ0 à IRQ7. Ces IRQ sont contrôlés par un contrôleur d'interruption qui permet de "donner la parole à l'IRQ ayant la plus grande priorité. Pour les slots 16 bits, les IRQ 8 à 15 ont été ajoutés, il a donc fallu ajouter un second contrôleur d'interruption, la liaison entre les deux groupes d'interruptions se fait par l'intermédiaire de l'IRQ 2 reliée à l'IRQ9 (et appelée cascade). La cascade vient donc en quelque sorte "insérer" les IRQ 8 à 15 entre les IRQ 1 et 3

IRQ2 - Cascade

La priorité étant donnée par ordre d'IRQ croissant, et les IRQ 8 à 15 étant insérées entre les IRQ 1 et 3, l'ordre de priorité est donc le suivant:

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

Qu'appelle-t-on DMA ?

Des périphériques ont besoin d'"emprunter de la mémoire" au système on leur définit alors un canal d'accès direct à la mémoire appelé DMA (Direct Memory Access soit Accès direct à la mémoire).

Elle désigne un emplacement de la mémoire vive (RAM) de l’ordinateur. Les périphériques utilisent cet emplacement comme tampon (en anglais buffer) pour les données qui entrent et qui sortent. Ce paramètre est parfois appelé « adresse de début » (RAM Start Address).
Cette méthode permet à un périphérique d'emprunter des canaux spéciaux qui lui donnent un accès direct à la mémoire, sans faire intervenir le microprocesseur, afin de le décharger de ces tâches.

Il y a 8 canaux DMA sur un PC. Les quatre premiers canaux DMA ont une largeur de bande de 8 bits tandis que les DMA 4 à 7 ont une largeur de bande de 16 bits.
Les DMA sont généralement assignés comme suit:

  • DMA0 - libre
  • DMA1 - (carte son)/ libre
  • DMA2 - contrôleur de disquettes
  • DMA3 - port parallèle (port imprimante)
  • DMA4 - contrôleur d'accès direct à la mémoire
    (renvoi vers DMA0)
  • DMA5 - (carte son)/ libre
  • DMA6 - (SCSI)/ libre
  • DMA7 - disponible

Adresses de base

Les périphériques ont parfois besoin d'échanger des informations avec le système, c'est pourquoi on leur assigne des adresses par lesquelles il peuvent envoyer et recevoir des informations, ces adresses sont appelées adresses de base (appelées aussi ports d'entrée/sortie, ports d'E/S, adresse d'E/S, adresses de ports d'E/S, ports de base, parfois I/O address c'est la notation anglaise qui signifie Input/Output Address, soit Adresse d'entrée - sortie).

C'est par l'intermédiaire de cette adresse de base que le périphérique peut communiquer avec le système d'exploitation.
Il ne peut donc y avoir qu'une adresse de base unique par périphérique.

Voici une liste de quelques adresses de base courantes:

  • 060h - clavier
  • 170h/376h - contrôleur IDE secondaire
  • 1F0h/3F6h - contrôleur IDE primaire
  • 220h - carte son
  • 300h - carte réseau
  • 330h - carte adaptatrice SCSI
  • 3F2h - contrôleur de lecteur de disquettes
  • 3F8h - COM1
  • 2F8h - COM2
  • 3E8h - COM3
  • 2E8h - COM4
  • 378h - LPT1
  • 278h - LPT2

Tous ces éléments sont toutefois transparents pour l'utilisateur moyen, c'est-à-dire qu'il n'a pas à s'en préoccuper

Pourquoi y'a t'il des conflits matériels

Une interruption est donc une ligne reliant un périphérique avec le processeur, l'interruption est matérielle lorsqu'elle est demandée par un composant matériel du PC. C'est le cas, par exemple, lorsqu'une touche a été frappée et que le clavier veut attirer l'attention du processeur sur cet événement. Mais les 256 interruptions ne peuvent pas toutes être demandées comme des interruptions matérielles. Les différents périphériques appellent toujours des interruptions bien précises.
Ainsi, lors de l'installation de cartes d'extension, il faut veiller, au moment de la configuration, à ce que la même interruption ne soit pas utilisée par deux périphériques différents.

En effet, si deux périphériques ont le même IRQ, le système ne saura pas à quel matériel il doit donner la main ... le système se bloque ou fonctionne anormalement ... on appelle ça un conflit matériel. Un conflit matériel ne se produit pas uniquement pour deux périphériques ayant la même interruption matérielle, il peut aussi y avoir un conflit lorsque deux périphériques ont la même adresse d'entrées/sorties ou sont assignés aux mêmes canaux DMA.

Comment configurer les IRQ des périphériques

L'IRQ d'une carte peut donc être modifié, car il faut lui allouer un numéro d'IRQ non utilisé par un autre périphérique.

  • Sur les anciens périphériques il est fixé grâce à des jumpers (cavaliers) présents sur la carte
  • Sur les cartes récentes (comportant un BIOS Plug & Play), le paramètrage des ressources (IRQ, DMA, Adresses d'entrée-sortie) se fait grâce à un petit utilitaire (souvent sous DOS) fourni avec la carte réseau (il s'appelle généralement setup.exe, install.exe, ezconf.exe, config.exe, ...) il permet de modifier logiciellement les valeurs de l'IRQ, DMA, ...
    Il faut généralement désactiver le mode plug & play pour pouvoir modifier les paramètres manuellement
  • Enfin, de nombreuses cartes sont paramètrable à loisir (il est possible d'affecter une valeur d'IRQ sous Windows). C'est le notamment le cas de la plupart des cartes sons
Il n'est pas toujours évident d'arriver à trouver des ressources pour tous les périphériques, voici donc les ressources déjà utilisées et qui ne peuvent donc pas être assignées à vos cartes d'extension:

IRQ Périphérique
0 Horloge interne
1 clavier
2 contrôleur d'interruptions programmable
Renvoi vers les IRQ 8 à 15
3 port de communication COM2/COM4
4 port de communication COM1/COM3
5 libre
6 contrôleur de disquettes
7 port imprimante LPT1
8 CMOS (Horloge temps réel)
9 libre
10 libre
11 libre
12 port souris PS2/libre
13 processeur numérique de données
(Coprocesseur mathématique)
14 contrôleur de disques durs primaire (IDE)
15 contrôleur de disques durs secondaire (IDE)

Comme on peut le remarquer, les ports COM1 et COM4 ainsi que les ports COM2 et COM3 utilisent les mêmes interruptions ... illogique ...
En fait il est possible d'utiliser le port COM1 et le port COM4 (ainsi que le port COM2 et le port COM3) à condition que ceux-ci ne soient pas actifs simultanément. Dans le cas contraire l'ordinateur peut se bloquer ou avoir un comportement anormal.

Résoudre les conflits matériels

Lorsque vous vous trouvez face à un problème que vous pensez relatif à la configuration matérielle de votre machine, la première chose à faire est de tenter de l'isoler. Cela signifie tenter d'éliminer toutes les variables possibles, généralement en ouvrant la machine, et, en ôtant petit à petit tous les éléments susceptibles de provoquer un conflit, ou bien de les isoler par voie logicielle (dans votre système d'exploitation), jusqu'à la découverte de l'élément responsable.


Page précédente

Ce document issu de CommentCaMarche.net est soumis à la licence GNU FDL. Vous pouvez copier, modifier des copies de cette page tant que cette note apparaît clairement.