Types de connecteurs PCI. Interface PCI dans un ordinateur : types et objectif. Photo

Modules Wi-Fi et autres appareils similaires. Intel a commencé à développer ce bus en 2002. Aujourd'hui, l'organisation à but non lucratif PCI Special Interest Group développe de nouvelles versions de ce bus.

À l'heure actuelle, le bus PCI Express a complètement remplacé des bus obsolètes tels que AGP, PCI et PCI-X. Le bus PCI Express est situé au bas de la carte mère en position horizontale.

PCI Express est un bus développé sur la base du bus PCI. Les principales différences entre PCI Express et PCI résident dans niveau physique. Alors que PCI utilise un bus partagé, PCI Express utilise une topologie en étoile. Chaque appareil se connecte à commutateur partagé connexion séparée.

Le modèle logiciel PCI Express suit largement le modèle PCI. Par conséquent, la plupart des contrôleurs PCI existants peuvent être facilement modifiés pour utiliser le bus PCI Express.

Emplacements PCI Express et PCI sur la carte mère

De plus, le bus PCI Express supporte de nouvelles fonctionnalités telles que :

  • Branchement à chaud d'appareils ;
  • Vitesse d’échange de données garantie ;
  • Gestion de l'énergie;
  • Contrôler l'intégrité des informations transmises ;

Comment fonctionne le bus PCI Express ?

Le bus PCI Express utilise une connexion série bidirectionnelle pour connecter les périphériques. De plus, une telle connexion peut comporter une (x1) ou plusieurs (x2, x4, x8, x12, x16 et x32) lignes distinctes. Plus ces lignes sont utilisées, plus vitesse plus élevée Le transfert de données peut être assuré par le bus PCI Express. En fonction du nombre de lignes prises en charge, la taille des notes sur la carte mère sera différente. Il existe des emplacements avec une (x1), quatre (x4) et seize (x16) lignes.

Démonstration visuelle des dimensions du slot PCI Express

De plus, n'importe quel périphérique PCI Express peut fonctionner dans n'importe quel emplacement si l'emplacement comporte la même ou plusieurs lignes. Cela vous permet d'installer une carte PCI Express avec un connecteur x1 dans un emplacement x16 de la carte mère.

La bande passante PCI Express dépend du nombre de voies et de la version du bus.

Un sens/deux sens en Gbit/s

Nombre de lignes

PCIe 1.0 2/4 4/8 8/16 16/32 24/48 32/64 64/128
PCIe 2.0 4/8 8/16 16/32 32/64 48/96 64/128 128/256
PCIe 3.0 8/16 16/32 32/64 64/128 96/192 128/256 256/512
PCIe 4.0 16/32 32/64 64/128 128/256 192/384 256/512 512/1024

Exemples de périphériques PCI Express

PCI Express est principalement utilisé pour connecter des cartes vidéo discrètes. Depuis l'avènement de ce bus, absolument toutes les cartes vidéo l'utilisent.

Carte graphique GIGABYTE GeForce GTX 770

Cependant, ce n'est pas tout ce que le bus PCI Express peut faire. Il est utilisé par les fabricants d'autres composants.

Carte son SUS Xonar DX

Disque SSD OCZ Z-Drive R4 Entreprise

La norme PCI Express est l'un des fondements des ordinateurs modernes. Les emplacements PCI Express occupent depuis longtemps une place importante sur toute carte mère d'ordinateur de bureau, supplantant d'autres normes, telles que PCI. Mais même la norme PCI Express a ses propres variantes et modèles de connexion qui diffèrent les uns des autres. Sur les nouvelles cartes mères, à partir de 2010 environ, vous pouvez voir toute une dispersion de ports sur une carte mère, désignés par PCIE ou PCI-E, qui peut différer par le nombre de lignes : une x1 ou plusieurs x2, x4, x8, x12, x16 et x32.

Voyons donc pourquoi il existe une telle confusion parmi le port périphérique PCI Express, apparemment simple. Et quel est le but de chaque norme PCI Express x2, x4, x8, x12, x16 et x32 ?

Qu'est-ce que le bus PCI Express ?

Dans les années 2000, lors du passage de la norme vieillissante PCI (extension - interconnexion des composants périphériques) au PCI Express, ce dernier présentait un énorme avantage : au lieu d'un bus série, qui était PCI, un bus point à point le bus d'accès a été utilisé. Cela signifiait que chaque port PCI individuel et les cartes qui y étaient installées pouvaient tirer pleinement parti de la bande passante maximale sans interférer les uns avec les autres, comme c'était le cas avec une connexion PCI. À cette époque, le nombre de périphériques insérés dans les cartes d’extension était abondant. Les cartes réseau, les cartes audio, les tuners TV, etc. nécessitaient tous une quantité suffisante de ressources PC. Mais contrairement à la norme PCI, qui utilisait un bus commun pour le transfert de données avec plusieurs périphériques connectés en parallèle, PCI Express, considéré de manière générale, est un réseau de paquets avec une topologie en étoile.


PCI Express x16, PCI Express x1 et PCI sur une seule carte

En termes simples, imaginez votre ordinateur de bureau comme un petit magasin avec un ou deux vendeurs. L’ancienne norme PCI était comme une épicerie : tout le monde attendait dans la même file pour être servi, rencontrant des problèmes de vitesse avec la limitation d’un seul vendeur derrière le comptoir. PCI-E s'apparente davantage à un hypermarché : chaque client suit son propre parcours d'épicerie et à la caisse, plusieurs caissiers prennent la commande en même temps.

De toute évidence, un hypermarché est plusieurs fois plus rapide qu'un magasin ordinaire en termes de rapidité de service, du fait que le magasin ne peut pas se permettre la capacité de plus d'un vendeur avec une seule caisse enregistreuse.

Également avec des voies de données dédiées pour chaque carte d'extension ou composants de carte mère intégrés.

L'influence du nombre de lignes sur le débit

Maintenant, pour prolonger notre métaphore du magasin et de l'hypermarché, imaginons que chaque rayon de l'hypermarché ait ses propres caissières qui leur sont réservées. C'est là qu'intervient l'idée de plusieurs voies de données.

Le PCI-E a connu de nombreux changements depuis sa création. De nos jours, les nouvelles cartes mères utilisent généralement la version 3 de la norme, la version 4, plus rapide, devenant plus courante, la version 5 étant attendue en 2019. Mais différentes versions utilisent les mêmes connexions physiques, et ces connexions peuvent être réalisées en quatre tailles principales : x1, x4, x8 et x16. (Des ports x32 existent, mais sont extrêmement rares sur les cartes mères d'ordinateurs classiques).

Les différentes tailles physiques des ports PCI-Express permettent de les diviser clairement selon le nombre de connexions simultanées à la carte mère : plus le port est grand physiquement, plus il peut transmettre un maximum de connexions à la carte ou inversement. Ces connexions sont également appelées lignes. Une ligne peut être considérée comme une piste composée de deux paires de signaux : une pour l'envoi de données et l'autre pour la réception.

Différentes versions de la norme PCI-E autorisent des vitesses différentes sur chaque voie. Mais de manière générale, plus il y a de voies sur un seul port PCI-E, plus les données peuvent circuler rapidement entre le périphérique et le reste de l'ordinateur.

Revenons à notre métaphore : si nous parlons d'un seul vendeur dans un magasin, alors la bande x1 sera ce seul vendeur au service d'un seul client. Un magasin avec 4 caissiers a déjà 4 lignes x4. Et ainsi de suite, vous pouvez attribuer des caissiers en fonction du nombre de lignes, en multipliant par 2.


Divers Cartes PCI Exprimer

Types de périphériques utilisant PCI Express x2, x4, x8, x12, x16 et x32

Pour Version PCI La vitesse de transfert de données maximale globale d'Express 3.0 est de 8 GT/s. En réalité, la vitesse de la version PCI-E 3 est légèrement inférieure à un gigaoctet par seconde et par voie.

Ainsi, un appareil utilisant le port PCI-E x1, par exemple une carte son basse consommation ou une antenne Wi-Fi, pourra transférer des données à une vitesse maximale de 1 Gbps.

Une carte qui s'insère physiquement dans un emplacement plus grand - x4 ou x8, par exemple, une carte d'extension USB 3.0 pourra transférer des données respectivement quatre ou huit fois plus rapidement.

La vitesse de transfert des ports PCI-E x16 est théoriquement limitée à une bande passante maximale d'environ 15 Gbps. C'est plus que suffisant en 2017 pour tous les modernes cartes vidéo graphiques, développé par NVIDIA et AMD.


La plupart des cartes graphiques discrètes utilisent un emplacement PCI-E x16

Le protocole PCI Express 4.0 permet d'utiliser 16 GT/s, et PCI Express 5.0 utilisera 32 GT/s.

Mais actuellement, aucun composant ne pourrait utiliser ce nombre de voies avec un débit maximal. Les cartes graphiques haut de gamme modernes utilisent généralement x16 PCI Express 3.0. Cela n'a aucun sens d'utiliser les mêmes voies pour une carte réseau qui n'utilisera qu'une seule voie sur le port x16, puisque le port Ethernet n'est capable de transférer des données que jusqu'à un gigabit par seconde (soit environ un huitième du débit de une voie PCI-E - rappelez-vous : huit bits dans un octet).

Il existe sur le marché des SSD PCI-E prenant en charge le port x4, mais ils devraient être remplacés par la nouvelle norme M.2 en évolution rapide. Pour disques SSD, qui peut également utiliser le bus PCI-E. Les cartes réseau haut de gamme et le matériel passionné tel que les contrôleurs RAID utilisent une combinaison de formats x4 et x8.

Les tailles des ports et des voies PCI-E peuvent varier

C'est l'un des problèmes les plus déroutants avec PCI-E : un port peut être créé au format x16, mais ne pas avoir suffisamment de voies pour transporter les données, par exemple, uniquement x4. En effet, même si le PCI-E peut transporter un nombre illimité de connexions individuelles, il existe toujours une limite pratique à la capacité de bande passante du chipset. Les cartes mères moins chères dotées de chipsets bas de gamme ne peuvent avoir qu'un seul emplacement x8, même si cet emplacement peut physiquement accueillir une carte au facteur de forme x16.

De plus, les cartes mères destinées aux joueurs incluent jusqu'à quatre emplacements PCI-E complets avec x16 et le même nombre de voies pour une bande passante maximale.

Évidemment, cela peut poser des problèmes. Si la carte mère dispose de deux emplacements x16, mais que l'un d'eux n'a que des voies x4, alors connecter un nouveau carte graphique réduira la productivité du premier jusqu’à 75 %. Il ne s’agit bien entendu que d’un résultat théorique. L'architecture des cartes mères est telle que vous ne constaterez pas de forte baisse des performances.

La configuration correcte de deux cartes vidéo graphiques doit utiliser exactement deux emplacements x16 si vous souhaitez un confort maximal avec un tandem de deux cartes vidéo. Le manuel du bureau vous aidera à savoir combien de lignes possède un emplacement particulier sur votre carte mère. site internet du fabricant.

Parfois, les fabricants marquent même le nombre de lignes sur le PCB de la carte mère à côté du slot.

Vous devez savoir qu'une carte x1 ou x4 plus courte peut physiquement s'insérer dans un emplacement x8 ou x16 plus long. La configuration des broches des contacts électriques rend cela possible. Naturellement, si la carte est physiquement plus grande que l’emplacement, vous ne pourrez pas l’insérer.

Par conséquent, n'oubliez pas que lors de l'achat de cartes d'extension ou de la mise à niveau des cartes actuelles, vous devez toujours vous rappeler à la fois la taille de l'emplacement PCI Express et le nombre de voies requises.

Actuellement, dans le domaine de l'électronique complexe, on assiste à une introduction active et rapide de nouvelles technologies, à la suite de laquelle certains composants du système peuvent devenir obsolètes et ne peuvent pas être mis à jour, etc.

À cet égard, il est nécessaire d'y connecter divers modules complémentaires et accessoires, ce qui nécessite souvent certains adaptateurs.

Dans cet article, nous examinerons l'adaptateur PCI-E PCI, comment il fonctionne et quelles sont ses fonctionnalités.

Définition

De quel type d'appareil s'agit-il et à quoi sert-il ? À proprement parler, il s'agit d'un bus d'entrée et de sortie qui se connecte à ordinateur personnel.

A ce bus lui-même, c'est-à-dire à l'adaptateur, vous pouvez connecter un certain nombre de périphériques externes (qui varie selon la configuration).

Grâce à une connexion série, ces périphériques sont connectés à l'ordinateur.

La principale caractéristique d’un tel appareil est son débit.

C'est cela qui caractérise (en général) la qualité du travail, sa rapidité et les performances de l'ordinateur et des éléments ainsi connectés.

La caractéristique de débit est exprimée en nombre de lignes de connexion (de 1 à 32).

En fonction de cette caractéristique principale, le prix de cet appareil peut varier considérablement. Autrement dit, plus cette caractéristique est bonne (plus l'indicateur est élevé), plus le coût d'un tel appareil est élevé. De plus, tout dépend du statut du fabricant, de la fiabilité de l'équipement et de sa durabilité. En moyenne, le prix commence entre 250 et 500 roubles (pour les produits asiatiques à faible bande passante) jusqu'à 2 000 roubles (pour les appareils européens et japonais à large bande passante).

Caractéristiques

D'un point de vue technique, un tel dispositif comporte trois composantes :

Il a été écrit ci-dessus sur l'importance exceptionnelle de la bande passante de l'appareil pour son fonctionnement normal.

Qu’est-ce que le débit ? Pour répondre à cette question, il faut comprendre le principe de fonctionnement d’un tel adaptateur.

Il est capable de connecter simultanément des équipements bidirectionnels (de la carte au périphérique et du périphérique à la carte).

Dans ce cas, le transfert de données peut s'effectuer sur une ou plusieurs lignes.

Plus il y a de lignes de ce type, plus l'appareil fonctionne de manière stable, plus son débit est élevé et plus il sera rapide. équipement périphérique.

Important! Selon le nombre de lignes, l'appareil peut avoir différentes configurations : x1, x2, x4, x8, x12, x16, x32. Le nombre indique directement le nombre de voies pour la transmission simultanée d'informations dans les deux sens. Chacune de ces bandes est constituée de deux paires de fils (pour une transmission dans deux directions).

Comme le montre la description, cette configuration affecte considérablement le coût de l'appareil.

Mais quelle signification pratique cela a-t-il : est-il vraiment judicieux de dépenser plus lors de l’achat d’un appareil ?

Cela dépend directement du nombre que vous envisagez de connecter à la carte mère : plus il y en a, plus la bande passante que l'appareil doit prendre en charge est élevée. fonctionnement stable ordinateur.

Chiffrement

Avec un tel système de transmission d’informations, un système spécifique est utilisé pour la protéger des distorsions et des pertes.

Cette méthode de protection est désignée 8V/10V.

Le fait est que pour transmettre 8 bits d'informations nécessaires, 2 bits de service supplémentaires doivent être utilisés pour assurer la sécurité et la protection contre la distorsion.

Lorsqu'un tel adaptateur fonctionne, 20 % des informations de service sont constamment transférées vers l'ordinateur, qui ne supporte aucune charge et n'est pas nécessaire à l'utilisateur. Mais c'est précisément cela qui, même s'il charge (mais très légèrement), assure la stabilité du bus et des périphériques.

Histoire

Au début des années 2000, le slot d'extension AGP était activement utilisé, et c'est avec son aide que .

Mais, à un moment donné, les performances maximales techniquement possibles ont été atteintes et le besoin s'est fait sentir de créer un nouveau type d'adaptateur.

Et bientôt le PCI-E est apparu - c'était en 2002.

Immédiatement, il y avait un besoin pour un adaptateur permettant d'installer de nouvelles solutions graphiques dans un connecteur d'extension obsolète ou vice versa.

Par conséquent, en 2002, de nombreux développeurs et fabricants ont sérieusement commencé à créer un tel adaptateur.

A cette époque, l'appareil en possédait un qualité importante– la possibilité de mettre à niveau un PC en dépensant des sommes minimes, car au lieu de remplacer la carte mère, un adaptateur relativement peu coûteux suffisait.

Mais le développement n'a pas abouti, car à cette époque, ils coûtaient presque le même prix que les premiers adaptateurs et il était donc nécessaire de développer une configuration d'adaptateur plus simple.

Il est intéressant de noter que les fabricants ont également constamment augmenté le débit de ces appareils. Si pour les premières configurations ce n'était pas plus de 8 Gb/s, alors pour la seconde c'était déjà 16 Gb/s, et pour la troisième – 64 Gb/s. Cela répondait aux exigences de charges de travail croissantes résultant de la modernisation des périphériques.

Dans le même temps, les emplacements avec des vitesses de transmission différentes sont compatibles avec tous les appareils d'un niveau « haute vitesse » inférieur.

Autrement dit, si vous connectez une plate-forme graphique de deuxième ou de première génération à un emplacement de troisième génération, l'emplacement passera automatiquement à un mode de vitesse différent correspondant à l'appareil connecté.

Différences entre PCI et PCI-E

Quelles sont les différences spécifiques entre ces deux configurations ?

Selon ses caractéristiques techniques et opérationnelles Spécifications PCI similaire à l'AGP, tandis que PCI-E est un développement fondamentalement nouveau.

Alors que PCI assure un transfert d'informations parallèle, PCI-E assure un transfert d'informations en série, permettant ainsi d'obtenir des vitesses et des performances de transfert d'informations nettement plus élevées, même en tenant compte de l'utilisation d'un adaptateur.

Pourquoi est-ce nécessaire ?

Pourquoi avez-vous besoin d'un tel adaptateur et à quoi peut-il servir ? Est-il possible de s'en passer ?

Il faut comprendre que la plupart des utilisateurs se passent de cet équipement car il n'est pas nécessaire même sur les ordinateurs anciens soumis à une usure importante.

Il s'agit d'un équipement supplémentaire qui, dans certains cas, améliore les fonctionnalités de votre PC, mais dont l'utilisateur moyen peut facilement se passer.

En fait, l'utilisation d'un tel adaptateur n'offre qu'un seul avantage principal : la possibilité de connecter un certain nombre de périphériques à la carte mémoire, alors qu'il est impossible d'en connecter autant directement. Par exemple, vous pouvez ainsi connecter une vidéo discrète ou en plus de la vidéo principale.

Il peut également être très pratique de simultanément arrêt rapide tous les périphériques si nécessaire.

Par exemple, dans le cas où les performances de l’ordinateur diminuent ou pour d’autres raisons. Dans ce cas, l'utilisateur n'a pas besoin de désactiver les composants par programme pendant une longue période.

Chaque utilisateur de PC a ouvert au moins une fois le gestionnaire de périphériques sur son ordinateur. Qu’il s’agisse d’un ordinateur de bureau ordinaire ou d’un ordinateur portable, vous pouvez trouver partout un contrôleur dit PCI. Qu'est-ce que c'est et pourquoi est-il nécessaire sur un ordinateur ? Où le chercher et que faire avec ?

Qu'est-ce qu'un contrôleur PCI ?

PCI est un bus universel permettant de connecter divers appareils. Ils sont généralement situés sur la carte mère de l'ordinateur et, avec leur aide, diverses cartes supplémentaires peuvent y être connectées. Il sera plus facile pour les propriétaires d'un ordinateur de bureau de trouver des connecteurs PCI sur leur PC. Lorsque vous retirez le capot latéral du boîtier, vous verrez la carte mère de votre PC, sur laquelle se trouvent plusieurs gros connecteurs blancs. Ces connecteurs sont appelés bus PCI. Avec leur aide, vous pouvez connecter une carte vidéo, une carte son, des cartes avec des connecteurs supplémentaires (USB ou COM), carte réseau etc.

Le contrôleur PCI lui-même fait partie de la carte mère et est responsable du fonctionnement normal des bus eux-mêmes et des périphériques qui y sont connectés. Les connecteurs PCI existent en différentes versions et sont conçus pour différents types de cartes. Si vous regardez attentivement la carte mère du PC, vous remarquerez que le connecteur pour connecter la carte vidéo est différent des autres. Cela est dû au fait que les cartes vidéo ont un taux d'échange de données plus élevé avec la carte mère et qu'elles consomment également plus d'électricité. Sur les cartes mères, vous pouvez également trouver un petit connecteur PCI, conçu pour le réseau ou diverses autres cartes qui consomment moins d'énergie et ne nécessitent pas un large canal de transfert de données.

Installation d'un périphérique PCI

Lorsque vous choisissez un périphérique supplémentaire pour votre PC, renseignez-vous sur la version des connecteurs PCI installée sur votre carte mère. N'oubliez pas que les différentes versions de ces connecteurs diffèrent par leur forme, donc un périphérique pour une version du connecteur ne sera pas physiquement compatible avec une autre version du connecteur trouvée sur la carte mère.

Savoir si un appareil est compatible avec votre carte mère est assez simple :

  1. Téléchargez Everest, installez-le et exécutez-le.
  2. Dans la colonne de gauche, sélectionnez « Périphériques » et sélectionnez-y « Périphériques PCI ». La fenêtre centrale du programme sera divisée en deux ; la fenêtre supérieure listera tous les périphériques connectés aux bus PCI. En cliquant sur l'appareil, dans la fenêtre inférieure, vous pouvez voir des informations sur l'appareil et le bus lui-même auquel il est connecté. Vous y trouverez également la version du bus PCI.
  3. Vous pouvez le faire plus facilement et trouver une description de votre carte mère sur Internet, puis simplement la comparer avec les caractéristiques de l'appareil que vous souhaitez installer. Vous pouvez connaître le modèle de la carte mère à l'aide du programme Everest en ouvrant la section « carte mère ».

Si la carte sélectionnée est compatible avec votre carte mère, vous pouvez procéder à l'installation directe de l'appareil.

  1. Retirez le capot latéral du boîtier du PC.
  2. Sélectionnez l'emplacement PCI dans lequel le périphérique sera installé ou retirez le périphérique que vous souhaitez remplacer par un nouveau de l'emplacement souhaité.
  3. Insérez simplement la carte avec précaution afin qu'elle s'insère complètement dans le connecteur. Ici, vous ne pouvez pas vous tromper, car il est physiquement impossible d'installer la carte de manière incorrecte dans le connecteur.
  4. Connectez des connecteurs supplémentaires (si nécessaire) et replacez le couvercle du boîtier.
  5. Démarrez votre PC. Lorsque le système d'exploitation démarre, vous verrez un message système indiquant qu'un nouveau périphérique a été connecté. Installez les drivers nécessaires à son fonctionnement depuis disque d'installation, fourni avec l'appareil, en téléchargeant le pilote depuis le réseau ou en utilisant l'installation automatique du pilote.

Problèmes liés au contrôleur PCI

Parfois, après la réinstallation du système d'exploitation, vous pouvez rencontrer prochain problème- le système ne pourra pas reconnaître le contrôleur PCI. Lorsque vous ouvrez le Gestionnaire de périphériques, vous trouverez l'élément « Matériel inconnu » au lieu de « Contrôleur PCI ». La solution au problème est très simple : téléchargez le pilote requis sur le site Web du fabricant de votre carte mère et installez-le.

Où sont utilisés les tissus ininflammables www.algo-textile.ru. Accessoires de moustiquaires pour moustiquaires 2-sklad.ru.

PCI et PCI-X

Bus PCI et PCI-X

Introduction

Les bus PCI et PCI-X sont les principaux bus d'extension d'E/S des ordinateurs modernes ; pour connecter des adaptateurs vidéo, ils sont complétés par un port AGP. Les bus d'extension d'E/S (Expansion Bus) sont une connectivité au niveau du système : ils permettent aux adaptateurs et aux contrôleurs de périphériques d'utiliser directement les ressources du système informatique - mémoire et espace d'adressage d'E/S, interruptions, accès direct à la mémoire. Les périphériques connectés aux bus d'extension peuvent contrôler eux-mêmes ces bus et accéder à d'autres ressources informatiques. Les bus d'extension sont mécaniquement implémentés sous forme d'emplacements (connecteurs à emplacement) ou de connecteurs à broches ; Ils se caractérisent par une courte longueur de conducteurs, c'est-à-dire qu'ils sont purement locaux, ce qui leur permet d'atteindre des vitesses de fonctionnement élevées. Ces bus ne peuvent pas être émis vers des connecteurs, mais sont utilisés pour connecter des appareils en cartes mères Oh.

Au début, le bus PCI a été introduit comme une extension (bus mezzanine) des systèmes dotés d'un bus ISA. Il a été développé en pensant aux processeurs Pentium, mais a également bien fonctionné avec les processeurs i486. Plus tard, le PCI est devenu pendant quelque temps le bus central : il était connecté au bus du processeur par un pont hautes performances (pont « nord »), qui faisait partie du chipset de la carte mère. Les bus d'extension d'E/S restants (ISA/EISA ou MCA), ainsi que le bus X-BUS local de type ISA et l'interface LPC, auxquels les puces de la carte système sont connectées (BIOS ROM, contrôleurs d'interruption, claviers, DMA , ports COM et LPT, HDD et autres « petites choses »), connectés au bus PCI via le pont « sud ». Dans les cartes mères modernes dotées d'une architecture « hub », le bus PCI a été déplacé vers la périphérie, sans compromettre la capacité de son canal de communication avec le processeur et la mémoire, mais aussi sans charger les appareils sur d'autres bus avec trafic de transit.

Le bus PCI est synchrone - tous les signaux sont capturés par le front positif (front) du signal CLK. La fréquence nominale de synchronisation est considérée comme étant de 33,3 MHz ; si nécessaire, elle peut être abaissée. A partir de la version PCI 2.1, il est possible d'augmenter la fréquence jusqu'à 66,6 MHz si tous les appareils sur le bus « sont d'accord ». En PCI-X, la fréquence peut atteindre 133 MHz.

PCI utilise un bus d'adresses/données (AD) multiplexé parallèle d'une largeur typique de 32 bits. La spécification définit la possibilité d'étendre la profondeur de bits à 64 bits ; La version PCI-X 2.0 définit également une option de bus 16 bits. À une fréquence de bus de 33 MHz, le débit théorique atteint 132 Mo/s pour un bus 32 bits et 264 Mo/s pour un bus 64 bits ; à une fréquence de synchronisation de 66 MHz - 264 Mo/s et 528 Mo/s, respectivement. Cependant, ces valeurs maximales ne sont atteintes que lors de la transmission de paquets : en raison de la surcharge du protocole, le débit moyen réel du bus est inférieur.

Les caractéristiques comparatives des bus PCI et PCI-X et autres bus d'extension des ordinateurs compatibles PC sont présentées dans le tableau. 1.1. Bus ISA de ordinateurs de bureau s'en va, mais il conserve sa place dans les ordinateurs industriels et embarqués, aussi bien dans la version slot traditionnelle que dans la version « sandwich » du PC/104. Les emplacements PCMCIA avec bus PC Card et Card Bus sont largement utilisés dans les ordinateurs portables. Le bus LPC est un moyen moderne et peu coûteux pour connecter des appareils peu gourmands en ressources à la carte mère.

Pneu Débit de pointe Mo/s Canaux DMA Maître des autobus ACFG Largeur des données Taille de l'adresse Fréquence MHz
ISA-8 4 3 - - 8 20 8
ISA-16 8
7
+
-
16
24
8
LPC 6,7
7
+
-
8/16/32
32
33
EISA
33,3 7 +
+
32
32
8,33
MCA-16
16
-
+
+
16
24
10
MCA-32
20
-
+
+
32
32
10
VLB
132
-
(+)
-
32/64
32
33-50(66)
PCI
133-533
-
+
+
32/64
32/64
33/66
PCI-X
533-4256
-
+
+
16/32/64
32/64
66-133
PCI-Express
496-15872
-
+
+
1/2/4/8/12/16/32
32/64
2,5 GHz
AGP1x/2x/4x/8x
266/533/1066/2132
-
+
+
32
32/64
66
PCMCIA
10/22
+
-
+
8/16
26
10
Bus de cartes 132 - + + 32 32 33

ACFG1-Prend en charge la configuration automatique. Pour ISA, PnP est un ajout tardif implémenté par des adaptateurs et des logiciels.

Protocole de signalisation des bus PCI et PCI-X

L'échange d'informations sur les bus PCI et PCI-X est organisé sous forme de transactions - opérations d'échange logiquement complétées. Une transaction typique implique deux appareils : un initiateur d’échange, également appelé appareil maître, et un appareil cible, également appelé esclave. Les règles d'interaction entre ces appareils sont déterminées par le protocole de bus PCI. L'appareil peut surveiller les transactions sur le bus sans être participant (sans saisir de signaux) ; Le terme Snooping correspond au mode de tracking. Il existe un type spécial de transaction (cycle spécial) - la diffusion, dans laquelle l'initiateur n'interagit avec aucun des appareils selon le protocole. Chaque transaction exécute une commande, généralement en train de lire ou d'écrire des données. adresse spécifiée. Une transaction commence par une phase d'adresse, dans laquelle l'initiateur spécifie une commande et une adresse cible. Des phases de données peuvent suivre, au cours desquelles un appareil (la source de données) place les données sur le bus et un autre (le récepteur) les lit. Les transactions comportant plusieurs phases de données sont appelées transactions par lots. Il existe également des transactions uniques (avec une phase de données). Une transaction peut se terminer sans phases de données si le périphérique cible (ou l'initiateur) n'est pas prêt pour l'échange. Le bus PCI-X a ajouté une phase d'attribut dans laquelle des informations supplémentaires sur la transaction sont transmises.

Protocole de signalisation des bus PCI et PCI-X

La composition et l'objectif des signaux d'interface de bus sont révélés dans le tableau ci-dessous. Les états de toutes les lignes de signaux sont perçus par le front montant CLK, et ces moments dans la description ultérieure sont désignés par des cycles de bus (marqués sur les figures par des lignes pointillées verticales). Les mêmes lignes de signaux sont contrôlées à des moments différents différents appareils bus, et pour un « transfert d’autorité » correct (sans conflit), il est nécessaire qu’il y ait une période de temps pendant laquelle aucun appareil ne contrôle la ligne. Sur les diagrammes horaires, cet événement - ce qu'on appelle la « pirouette » (revirement) - est indiqué par une paire de flèches semi-circulaires.

Tableau. Signaux du bus PCI

Signal
But
ANNONCE Adresse/Données - bus d'adresses/données multiplexé. Au début de la transaction, l'adresse est transmise, dans les cycles suivants - les données
C/B# Command/Byte Enable - commande/autorisation d'accéder aux octets. La commande qui détermine le type du prochain cycle de bus est spécifiée par un code à quatre bits dans la phase d'adressage.
CADRE#
Cadre. L'introduction du signal marque le début de la transaction (phase d'adressage), la suppression du signal indique que le cycle de transfert de données suivant est le dernier de la transaction
DEVSEL#
Sélection de l'appareil - l'appareil est sélectionné (la réponse du centre de contrôle à la transaction qui lui est adressée)
Numéro IRDY
Initiator Ready - disponibilité de l'appareil maître pour l'échange de données
TRDY#
Target Ready - préparation du centre de contrôle pour l'échange de données
ARRÊT#
Demande de la CPU au maître pour arrêter la transaction en cours
VERROUILLAGE#
Signal de verrouillage du bus pour garantir un fonctionnement ininterrompu. Utilisé par un pont qui nécessite plusieurs transactions PCI pour effectuer une seule opération
DEMANDE#
Demande - demande de l'appareil maître de saisir le bus
N° GNT
Grant - accorder le contrôle du bus au maître
PAR
Parité - bit de parité commun pour les lignes AD et C/BE#
N° PERR
Erreur de parité — signal d'erreur de parité (pour tous les cycles sauf les cycles spéciaux). Généré par tout appareil qui détecte une erreur
PME#
Événement de gestion de l'alimentation - un signal sur les événements qui provoquent un changement du mode de consommation (un signal supplémentaire introduit dans PCI 2.2)
CLKRUN#
Fonctionnement de l'horloge : le bus fonctionne à la fréquence d'horloge nominale. Supprimer le signal signifie ralentir ou arrêter la synchronisation pour réduire la consommation (pour les applications mobiles)
Numéro PRSN
Présent - indicateurs de présence de la carte codant la demande de consommation électrique. Sur la carte d'extension, une ou deux lignes LED sont connectées au bus GND, qui est détecté par la carte mère
N° TVD
Réinitialiser - réinitialiser tous les registres à leur état initial (cliquez sur le bouton « Réinitialiser »
et au redémarrage)
IDSEL
Sélection du périphérique d'initialisation - sélection du périphérique dans les cycles de lecture et d'écriture de configuration ; Ces cycles sont répondus par un appareil qui détecte un niveau de signal élevé sur cette ligne
Numéro SERR
Erreur système - erreur système. Une erreur d'adresse ou de parité de données dans une trame spéciale ou une autre erreur catastrophique détectée par l'appareil. Activé par n'importe quel périphérique PCI et appelle NMI
REQ64#
Demande 64 bits - demande d'échange 64 bits. Le signal est entré par l'initiateur 64 bits ; il coïncide dans le temps avec le signal FRAME#. Pendant la réinitialisation (signal RST#), signale au périphérique 64 bits qu'il est connecté au bus 64 bits. Si un périphérique 64 bits ne détecte pas ce signal, il doit se reconfigurer en mode 32 bits en désactivant les circuits tampons à octets élevés.
ACK64#
Confirmation de l'échange 64 bits. Le signal est entré par le processeur 64 bits, qui a reconnu son adresse, simultanément avec DEVSEL#. Le défaut de fournir cette confirmation obligera l'initiateur à effectuer l'échange en 32 bits.
INTA#, INTB#, INTC#, INTD#
Interruption A, B, C, D - lignes de demande d'interruption, sensibilité de niveau, niveau actif - faible, ce qui permet la séparabilité ( partage) lignes
CLK
Horloge — fréquence d'horloge du bus. Doit être compris entre 20 et 33 MHz, à partir de PCI 2.1, il peut aller jusqu'à 66 MHz, en PCI-X jusqu'à 100 et 133 MHz
M66FR
66 MHz activé - résolution de fréquence d'horloge jusqu'à 66 MHz (sur les cartes, 33 MHz sont mis à la terre, à 66 MHz, ils sont gratuits)
PCIXCAP (38B)

Capacités PCI-X : sur les cartes PCI - mise à la terre, sur PCI-X133 connecté à la terre via un condensateur de 0,01 µF, sur PCI-X66 - par un circuit RC parallèle de 10 kOhm, 0,01 µF.

SDONE
Snoop Done - signale que le cycle de surveillance est terminé pour la transaction en cours. Un niveau faible indique que le cycle de surveillance de la cohérence de la mémoire et du cache est incomplet. Signal facultatif, utilisé uniquement par les périphériques de bus avec mémoire cache. Obsolète depuis PCI 2.2
# SBO
Snoop Backoff - l'accès actuel à la mémoire d'un abonné au bus aboutit dans une ligne de cache modifiée. Un signal facultatif, utilisé uniquement par les abonnés au bus disposant d'une mémoire cache pendant l'algorithme de réécriture. Obsolète depuis PCI 2.2
SMBCLK
SMBus Clock - signal d'horloge du bus SMBus (interface I2C). Introduit depuis PCI 2.3
SMBDAT
Données SMBus - données série du bus SMBus (interface I2C). Introduit depuis PCI 2.3
TCK
Test Clock - Synchronisation de l'interface de test JTAG
TDI
Entrée des données de test - Données d'entrée de l'interface de test JTAG
TDO
Sortie des données de test - Données de sortie de l'interface de test JTAG
TMS
Sélection du mode de test - sélectionnez le mode de l'interface de test JTAG
TRST
Réinitialisation de la logique de test - réinitialiser la logique de test

À tout moment, le bus ne peut être contrôlé que par un seul appareil maître, qui a reçu le droit de le faire de l'arbitre. Chaque appareil maître dispose d'une paire de signaux - REQ# pour demander le contrôle du bus et GNT# pour confirmer que le contrôle du bus a été accordé. L'appareil peut commencer une transaction (définir le signal FRAME#) uniquement lorsqu'il reçoit un signal GNT# actif et attend qu'il n'y ait plus d'activité du bus. A noter qu'en attendant le repos, l'arbitre peut « changer d'avis » et donner le contrôle du bus à un autre appareil de priorité plus élevée. La suppression du signal GNT# empêche l'appareil de démarrer la transaction suivante et, dans certaines conditions (voir ci-dessous), peut le forcer à mettre fin à la transaction en cours. L'arbitrage des demandes d'utilisation du bus est assuré par un nœud spécial - un arbitre, qui fait partie du pont reliant ce bus au centre. Le schéma de priorité (fixe, round-robin, combiné) est déterminé par la programmation de l'arbitre.

Des lignes AD multiplexées communes sont utilisées pour l'adresse et les données. Quatre lignes C/BE multiplexées assurent le codage des instructions dans la phase d'adresse et la résolution d'octets dans la phase de données. Dans les transactions d'écriture, les lignes C/BE permettent l'utilisation des octets de données simultanément à leur présence sur le bus AD ; dans les transactions de lecture, ces signaux font référence aux octets de la phase de données suivante. Dans la phase d'adresse (début de transaction), le maître active le signal FRAME#, transmet l'adresse cible sur le bus AD et transmet les informations sur le type de transaction (commande) sur les lignes C/BE#. Le périphérique cible adressé répond avec un signal DEVSEL#. L'appareil maître indique qu'il est prêt à échanger des données avec le signal IRDY# ; cette disponibilité peut être définie avant de recevoir DEVSEL#. Lorsque l'appareil cible est prêt à échanger des données, il définit le signal TRDY#. Les données sont transmises sur le bus AD uniquement lorsque les signaux IRDY# et TRDY# sont présents simultanément. À l'aide de ces signaux, les appareils maître et cible coordonnent leurs vitesses en introduisant des états d'attente. La figure ci-dessous montre un chronogramme d'un échange dans lequel les appareils maître et cible entrent dans des horloges d'attente. S'ils saisissaient tous les deux des signaux prêts à la fin de la phase d'adressage et ne les supprimaient qu'à la fin de l'échange, alors 32 bits de données seraient transmis dans chaque cycle d'horloge après la phase d'adressage, ce qui fournirait des performances d'échange maximales. Dans les transactions de lecture, après la phase d'adressage, une horloge supplémentaire est nécessaire pour la pirouette, pendant laquelle l'initiateur cesse de contrôler la ligne AD ; Le périphérique cible ne pourra prendre le contrôle du bus AD qu’au cours du prochain cycle d’horloge. Dans une transaction d'écriture, la pirouette n'est pas nécessaire car l'initiateur transmet les données.

Sur le bus PCI, toutes les transactions sont traitées comme des rafales : chaque transaction commence par une phase d'adressage, qui peut être suivie d'une ou plusieurs phases de données. Le nombre de phases de données dans le paquet n'est pas explicitement indiqué, mais dans le cycle d'horloge de la dernière phase de données, le périphérique maître, lorsque le signal IRDY# est entré, supprime le signal FRAME#. Dans les transactions uniques, le signal FRAME# est actif pendant un seul cycle d'horloge. Si l'appareil ne prend pas en charge les transactions par lots en mode esclave, il doit alors demander que la transaction par lots soit terminée pendant la première phase de données (en affirmant le signal STOP# en même temps que TRDY#). En réponse à cela, le maître terminera la transaction donnée et continuera à échanger la transaction suivante avec la valeur d'adresse suivante. Après la phase finale de données, le périphérique maître supprime le signal IRDY# et le bus passe à l'état inactif (Idle) - les deux signaux : FRAME# et IRDY# sont dans un état passif.

L'initiateur peut démarrer la transaction suivante sans période de repos en définissant FRAME# simultanément avec la suppression de IRDY#. De telles transactions adjacentes rapides (Fast Back-to-Back) peuvent être adressées soit à un, soit à différents appareils cibles. Le premier type de transactions contiguës rapides est pris en charge par tous les périphériques PCI agissant en tant que périphérique cible. La prise en charge du deuxième type de transactions contiguës (cette prise en charge est facultative) est indiquée par le bit 7 du registre d'état. L'initiateur est autorisé (s'il le peut) à utiliser des transactions rapides contiguës avec différents appareils (l'autorisation est déterminée par le bit 9 du registre de commandes) uniquement si tous les agents de bus autorisent les appels rapides. Lors de l'échange de données en mode PCI-X, les transactions contiguës rapides ne sont pas autorisées.

Le protocole de bus garantit la fiabilité de l'échange - l'appareil maître reçoit toujours des informations sur le traitement de la transaction par l'appareil cible. Un moyen d'augmenter la fiabilité de l'échange est l'utilisation du contrôle de parité : les lignes AD et C/BE# aussi bien dans la phase d'adressage que dans la phase de données sont protégées par le bit de parité PAR (le nombre de bits définis de ces lignes, y compris PAR, doit être pair). La valeur PAR réelle apparaît sur le bus avec un retard d'un cycle d'horloge par rapport aux lignes AD et C/BE#. Lorsqu'une erreur est détectée, l'appareil génère un signal PERR# (décalé d'une horloge après l'apparition d'un bit de parité valide sur le bus). Lors du calcul de la parité lors de la transmission des données, tous les octets sont pris en compte, y compris les octets invalides (marqués par un signal C/BEx# élevé). L'état des bits, même dans les octets de données invalides, doit rester stable pendant la phase de données.

Chaque transaction sur le bus doit être terminée comme prévu ou interrompue, et le bus doit passer dans un état de repos (les signaux FRAME# et IRDY# sont passifs). L'achèvement de la transaction est soit initié par l'appareil maître, soit initié par l'appareil cible.

Le maître peut finaliser la transaction de l'une des manières suivantes :

  • achèvement - terminaison normale à la fin de l'échange de données ;
  • time-out – achèvement avant expiration du délai. Se produit lorsque le contrôle du bus du maître est supprimé pendant une transaction (en supprimant le signal GNT#) et que son minuteur de latence expire. Cela peut se produire si le périphérique cible adressé est inopinément lent ou si la transaction est programmée pour être trop longue. Les transactions courtes (avec une ou deux phases de données), même si le signal GNT# est supprimé et que le temporisateur est déclenché, se terminent normalement ;
  • master-Abort - Abandonne une transaction lorsque le périphérique maître ne reçoit pas de réponse du périphérique cible (signal DEVSEL#) dans un délai spécifié.

La transaction peut être terminée à l'initiative de l'appareil cible ; Pour ce faire, il peut saisir un signal STOP#. Il existe trois types de résiliation de transaction possibles :

  • retry - répétition, introduction du signal STOP# avec un signal TRDY# passif avant la première phase de données. Cette situation se produit lorsque l'appareil cible, en raison d'une activité interne, n'a pas le temps de produire les premières données à temps (16 cycles d'horloge). Un abandon de nouvelle tentative est une indication au maître de redémarrer la même transaction ;
  • déconnexion - déconnexion, introduction du signal STOP# pendant ou après la première phase de données. Si le signal STOP# est entré alors que le signal TRDY# de la phase de données suivante est actif, alors ces données sont transmises et la transaction est terminée. Si le signal STOP# est activé lorsque le signal TRDY# est passif, alors la transaction est terminée sans transmettre les données de la phase suivante. La déconnexion se produit lorsque le périphérique cible est incapable d'émettre ou de recevoir la partie suivante du paquet de données en temps opportun. La déconnexion est une indication au maître de redémarrer cette transaction, mais avec une adresse de départ modifiée ;
  • target-abort - échec, introduction du signal STOP# simultanément à la suppression du signal DEVSEL# (dans les cas précédents, lorsque le signal STOP# apparaissait, le signal DEVSEL# était actif). Après cela, les données ne sont plus transmises. Une panne se produit lorsque le périphérique cible rencontre une erreur fatale ou d'autres conditions dans lesquelles il ne peut plus desservir le cette demande(y compris la commande non prise en charge).

L'utilisation des trois types de terminaison de transaction n'est pas nécessaire pour tous les appareils cibles, mais tout appareil maître doit être prêt à mettre fin aux transactions pour l'une de ces raisons.

Le type de terminaison de nouvelle tentative est utilisé pour organiser les transactions retardées. Les transactions différées sont utilisées uniquement par les périphériques cibles lents et par les ponts PCI lors de la traduction des transactions vers un autre bus. En abandonnant (pour l'initiateur) une transaction avec une condition de nouvelle tentative, le périphérique cible exécute la transaction en interne. Lorsque l'initiateur répète cette transaction (émet la même commande avec la même adresse et le même ensemble de signaux C/BE# dans la phase de données), le périphérique cible (ou le pont) aura déjà le résultat prêt (lecture des données ou progression de l'écriture statut) qu'il reviendra rapidement à l'initiateur. Le résultat d'une transaction en attente effectuée par un appareil donné doit être stocké par l'appareil ou le pont jusqu'à ce que les résultats soient demandés par l'initiateur. Cependant, il peut « oublier » de répéter la transaction (en raison de certaines situations anormales). Pour éviter de dépasser le tampon de stockage des résultats, l'appareil doit supprimer ces résultats. La suppression peut être effectuée sans effets secondaires si la transaction a été différée dans une mémoire permettant la prélecture (avec l'attribut prefetchable, voir ci-dessous). En général, d'autres types de transactions ne peuvent pas être abandonnés en toute impunité (l'intégrité des données peut être violée) ; pour eux, l'abandon n'est autorisé qu'après avoir attendu sans succès une répétition de 215 cycles de bus (lorsque le temporisateur d'abandon est déclenché). Le périphérique peut signaler cette exception à son pilote (ou à l'ensemble du système).

L'initiateur d'une transaction peut demander l'utilisation exclusive du bus PCI pendant la durée d'une opération d'échange nécessitant plusieurs transactions sur le bus. Ainsi, par exemple, si le CPU exécute une instruction de modification de données dans une cellule mémoire appartenant à un périphérique PCI, il doit lire les données du périphérique, les modifier dans son ALU et renvoyer le résultat au périphérique. Pour éviter que les transactions d'autres initiateurs n'interfèrent avec cette opération (ce qui peut entraîner des violations de l'intégrité des données), le pont principal l'exécute comme une opération bloquée - le signal du bus LOCK# est fourni pendant toute la durée de l'opération. Ce signal n'est en aucun cas utilisé (ou produit) par les périphériques PCI conventionnels (pas par les ponts) ; il n'est utilisé par les ponts que pour contrôler l'arbitrage.

Interruptions matérielles sur les ordinateurs compatibles PC

Les périphériques PCI ont la capacité de signaler des événements asynchrones à l'aide d'interruptions. Il existe quatre types de signalisation d'interruption disponibles sur le bus PCI :

  • signalisation filaire traditionnelle via lignes INTx ;
  • signalisation filaire des événements de gestion de l'énergie via la ligne PME# ;
  • signalisation à l'aide de messages - MSI ;
  • signalant une erreur fatale sur la ligne SERR#.

Ce chapitre couvre chacun de ces types de signalisation, ainsi qu'une vue d'ensemble de la prise en charge des interruptions matérielles dans les ordinateurs compatibles PC.

Interruptions matérielles sur les ordinateurs compatibles PC

Les interruptions matérielles fournissent une réponse du processeur aux événements qui se produisent de manière asynchrone par rapport au code du programme en cours d'exécution. Rappelez-vous que les interruptions matérielles sont divisées en masquables et non masquables. Le processeur x86, lors d'un signal d'interruption, suspend l'exécution du flux d'instructions en cours, enregistrant l'état (indicateurs et adresse de retour) sur la pile, et exécute la procédure de gestion des interruptions. Une procédure de traitement spécifique est sélectionnée dans la table d'interruption par le vecteur d'interruption - le numéro à un octet de l'élément dans cette table. Le vecteur d'interruption est transmis au processeur de différentes manières : pour les interruptions non masquables, il est fixe, pour les interruptions masquables, il est signalé par un contrôleur d'interruption spécial. En plus des interruptions matérielles, les processeurs x86 ont également des interruptions internes - des exceptions associées à des cas particuliers d'exécution d'instructions et des interruptions logicielles. Pour les exceptions, le vecteur est déterminé par la condition spéciale elle-même et Intel réserve les 32 premiers vecteurs (0-31 ou 00-1Fh) pour les exceptions. Dans les interruptions logicielles, le numéro du vecteur est contenu dans l'instruction elle-même (les interruptions logicielles ne sont qu'une manière spécifique d'appeler des procédures par numéro, avec un registre d'indicateurs d'abord stocké sur la pile). Toutes ces interruptions utilisent le même ensemble de 256 vecteurs possibles. Historiquement, les vecteurs utilisés pour les interruptions matérielles se chevauchent avec les vecteurs d'exception et les vecteurs pour les interruptions logicielles utilisés pour les appels de service BIOS et DOS. Ainsi, pour un certain nombre de nombres vectoriels, la procédure référencée par la table d'interruption doit d'abord contenir un code de programme qui détermine pourquoi elle a été appelée : en raison d'une exception, d'une interruption matérielle ou pour appeler un service système. Ainsi, la procédure qui assure réellement la réponse du processeur à ce même événement asynchrone ne sera appelée qu’après une série d’actions visant à identifier la source de l’interruption. Nous notons également ici que le même vecteur d'interruption peut être utilisé par plusieurs périphériques - c'est ce qu'on appelle l'utilisation partagée des interruptions, qui est discutée en détail ci-dessous.

L'appel de la routine de service d'interruption dans les modes réel et protégé du processeur est très différent :

  • V mode réel La table d'interruption contient des pointeurs lointains de 4 octets (segment et décalage) vers les procédures correspondantes appelées par l'appel lointain (Call Far avec des indicateurs pré-stockés). La taille (256 × 4 octets) et la position de la table (à partir de l'adresse 0) sont fixes ;
  • En mode protégé (et dans son cas particulier, le mode V86), la table contient des descripteurs d'interruption sur 8 octets, qui peuvent être des portes d'interruption, des portes de piège ou des portes de tâches. La taille de la table peut être réduite (maximum - 256 × 8 octets), la position de la table peut changer (déterminée par le contenu du registre IDT du processeur). Le code du gestionnaire d'interruption doit être au moins aussi privilégié que le code de la tâche interrompue (sinon une exception de sécurité sera déclenchée). Pour cette raison, les gestionnaires d'interruptions doivent s'exécuter au niveau du noyau du système d'exploitation (au niveau de privilège zéro). La modification du niveau de privilège lors de l'appel d'un gestionnaire entraîne un temps supplémentaire passé à redéfinir la pile. Les interruptions qui provoquent un changement de tâche (via Task Gate) consacrent beaucoup de temps au changement de contexte - en déchargeant les registres du processeur dans le segment d'état de l'ancienne tâche et en les chargeant à partir du segment d'état de la nouvelle.

Les numéros de vecteurs utilisés pour les interruptions matérielles dans les systèmes d'exploitation en mode protégé sont différents de ceux utilisés dans les systèmes d'exploitation en mode réel afin de garantir qu'ils n'entrent pas en conflit avec les vecteurs utilisés pour les exceptions de processeur.

Le processeur répond toujours à une interruption non masquable (NMI) (si la maintenance de la NMI précédente est terminée) ; Cette interruption correspond au vecteur fixe 2. Les interruptions non masquables dans les PC sont utilisées pour signaler des erreurs matérielles fatales. Le signal vers la ligne NMI provient des circuits de contrôle mémoire (parité ou ECC), des lignes de contrôle du bus ISA (IOCHK) et du bus PCI (SERR#). Le signal NMI est bloqué avant d'entrer dans le processeur en réglant le bit 7 du port 070h sur 1, les sources individuelles sont activées et identifiées par les bits du port 061h :

  • bit 2 R/W - ERP - autorisation de contrôler la RAM et le signal SERR# du bus PCI ;
  • bit 3 R/W - EIC - Activation du contrôle du bus ISA ;
  • bit 6 R - IOCHK - erreur de contrôle sur le bus ISA (signal IOCHK#) ;
  • bit 7 R - PCK - Erreur de parité RAM ou signal SERR# sur le bus PCI.

La réponse du processeur aux interruptions masquables peut être retardée en réinitialisant son indicateur IF interne (l'instruction CLI désactive les interruptions, l'instruction STI les active). Les interruptions masquables sont utilisées pour signaler des événements dans les appareils. Lorsqu'un événement nécessitant une réponse se produit, l'adaptateur de périphérique (contrôleur) génère une demande d'interruption, qui est envoyée à l'entrée du contrôleur d'interruption. La tâche du contrôleur d'interruption est de transmettre la demande d'interruption au processeur et d'informer le vecteur par lequel sélectionner procédure du programme gestion des interruptions.

La routine d'interruption du périphérique doit effectuer des actions pour entretenir le périphérique, notamment réinitialiser sa demande pour lui permettre de répondre aux événements ultérieurs et envoyer des commandes d'achèvement au contrôleur d'interruption. Lors de l'appel de la routine de traitement, le processeur stocke automatiquement la valeur de tous les indicateurs de la pile et réinitialise l'indicateur IF, ce qui désactive les interruptions masquables. Au retour de cette procédure (à l'aide de l'instruction IRET), le processeur restaure les drapeaux enregistrés, y compris le IF défini (avant l'interruption), ce qui active à nouveau les interruptions. Si, pendant le fonctionnement du gestionnaire d'interruptions, une réaction à d'autres interruptions (priorité plus élevée) est requise, alors l'instruction STI doit être présente dans le gestionnaire. Cela est particulièrement vrai pour les longs manutentionnaires ; ici, l'instruction STI doit être saisie le plus tôt possible, immédiatement après la section critique (non interruption). Le contrôleur d'interruption traitera les interruptions suivantes de niveau de priorité identique ou inférieur uniquement après avoir reçu la commande EOI (End Of Interrupt).

Les ordinateurs compatibles IBM PC utilisent deux types principaux de contrôleurs d'interruption :

  • PIC (Peripheral Interrupt Controller) est un contrôleur d'interruption périphérique, logiciel compatible avec le contrôleur « historique » 8259A, utilisé dans les premiers modèles de PC IBM. Depuis l'époque de l'IBM PC/AT, une paire de PIC en cascade a été utilisée, ce qui permet de gérer jusqu'à 15 lignes de demande d'interruption ;
  • APIC (Advanced Peripheral Interrupt Controller) est un contrôleur d'interruption périphérique avancé introduit pour prendre en charge les systèmes multiprocesseurs dans les ordinateurs basés sur des processeurs de 4 à 5 générations (486 et Pentium) et est toujours utilisé aujourd'hui pour les modèles de processeurs ultérieurs. En plus de prendre en charge les configurations multiprocesseurs, l'APIC moderne vous permet d'augmenter le nombre de lignes d'interruption disponibles et de gérer les demandes d'interruption des périphériques PCI envoyées via le moteur de messages (MSI). Un ordinateur équipé d'un contrôleur APIC doit pouvoir fonctionner dans un mode compatible avec une paire PIC standard. Ce mode est activé par une réinitialisation matérielle (et une mise sous tension), ce qui permet d'utiliser d'anciennes applications OS et MS DOS ne connaissant pas l'APIC et le multitraitement.

Le schéma traditionnel pour générer des demandes d'interruption à l'aide d'une paire de PIC est illustré dans la figure ci-dessous.

Les entrées du contrôleur d'interruption reçoivent les requêtes des périphériques système (clavier, minuterie système, minuterie CMOS, coprocesseur), des contrôleurs périphériques de la carte mère et des cartes d'extension. Traditionnellement, toutes les lignes de requête non occupées par les périphériques répertoriés sont présentes sur tous les emplacements de bus ISA/EISA. Ces lignes sont désignées IRQx et ont un objectif commun (voir tableau ci-dessous). Certaines de ces lignes sont affectées au bus PCI. Le tableau montre également les priorités d'interruption - les demandes sont classées par ordre décroissant. Les nombres de vecteurs correspondant aux lignes de requête du contrôleur, au système de priorité et à certains autres paramètres sont définis par programme lors de l'initialisation des contrôleurs. Ces paramètres de base restent traditionnels pour la compatibilité logicielle, mais diffèrent entre les systèmes d'exploitation en mode réel et en mode protégé. Par exemple, sous Windows, les vecteurs de base des contrôleurs maître et esclave sont respectivement 50h et 58h.

Nom (numéro 1) Vecteur 2 Vecteur 3 Contrôleur/masque Description
INM 02h


IRQ0 08h 50h
#1/1h
Contrôle des canaux, parité mémoire (dans XT - coprocesseur)
IRQ1 09h 51h
#1/2h
Clavier
IRQ2 0Ah 52h
#1/4h
XT - réserve, AT - indisponible (la cascade IRQ8-IRQ15 est connectée)
IRQ8 70h
58h
#2/1h
CMOS RTC - Horloge en temps réel
IRQ9 71h
59h
#2/2h
Réserve
IRQ10 72h
5Ah
#2/4h
Réserve
IRQ11 73h
5 ch
#2/8h
Réserve
IRQ12 74h
5Ch
#2/10h
Souris PS/2 (réserve)
IRQ13 75h
5DH
#2/20h
Coprocesseur mathématique
IRQ14 76h
5Eh
#2/40h
HDC - Contrôleur de disque dur
IRQ15 77h
5Fh
#2/80h
Réserve
IRQ3 0Bh
52h
#1/4h
COM2, COM4
IRQ4 0Ch
53h
#1/10h
COM1, COM3
IRQ5I 0Dh
54h
#1/20h
XT - HDC, AT - LPT2, Son (réserve)
IRQ6 0Eh
55h
#1/40h
FDC - contrôleur d'entraînement à flotteur
IRQ7 0Fh
56h
#1/80h
LPT1 - imprimante

*1 Les demandes d'interruption 0, 1, 8 et 13 ne sont pas émises vers les bus d'extension.
*2 Les numéros de vecteur sont indiqués lors du fonctionnement en mode processeur réel.
*3 Les numéros de vecteurs sont indiqués lorsque vous travaillez sous Windows.

Chaque périphérique nécessitant des interruptions pour prendre en charge son fonctionnement doit se voir attribuer son propre numéro d'interruption. L'attribution des numéros d'interruption s'effectue de deux côtés : premièrement, l'adaptateur nécessitant des interruptions doit être configuré pour utiliser une ligne de bus spécifique (soit par des cavaliers, soit par logiciel). Deuxièmement, logiciel, qui prend en charge cet adaptateur, doit être informé du numéro de vecteur utilisé. Le système PnP pour les bus ISA et PCI peut participer au processus d'attribution des interruptions ; des paramètres spéciaux sont utilisés pour répartir les lignes de requête entre les bus. Configuration CMOS. Les systèmes d'exploitation modernes ont la possibilité de modifier l'affectation des demandes concernant l'allocation effectuée via la configuration CMOS.

Une fois le système d'interruption configuré (le contrôleur d'interruption est initialisé, les lignes de requête sont affectées aux périphériques et les pointeurs vers les procédures de traitement sont définis), les interruptions matérielles masquables sont traitées comme suit :

  • lors d'un événement d'interruption, le dispositif excite la ligne de demande d'interruption qui lui est attribuée ;
  • le contrôleur reçoit des signaux de requête des sources d'interruption (signaux IRQx) et, en cas de requête non masquée, envoie un signal de requête d'interruption générale (signal INTR) au processeur x86 ;
  • le processeur, répondant à une requête (lorsque les interruptions avec l'indicateur IF sont activées), stocke le contenu du registre d'indicateur et l'adresse de retour sur la pile, après quoi il génère un cycle de bus INTA (Interrupt Acknowledge), qui est transmis à le contrôleur d'interruption ;
  • au moment où le signal INTA est reçu, le contrôleur d'interruption enregistre l'état de ses entrées de requêtes - à ce moment-là, leur état aurait pu changer : de nouvelles requêtes pourraient apparaître ou une requête d'un appareil « impatient » pourrait disparaître. Le contrôleur analyse les requêtes entrantes conformément au schéma de priorité programmé et envoie au processeur un vecteur d'interruption correspondant à la requête non masquée la plus prioritaire présente à l'entrée du contrôleur au moment où la commande de bus INTA est émise. Dans le même temps, le contrôleur effectue également certaines actions conformément à la politique de priorité établie, en tenant compte du vecteur envoyé (laquelle des demandes a été mise en service) ;
  • Ayant reçu un vecteur d'interruption, le processeur appelle la procédure de gestion d'interruption correspondante en utilisant son numéro. Si un vecteur d'interruption donné est utilisé non seulement pour des interruptions matérielles, mais également pour des exceptions et/ou des interruptions logicielles, alors la routine doit d'abord déterminer de quel type d'événement il s'agit. Pour ce faire, la procédure peut contacter le contrôleur PIC (lire le registre ISR) et analyser l'état des registres du processeur. D'autres étapes sont envisagées dans le cas où une interruption matérielle est détectée ;
  • La procédure de gestion des interruptions doit identifier la source de l'interruption - déterminer le périphérique qui l'a provoquée. Dans le cas d'une utilisation partagée d'un numéro de requête (et donc d'un vecteur) donné par plusieurs appareils, la source de l'interruption ne peut être identifiée que par un accès séquentiel aux registres de chacun de ces appareils. Dans ce cas, il faut prendre en compte la possibilité de recevoir des requêtes de plusieurs appareils simultanément ou pendant le traitement d'une interruption de l'un d'eux ;
  • la procédure doit desservir le périphérique source de l'interruption - effectuer des actions « utiles » liées à l'événement signalé par le périphérique. Ce service doit également garantir que le signal de demande d'interruption de cet appareil est supprimé. Dans le cas d'interruptions partagées, il peut y avoir plusieurs sources, et toutes nécessitent une maintenance ;
  • si le traitement des interruptions prend un temps important, pendant lequel le système doit répondre à des demandes de priorité plus élevée, alors après la section critique, une instruction STI est incluse dans le gestionnaire, qui définit l'indicateur d'activation d'interruption (IF) dans le processeur . A partir de ce moment, des interruptions imbriquées sont possibles, interrompant le travail d'un gestionnaire donné par une autre procédure de priorité plus élevée ;
  • La procédure de gestion des interruptions doit envoyer au contrôleur une commande pour terminer le traitement d'interruption EOI (End Of Interrupt), par laquelle le contrôleur permettra la réception ultérieure d'un signal provenant de l'entrée desservie et de celles de priorité inférieure. Cela doit être fait après avoir supprimé le signal d'interruption des appareils desservis, sinon le contrôleur enverra une deuxième demande après l'EOI. Un gestionnaire d'interruption pour lequel une demande provient d'un contrôleur esclave doit envoyer une EOI aux contrôleurs esclave et maître. La section du gestionnaire allant de l'émission de l'instruction EOI jusqu'à la fin (instruction IRET) doit être ininterruptible, c'est-à-dire qu'il s'agit de la section critique. Si le gestionnaire a autorisé les interruptions imbriquées, alors une instruction CLI désactivant les interruptions doit être présente avant d'émettre la commande EOI ;
  • le traitement d'interruption est complété par l'instruction IRET, par laquelle le processeur revient à l'exécution du flux d'instructions interrompu, après avoir préalablement récupéré le contenu du registre des drapeaux dans la pile. Dans ce cas, les interruptions matérielles seront à nouveau activées.

Cette séquence est décrite en relation avec un contrôleur d'interruption régulier (PIC), les systèmes avec APIC modifient la manière dont le vecteur d'interruption est transmis du contrôleur au processeur et les interruptions MSI modifient la manière dont le signal est transmis du périphérique au contrôleur APIC. . Ces nuances sont décrites dans les sections suivantes.

informations générales

Les ponts PCI (PCI Bridge) sont du matériel spécial permettant de connecter des bus PCI (et PCI-X) entre eux et à d'autres bus. Le Host Bridge est utilisé pour connecter PCI au centre de l'ordinateur (mémoire système et processeur). Le « devoir honorable » du pont principal est de générer des appels vers l'espace de configuration sous le contrôle du processeur central, ce qui permet à l'hôte (processeur central) de configurer l'ensemble du sous-système du bus PCI. Le système peut avoir plusieurs ponts principaux, ce qui permet une communication performante avec le centre plus appareils (le nombre d’appareils sur un bus est limité). Parmi ces bus, l'un est désigné conditionnellement comme le bus principal (bus 0).

Les ponts homologues PCI (PeertoPeer Bridge) sont utilisés pour connecter des bus PCI supplémentaires. Ces ponts introduisent toujours une surcharge de transfert de données supplémentaire, de sorte que les performances efficaces des communications entre périphérique et hub diminuent à chaque pont gênant.

Pour connecter les bus PCMCIA, CardBus, MCA, ISA/EISA, X-Bus et LPC, des ponts spéciaux sont utilisés, qui sont inclus dans les chipsets de la carte mère ou sont des périphériques PCI (puces) séparés. Ces ponts convertissent les interfaces des bus qu'ils connectent, synchronisent et tamponnent les échanges de données.

Chaque pont est programmable : il reçoit les plages d'adresses dans la mémoire et les espaces d'E/S alloués aux appareils sur ses bus. Si l'adresse CPU de la transaction en cours sur un bus (côté) du pont fait référence au bus du côté opposé, le pont traduit la transaction vers le bus approprié et assure la négociation du protocole de bus. Ainsi, un ensemble de ponts PCI effectue le routage des requêtes le long des bus associés. Si le système dispose de plusieurs ponts principaux, le routage de bout en bout entre des périphériques sur des bus différents peut ne pas être possible : les ponts principaux peuvent être connectés les uns aux autres uniquement via les chemins de base du contrôleur de mémoire. Dans ce cas, prendre en charge la traduction de tous les types de transactions PCI via les ponts principaux s'avère trop complexe et n'est donc pas strictement requis par la spécification PCI. Ainsi, tous les périphériques actifs sur tous les bus PCI peuvent accéder à la mémoire système, mais la possibilité de communication peer-to-peer peut dépendre de l'appartenance de ces périphériques à l'un ou l'autre bus PCI.

L'utilisation de ponts PCI offre des opportunités telles que :

  • augmenter le nombre possible d'appareils connectés, en surmontant les limites des spécifications électriques des bus ;
  • division des périphériques PCI en segments - bus PCI - avec différentes caractéristiques profondeur de bits (32/64 bits), fréquence d'horloge (33/66/100/133 MHz), protocole (PCI, PC-X Mode 1, PCI-X Mode 2, PCI Express). Dans chaque bus, tous les abonnés sont égaux au participant le plus faible ; le placement correct des appareils sur les bus permet efficacité maximale utiliser les capacités des appareils et des cartes mères ;
  • organisation de segments avec connexion/déconnexion « à chaud » des appareils ;
  • organisation de l'exécution parallèle simultanée de transactions d'initiateurs situés sur des bus différents.

Chaque pont PCI ne connecte que deux bus : le bus principal, situé plus en haut de la hiérarchie, avec le bus secondaire ; Les interfaces de pont par lesquelles il est connecté à ces bus sont appelées respectivement primaire et secondaire. Seule une configuration purement arborescente est autorisée, c'est-à-dire que deux bus sont reliés entre eux par un seul pont et qu'il n'y a pas de « boucles » de ponts. Les bus connectés à l'interface secondaire d'un pont donné par d'autres ponts sont appelés bus subordonnés. Les ponts PCI forment une hiérarchie de bus PCI, au sommet de laquelle se trouve le bus maître, numéroté zéro, connecté au pont maître. S'il y a plusieurs ponts principaux, alors parmi leurs bus (de rang égal), le principal sera celui qui aura le numéro zéro.

Le pont doit remplir un certain nombre de fonctions obligatoires :

  • desservir le bus connecté à son interface secondaire :
  • effectuer un arbitrage - recevoir les signaux de requête REQx# des maîtres de bus et leur accorder le droit de contrôler le bus avec les signaux GNTx#
  • garer le bus - envoyer un signal GNTx# à un appareil lorsque le contrôle du bus n'est requis par aucun des maîtres ;
  • générer des cycles de configuration de type 0 avec formation de signaux IDSEL individuels vers le périphérique PCI adressable ;
  • « tirer » les signaux de commande à un niveau élevé ;
  • déterminer les capacités des appareils connectés et sélectionner un mode de fonctionnement du bus qui les satisfait (fréquence, profondeur de bits, protocole) ;
  • générer une réinitialisation matérielle (RST#) par réinitialisation depuis l'interface principale et par commande, signalant le mode sélectionné avec une alarme spéciale.
  • maintenir des cartes des ressources situées à travers différents côtés pont;
  • répondre sous l'apparence d'un équipement cible à des transactions initiées par un maître sur une interface et adressées à une ressource située sur une autre interface ; diffuser ces transactions vers une autre interface, agissant comme un appareil maître, et transmettre leurs résultats au véritable initiateur.

Les ponts qui remplissent ces fonctions sont appelés ponts transparents ; Pour travailler avec des périphériques situés derrière de tels ponts, aucun pilote de pont supplémentaire n'est requis. Ce sont les ponts décrits dans Spécifications PCI Bridge 1.1, et pour eux, en tant que périphériques PCI, il existe une classe spéciale (06). Dans ce cas, un modèle d'adressage des ressources « plat » (mémoire et E/S) est implicite : chaque périphérique possède ses propres adresses, uniques (ne se croisant pas avec les autres) au sein d'un système donné (ordinateur).

Il existe également des ponts opaques (pont non transparent), qui permettent d'organiser des segments séparés avec leurs propres espaces d'adressage locaux. Un pont opaque effectue une traduction (conversion) d'adresse pour les transactions dans lesquelles l'initiateur et le périphérique cible sont situés des côtés opposés du pont. Toutes les ressources (plages d'adresses) du côté opposé ne sont pas nécessairement accessibles via un tel pont. Les ponts opaques sont utilisés, par exemple, lorsqu'un ordinateur dispose d'un sous-système « d'entrée/sortie intelligent » (I20) avec son propre processeur d'E/S et son propre espace d'adressage local.

informations générales

Le bus PCI inclut initialement la possibilité de configurer automatiquement les ressources du système (espaces mémoire et E/S et lignes de demande d'interruption). La configuration automatique des appareils (sélection des adresses et des interruptions) est prise en charge par les outils du BIOS et du système d'exploitation ; il se concentre sur la technologie PnP. La norme PCI définit un espace de configuration pour chaque fonction pouvant contenir jusqu'à 256 registres (8 bits), non affectés ni à l'espace mémoire ni à l'espace E/S. On y accède via équipes spéciales Bus de lecture de configuration et d'écriture de configuration, générés à l'aide de l'un des mécanismes matériels et logiciels décrits ci-dessous. Dans cet espace, il y a des zones requises pour tous les appareils et pour des appareils spécifiques. Appareil spécifique ne peuvent pas avoir de registres à toutes les adresses, mais doivent permettre l'exécution normale des opérations qui leur sont adressées. Dans ce cas, la lecture de registres inexistants doit renvoyer des zéros et l'écriture doit être effectuée comme une opération inactive.

L'espace de configuration d'une fonction commence par un en-tête standard, qui contient les identifiants du fabricant, de l'appareil et de sa classe, ainsi qu'une description des ressources système requises et occupées. La structure de l'en-tête est standardisée pour les périphériques conventionnels (type 0), les ponts PCI-PCI (type 1), les ponts PCI-CardBus (type 2). Le type d'en-tête détermine l'emplacement des registres connus et la fonction de leurs bits. Après l'en-tête, il peut y avoir des registres spécifiques au périphérique. Pour les capacités standardisées (capacités) des appareils (par exemple, gestion de l'énergie), dans l'espace de configuration, il existe des blocs de registres à usage connu. Ces blocs sont organisés en chaînes, le premier de ces blocs est référencé dans l'en-tête standard (CAP_PTR) ; dans le premier registre du bloc il y a un lien vers le bloc suivant (ou 0 si ce bloc est le dernier). Ainsi, en scrutant la chaîne, le logiciel de configuration reçoit une liste de toutes les propriétés des appareils disponibles et leurs positions dans l'espace de configuration des fonctions. PCI 2.3 définit les CAP_ID suivants, dont nous examinerons certains :

  • 01 - gestion de l'énergie ;
  • 02 - Port AGP ;
  • 03 - VPD (Vital Product Data), données qui fournissent une description complète des propriétés matérielles (éventuellement également logicielles) des appareils ;
  • 04 — numérotation des emplacements et du châssis ;
  • 05 - Interruptions MSI ;
  • 06 - Hot Swap, connexion à chaud pour Compact PCI ;
  • 07 - Extensions du protocole PCI-X ;
  • 08 - réservé à AMD ;
  • 09 - à la discrétion du fabricant (spécifique au fournisseur) ;
  • 0Ah — port de débogage (port de débogage) ;
  • 0Bh - PCI Hot Plug, fourniture standard de « hot plug ».

Dans PCI-X pour les périphériques Mode 2, l'espace de configuration est étendu à 4 096 octets ; dans l'espace étendu, il peut y avoir des descriptions de propriétés étendues.

Après une réinitialisation matérielle (ou une mise sous tension), les périphériques PCI ne répondent pas aux accès à la mémoire et à l'espace E/S et ne sont disponibles que pour les lectures et écritures de configuration. Dans ces opérations, les appareils sont sélectionnés par des signaux IDSEL individuels, par lecture de registres, le logiciel de configuration apprend les besoins en ressources et options possibles configuration de l'appareil. Une fois l'allocation des ressources effectuée par le programme de configuration (pendant le POST ou le démarrage du système d'exploitation), les paramètres de configuration (adresses de base) sont écrits dans les registres de configuration du périphérique. Ce n'est qu'après cela que les appareils (plus précisément les fonctions) sont réglés sur des bits qui leur permettent de répondre aux commandes d'accès à la mémoire et aux ports d'E/S, ainsi que de contrôler eux-mêmes le bus. Afin de toujours pouvoir trouver une configuration exploitable, toutes les ressources occupées par les cartes doivent être mobiles dans leurs espaces. Pour les appareils multifonctions, chaque fonction doit disposer de son propre espace de configuration. L'appareil peut mapper les mêmes registres à la fois sur la mémoire et sur l'espace E/S. Dans ce cas, les deux descripteurs doivent être présents dans leurs registres de configuration, mais le pilote ne doit utiliser qu'une seule méthode d'accès (de préférence par mémoire).

L'en-tête de l'espace de configuration décrit les besoins de trois types d'adresses :

  • s'enregistre dans l'espace E/S );
  • Registres d'E/S mappés à la mémoire (Memory Mapped I/O). Il s’agit d’une zone mémoire à laquelle il faut accéder en stricte conformité avec ce que demande l’initiateur de l’échange. L'accès à ces registres peut modifier l'état interne des périphériques ;
  • mémoire qui permet une mémoire pré-récupérable. Il s'agit d'une zone de mémoire où la lecture "supplémentaire" (avec des résultats inutilisés) n'entraîne pas d'effets secondaires, tous les octets sont lus indépendamment des signaux BE# et les écritures d'octets individuels peuvent être reliées entre elles (c'est-à-dire que c'est mémoire dans sa forme la plus pure).

Les exigences d'adresse sont indiquées dans les registres d'adresses de base - BAR (Base Address Register). Le programme de configuration peut également déterminer la taille des zones requises. Pour ce faire, après une réinitialisation matérielle, il doit lire et sauvegarder les valeurs des adresses de base (ce seront les adresses par défaut), écrire FFFFFFFFh dans chaque registre et relire leur valeur. Dans les mots reçus, vous devez réinitialiser le type de bits de décodage (bits pour la mémoire et bits pour les E/S), inverser et incrémenter le mot de 32 bits résultant - le résultat sera la longueur de la zone (ignorer les bits pour les ports ). La méthode suppose que la longueur de la région est exprimée par 2n et que la région est naturellement alignée. L'en-tête standard peut contenir jusqu'à 6 registres d'adresses de base, mais lors de l'utilisation d'un adressage 64 bits, le nombre de blocs décrits est réduit. Les registres BAR inutilisés doivent toujours renvoyer des zéros lors de la lecture.

PCI prend en charge les périphériques existants (VGA, IDE), qui se déclarent comme tels par le code de classe dans l'en-tête. Leurs adresses de port traditionnelles (fixes) ne sont pas déclarées dans l'espace de configuration, mais une fois le bit d'activation d'accès au port défini, les appareils sont également autorisés à répondre à ces adresses.