Section courante

A propos

Section administrative du site

PCI Express (PCIe)

PCI-SIG
Architecture

Introduction

Le PCI Express (Peripheral Component Interconnect Express), généralement abrégé PCIe ou PCI Express, est une architecture d'interconnexion série à haute vitesse destinée à relier le processeur et le chipset aux différents périphériques d'un ordinateur. Apparu au début des années 2000, il a progressivement remplacé trois technologies importantes du PC : le PCI conventionnel pour les cartes d'extension générales, le PCI-X dans de nombreux serveurs et l'AGP pour les cartes graphiques.

Contrairement au PCI conventionnel, dans lequel plusieurs périphériques peuvent partager un même bus parallèle, PCI Express repose sur des liaisons point à point. Chaque périphérique communique avec le contrôleur PCIe, appelé généralement Root Complex, au moyen d'une liaison dédiée. Cette organisation élimine une grande partie des problèmes de partage de bande passante rencontrés avec PCI et permet d'augmenter considérablement les fréquences de transmission.

Une liaison PCI Express est constituée d'une ou plusieurs voies, ou lanes. Les configurations les plus connues sont x1, x2, x4, x8 et x16. Chaque voie possède des chemins de transmission distincts pour chaque direction, permettant une communication Full Duplex : les données peuvent être envoyées et reçues simultanément. Une carte graphique utilise généralement une liaison x16, tandis qu'une carte réseau, un contrôleur de stockage ou un SSD NVMe peut employer une liaison x1, x4, x8 ou une autre largeur adaptée à ses besoins.

L'une des caractéristiques fondamentales de PCI Express est son évolutivité. La première génération fonctionne à 2,5 GT/s par voie. Les générations suivantes augmentent progressivement ce débit : 5 GT/s pour PCIe 2.0, 8 GT/s pour PCIe 3.0, 16 GT/s pour PCIe 4.0, 32 GT/s pour PCIe 5.0, 64 GT/s pour PCIe 6.0 et finalement 128 GT/s pour PCIe 7.0. Chaque génération augmente ainsi fortement la bande passante tout en conservant comme objectif la compatibilité avec les générations précédentes.

PCI Express ne sert d'ailleurs plus uniquement aux cartes d'extension traditionnelles. Il constitue aujourd'hui une interconnexion fondamentale des ordinateurs, serveurs et stations de travail. Il est notamment utilisé par les cartes graphiques, SSD NVMe, cartes réseau Ethernet, contrôleurs RAID, accélérateurs d'intelligence artificielle, cartes d'acquisition et de nombreux contrôleurs spécialisés.

Spécifications

Spécification Description
Nom complet Peripheral Component Interconnect Express
Abréviation PCIe / PCI Express
Organisme responsable PCI-SIG
Première génération PCI Express 1.x
Introduction Début des années 2000
Type Interconnexion série point à point
Transmission Série différentielle
Communication Full Duplex
Largeurs courantes x1, x2, x4, x8 et x16
Topologie Point à point, avec Root Complex et éventuellement commutateurs
PCIe 1.x 2,5 GT/s
PCIe 2.0 5 GT/s
PCIe 3.0 8 GT/s
PCIe 4.0 16 GT/s
PCIe 5.0 32 GT/s
PCIe 6.0 64 GT/s
PCIe 7.0 128 GT/s
Codage PCIe 1.x/2.x 8b/10b
Codage PCIe 3.0 à 5.0 128b/130b
PCIe 6.0 et 7.0 PAM4 et mode FLIT
Utilisations GPU, SSD NVMe, réseau, entreposage, accélérateurs, contrôleurs divers
Remplace principalement PCI, PCI-X et AGP

Les débits et méthodes de signalisation sont confirmés par les documents techniques du PCI-SIG.

Historique

À la fin des années 1990, les limitations du PCI conventionnel deviennent de plus en plus importantes.

Le PCI classique utilise une architecture :

Plusieurs périphériques doivent donc partager la bande passante du même bus.

Par exemple, un PCI 32 bits à 33 MHz dispose d'environ :

pour l'ensemble des périphériques partageant ce bus.

Les cartes graphiques nécessitent déjà davantage de bande passante, ce qui conduit Intel à introduire l'AGP en 1997. Cependant, AGP reste une interface spécialisée réservée essentiellement à la carte graphique.

L'industrie développe donc une nouvelle architecture capable de remplacer à terme PCI, PCI-X et AGP : PCI Express.

Architecture point à point

PCI Express abandonne l'architecture de bus parallèle partagé du PCI conventionnel.

Une organisation simplifiée peut être représentée ainsi :

Processeur / Root Complex

PCIe x16 → Carte graphique

Processeur / Root Complex

PCIe x4 → SSD NVMe

Root Complex / chipset

PCIe x1 → Carte réseau

Chaque liaison possède ainsi sa propre bande passante.

Des commutateurs PCIe (PCIe switches) peuvent également être employés afin de connecter plusieurs périphériques à une liaison en amont.

Les voies PCI Express

Une lane PCIe comprend deux paires différentielles :

Cela représente donc quatre conducteurs de signal principaux par voie.

Cette organisation permet une transmission simultanée :

TX →

et :

← RX

La communication est donc Full Duplex.

Largeur des liaisons

Plusieurs voies peuvent être regroupées.

Liaison Nombre de voies
PCIe x1 1
PCIe x2 2
PCIe x4 4
PCIe x8 8
PCIe x16 16

Une liaison x16 possède donc seize voies fonctionnant en parallèle au niveau logique, chacune utilisant une transmission série.

Il faut donc éviter de qualifier PCI Express de « bus parallèle x16 » : chaque voie est série, même lorsque plusieurs voies sont agrégées.

PCI Express x1

Le PCIe x1 est couramment utilisé pour les périphériques ne nécessitant pas énormément de bande passante :

Le connecteur est beaucoup plus court qu'un emplacement x16.

PCI Express x4

Le PCIe x4 offre quatre fois la bande passante d'une liaison x1 de même génération.

Il est notamment utilisé pour :

L'interface M.2 utilisée par de nombreux SSD NVMe transporte fréquemment jusqu'à quatre voies PCI Express.

PCI Express x8

Le PCIe x8 est principalement rencontré dans :

Un emplacement physiquement x16 peut également fonctionner électriquement en x8.

PCI Express x16

Le PCIe x16 est principalement connu comme l'interface utilisée par les cartes graphiques.

Il peut fournir une bande passante extrêmement élevée.

Avec PCIe 5.0, par exemple, une liaison x16 offre approximativement 63 Go/s dans chaque direction, avant prise en compte des différents niveaux de surcharge protocolaire au-delà du codage physique.

PCI Express 1.x

La première génération fonctionne à :

Elle utilise le codage :

Cela signifie que 8 bits de données sont représentés par 10 bits transmis au niveau de ce codage.

La bande passante utile liée à ce codage est donc approximativement :

Une liaison x16 offre environ :

soit environ 8 Go/s en additionnant les deux directions.

PCI Express 2.0

PCIe 2.0 double la vitesse :

Le codage 8b/10b est toujours utilisé.

La bande passante devient approximativement :

Une liaison x16 offre donc environ :

ou 16 Go/s bidirectionnels cumulés.

PCI Express 3.0

PCIe 3.0 apporte une modification particulièrement importante.

Le débit brut passe à :

mais le codage 8b/10b est remplacé par :

L'efficacité du codage augmente donc considérablement.

Une voie offre approximativement :

et une liaison x16 environ :

Le PCI-SIG explique précisément que l'abandon du codage 8b/10b permet à PCIe 3.0 de pratiquement doubler la bande passante de PCIe 2.0 malgré le passage de seulement 5 à 8 GT/s.

PCI Express 4.0

PCIe 4.0 double de nouveau le débit :

Il conserve le codage 128b/130b.

Une liaison x1 fournit approximativement :

et une liaison x16 environ :

La spécification PCI Express Base 4.0 a été publiée en 2017.

PCI Express 5.0

PCIe 5.0 atteint :

La bande passante théorique d'une voie approche :

et celle d'une liaison x16 :

La spécification PCI Express Base 5.0 a été publiée en 2019.

PCI Express 6.0

PCIe 6.0 représente une évolution technique plus importante.

Il atteint :

et introduit notamment :

La spécification PCI Express 6.0 a été publiée en 2022.

PCI Express 7.0

PCIe 7.0 double encore le débit brut :

Il conserve notamment :

Une configuration x16 peut fournir jusqu'à environ :

soit approximativement 256 Go/s par direction dans la présentation de bande passante du PCI-SIG.

PCIe 7.0 est donc actuellement la génération la plus récente de la spécification de base publiée par PCI-SIG.

Évolution des performances

Génération Année de la spécification Débit brut Codage / signalisation Bande passante x1 par direction, approximative
PCIe 1.x 2003 2,5 GT/s 8b/10b, NRZ 250 Mo/s
PCIe 2.0 2007 5 GT/s 8b/10b, NRZ 500 Mo/s
PCIe 3.0 2010 8 GT/s 128b/130b, NRZ 985 Mo/s
PCIe 4.0 2017 16 GT/s 128b/130b, NRZ 1,97 Go/s
PCIe 5.0 2019 32 GT/s 128b/130b, NRZ 3,94 Go/s
PCIe 6.0 2022 64 GT/s PAM4, FLIT ≈ 8 Go/s
PCIe 7.0 2025 128 GT/s PAM4, FLIT ≈ 16 Go/s

Les dates et taux de transfert ci-dessus correspondent à l'historique publié par PCI-SIG.

Une confusion fréquente consiste à considérer :

Ce n'est pas exact.

GT/s signifie :

ou milliards de transferts par seconde.

Le nombre de bits utiles transportés dépend ensuite de la méthode de signalisation et du codage employé.

Par exemple :

mais avec le codage 8b/10b, la bande passante utile après ce codage correspond à environ :

PCIe 3.0 améliore considérablement cette efficacité grâce au codage 128b/130b.

Structure en couches

L'architecture PCI Express est organisée principalement en trois couches :

La couche de transaction construit et interprète les paquets de transaction appelés :

Ces paquets servent notamment aux :

La couche liaison de données assure notamment la fiabilité de la communication entre deux composants directement reliés.

Elle intervient dans la détection de certaines erreurs et dans les mécanismes nécessaires au transfert fiable des paquets.

Physical Layer

La couche physique assure la transmission électrique réelle des informations.

Elle gère notamment :

Les spécifications de conformité PCI-SIG distinguent d'ailleurs les tests de couche physique de ceux concernant les couches Link et Transaction.

Root Complex

Le Root Complex constitue la racine de la hiérarchie PCI Express.

Il établit la connexion entre :

Sur les ordinateurs modernes, certaines lignes PCIe peuvent provenir directement du processeur, tandis que d'autres sont fournies par le chipset.

PCI Express Switch

Un PCIe Switch permet de connecter plusieurs périphériques à une liaison en amont.

Une architecture peut ainsi ressembler à :

Root Complex

PCIe Switch
↙ ↓ ↘
SSD - Réseau - Accélérateur

Le commutateur achemine les transactions vers le périphérique approprié.

Cette architecture est particulièrement importante dans les serveurs possédant un grand nombre de périphériques PCI Express.

Configuration des périphériques

PCI Express conserve une importante compatibilité logicielle avec PCI.

Les périphériques disposent notamment de :

PCI Express étend également les possibilités de l'espace de configuration afin de prendre en charge les nouvelles fonctionnalités du standard.

Cette continuité facilite considérablement la transition entre PCI et PCI Express.

Interruptions MSI et MSI-X

PCI Express utilise largement les interruptions :

Plutôt que de dépendre uniquement de lignes physiques d'interruption traditionnelles, un périphérique peut générer une interruption au moyen d'une transaction mémoire particulière.

MSI-X permet notamment aux périphériques complexes de disposer d'un nombre important de vecteurs d'interruption.

Cette caractéristique est particulièrement utile pour :

L'un des grands avantages de PCI Express est sa compatibilité entre générations.

Par exemple, une carte :

peut généralement fonctionner dans un emplacement :

mais elle fonctionnera au débit PCIe 3.0.

Inversement, une carte PCIe 4.0 peut généralement fonctionner dans une plateforme PCIe 3.0, mais sa liaison sera limitée à la génération négociée la plus élevée commune aux deux appareils.

PCI-SIG continue de faire de la rétrocompatibilité un objectif fondamental de PCI Express, y compris avec PCIe 7.0.

Compatibilité entre x1, x4, x8 et x16

La largeur physique et la largeur électrique ne sont pas nécessairement identiques.

Un connecteur peut être physiquement :

mais câblé électriquement :

ou :

C'est pourquoi certaines cartes mères comportent plusieurs emplacements ressemblant à des PCIe x16, alors que tous ne disposent pas réellement de seize voies.

Négociation de la liaison

Au démarrage, les deux extrémités de la connexion PCI Express négocient les caractéristiques de la liaison.

Cette procédure détermine notamment :

Ainsi, une carte et une carte mère de générations différentes peuvent généralement établir automatiquement une liaison compatible.

Cartes graphiques

PCI Express remplace progressivement l'AGP comme interface principale des cartes graphiques.

Les GPU modernes utilisent généralement un connecteur :

Les familles de cartes graphiques PCIe comprennent notamment les :

La bande passante disponible dépend de la génération PCIe et du nombre de voies effectivement utilisées.

SSD NVMe

PCI Express joue également un rôle fondamental dans les supports de stockage modernes.

Les SSD NVMe utilisent directement PCI Express au lieu de passer par SATA.

Une configuration très courante est :

Les SSD M.2 modernes peuvent ainsi employer :

Cette connexion directe permet des débits très supérieurs à ceux de SATA.

Gestion de l'énergie

PCI Express possède plusieurs mécanismes destinés à réduire la consommation électrique.

L'ASPM (Active State Power Management) permet notamment de placer une liaison dans différents états de faible consommation lorsqu'elle n'est pas activement utilisée.

Ces mécanismes sont particulièrement importants dans :

Les principaux avantages du PCI Express sont :

Inconvénients

PCI Express possède néanmoins certaines contraintes :

Comparaison avec PCI et AGP

Caractéristique PCI AGP PCI Express
Architecture Parallèle Parallèle Série
Topologie Bus partagé Liaison dédiée graphique Point à point
Full Duplex Non Non Oui
Utilisation Généraliste Graphique Généraliste
Carte graphique Oui Oui Oui
SSD NVMe Non Non Oui
Largeur adaptable 32/64 bits 32 bits x1 à x16 couramment
Bande passante par périphérique Partagée Dédiée Dédiée par liaison
Évolutivité moderne Faible Faible Très élevée

PCI Express contre PCI-X

Il ne faut surtout pas confondre :

et :

PCI-X est une évolution du PCI conventionnel conservant un bus parallèle partagé.

PCI Express utilise au contraire une architecture série point à point.

Le «X» de PCI-X signifie PCI eXtended et ne désigne donc pas PCI Express.

Utilisations

PCI Express est aujourd'hui utilisé pour une très grande variété de composants :

Il ne doit donc pas être considéré uniquement comme un «connecteur de carte graphique».

Héritage et importance

Le PCI Express constitue l'une des évolutions les plus importantes de l'architecture matérielle du PC depuis l'introduction du PCI au début des années 1990. Son passage d'un bus parallèle partagé à une architecture série point à point résout une grande partie des limitations qui empêchaient PCI et PCI-X de continuer à augmenter efficacement leurs performances.

Sa conception en voies permet d'adapter la bande passante aux besoins du périphérique : une petite carte peut fonctionner en x1 tandis qu'une carte graphique ou un accélérateur peut disposer de x16. Parallèlement, l'augmentation régulière de la vitesse par voie permet à PCI Express de rester pertinent sans modifier entièrement son modèle architectural à chaque génération.

PCI Express conserve également une continuité importante avec le PCI conventionnel au niveau logiciel. Les notions de Vendor ID, Device ID, Class Code, BAR et espace de configuration restent fondamentales, facilitant ainsi l'évolution des systèmes d'exploitation et des pilotes.

Avec les générations PCIe 6.0 et PCIe 7.0, la technologie a cependant dû évoluer profondément au niveau physique, notamment avec l'adoption de PAM4 et du mode FLIT. PCIe 7.0 atteint officiellement 128 GT/s et jusqu'à 512 Go/s de bande passante bidirectionnelle pour une liaison x16, tout en conservant l'objectif de rétrocompatibilité caractéristique de PCI Express.

Le PCI Express est ainsi passé du statut de successeur du PCI et de l'AGP à celui d'interconnexion générale à très haute vitesse, indispensable aux cartes graphiques, aux SSD NVMe, aux réseaux rapides, aux serveurs et aux accélérateurs modernes. Il constitue aujourd'hui l'une des principales infrastructures de communication interne des ordinateurs et des systèmes informatiques à hautes performances.



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