Le bus PCI fait partie de ces technologies que beaucoup d'utilisateurs ont croisées sans les connaître : ce sont les fameux emplacements blancs alignés sur la carte mère des ordinateurs de bureau des années 1990 et 2000, dans lesquels on enfichait une carte son, une carte réseau, un modem ou une carte d'acquisition vidéo. Derrière ces fentes se cache une norme, le Peripheral Component Interconnect, littéralement « interconnexion de composants périphériques », qui définit à la fois la forme physique des connecteurs et les règles de dialogue entre les cartes d'extension et le reste de la machine. Mis au point par Intel au début des années 1990, le PCI a rapidement remplacé les bus plus anciens, lents et difficiles à configurer, et il a contribué à rendre l'ordinateur personnel modulaire et accessible : grâce à lui, ajouter une carte devenait une opération simple, reconnue automatiquement par le système. Aujourd'hui supplanté par le PCI Express, qui en a hérité le nom et une bonne partie des principes, il survit encore dans des équipements industriels et des machines anciennes. Cette définition explique ce qu'est un bus, comment le PCI organise les échanges de données, d'où il vient et pourquoi il a tant compté dans l'histoire de l'informatique.
Qu'est-ce qu'un bus PCI ? Définition
En informatique, un bus est un ensemble de lignes électriques partagées qui permettent à plusieurs composants d'échanger des informations, un peu comme une route commune empruntée par différents véhicules. Le bus PCI est un bus d'extension interne : il relie les cartes enfichées sur la carte mère au cœur de l'ordinateur, c'est-à-dire au processeur et à la mémoire vive, par l'intermédiaire d'un circuit de liaison appelé « pont » (bridge en anglais) intégré au jeu de puces de la carte mère. Lorsque le microprocesseur veut envoyer des données à une carte réseau ou lire les sons numérisés par une carte audio, la demande transite par ce pont puis circule sur les lignes du bus PCI jusqu'à la carte concernée. La norme ne se limite pas au connecteur : elle définit aussi un protocole, autrement dit les règles qui organisent qui a le droit de parler, à quel moment, à quelle adresse et à quelle vitesse. Dans sa version la plus répandue, le bus PCI transporte 32 bits à la fois, au rythme d'une horloge de 33 mégahertz (33 millions de cycles par seconde), ce qui lui donne un débit théorique d'environ 133 mégaoctets par seconde, partagé entre toutes les cartes installées.
Le bus PCI comme une route partagée
L'image la plus parlante pour comprendre le bus PCI est celle d'une route unique desservant plusieurs maisons : toutes les cartes sont branchées sur les mêmes fils, mais une seule à la fois peut « rouler » sur la chaussée. Pour éviter les collisions, un circuit appelé arbitre distribue le droit de parole : chaque carte qui veut transmettre lève la main en activant une ligne de demande, et l'arbitre lui accorde le passage à son tour. Une innovation importante du PCI est le bus mastering, c'est-à-dire la possibilité pour une carte de prendre elle-même l'initiative d'un échange, au lieu d'attendre que le processeur s'en charge. Associée à l'accès direct à la mémoire, souvent désigné par le sigle anglais DMA (Direct Memory Access), cette capacité permet par exemple à une carte réseau de déposer directement dans la mémoire vive les données reçues, sans mobiliser le processeur pour chaque octet. Celui-ci est ainsi libéré pour d'autres tâches, ce qui améliore nettement les performances lors des opérations gourmandes comme la lecture vidéo, les transferts réseau ou l'enregistrement audio. Cette architecture partagée a toutefois une contrepartie : plus on ajoute de cartes actives, plus elles se disputent la même bande passante, exactement comme une route qui s'engorge aux heures de pointe.
D'où vient le bus PCI ? Histoire d'un standard
Au début des années 1990, les ordinateurs personnels compatibles PC s'appuient encore largement sur le bus ISA (Industry Standard Architecture), hérité de l'IBM PC de 1981 et étendu à 16 bits en 1984. Ce bus est lent, et chaque carte doit souvent être configurée à la main à l'aide de petits cavaliers métalliques (les jumpers) ou d'interrupteurs, afin de lui attribuer une ligne d'interruption et une adresse qui n'entrent pas en conflit avec les autres. Des solutions intermédiaires apparaissent, comme l'EISA ou le VESA Local Bus destiné aux cartes graphiques, mais aucune ne s'impose durablement. C'est dans ce contexte qu'Intel conçoit, dans ses laboratoires de l'Oregon, une nouvelle norme de bus local indépendante du processeur. La première spécification du PCI est publiée en 1992, puis confiée à un groupement de constructeurs, le PCI Special Interest Group (PCI-SIG), chargé de la faire évoluer. Les grands fabricants de PC l'adoptent rapidement et Apple elle-même abandonne son propre bus, le NuBus, au profit du PCI dans ses Power Macintosh à partir du milieu des années 1990. L'arrivée de systèmes d'exploitation capables de gérer le Plug and Play, comme Windows 95, achève d'installer le PCI comme référence des ordinateurs de bureau.
| Période | Étape | Ce qui change |
|---|---|---|
| 1981 à 1984 | Bus ISA de l'IBM PC (8 puis 16 bits) | Premier standard d'extension, lent et configuré à la main |
| Début des années 1990 | EISA, VESA Local Bus | Tentatives d'accélération, sans succès durable |
| 1992 à 1993 | Publication du PCI par Intel, puis du PCI 2.0 | Bus 32 bits à 33 MHz, configuration automatique |
| Milieu des années 1990 | PCI 2.1, adoption généralisée | Fréquence de 66 MHz possible, PCI chez Apple, Plug and Play sous Windows 95 |
| Fin des années 1990 | AGP, PCI-X, Mini PCI | Port dédié aux cartes graphiques, version serveurs, format pour portables |
| 2002 à 2004 | PCI Express | Liaisons série point à point, arrivée dans les PC grand public |
| Années 2010 | Disparition progressive du PCI classique | Le PCIe devient la norme, le PCI subsiste dans l'industrie |
Du PCI au PCI Express
Le succès du bus PCI a fini par révéler ses limites. Les cartes graphiques, devenues très exigeantes avec l'essor des jeux en trois dimensions, ont été les premières à le quitter : dès la fin des années 1990, un port spécialisé, l'AGP (Accelerated Graphics Port), leur offre une liaison directe plus rapide. Pour les serveurs, plusieurs constructeurs développent le PCI-X, une version élargie à 64 bits et cadencée plus haut, capable de dépasser le gigaoctet par seconde. Mais la vraie rupture vient du PCI Express, souvent abrégé en PCIe, dont la spécification est publiée au début des années 2000 et qui arrive dans les ordinateurs grand public vers 2004. Malgré son nom, il ne s'agit pas d'une simple accélération du PCI : le PCIe abandonne le bus parallèle partagé au profit de liaisons série point à point, chaque carte disposant de sa propre connexion, composée d'une ou plusieurs « voies » (les lanes) capables d'envoyer et de recevoir en même temps. Il conserve en revanche la logique de configuration et l'organisation logicielle du PCI, ce qui a permis aux systèmes d'exploitation et aux pilotes de passer de l'un à l'autre sans tout réinventer. Les générations successives du PCIe ont depuis multiplié les débits, au point de servir aujourd'hui aux cartes graphiques comme aux disques SSD les plus rapides.
Comment fonctionne un bus PCI ?
Techniquement, le bus PCI est un bus parallèle et synchrone. Parallèle, parce qu'il transmet plusieurs bits en même temps sur des fils côte à côte (32 dans la version standard, 64 dans certaines versions professionnelles) ; synchrone, parce que tous les échanges sont cadencés par un même signal d'horloge, une sorte de métronome commun à toutes les cartes. Il est également multiplexé : pour économiser des broches sur les connecteurs, les mêmes lignes servent tantôt à transmettre une adresse, tantôt à transmettre des données, selon le moment de l'échange. Autour de ces lignes principales, notées AD dans la documentation technique, le bus comporte des lignes de commande qui indiquent le type d'opération (lecture ou écriture, mémoire ou entrées-sorties), des signaux de contrôle qui marquent le début et la fin d'une transaction, une ligne de parité pour détecter certaines erreurs de transmission, une ligne de réinitialisation et des lignes de demande et d'attribution du bus reliées à l'arbitre. Tous les périphériques écoutent en permanence ces signaux, mais seul celui qui est concerné par l'adresse annoncée répond. Ce fonctionnement simple et bien documenté explique en partie la grande diffusion du PCI, y compris dans l'enseignement de l'électronique.
Une transaction PCI en quatre temps
Chaque échange sur le bus PCI met en relation un initiateur, qui demande l'opération (le processeur via le pont, ou une carte en bus mastering), et une cible, qui y répond. La transaction commence par l'arbitrage : l'initiateur demande le bus et attend que l'arbitre le lui attribue. Vient ensuite la phase d'adresse, pendant laquelle il place sur les lignes l'adresse visée et active un signal indiquant le début de l'échange ; la carte qui reconnaît cette adresse comme la sienne se signale alors. Suit la phase de données, durant laquelle les informations circulent dans un sens ou dans l'autre, au rythme de l'horloge. Deux signaux, l'un indiquant que l'initiateur est prêt et l'autre que la cible est prête, garantissent qu'aucune donnée n'est envoyée tant que les deux parties ne peuvent pas la traiter : si l'une d'elles est trop lente, le bus insère des cycles d'attente. Le PCI autorise en outre les transferts en rafale (burst), où une seule adresse est suivie de nombreuses données consécutives, ce qui améliore beaucoup l'efficacité. La transaction se termine lorsque l'initiateur relâche le signal de début, libérant le bus pour la carte suivante.
Configuration automatique et Plug and Play
L'une des grandes avancées du bus PCI réside dans sa gestion automatique des cartes. Chaque périphérique PCI possède un petit ensemble de registres appelé espace de configuration, dans lequel figurent notamment un identifiant du fabricant et un identifiant du modèle. Au démarrage, le micrologiciel de la carte mère (le BIOS, puis plus tard l'UEFI) ou le système d'exploitation parcourt tous les emplacements, interroge ces registres et découvre ainsi quelles cartes sont présentes. Il leur attribue ensuite les ressources dont elles ont besoin : des plages d'adresses en mémoire ou en entrées-sorties, ainsi qu'une ligne d'interruption, ce canal par lequel une carte signale au processeur qu'un événement mérite son attention (un paquet réseau reçu, un tampon audio à remplir). Enfin, le système charge le pilote correspondant aux identifiants trouvés. Cette mécanique est à la base du Plug and Play, « brancher et utiliser », qui a mis fin aux manipulations de cavaliers et aux conflits d'interruptions si fréquents à l'époque de l'ISA. Pour l'utilisateur, la différence était considérable : installer une nouvelle carte se résumait désormais à l'enficher, à redémarrer et, au besoin, à fournir le pilote demandé par le système.
Quels sont les différents types de bus PCI ?
Sous le nom de PCI se cachent en réalité plusieurs déclinaisons, apparues pour répondre à des besoins différents. Le PCI standard des ordinateurs de bureau fonctionne en 32 bits à 33 MHz ; ses premières versions utilisaient une alimentation de 5 volts, puis le 3,3 volts s'est répandu, les cartes et les connecteurs comportant des encoches, appelées détrompeurs, pour éviter de brancher une carte dans un emplacement incompatible. Les versions 64 bits et 66 MHz ont surtout équipé les serveurs et les stations de travail. Le PCI-X a prolongé cette lignée professionnelle avec des fréquences plus élevées. Le Mini PCI et ses dérivés ont adapté la norme aux ordinateurs portables, où l'on y logeait par exemple les cartes Wi-Fi. Le monde industriel a développé ses propres formats robustes fondés sur le PCI, comme le CompactPCI ou le PC/104-Plus, utilisés dans des automates et des systèmes embarqués. Enfin, le PCI Express a pris le relais dans tous les ordinateurs récents. Le tableau ci-dessous résume les principales différences, avec des débits théoriques donnés à titre indicatif.
| Variante | Architecture | Débit théorique indicatif | Usage typique |
|---|---|---|---|
| PCI standard | Parallèle partagé, 32 bits, 33 MHz | Environ 133 Mo/s pour tout le bus | Cartes son, réseau, modems des PC de bureau |
| PCI 64 bits / 66 MHz | Parallèle partagé, élargi et accéléré | Jusqu'à environ 533 Mo/s | Serveurs et stations de travail |
| PCI-X | Parallèle 64 bits, fréquences plus élevées | Au-delà de 1 Go/s | Contrôleurs de stockage et réseau des serveurs |
| Mini PCI | PCI au format réduit | Comparable au PCI standard | Cartes Wi-Fi et modems des portables |
| PCI Express | Liaisons série point à point, par voies | Plusieurs Go/s, selon la génération et le nombre de voies | Cartes graphiques, SSD, cartes réseau actuelles |
Pourquoi le bus PCI a-t-il marqué l'histoire de l'informatique ?
Le bus PCI a été bien plus qu'un progrès technique : il a changé la manière dont les ordinateurs étaient conçus, vendus et utilisés. En fédérant les constructeurs autour d'une interface universelle, il a permis à un fabricant de produire une carte son, vidéo ou réseau en sachant qu'elle fonctionnerait dans une très grande variété de machines, quel que soit le fabricant de la carte mère. Cette standardisation a stimulé un marché foisonnant de cartes d'extension, ouvert la porte à de nombreuses petites entreprises spécialisées et fait baisser les prix, contribuant à la démocratisation de l'informatique personnelle. Elle a aussi encouragé la personnalisation des ordinateurs : chacun pouvait composer une machine adaptée à ses besoins, pour le jeu, la musique assistée par ordinateur, le montage vidéo ou la bureautique, une logique modulaire que l'on retrouve aujourd'hui dans les PC assemblés. Le PCI a enfin joué un rôle pédagogique notable, car sa documentation et sa logique relativement simples en ont fait pendant longtemps un sujet d'étude classique dans les formations en électronique et en informatique, où l'on apprenait à travers lui le fonctionnement d'un bus, des interruptions et des pilotes. Son héritage reste visible dans le PCI Express, qui en a conservé l'organisation logique et l'esprit d'ouverture.
Où trouve-t-on encore du bus PCI aujourd'hui ?
Dans les ordinateurs récents, les emplacements PCI classiques ont presque entièrement disparu au profit des connecteurs PCIe, plus petits et beaucoup plus rapides. On rencontre pourtant encore le vieux bus dans plusieurs situations. Certaines cartes mères destinées aux usages professionnels conservent un ou deux emplacements PCI pour accueillir des cartes anciennes coûteuses ou difficiles à remplacer : cartes d'acquisition de laboratoire, interfaces de pilotage de machines-outils, cartes de communication industrielle ou équipements audio professionnels. Les formats industriels dérivés du PCI restent présents dans des automates, des bancs de mesure ou des systèmes embarqués dont la durée de vie se compte en décennies. Les amateurs de rétro-informatique, enfin, recherchent ces cartes pour faire revivre les ordinateurs des années 1990. Lorsqu'on doit malgré tout utiliser une carte PCI sur une machine moderne, il existe des adaptateurs et des châssis d'extension, avec des résultats variables selon les pilotes disponibles. Pour comprendre le matériel actuel, il est utile de retenir que les principes posés par le PCI irriguent toujours les connexions internes, à commencer par celle du composant le plus gourmand en bande passante, le processeur graphique, généralement relié à la carte mère par un port PCI Express à seize voies.