bdavid32 - stock.adobe.com
Stockage : tout comprendre aux prochains SSD CXL
Encore à l’étude, les SSD CXL seront des SSD équipés d’un cache énorme pour des performances maximales. Ils seront utilisés comme de la mémoire persistante, en remplacement des Optane.
Après les SSD NVMe qui se connectent directement sur un bus PCIe, les fournisseurs préparent des SSD CXL. CXL, ou Compute Express Link, correspond à une extension du protocole PCIe qui supporte le réseau. L’avantage principal du CXL est que les extensions PCIe – RAM, contrôleurs Ethernet, contrôleurs FC, GPUs, ASICs et, donc, SSD – deviennent directement partageables entre plusieurs serveurs. En pratique, on peut les regrouper dans un pool central dont chaque ressource est utilisée à tour de rôle par les serveurs du réseau CXL.
Dans ce contexte, les SSD CXL sont des SSD NVMe conçus pour être utilisés comme de la mémoire persistante, à disposition des serveurs qui en auraient besoin. Une mémoire certes plus lente que de la RAM véritable, mais plus rapide que n’importe quel support de stockage conventionnel pour recharger une base de données quand un serveur redémarre. Plus rapide, car le serveur n’a pas à accéder à un stockage pour « charger » l’intégralité d’une base de données dans sa mémoire, avant d’être disponible. Au démarrage, le contenu d’un SSD CXL est directement vu comme le contenu de la RAM et l’application est immédiatement disponible.
Les données sont potentiellement rapatriées dans une RAM plus rapide quand l’application du serveur s’en sert.
Qu’est-ce qu’un SSD CXL ?
Via le protocole CXL, un SSD peut être accédé comme s’il s’agissait d’une mémoire, via le sous-protocole CXL.mem, ou comme une unité de stockage en mode bloc, via le sous-protocole CXL.io. Un SSD NVMe classique est un périphérique CXL.io. Un SSD CXL est un périphérique CXL.mem.
Le protocole CXL.mem a été développé pour inclure les extensions distantes dans la plage d’adresses de la mémoire du processeur d’un serveur. L’une des caractéristiques du protocole CXL.mem est de gérer la cohérence. En effet, lors du fonctionnement normal d’un serveur, le contenu d’une adresse mémoire est potentiellement obsolète par rapport à la réplique de cette adresse dans le cache d’un cœur. Ce n’est pas grave tant qu’un autre cœur du serveur n’essaie pas de lire cette adresse mémoire. Le schéma CXL de cohérence de la mémoire est soigneusement défini pour garantir que des données anciennes ne parviennent jamais à un cœur si une version plus récente existe dans la mémoire cache d’un autre cœur.
CXL gère les synchronisations entre la mémoire distante, nécessairement plus lente, et la mémoire proche. Un SSD CXL pousse le concept dans ses derniers retranchements, puisqu’il est beaucoup plus lent que n’importe quelle RAM. Pour autant, il est probable que les SSD CXL qui arriveront sur le marché soient systématiquement équipés d’une RAM embarquée potentiellement importante, bien plus importante que toute mémoire cache que l’on trouve sur des SSD conventionnels.
Samsung montre la voie à suivre
Samsung est actuellement le plus fervent défenseur des SSD CXL. Il a ainsi présenté des prototypes, dénommés chez lui MS-SSD (Memory Semantic SSD), lors du salon américain Memory Flash Summit de 2022. Ces SSD sont vus par un processeur comme une extension mémoire.
À la différence des barrettes de DRAM qui fonctionnent nécessairement à une vitesse synchrone avec le bus du processeur, les mémoires accédées via CXL supportent des ralentissements, et même des ralentissements potentiellement importants. Ce dispositif découle en réalité des développements qu’Intel avait précédemment réalisés pour ses modules Optane. Ceux-ci étaient basés sur des circuits de mémoire persistante 3D XPoint qui fonctionnaient à une vitesse intermédiaire entre les NAND des SSD et les circuits DRAM des barrettes DDR.
Dans son MS-SSD, Samsung a non seulement implémenté le fonctionnement du CXL, mais aussi les travaux de la SNIA pour interfacer les logiciels avec de la mémoire persistante plus lente que la mémoire RAM principale. À l’époque, les travaux de la SNIA ne devaient concerner que les barrettes de mémoire Optane. Une technologie entretemps abandonnée par Intel.
Pour autant, les SSD à base de NAND sont bien plus lents que des Optane. Pour compenser cette lenteur, Samsung a équipé son prototype, affichant 2 To de capacité, de 16 Go de RAM. Soit autant de mémoire qu’un PC complet rien que pour un SSD. Aussi impressionnante que puisse être cette quantité, il est probable qu’elle devienne la norme des SSD CXL.
La taille de la mémoire cache s’avère toutefois payante. Dans les benchmarks que Samsung a partagés lors de cet événement, la société a déclaré qu’elle était en mesure d’améliorer les performances en lecture aléatoire d’environ 1 900 % par rapport aux SSD existants. Samsung affirme que le MS-SSD peut se présenter à son hôte comme une extension de 2 To de la mémoire du serveur. La latence moyenne de cette mémoire dépend du taux de réussite du cache interne du SSD.
Il n’est pas nécessaire que la totalité des 2 To de ce SSD soit mappée en tant que mémoire. L’appareil de Samsung peut se diviser en zones de mémoire (soit des périphériques CXL.meme) et en zones de SSD NVMe (soit des périphériques CLX.io). Samsung appelle cela le « dual mode ». Il est censé offrir une plus grande flexibilité.
Prendre en compte la persistance
Le prototype de Samsung ne prend pas totalement en charge la persistance de la mémoire. En effet, il faudrait que le contenu des 16 Go de DRAM du MS-SSD soit préservé lors d’une coupure de courant, soit pour toute la durée de la coupure, soit jusqu’à ce que l’ensemble de ce contenu ait sauvegardé dans les circuits NAND du MS-SSD. Dans les deux cas, l’appareil devrait être équipé d’une pile. Samsung en promet une dans son second prototype.
Si les disques SSD CXL parviennent à faire leur chemin jusqu’aux salles informatiques des entreprises, alors le travail des administrateurs responsables du stockage évoluera de la même manière que si l’Optane d’Intel s’était généralisé.
En effet, travailler avec des mémoires persistantes pose le risque nouveau que des données sensibles résident en clair sur des SSD CXL que n’importe qui pourrait dérober moyennant un accès physique. Alors que sur des SSD classiques, ces données auraient été sauvegardées moyennant un chiffrement à la volée.
Autres développements du SSD CXL
Outre Samsung, Kioxia évoque l’arrivée d’un SSD CXL qu’il conçoit autour de ses puces propriétaires XL-Flash. XL-Flash est un type de mémoire Flash axé sur la vitesse, probablement inspiré des mémoires 3D XPoint. Kioxia se vante d’atteindre des vitesses similaires, voire supérieures à l’Optane. En revanche, si les barrettes de mémoire Optane n’offraient que deux fois plus de capacité que les barrettes de DRAM, les puces XL-Flash devraient offrir dix fois plus de capacité que les puces Optane.
Kioxia devrait a priori utiliser aussi de la RAM en guise de cache sur son SSD CXL. Mais, à la différence de Samsung, il annonce qu’il doublera ce dispositif d’un système de compression à la volée. Un simulateur de ce SSD CXL devrait être disponible sous peu, en attendant de voir un prototype, pour lequel aucune date n’a été évoquée.
Citons aussi les travaux du laboratoire CAMEL (Computer Architecture and Memory Systems Laboratory) de l’institut de science et de technologie de Corée. En partenariat avec RISC-V et le consortium OpenExpress, il simule depuis plusieurs mois le fonctionnement d’un SSD CXL afin de mieux comprendre les avantages qu’il pourrait réellement offrir en termes de performances. Son simulateur repose sur un SSD de 32 Go composé de puces Z-NAND, des circuits Flash développés par Samsung pour concurrencer les XL-Flash de Kioxia.
Selon les premières observations du laboratoire, les performances dépendent fortement de la localisation des données dans le SSD. Au mieux, son disque SSD CXL a fourni une latence seulement 2,4 fois supérieure à celle de la DRAM locale de l’unité centrale (et 129 fois inférieure à celle d’un SSD NVMe). Au pire, la latence du SSD CXL était 84 fois supérieure à celle de la DRAM (et 50 % inférieure à celle d’un SSD NVMe). Plus les données sont éparpillées dans les adresses mémoire, plus la latence est exponentielle.