Dans l’industrie de l’informatique, nous utilisons PCIe en tant que norme depuis longtemps. Il est utilisé pour ajouter des fonctionnalités supplémentaires à un système: graphiques, stockage, ports USB, plus de stockage, mise en réseau, cartes d’extension, stockage, cartes son, Wi-Fi, oh ai-je mentionné le stockage? Eh bien, la seule chose que nous n’avons pas pu mettre dans un slot PCIe est la DRAM – je ne parle pas de la DRAM en tant que périphérique de stockage, mais de la mémoire qui est en fait ajoutée au système en tant que DRAM utilisable. En 2019, une nouvelle norme CXL a été introduite, qui utilise un lien PCIe 5.0 comme interface physique. Une partie de cette norme est CXL.memory – la possibilité d’ajouter de la DRAM dans un système via un slot CXL / PCIe. Aujourd’hui, Samsung dévoile le premier module DRAM spécialement conçu de cette manière.

CXL: un rafraîchissement

La norme CXL d’origine a commencé comme un projet de recherche au sein d’Intel pour créer une interface capable de prendre en charge les accélérateurs, les E / S, le cache et la mémoire. Il s’est ensuite transformé en son propre consortium, avec plus de 50 membres, et le soutien d’acteurs clés du secteur: Intel, AMD, Arm, IBM, Broadcom, Marvell, NVIDIA, Samsung, SK Hynix, WD et autres. La dernière norme est CXL 2.0, finalisée en novembre 2020.

La norme CXL 1.1 couvre trois ensembles d’intrinsèques, appelés CXL.io, CXL.memory et CXL.cache. Ceux-ci permettent un contrôle plus profond sur les appareils connectés, ainsi qu’une extension de ce qui est possible. Le consortium CXL voit trois domaines principaux pour cela:

Le premier type est un cache / accélérateur, tel qu’un moteur de déchargement ou un SmartNIC (un contrôleur de réseau intelligent). Avec les intrinsèques CXL.io et CXL.cache, cela permettrait au contrôleur réseau de trier les données entrantes, de les analyser et de filtrer ce qui est nécessaire directement dans la mémoire des processeurs principaux.

Le deuxième type est un accélérateur avec mémoire, et un accès direct au HBM sur l’accélérateur depuis le processeur (ainsi qu’un accès à la DRAM depuis l’accélérateur). L’idée est une conception de calcul pseudo-hétérogène permettant des solveurs de calcul plus simples mais denses.

Le troisième type est peut-être celui qui nous intéresse le plus aujourd’hui: les tampons mémoire. En utilisant CXL.memory, une mémoire tampon peut être installée sur un lien CXL et la mémoire attachée peut être directement mise en commun avec la mémoire système. Cela permet soit une augmentation de la bande passante de la mémoire, soit une augmentation de l’expansion de la mémoire, de l’ordre de milliers de gigaoctets.

CXL 2.0 introduit également CXL.security, la prise en charge de la mémoire persistante et des capacités de commutation.

Il est à noter que CXL utilise la même interface électrique que PCIe. Cela signifie que tout périphérique CXL aura ce qui ressemble à un connecteur physique PCIe. Au-delà de cela, CXL utilise PCIe dans son processus de démarrage, donc actuellement, tout périphérique prenant en charge CXL doit également prendre en charge une liaison PCIe-PCIe, faisant de tout contrôleur CXL également un contrôleur PCIe par défaut.

L’une des questions les plus fréquentes que j’ai vues est: que se passerait-il si un processeur CXL uniquement était créé? Étant donné que CXL et PCIe sont étroitement liés, un processeur ne peut pas être uniquement CXL, il devrait également prendre en charge les connexions PCIe. Cela étant dit, dans l’autre sens: si nous voyons des cartes graphiques basées sur CXL par exemple, elles devraient également au moins s’initialiser via PCIe, mais des modes de fonctionnement complets pourraient ne pas être possibles si CXL n’est pas initialisé.

Intel est sur le point d’introduire CXL 1.1 sur PCIe 5.0 avec ses processeurs Sapphire Rapids. Microchip a annoncé des resynchronisations basées sur PCIe 5.0 et CXL pour les extensions de trace de la carte mère. Samsung est aujourd’hui la troisième annonce pour les appareils pris en charge par CXL. IBM a une technologie similaire appelée OMI (OpenCAPI Memory Interface), mais qui n’a pas été largement adoptée en dehors des propres processeurs d’IBM.

Module de mémoire CXL de Samsung

Les processeurs modernes s’appuient sur des contrôleurs de mémoire pour l’accès DRAM attaché. Les processeurs x86 haut de gamme ont huit canaux de DDR4, tandis qu’un certain nombre d’accélérateurs ont emprunté la voie HBM. L’un des facteurs limitants de l’augmentation de la bande passante de la mémoire est le nombre de contrôleurs, qui peut également limiter la capacité, et au-delà, la mémoire doit être validée et formée pour fonctionner avec un système. La plupart des systèmes ne sont pas conçus pour simplement ajouter ou supprimer de la mémoire de la même manière que vous le feriez avec un périphérique de stockage.

Entrez CXL et la possibilité d’ajouter de la mémoire comme un périphérique de stockage. Samsung a dévoilé aujourd’hui un module attaché CXL emballé au maximum avec la DDR5. Il utilise une liaison PCIe 5.0 x16 complète, permettant un 32 GT / s bidirectionnel théorique, mais avec plusieurs To de mémoire derrière un contrôleur de tampon. À peu près de la même manière que des entreprises comme Samsung intègrent NAND dans un format U.2, avec un refroidissement suffisant, Samsung fait la même chose ici, mais avec DRAM.

La DRAM est toujours une mémoire volatile et les données sont perdues en cas de coupure de courant. (Je doute qu’il soit échangeable à chaud non plus, mais des choses plus étranges se sont produites). La mémoire persistante peut être utilisée, mais uniquement avec CXL 2.0. Samsung n’a pas indiqué si son appareil prend en charge CXL 2.0, mais il devrait être au moins CXL 1.1 car ils déclarent qu’il est actuellement testé avec la plate-forme Sapphire Rapids d’Intel.

Il convient de noter qu’un slot DRAM moderne est généralement évalué au maximum pour ~ 18W. Les seuls modules de cette fenêtre d’alimentation sont Optane DCPMM d’Intel, mais un module DDR4 de 256 Go serait dans cette plage d’environ 10 + W. Pour un module CXL complémentaire de 2 To comme celui-ci, je suppose que nous cherchons à environ 70-80 W, et donc ajouter cette quantité de DRAM via l’interface CXL nécessiterait probablement un refroidissement actif ainsi que le gros dissipateur thermique que cela rend suggérer.

Samsung ne donne aucun détail sur le module qu’ils dévoilent, sauf qu’il est basé sur CXL et contient de la DDR5. Non seulement cela, mais les «  photos  » fournies ressemblent beaucoup à des rendus, il est donc difficile de dire si elles ont une unité esthétique disponible pour la photographie, ou s’il y a simplement un contrôleur de travail dans un laboratoire d’évolution quelque part qui a été validé sur un système. Dans le cadre de l’annonce, Samsung a cité AMD et Intel, indiquant avec quels partenaires ils travaillent plus étroitement, et ce qu’ils ont aujourd’hui est en cours de validation sur les serveurs Intel de nouvelle génération. Les serveurs Intel de nouvelle génération, Sapphire Rapids, devraient être lancés à la fin de l’année, conformément au contrat de supercalculateur Aurora qui devrait être initialement expédié d’ici la fin de l’année.

Lecture connexe