PCI-X |
IBM, HP, Compaq |
|---|---|
| Architecture | |
Introduction
Le PCI-X, abréviation de Peripheral Component Interconnect eXtended, est une évolution à hautes performances du bus PCI conventionnel, développée principalement pour répondre aux besoins croissants des serveurs, stations de travail et systèmes professionnels de la fin des années 1990 et du début des années 2000. Contrairement à PCI Express (PCIe), qui constitue une architecture série point à point entièrement différente, PCI-X conserve l'architecture générale du PCI classique : il s'agit toujours d'un bus parallèle partagé, mais amélioré pour fonctionner à des fréquences beaucoup plus élevées et exploiter plus efficacement la bande passante disponible.
PCI-X est développé conjointement à partir de 1998 par IBM, Hewlett-Packard et Compaq. Les trois constructeurs cherchent alors à dépasser les limitations du PCI utilisé dans les serveurs, notamment pour des périphériques exigeants comme les contrôleurs Gigabit Ethernet, Fibre Channel et Ultra3 SCSI. Leur proposition prévoit notamment un fonctionnement à 133 MHz, soit le double des 66 MHz des variantes PCI rapides existantes. Elle est ensuite soumise au PCI-SIG, l'organisme responsable de la normalisation de la famille PCI.
La première génération, PCI-X 1.0, porte la fréquence maximale à 133 MHz. Avec un bus de données de 64 bits, elle permet d'obtenir une bande passante théorique d'environ 1,06 Go/s. PCI-X ne se contente cependant pas d'augmenter la fréquence : il améliore également le protocole de transaction, notamment grâce aux transactions fractionnées (split transactions), qui libèrent le bus pendant qu'un périphérique prépare sa réponse. Le PCI-SIG souligne que cette amélioration permet d'utiliser la bande passante plus efficacement.
La seconde génération, PCI-X 2.0, pousse l'architecture beaucoup plus loin avec les modes PCI-X 266 et PCI-X 533. En configuration 64 bits, PCI-X 533 atteint théoriquement environ 4,26 Go/s. Cette version introduit également des mécanismes tels que l'ECC, une signalisation à 1,5 V, des source-synchronous strobes et certaines fonctions destinées aux communications entre périphériques.
PCI-X connaît principalement le succès dans les serveurs professionnels. On le retrouve notamment sur des systèmes Compaq/HP ProLiant, IBM et diverses stations de travail. Il reste toutefois une évolution du bus parallèle PCI et conserve certaines de ses limitations fondamentales. L'arrivée de PCI Express, utilisant des connexions série point à point dédiées, entraîne donc progressivement son remplacement au cours des années 2000.
Spécifications générales
| Spécification | Description |
|---|---|
| Nom | PCI-X |
| Signification | Peripheral Component Interconnect eXtended |
| Type | Bus parallèle d'extension |
| Développeurs initiaux | IBM, Hewlett-Packard et Compaq |
| Proposition initiale | 1998 |
| PCI-X 1.0 | Fin des années 1990 |
| PCI-X 2.0 | 2002 |
| Organisme de normalisation | PCI-SIG |
| Architecture | Bus parallèle partagé |
| Largeur courante | 64 bits |
| PCI-X 1.0 | Jusqu'à 133 MHz |
| PCI-X 2.0 | Jusqu'à 533 MHz |
| Débit PCI-X 133, 64 bits | ≈ 1,06 Go/s |
| Débit PCI-X 266, 64 bits | ≈ 2,13 Go/s |
| Débit PCI-X 533, 64 bits | ≈ 4,26 Go/s |
| Bus mastering | Oui |
| Transactions fractionnées | Oui |
| ECC du bus | Ajouté par PCI-X 2.0 |
| Compatibilité PCI | Compatibilité descendante logique importante, avec restrictions électriques |
| Utilisation principale | Serveurs et stations de travail |
| Successeur | PCI Express |
Le PCI-SIG confirme que PCI-X 1.0 monte jusqu'à 133 MHz, tandis que PCI-X 2.0 introduit les modes 266 et 533 MHz ainsi que l'ECC.
Origine de PCI-X
À la fin des années 1990, le PCI conventionnel commence à constituer un goulet d'étranglement dans les serveurs.
Le PCI classique fonctionne généralement en :
- 32 bits × 33 MHz
soit environ :
- 133 Mo/s
Une évolution PCI permet déjà :
- 64 bits × 66 MHz
soit environ :
- 533 Mo/s
Cette bande passante devient néanmoins insuffisante pour certains serveurs utilisant simultanément plusieurs interfaces rapides.
Les constructeurs doivent notamment prendre en charge :
- Gigabit Ethernet ;
- Fibre Channel ;
- contrôleurs RAID ;
- Ultra2/Ultra3 SCSI ;
- interfaces de stockage à haut débit ;
- plusieurs périphériques rapides simultanément.
C'est dans ce contexte qu'IBM, Compaq et Hewlett-Packard annoncent en 1998 leur projet PCI-X.
Une évolution du PCI
Il est important de comprendre que PCI-X n'est pas une architecture entièrement nouvelle.
Il constitue une évolution de :
- PCI - Peripheral Component Interconnect
Le PCI-SIG indique que PCI-X reprend notamment les :
- caractéristiques électriques ;
- protocoles ;
- noms et fonctions des signaux ;
- connecteurs ;
- mécanismes fondamentaux du PCI.
PCI-X améliore ensuite cette base afin d'augmenter la fréquence et l'efficacité des transactions.
On peut donc représenter son évolution ainsi :
|
PCI 32 bits / 33 MHz ↓ PCI 64 bits / 66 MHz ↓ PCI-X 1.0 / 133 MHz ↓ PCI-X 2.0 / 266 et 533 MHz |
Architecture parallèle
PCI-X reste un :
- bus parallèle
Plusieurs bits sont transmis simultanément sur différentes lignes électriques.
Cela le distingue radicalement de PCI Express.
PCI-X
PCI Express
PCI Express utilise des liens série indépendants point à point, alors que PCI-X reste fondamentalement basé sur un bus parallèle partagé.
Largeur du bus
La configuration la plus caractéristique de PCI-X utilise :
- 64 bits
de données.
Cette largeur permet de transférer :
- 8 octets
par opération de données.
PCI-X reste cependant lié à l'héritage du PCI, et la famille comprend également certaines possibilités de fonctionnement avec des largeurs différentes. PCI-X 2.0 introduit même officiellement une variante 16 bits destinée notamment aux applications embarquées où la réduction du nombre de broches peut être avantageuse.
Pour les serveurs et stations de travail classiques, toutefois, PCI-X est essentiellement associé au bus 64 bits.
PCI-X 1.0
La première génération améliore fortement les performances du PCI.
Les principaux modes sont :
| Mode | Largeur | Débit théorique |
|---|---|---|
| PCI-X 66 | 64 bits | ≈ 533 Mo/s |
| PCI-X 100 | 64 bits | ≈ 800 Mo/s |
| PCI-X 133 | 64 bits | ≈ 1 066 Mo/s |
Le mode le plus connu est donc :
- 64 bits × 133 MHz
soit :
|
8 octets × 133 millions/s ≈ 1 064 Mo/s |
ou environ :
- 1,06 Go/s
Le PCI-X proposé en 1998 était justement présenté comme un bus 64 bits capable de fonctionner à 133 MHz et de dépasser 1 Go/s.
PCI-X 2.0
La spécification :
- PCI-X 2.0
est développée afin de poursuivre l'augmentation de la bande passante.
Elle introduit notamment :
- PCI-X 266
et :
- PCI-X 533
Le PCI-SIG confirme officiellement ces deux nouvelles fréquences.
En 64 bits, les débits théoriques deviennent :
| Mode | Fréquence effective | Largeur | Débit maximal théorique |
|---|---|---|---|
| PCI-X 66 | 66 MHz | 64 bits | ≈ 533 Mo/s |
| PCI-X 100 | 100 MHz | 64 bits | ≈ 800 Mo/s |
| PCI-X 133 | 133 MHz | 64 bits | ≈ 1,06 Go/s |
| PCI-X 266 | 266 MT/s équivalent 64 bits | ≈ 2,13 Go/s | |
| PCI-X 533 | 533 MT/s équivalent 64 bits | ≈ 4,26 Go/s |
Attention à une subtilité importante
Dire simplement que PCI-X 2.0 fait fonctionner électriquement le bus parallèle conventionnel à une horloge physique de 533 MHz est une simplification.
Les modes PCI-X 266 et 533 utilisent notamment des source-synchronous strobes et des techniques de transfert améliorées permettant d'atteindre ces débits de données. Le PCI-SIG associe bien PCI-X 2.0 aux classes 266 et 533, mais leur fonctionnement électrique est plus sophistiqué qu'une simple multiplication de l'horloge PCI originale.
Transactions fractionnées
Une amélioration fondamentale de PCI-X est la :
- Split Transaction
ou :
- transaction fractionnée.
Avec certains mécanismes PCI traditionnels, lorsqu'un périphérique n'est pas prêt à répondre, le bus peut perdre du temps.
PCI-X améliore ce fonctionnement.
Le périphérique peut essentiellement recevoir une requête, libérer le bus, puis fournir sa réponse lorsqu'elle est disponible.
Schématiquement :
Cela améliore considérablement l'utilisation du bus lorsque plusieurs périphériques rapides fonctionnent simultanément.
Le PCI-SIG cite précisément les split transactions comme l'une des améliorations importantes de PCI-X 1.0.
Bus mastering
PCI-X permet également le :
- Bus Mastering
Une carte d'extension peut prendre temporairement le contrôle du bus pour effectuer des transferts.
Cela permet par exemple à un contrôleur RAID de transférer directement des données entre :
| disques → contrôleur RAID → mémoire |
sans demander au processeur d'effectuer individuellement chaque transfert.
Cette caractéristique est particulièrement importante dans les serveurs.
DMA
PCI-X est naturellement adapté aux transferts :
- DMA - Direct Memory Access
Un contrôleur peut ainsi transférer de grandes quantités de données directement vers la mémoire.
Par exemple :
|
Disques SCSI ↓ Contrôleur PCI-X ↓ DMA ↓ Mémoire système |
Le processeur intervient principalement pour prépare
r et superviser l'opération plutôt que pour copier lui-même chaque octet.
ECC dans PCI-X 2.0
PCI-X 2.0 introduit une amélioration particulièrement importante pour les serveurs :
- ECC - Error Correction Code
Le PCI-SIG indique que l'ECC améliore la robustesse de l'interface et permet de mieux détecter et corriger certaines erreurs affectant les communications.
Cette fonction correspond parfaitement au marché visé par PCI-X :
- serveurs ;
- stockage professionnel ;
- centres de données ;
- télécommunications ;
- systèmes nécessitant une grande fiabilité.
- Signalisation à 1,5 V
PCI-X 2.0 introduit également une signalisation :
- 1,5 V
Cette réduction de tension contribue à permettre les vitesses supérieures de la nouvelle génération.
Le PCI-SIG cite explicitement :
- ECC ;
- signalisation 1,5 V ;
- source-synchronous strobes ;
- messages d'identification des périphériques ;
- variante 16 bits ;
parmi les nouveautés de PCI-X 2.0.
Compatibilité avec PCI
L'un des grands objectifs de PCI-X est de préserver autant que possible la compatibilité avec le PCI existant.
Le PCI-SIG indique que :
- PCI-X 2.0 est logiquement rétrocompatible avec les générations précédentes de PCI et PCI-X.
Mais il existe une nuance essentielle :
- compatibilité logique ≠ compatibilité électrique universelle.
Les cartes PCI-X 266 et PCI-X 533 utilisent des interfaces compatibles :
- 3,3 V et 1,5 V
mais ne sont pas compatibles avec le PCI 5 V.
Il faut donc vérifier :
- tension ;
- détrompeurs du connecteur ;
- largeur du slot ;
- chipset ;
- fréquence ;
- génération PCI/PCI-X.
- Connecteur PCI-X
Le connecteur PCI-X le plus caractéristique est très proche du :
PCI 64 bits
Il est donc sensiblement plus long qu'un slot PCI 32 bits traditionnel.
On peut simplifier :
La ressemblance n'est pas accidentelle : PCI-X a été conçu c0omme une évolution compatible de l'écosystème PCI.
Partage de la bande passante
Contrairement à PCI Express, plusieurs périphériques PCI-X peuvent partager un même segment de bus.
Par exemple :
La bande passante disponible appartient alors au :
- segment PCI-X
et non individuellement à chaque carte.
Si plusieurs cartes effectuent simultanément des transferts intensifs, elles doivent donc se partager les ressources du bus.
Influence du périphérique le plus lent
Cette architecture partagée entraîne une limitation importante.
Selon la conception du système et la manière dont les slots sont regroupés derrière les contrôleurs ou ponts PCI-X, l'installation d'un périphérique plus lent peut imposer une fréquence inférieure au segment concerné.
Un serveur bien conçu peut donc utiliser plusieurs segments indépendants afin d'éviter qu'une carte lente réduise les performances de toutes les autres.
C'est l'une des raisons pour lesquelles les cartes mères de serveurs PCI-X peuvent comporter plusieurs contrôleurs ou ponts.
Utilisation dans les serveurs
PCI-X est principalement destiné aux :
- serveurs
et :
- stations de travail professionnelles.
Il est particulièrement adapté aux cartes demandant une forte bande passante :
- contrôleurs SCSI ;
- contrôleurs Ultra320 SCSI ;
- cartes RAID ;
- interfaces Gigabit Ethernet ;
- interfaces Fibre Channel ;
- contrôleurs de stockage ;
- cartes réseau professionnelles ;
- équipements de télécommunication.
Les constructeurs de serveurs avaient précisément développé PCI-X pour répondre à l'augmentation rapide des besoins d'E/S de ce type de matériel.
PCI-X chez Compaq et HP
PCI-X est particulièrement important dans l'histoire de :
- Compaq
puis :
- Hewlett-Packard
puisque Compaq fait partie des trois entreprises à l'origine de la technologie.
Après le rachat de Compaq par HP, de nombreux serveurs ProLiant utilisent des emplacements PCI-X.
HPE confirme d'ailleurs que certaines cartes PCI-X peuvent fonctionner dans des slots PCI 3,3 V compatibles, tout en précisant que des restrictions propres aux chipsets peuvent exister.
Cela explique pourquoi vous rencontrerez très fréquemment la mention PCI-X dans les fiches techniques de serveurs Compaq ProLiant et HP ProLiant du début des années 2000.
PCI-X chez IBM
IBM est également l'un des trois développeurs originaux de PCI-X.
La technologie correspond particulièrement bien à ses besoins dans les :
- serveurs ;
- stations de travail ;
- contrôleurs d'entreposage ;
- systèmes professionnels.
L'annonce de 1998 associe explicitement :
- IBM + Compaq + Hewlett-Packard
au développement de la nouvelle extension du PCI.
PCI-X et Apple
PCI-X n'est pas exclusivement utilisé sur les serveurs x86.
Apple l'utilise également sur certaines générations du :
- Power Mac G5
avant de passer à PCI Express.
Cela illustre l'un des avantages hérités de PCI : PCI-X n'est pas intrinsèquement lié à l'architecture x86.
PCI-X contre PCI
| Caractéristique | PCI | PCI-X 1.0 |
|---|---|---|
| Architecture | Parallèle | Parallèle |
| Bus partagé | Oui | Oui |
| Largeur courante | 32 bits | 64 bits |
| Fréquence typique | 33 MHz | 66 à 133 MHz |
| Débit typique 32/33 | 133 Mo/s | - |
| Débit 64/66 | 533 Mo/s | 533 Mo/s |
| Débit maximal PCI-X 1.0 | - | ≈ 1,06 Go/s |
| Split transactions améliorées | Non comme PCI-X | Oui |
| Marché dominant | PC | Serveurs/stations |
| Compatibilité | Base de l'architecture | Dérivé de PCI |
PCI-X peut donc être considéré comme une évolution haute performance du PCI parallèle.
PCI-X contre PCI Express
Une erreur extrêmement fréquente consiste à croire que :
- PCI-X = PCI Express
C'est faux.
Le X de PCI-X signifie :
- eXtended
et non :
- Express.
Les architectures sont très différentes.
| Caractéristique | PCI-X | PCI Express |
|---|---|---|
| Nom complet | PCI eXtended | PCI Express |
| Architecture | Parallèle | Série |
| Topologie | Bus partagé | Point à point |
| Largeur caractéristique | 64 bits | x1, x2, x4, x8, x16... |
| Fréquence / génération | Jusqu'à PCI-X 533 | Générations PCIe |
| Bande passante | Partagée sur un segment | Dédiée à chaque lien |
| Transactions | Architecture PCI améliorée | Paquets |
| Usage historique | Serveurs | PC, serveurs, GPU, SSD... |
| Situation actuelle | Obsolète | Standard dominant |
Pourquoi PCI Express a remplacé PCI-X
PCI-X améliore considérablement le PCI, mais il reste limité par son architecture parallèle.
Lorsque la fréquence augmente, il devient de plus en plus difficile de maintenir la synchronisation correcte de nombreuses lignes électriques parallèles.
Il faut gérer :
- propagation des signaux ;
- interférences ;
- synchronisation ;
- longueur des pistes ;
- charge électrique ;
- nombre de périphériques.
PCI Express résout une grande partie de ces difficultés en adoptant des :
- liaisons série point à point
Chaque périphérique obtient alors sa propre connexion au commutateur ou au contrôleur PCIe.
PCI-X et PCI Express dans le même serveur
Pendant la transition technologique, certains serveurs disposent simultanément de :
- PCI-X
et :
- PCI Express
Cela permet aux entreprises de continuer à utiliser leurs coûteux contrôleurs PCI-X tout en adoptant progressivement les périphériques PCIe.
Des ponts :
- PCI Express ↔ PCI/PCI-X
ont également été normalisés. Le PCI-SIG publie par exemple dès 2003 une spécification définissant l'architecture de ces ponts.
Avantages
Les principaux avantages de PCI-X sont :
- compatibilité importante avec l'écosystème PCI ;
- bus de données 64 bits dans ses applications principales ;
- fréquence pouvant atteindre 133 MHz avec PCI-X 1.0 ;
- bande passante supérieure à 1 Go/s avec PCI-X 133 ;
- PCI-X 2.0 permettant des débits encore supérieurs ;
- bus mastering ;
- DMA ;
- transactions fractionnées ;
- utilisation plus efficace du bus ;
- ECC avec PCI-X 2.0 ;
- particulièrement adapté aux serveurs ;
- excellent pour les contrôleurs réseau et entreposage de son époque.
Inconvénients
PCI-X présente également plusieurs limitations :
- architecture parallèle ;
- bande passante partagée entre les périphériques d'un même segment ;
- connecteurs relativement longs ;
- complexité électrique à haute fréquence ;
- contraintes de compatibilité de tension ;
- performances pouvant dépendre des autres périphériques du segment ;
- adoption relativement limitée dans les PC grand public ;
- évolutivité inférieure à PCI Express ;
- progressivement abandonné après l'arrivée de PCIe.
Évolution de la famille PCI
L'évolution historique peut être résumée ainsi :
Il faut toutefois préciser que PCI Express n'est pas techniquement une nouvelle version parallèle de PCI-X : il constitue une architecture d'interconnexion différente.
Comparaison des débits
| Architecture | Configuration | Débit théorique |
|---|---|---|
| PCI | 32 bits / 33 MHz | 133 Mo/s |
| PCI | 64 bits / 66 MHz | 533 Mo/s |
| PCI-X | 100 | 64 bits 800 Mo/s |
| PCI-X | 133 | 64 bits 1,06 Go/s |
| PCI-X | 266 | 64 bits 2,13 Go/s |
| PCI-X | 533 | 64 bits 4,26 Go/s |
Ces chiffres représentent des débits théoriques maximaux et non les performances réelles d'une carte. Les protocoles, arbitrages, périphériques, contrôleurs et charges de travail réduisent généralement le débit réellement obtenu.
Comparaison avec les autres bus
| Architecture | Introduction | Type | Utilisation principale |
|---|---|---|---|
| ISA 8 bits | 1981 | Parallèle | IBM PC |
| ISA 16 bits | 1984 | Parallèle | PC/AT |
| MCA | 1987 | Parallèle | IBM PS/2 |
| EISA | 1988 | Parallèle | Serveurs |
| VLB | 1992 | Parallèle | PC 486 |
| PCI | 1992 | Parallèle | PC et serveurs |
| AGP | 1997 | Parallèle, point à point | Carte graphique |
| PCI-X | 1998-1999 | Parallèle | Serveurs et stations |
| PCI Express | 2003-2004 | Série, point à point | PC, serveurs et périphériques modernes |
Importance historique
Le PCI-X représente l'une des dernières grandes évolutions du bus PCI parallèle. Développé à partir de 1998 par IBM, Hewlett-Packard et Compaq, il répond directement à un problème rencontré par les constructeurs de serveurs : les processeurs, réseaux et systèmes de stockage progressent beaucoup plus rapidement que les interfaces d'entrées/sorties traditionnelles.
Avec PCI-X 1.0, la fréquence maximale passe à 133 MHz et la configuration 64 bits peut fournir environ 1,06 Go/s de bande passante théorique. L'amélioration ne repose pas seulement sur la fréquence : les transactions fractionnées permettent également une meilleure utilisation du bus lorsqu'un périphérique met du temps à répondre.
PCI-X 2.0 pousse ensuite la technologie jusqu'aux classes 266 et 533, tout en ajoutant l'ECC, une signalisation 1,5 V et des techniques de synchronisation adaptées aux débits supérieurs. En 64 bits, la version la plus rapide peut atteindre théoriquement environ 4,26 Go/s.
Malgré ces performances impressionnantes pour un bus parallèle, PCI-X arrive près des limites pratiques de cette approche. Plus les fréquences augmentent, plus il devient difficile de synchroniser un grand nombre de lignes parallèles et de partager efficacement le bus entre plusieurs périphériques.
L'apparition de PCI Express change donc profondément l'architecture des ordinateurs. Avec ses liaisons série point à point et sa bande passante évolutive par nombre de voies, PCIe remplace progressivement PCI-X dans les serveurs et stations de travail.
PCI-X demeure néanmoins historiquement important : il constitue le chaînon haute performance entre le PCI parallèle classique et l'époque PCI Express, et son rôle est particulièrement notable dans les serveurs Compaq/HP ProLiant, IBM et autres systèmes professionnels du début des années 2000.