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