Interruption matérielle - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

On nomme IRQ (de l'anglais Interrupt Request, en français: demande d'interruption) une interruption qui est déclenchée par une ligne d'entrée-sortie matérielle d'un microprocesseur ou d'un microcontrôleur.

Les interruptions matérielles sont utilisées en informatique lorsqu'il est nécessaire de pouvoir réagir en temps réel à un événement asynchrone, ou bien, de manière plus générale, afin d'économiser le temps d'exécution lié à une boucle de consultation (polling loop).

Description vulgarisée

De nombreux ensembles de circuits électroniques spécialisés placés dans les ordinateurs assurent chacun une fonction bien précise, par exemple gérer l'affichage sur l'écran ou bien l'activité d'un disque ou d'une interface réseau. Ils sont dits spécialisés car sont incapables de réaliser d'autres fonctions que celles pour lesquelles ils furent conçus tandis que le processeur principal (CPU) reste leur chef d'orchestre et carrefour des communications. Les composants de chaque ensemble se trouvent d'ordinaire rassemblés sur une carte d'extension ou sur une zone de la carte-mère.

La plupart de ces ensembles spécialisés ne peuvent assurer seuls toutes les fonctions nécessaires à leurs missions donc sollicitent parfois l'assistance du processeur principal, ne serait-ce que pour fournir ou obtenir des informations issues d'autres éléments de la machine. Pour ce faire le processeur peut à intervalles réguliers interroger chacun d'eux afin de déterminer s'il a besoin d'aide, par exemple afin de fournir ou bien d'obtenir des informations.

Ces interrogations répétées et souvent inutiles le distraient de sa mission qui consiste à animer les programmes de l'utilisateur. De surcroît la fraction des ressources du processeur principal constamment mobilisée par ces interrogations augmente avec le nombre et la puissance des ensembles spécialisés.

Divers moyens techniques épargnent au CPU ces interrogations périodiques en fournissant aux ensembles spécialisés un moyen d'attirer son attention à n'importe quel moment afin qu'il les assiste, donc en ne le distrayant de l'exécution des programmes de l'utilisateur qu'en cas de besoin.

Pour cela certaines pattes (contacts physiques) du processeur se trouvent reliées à des pistes électriques le reliant aux ensembles spécialisés. Chacun de ces derniers peut s'y manifester en modifiant le niveau logique de la ligne afin de requérir de l'aide, donc d'inviter le processeur à prendre les dispositions nécessaires.

Pour répondre à une requête le CPU devra :

  • préserver le contexte d'exécution du programme en cours afin de pouvoir, à terme, en reprendre l'exécution
  • lire en mémoire l'emplacement du programme destiné à gérer l'événement particulier (appelé routine de gestion d'interruption ou interrupt handler), pré-établi lors de la prise en charge, par l'ordinateur, de l'ensemble spécialisé (souvent lors de l'amorçage)
  • exécuter la routine, court programme grâce auquel le processeur interagira avec l'ensemble spécialisé qui le sollicite afin de satisfaire ses attentes
  • restaurer le contexte d'exécution du programme interrompu
  • continuer à exécuter ce dernier

Notes :

  • cette séquence d'événements peut survenir très fréquemment (plusieurs dizaines de milliers de fois par seconde),
  • des composants auxiliaires (en particulier un circuit gestionnaire d'interruptions) assistent le processeur lors de ces traitements
  • lorsque plusieurs interruptions surviennent simultanément, le processeur (voire le système d'exploitation, lorsqu'il fournit la routine de gestion) dispose de moyens de déterminer leurs priorités respectives donc l'ordre de prise en compte.

Les pistes électriques délivrant ces informations au CPU sont appelées lignes d'interruption ou lignes d'IRQ. Dans un lointain passé chacune se trouvait associée, à un moment donné, à un seul ensemble spécialisé mais des astuces permettent à présent de laisser plusieurs ensembles solliciter le CPU par le biais de la même ligne d'IRQ, même de façon simultanée.

L'acronyme IRQ désigne tout à la fois le concept même d'interruption de l'exécution sur requête tierce ainsi que l'une de ces requêtes.

Page générée en 0.199 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise