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

IO-APIC est l'acronyme de I/O Advanced Programmable Interrupt Controller, qui est un contrôleur programmable d'interruptions.

C'est une architecture Intel pour gérer les interruptions dans les ordinateurs multiprocesseurs.

Elle est implémentée par la puce Intel 82093AA et se trouve sur toutes les cartes Intel SMP.

C'est une des nombreuses tentatives pour résoudre les problèmes d'IRQ. Il ne faut pas la confondre avec l'ACPI (Advanced Configuration and Power Interface).

Dans la vue (La vue est le sens qui permet d'observer et d'analyser l'environnement par la réception et l'interprétation des rayonnements lumineux.) du niveau du système, il y a deux parties d'APIC. Une d'entre elles est dans le processeur (Le processeur, ou CPU (de l'anglais Central Processing Unit, « Unité centrale de traitement »), est le composant de l'ordinateur...), et nommée "Local APIC", alors que l'autre fait partie du système des Entrées/Sorties avec le nom de "IOAPIC". Elles sont connectées par un bus APIC dédié. Le Local APIC gère toutes les interruptions locales pour le processeur local. En plus, il est capable d'accepter et de générer des interruptions interprocesseurs sur le bus APIC. L'unité IOAPIC contient une table de redirections. Elle redirige les interruptions d'un APIC local vers un autre par l'intermédiaire du bus. Le mécanisme APIC rend possible la gestion des interruptions dans un environnement (L'environnement est tout ce qui nous entoure. C'est l'ensemble des éléments naturels et artificiels au sein duquel se déroule la vie humaine. Avec les enjeux écologiques actuels, le terme environnement tend...) multiprocesseur, alors que l'ancien mécanisme PIC ne peut le faire.

Ce peut être une cause de défaillance du système, car certaines versions de certains systèmes d'exploitation ne le gèrent pas correctement. Si c'est le cas, la désactivation du IO-APIC (IO-APIC est l'acronyme de I/O Advanced Programmable Interrupt Controller, qui est un contrôleur programmable d'interruptions.) peut régler le problème. Pour Linux (Au sens strict, Linux est le nom du noyau de système d'exploitation libre, multitâche, multiplate-forme et multi-utilisateur de type UNIX créé par Linus...), il faut essayer le paramètre (Un paramètre est au sens large un élément d'information à prendre en compte pour prendre une décision ou pour effectuer un calcul.) noyau "noapic" ; pour FreeBSD (FreeBSD est un système d'exploitation UNIX libre. Le nom vient de l'association d'une part de free qui signifie à la fois libre (liberté) et gratuit dans l'anglais...), la variable (En mathématiques et en logique, une variable est représentée par un symbole. Elle est utilisée pour marquer un rôle dans une formule, un prédicat ou un algorithme. En statistiques,...) d'environnement noyau "int.apic.0.disabled"

Dans Linux, les problèmes avec IO-APIC sont une des nombreuses causes de messages d'erreur concernant "spurious 8259A interrupt: IRQ7.". Il est aussi possible que l'IO-APIC cause des problèmes avec les interfaces réseau (Un réseau informatique est un ensemble d'équipements reliés entre eux pour échanger des informations. Par analogie avec un filet (un réseau est un « petit...) basées sur le pilote via-rhine, causant un dépassement (Un dépassement est le fait de rouler pendant un instant, en général relativement court, à côté d’un autre véhicule...) de délai (Un délai est d'après le Wiktionnaire, « un temps accordé pour faire une chose, ou à l’expiration duquel on sera tenu de faire une certaine...) de transmission. Les noyaux monoprocesseurs avec l'APIC activée peut provoquer la génération d'interruptions spécieuses.

Détails d'implémentation (Le mot implantation peut avoir plusieurs significations :)

Chaque processeur contient un Local APIC et il peut y avoir plusieurs I/O APIC répartis dans le reste du système (dans le chipset (Un chipset (de l'anglais, signifiant littéralement ensemble de puces (électroniques)) est un jeu de composants électroniques intégré dans un circuit intégré préprogrammé...) ou bien dans des bridges PCI-PCIe par exemple). Le bus interconnectant ces différents APIC est un bus "logique (La logique (du grec logikê, dérivé de logos (λόγος), terme inventé par Xénocrate signifiant à la fois raison, langage, et raisonnement) est dans une...)", dans le sens (SENS (Strategies for Engineered Negligible Senescence) est un projet scientifique qui a pour but l'extension radicale de l'espérance de vie humaine. Par une évolution progressive allant du ralentissement du vieillissement,...) qu'il ne s'agit pas de "nouveaux fils dédiés" (pour le PCI, il y a toujours le fil d'interruption classique, et pour le PCIe, les interruptions peuvent voyager sous forme de message (La théorie de l'information fut mise au point pour déterminer mathématiquement le taux d’information transmis dans la communication d’un...), les MSI).

Il est intéressant de constater que chaque I/O APIC (qui possède 24 entrées) peut se voir attribuer par le BIOS une "base" qui définit quels numéros d'interruption il va générer : ainsi, un I/O APIC qui a comme base 0 générera les interruptions 0+0=0 à 0+23=23, alors qu'un I/O APIC qui a comme base 24 générera les interruptions 24+0=24 à 24+23=47, et ainsi de suite...

Si le système est bien conçu (ce qui n'est forcément le cas de toutes les cartes mères), alors chaque périphérique peut se voir attribuer un numéro d'interruption unique qu'il n'aura pas à partager avec d'autres périphériques.

Bien que les systèmes d'exploitation modernes (Windows XP ou Linux) soient capables de gérer le partage d'interruptions, ce mécanisme est intéressant pour la conception de systèmes temps (Le temps est un concept développé par l'être humain pour appréhender le changement dans le monde.) réel ou l'on veut éviter d'interroger inutilement un périphérique pour savoir si c'est lui qui vient de générer l'interruption : si les interruptions ne sont pas partagées, lorsque l'on reçoit un numéro d'interruption donné, on sait en effet immédiatement quel périphérique a signalé cette interruption, ce qui réduit la latence et augmente le déterminisme de son traitement.

Page générée en 0.075 seconde(s) - site hébergé chez Amen
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
Ce site est édité par Techno-Science.net - A propos - Informations légales
Partenaire: HD-Numérique