Flux rss

Interruptions matérielles et conflits


Notion d'interruption

Puisque le processeur ne peut pas traiter plusieurs informations simultanément (il traite une information à la fois), 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 de l'ordinateur. 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.

Lorsqu'un périphérique souhaite accéder à une ressource, il envoie une demande d'interruption au processeur pour qu'il lui prête son attention. Ainsi, les périphériques ont un numéro d'interruption, que l'on appelle IRQ (Interruption ReQuest, soit « requête d'interruption »). A titre d'image, chaque périphérique tire une « ficelle » reliée à une cloche pour signaler à l'ordinateur qu'il veut qu'il lui prête attention.

Cette « ficelle » est en fait une ligne physique qui relie chaque connecteur d'extension, ainsi que chaque interface d'entrée-sortie, à la carte mère. Pour un emplacement ISA 8 bits par exemple, il existe 8 lignes IRQ reliant les slots ISA 8 bits à la carte mère(IRQ0 à IRQ7). Ces IRQ sont contrôlés par un « contrôleur d'interruption » chargé de « donner la parole » à l'IRQ ayant la plus grande priorité.

Avec l'apparition de 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'IRQ 9 (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

DMA

Les périphériques ont régulièrement besoin d'« emprunter de la mémoire » au système afin de s'en servir comme zone de tampon (en anglais buffer), c'est-à-dire une zone de stockage temporaire permettant d'enregistrer rapidement des données en entrée ou en sortie.

Un canal d'accès direct à la mémoire, appelé DMA (Direct Memory Access soit Accès direct à la mémoire), a ainsi été défini pour y remédier.

Le canal DMA désigne un accès à un emplacement de la mémoire vive (RAM) de l’ordinateur, repéré par une « adresse de début » (ou «RAM Start Address» en anglais) et une « adresse de fin ». 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.

Un ordinateur de type PC possède 8 canaux DMA. 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 canaux 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 des adresses mémoire leur sont assignées pour l'envoi et la réception de données. Ces adresses sont appelées «adresses de base» (les termes suivants sont également parfois utilisés : «ports d'entrée/sortie», «ports d'E/S», «adresse d'E/S», «adresses de ports d'E/S», «ports de base», ou en anglais I/O address qui signifie «Input/Output Address», littéralement «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 exister 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 , c'est-à-dire qu'il n'a pas à s'en préoccuper.

Conflits matériels

Une interruption est une ligne reliant un périphérique au 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. Cependant, les 256 interruptions ne peuvent pas toutes être demandées comme des interruptions matérielles et 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, auquel cas cela provoque un « conflit matériel », aboutissant à un dysfonctionnement d'un des deux périphériques.

En effet, si deux périphériques utilisent la même interruption, le système ne saura pas les distinguer. Un conflit matériel ne se produit pas uniquement pour deux périphériques ayant la même interruption matérielle, un conflit peut également se produire lorsque deux périphériques possèdent la même adresse d'entrées/sorties ou utilisent les mêmes canaux DMA.

Configuration des IRQ

L'IRQ d'une carte d'extension peut être modifiée afin de 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 cavaliers (jumpers), 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) est automatique. Il peut également être réalisé grâce au système d'exploitation ou bien à l'aide d'utilitaires fourni avec la carte d'extension. Le mode plug & play doit parfois être désactivé pour pouvoir modifier les paramètres manuellement.
Il n'est pas toujours évident de trouver des ressources libres pour tous les périphériques, voici donc une liste non exhaustive de ressources généralement utilisées, ne pouvant donc pas être assignées manuellement :

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 arithmétique)
14 contrôleur de disques durs primaire (IDE)
15 contrôleur de disques durs secondaire (IDE)

Les ports COM1 et COM4 ainsi que les ports COM2 et COM3 utilisent les mêmes interruptions. Cela peut paraître illogique dans la mesure où une même interruption ne peut pas être utilisée par deux périphériques. En réalité il est possible d'utiliser le port COM1 ainsi que 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ésolution des conflits matériels

En cas de problème matériel, la première chose à faire est de tenter d'isoler le problème afin de déterminer quel périphérique pose problème. Cela signifie qu'il faut tenter d'éliminer toutes les variables possibles jusqu'à la découverte de l'élément responsable :

  • en ouvrant le capot de la machine et en ôtant petit à petit les éléments susceptibles de provoquer un conflit ;
  • en désactivant les périphériques par voie logicielle dans le système d'exploitation.

Ce document intitulé « Interruptions matérielles et conflits » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
 
[Windows] IRQL NOT LESS OR EQUAL : écran bleuLors de l'utilisation de Windows 2000 ou Windows XP, il peut arriver que l'erreur suivante se produise, provoquant un écran bleu : *** STOP: 0x0000000A (0x00000011,0x0000002,0x00000001,0x80443205) IRQL_NOT_LESS_OR_EQUAL Ce problème est dû à... www.commentcamarche.net/faq/sujet-954-windows-irql-not-less-or-equal-ecran-bleu
Pb irql not less or equal (Résolu)bjrs a toutes et tous mon ecran devient bleu et le message "driver irql not less or equal" apparait cela depuis 15jrs au moment ou jai reinstaller win familiale auparant je tourner avec win xp pro et aucun pb config matos carte mere asus p4c800-e... www.commentcamarche.net/forum/affich-604208-pb-irql-not-less-or-equal
Driver irql not less or equal (Résolu)voilà, j'ai un pb de "driver irql not less or equal" après une longue connexion sur le net (24 heures environ).....mon ordi plante et affiche un bel écran bleu..... mon matériel est le suivant : carte p4p800, pros P IV 2.8 G, carte graphique 9200... www.commentcamarche.net/forum/affich-580689-driver-irql-not-less-or-equal
IRQL_NOT_LESS_OR_EQUAL (Résolu)Bonjour les bons amis ! Voila mon grand problém que je ne peux comprendre : Mon PC plante souvent, la nature de ce plantage et un message en écrant bleu, appelé je crois , error stop message qui est le suivant : IRQL_NOT_LESS_OR_EQUAL et defois il y... www.commentcamarche.net/forum/affich-6354248-irql-not-less-or-equal
Adresse et IRQ (Résolu)Bonjour, ladresse et l' IRQ sont respectivemen: 3F8 et 4 2E8 et 3 3E8 et 4 www.commentcamarche.net/forum/affich-7179688-adresse-et-irq
Problème : IRQL_NOT_LESS_OR EQUAL (Résolu)Bonjour, Je suis sous Vista. j'ais un écran bleu au démarrage avec le message : IRQ_NOT_LESS_OR EQUAL Je ne sais pas si c'est dû au fait que j'ais fait une restauration antérieur car je n'arrivait pas a désisnstaller JETICO... www.commentcamarche.net/forum/affich-4732376-probleme-irql-not-less-or-equal
Interruptions matérielles et conflits Puisque le processeur ne peut pas traiter plusieurs informations simultanément (il traite une information à la fois), un programme en cours d'exécution peut, grâce à une interruption, être momentanément suspendu, le temps que s'exécute une routine... www.commentcamarche.net/pc/interruptions-irq-dma.php3
Toutes les réponses pour « irq »