Section courante

A propos

Section administrative du site

PCI (Peripheral Component Interconnect)

Intel
Architecture

Introduction

Le PCI (Peripheral Component Interconnect), généralement appelé PCI ou PCI Local Bus, est une architecture de bus d'extension développée initialement par Intel au début des années 1990. La première spécification apparaît en 1992, à une époque où les ordinateurs personnels utilisent principalement les bus ISA, EISA, MCA et, pour certaines machines 486, VESA Local Bus (VLB). Le PCI est conçu pour proposer une interface plus performante, plus indépendante du microprocesseur et mieux adaptée à l'évolution rapide des ordinateurs personnels.

Contrairement au bus ISA, directement issu de l'architecture des premiers IBM PC, le PCI est conçu comme un bus local synchrone, relativement indépendant de l'architecture du processeur. Cette caractéristique permet son utilisation non seulement sur les ordinateurs x86, mais également sur différentes stations de travail et machines utilisant d'autres familles de processeurs. Le PCI devient néanmoins surtout célèbre grâce aux ordinateurs compatibles IBM PC des années 1990 et 2000.

Dans sa configuration la plus courante, le PCI utilise un bus parallèle de 32 bits fonctionnant à 33 MHz, permettant un débit théorique maximal d'environ 133 Mo/s. Le standard prévoit également des variantes 64 bits ainsi qu'un fonctionnement à 66 MHz. Une liaison PCI 64 bits à 66 MHz peut ainsi atteindre théoriquement environ 533 Mo/s. Contrairement au futur PCI Express, cette bande passante est généralement partagée entre les périphériques présents sur un même bus PCI.

Le PCI introduit également plusieurs fonctions particulièrement importantes, comme la configuration automatique des périphériques, le Bus Mastering, les transferts en rafale (burst transfers) et un espace de configuration standardisé permettant au BIOS et au système d'exploitation d'identifier les cartes installées. Ces caractéristiques participent à la généralisation du concept Plug and Play sur les PC des années 1990.

Pendant plus d'une décennie, le PCI constitue le principal bus d'extension généraliste des ordinateurs personnels. Il permet de connecter des cartes réseau, cartes son, contrôleurs SCSI, contrôleurs IDE/SATA, cartes USB, modems et de nombreux autres périphériques. Les cartes graphiques utilisent également le PCI avant que le AGP (Accelerated Graphics Port) ne devienne la solution privilégiée pour les accélérateurs graphiques.

À partir du milieu des années 2000, le PCI conventionnel est progressivement remplacé par le PCI Express (PCIe), une architecture série point à point offrant une bande passante beaucoup plus importante. Le PCI reste néanmoins un élément fondamental de l'histoire du PC et influence profondément les mécanismes de détection, de configuration et de gestion des périphériques utilisés par les architectures modernes.

Spécifications

Spécification Description
Nom complet Peripheral Component Interconnect
Abréviation PCI
Nom technique courant PCI Local Bus / Conventional PCI
Développeur initial Intel
Première spécification 1992
Organisme de normalisation PCI-SIG
Type Bus d'extension parallèle synchrone
Largeur standard 32 bits
Largeur étendue 64 bits
Fréquence courante 33 MHz
Fréquence étendue 66 MHz
Débit 32 bits / 33 MHz Environ 133 Mo/s
Débit 32 bits / 66 MHz Environ 266 Mo/s
Débit 64 bits / 33 MHz Environ 266 Mo/s
Débit 64 bits / 66 MHz Environ 533 Mo/s
Topologie Bus partagé
Configuration Automatique par espace de configuration PCI
Bus Mastering Oui
Tensions de signalisation 5 V et/ou 3,3 V selon version et carte
Succède principalement à ISA, EISA, MCA et VLB dans de nombreux usages
Successeur principal PCI Express

Historique

Au début des années 1990, l'industrie informatique utilise plusieurs architectures de bus concurrentes.

Parmi celles-ci se trouvent :

Le bus ISA est alors très répandu, mais ses performances deviennent insuffisantes pour les nouveaux périphériques.

Le VLB offre des performances supérieures, mais son architecture est fortement associée aux ordinateurs utilisant les processeurs Intel 80486.

Intel développe donc une architecture plus moderne et plus indépendante du processeur : le PCI Local Bus.

La spécification PCI 1.0 apparaît en 1992.

Le PCI devient progressivement courant avec les systèmes Intel Pentium et les chipsets correspondants.

PCI 1.0

La première spécification PCI est publiée en 1992.

Elle établit les principes fondamentaux de l'architecture :

Cette première version sert principalement à établir les bases de la technologie.

PCI 2.x

Les versions 2.x permettent au PCI de devenir véritablement une norme industrielle.

La spécification PCI 2.0 apparaît en 1993 et contribue à favoriser l'adoption du PCI par un grand nombre de fabricants.

La révision PCI 2.1 introduit notamment la prise en charge normalisée du fonctionnement à 66 MHz et améliore différents aspects électriques et fonctionnels.

Les révisions suivantes améliorent encore la compatibilité et la normalisation.

La spécification PCI 2.3, publiée en 2002, constitue l'une des dernières grandes révisions du PCI conventionnel.

PCI 3.0

Le PCI Local Bus Specification Revision 3.0 constitue la dernière grande spécification du PCI conventionnel.

Elle améliore principalement la normalisation électrique et la compatibilité avec les équipements plus récents.

À cette époque, le PCI conventionnel commence toutefois à être remplacé par le PCI Express.

Le PCI-SIG conserve aujourd'hui PCI 3.0 comme spécification approuvée du PCI conventionnel.

Architecture parallèle

Le PCI conventionnel utilise une architecture parallèle.

Sur une interface PCI 32 bits, plusieurs lignes transportent simultanément les données.

Les principales lignes sont désignées :

Ces lignes sont multiplexées.

Cela signifie qu'elles peuvent transporter :

Cette technique permet de réduire le nombre de broches nécessaires sur les circuits intégrés et les connecteurs.

Bus PCI 32 bits

La version la plus répandue dans les ordinateurs personnels est :

Le calcul théorique du débit est :

soit environ :

ou :

Cette valeur représente le débit théorique maximal du bus et non nécessairement les performances réelles obtenues par une carte.

Bus PCI 64 bits

Le standard PCI prévoit également une extension à 64 bits.

Elle ajoute des lignes supplémentaires au connecteur PCI.

Une carte PCI 64 bits est donc physiquement plus longue qu'une carte PCI 32 bits standard.

Cette architecture est surtout rencontrée dans :

À 33 MHz, une liaison 64 bits peut atteindre environ :

PCI à 66 MHz

Le PCI permet également un fonctionnement à 66 MHz.

Le doublement de la fréquence double approximativement la bande passante théorique.

Ainsi :

Configuration Débit théorique
32 bits / 33 MHz 133 Mo/s
64 bits / 33 MHz 266 Mo/s
32 bits / 66 MHz 266 Mo/s
64 bits / 66 MHz 533 Mo/s

Dans les ordinateurs personnels grand public, la configuration 32 bits / 33 MHz demeure toutefois de loin la plus courante.

Bus partagé

L'une des caractéristiques fondamentales du PCI conventionnel est son architecture de bus partagé.

Plusieurs périphériques peuvent être connectés au même bus physique.

Par exemple :

Chipset

Bus PCI

Carte réseau + carte son + contrôleur SCSI + modem

Ces périphériques doivent partager la bande passante disponible.

Ainsi, un bus PCI 32 bits à 33 MHz possède une capacité théorique totale d'environ 133 Mo/s, et non 133 Mo/s indépendamment pour chaque carte.

Cette caractéristique constitue une différence fondamentale avec PCI Express, où chaque périphérique dispose normalement de sa propre liaison point à point.

Arbitrage du bus

Puisque plusieurs périphériques partagent le même bus, un mécanisme doit déterminer quel périphérique peut transmettre.

Le PCI utilise donc un système d'arbitrage.

Lorsqu'un périphérique souhaite devenir maître du bus, il demande son utilisation à l'arbitre.

Lorsque l'accès lui est accordé, il peut commencer sa transaction.

Ce mécanisme permet à plusieurs périphériques compatibles Bus Master de partager efficacement le même bus.

Bus Mastering

Le PCI prend en charge le Bus Mastering.

Un périphérique capable de Bus Mastering peut prendre temporairement le contrôle du bus afin d'effectuer directement certaines opérations.

Par exemple, une carte réseau peut transférer des données entre ses tampons et la mémoire vive sans demander au processeur de déplacer individuellement chaque octet.

Cette technique fonctionne généralement avec le DMA (Direct Memory Access) et permet de réduire la charge du processeur.

Transferts en rafale

PCI prend en charge les transferts en rafale, également appelés burst transfers.

Après l'envoi de l'adresse initiale, plusieurs unités de données peuvent être transférées successivement.

Cette méthode réduit le nombre d'opérations nécessaires et améliore considérablement l'efficacité du bus lors du transfert de blocs de données importants.

Elle est particulièrement utile pour :

Espace de configuration PCI

L'une des innovations les plus importantes du PCI est son espace de configuration standardisé.

Chaque fonction PCI possède un espace de configuration permettant au système d'exploitation ou au BIOS d'obtenir des renseignements sur le périphérique.

On y retrouve notamment :

Dans le PCI conventionnel, l'espace de configuration standard est de 256 octets par fonction.

Vendor ID et Device ID

Chaque périphérique PCI peut être identifié par différents numéros.

Le Vendor ID identifie le fabricant.

Le Device ID identifie le périphérique ou la famille de périphériques.

Le système d'exploitation peut donc déterminer quel pilote doit être chargé.

Par exemple, lors du démarrage :

BIOS/OS → détection PCI → Vendor ID + Device ID → pilote approprié

Ce mécanisme demeure fondamental dans les architectures PCI modernes.

Class Code

Le Class Code permet d'identifier la fonction générale du périphérique.

Il existe notamment des classes correspondant aux :

Ainsi, même sans connaître précisément le modèle du périphérique, le système peut déterminer sa fonction générale.

Base Address Registers (BAR)

Les Base Address Registers, ou BAR, permettent au périphérique d'indiquer les ressources d'adressage dont il a besoin.

Ils servent notamment à définir :

Lors de l'initialisation du système, le BIOS ou le système d'exploitation peut attribuer ces ressources aux périphériques.

Cette architecture facilite énormément la configuration automatique du matériel.

Plug and Play

Le PCI contribue fortement à la généralisation du Plug and Play.

Avec les anciens périphériques ISA, l'utilisateur doit parfois configurer manuellement :

PCI permet au BIOS et au système d'exploitation de détecter les périphériques et d'attribuer automatiquement une grande partie de leurs ressources.

L'installation d'une carte devient donc beaucoup plus simple.

Interruptions

Les périphériques PCI conventionnels peuvent utiliser quatre signaux d'interruption traditionnels :

Dans de nombreuses machines, plusieurs périphériques peuvent partager une même ligne d'interruption.

Les versions plus récentes du standard permettent également l'utilisation de mécanismes tels que MSI (Message Signaled Interrupts).

Tensions électriques

Le PCI conventionnel a existé avec différentes tensions de signalisation.

Les principales sont :

Le connecteur utilise des détrompeurs afin d'éviter l'installation de certaines cartes dans un emplacement utilisant une tension incompatible.

On rencontre également des cartes dites universelles, conçues pour fonctionner dans plusieurs types d'emplacements compatibles.

Il est donc important de ne pas considérer tous les connecteurs PCI comme électriquement identiques malgré leur apparence générale similaire.

Cartes PCI courantes

Durant les années 1990 et 2000, le PCI est utilisé par une immense variété de périphériques :

Cette polyvalence constitue l'une des principales raisons du succès du PCI.

PCI et les cartes graphiques

Les premières cartes graphiques PCI apparaissent au début des années 1990.

Le PCI offre alors des performances nettement supérieures aux anciennes cartes ISA.

Cependant, l'évolution rapide des accélérateurs graphiques 3D nécessite bientôt davantage de bande passante.

Intel introduit donc en 1997 :

L'AGP devient l'interface privilégiée des cartes graphiques pendant plusieurs années.

Le PCI continue toutefois d'être utilisé pour les autres cartes d'extension.

Finalement, PCI Express remplace à la fois l'AGP et progressivement le PCI conventionnel.

PCI et ISA

Le PCI ne fait pas disparaître immédiatement l'ISA.

Pendant plusieurs années, les cartes mères possèdent simultanément :

Cette période de transition est particulièrement visible sur les ordinateurs équipés de processeurs :

L'ISA disparaît progressivement des cartes mères grand public au début des années 2000.

PCI et AGP

PCI et AGP peuvent également coexister.

Une carte mère typique de la fin des années 1990 peut par exemple comporter :

L'AGP est alors réservé principalement à la carte graphique, tandis que PCI prend en charge les autres cartes d'extension.

PCI-X

Le PCI-X (PCI eXtended) est une évolution du PCI destinée principalement aux serveurs et stations de travail.

Il ne faut pas le confondre avec PCI Express.

PCI-X conserve une architecture parallèle compatible avec certains principes du PCI conventionnel, mais augmente considérablement les fréquences et les performances.

On le retrouve notamment sur :

PCI-X sera lui aussi progressivement remplacé par PCI Express.

PCI Express

Le PCI Express (PCIe) constitue le véritable successeur du PCI conventionnel dans les ordinateurs modernes.

Contrairement au PCI parallèle et partagé, PCI Express utilise des liaisons série point à point.

Les périphériques disposent de liaisons constituées d'une ou plusieurs voies :

Cette architecture permet d'augmenter considérablement la bande passante et d'éviter plusieurs limitations du bus PCI partagé.

Comparaison avec les principales architectures

Architecture Introduction Type Largeur / organisation Débit caractéristique
ISA 8 bits 1981 Parallèle 8 bits Quelques Mo/s
ISA 16 bits 1984 Parallèle 16 bits Quelques Mo/s
MCA 1987 Parallèle 16/32 bits Variable
EISA 1988 Parallèle 32 bits Environ 33 Mo/s
VLB 1992 Parallèle 32 bits Jusqu'à environ 132 Mo/s à 33 MHz
PCI 1992 Parallèle partagé 32/64 bits 133 à 533 Mo/s
AGP 1997 Parallèle, dédié graphique 32 bits Jusqu'à environ 2,1 Go/s avec AGP 8x
PCI-X 1998 Parallèle partagé 64 bits Jusqu'à plusieurs Go/s selon version
PCI Express 2003 Série point à point Lignes x1, x4, x8, x16... Variable selon génération

Avantages

Les principaux avantages du PCI sont :

Inconvénients

Le PCI conventionnel possède néanmoins plusieurs limitations :

Ces limitations expliquent en grande partie le passage à PCI Express.

Héritage

Le PCI (Peripheral Component Interconnect) représente l'une des architectures de bus les plus importantes de l'histoire de l'ordinateur personnel. Introduit au début des années 1990, il contribue à remplacer progressivement ISA, EISA, MCA et VLB par une architecture mieux standardisée, plus rapide et largement indépendante du microprocesseur utilisé.

Son importance dépasse largement ses performances matérielles. L'espace de configuration PCI, les identifiants de fabricant et de périphérique, les classes de périphériques, les BAR et les mécanismes de détection automatique établissent des principes qui continueront d'être employés dans les générations suivantes.

Le PCI conventionnel devient ainsi le bus d'extension dominant des PC pendant une grande partie des années 1990 et du début des années 2000. Il accueille pratiquement toutes les catégories de périphériques, depuis les cartes son et réseau jusqu'aux contrôleurs de stockage et aux premières cartes accélératrices 3D.

À partir des années 2000, les limites inhérentes à son architecture parallèle et partagée deviennent toutefois de plus en plus importantes. PCI Express adopte alors une architecture série point à point beaucoup plus évolutive et remplace progressivement PCI, PCI-X et AGP.

Même s'il est aujourd'hui considéré comme une technologie historique, le PCI demeure essentiel pour comprendre l'évolution des architectures matérielles du PC. De nombreux concepts introduits ou popularisés par PCI sont toujours présents dans PCI Express, faisant du PCI l'un des principaux liens technologiques entre les ordinateurs classiques des années 1990 et les architectures d'extension modernes.



Dernière mise à jour: Vendredi, le 31 janvier 2020