Section courante

A propos

Section administrative du site

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 :

ou :

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 :

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 :

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 :

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 :

Chaque direction dispose de sa propre bande passante.

Largeur de la liaison

Une direction QPI complète comporte :

dont :

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 :

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 à :

Chaque transfert transporte :

soit :

On obtient :

6,4 milliards × 2 octets

=

12,8 Go/s

dans une direction.

Puisque QPI est bidirectionnel :

Le débit théorique agrégé est donc :

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 :

Il est préférable d'écrire :

GT/s signifie :

ou :

Il ne faut donc pas confondre directement :

avec :

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 :

c'est-à-dire :

Intel décrit explicitement QPI comme une interconnexion high-speed, packetized, point-to-point.

Les informations sont organisées afin de gérer efficacement :

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 :

s'occupe notamment de la transmission électrique des informations.

Elle gère :

Cette couche constitue donc la partie matérielle la plus basse de QPI.

Couche de liaison

La :

assure le transfert fiable des informations entre deux composants directement connectés.

Elle participe notamment à :

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 :

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 :

gère les opérations de plus haut niveau.

Elle est particulièrement importante pour :

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 :

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 :

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 à :

car cette mémoire est directement reliée à son contrôleur mémoire.

Mais CPU 1 peut également accéder à :

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 :

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 :

afin de permettre différentes topologies multiprocesseurs.

Par exemple, plusieurs Xeon Westmere possèdent officiellement :

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 :

Cette organisation remplace certains rôles historiquement assurés par le Northbridge.

Intel indique que QuickPath permet de relier notamment :

selon l'architecture considérée.

QPI contre DMI

Il ne faut pas confondre :

et :

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 :

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 :

c'est-à-dire :

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 :

Inconvénients

QPI possède également certaines contraintes :

Remplacement par Ultra Path Interconnect

Avec la génération :

Intel introduit :

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 :

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.



Dernière mise à jour: Vendredi, le 31 janvier 2020