Connexion Premium

#Nextquick Comment fonctionne le PCI Express, qui double ses débits à chaque génération

NEXTe >> PCIe

#Nextquick Comment fonctionne le PCI Express, qui double ses débits à chaque génération

Illustration : Flock

Vous êtes-vous déjà demandé d’où venait le PCI Express (PCIe) utilisé par les cartes graphiques et comment il faisait pour doubler ses débits à chaque génération ? Oui, alors Next vous apporte les réponses. Non ? Parfait, c’est l’occasion d’apprendre de nouvelles choses !

Le 06 mars à 10h30

Le PCIe comme nous avons l’habitude de l’appeler, a bien des noms. La version longue : Peripheral Component Interconnect Express. Version plus courte : PCI Express. On parle aussi de PCI-E ou PCIe en abrégé. Le PCIe est une norme de bus d’extension, permettant de connecter des cartes d’extension sur des cartes mères.

Petite histoire du PCI Express : Arapahoe (Intel) >> 3GIO >> PCIe

Le PCIe est une évolution du PCI classique et remplace aussi l’AGP qui était utilisé par des cartes graphiques (et encore avant les bus VLB et (E)ISA). Le PCIe est né au début des années 2000, d’abord lancé par Intel sous le nom de code projet Arapahoe puis sous l’appellation 3GIO pour Third Generation I/O. Il est ensuite repris par le PCI-SIG, avec SIG pour Special Interest Group, encore aujourd’hui en charge du PCIe. Au conseil d’administration, on retrouve du beau monde : AMD, ARM, Dell, IBM, Intel, Keysight, NVIDIA, Qualcomm et Synopsys.

En 2002, le PCI Express était né. Aujourd’hui, c’est la 8ᵉ génération de PCIe qui est en travaux. Ce bus d’extension est présent sur toutes les cartes mères, en version 5.0 pour les plus récentes. De 8 Go/s en bi-directionnel (4 Go dans chaque sens, descendant et montant), il est maintenant question de… 1 024 Go/s, soit 128x plus en plus de deux décennies. Pour en arriver là, plusieurs évolutions ont été nécessaires.

Voici un rapide état des lieux des dates et des débits (approximatifs) de chaque génération :

Il reste 83% de l'article à découvrir.

Cadenas en colère - Contenu premium

Soutenez un journalisme indépendant,
libre de ton, sans pub et sans reproche.

Accédez en illimité aux articles

Profitez d'un média expert et unique

Intégrez la communauté et prenez part aux débats

Partagez des articles premium à vos contacts

Commentaires (22)

votre avatar
"abcdeifghj" :keskidit:
votre avatar
Ils utilisent le bêtabet, la nouvelle itération :ane:
votre avatar
Il y aura du PCIe 6.0 sur les cartes mère quand il y aura la DDR6 je suppose ?
votre avatar
On voit rapidement arriver le problème : pour 8 bits, il faut en envoyer 10. Il y a des pertes.
En fait, non, il n'y a pas toujours de perte puisque cela permet de transmettre l'horloge sans avoir une ligne réservée à cet usage.

Si l'on utilisait par exemple une ligne pour transmettre l'horloge, pour 4 lignes il resterait 3 lignes pour transmettre les données ce qui ferait une efficacité de 3/4 = 0,75 alors qu'elle est de 0,8 avec ce codage.

Par contre, pour 8 lignes dont une horloge, ça ferait bien une perte parce que l'efficacité serait dans ce cas de 7/8 = 0,875.
votre avatar
C'est pas aussi pour la correction d'erreur ces 2bits supplémentaires ?
votre avatar
Pas de ce que j'ai lu dans l'article Wikipédia en lien. C'est vraiment pour "répartir" les 0 et les 1 afin de reconstituer l'horloge. Cela permet cependant de détecter une erreur de transmission.
votre avatar
En fait, il y a une horloge indépendante en PCIe mais le codage 8b/10b permet effectivement de la retrouver.

L'encodage 8b/10b et les autres encodages de ce type, ont d'autres intérêts:

  • la présence d'une dizaine de symboles de contrôle dont un « en or » qui permet de repérer le début d'une trame même si la transmission ne comporte aucun silence ;

  • l'équilibrage des 1 et des 0 permet la transmission via des transformateurs de lignes ou des condensateurs en série car la tension moyenne est nulle ;

  • la limitation à 3 bits successif maximum au même état permet :


- de limiter la bande passante, ce qui est très intéressant électriquement pour préserver l'intégrité du signal ;
- si la transmission est optique, cela permet un bon fonctionnement du contrôle automatique de gain à la réception.
votre avatar
Ce n'est pas comme si le nombre de broches était critique sur un port PCIe. Ce qui est critique, c'est réellement le nombre de lignes qui vont jusqu'au CPU, car c'est une ressource rare sur le CPU. Mais des broches dédiées à l'horloge, ça ne coûte presque rien.

Il y a plein de modes différents pour gérer l'horloge en PCIe, mais il y a bel et bien une paire différentielle REFCLK pour transmettre l'horloge.
votre avatar
Pour les électroniciens.

Quelle serait le débit (donc un fréquence) maximal pour ces ports avec les dispositif actuel ?

  • A quel moment ça ne passe plus. Le tuyau ne peut faire mieux ?

  • A quel moment la chose sera perturbée ? problème radio etc...

votre avatar
Une connexion optique est envisagée a partir du pci express 8 il me semble.
votre avatar
Il faut donc convertir Elec/optique... Ca prend du temps.
votre avatar
Attention, il n'y a pas d'équivalence directe entre le débit et la fréquence. Avec une modulation adaptée (PAM-4 ici), on peut encoder plusieurs bits par cycle.
votre avatar
Je sais. C'est pour cela que je pose les deux questions. On peut avoir un débit qui aura son 'aura' radio sur les lignes (donc antennes...). Et donc ses préférences. A mesure que les débits augmentent on divise les puissances aussi. Il y aura bien un moment ou une limite sera approchée. Peut être de trop près.

C'était un gros problèmes des machines 8/16bits d'il y a 30 ans (ST/Amiga). Les fabricants blindaient en entier avec du bon vieux métal.
votre avatar
A l'époque des machines 8/16 bits mais aussi plus proche de nous du PCI, les signaux étaient en « single ended » donc pour tout signal, le retour se fait via un plan de masse et la boucle créée est une antenne. En plus de l'émission, ces retours multiples courants qui circulent dans les plans cuivre causent des problèmes locaux car le 0 V n'y est pas le même partout.

Les signaux différentiels utilisés ont ce mérite de réduire cette boucle à la paire différentielle. Les deux fils cheminent en // et réduisent de fait l'effet d'antenne. Le courant d'une liaison ne circule que dans la paire donc il n'y a plus de courants haute fréquence qui circulent dans les plans.

Il y a aussi une amélioration du côté de l'adaptation d'impédance car, aux grandes vitesses, les distances auxquelles ces adaptation sont nécessaires voire incontournables sont très courtes.
La première liaison interne adaptée a été LVDS, qui a servi de base pour SATA ou PCIe, entre autres. Il en existait déjà pour les liaisons externe longues comme RS485 et RS422. Toutes ces liaisons sont différentielles.

L'article ne le mentionne pas mais les tensions utilisées sur ces liaisons sont de plus en plus basses, en premier lieu pour réduire l'énergie consommée et augmenter la vitesse. La conséquence est également une amélioration en terme d'émission et une meilleure tenue aux agressions en mode différentiel.
votre avatar
On a régulièrement l'impression d'atteindre des limites physiques qui sont finalement repoussées par de nouveaux matériaux ou techniques.

Les pertes dans les PCB sont un des plus gros problèmes aujourd'hui, sur une piste PCIe 5 de 15cm on pert facilement 90℅ de l'énergie à l'arrivée avec des matériaux "courants". On peut utiliser des matériaux plus performants et plus chers mais ça n'est pas forcément accessible pour toutes les applications.
Mais si demain un fabricant sort un matériaux miracle et pas cher ça débloquera de nouveaux débits. En attendant on dépense des sous et des watts dans les puces pour compenser les pertes.

De même, plus le debit augmente plus la précision de construction des pistes doit être impeccables. Faire des trous non débouchant est complètement standard aujourd'hui ce qui a permis de dépasser les 5Gbps, mais seules quelques entreprises dans le monde savent graver une paire de conducteur dans le même trou ce qui semble nécessaire pour passer les 100Gbps en NRZ (en tous cas d'après un commercial, je n'ai pas d'expérience à ces débits).

La rugosité du cuivre est aussi un problème mais nos talentueux chimistes vont bien nous trouver une méthode magique pour lisser tout ça avec de l'IA 😅

Tout ça pour dire qu'il y a encore plein de marges de manœuvre pour continuer à monter en débit, c'est surtout une question de sous.
La "perturbation" "radio" n'est plus vraiment un problème aujourd'hui ça n'est pas un facteur limitant
votre avatar
Une question probablement bête, mais à quoi cela sert ? Pourquoi de tels débits ?
Un petit schéma avec des ordres de grandeurs pourrait être intéressant. Il permettrait de contextualiser les débits avec les autres composants d'un PC (RAM, processeur, disques etc..)

Merci par avance 🙏
votre avatar
Tu as des périphériques qui veulent avoir le débit de transfert maximum possible (GPU, cartes InfiniBand par exemple), donc l'ordre de grandeur du débit du PCIe suit à peu près le débit de la mémoire (à la louche).
votre avatar
Les SSD sont sur ports PCI-e (le M2 est un pci-e x4).

En grand public:
* Avec des SSD qui ont des caches de type RAM, ils peuvent assurer des débits proches de la RAM par exemple.
* Par ailleurs, les cartes peuvent communiquer entre elles sans passer par le CPU (exemple: DirectStorage permet au GPU de lire directement le SSD)
* Les écrans par USB-C seraient difficiles à implémenter sans un BUS très conséquent: un écran externe 4K 120Hz, c'est 25Gb/s
* Plus tu transfères vite, plus tu passes à autre chose

Enfin, comme le dit @alex.d. : en pro, certaines interconnections nécessitent une bande passante très rapide (exemple: interconnection de serveurs physiques qui hébergent et font migrer des VM d'un serveur à l'autre - grosses BDD et stockage - duplication ede stockage dans ddes salles différentes.
votre avatar
HDD : ~ 120 Mo/s
SDD : Dépend de la norme PCIe pour NVme sinon ~ 500 Mo/s en SATA III
GPU : cf. PCIe
DDR5 : ~ 70 Go/s

HBM : jusqu'à 2To/s
Cache CPU : entre 10 - 30 To/s selon modèle, configuration, usage....
votre avatar
Pour les nvme en pcie4 x4 ils saturent normalement tous la bande passante dispo de 8Go/s
pour la DDR5 la 4800 fait 75Go/s, de la 6400 fait 100Go/s et de la 8000 fait 125Go/s.
pour les caches CPU grand public c'est plutôt 2-5To/s il me semble

ça peut aussi être intéressant d'ajouter l'USB, l'USB2 high speed est à 60Mo/s.
L'USB3.2 gen2 x2 est à 2.5Go/s, le USB4 gen3 est à 5Go/s et le tout dernier USB4 gen4 est à 10Go/s qui est lui aussi passé en encodage multi niveau PAM3.

L'HDMI 2.1 est à 8Go/s.

Une source vidéo sans compression à 4k120 et 10bits par couleur c'est 3.8Go/s.
votre avatar
ISA8 -> ISA16 -> VLB -> PCI32 -> PCI64 -> AGP -> PCIe :D
votre avatar
Point important le PCIe6.0 viens seulement de passer en version finale fin de l'année passée donc il faudra attendre encore plusieurs années avant de voir débarqué les 1er cpu, carte mère et nvme pcie6. Les nvme les + rapide en pcie5 x4 n'arrivent pas encore à saturer le bus qui permet un débit de 16go/s alors que le plus rapide est autour de 14.8go/s à l'heure actuelle. Je ne les vois pas arriver avant 2028-2030. idem les gpu n'utilisent pas toutes la bande passante dispo en x16 qu'ils sortent leur gpu en x8 maintenant pour réduire les coûts.

Et le PCIe7 et 8 ne sont pas encore définitif, c'est pour le moment uniquement spéculatif il n'y rien qui permet de faire de tel débit à l'heure actuelle sur des pistes de cuivre il va falloir vraiment un gap technologique pour attendre ces débits à moins de passer en techno optique enfin ce n'est pas pour tout de suite. Rien que le principe d'avoir un connecteur avec lame ressort faisant contact sur une piste cuivre dorée perturbe déjà quasi trop le signal, on le voit sur la ram avec le passage en cudimm pour raccourcir la pin qui faisait à elle seule antenne. Pour pcie7 il faudra aussi à mon avis d'autres connecteurs probablement raccourci comme pour cudimm.