Les Bus PCI/PCI-X Belli Fabien Julian Gauthier Torossian Sevan Scaglia Tristan Turchi Michael
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
Les Bus PCI/PCI-X Belli Fabien Julian Gauthier Torossian Sevan Scaglia Tristan Turchi Michael IUT Nice 06000 Département Informatique RÉSUMÉ. Le bus PCI est une avancé majeur dans le monde de l’informatique, il permet d’atteindre des vitesses de transfert toujours plus élevés grâce a des fréquences allant jusqu'à 512 Mhz pour une consommation plus faible tel que 1.5V dans le PCI-X. Initialisé par Intel, ce bus connait de nombreuses modifications et évolution tout en gardant une compatibilité descendante. Le fonctionnement de ce bus est organisé par un arbitre qui est chargé de repartir l’utilisation du bus entre les différents utilisateurs. De nombreux mécanismes sont mis en place afin de transférer les données telles que le « Pass-Thru » ou le FIFO mais tout ceci est modifiable par des interruptions et par un gestionnaire du bus qui permet de le paramétrer. ABSTRACT. The PCI bus is a major advance in the computer world, it achieves data transfer speeds thanks to ever-higher frequencies up to 512 MHz for lower consumption as in the 1.5V PCI X Initialized by Intel, that bus knows many changes and developments while retaining backwards compatibility. The operation of this bus is held by a referee who is responsible for restarting the bus utilization among various users. Many mechanisms are in place to transfer data such as Pass-Thru or FIFO but this is modifiable by interruptions and by the bus manager that allows setting. Mots-clés : Interruption, bus, fréquence, évolution, multiplexage, interconnexion, auto- configuration, débit, compatibilité ascendant, voltage, signaux, transferts, arbitres, registres. Keywords: Interruption, bus frequency, evolution, multiplexing, interconnection, self- configuration, speed, compatibility ascending voltage, signals, transfers, referees, registers.
1. Introduction Un bus est un canal de communication reliant entre eux différents éléments d'un système informatisé. L’un des premiers à voir le jour est le bus ISA, puis de nombreux autres se succédèrent, jusqu’au moment ou le besoin d'un bus plus performant est né. Mais comment transmettre un plus grand nombre de données dans une période de temps toujours plus faible ? De plus ce bus devra pouvoir s’adapter a toutes les architectures existantes et ne pas causer de conflit au sein d’un ordinateur. Ainsi est né le bus PCI (Peripheral Component Interconnect), qui par rapport à ses concurrent est un bus local, et peut donc être plus facilement atteint tout en restant indépendant du bus système. Mais ses différentes évolutions permettent-elles d'atteindre un débit et une fréquence suffisante au fonctionnement avancé des architectures modernes ? 2. Présentation et Évolution 2.1. Création Développé par Intel en 1992, le bus PCI connut de nombreuses améliorations. Présenté comme un bus local, il su s’imposer et faire parti de l’un des plus rapide et plus fiable système de transfert de donnés. Après seulement un an, c'est-à-dire en Avril 1993, une première modification lui permit de se diversifier pour inclure des environnements plus larges. 2.2. Les atouts Le Bus PCI est un bus intermédiaire qui se situe entre le bus processeur (Northbridge) et le bus d'entrées-sorties (Southbridge), gravitant ainsi autour du processeur central. Le bus se caractérise par une fréquence supérieure à la normale, pour sa première version elle est de 33Mhz contre 8 Mhz pour son premier concurrent, le bus ISA. Ainsi très tôt, le bus se démarque des autres par des performances incomparables. Grace a son mode rafale linéaire (« BURST » en anglais) unique, le débit en est grandement augmenté, ceci est dut au multiplexage du bus de donnée qui sert en même temps de bus de données et de bus d’adresse lors d’un adressage maitre- esclave, ceci sera décrit en détaille dans la rubriques « Les bus du bus PCI ».
[adas] 2.3. Caractéristiques techniques Dés sa première version le bus PCI se caractérisé par la fréquence élevé de 33Mhz pour une largeur de bus de 64 bits et un débit allant jusqu'à 266 Mo/s. De plus l'une des ses particularités est qu'il est capable de se configurer automatiquement à n'importe qu'elle carte par le biais d'une zone de configuration. 2.4. Évolutions 2.4.1. Présentation Ce bus fut créé dans une optique d'avenir, de ce fait les versions ne cessent de se succéder. L'un des avantages à cela est la capacité à s'adapter aux demandes de consommateurs et surtout de l'industrie tout en restant compatible avec les versions précédentes (compatibilité descendante). 2.4.2. Les premières versions Ainsi la fréquence, le débit et la vitesse de transfert sont améliorés constamment, allant jusqu'à 66 Mhz de fréquence pour une largeur de bus de 64 bits et une vitesse de transfert de 528 Mo/s. De plus, très utile pour les ordinateurs portables, la consommation du bus est passé de 5V à 3,3V.
2.4.3. Le bus PCI-X En septembre 1999 une avancé majeur voit le jour, développé par l'alliance de IBM, Hewlett-Packard et Compaq, le bus PCI-X qui supporte des fréquences très élevées allant jusqu'à 133 Mhz, de plus il est pleinement compatible avec ses anciennes versions ce qui permet de brancher en parallèle plusieurs bus de différentes versions. 2.4.3. Améliorations du PCI-X Dans sa seconde version, le bus PCI-X est capable d'atteindre une vitesse de transfert de 4.2 Go/s grâce à une fréquence de 533 Mhz tout en consommant 1.5v, ce dont aucun bus à l'heure actuel n'est capable de dépasser. 3. Fonctionnement La spécification du bus l'autorise à connecter jusqu'à quatre cartes entre elles permettant ainsi d'obtenir des performances décuplées. Les transferts de données exploitent l'échange de paquets, gérer par des signaux émis par les « maitres » et les « esclaves ». Ainsi il y a la demande de l’un et la réponse de l’autre, ce qui permet de répartir le transfert entre les maitres qui sont sur les cartes. 3.1. Les signaux Pour initier des échanges sous forme de paquets, un certain nombre de signaux sont nécessaires, ce qui rend le bus parfaitement synchrone. Ainsi par exemple IRDY permet de connaître l'état du maitre tandis que TRDY donne l'état de l'esclave. Voici un schéma présentant la plupart des signaux émit. [adas]
3.2. Les bus du bus PCI Le bus PCI se compose d'un bus d'adresse multiplexé qui joue le rôle de bus porteur d'adresse lors de sa phase d'adressage, mais aussi de bus de donnée lors de la phase de transfert. Il est aussi composé d'un bus de commande qui durant la phase d'adressage transmet une commande mais lors de la phase suivante joue le rôle de bus de validation d'octets, pour la vérification des erreurs. Enfin il se compose d'un bus de contrôle qui se compose des signaux émis par le maitre. 3.3. Les passerelles La possibilité de connecter jusqu'à 4 cartes mères au bus peut sembler insuffisant pour le secteur industrie, de ce fait l'emploi de passerelle (bridges) permet de palier à ce défaut, en effet elle permet l'interconnexion de bus PCI ou autre, de ce fait jusqu'à 256 passerelles sont possibles. 3.4. Les transferts 3.4.1. Transferts maitre/esclave Les transferts au sein du bus sont organisés de façon hiérarchique, ainsi on retrouve des maitres et un esclave. L'esclave a la charge de répartir les transferts initiés par les maitres, il agit en fait comme un arbitre ou un chef d’orchestre. Un transfert s'opère de la façon suivante: -Le maitre s'assure en premier lieu que le bus est disponible. -Envoi à l'esclave par son bus de commande l'adresse de l'instruction. -Envoi de la taille du paquet à transmettre par le maitre. -L'esclave ne peut pas immédiatement répondre à la requête du maitre ce qui permet de libérer le bus pour les autres maitres. -Un maitre peut s'approprier un esclave pour être certain de la transmission rapide de son paquet. -Emission des données toujours sur le même bus. -Termine l'échange. Ainsi l'utilisation d'un esclave permet la répartition des ressources entres les différents utilisateurs du bus.
3.4.2. Le transfert FIFO Le transfert de type FIFO (First In First Out), correspond a une file d’enregistrements, c'est à dire que le premier à adresser une requête est le premier à être traiter. Généralement un bus PCI possède 2 FIFO, un pour le chemin ascendant et l’autre pour le chemin inverse, chacun possède une capacité de 8 mots de 4 octets. Ce mode de transfert est très utile lorsque des échanges initialisés en même temps possèdent des vitesses de transfert différent, FIFO agit alors comme une mémoire tampon. 3.4.3. Le transfert « Pass-Thru » De plus, un mode de transfert permet l'utilisation de registres spécialisés et un certain type des signaux, ce mode est le « Pass-Thru ». Ainsi dans un premier registre nommé APTA est stocké les adresses de transaction tandis que dans le second désigné par les lettres APTD transite toutes les données, ce qui fait office de mémoire tampon. Ensuite les transactions sont les même que celles décrites pour le mode maitre-esclave, a ceci prés qu’un arbitre n’est pas présent pour coordonné les flux, tout est organisé grâce a des signaux qui indiquent la disponibilité du bus. Voici un schéma qui synthétise les différents modes de transferts vus précédemment. [adas]
3.5. Les Arbitres La présence d'un arbitre est obligatoire afin de synchroniser les différents utilisateurs du bus, il a la charge d’attribuer les autorisations de transfert de données par le biais du bus, par exemple dans le mode maitre/esclave, le rôle de l'arbitre est tenu par l'esclave. Ainsi le rôle de l'arbitre est comme son nom l'indique de repartir l'utilisation du bus car lors d'une phase de transferts, il ne peut, contrairement au bus VME, y avoir un second transfert car l'adressage ne se fait que sur un seul bus et les collisions doivent être évitées. [KADIONIK 07] 3.6. Les Interruptions Le bus se compose d'un gestionnaire d'interruption, elles sont optionnelles, au nombre de quatre mais fonctionnent de manière asynchrone, contrairement aux signaux émit par les différents agents. Pour adresser une requête au bus, seul l’interruption INTA est distribué a tous le monde, pour un adressage plus précis les autres interruptions ne sont données qu’aux périphériques ayant la capacité de les générés, donc seulement s’ils sont multifonction. Tout ceci est gérer par le contrôleur d’interruption implanté dans le bus PCI. Ces interruptions sont alors utilisées afin de donner des indications au bus sur les transferts qui vont s’opérer, il y a donc une demande préalable de transfert par un système d’interruption. De plus une exception levée est transmise grâce à son bus de commande et sauvegardée jusqu'à traitement dans le registre Interrupt Line.
3.7. Configuration du bus La possibilité est donnée à l'utilisateur de configurer le bus PCI grâce à ses nombreux registres de 256 octets et par l'intermédiaire d'un logiciel. Cette fonctionnalité devient intéressante pour l'accessibilité du bus par les maitres, on peut donc forcer un esclave pour qu'il vous accepte obligatoirement et sans limite de temps, mais ceci risque d'encombrer le bus lors d'une mauvaise configuration. Ce principe permet donc une gestion dynamique des différents agents du bus. 4. Conclusion : Malgré un meilleur débit et une plus grande fréquence, ce bus ne semblait pas convenir aux besoins industriels : sensibilité importante aux impuretés, tension trop élevée et impossibilité de le déconnecter en marche (« Hot-Plug »). De ce fait de nouveaux bus ont été développés afin d'améliorer le bus PCI que ce soit dans le domaine industriel ou micro-informatique. Ainsi le bus PCI est un bus local, il est donc de bas niveau donc idéal pour une utilisation sur des PC mais incompatible avec le secteur industriel qui nécessite une architecture robuste. Son plus grand rival est le bus VME, mais il dispose de plus faible performance mais paraît parfaitement adapter au secteur industriel. Cadre rédactionnel : Cet article a été rédigé dans le cadre du cours Architecture du Département Informatique de l'IUT de Nice sous la direction de Gaëtan Rey.
Référence Bibliographique [ADAS], http://www.adas.fr/rss/pci.pdf [KADIONIK 07] ,Patrice KADIONIK., LE BUS INDUSTRIEL PCI, Ecole nationale Supérieur électronique, http://uuu.enseirb.fr/~kadionik/formation/bus_industriels/pci_enseirb .html . [CCM], http://www.commentcamarche.net/contents/pc/pci.php3, mardi 14 octobre 2008 [Leroy 14/4/10] Leroy Davis, PCI-X Bus http://www.interfacebus.com/Design_Connector_ PCI_X.html, 14 avril 2010 [Schmid Roos 2005] ,Patrick Schmid et Achim Roos, Performances des bus : PCI Express ou PCI-X ?, http://www.erenumerique.fr/performances_des_bus_pci_express_ou_pci_x_-art- 1101-2.html, 28 novembre 2005
Vous pouvez aussi lire