Une demande d'interruption (IRQ) est un mécanisme utilisé par matériel dispositifs pour attirer l'attention des processeur.

Qu'est-ce qu'une IRQ (demande d'interruption) ?
Une requête d'interruption est un signal matériel utilisé par les périphériques pour interrompre l'exécution normale des tâches d'un processeur afin d'attirer son attention et de demander un traitement immédiat. Lorsqu'un périphérique, tel qu'un clavier, une carte réseau ou un minuteur, a besoin de Processeur Pour exécuter une tâche spécifique, comme le traitement d'une entrée utilisateur ou la réponse à un transfert de données, il génère une IRQ. Ce signal d'interruption interrompt temporairement les opérations en cours d'exécution par le processeur, lui permettant de se concentrer sur les instructions liées à la requête du périphérique.
Une fois la tâche associée à l'interruption terminée, le processeur reprend son fonctionnement initial. Les IRQ jouent un rôle essentiel dans l'efficacité du multitâche au sein d'un système, car elles permettent aux périphériques de fonctionner de manière asynchrone sans avoir à attendre que le processeur les contacte régulièrement. En gérant rapidement ces interruptions, le système garantit une utilisation optimale des ressources et permet aux périphériques de fonctionner sans bloquer ni bloquer l'exécution du processeur.
Quels sont les types d’IRQ ?
Les requêtes d'interruption peuvent être classées selon leur source et leur fonctionnalité. Ces types garantissent que le processeur peut gérer efficacement diverses tâches. Les principaux types d'IRQ sont :
- Interruptions masquables (lignes IRQ)Il s'agit d'interruptions qui peuvent être ignorées ou masquées par le processeur s'il exécute des tâches prioritaires. Les interruptions masquables sont généralement utilisées par des périphériques non critiques tels que les claviers, les cartes réseau ou les cartes son. Le processeur peut désactiver temporairement ces interruptions si nécessaire, ce qui lui permet de prioriser les tâches plus urgentes.
- Interruptions non masquables (NMI)Ces interruptions ne peuvent être ni désactivées ni ignorées par le processeur, ce qui garantit que les erreurs système critiques, telles que les pannes matérielles ou les erreurs de parité mémoire, sont toujours traitées immédiatement. Les NMI sont généralement utilisées pour la détection des erreurs et la récupération du système, garantissant que le système réagit sans délai aux événements graves.
- Interruptions logiciellesContrairement aux interruptions matérielles déclenchées par des périphériques physiques, les interruptions logicielles sont générées par le logiciel ou le le système d'exploitationCes interruptions permettent aux programmes de demander des services système au système d'exploitation, comme l'accès aux ressources matérielles ou l'interaction avec d'autres composants système. Elles sont couramment utilisées dans les appels système ou pour effectuer des tâches spécifiques au sein du logiciel.
- Interruptions matériellesCes interruptions sont générées par des périphériques matériels, tels que entrée/sortie (E/S) périphériques, temporisateurs ou autres composants périphériques. Les interruptions matérielles signalent au processeur d'effectuer des actions spécifiques en réponse à la réception de données ou à un événement. Par exemple, une imprimante peut générer une interruption matérielle à la fin de son impression, notifiant au processeur qu'il peut envoyer davantage de données.
Numéros IRQ
Vous trouverez ci-dessous un tableau décrivant les numéros IRQ courants et leurs périphériques ou fonctions associés dans les systèmes d'exploitation typiques. x86 systèmes d'architecture :
| Numéro IRQ | Appareil/Fonction | Description |
| IRQ0 | Minuterie système | Utilisé par le minuteur système pour maintenir l'heure et planifier les tâches. |
| IRQ1 | Clavier | Gère les événements de saisie au clavier. |
| IRQ2 | Cascade IRQ (contrôleur d'interruption secondaire) | Utilisé pour étendre le vecteur d'interruption pour des lignes IRQ supplémentaires. |
| IRQ3 | Port série (COM2/COM4) | Gère les interruptions pour les deuxième et quatrième ports série (COM2/COM4). |
| IRQ4 | Port série (COM1/COM3) | Gère les interruptions pour les premier et troisième ports série (COM1/COM3). |
| IRQ5 | Port parallèle (LPT2) ou carte son | Peut être utilisé pour le deuxième port parallèle (LPT2) ou pour certaines cartes son. |
| IRQ6 | Contrôleur de disquette | Gère les interruptions provenant des contrôleurs de disquettes. |
| IRQ7 | Port parallèle (LPT1) | Utilisé pour le premier port parallèle (LPT1). |
| IRQ8 | Horloge en temps réel (RTC) | Gère les fonctions d'horloge en temps réel et de chronométrage du système. |
| IRQ9 | Interruption ouverte (généralement disponible pour les appareils utilisateur) | Généralement inutilisé dans les systèmes modernes, mais peut être reconfiguré pour divers appareils. |
| IRQ10 | Disponible pour les appareils des utilisateurs | A flexIRQ utilisable pour les périphériques tels que les cartes réseau ou les contrôleurs USB. |
| IRQ11 | Disponible pour les appareils des utilisateurs | Souvent utilisé par les cartes réseau ou autres cartes d'extension. |
| IRQ12 | PS / 2 Souris | Gère les événements d'entrée d'une souris PS/2. |
| IRQ13 | Coprocesseur (processeur mathématique) | Utilisé par le coprocesseur mathématique (s'il est présent) pour effectuer des opérations à virgule flottante. |
| IRQ14 | Contrôleur IDE principal | Gère les interruptions pour le contrôleur de disque dur IDE principal. |
| IRQ15 | Contrôleur IDE secondaire | Gère les interruptions pour le contrôleur de disque dur IDE secondaire. |
Fonctionnalités IRQ
Les fonctionnalités de requête d'interruption sont essentielles pour une communication efficace entre le processeur et les périphériques matériels d'un système. Voici quelques caractéristiques clés des IRQ :
- Priorisation. Les IRQ permettent de prioriser différents périphériques matériels en fonction de leur urgence. Certaines interruptions sont urgentes et nécessitent un traitement immédiat, tandis que d'autres peuvent être retardées ou masquées. Cette priorisation garantit que les tâches les plus critiques, telles que les pannes matérielles ou les erreurs système, sont traitées en priorité, sans retard inutile.
- Masquage d'interruptionLe masquage désigne la capacité du processeur à désactiver temporairement certaines interruptions. En masquant les IRQ non critiques, le processeur peut se concentrer sur des tâches plus importantes. Cette fonctionnalité est utile pour garantir que les opérations urgentes, telles que les temporisateurs système ou la gestion des erreurs, ne soient pas interrompues par des processus moins urgents, comme les saisies utilisateur au clavier ou à la souris.
- Le multitâcheLes IRQ permettent le multitâche en permettant au processeur de gérer plusieurs tâches simultanément. Lorsqu'un périphérique génère une interruption, il signale au processeur d'interrompre temporairement la tâche en cours et de basculer vers le gestionnaire d'interruptions. Une fois l'interruption traitée, le processeur reprend sa tâche précédente. Cette fonctionnalité est cruciale pour les systèmes d'exploitation modernes qui doivent gérer plusieurs périphériques et processus simultanément.
- Interruptions matérielles et logicielles. Les IRQ peuvent être déclenchées par des périphériques matériels ou des processus logiciels. Les interruptions matérielles sont générées par des périphériques externes, tels que des claviers, des cartes réseau ou des temporisateurs, tandis que les interruptions logicielles sont initiées par le système d'exploitation ou applications pour demander des services spécifiques ou effectuer certaines tâches. Cette double capacité garantit une gestion efficace des événements matériels et des requêtes logicielles.
- Affectation IRQ. Dans les systèmes traditionnels, chaque IRQ est assignée à un périphérique ou à une fonction spécifique. Cette affectation permet au processeur de distinguer les différentes interruptions et d'y répondre de manière appropriée. Dans les systèmes modernes, les numéros d'IRQ peuvent être alloués dynamiquement grâce à des mécanismes tels que la table de descripteurs d'interruptions (IDT) ou les contrôleurs d'interruptions programmables avancés (APIC), permettant ainsi une meilleure gestion des interruptions. flexcapacité à gérer les sources d'interruption.
- Déclenchement de bord et déclenchement de niveau. Les interruptions peuvent être déclenchées par front ou par niveau. Dans le cas d'une interruption déclenchée par front, l'interruption est déclenchée par un changement d'état (par exemple, un signal passant de bas à haut), tandis que dans le cas d'une interruption déclenchée par niveau, l'interruption est déclenchée lorsque le signal d'interruption reste dans un certain état pendant une certaine durée. Le déclenchement par front est généralement utilisé pour les opérations urgentes, tandis que le déclenchement par niveau est utilisé lorsqu'une condition prolongée doit être surveillée.
- Interrompre l'accusé de réception. Une fois qu'une interruption est déclenchée, le processeur doit l'acquitter pour informer le périphérique qu'elle a été reconnue. Ce processus d'acquittement garantit que le périphérique ne continue pas à générer inutilement le signal d'interruption. Selon le système, l'acquittement peut impliquer la lecture d'un registre spécifique ou l'envoi d'un signal au périphérique.
- Routines de service d'interruption (ISR)Lorsqu'une interruption se produit, le processeur exécute un code spécifique appelé routine de service d'interruption (ISR) pour la gérer. L'ISR est chargée de traiter l'interruption et d'effectuer les actions nécessaires, comme la lecture des données d'un périphérique ou la résolution d'une erreur. L'ISR est conçue pour être aussi efficace que possible afin de minimiser les retards dans le fonctionnement global du système.
Comment fonctionne un IRQ ?

Voici comment fonctionnent les IRQ :
- Génération d'interruption. Un périphérique matériel (comme un clavier, une carte réseau ou un disque dur) génère une requête d'interruption lorsqu'il requiert l'intervention du processeur. Par exemple, un clavier peut déclencher une IRQ lorsqu'une touche est enfoncée, ou une carte réseau peut signaler une IRQ lorsqu'elle reçoit des données.
- Signal d'interruption envoyé au CPU. Une fois l'interruption générée par le périphérique, celui-ci envoie un signal d'interruption au processeur. Ce signal est transmis via une ligne IRQ dédiée (par exemple, IRQ 0 à IRQ 15 pour les systèmes x86).
- Détection et priorisation des interruptions. Le processeur surveille en permanence les lignes IRQ pour détecter les demandes d'interruption entrantes. Lorsqu'une interruption est détectée, le processeur vérifie sa priorité. Certaines IRQ sont plus urgentes que d'autres, et le processeur traite les interruptions les plus prioritaires en priorité. Cela permet de gérer les opérations urgentes, comme la gestion des pannes matérielles, avant les tâches moins critiques comme le traitement des entrées utilisateur.
- Accusé de réception d'interruptionAprès avoir détecté l'interruption, le processeur l'acquitte. Cet accusé de réception peut prendre la forme d'un signal renvoyé au périphérique perturbateur, l'informant que l'interruption a été reçue et sera traitée. Pour certains types d'IRQ, le périphérique peut cesser de générer le signal d'interruption une fois l'accusé de réception reçu.
- Changement de contexte et exécution de la routine de service d'interruption. Le processeur suspend la tâche en cours (également appelée changement de contexte) et lance l'exécution d'une interruption (ISR) associée à l'interruption. L'ISR est un petit bloc de code conçu pour gérer l'interruption, comme la lecture de données depuis un périphérique, la suppression d'un indicateur d'erreur ou le traitement d'une entrée utilisateur. L'ISR est exécuté aussi rapidement et efficacement que possible afin de minimiser les perturbations des autres tâches du processeur.
- Retour au fonctionnement normal. Une fois l'ISR terminée, le processeur restaure le contexte de la tâche interrompue et reprend son traitement normal. Si l'interruption a été gérée correctement, le périphérique n'a plus besoin de l'intervention du processeur et la ligne d'interruption est effacée.
- Masquage des interruptions. Dans certains cas, le processeur peut choisir de masquer ou d'ignorer temporairement certaines interruptions, notamment si elles sont de faible priorité ou si le processeur traite une tâche critique. Le masquage permet au processeur de se concentrer sur des opérations plus importantes, sans être interrompu par des requêtes moins urgentes.
- Interruptions imbriquées. Dans les systèmes plus complexes, les IRQ peuvent être imbriquées, ce qui signifie que les interruptions prioritaires peuvent préempter celles de moindre priorité. Cette fonctionnalité garantit que les tâches critiques sont traitées immédiatement, tandis que les tâches moins importantes sont temporairement suspendues.
Utilisations de l'IQR
Les lignes de requête d'interruption servent à gérer efficacement les interruptions matérielles et à assurer une communication fluide entre le processeur et les différents composants matériels. Voici quelques utilisations courantes des IRQ :
- Gestion des entrées utilisateur. Les IRQ servent à gérer les entrées utilisateur provenant de périphériques tels que les claviers, les souris ou les pavés tactiles. Lorsqu'un utilisateur appuie sur une touche du clavier ou clique avec la souris, une IRQ est générée pour indiquer au processeur de traiter l'entrée. Cela garantit que les entrées provenant de ces périphériques sont traitées rapidement sans interférer avec d'autres tâches.
- Communication des périphériques. Les périphériques tels que les imprimantes, les cartes réseau et les cartes son utilisent des IRQ pour communiquer avec le processeur. Par exemple, lorsqu'une carte réseau reçoit des données, elle déclenche une IRQ pour informer le processeur de la disponibilité de nouvelles données, permettant ainsi leur traitement ou leur transmission ultérieure.
- Minuteries et horloges système. Les IRQ sont essentielles à la gestion des horloges et des temporisateurs système. Le temporisateur système utilise les IRQ pour interrompre périodiquement le processeur, garantissant ainsi un chronométrage et une planification précis des tâches. Par exemple, les IRQ permettent de gérer l'allocation de tranches de temps pour le multitâche dans les systèmes d'exploitation, garantissant ainsi à chaque processus une part équitable du temps processeur.
- Gestion et protection de la mémoire. Les systèmes de gestion de la mémoire des systèmes d'exploitation modernes utilisent des IRQ pour gérer les opérations liées à la mémoire, telles que les erreurs de page ou les violations d'accès. Lorsqu'une erreur d'accès mémoire se produit, une IRQ peut déclencher la routine de service d'interruption appropriée pour gérer l'exception et protéger le système contre les pannes ou la compromission des données.
- Détection et gestion des erreursLes erreurs critiques, telles que les pannes matérielles ou la corruption de mémoire, sont souvent traitées par des IRQ. Les interruptions non masquables sont un type spécifique d'IRQ qui ne peut être ignoré et sont généralement utilisées pour les erreurs système graves, telles que les dysfonctionnements matériels, garantissant ainsi leur résolution immédiate par le processeur et évitant ainsi d'autres dommages.
- Transfert de données piloté par interruption. De nombreux appareils, tels que disques durs ou des interfaces réseau, utilisez des IRQ pour le transfert de données piloté par interruption. Lorsque les données sont prêtes pour transmission ou a été reçu, le périphérique génère une IRQ pour signaler au processeur de commencer à traiter les données, minimisant ainsi le temps d'inactivité du processeur et améliorant les performances globales du système.
- Gestion de l'alimentationLes IRQ jouent un rôle essentiel dans la gestion de l'alimentation du système. Par exemple, les périphériques ou logiciels de gestion de l'alimentation peuvent utiliser les IRQ pour signaler quand le système doit passer en mode veille ou quand il doit se réveiller pour une période donnée. tâche planifiéeCela permet aux systèmes d’économiser de l’énergie en réduisant la charge de travail sur le processeur pendant les périodes d’inactivité.
- Multitâche et planification des processus. Les IRQ sont essentielles au multitâche dans les systèmes d'exploitation. Lorsqu'une interruption se produit, elle peut préempter la tâche en cours d'exécution, permettant ainsi au processeur de basculer entre les processus. Ce mécanisme est utilisé par les systèmes d'exploitation pour implémenter le partage du temps, garantissant ainsi l'exécution de plusieurs processus sans intervention manuelle.
- Interruptions de périphériques pour le traitement en temps réel. Certains systèmes en temps réel, tels que les systèmes embarqués ou les systèmes de contrôle industriel, utilisent des IRQ pour traiter les données provenant de capteurs, d'actionneurs ou d'autres périphériques. temps réelCes interruptions permettent au système de réagir immédiatement aux événements externes, tels que les changements dans les lectures des capteurs, garantissant ainsi des actions rapides.
- Traitement audio et vidéo. Les IRQ sont utilisées dans les périphériques audio et vidéo pour gérer les flux de données en temps réel. Par exemple, les cartes son utilisent les IRQ pour avertir le processeur lorsqu'elles sont prêtes à transmettre ou à recevoir des données audio, garantissant ainsi une lecture ou un enregistrement fluide et sans interruption. De même, les cartes vidéo utilisent les IRQ pour signaler la disponibilité des images vidéo pour le rendu ou l'affichage.
Comment configurer une IRQ ?
La configuration des IRQ implique généralement de s'assurer que les périphériques reçoivent des numéros d'interruption appropriés et qu'aucun conflit ne se produit entre eux. Dans les systèmes modernes, la configuration des IRQ est souvent gérée automatiquement par le système d'exploitation ou BIOS, qui alloue dynamiquement des numéros IRQ aux composants matériels.
Cependant, sur les systèmes plus anciens ou pour des cas d'utilisation spécifiques, les IRQ peuvent nécessiter une configuration manuelle via le BIOS ou les paramètres du système d'exploitation. Cela implique de sélectionner le numéro d'IRQ correct pour chaque périphérique, en veillant à ce que deux périphériques ne partagent pas la même ligne d'IRQ, ce qui pourrait entraîner des conflits.
Des paramètres avancés, tels que l'activation ou la désactivation des IRQ, le réglage de la priorité des IRQ et l'utilisation de contrôleurs d'interruption (comme APIC ou PIC), peuvent être configurés dans le BIOS ou via les pilotes de périphériques afin d'optimiser les performances et la gestion des ressources du système. Dans certains cas, les conflits d'IRQ peuvent être résolus en réaffectant les numéros d'IRQ ou en désactivant les périphériques inutilisés pour libérer des lignes d'interruption.
Comment optimiser un IRQ ?
Optimiser la configuration d'une IRQ implique une gestion efficace des interruptions afin de minimiser les conflits de ressources et d'améliorer les performances du système. Il est crucial de veiller à ce que deux périphériques ne partagent pas la même ligne d'IRQ, car les conflits peuvent ralentir ou interrompre le fonctionnement du système.
L'utilisation de contrôleurs d'interruption modernes, comme les contrôleurs d'interruption programmables avancés, au lieu des anciens contrôleurs d'interruption programmables (PIC), permet de répartir plus efficacement les IRQ entre plusieurs processeurs dans les systèmes multicœurs. De plus, l'équilibrage des IRQ, la priorisation des interruptions urgentes et la désactivation des périphériques inutilisés ou inutiles améliorent encore les performances.
Dans certains cas, il faut affiner les pilotes de périphériques et s'assurer que les périphériques se voient attribuer des IRQ appropriés pour leur utilisation (par exemple, cartes réseau, cartes son ou USB Les périphériques (ou périphériques) réduisent la latence et optimisent la réactivité globale du système, notamment sur les systèmes à fortes demandes d'E/S. La vérification régulière des conflits d'IRQ et l'ajustement de la configuration garantissent le bon fonctionnement du système, sans retards excessifs liés à la gestion des interruptions.
Avantages de l'utilisation de l'IRQ
Grâce aux IRQ, les périphériques peuvent signaler au processeur qu'ils nécessitent une intervention, optimisant ainsi les performances et la réactivité du système. Voici les principaux avantages des IRQ :
- Multitâche amélioré. Les IRQ permettent au processeur de gérer plusieurs tâches simultanément sans attendre que les périphériques terminent leurs actions. En permettant aux périphériques d'interrompre le processeur en cas de besoin, le système traite des tâches telles que la gestion des entrées, le transfert de données ou la détection d'erreurs sans attendre un cycle d'interrogation spécifique, ce qui améliore l'efficacité du multitâche.
- Meilleures performances du système. Les IRQ minimisent le temps d'inactivité du processeur en permettant le traitement des données par interruption. Lorsqu'un périphérique déclenche une IRQ, le processeur peut immédiatement répondre à sa requête, permettant ainsi au système de traiter les données plus rapidement et plus efficacement, ce qui est particulièrement avantageux pour les systèmes à forte activité d'E/S.
- Charge CPU réduite. Grâce aux IRQ, le processeur n'a plus besoin de vérifier en permanence l'état des périphériques ni d'interroger les événements. Au lieu de cela, les périphériques avertissent le processeur lorsqu'ils nécessitent une intervention, ce qui réduit sa charge de travail et lui permet de se concentrer sur l'exécution des tâches sans interruptions inutiles, améliorant ainsi les performances globales du système.
- L'efficacité des ressourcesLes IRQ garantissent une utilisation optimale des ressources telles que le temps processeur et la mémoire. En allouant des ressources uniquement lorsque cela est nécessaire (c'est-à-dire en cas d'interruption), le système évite les cycles inutiles et les interrogations inutiles, garantissant ainsi un fonctionnement optimal de chaque périphérique.
- Traitement en temps réel. Les IRQ sont essentielles pour les systèmes qui nécessitent des réponses en temps réel, tels que le traitement audio/vidéo, les systèmes de contrôle industriel ou systèmes embarquésEn utilisant des IRQ, ces systèmes peuvent répondre immédiatement à des événements externes, tels que des changements dans les lectures des capteurs ou les entrées utilisateur, garantissant ainsi un traitement rapide et précis.
- Gestion des erreurs et récupération. Les IRQ sont essentielles à la gestion des erreurs système ou des pannes matérielles. Les interruptions non masquables et autres types d'IRQ spécifiques peuvent alerter le processeur de problèmes critiques, lui permettant de réagir rapidement et de prendre des mesures correctives, telles que l'arrêt des processus, la journalisation des erreurs ou le lancement de procédures de récupération du système.
Les défis des IRQ
Si les requêtes d'interruption sont essentielles au bon fonctionnement du système, leur utilisation peut présenter plusieurs difficultés. Celles-ci découlent de la complexité de la gestion des interruptions sur plusieurs périphériques et de la nécessité de garantir leur traitement sans conflits ni inefficacité par le système :
- Masquage et priorisation des IRQBien que le masquage d'IRQ permette d'ignorer temporairement certaines interruptions, un masquage incorrect peut empêcher le traitement rapide d'interruptions importantes. Une mauvaise priorisation des interruptions peut également retarder l'exécution de tâches critiques, entraînant une dégradation des performances, notamment sur les systèmes temps réel.
- Conflits d'IRQ. Lorsque deux périphériques ou plus se voient attribuer le même numéro d'IRQ, un conflit survient, empêchant le processeur de prioriser ou de gérer correctement les interruptions. Cela peut entraîner une instabilité du système. La perte de données, ou de mauvaises performances. La résolution des conflits d'IRQ peut prendre du temps et nécessite souvent une configuration manuelle ou une réaffectation des IRQ.
- Lignes IRQ limitéesDans les systèmes anciens ou les configurations matérielles héritées, le nombre de lignes IRQ disponibles est limité, ce qui entraîne des conflits de ressources entre les périphériques. À mesure que de nouveaux périphériques sont ajoutés à un système, les lignes IRQ disponibles peuvent s'épuiser, ce qui peut entraîner des conflits ou nécessiter le partage des IRQ, ce qui peut dégrader les performances du système.
- Latence d'interruption. Lorsque plusieurs périphériques génèrent des interruptions, le processeur peut subir des retards de réponse aux interruptions de moindre priorité en raison de la priorité plus élevée des autres. Cela peut entraîner une latence accrue dans le traitement des tâches urgentes, affectant le traitement en temps réel ou provoquant des retards dans la communication avec les périphériques.
- Complexité dans les environnements multitâches. Dans les systèmes multicœurs ou multiprocesseurs, la gestion des IRQ devient plus complexe car les interruptions doivent être réparties sur plusieurs processeurs ou cœurs. Un équilibrage adéquat des IRQ est nécessaire pour éviter qu'un processeur ne soit submergé par un nombre excessif d'interruptions, ce qui pourrait affecter les performances et la réactivité globales du système.
- Gestion des interruptionsLe traitement des interruptions nécessite que le processeur interrompe sa tâche en cours et exécute une ISR. Un nombre excessif d'interruptions ou une mauvaise gestion de celles-ci peuvent entraîner une surcharge importante, réduisant la capacité du système à exécuter efficacement d'autres tâches.
- Compatibilité des pilotes de périphériquesCertains pilotes de périphériques anciens ou mal conçus peuvent ne pas gérer efficacement les IRQ ou provoquer des conflits avec d'autres composants système. Il est essentiel de s'assurer que les pilotes de périphériques sont à jour et compatibles avec la configuration IRQ du système afin d'éviter des problèmes tels que des plantages, des blocages ou une baisse des performances.