PCI Express

publicité
046_050_SOL
1/02/05
15:27
Page 46
Solutions
INFORMATIQUE INDUSTRIELLE
PCI Express: l
▼
Fortement soutenu par Intel, et les grands de l’informati
Express est destiné à devenir le bus de périphériques de
à moyen terme remplacer le bus PCI, qui après dix ans de
bande passante. En tant qu’interconnexion de type série
conventionnel qui est un bus parallèle. Évidemment,
public, finit tôt ou tard par arriver dans l’informatique ind
l’instrumentation sur PC, se prépare à ce nouveau stand
Le connecteur PCI Express X1 à 36 broches destiné à remplacer
l’actuel connecteur PCI sera nettement plus court que celui-ci,pour
un débit au moins double.
L’
interface d’entrées/sorties PCI
(Peripheral Component Interconnect) a
déjà plus de 10 ans. Introduit au
début des années 1990, le bus
PCI a eu comme premier effet d’unifier l’architecture d’interconnexion des périphériques du PC, sur un marché qui comptait
alors une multitude de bus différents :VESA,
EISA, ISA, Micro Channel, NuBus, Sbus, etc.
Il fut d’abord mis en œuvre en tant que système d’interconnexion
de circuit à circuit et
L’essentiel
remplaça très rapide Un nouveau bus baptisé
ment le bus ISA
PCI Express est destiné à
(Industry Standard
unifier l’architecture des PC
Architecture) et ses
de nouvelle génération.
dérivés. Durant les pre Il a vocation à remplacer
mières années, dans sa
l’actuel bus PCI ainsi que le
bus graphique AGP
version
initiale
Les différents débits de
(32 bits/33 MHz), ce
cette interface seront larbus répondait parfaitegement supérieurs à ce qui
ment aux exigences
existe actuellement : de
des périphériques
250 Mo/s pour une version
d’entrées/sorties de
1X à 8 Go/s pour une version 32X.
l’époque en terme de
bande passante. Il
Une rupture technologique
est à prévoir : les connecapportait également un
teurs PCI Express seront
grand nombre de
incompatibles avec les
nouveautés par rapport
actuelles cartes PCI.
aux précédentes inter-
46
faces comme l’indépendance vis-à-vis du
processeur, l’isolation bufférisée, le fonctionnement en mode maître d’un périphérique
et la reconnaissance plug and play des nouvelles
cartes. En particulier, l’isolation bufférisée a permis d’isoler le bus PCI du bus local du processeur, électriquement mais aussi en terme
d’horloges. Cela s’est traduit par deux conséquences fondamentales pour l’amélioration
des systèmes : la possibilité d’effectuer des
cycles simultanés sur les deux bus et celle
d’augmenter la fréquence du bus processeur
sans avoir à modifier la vitesse et la charge du
bus PCI.
Des évolutions qui ont
aussi des limites
Toutefois, aujourd’hui, la situation a beaucoup évolué. Les fréquences de fonctionnement des processeurs et des mémoires ont
considérablement augmenté. Certes, la bande passante du bus PCI a également doublé,
passant de 33 à 66 MHz. Mais cette augmentation, comparée à celle de la vitesse des
processeurs (de 33 MHz à 3 GHz), se révèle très insuffisante, en particulier si l’on considère les technologies d’entrées/sorties émergentes comme l’Ethernet Gigabit et
l’IEEE 1394B (FireWire), qui peuvent monopoliser toute la bande passante disponible
du bus PCI avec un seul périphérique
connecté. Rappelons qu’outre la part dévolue au protocole, la principale limitation
du PCI réside dans le partage de la bande
passante entre tous les périphériques
connectés sur le bus. Ainsi, l’architecture
parallèle du PCI commence à montrer ses
limites, en terme de bande passante, de
nombre de broches, de transfert de données temps réel, etc. Il ne peut répondre
aux besoins de la nouvelle génération de
périphériques comme la qualité de service, la gestion d’alimentation et la virtualisation des entrées/sorties.
Pourtant, comme toute spécification qui
se respecte, celle du PCI a donné lieu à
des versions successives pour répondre
aux contraintes de bande passante. Des
dérivés du PCI comme les bus PCI-X et
AGP (Advanced Graphics Port) sont apparus
pour augmenter les fréquences de transfert. L’AGP l’a d’ailleurs déjà remplacé
pour accroître les performances du circuit vidéo, tout en évitant de saturer la
bande passante que se partagent les
autres composants connectés sur le bus
du PC. On est ainsi passé de 132 Mo/s
(32 bits/33 MHz) avec le PCI à des
débits successifs de 266 Mo/s, 533 Mo/s
et 1,04 Go/s avec respectivement
l’AGP 1X, 2X, 4X.
Moyennant une adaptation du protocole, le
PCI-X a permis d’augmenter la fréquence
du bus PCI en passant de 33 à 66, 100 ou
encore 133 MHz. Malheureusement, cette
augmentation de la bande passante s’accompagne d’une réduction importante de
la distance sur laquelle les données peuvent
être acheminées et du nombre de connecteurs que les transmetteurs de bus peuvent
gérer. Par exemple, le PCI-X à 133 MHz
MESURES 769 - NOVEMBRE 2004
046_050_SOL
1/02/05
15:27
Page 47
Solutions
le raz de marée est imminent…
tique bureautique (Dell, HP, IBM, Microsoft), PCI
des nouvelles générations de PC. Il devrait donc
de bons et loyaux services, montre ses limites en
e, PCI Express ne sera pas compatible avec le PCI
, ce qui se produit dans l’informatique grand
ndustrielle : National Instruments, spécialiste de
dard.
L’architecture du PC destinée à évoluer
Architecture actuelle du PC
Northbridge
Hublink ou autres
Southbridge
n’offre plus qu’un seul slot sans répéteur.
Cela exige la division du bus PCI en plusieurs segments, chacun nécessitant un bus
PCI-X complet entre le circuit de gestion et
chaque emplacement actif. Cette approche
est donc coûteuse à mettre en œuvre et
induit des contraintes au niveau du routage, du nombre de couches des cartes et
du brochage des composants. Le surcoût
induit peut uniquement se justifier lorsque
la conservation de la bande passante est
cruciale. C’est le cas pour les serveurs, par
exemple.
Un besoin de nouvelles
fonctionnalités
Les applications comme l’acquisition de
données, la génération de formes d’ondes,
le streaming audio et vidéo nécessitent une
bande passante garantie et des temps d’attente déterministes. Les spécifications originelles du PCI ne répondent pas à ces
besoins car ces applications n’étaient pas
déterminantes au moment du développement du bus. Les applications de transfert
isochrone de données, gourmandes en
bande passante, qui se développent aujourd’hui en vidéo et en audio, exigent la
nécessité de supporter aussi ce type de
transfert. Les transferts isochrones ont
notamment pour avantage, côté périphérique, de nécessiter beaucoup moins de
mémoire tampon qu’il n’en faut actuellement en PCI pour résoudre les problèmes
de variation de bande passante.
D’autres besoins se dessinent : par
exemple, les périphériques de dernière
génération nécessitent de nouvelles fonctionnalités en termes de gestion d’alimentation pour permettre la mise hors
tension sélective de certaines parties du
MESURES 769 - NOVEMBRE 2004
Processeur
Bus processeur
Carte graphique
Disque dur
Bus AGP
Mémoire RAM
Chipset
Bus ATA
USB 1.1
Ethernet
E/S locales
Bus
et slots PCI
Architecture avec PCI Express
Processeur
Northbridge
PCI Express
Bus processeur
Southbridge
Carte graphique
PCI Express
Mémoire RAM
Chipset
Disque Dur
Bus ATA
USB 2.0
PCI Express E/S locales
Ethernet
Carte radio
PCI Express
Switch
Bus
et slots PCI
L’architecture du PC repose depuis quelques années sur un certain nombre d’interconnexions différentes.Par exemple,les cartes graphiques sont
interfacées via le port AGP (Advanced Graphics Port),le Northbridge est connecté au Southbridge par une liaison appelée Hublink chez Intel
(l’ensemble Northbridge-Southbridge formant le chipset).PCI Express unifie l’ensemble en utilisant une architecture de bus commune.Il
devrait remplacer le bus AGP et réaliser la liaison entre le Southbridge et le Northbridge.Il devrait surtout fournir de nouveaux emplacements
pour les périphériques d’entrées/sorties.
système ; cette considération est importante quand on voit que les PC modernes
nécessitent de plus en plus de puissance
électrique. Quant à la virtualisation des
entrées/sorties, il s’agit de pouvoir disposer de voies dynamiques pour permettre
47
046_050_SOL
1/02/05
15:27
Page 48
Solutions
Différents formats de connecteurs selon les débits
X 16
X8
X4
X1
Le bus PCI Express se décline en plusieurs versions,1X,2X,4X,8X,12X,16X et 32X associées chacune à un type de connecteurs.Le
connecteur 1X possède 36 broches et se destine à remplacer l’actuel slot PCI dans tous les PC bureautiques.Les connecteurs 4X et 8X possèdent respectivement 64 et 98 broches et se destinent à un usage sur serveurs :Le connecteur 16X possède 164 broches,mesure 89 mm de
long et a vocation à servir de port graphique en remplacement de l’AGP.
Connecteurs PCI Express X1
Connecteurs PCI
traditionnels
le routage des données à travers des chemins
virtuels : des transferts peuvent ainsi être
effectués même si d’autres voies sont bloquées par des transactions prioritaires.
Un bus série commuté
Contrairement au bus PCI (qui est un bus
parallèle), le PCI Express fait appel à une communication série commutée. Son architecture est spécifiée sous forme de couches du
modèle OSI (voir figure).
Commençons par la couche la plus haute : la
couche logicielle de ce standard a été conçue
de façon à garantir la compatibilité logicielle avec l’actuel PCI. Cette compatibilité
concerne deux aspects : le recensement automatique de la carte et l’exécution des applications. Le premier aspect reprend les mécanismes standards définis dans la spécification
48
Connecteurs
PCI Express X16
(port graphique)
plug and play du PCI : il utilise le modèle d’initialisation très efficace de celui-ci, dans lequel
le système d’exploitation peut identifier tous
les matériels connectés sur le bus et allouer
en conséquence les ressources système, comme la mémoire, les interruptions, pour créer
un environnement système optimal. En pratique, tous les systèmes d’exploitation seront
capables de démarrer les machines basées
sur PCI Express.
Le second aspect est plus impressionnant :
la compatibilité avec le modèle d’adressage
du PCI (architecture load/store à mémoire partagée basée sur un adressage absolu) devrait
assurer que lors de la migration d’une carte
PCI vers son équivalent en PCI Express, toutes
les applications s’exécuteront sans aucune
modification logicielle. Enfin, les nouveaux
logiciels pourront aussi tirer avantage de cer-
taines des technologies avancées de PCI
Express, comme l’Advanced Switching, définie
comme une matrice de commutation de
paquets, qui cherche à cibler plus particulièrement les applications de télécommunications.
Les couches logicielles vont générer des
requêtes de lecture et d’écriture transmises
aux périphériques d’entrées/sorties par la
couche transactionnelle. Celle-ci reçoit
les requêtes de lecture et d’écriture et crée
des trames de requêtes pour la transmission à la couche de liaison à l’aide d’un
protocole orienté paquets comme TCP/IP.
Comme celui-ci, certains paquets nécessitent un message de réponse (accusé de
réception). Cette couche reçoit donc des
trames de réponse en provenance de la
couche de liaison et les associe aux
requêtes logicielles originelles. Chaque
paquet a un identificateur unique qui permet de diriger les paquets de réponse vers
leurs initiateurs. Le format d’un paquet
offre un adressage de mémoire sur 32 bits
et un adressage étendu sur 64 bits. Chaque
paquet comporte également des attributs
comme no-snoop, relaxed ordering et priority qui
peuvent être utilisés pour optimiser leur
acheminement à travers le protocole de
niveau inférieur.
Le rôle d’une couche de liaison est d’assurer avec fiabilité la livraison d’un paquet
à travers la couche physique. La couche de
liaison est responsable de l’intégrité des
données. Elle ajoute donc à chaque paquet
de la couche transactionnelle des numéros
de séquence ainsi que des bits de contrôle
pour fiabiliser la transaction (CRC, Contrôle de Redondance Cyclique). Un protocole
de contrôle de flux, basé sur le principe de
crédits, garantit que les paquets sont transmis uniquement lorsqu’une mémoire tampon est disponible à l’autre extrémité. Cela
élimine les relances de paquets et la dégradation de bande passante associée. La
couche de liaison relancera automatiquement l’envoi d’un paquet qui aura été signalé comme corrompu.
La couche physique de base de l’interface
PCI Express se compose de deux canaux série
unidirectionnels, un canal émetteur et un
canal récepteur, l’ensemble formant une voie
de communication de base. Chaque canal
unidirectionnel est composé d’une paire différentielle de conducteurs véhiculant des
signaux basse tension. Le débit est de
2,5 Gbit/s dans chaque direction, soit environ 250 Mo/s en comptant les bits de
contrôle et d’initialisation, ce qui représente à peu près deux fois la vitesse de transfert
MESURES 769 - NOVEMBRE 2004
046_050_SOL
1/02/05
15:27
Page 49
Solutions
Un modèle en couches
Configuration
de l’OS
Modèle plug-and-play du PCI
Couche
logicielle
Modèle de logiciels et drivers PCI
Couche
transactionnelle
Protocole basé paquets
Couche de
liaison de données
Intégrité des données
Couche physique
Point à point,série, différentiel…
Indépendant
de l’OS
même principe que
TCP/IP
Augmentation
de la bande
passante
cher ou débrancher les composants à chaud,
c’est-à-dire sans éteindre le PC. Les connecteurs PCI Express sont reconnaissables grâce
à leurs petites dimensions et leur couleur
anthracite. Ils possèdent une taille variable
fonction des débits et des systèmes implémentés. La couche physique fournit des largeurs de voies de 1X, 2X, 4X, 8X, 16X et
32X sur lesquelles se répartissent les octets
à transmettre. Pour chacune de ces bandes
passantes, un type de connecteur est défini.
Le connecteur PCI Express de base sera le
connecteur 1X à 36 broches, destiné à tous
les PC bureautiques. Le connecteur 16X est
destiné à servir de port graphique et à remplacer celui de l’AGP. Par ailleurs, cette interface a également vocation à supplanter la
technologie PC Card (ou encore PCMCIA)
sous la forme de connecteurs ExpressCard/54 (75x54x5 mm) et ExpressCard/34
(75x34x5 mm) plus compacts.
PCI Express repose sur un modèle en couches indépendantes de type OSI.La couche transactionnelle comprend un protocole de communication orienté paquets comme TCP/IP.La couche physique est amenée à monter en débit sans impacter les couches supérieures.
Des avantages pour la mesure et
l’automatisation
du PCI classique. Cette vitesse de transmission de 1ère génération est censée augmenter
avec l’évolution de l’électronique pour dépasser les 5 Gbit/s en deuxième génération et
venir flirter à plus long terme avec les
10 Gbit/s (la limite pour les signaux sur des
conducteurs en cuivre). Chaque octet est
transmis avec l’encodage 8B/10B. L’assemblage et le désassemblage des données sont
transparents pour les autres couches.Aucun
logiciel n’est impliqué dans cette transmission et surtout pas le système d’exploitation.
Ce mécanisme a été conçu dans la perspective des futures augmentations de la vitesse
de transfert et de l’évolution des techniques
d’encodage. Ces évolutions n’auront donc a
priori d’impact que sur la couche physique.
La bande passante du bus PCI Express peut
être étendue en ajoutant des voies de communication de base, de façon à former des
voies multiples (en rappelant, qu’une voie
est formée de deux canaux en sens inverse,
qu’un canal est formé d’une paire de
conducteurs). Le bus PCI Express se décline
ainsi en plusieurs versions 1X, 2X, 4X, 8X,
12X, 16X et 32X selon le nombre de voies de
base utilisées. La première génération permet d’obtenir des débits compris entre
250 Mo/s en version 1X et 8 Go/s en version 32 voies (32x250 Mo/s), soit près de
4 fois le débit maximal des ports AGP 8X.
Avec un coût de fabrication similaire, le PCI
Express est donc amené à le remplacer progressivement.
Les connecteurs PCI Express sont incompatibles avec les anciens connecteurs PCI et
Ainsi, le PCI Express prendra peu à peu le
relais du bus PCI en apportant des améliorations, sur plusieurs points importants.
MESURES 769 - NOVEMBRE 2004
disposent d’une plus faible consommation
électrique. Une des caractéristiques intéressantes de ce bus est la possibilité de bran-
49
046_050_SOL
1/02/05
15:27
Page 50
Solutions
Couche physique de PCI Express
Paquet
Horloge
Périphérique B
Périphérique A
Horloge
Paquet
La couche physique de base 1X de PCI Express se compose de deux canaux unidirectionnels inverses à 250 Mo/s (compter 200 Mo/s de
débit utile dans chaque sens).
Multiplexage des voies de base
Plusieurs voies de base peuvent être ajoutées pour augmenter le débit et former une voie multiple :une liaison 4X est équivalente à 4 liaisons 1X,soit environ 4x250 Mo/s = 1 Go/s
Les premières cartes PCI Express pour
la mesure sont déjà là
Alors que les premières cartes au format
PCI Express ont fait leur apparition sur le marché purement informatique (cartes mères et
cartes graphiques) en septembre 2003, on
compte déjà deux cartes destinées au marché
industriel, toutes deux proposées par National Instruments. Il s’agit de la PCIe-GPIB, une
carte 1X d’interface GPIB et de la PCIe-1429,
une carte 4X d’acquisition d’images (à partir
de l’interface Camera Link).
La carte PCIe-GPIB n’a pour l’instant aucun
intérêt puisque les performances sont les
mêmes que celle de la carte PCI-GPIB. Elles
sont en effet limitées par la liaison GPIB
(1,5 Mo/s en mode IEEE 488.1 classique et
7,9 Mo/s en HS-488), il s’agit là de l’emploi
d’un marteau pour écraser une mouche ! En
50
revanche, la carte PCIe-1429 bénéficie pleinement de la bande passante de PCI Express,
avec la possibilité de transmettre en continu
des images à la vitesse de 680 Mo/s (soit
l’équivalent du contenu d’un CD par
seconde !) ou encore 1 000 images par seconde à la résolution de 1 024x512 points. Les
performances sont donc largement supérieures à celles des cartes d’acquisition
d’images interfacées en PCI traditionnel
(132 Mo/s théoriques en 33 MHz/32 bits, en
réalité 80 Mo/s ). Grâce à la compatibilité logicielle inhérente entre PCI et PCI Express, ces
deux cartes peuvent être exploitées dans le
cadre d’applications existantes, sans modifications logicielles.
BB
➔ Hautes performances. Avec une bande passante deux fois supérieure, en version de base 1X, à celle du PCI et qui
croît linéairement à mesure que l’on
ajoute des voies de base, PCI Express
accélère considérablement les transferts
de données. Cette bande passante est
d’ailleurs disponible simultanément
dans les deux sens sur chaque canal. Le
débit initial de 2,5 Gbit/s devrait
atteindre progressivement 10 Gbit/s et
faire face ainsi à l’évolution des besoins
à long terme.
➔ Simplification des entrées/sorties. Elle
découle directement de l’unification des bus
internes, accessibles ou non à l’utilisateur
(AGP, PCI, PCI-X et HubLink notamment).
Cette rationalisation devrait réduire la complexité des conceptions et le coût de mise en
œuvre.
➔ Architecture en couches. Ce format dispose d’un modèle en couches indépendantes,
capable de s’adapter aux nouvelles technologies en préservant les investissements logiciels. On peut ainsi s’attendre à une amélioration des vitesses de transfert avec
conservation des couches logicielles hautes.
➔ Cibler de nouvelles applications. Le
PCI Express offre de nouvelles possibilités
pour l’acquisition de données et le multimédia grâce à des transferts de données
isochrones qui garantissent la qualité de
service et procure l’assurance de livrer les
données à temps grâce à des méthodes
déterministes.
➔ Facilité d’utilisation. PCI Express va
considérablement simplifier la mise à niveau
des systèmes et l’ajout de nouveaux matériels. Il offre l’insertion et l’extraction à chaud
des cartes (Hot Swap), une fonctionnalité
jusqu’ici réservée aux serveurs! Certes, comme celle-ci s’appuie sur des caractéristiques
spécifiques du système d’exploitation, il peut
y avoir un retard dans le lancement de nouveaux produits.
Durant ces quinze dernières années, pour
les systèmes de mesure et d’automatisation sur PC, le bus PCI s’est révélé être un
bus de prédilection. Il continuera à jouer
un rôle important dans les années à venir.
La transition vers PCI Express sera longue
et progressive : les nouveaux PC vont, petit
à petit, intégrer les deux types d’emplacements PCI et PCI Express dans un rapport
qui tournera à l’avantage du PCI Express
au fur et à mesure de son adoption par le
marché.
Ajay V. Bhatt, architecte Desktop (Intel)
et Tim Fountain, Platform Manager
(National Instruments).
MESURES 769 - NOVEMBRE 2004
Téléchargement