Qu'est-ce que CXL ?

Abréviation de Compute Express Link. Norme qui, en s'appuyant sur la couche physique du PCI Express, permet le partage de mémoire avec cohérence de cache entre CPU et accélérateurs ou dispositifs mémoire.

Nom japonais: CXL

« CXL » apparaît dans 4 questions d'entraînement réparties sur 2 thèmes, dont Interfaces d'E/S et bus, Mémoires émergentes.

Domaine: Interfaces d'E/S et bus

Pourquoi CXL a été créé

PCI Express (PCIe) transfère les données efficacement, mais ne maintient pas la mémoire des périphériques cohérente avec les caches du CPU ; le logiciel doit donc copier des tampons et vider ou invalider les caches pour partager des données avec un accélérateur. Compute Express Link (CXL) réutilise la couche physique, les connecteurs et la signalisation électrique de PCIe, et ajoute des protocoles qui maintiennent la cohérence des caches et permettent au CPU d'accéder à la mémoire du périphérique par des chargements et écritures ordinaires. CXL 1.x et 2.0 fonctionnent au débit de PCIe 5.0, 32 GT/s par voie, et CXL 3.x passe au débit de PCIe 6.0, 64 GT/s.

Les trois protocoles CXL

CXL.io est essentiellement du PCIe et gère la découverte des périphériques, la configuration, les interruptions et le DMA. CXL.cache permet à un périphérique de mettre en cache la mémoire du CPU dans son propre cache, le matériel en assurant la cohérence. CXL.mem permet au CPU de lire et d'écrire la mémoire rattachée au périphérique comme si elle faisait partie de la mémoire système. Les périphériques sont couramment répartis en trois types : les périphériques de type 1, comme les cartes réseau intelligentes, utilisent CXL.io et CXL.cache ; les accélérateurs de type 2 dotés de leur propre mémoire utilisent les trois ; les extensions mémoire de type 3 utilisent CXL.io et CXL.mem.

Extension et mutualisation de la mémoire

La DRAM qu'un CPU peut connecter directement est limitée par son nombre de canaux mémoire et d'emplacements DIMM. Une extension mémoire CXL ajoute de la capacité, et de la bande passante, via des liens de type PCIe, et avec des commutateurs CXL, un pool de mémoire peut être partagé entre plusieurs serveurs et attribué là où il est nécessaire. La latence d'accès est plus élevée que pour la DRAM directement connectée, souvent comparée à celle d'un accès à la mémoire d'un autre socket CPU ; les systèmes d'exploitation présentent donc généralement la mémoire CXL comme un nœud NUMA distinct et l'utilisent comme un niveau à part, en conservant les données fréquemment consultées dans la DRAM locale.

CXL dans la hiérarchie mémoire

La DRAM et la flash NAND diffèrent d'un facteur d'environ 1000 en temps d'accès, quelques dizaines de nanosecondes contre quelques dizaines de microsecondes, et la mémoire de classe stockage (storage-class memory) avait été proposée pour combler cet écart. Depuis qu'Intel a annoncé en 2022 l'arrêt de ses produits Optane à mémoire à changement de phase, une grande partie de cet espace a été occupée par la NAND SLC à faible latence côté stockage et par la DRAM connectée via CXL côté mémoire. CXL permet aussi aux contrôleurs mémoire situés sur le périphérique d'utiliser des types de mémoire différents de ceux que le CPU prend en charge nativement.

S'entraîner : questions sur CXL

Quelle description de CXL (Compute Express Link) est correcte ?

  1. AUne norme pour relier des chiplets entre eux à l'intérieur du boîtier
  2. BUne norme qui utilise la couche physique de PCI Express et permet le partage de mémoire avec cohérence de cache entre le CPU et des accélérateurs ou des dispositifs mémoire
  3. CUne nouvelle norme de réseau local sans fil
Afficher la réponse et l'explication

Réponse : B. Une norme qui utilise la couche physique de PCI Express et permet le partage de mémoire avec cohérence de cache entre le CPU et des accélérateurs ou des dispositifs mémoire

En PCI Express, la cohérence entre la mémoire du périphérique et les caches du CPU n'est pas assurée par le matériel, et le logiciel devait y veiller. CXL ajoute, sur la même couche physique que PCI Express, une communication assurant la cohérence de cache et une communication permettant au CPU de lire et écrire la mémoire du périphérique comme une mémoire ordinaire. Il sert au partage de données avec les accélérateurs et à l'extension de mémoire.

Quel est l'avantage de l'extension de mémoire par CXL (mémoire CXL) ?

  1. ALa latence est toujours inférieure à celle de la DRAM directement reliée au CPU
  2. BLes données ne sont jamais perdues même hors tension
  3. CElle permet d'augmenter la capacité sans être limité par le nombre de canaux mémoire du CPU, ou de partager la mémoire entre plusieurs serveurs
Afficher la réponse et l'explication

Réponse : C. Elle permet d'augmenter la capacité sans être limité par le nombre de canaux mémoire du CPU, ou de partager la mémoire entre plusieurs serveurs

La quantité de mémoire directement reliable au CPU est plafonnée par le nombre de canaux et d'emplacements mémoire. La mémoire CXL permet d'ajouter de la mémoire en reliant des dispositifs mémoire, par exemple sur des connecteurs PCI Express, et même de répartir une capacité partagée entre plusieurs serveurs via des commutateurs. Cependant, sa latence étant supérieure à celle de la DRAM directement reliée, on l'utilise comme un niveau de hiérarchie, en plaçant par exemple les données fréquemment utilisées dans la mémoire directement reliée.

Questions fréquentes

Que signifie CXL ?

CXL signifie Compute Express Link, une norme d'interconnexion ouverte construite sur la couche physique de PCI Express, qui ajoute un accès mémoire à cohérence de cache entre CPU, accélérateurs et dispositifs mémoire.

Quelle est la différence entre CXL et PCIe ?

Ils partagent la même couche physique et les mêmes emplacements, mais les transferts PCIe ordinaires ne sont pas cohérents avec les caches. CXL ajoute les protocoles CXL.cache et CXL.mem pour que périphériques et CPU puissent partager la mémoire de façon cohérente avec une sémantique de chargement/écriture (load/store).

Qu'est-ce qu'un périphérique CXL de type 3 ?

Un périphérique de type 3 est une extension mémoire qui utilise CXL.io et CXL.mem pour fournir à l'hôte une capacité mémoire supplémentaire, sans mettre lui-même en cache la mémoire de l'hôte.

« CXL » dans les explications

Questions mentionnant « CXL » (4)

  1. Quelle description de CXL (Compute Express Link) est correcte ?
  2. Quel est l'avantage de l'extension de mémoire par CXL (mémoire CXL) ?
  3. Quelle combinaison correspond aux trois protocoles constituant CXL ?
  4. Quelle est la place de la « mémoire de classe stockage » ?

Termes associés

PCI Express Cohérence de cache Via Mémoire non volatile PCM (mémoire à changement de phase) SLC (cellule à un niveau) AXI Branchement à chaud (hot plug) Codage 128b/130b Codage 8b/10b

Retour au glossaire