PCI Express

PCI Express
Page d'aide sur l'homonymie À ne pas confondre avec le port PCI-X
Port PCI Express (de haut en bas : ×4, ×16, ×1 et ×16), comparé au traditionnel Port PCI 32-bit (en bas)

Le PCI Express, abrégé PCI-E ou PCIe (anciennement 3GIO, 3rd Generation Input/Output) est un standard développé par Intel et introduit en 2004. Il spécifie un bus local série (« bus PCI express ») et un connecteur qui sert à connecter des cartes d’extension sur la carte mère d’un ordinateur. Il est destiné à remplacer tous les connecteurs d’extension d’un PC, dont le PCI et l’AGP.

Sommaire

Une évolution du PCI

Un avantage du PCI Express est d’être dérivé de la norme PCI (Peripheral Component Interconnect), ce qui permet aux constructeurs d’adapter simplement leurs cartes d’extension existantes, puisque seule la couche matérielle est à modifier. D’autre part, il est suffisamment rapide pour pouvoir remplacer non seulement le PCI classique mais aussi l’AGP, un port rapide pour cartes graphiques. Il serait même envisagé dans l’avenir d’y connecter des périphériques externes.

Contrairement au PCI qui est relié au southbridge de la carte mère, le PCI Express est souvent disponible à la fois au niveau du northbridge et du southbridge, il a même été récemment integré à certains microprocesseurs.

Alors que le PCI utilise un unique bus de largeur 32 bits bidirectionnel alterné (half duplex) pour l’ensemble des périphériques, le PCI Express utilise une interface série (de largeur 1 bit) à base de lignes bidirectionnelles. On pourra ainsi parler d’une carte mère possédant 20 lignes PCIe. Une ligne permet théoriquement des échanges full duplex à 250 Mo/s pour la version 1.1 du protocole. Les différents périphériques communiquent alors par échange de paquets et l’arbitrage du bus PCI est remplacé par un commutateur. Le principe de fonctionnement est semblable à de la commutation de paquets selon un modèle à quatre couches :

  • couche logicielle : codage/décodage des paquets de données.
  • couche transaction : rajout/suppression d’un en-tête de début et d’un en-tête de séquencement ou de numérotation du paquet.
  • couche liaison : rajout/suppression d’un code de correction d’erreur (contrôle de redondance cyclique).
  • couche physique : transmission du paquet (transmission série « point à point »).

On parle de ports PCIe ×1, ×2, ×4, ×8, ×16 et ×32 pour différencier les ports en fonction du nombre de connecteurs de ligne dont ils disposent (respectivement 1, 2, 4, 8, 16 ou 32 lignes maximum). Un port ×32 permet d'atteindre en théorie un débit de 8 Go/s, soit 4 fois le débit des ports AGP[1].

Un port ×16 par exemple peut n’être relié qu’à 8 lignes PCIe ; il devra tout de même avoir un apport de puissance électrique nécessaire aux cartes ×16. Une carte d’extension ×16 fonctionnera sur ce port (mais probablement avec des performances non optimales), car le protocole PCIe prévoit la négociation mutuelle du nombre de lignes maximum supportées par les deux entités en relation. De même, une carte (exemple : ×1) peut être connectée et fonctionnera correctement sur un port plus grand (exemple : ×1, ×2, …, ×32)....

En 2007 est apparu la deuxième génération de PCIe : gen 2.0 Cette version permet, entre autres, de passer le débit de 250 Mo/sec à 500 Mo/sec par sens par lien. (le débit de la première génération gen 1.0 est doublé).

En 2010, PCI-SIG publie le cahier des charges du PCIe : gen 3.0. Le débit sera doublé 1 000 Mo/sec grâce à une augmentation de 60% de la fréquence qui est maintenant de 8GHz contre 5GHz pour la gen 2.0 mais aussi par un encodage 128 bits/130 bits. Au lieu de consommer 20 % du débit pour gen 2.0, cet encodage ne fait plus perdre que 1,6 % de la bande passante totale. Les premiers périphériques en PCIe 3.0 devraient arriver mi-2011.

Les bases de PCIe

Deux liens différentiels permettent l'échange de données en émission (direct) et réception (revers) entre deux points A & B.
'n' de ces liens constituent alors les chemins d'échanges (lane) : PCIe 1x 2x 4x 8x.
Un signal émission ou réception est donc composé de deux fils en mode différentiel.
La combinaison des signaux émission et réception, soit 4 fils, constitue un chemin (lane).
Le regroupement de 'n' chemin représentent le lien PCIe nX.

Root composant permet l'accès au CPU, à la mémoire ou tout autre périphérique.
Switch composant qui est optionnel permet le transfert PCIe entre end point sans passer par le root.
End point sont les périphériques d'échanges.

Les données sont élaborées sous forme de paquets.
PCIe permet le contrôle de flux, la QoS, la virtualisation de canaux, une latence prévisible...

Débit et bande passante :
Une paire différentielle permet un débit de 2,5 Gbit/sec
PCIe 1x aura donc un débit utile de (2,5 * 2 * 8/10)/8 = 500 Mo/sec

Le facteur 2 vient du mode full duplex émission + réception.
Le facteur 8/10 est introduit par l'encodage 8B10B utilisé.

PCIe suit le modèle OSI :

  • La couche PHYsique permet le passage des paquets en un flux série. (PCS/PMA layer)
  • La couche Data link permet la gestion de l'intégrité du lien (LCRC) et le contrôle de flux.
  • La couche Transaction permet les accès plus haut niveau : mémoire, I/O...

Un calcul de CRC est effectuée au niveau data link, il permet de vérifier l'intégrité des échanges à ce niveau.
Un deuxième calcul est réalisé au niveau transactionnel, c'est un calcul de CRC de bout en bout (ECRC).

Si ECRC est faux, il est possible de demander de renvoyer à nouveau le paquet.
Ceci est géré au niveau data link par un paquet DLLP (data link layer paquet) spécifique.
Les paquets de type DLLP sont transparents à l'utilisateur qui ne voit que les paquets TLP en général.

DLLP sont donc des paquets de management (completion, configuration).

 
  Software layer                      *data*
+-------------------+
| Transaction layer |        **Header,*data*,ecrc**
+-------------------+
| Data Link Layer   | 
|                   |  ***Sequence,**Header,*data*,ecrc**,lcrc***
+-------------------+
| PHYsical LAyer    | 
|                   | Start,***Sequence,**Header,*data*,ecrc**,lcrc***,End
+-------------------+

L'en tête du packet PCIe est de 3 à 4 mots de 32 bits.
La zone de charge utile, data, est de 0 à 1024 mots de 32 bits.
Un mot de 32 bits est appelé Double Word (DW) sachant qu'un word est un double octet et qu'un octet est composé de 8 bits.

Le niveau physique est composé des éléments suivant :

  • circuit de récupération d'horloge (coté réception), (PMA)
  • SERDES, (PMA)
  • embrouilleur, (PMA)
  • encodage 8B/10B. (PCS)

Le niveau data link dispose d'un "Replay Buffer" coté émission permettant de renvoyer le paquet lorsque le récepteur détecte des erreurs.

Différents types de transactions existent :

  • lecture ou d'écriture du plan mémoire,
  • configuration en phase d'initialisation,
  • messages permettant l'échange d'événements entre périphériques,
  • achèvement (completion) de la transaction.

Deux types de transactions sont possibles : posté ou non postée.
La transaction de type postée envoie un paquet et n'attend rien en retour : c'est comme une lettre à la poste.
La transaction de type non postée qui attend un paquet d'achèvement en retour : c'est comme une lettre en recommandée.
Une écriture mémoire sera de type posté alors qu'une lecture mémoire sera de type non posté.


Si l'usage fait de PCIe est simple, l'utilisateur peut se brancher au niveau transactionnel.
Il faudra alors gérer les paquets TLP (transaction layer paquet) en émission réception.

Pour des usages plus poussés, des IP existent (cas d'un design FPGA).
Cette sur couche gérera par exemple des accès mémoire direct DMA en mode "scatter gather" éventuellement.

Voir aussi

Articles connexes

Sources

  • Andrew Tanenbaum, L'Architecture des ordinateurs, éd. Pearson

Notes et références


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article PCI Express de Wikipédia en français (auteurs)

Игры ⚽ Поможем написать реферат

Regardez d'autres dictionnaires:

  • PCI Express — PCI E PCI Express PCI Express logo Год открытия: 2002 (1.0) 15 января 2007 (2.0) ноябрь 2010 (Спецификации версии 3.0) Разработчик: Intel, PCI Special Interest Group Что эта шина заменила: AGP, PCI X, PCI …   Википедия

  • PCI-Express — Logo PCI Express („Peripheral Component Interconnect Express“, abgekürzt: PCIe oder PCI E) ist ein Erweiterungsstandard zur Verbindung von Peripheriegeräten mit dem Chipsatz eines Hauptprozessors. PCIe ist der Nachfolger von PCI und AGP und… …   Deutsch Wikipedia

  • PCI Express — Logo PCI Express („Peripheral Component Interconnect Express“, abgekürzt: PCIe oder PCI E) ist ein Erweiterungsstandard zur Verbindung von Peripheriegeräten mit dem Chipsatz eines Hauptprozessors. PCIe ist der Nachfolger von PCI, PCI X und AGP… …   Deutsch Wikipedia

  • Pci-express — Logo PCI Express („Peripheral Component Interconnect Express“, abgekürzt: PCIe oder PCI E) ist ein Erweiterungsstandard zur Verbindung von Peripheriegeräten mit dem Chipsatz eines Hauptprozessors. PCIe ist der Nachfolger von PCI und AGP und… …   Deutsch Wikipedia

  • PCI-Express — Port PCI Express (de haut en bas : ×4, ×16, ×1 et ×16), comparé au traditionnel Port PCI 32 bit (en bas) Le PCI Express, abrégé PCI E ou PCIe (anciennement 3GIO, 3rd Generation Input/Output) est un standard développé par Intel et introduit… …   Wikipédia en Français

  • Pci express — Port PCI Express (de haut en bas : ×4, ×16, ×1 et ×16), comparé au traditionnel Port PCI 32 bit (en bas) Le PCI Express, abrégé PCI E ou PCIe (anciennement 3GIO, 3rd Generation Input/Output) est un standard développé par Intel et introduit… …   Wikipédia en Français

  • PCI-Express 2 — Le bus PCI Express 2 succède actuellement au PCI Express premier du nom apparu en 2003. Il est possible d insérer des cartes PCI Express premières du nom dans un port PCI Express 2, et il est possible d insérer un carte PCI Express 2 dans un port …   Wikipédia en Français

  • Pci express 2 — Le bus PCI Express 2 succède actuellement au PCI Express premier du nom apparu en 2003. Il est possible d insérer des cartes PCI Express premières du nom dans un port PCI Express 2, et il est possible d insérer un carte PCI Express 2 dans un port …   Wikipédia en Français

  • PCI-Express — (Anteriormente conocido por las siglas 3GIO, 3rd Generation I/O) es un nuevo desarrollo de PCI que usa los conceptos de programación y los estándares de comunicación existentes, pero se basa en un sistema de comunicación serie mucho más rápido.… …   Enciclopedia Universal

  • PCI Express — Not to be confused with PCI X. PCI Express Year created 2004 Created by Intel · Dell · IBM · …   Wikipedia

  • PCI-Express — Ranura PCI Express 1x PCI Express (anteriormente conocido por las siglas 3GIO, en el caso de las Entradas/Salidas de Tercera Generación , en inglés: 3rd Generation In/Out) es un nuevo desarrollo del bus PCI que usa los conceptos de programación y …   Wikipedia Español

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”