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 :
- parallèle + partagée
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 :
- 133 Mo/s
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 :
- une paire pour transmettre ;
- une paire pour recevoir.
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 :
- cartes son ;
- cartes Wi-Fi ;
- cartes Bluetooth ;
- contrôleurs USB ;
- cartes réseau ;
- contrôleurs série ;
- cartes d'acquisition simples.
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 :
- SSD NVMe ;
- contrôleurs RAID ;
- cartes réseau rapides ;
- adaptateurs d'entreposage.
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 :
- serveurs ;
- cartes réseau haut débit ;
- contrôleurs RAID ;
- accélérateurs ;
- certaines cartes graphiques.
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 à :
- 2,5 GT/s par voie
Elle utilise le codage :
- 8b/10b
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 :
- 250 Mo/s par voie et par direction
Une liaison x16 offre environ :
- 4 Go/s par direction
soit environ 8 Go/s en additionnant les deux directions.
PCI Express 2.0
PCIe 2.0 double la vitesse :
- 5 GT/s
Le codage 8b/10b est toujours utilisé.
La bande passante devient approximativement :
- 500 Mo/s par voie et par direction
Une liaison x16 offre donc environ :
- 8 Go/s par direction
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 à :
- 8 GT/s
mais le codage 8b/10b est remplacé par :
- 128b/130b
L'efficacité du codage augmente donc considérablement.
Une voie offre approximativement :
- 985 Mo/s par direction
et une liaison x16 environ :
- 15,75 Go/s par direction.
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 :
- 16 GT/s
Il conserve le codage 128b/130b.
Une liaison x1 fournit approximativement :
- 1,97 Go/s par direction
et une liaison x16 environ :
- 31,5 Go/s par direction.
La spécification PCI Express Base 4.0 a été publiée en 2017.
PCI Express 5.0
PCIe 5.0 atteint :
- 32 GT/s
La bande passante théorique d'une voie approche :
- 3,94 Go/s par direction
et celle d'une liaison x16 :
- 63 Go/s par direction.
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 :
- 64 GT/s
et introduit notamment :
- la signalisation PAM4 (Pulse Amplitude Modulation à quatre niveaux) ;
- le fonctionnement basé sur des FLIT (Flow Control Units) ;
- la correction d'erreurs FEC (Forward Error Correction) ;
- des mécanismes destinés à maintenir une faible latence.
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 :
- 128 GT/s
Il conserve notamment :
- PAM4 ;
- le mode FLIT ;
- la compatibilité avec les générations précédentes.
Une configuration x16 peut fournir jusqu'à environ :
- 512 Go/s bidirectionnels cumulés
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.
- GT/s et Go/s
Une confusion fréquente consiste à considérer :
- GT/s = Go/s
Ce n'est pas exact.
GT/s signifie :
- GigaTransfers per second
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 :
- PCIe 2.0 = 5 GT/s
mais avec le codage 8b/10b, la bande passante utile après ce codage correspond à environ :
- 500 Mo/s par voie et par direction.
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 :
- Transaction Layer ;
- Data Link Layer ;
- Physical Layer.
- Transaction Layer
La couche de transaction construit et interprète les paquets de transaction appelés :
- TLP (Transaction Layer Packets).
Ces paquets servent notamment aux :
- lectures mémoire ;
- écritures mémoire ;
- accès de configuration ;
- messages.
- Data Link Layer
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 voies ;
- la signalisation ;
- la sérialisation ;
- la désérialisation ;
- l'entraînement (training) de la liaison.
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 :
- processeur/mémoire ;
- architecture PCI Express ;
- périphériques PCIe.
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 :
- Vendor ID ;
- Device ID ;
- Class Code ;
- BAR (Base Address Registers) ;
- registres de commande et d'état.
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 :
- MSI (Message Signaled Interrupts) ;
- MSI-X.
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 :
- cartes réseau multiqueues ;
- SSD NVMe ;
- contrôleurs de stockage ;
- accélérateurs.
- Compatibilité
L'un des grands avantages de PCI Express est sa compatibilité entre générations.
Par exemple, une carte :
- PCIe 3.0
peut généralement fonctionner dans un emplacement :
- PCIe 4.0
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 :
- x16
mais câblé électriquement :
- x8
ou :
-
x4.
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 :
- le nombre de voies utilisables ;
- la vitesse maximale commune ;
- différents paramètres de communication.
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 :
- PCIe x16
Les familles de cartes graphiques PCIe comprennent notamment les :
- NVIDIA GeForce ;
- NVIDIA RTX ;
- NVIDIA Quadro / RTX professionnelles ;
- AMD Radeon ;
- AMD Radeon Pro ;
- Intel Arc.
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 :
- PCIe x4
Les SSD M.2 modernes peuvent ainsi employer :
- PCIe 3.0 x4 ;
- PCIe 4.0 x4 ;
- PCIe 5.0 x4.
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 :
- ordinateurs portables ;
- serveurs ;
- appareils embarqués ;
- systèmes économes en énergie.
- Avantages
Les principaux avantages du PCI Express sont :
- architecture série à haute vitesse ;
- connexion point à point ;
- fonctionnement Full Duplex ;
- bande passante dédiée par liaison ;
- largeur adaptable avec x1, x2, x4, x8 et x16 ;
- très grande évolutivité ;
- compatibilité entre générations ;
- compatibilité logicielle héritée du PCI ;
- faible latence ;
- gestion avancée des interruptions ;
- gestion de l'énergie ;
- utilisation possible aussi bien pour les GPU que pour le stockage, le réseau ou les accélérateurs.
Inconvénients
PCI Express possède néanmoins certaines contraintes :
- complexité électrique croissante à très haute vitesse ;
- exigences plus strictes concernant les circuits imprimés ;
- nécessité éventuelle de retimers sur certaines longues liaisons rapides ;
- nombre de voies PCIe limité par le processeur et le chipset ;
- partage possible de certaines voies entre connecteurs ou périphériques ;
- performances d'un emplacement pouvant être inférieures à sa largeur physique apparente.
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 :
- PCI-X
et :
- PCI Express (PCIe).
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 :
- cartes graphiques ;
- SSD NVMe ;
- cartes réseau Ethernet ;
- cartes Wi-Fi ;
- contrôleurs RAID ;
- cartes son ;
- cartes USB ;
- cartes Thunderbolt ;
- cartes d'acquisition vidéo ;
- accélérateurs d'intelligence artificielle ;
- FPGA ;
- contrôleurs d'entreposage ;
- cartes professionnelles spécialisées.
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.