QuickPath Interconnect (QPI) |
Intel |
|---|---|
| Architecture | |
Introduction
Le QuickPath Interconnect, généralement abrégé QPI et officiellement nommé Intel QuickPath Interconnect, est une architecture d'interconnexion à haute vitesse développée par Intel pour assurer les communications entre processeurs, contrôleurs mémoire et composants d'entrées/sorties dans certaines générations de processeurs Intel. QPI apparaît commercialement avec les architectures Intel de la génération Nehalem, dont les premiers processeurs sont produits durant la seconde moitié de 2008. Intel le décrit comme une interconnexion point à point, à haute vitesse et fonctionnant par paquets, conçue notamment pour les architectures à mémoire partagée distribuée.
QPI marque une rupture importante avec le Front-Side Bus (FSB) utilisé par les générations précédentes de processeurs Intel. Avec le FSB, plusieurs processeurs peuvent devoir partager un même bus pour communiquer avec le chipset et accéder à la mémoire. Cette organisation devient progressivement un goulet d'étranglement lorsque le nombre de cours et de processeurs augmente. QPI remplace cette organisation par plusieurs liaisons série point à point dédiées, procurant davantage de bande passante et une meilleure évolutivité. Intel souligne explicitement le contraste entre QPI et les anciens bus parallèles partagés.
QPI accompagne également un autre changement fondamental introduit avec Nehalem : le contrôleur mémoire est intégré au processeur sur les plateformes concernées. Dans une machine multiprocesseur, chaque processeur peut ainsi disposer de sa propre mémoire locale et utiliser QPI pour communiquer avec les autres processeurs et accéder, lorsque nécessaire, à leur mémoire. Cette organisation correspond à une architecture de type NUMA (Non-Uniform Memory Access).
Les premières implémentations proposent notamment des vitesses de 4,8 GT/s, 5,86 GT/s et 6,4 GT/s, selon le processeur. Des générations ultérieures de Xeon feront fonctionner QPI à des vitesses supérieures. Intel indique également qu'une liaison QPI peut fournir jusqu'à 25,6 Go/s dans les premières implémentations à 6,4 GT/s, en comptant les communications bidirectionnelles.
QPI est particulièrement important dans les serveurs Intel Xeon multiprocesseurs, où il permet de relier directement plusieurs sockets. Il est également employé dans certaines plateformes de bureau haut de gamme. À partir de la famille Intel Xeon Scalable lancée en 2017, Intel remplace QPI par Ultra Path Interconnect (UPI), une architecture dérivée et améliorée destinée aux nouvelles générations de systèmes multiprocesseurs.
Spécifications générales
| Spécification | Description |
|---|---|
| Nom | Intel QuickPath Interconnect |
| Abréviation | QPI |
| Fabricant | Intel |
| Première utilisation commerciale | 2008 |
| Génération associée initialement | Nehalem |
| Type | Interconnexion série point à point |
| Transmission | Par paquets |
| Communication | Bidirectionnelle |
| Duplex | Full-duplex |
| Organisation d'une liaison complète | Deux liens unidirectionnels |
| Largeur caractéristique par direction | 20 bits physiques |
| Données utiles par transfert | 16 bits par direction |
| Bits supplémentaires | 4 bits principalement destinés au contrôle/protocole |
| Vitesses initiales courantes | 4,8 ; 5,86 ; 6,4 GT/s |
| Débit à 6,4 GT/s | Jusqu'à 12,8 Go/s par direction |
| Débit bidirectionnel à 6,4 GT/s | Jusqu'à 25,6 Go/s |
| Protocole | Architecture par paquets et couches |
| Cohérence de cache | Oui |
| Principale utilisation | Communication processeur-processeur et processeur-I/O selon plateforme |
| Architecture mémoire | Mémoire partagée distribuée / NUMA sur systèmes multiprocesseurs |
| Prédécesseur conceptuel chez Intel | Front-Side Bus |
| Successeur sur les Xeon Scalable | Intel Ultra Path Interconnect (UPI) |
Origine de QPI
Pendant de nombreuses années, les processeurs Intel x86 utilisent le :
- Front-Side Bus
ou :
- FSB
L'organisation peut être simplifiée ainsi :
Cette architecture fonctionne correctement avec un petit nombre de processeurs, mais elle devient moins efficace lorsque les besoins en bande passante augmentent.
Plusieurs processeurs doivent partager les ressources du bus.
Avec l'augmentation :
- du nombre de processeurs ;
- du nombre de coeurs ;
- de la vitesse de la mémoire ;
- du trafic d'entrées/sorties ;
le FSB peut devenir un goulet d'étranglement.
Intel développe donc QPI afin d'adopter une organisation reposant sur des liaisons directes à haute vitesse.
Intel présente officiellement QPI comme le successeur d'une évolution historique ayant notamment comporté les bus rapides, les bus quad-pumped et le Dual Independent Bus (DIB).
Une architecture point à point
Contrairement au FSB partagé, QPI utilise des :
- liaisons point à point
Cela signifie qu'une liaison relie directement deux composants.
Par exemple :
Dans une machine plus complexe :
Cette topologie permet d'augmenter le nombre de processeurs sans dépendre d'un unique bus central partagé.
Une liaison série
QPI utilise une transmission :
- série différentielle à haute vitesse
C'est une différence fondamentale par rapport au Front-Side Bus parallèle.
Le principe général rappelle l'évolution rencontrée avec :
| PCI → PCI Express |
Dans les deux cas, un large bus parallèle est remplacé par des groupes de liaisons série à haute vitesse.
Intel explique que QuickPath emploie plusieurs paires de liaisons série rapides plutôt qu'un ancien bus parallèle.
Une liaison bidirectionnelle
Une connexion QPI complète est composée de deux ensembles de transmission indépendants :
La communication peut donc se produire simultanément dans les deux directions.
On parle de fonctionnement :
- full-duplex
Chaque direction dispose de sa propre bande passante.
Largeur de la liaison
Une direction QPI complète comporte :
- 20 bits physiques
dont :
- 16 bits
servent au transport principal des informations, auxquels s'ajoutent des bits utilisés par le protocole et le contrôle de liaison.
On rencontre donc fréquemment la description :
- 20 lanes par direction, dont 16 de données
Il est important de distinguer cette largeur physique de la quantité de données utiles servant au calcul de bande passante.
Calcul du débit
Prenons une liaison QPI fonctionnant à :
- 6,4 GT/s
Chaque transfert transporte :
- 16 bits utiles
soit :
- 2 octets
On obtient :
|
6,4 milliards × 2 octets = 12,8 Go/s |
dans une direction.
Puisque QPI est bidirectionnel :
- 12,8 + 12,8 = 25,6 Go/s
Le débit théorique agrégé est donc :
- 25,6 Go/s
Intel indique officiellement que QuickPath peut atteindre 25,6 GB/s entre composants.
Attention aux GT/s et aux GHz
Une erreur fréquente consiste à écrire :
- QPI fonctionne à 6,4 GHz.
Il est préférable d'écrire :
- QPI offre un débit de transfert de 6,4 GT/s.
GT/s signifie :
- GigaTransfers per second
ou :
- milliards de transferts par seconde.
Il ne faut donc pas confondre directement :
- GT/s
avec :
- GHz.
Les fiches techniques officielles Intel indiquent d'ailleurs le Bus Speed des processeurs QPI en GT/s, par exemple 5,86 ou 6,4 GT/s.
Vitesses QPI
Les vitesses dépendent des générations et modèles de processeurs.
Parmi les premières valeurs courantes figurent :
| Vitesse QPI | Débit utile par direction* | Débit bidirectionnel* |
|---|---|---|
| 4,8 GT/s | 9,6 Go/s | 19,2 Go/s |
| 5,86 GT/s | 11,72 Go/s | 23,44 Go/s |
| 6,4 GT/s | 12,8 Go/s | 25,6 Go/s |
* Valeurs théoriques calculées à partir de 16 bits utiles par transfert.
Les spécifications Intel de différents Xeon de cette époque confirment notamment les vitesses de 5,86 et 6,4 GT/s.
Des générations de Xeon plus récentes augmenteront encore la vitesse de QPI avant son remplacement par UPI.
Protocole par paquets
QPI ne transporte pas simplement des valeurs électriques comme un bus processeur traditionnel.
Il utilise un protocole :
- packet-based
c'est-à-dire :
- basé sur des paquets.
Intel décrit explicitement QPI comme une interconnexion high-speed, packetized, point-to-point.
Les informations sont organisées afin de gérer efficacement :
- les requêtes mémoire ;
- les réponses ;
- les données ;
- la cohérence des caches ;
- le contrôle de la liaison ;
- les erreurs.
Cette conception rapproche QPI d'une véritable architecture réseau interne au système.
Architecture en couches
QPI utilise une architecture organisée en différentes couches logiques.
On peut la représenter de manière simplifiée :
Cette organisation permet de séparer les différentes responsabilités de l'interconnexion.
Couche physique
La :
- Physical Layer
s'occupe notamment de la transmission électrique des informations.
Elle gère :
- les voies physiques ;
- les signaux différentiels ;
- la synchronisation ;
- l'initialisation de la liaison ;
- les transferts entre composants.
Cette couche constitue donc la partie matérielle la plus basse de QPI.
Couche de liaison
La :
- Link Layer
assure le transfert fiable des informations entre deux composants directement connectés.
Elle participe notamment à :
- l'organisation des données ;
- la détection des erreurs ;
- la fiabilité des transmissions ;
- la gestion locale de la liaison.
QPI possède des fonctions de RAS - Reliability, Availability and Serviceability destinées en particulier aux serveurs critiques. Intel souligne explicitement leur intégration à l'architecture.
Couche de routage
La :
- Routing Layer
devient particulièrement importante lorsqu'un système possède plusieurs processeurs.
Supposons :
Si CPU 1 doit communiquer avec CPU 3 sans liaison directe, les informations peuvent devoir traverser CPU 2.
La couche de routage détermine alors le chemin nécessaire pour acheminer le trafic.
Couche protocolaire
La :
- Protocol Layer
gère les opérations de plus haut niveau.
Elle est particulièrement importante pour :
- accès mémoire ;
- cohérence des caches ;
- transactions entre processeurs ;
- requêtes et réponses.
Cette couche permet notamment aux différents processeurs d'une machine multiprocesseur de conserver une vision cohérente de la mémoire.
Cohérence des caches
Dans une machine multiprocesseur, plusieurs processeurs peuvent conserver dans leurs caches des copies d'informations provenant de la mémoire.
Par exemple :
Si CPU 1 modifie cette donnée, CPU 2 ne doit pas continuer indéfiniment à utiliser une ancienne copie.
QPI prend donc en charge des mécanismes permettant de maintenir :
- la cohérence des caches.
Intel indique que QPI dispose notamment d'un protocole de snoop optimisé pour une faible latence et une bonne évolutivité.
Contrôleur mémoire intégré
QPI accompagne une transformation majeure de l'architecture Intel :
- le contrôleur mémoire intégré au processeur.
Avec l'ancienne organisation FSB :
Avec les plateformes Nehalem correspondantes :
Le processeur peut ainsi accéder directement à sa mémoire locale.
QPI sert ensuite à communiquer avec les autres composants et processeurs du système.
Intel associe explicitement QuickPath aux contrôleurs mémoire intégrés pour obtenir une architecture mémoire plus performante et flexible.
Architecture NUMA
Cette organisation devient particulièrement intéressante dans les systèmes multiprocesseurs.
Prenons deux processeurs :
CPU 1 accède très rapidement à :
- RAM A
car cette mémoire est directement reliée à son contrôleur mémoire.
Mais CPU 1 peut également accéder à :
- RAM B
en passant par QPI et CPU 2.
L'accès à RAM B possède généralement une latence supérieure.
Cette architecture est appelée :
- NUMA - Non-Uniform Memory Access
car le temps d'accès à la mémoire dépend de sa position par rapport au processeur.
Mémoire locale et mémoire distante
On distingue ainsi :
Mémoire locale
Mémoire reliée directement au contrôleur mémoire du processeur.
Mémoire distante
Mémoire attachée à un autre processeur.
L'accès distant implique donc une communication supplémentaire par QPI.
Les systèmes d'exploitation modernes compatibles NUMA tentent généralement de placer les données aussi près que possible du processeur qui les utilise.
QPI dans un système à deux processeurs
Un serveur biprocesseur peut être représenté ainsi :
Chaque processeur possède sa mémoire locale mais peut accéder à celle de l'autre processeur.
Plusieurs liaisons QPI
Les processeurs destinés aux serveurs peuvent posséder plusieurs :
- QPI Links
afin de permettre différentes topologies multiprocesseurs.
Par exemple, plusieurs Xeon Westmere possèdent officiellement :
- 2 liens QPI
Intel indique notamment deux liens pour les Xeon X5680, X5670, E5640, E5630, E5620 et E5645.
Le nombre de liens dépend cependant du processeur et de la plateforme.
Il ne faut donc pas écrire que tous les processeurs QPI possèdent deux liens.
QPI et les entrées/sorties
QPI n'est pas exclusivement réservé aux communications CPU-CPU.
Dans certaines architectures Intel, il sert également à connecter le processeur à un composant d'entrées/sorties tel qu'un :
- I/O Hub
Cette organisation remplace certains rôles historiquement assurés par le Northbridge.
Intel indique que QuickPath permet de relier notamment :
- mémoire partagée distribuée ;
- processeurs ;
- coeurs ;
- I/O Hub ;
selon l'architecture considérée.
QPI contre DMI
Il ne faut pas confondre :
- QPI
et :
- DMI - Direct Media Interface.
Les deux technologies sont développées par Intel mais remplissent historiquement des rôles différents.
| Caractéristique | QPI | DMI |
|---|---|---|
| Signification | QuickPath Interconnect | Direct Media Interface |
| Type | Interconnexion série point à point | Interconnexion série point à point |
| Usage caractéristique | CPU ↔ CPU / certains hubs I/O | CPU/chipset ↔ PCH |
| Marché historique | Serveurs et haut de gamme | PC et plateformes générales |
| Cohérence multiprocesseur | Oui | Ce n'est pas son rôle principal |
| NUMA | Oui, dans les systèmes multisockets | Non comme fonction fondamentale |
QPI contre HyperTransport
QPI est souvent comparé à :
utilisé notamment par AMD.
Les deux technologies répondent à des besoins similaires.
| Caractéristique | Intel QPI | HyperTransport |
|---|---|---|
| Développeur principal | Intel | HyperTransport Consortium / AMD à l'origine |
| Type | Série point à point | Série point à point |
| Bidirectionnel | Oui | Oui |
| Communication CPU-CPU | Oui | Oui |
| Mémoire distribuée | Oui | Oui |
| Cohérence possible | Oui | Oui selon implémentation |
| Remplacement d'un bus partagé | FSB Intel | Bus processeur traditionnel |
AMD avait toutefois adopté une architecture comparable plusieurs années avant l'arrivée commerciale de QPI, notamment avec les processeurs Opteron et Athlon 64.
QPI contre Front-Side Bus
| Caractéristique | FSB | QPI |
|---|---|---|
| Architecture | Bus parallèle partagé | Liaisons série point à point |
| Communication | Bus commun | Connexions dédiées |
| Protocole | Bus traditionnel | Paquets |
| Multiprocesseur | Bande passante partagée Liens entre sockets | |
| Contrôleur mémoire traditionnel | Chipset | Intégré au CPU sur plateformes QPI |
| Évolutivité | Limitée | Nettement supérieure |
| NUMA | Pas l'organisation caractéristique | Oui |
| Cohérence de cache | Oui selon plateforme | Intégrée au protocole QPI |
QPI constitue donc une transformation beaucoup plus profonde qu'une simple augmentation de fréquence du FSB.
QPI contre PCI Express
QPI et PCI Express utilisent tous deux des communications série point à point, mais leurs fonctions sont différentes.
| Caractéristique | QPI | PCI Express |
|---|---|---|
| Type | Interconnexion système cohérente | Bus d'E/S |
| CPU ↔ CPU | Oui | Pas son rôle historique principal |
| Carte graphique | Non directement comme bus d'extension | Oui |
| SSD NVMe | Non | Oui |
| Cohérence de cache | Oui | PCIe traditionnel : non |
| Mémoire NUMA | Oui | Non traditionnellement |
| Connecteur d'extension utilisateur | Non | Oui |
| Protocole par paquets | Oui | Oui |
Ainsi, QPI n'est pas un remplaçant de PCI Express.
Les deux peuvent coexister dans la même architecture.
Évolution des performances
Les premières générations de QPI comportent notamment des vitesses comme :
- 4,8 GT/s
- 5,86 GT/s
- 6,4 GT/s
Les générations Xeon suivantes augmentent progressivement les performances de l'interconnexion.
Il faut donc éviter de définir QPI uniquement comme une technologie à 6,4 GT/s.
Cette valeur correspond surtout aux implémentations hautes performances des premières générations Nehalem/Westmere.
Reliability, Availability et Serviceability
QPI est conçu en grande partie pour les serveurs professionnels.
Il intègre donc des fonctions :
- RAS
c'est-à-dire :
- Reliability ;
- Availability ;
- Serviceability.
Intel souligne que les fonctions RAS font partie intégrante de l'architecture QPI afin de répondre aux besoins des serveurs critiques.
L'interconnexion dispose notamment de mécanismes permettant de détecter certaines erreurs et de préserver la fiabilité des communications.
Avantages
Les principaux avantages de QPI sont :
- très grande bande passante ;
- architecture point à point ;
- communication bidirectionnelle simultanée ;
- protocole par paquets ;
- meilleure évolutivité multiprocesseur que le FSB ;
- support de la cohérence des caches ;
- adaptation aux architectures NUMA ;
- communication directe entre sockets ;
- contrôleur mémoire intégré associé aux architectures QPI ;
- réduction du goulet d'étranglement du FSB ;
- fonctions RAS adaptées aux serveurs ;
- possibilité de disposer de plusieurs liens QPI par processeur.
Inconvénients
QPI possède également certaines contraintes :
- architecture relativement complexe ;
- consommation électrique des liaisons à haute vitesse ;
- nécessité de gérer correctement la topologie NUMA ;
- latence plus importante pour la mémoire distante que pour la mémoire locale ;
- performances dépendant de la topologie des sockets ;
- nombre de liens QPI limité selon le processeur ;
- technologie principalement réservée aux plateformes Intel haut de gamme et serveurs ;
- remplacée ultérieurement par UPI.
Remplacement par Ultra Path Interconnect
Avec la génération :
- Intel Xeon Scalable
Intel introduit :
- UPI - Ultra Path Interconnect
comme successeur de QPI.
Intel indique explicitement qu'UPI succède à Intel QuickPath Interconnect.
Les Xeon Scalable de première génération disposent, selon les modèles, de deux ou trois liens UPI pouvant atteindre :
- 10,4 GT/s.
Les générations suivantes continuent à améliorer UPI ; Intel documente par exemple des vitesses atteignant 11,2 GT/s sur certaines générations puis 16 GT/s sur la quatrième génération Xeon Scalable.
L'évolution peut donc être représentée simplement :
|
Front-Side Bus ↓ Intel QPI ↓ Intel UPI |
Comparaison chronologique
| Interconnexion | Apparition | Type | Usage caractéristique |
|---|---|---|---|
| Front-Side Bus | Années 1990 et avant | Parallèle partagé | CPU ↔ chipset |
| HyperTransport | 2001 | Série point à point | CPU ↔ CPU / chipset |
| PCI Express | 2003-2004 | Série point à point | Périphériques |
| QPI | 2008 | Série point à point cohérente | CPU ↔ CPU / système |
| DMI | Années 2000 | Série point à point | CPU/chipset ↔ PCH |
| UPI | 2017 | Série point à point cohérente | Xeon multisocket |
Importance historique
Le QuickPath Interconnect représente une étape majeure dans l'évolution des architectures Intel. Son importance ne réside pas seulement dans l'augmentation de la bande passante : il participe au remplacement d'une organisation centrée sur un Front-Side Bus partagé par une architecture composée de liaisons point à point à haute vitesse.
Avec QPI et les contrôleurs mémoire intégrés des architectures correspondantes, chaque processeur d'un serveur multiprocesseur peut disposer d'un accès direct à sa mémoire locale tout en communiquant avec les autres processeurs. Cette organisation permet à Intel d'adopter à grande échelle une architecture de mémoire partagée distribuée adaptée aux systèmes NUMA. Intel décrit précisément QPI comme une interconnexion point à point par paquets destinée à relier les processeurs dans ce type d'environnement.
Les premières générations proposent des vitesses atteignant 6,4 GT/s, et une liaison correspondante peut fournir jusqu'à 12,8 Go/s dans chaque direction, soit 25,6 Go/s de bande passante bidirectionnelle agrégée. Intel confirme cette valeur maximale de 25,6 Go/s pour les premières implémentations QuickPath.
QPI joue surtout un rôle majeur dans les familles Intel Xeon, où plusieurs liens peuvent relier directement les sockets d'un serveur. Les fiches Intel montrent par exemple que plusieurs Xeon Westmere disposent de deux liens QPI à 5,86 ou 6,4 GT/s.
À partir de Xeon Scalable, Intel fait évoluer cette architecture vers Ultra Path Interconnect (UPI). QPI demeure néanmoins historiquement essentiel : il marque l'abandon du FSB partagé sur les grandes plateformes Intel et prépare l'architecture moderne des serveurs multiprocesseurs Intel.