PCIe - Kasimashi/Systemes-embarques GitHub Wiki
Protocole PCI Express (PCIe)
Qu’est-ce que PCI Express ?
PCI Express (PCIe) est une interface d’extension interne moderne utilisée pour connecter des composants tels que cartes graphiques, SSD NVMe, cartes réseau et autres périphériques haute performance.
Elle remplace PCI et AGP en offrant plus de bande passante et une architecture point-à-point.
Pour PCIe réaliste, surtout Gen2/Gen3 et au-delà, il faut FPGA ou contrôleur PCIe dédié, pas un microcontrôleur standard. Le microcontrôleur peut seulement gérer la logique applicative derrière le PCIe, pas l’interface elle-même.
Qu’est-ce qu’une lane en PCI Express ?
Une lane (voie) en PCIe est l’unité fondamentale de transmission de données.
C’est un petit canal de communication bidirectionnel, composé de deux paires différentielles :
- 1 paire pour envoyer les données (TX+ / TX−)
- 1 paire pour recevoir les données (RX+ / RX−)
Chaque lane peut envoyer et recevoir en même temps : c’est du full-duplex. Une lane PCIe est donc toujours constituée de 4 fils
Architecture en lanes
Un lien PCIe est composé de voies appelées lanes : x1, x2, x4, x8, x16, x32.
Chaque lane comporte :
- un canal TX (émission)
- un canal RX (réception)
Plus il y a de lanes, plus la bande passante est élevée (x16 > x4 > x1).
Chaque lane reste 100% indépendante et transmet son propre flux série.
Générations et débits
| Génération | Débit par lane | Débit utile approx. | Codage |
|---|---|---|---|
| PCIe 1.0 | 2,5 GT/s | ~250 MB/s | 8b/10b |
| PCIe 2.0 | 5 GT/s | ~500 MB/s | 8b/10b |
| PCIe 3.0 | 8 GT/s | ~1 GB/s | 128b/130b |
| PCIe 4.0 | 16 GT/s | ~2 GB/s | 128b/130b |
| PCIe 5.0 | 32 GT/s | ~4 GB/s | 128b/130b |
| PCIe 6.0 | 64 GT/s | ~8 GB/s | PAM4 + FEC |
| PCIe 7.0 | 128 GT/s | ~16 GB/s | PAM4 (prévu) |
PCIe est rétrocompatible : une carte PCIe 4.0 fonctionne dans un slot 3.0 (à la vitesse 3.0).
Pile protocolaire
Physical Layer
- Transmission électrique ou optique
- Encodage 8b/10b (PCIe 1–2) ou 128b/130b (PCIe 3+)
Data Link Layer
- Gestion de la fiabilité : ACK/NAK
- Numéros de séquence
- CRC
Transaction Layer
- Transport des TLP (Transaction Layer Packets)
- Types de transactions : Memory Read/Write, I/O, MSI/MSI-X
Topologie
PCIe utilise une topologie en étoile avec des liens point-à-point :
- Root Complex (CPU / chipset)
- Switches PCIe
- Endpoints (périphériques PCIe)
Cette architecture supprime le bus partagé et élimine la contention.
Applications principales
- Cartes graphiques hautes performances
- SSD NVMe
- Cartes réseau 1/10/40/100 GbE
- Accélérateurs IA (GPU, FPGA, ASIC)
- Extensions Thunderbolt/USB4