Sophie

Sophie

distrib > * > 2010.0 > * > by-pkgid > a412ceb851151854794ced2a242192bb > files > 2773

howto-html-fr-20080722-1mdv2010.0.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Lier les interruptions PCI</title><link href="style.css" rel="stylesheet" type="text/css" /><meta content="DocBook XSL Stylesheets V1.73.2" name="generator" /><link rel="start" href="index.html" title="Guide pratique du Plug-and-Play" /><link rel="up" href="index.html" title="Guide pratique du Plug-and-Play" /><link rel="prev" href="ar01s08.html" title="Interruptions PCI" /><link rel="next" href="ar01s10.html" title="PnP pour les périphériques externes et ajoutés" /></head><body><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Lier les interruptions PCI</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="ar01s08.html">Précédent</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="ar01s10.html">Suivant</a></td></tr></table><hr /></div><div class="sect1" lang="fr"><div class="titlepage"><div><div><h2 class="title"><a id="N111AD" />Lier les interruptions PCI</h2></div></div></div><p>Voici quelques détails sur le système d'interruptions PCI. Chaque carte
PCI (et les périphériques montés sur la carte-mère) a quatre interruptions
possibles : INTA#, INTB#, INTC#, INTD#. À partir de maintenant, nous les
appelerons simplement A, B, C et D. Chacune a sa propre broche sur le connecteur
d'une carte PCI. Donc, pour un système comprenant sept emplacements (pour sept
cartes), il pourrait y avoir 28 (7 x 4) différentes lignes d'interruption pour
ces cartes. Les périphériques intégrés à la carte-mère ont aussi des
interruptions supplémentaires. Mais les spécifications permettent un nombre plus
réduit de lignes d'interruption, donc certains bus PCI semblent n'avoir que
quatre ou huit lignes d'interruption. Ceci n'est pas trop restrictif car les
interruptions pourraient être partagées. Pour une ligne à quatre interruptions
(LNKA, LNKB, LNKC, LNKD), il y a un composant appelé « <span class="quote">routeur programmable
d'interruptions</span> » qui redirige LNKA, LNKB, LNKC, LNKD vers les IRQ
sélectionnées. Ce routage peut être modifié par le BIOS ou par Linux. Par
exemple, LNKA peut être routé vers l'IRQ 5. Supposons que nous désignons
l'interruption B de l'emplacement 3 comme l'interruption 3B. Les interruptions
3B et 2A pourraient être connectées de façon permanente à LNKA qui est routé
vers l'IRQ 5. Ces deux interruptions, 3B et 2A, sont partagées en permanence
par le cablage sur la carte-mère.</p><p>Saisir <span class="command"><strong>dmesg</strong></span> sur la ligne de commande permet
de voir comment les lignes d'interruption style LNKA sont redirigées (ou
routées) vers les IRQ (*5 signifie que c'est lié à l'IRQ 5). Recherchez
<span class="foreignphrase"><em class="foreignphrase">PCI Interrupt Link</em></span>. Notez que « <span class="quote">link</span> »
est utilisé ici avec deux significations : 1. le lien (routage) des lignes
d'interruptions PCI vers les les IRQ, 2. le label d'une ligne d'interruption
comme LNKB (lien B). Les labels de la ligne d'interruption semblent être fournis
par le BIOS (??) et pourraient avoir des noms différents comme : LNKC,
LNK2, APCF, LUBA, LIDE, et cætera. Question : quand un grand nombre de lignes
d'interruption sont affichées comme étant désactivées, existent-elles toutes
physiquement sur la carte-mère ? ou existent-elles seulement dans la partie
ACPI du BIOS pour que ce dernier puisse fonctionner avec les cartes-mères qui
ont un grand nombre de lignes d'interruption ?</p><p>Connecter toutes les interruptions A (INTA#) à la ligne LNKA, toutes les
B à la ligne LNKB, et cætera. est une méthode simple pour connecter en dur ces
lignes des périphériques PCI (comme le 3B) aux interruptions LNKA, et cætera.
Cette méthode a été utilisée une fois plusieurs années auparavarant mais
ce n'est pas la bonne solution. Voici pourquoi. Si une carte a seulement besoin
d'une interruption, elle doit utiliser A. Si elle a besoin de deux interruptions,
elle doit utiliser A et B. Du coup, INTA# est utilisé bien plus fréquemment que
INTD#. Donc, on va se trouver avec un nombre excessif d'interruptions
partageant la première ligne (LNKA connecté à toutes les INTA#). Pour dépasser
ce problème, il vaut mieux les connecter de façon aléatoire pour que chacune
des quatre lignes d'interruptions (LNKA, LNKB, LNKC, LNKD) partagent à peu près
le même nombre d'interruptions PCI.</p><p>Une façon de le faire est de lier en dur LNKA avec les interruptions
1A, 2B, 3C, 4D, 5A, 6B, 7C. Ceci se fait en connectant physiquement le fil W
aux fils 1A, 2B, et cætera. De la même façon, le fil LNKB pourrait être connecté aux
fils 1B, 2C, 3D, 4A, 5B, 6C, 7D, et cætera. Puis, au démarrage, le BIOS dirige les LNKB,
LNKA, LNKC, LNKD aux IRQ. Après cela, il écrit l'IRQ que chaque périphérique
utilise dans un registre de configuration du matériel dans chaque périphérique.
À partir de maintenant, tout programme interrogeant ce registre peut savoir l'IRQ
utilisée par le périphérique. Notez qu'écrire simplement l'IRQ dans un registre
sur une carte PCI ne configure en aucun cas l'IRQ pour ce périphérique.</p><p>Une utilisation pratique de cette information est qu'en dernier ressort,
une personne pourrait modifier les IRQ d'une carte PCI en l'insérant dans un
emplacement différent. Dans l'exemple ci-dessus, INTA# d'une carte PCI sera
connecté au fil LNKA si la carte est insérée dans l'emplacement 1 (1A correspond
à LNKA) mais INTA# sera connecté au fil LNKB si elle est insérée dans
l'emplacement 4 (4A correspond à LNKB).</p><p>Une carte dans un emplacement pourrait avoir jusqu'à huit périphériques
mais il n'y a que quatre interruptions PCI pour elle (A, B, C, D). Cela suffit
car les interruptions pourraient être partagées pour que chacun des huit
périphériques (s'ils existent) puisse avoir une interruption partagée. La lettre de
l'interruption PCI d'un périphérique est souvent fixée et codée en dur dans le
périphérique. L'affectation des interruptions est réalisée par soit le BIOS ou
par Linux, établissant une correspondance entre les interruptions PCI et les
interruptions ISA comme mentionné ci-dessus.</p><p>S'il n'existe que quatre lignes (LNKA, LNKB, LNKC, and LNKD) comme dans
l'exemple ci-dessus, les choix de correspondance pour le BIOS sont limités.
Certaines cartes-mère peuvent utiliser plus de lignes et ont donc plus de choix.
Par exemple, de LNKA à LNKH (8 lignes). Les messages au démarrage
(<span class="command"><strong>dmesg</strong></span>) peuvent les afficher et indiquer leur
correspondance. Le BIOS sait comment elles sont câblées.</p><p>Sur le bus PCI, le BIOS (ou Linux) affecte des IRQ (interruptions) de
façon à éviter les conflits avec les IRQ qu'il sait affectés au bus ISA.
Quelque fois, le menu du CMOS du BIOS peut vous autoriser à affecter des IRQ
aux cartes PCI ou indiquer au BIOS les IRQ réservées aux périphériques ISA.
Les affectations sont connues sous le nom d'une table de routage. Sous MS
WIndows, c'est appelé <span class="foreignphrase"><em class="foreignphrase">IRQ steering</em></span> mais cela
couvre aussi le cas d'un routage dynamique des IRQ après le démarrage. Le
BIOS peut supporter son propre <span class="foreignphrase"><em class="foreignphrase">IRQ steering</em></span>.
</p><p>Si votre PC utilise les interruptions PCI qui sont renvoyées vers des
interruptions ISA, vous auriez le droit de penser que les interruptions seront
lentes étant donné que le bus ISA était lent. Pas vraiment. Le
composant de contrôle des interruptions ISA a un fil d'interruption direct le
reliant au CPU pour qu'il obtienne une attention immédiate. Bien que les signaux
sur les bus d'adresses et de données de l'ancien ISA sont lents pour arriver au
CPU, les signaux d'interruptions y arrivent rapidement.</p></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="ar01s08.html">Précédent</a> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="ar01s10.html">Suivant</a></td></tr><tr><td valign="top" align="left" width="40%">Interruptions PCI </td><td align="center" width="20%"><a accesskey="h" href="index.html">Sommaire</a></td><td valign="top" align="right" width="40%"> <acronym class="acronym">PnP</acronym> pour les périphériques externes et
ajoutés</td></tr></table></div></body></html>