Les Bus PCI/PCI-X Belli Fabien Julian Gauthier Torossian Sevan Scaglia Tristan Turchi Michael

La page est créée Baptiste Leveque
 
CONTINUER À LIRE
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