Maybaygiare.org

Blog Network

Interrupt

Les interruptions peuvent être implémentées dans le matériel en tant que composant distinct avec des lignes de contrôle, ou elles peuvent être intégrées dans le sous-système de mémoire.

S’il est implémenté dans le matériel en tant que composant distinct, un circuit de contrôleur d’interruption tel que le Contrôleur d’interruption programmable (PIC) de l’IBM PC peut être connecté entre le dispositif d’interruption et la broche d’interruption du processeur pour multiplexer plusieurs sources d’interruption sur une ou deux lignes CPU généralement disponibles. Si elles sont implémentées dans le cadre du contrôleur de mémoire, les interruptions sont mappées dans l’espace d’adressage de la mémoire du système.

IRQsEdit partagé

Plusieurs périphériques peuvent partager une ligne d’interruption déclenchée par le bord s’ils sont conçus pour le faire. La ligne d’interruption doit avoir une résistance de traction vers le bas ou vers le haut de sorte que lorsqu’elle n’est pas activée activement, elle se stabilise à son état inactif, qui est son état par défaut. Les dispositifs signalent une interruption en conduisant brièvement la ligne à son état non par défaut et laissent la ligne flotter (ne la pilotez pas activement) lorsqu’elle ne signale pas d’interruption. Ce type de connexion est également appelé collecteur ouvert. La ligne porte alors toutes les impulsions générées par tous les dispositifs. (Ceci est analogue au cordon de traction de certains bus et chariots que tout passager peut tirer pour signaler au conducteur qu’il demande un arrêt.) Cependant, les impulsions d’interruption provenant de différents appareils peuvent fusionner si elles se produisent à proximité dans le temps. Pour éviter de perdre des interruptions, le processeur doit se déclencher sur le bord arrière de l’impulsion (par exemple, le front montant si la ligne est tirée vers le haut et enfoncée). Après avoir détecté une interruption, le processeur doit vérifier les exigences de service de tous les périphériques.

Les interruptions déclenchées par le bord ne souffrent pas des problèmes que les interruptions déclenchées par le niveau ont avec le partage. Le service d’un périphérique à faible priorité peut être reporté arbitrairement, tandis que les interruptions provenant de périphériques à haute priorité continuent d’être reçues et d’être entretenues. S’il existe un périphérique que le processeur ne sait pas comment entretenir, ce qui peut déclencher des interruptions parasites, il n’interférera pas avec la signalisation d’interruption d’autres périphériques. Cependant, il est facile de manquer une interruption déclenchée par le bord – par exemple, lorsque les interruptions sont masquées pendant une période – et à moins qu’il n’y ait un type de verrou matériel qui enregistre l’événement, il est impossible de le récupérer. Ce problème a provoqué de nombreux « blocages » dans le matériel informatique au début parce que le processeur ne savait pas qu’il devait faire quelque chose. Le matériel plus moderne a souvent un ou plusieurs registres d’état d’interruption qui verrouillent les demandes d’interruption ; un code de gestion des interruptions piloté par les périphériques bien écrit peut vérifier ces registres pour s’assurer qu’aucun événement n’est manqué.

Le bus ISA (Industry Standard Architecture) ancien utilise des interruptions déclenchées par les bords, sans obliger les périphériques à partager des lignes IRQ, mais toutes les cartes mères ISA grand public incluent des résistances de traction sur leurs lignes IRQ, de sorte que les périphériques ISA bien comportés partageant des lignes IRQ devraient fonctionner correctement. Le port parallèle utilise également des interruptions déclenchées par les bords. De nombreux appareils plus anciens supposent qu’ils ont un usage exclusif des lignes IRQ, ce qui rend électriquement dangereux de les partager.

Il existe 3 façons de déclencher plusieurs appareils « partageant la même ligne ». La première est par conduction exclusive (commutation) ou connexion exclusive (aux broches). Vient ensuite le bus (tous connectés à la même ligne d’écoute): les cartes d’un bus doivent savoir quand elles doivent parler et ne pas parler (c’est-à-dire le bus ISA). La conversation peut être déclenchée de deux manières: par loquet d’accumulation ou par des portes logiques. Les portes logiques s’attendent à un flux de données continu qui est surveillé pour les signaux clés. Les accumulateurs ne se déclenchent que lorsque le côté distant excite la porte au-delà d’un seuil, aucune vitesse négociée n’est donc requise. Chacun a ses avantages de vitesse par rapport à la distance. Un déclencheur, généralement, est la méthode dans laquelle l’excitation est détectée: front montant, front descendant, seuil (l’oscilloscope peut déclencher une grande variété de formes et de conditions).

Le déclenchement des interruptions logicielles doit être intégré au logiciel (à la fois dans le système d’exploitation et l’application). Une application « C » a une table de déclenchement (une table de fonctions) dans son en-tête, que l’application et le système d’exploitation connaissent et utilisent de manière appropriée et qui n’est pas liée au matériel. Cependant, ne confondez pas cela avec les interruptions matérielles qui signalent le CPU (le CPU émet un logiciel à partir d’une table de fonctions, de la même manière que les interruptions logicielles).

Difficulté à partager des lignes d’interruptionmodifier

Plusieurs périphériques partageant une ligne d’interruption (de n’importe quel style de déclenchement) agissent tous comme des sources d’interruption parasites les uns par rapport aux autres. Avec de nombreux appareils sur une seule ligne, la charge de travail des interruptions de maintenance augmente proportionnellement au carré du nombre d’appareils. Il est donc préférable de répartir uniformément les dispositifs sur les lignes d’interruption disponibles. La pénurie de lignes d’interruption est un problème dans les conceptions de systèmes plus anciennes où les lignes d’interruption sont des conducteurs physiques distincts. Les interruptions signalées par message, où la ligne d’interruption est virtuelle, sont favorisées dans les nouvelles architectures système (telles que PCI Express) et soulagent considérablement ce problème.

Certains appareils avec une interface de programmation mal conçue ne permettent pas de déterminer s’ils ont demandé un service. Ils peuvent s’enfermer ou se conduire mal s’ils sont entretenus alors qu’ils ne le veulent pas. De tels dispositifs ne peuvent pas tolérer les interruptions parasites et ne peuvent donc pas non plus tolérer le partage d’une ligne d’interruption. Les cartes ISA, en raison de leur conception et de leur construction souvent bon marché, sont notoires pour ce problème. De tels dispositifs deviennent beaucoup plus rares, car la logique matérielle devient moins chère et les nouvelles architectures système imposent des interruptions partageables.

HybridEdit

Certains systèmes utilisent un hybride de signalisation à déclenchement de niveau et à déclenchement de bord. Le matériel recherche non seulement un bord, mais il vérifie également que le signal d’interruption reste actif pendant une certaine période de temps.

Une utilisation courante d’une interruption hybride est pour l’entrée NMI (interruption non masquable). Étant donné que les INM signalent généralement des événements majeurs – voire catastrophiques – du système, une bonne mise en œuvre de ce signal tente de s’assurer de la validité de l’interruption en vérifiant qu’elle reste active pendant un certain temps. Cette approche en 2 étapes permet d’éliminer les fausses interruptions d’affecter le système.

Message-signaledEdit

Article principal : Interruptions signalées par message

Une interruption signalée par message n’utilise pas de ligne d’interruption physique. Au lieu de cela, un dispositif signale sa demande de service en envoyant un court message sur un support de communication, généralement un bus informatique. Le message peut être d’un type réservé aux interruptions, ou il peut être d’un type préexistant tel qu’une écriture en mémoire.

Les interruptions signalées par message se comportent très bien comme des interruptions déclenchées par un bord, en ce sens que l’interruption est un signal momentané plutôt qu’une condition continue. Le logiciel de gestion des interruptions traite les deux de la même manière. En règle générale, plusieurs interruptions signalées par message en attente avec le même message (la même ligne d’interruption virtuelle) sont autorisées à fusionner, tout comme les interruptions déclenchées par des bords rapprochées peuvent fusionner.

Les vecteurs d’interruption signalés par message peuvent être partagés, dans la mesure où le support de communication sous-jacent peut être partagé. Aucun effort supplémentaire n’est requis.

Comme l’identité de l’interruption est indiquée par un motif de bits de données, ne nécessitant pas de conducteur physique distinct, de nombreuses interruptions distinctes peuvent être traitées efficacement. Cela réduit le besoin de partage. Les messages d’interruption peuvent également être transmis sur un bus série, sans nécessiter de lignes supplémentaires.

PCI Express, un bus informatique série, utilise exclusivement des interruptions signalées par message.

DoorbellEdit

Cette section ne cite aucune source. Veuillez aider à améliorer cette section en ajoutant des citations à des sources fiables. Le matériel non sourcé peut être contesté et retiré. (Décembre 2020) (Découvrez comment et quand supprimer ce modèle de message)

Dans une analogie de bouton-poussoir appliquée aux systèmes informatiques, le terme sonnette ou interruption de sonnette est souvent utilisé pour décrire un mécanisme par lequel un système logiciel peut signaler ou notifier un périphérique matériel informatique qu’il y a du travail à faire. En règle générale, le système logiciel place les données dans des emplacements de mémoire bien connus et mutuellement convenus, et « sonne à la porte » en écrivant dans un emplacement de mémoire différent. Cet emplacement de mémoire différent est souvent appelé région de sonnette, et il peut même y avoir plusieurs sonnettes servant à des fins différentes dans cette région. C’est cet acte d’écriture dans la région de la mémoire de la sonnette qui « sonne la cloche » et informe le périphérique matériel que les données sont prêtes et en attente. Le périphérique matériel saurait maintenant que les données sont valides et peuvent être traitées. Il écrirait généralement les données sur un disque dur, les enverrait sur un réseau, les chiffrerait, etc.

Le terme interruption de sonnette est généralement un terme impropre. Cependant, la région de sonnette est parfois implémentée en tant que région interrogée, parfois la région de sonnette écrit dans des registres de périphériques physiques, et parfois la région de sonnette est câblée directement aux registres de périphériques physiques. Lorsque vous écrivez via ou directement dans des registres de périphériques physiques, cela peut provoquer une interruption réelle au niveau de l’unité centrale de traitement (CPU) du périphérique, s’il en a une.

Les interruptions de sonnette peuvent être comparées aux interruptions Signalées par Message, car elles présentent certaines similitudes.

Multiprocessor IPIEdit

In multiprocessor systems, a processor may send an interrupt request to another processor via inter-processor interrupts (IPI).

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.