Mémoire-vive DDR3

Composant essentiel, devenu commun et sans grand intérêt en comparaison avec les processeurs et accélérateurs graphiques, mais cependant complexe, la mémoire-vive est aujourd’hui l’un des derniers goulots d’étranglements pour une industrie orientée vers les performances brutes sans limites. 

Mémoire à accès aléatoires, mémoire volatile ou mémoire-vive, en opposition à la mémoire « morte », qui elle conserve sa charge après arrêt complet du système, ce composant permet le stockage temporaire d’informations à l’intention du processeur, qui peut également s’en servir afin de mettre en cache des données pour utilisation future. 

Nous vous proposons, par l’intermédiaire de cet article, un bref tour d’horizon des technologies gravitant autour de ces barrettes clipsables, qui ont, depuis l’ère des Pentium et des Athlon, bien évoluées et qui semblent dorénavant en mesure de s’adapter aux besoins actuels : Fortes capacités, hautes fréquences, multiplication des accès, correction d’erreurs et autres fonctionnalités si cruciales à l’heure où l’IA ; et la technologie dans sa globalité ; prend une part si conséquente de notre quotidien. 

La RAM actuelle

Initions cet article par la présentation des technologies actuelles liées à la mémoire-vive, et notamment des deux familles de mémoire : la mémoire statique (SRAM) et la mémoire dynamique (DRAM).

La première conserve les électrons représentant les bits d’information dans des cellules composées de plusieurs transistors, tandis que la seconde n’utilise qu’un transistor et un accumulateur, qui sert de zone de stockage temporaire pour les opérations arithmétiques, à l’instar de ceux que l’ont peut trouver dans les registres du processeur.

Initialement, la SRAM, bien que plus performante que la DRAM, n’était souvent pas remplaçable par l’utilisateur final et était plus onéreuse que sa contrepartie.

Afin de pallier ce manque de performance, une nouvelle technologie de mémoire à vu le jour au milieu des années 1990 : la SDRAM (de la DRAM Synchrone). Le fonctionnement de cette mémoire est similaire à celui de la DRAM, mais les transferts sont synchronisés par un signal d’horloge (une « clock« ) externe au banc de cellules mémoires.

Mémoire-vive SDRAM
Mémoire "SDRAM" pour systèmes de 1995-2005

Et encore une fois, avec le gain de performance global des autres composants, la SDRAM s’est vue adaptée afin d’intégrer de nouvelles manières de transférer les bits d’information : C’est l’apparition de la DDR (Double-Data Rate), par opposition à la mémoire classique qui elle, était de type SDR (Single-Data Rate).

La SDRAM conventionnelle ; SDR ; utilise des signaux d’horloge, mais elle ne le fait qu’avec une seule phase de chaque signal (quand le signal monte ou quand il descends), tandis que la version DDR utilise les deux phases du signal (quand il monte et quand il descends) afin d’initier les transferts d’information.

Schéma illustrant le fonctionnement de la mémoire-vive SDRAM SDR et DDR

Depuis les années 2000, la mémoire-vive la plus utilisée dans les systèmes est la SDRAM DDR et de nombreuses générations de celle-ci, appelées DDR1, DDR2, … DDR5, sont depuis sorties. La DDR5 est le standard actuellement utilisé dans les systèmes modernes, des ordinateurs portables ultrafins, aux portables et smartphones utilisant des versions basses consommation et soudées, en passant par les serveurs de calcul AI-Oriented des Datacenters et autres méso centres.  

Nous vous passons les quelques technologies divergentes et prometteuses n’ayant, in fine, pas suffisamment vu le jour afin d’être mainstream (RAMBUS…), retenez surtout que les fondements n’ont que peu changés et que les gains de performances sont surtouts liés aux évolutions de tension entre les modules, à l’augmentation de la densité de ceux-ci et à l’optimisation des opérations de prefetch, qui chargent l’information avant utilisation, réduisant le temps d’attente total (temps de latence).

Mémoire-vive multicouches
Image illustrant le principe d'augmentation de la densité des puces NAND

Vous noterez ici une illustration de l’augmentation de la densité des puces de mémoire-vive ; présentée sur un SoC ; qui équivaut à la démultiplication du nombre de packages NAND et de leur combinaison sur l’axe Z ; à gauche de l’illustration ; afin de gagner en espace sans « grignoter » davantage de surface. 

Enfin, selon le cas d’utilisation, la SDRAM DDR peut exister dans différents formats (DIMM pour les mémoires-vive compatibles serveurs, workstations et ordinateurs de bureau, SODIMM pour les ordinateurs portables) et embarquer différentes fonctionnalités supplémentaires, pour la détection et la correction d’erreurs potentielles notamment (technologie ECC) : RDIMM, UDIMM, LRDIMM, …

Les différences entre MHz et MT/s

Présentons maintenant, quelques brefs instants c’est promis, les indicateurs liés à la mémoire-vive : Dans ce domaine, en définitive peu éloigné de celui du stockage, il n’est pas question d’IOPS, d’AFR, de DWPD ou de TOPHBW (nous vous présentions ces indicateurs et plus particulièrement le dernier dans cet article il y a peu) mais essentiellement de MT/s et de MHz.

Vous les voyez en Arial 11 sur les stickers apposés sur les barrettes de RAM, sur les configurations des ordinateurs de bureaux et plus récemment, dans le monde des serveurs et des datacenters, au frontispice des comparatifs et autres sites de fabricants et revendeurs car leur importance est cruciale, surtout pour les processeurs de dernières générations nécessitant des mémoires toujours plus performantes, mais quelles sont leurs différences et pourquoi l’industrie semble être passée du MHz au MT/s ?

Fondamentalement, même si ces deux indicateurs peuvent être interchangés selon une règle de conversion ; peu compréhensible il faut l’admettre ; le premier mesure la vitesse des puces de la mémoire-vive selon la fréquence à laquelle celles-ci peuvent changer de voltage en une seconde (1MHz = 1 Million de cycles de changements de voltage par seconde), tandis que le second exprime cette vitesse selon le volume d’information pouvant être transféré en une seconde entre lesdites puces et le reste du système (1MT/s = le transfert d’un mégaoctet d’information en une seconde).

Loin de nous l’envie d’être prolixe et de vous perdre, retenez simplement que l’utilisation de l’indicateur basé sur la fréquence permet d’avoir une mesure physique de la performance de la mémoire-vive, tandis que le second, basé sur le volume de données, reste plus théorique et permet d’avoir une mesure plus tangible auprès des consommateurs finaux, accoutumés des transferts de données entre les supports de stockage conventionnels. 

Le JEDEC

Enfin, vous vous en doutez, tout ce petit monde de la mémoire est régi par des normes et des standards. L’entité maitre en la matière, c’est le JEDEC. Le JEDEC (Joint Electron Device Engineering Council) est une association regroupant des représentants de plus de 350 entreprises en comités, sortes de clubs de recherche, développement et innovation, dont les missions sont centrées autour de la standardisation (définition de protocoles de tests et d’utilisation, description et procédures de fabrication, …) de composants informatiques centrés autour de la mémoire Flash (stockage NVMe, stockage intégré aux SBC, mémoires-vives, …) et leur normalisation pour des utilisations « mass-market ».

Vous pouvez rejoindre l’un des comités du JEDEC pour « seulement » 7000$, si vous souhaitez participer à la R&D de puces novatrices, pour GPU et autres accélérateurs, en passant par celles des smartphones avec la mémoire eMMC et aux satellites avec des puces NAND résistantes aux radiations, faute de protection naturelle car absence d’atmosphère dans l’espace.

Le comité 45 est notamment dédié aux questions gravitant autour des puces de mémoire-vive. 

https://www.jedec.org/committees/jc-45

La CAMM

Ce format de mémoire pour laptop, initialement conçu par et pour DELL sous le nom CAMM, puis standardisé par le JEDEC en Novembre 2023 dans le rapport JESD318 sous le nom CAMM2, se décline en deux versions : Les modules CAMM classiques, rectangulaires, sont plutôt destinés aux cartes-mères d’ordinateurs de bureaux et les modules LPCAMM, pour Low-Profile, plutôt trapézoïdaux, sont davantage destinés aux laptops.

Mémoires CAMM2 et LPCAMM2

Les concepts globalement retenus quant à la création de ce format de mémoire sont le gain de place (moindre épaisseur que leur équivalents actuels, formats SODIMM) et d’efficience (performances accrues pour une consommation moindre), sans parler de la capacité, qui peut grimper à plus de 128Gb par barrette.

Ces modules diffèrent des mémoires pour laptops aux formats conventionnels par leur format mais également par leur connecteur. En effet, ceux-ci ne présentent pas de pins sur leur tranche, mais, à l’instar des CPU en socket LGA (Land Grid Array), des points de contacts dispersés à leur verso. Selon la taille des modules, il pourrait y avoir de 178 à 644 de ces points.

C’est un assemblage délicat, entre le module et la carte mère, présentant elle aussi une série de points de contacts en sa surface, composé de petits pins en or retenus dans une matrice en plastique qui fait office de connexion entre les deux circuits imprimés. C’est de ce mode de montage dont vient le nom compression-attached.

Éclaté de l'assemblage d'un module de mémoire CAMM2 avec matrice de pins

La pression est essentielle dans ce type de montage pour assurer la continuité électrique entre les points de contact, c’est pourquoi ces modules peuvent être vissés en quatre points ou plus à ladite carte-mère. Moins de plug-and-play donc, mais des gains de performance et des vitesses de transfert plus élevées, notamment grâce aux traces des PCB plus courtes.

D’autant plus que coté bande passante, les modules CAMM2 en DDR5 pourraient performer, de manière théorique, à près de 9200MT/s et ceux en LPDDR6 à 14400MT/s.

Actuellement, seuls quelques fabricants proposent de la RAM sous ce format :

La MRDIMM

Loin des laptops ; et des ordinateurs de bureau également ; c’est du coté des serveurs et des datacenters que nous nous penchons dorénavant. Le secteur du HPC (High-Performance Computing) est aujourd’hui plus que jamais à la recherche de solutions innovantes pour optimiser le calcul de masse.

Outre l’IA et le Machine Learning, d’autres tâches ; dont la recherche génomique, pour la création de nouveaux médicaments et la dynamique des fluides, dont les simulations sont essentielles aux secteurs de l’aviation et de la pétrochimie ; sont toujours plus gourmandes en ressources : GPU refroidis par des circuits fermés d’eau dissipant la chaleur, unités de calcul hybrides, nommées APU, combinant CPU et GPU, …

L’attention est actuellement portée sur la maximisation de l’espace réservé à la mémoire-vive (il est d’ailleurs courant de trouver actuellement des systèmes en comportant plusieurs téraoctets) !

Face à ces besoins et quand les standards actuels semblent trop limités, plusieurs constructeurs se sont réunis afin de développer la MRDIMM. Également parfois appelée MCRDIMM ou QDRDIMM (à tort….), sa fonction est similaire aux mémoires RDIMM et LRDIMM DDR4 et DDR5 actuelles, avec algorithmes de détection et correction d’erreurs (fonctions ECC).

La MRDIMM existe également en deux formats différents : le LP pour « Low-Profile » et le TFF pour « Tall Form-Factor ».

Notez qu’ici, le LP équivaut à la taille (ou hauteur) classique d’une barrette de mémoire DDR4 ou DDR5, rien à voir, si ce n’est la dénomination, avec les DDR4/DDR3 Low Profile (parfois appelée Very Low-Profile) dont la hauteur correspond à celle d’une puce NAND +/- quelques millimètres.

Les différences résident principalement en l’augmentation des vitesses de transfert et aux gains de capacité :

La largeur du bus de ces barrettes est aussi améliorée (x80) mais la latence s’en trouve impactées : CL36 sur celles de 8800MT/s (Gen 1) et CL52 sur les versions 64Gb de 12800MT/s voir plus sur les 14400MT/s (Gen 2 et 3 respectivement) prévus prochainement.

Breaking News : Cap sur la CUDIMM et la CSODIMM!

Bien que trop peu exotiques pour qu’elles méritent une section à part entière dans cet article, il nous paraissait cependant intéressant de mettre en avant ces barrettes, dont la seule différence notable avec les DIMM classiques DDR5 est l’ajout d’un circuit de type « clock » en amont du banc de puces. 

Ce type de mémoire se rapproche davantage de la MRDIMM que de la CAMM et du CXL, c’est pourquoi cette section est intégrée ici-même.

L’ajout d’un « clock driver » n’est pas nouveau, les barrettes DDR5 pour serveur et workstation, supportant les fonctions de détection et de correction d’erreurs, intègrent depuis leur sortie ce type de circuit, mais ces version ; CUDIMM pour Clock-UDIMM et CSODIMM pour Clock-SODIMM (barrettes format laptop) ; sont destinées aux cartes-mères consumers et prosumers conventionnelles. 

Vous trouverez un article vous présentant en détail ces « nouvelles » barrettes sur le site de ServeTheHome, dont le contenu ne cesse d’être actualisé et que nous ne pouvons que vous recommander. 

Le CXL

Le CXL, c’est avant tout un protocole, qui, à l’instar de celui utilisé par le BUS PCIe, a pour vocation première d’interconnecter des composants (CPU, mémoire, accélérateurs, …). Celui-ci est géré par un consortium composé de géants du secteur des semiconducteurs et de l’IT (Intel, AMD, Ampere et ARM représentant les processeurs, Micron et Samsung pour la mémoire, HPE, Lenovo et DELL pour les serveurs, Google, Microsoft et IBM sur la partie cloud, Cisco pour le réseau, … et bien d’autres !).

Ce protocole est différent car il permet le partage direct et entre composant de mémoire, là où les données transitant par PCIe passent systématiquement par le processeur (c’est d’ailleurs entre autres pour cela que le BUS NVLink de Nvidia a été inventé, pour permettre le partage de bits d’information directement entre les puces des cartes-graphiques, afin de faciliter de surtout d’accélérer les traitements, fortement ralentis de manière traditionnelle par les processeurs).

Les traitements se doivent d’être instantanés, surtout dans les tâches d’IA et de ML et le CXL est justement là pour ça !

Il existe trois niveaux de CXL : le Type 1 (CXL.io), le Type 2 (CXL.cache) et le Type 3 (CXL.mem).

Le premier niveau est utilisé entre des composants pour les étapes d’initialisation, de handshake et de discovery (découverte des composants au niveau logique bas). Les composants implémentant ce niveau sont généralement des FPGA ou de petits accélérateurs, ne disposant pas ou de peu de mémoire et ayant besoin d’accéder à celle du système.

Le deuxième niveau est intégré auprès de composants nécessitant des accès fréquents et conséquents en volumétrie à de la mémoire locale ou partagée (DDR ou HBM) : Processeurs, GPU, ASICS spécialisés, … Ils peuvent donc utiliser la pool de mémoire partagée en CXL comme une zone de cache supplémentaire pour leurs traitements.

Enfin, le dernier niveau de ce protocole sert exclusivement pour l’accès à des pools de mémoire additionnelles, qui viennent s’ajouter en plus dans les systèmes et qui peuvent être usitées par les composants cités précédemment. C’est ce niveau qui nous intéresse dans cet article, car il permet l’ajout de mémoire-vive via un BUS existant, le PCIe par exemple, à un système hôte limité (en slots de mémoire-vive DDR4 ou DDR5).

Vous trouverez une présentation détaillée du fonctionnement des niveaux de mémoire CXL à cette adresse, directement auprès du consortium CXL

Module de mémoire CXL format E3.S

Car oui, l’industrie des accélérateurs de calcul à beau croitre de manière quasi exponentielle ; surtout grâce à Nvidia et à AMD ; les BUS permettant aux données de transiter entre les composants sont toujours assez limités et les performances s’en retrouvent impactées.

Cela crée des goulots d’étranglement, et du coté de la mémoire, c’est la même chose : les processeurs supportent des quantités de plus en plus conséquentes (jusqu’à plusieurs téraoctets de mémoire avec des MRDIMM pour les Xeon 6 d’Intel) mais les vitesses de transfert atteignent des plafonds de verre.

Notons d’ailleurs la récente présentation, lors du OCP Summit 2024 (salon annuel porté par le consortium Open Compute Projet pour du hardware industriel et Datacenter inter-compatible/libre), d’un module rackable de la société Inventec ; assimilable à un banc de mémoire massif ; compatible avec les Xeon 6 d’Intel ; série Granite Rapids ; mettant en avant 96 slots de mémoire DDR5 accessibles via des ports CDFP, utilisant un BUS PCIe Gen 5 de 16 voies (présentation disponible sur le site de STH – ServeTheHome)

C’est également grâce aux travaux et aux efforts de l’OCP qu’il nous est possible d’avoir des GPU pour Datacenters supportant des plateformes Open-Source, notamment avec le format OAM utilisé par AMD pour ces puces de gamme Instinct et par Intel avec les GPU Gaudi, nous vous en parlions dans cet article il y a quelques mois

SSD CXL Samsung

Notez la différence de connecteur : La tendance est davantage portée sur l’utilisation d’un connecteur type EDSFF 1C (ceux des SSD E1.S et E1.L) ou 2C (type E3.S ou E3.L modifiés) mais ce module, conçu par Samsung, présente une version 3C, utilisée notamment dans les cartes réseau Mezzanine, aussi appelées OCP 3.0 (standard Open Compute donc open source et interopérable entre les systèmes) 

Le CXL compte bien résoudre ce problème en profitant d’un BUS plus versatile et plus large, tourné vers l’évolutivité et la scalabilité, surtout du côté des datacenters.

Une version plus récente de la spécification concernant le protocole CXL, orienté vers les solutions de niveau 3, est d’ailleurs parue en Mars 2024 (spec 3.1). Celle-ci met l’accent sur l’utilisation de cartes additionnelles permettant l’ajout de mémoire aux systèmes existants.

Notez que même si, initialement, le CXL est un protocole « memory-agnostic », conçu pour fonctionner avec n’importe qu’elle type de mémoire-vive, l’industrie s’est rapidement rendue compte que les bénéfices apportés par un ajout de SDRAM ; gain moyen de 50% de performances pour un système comportant 4 cartes additionnelles CXL Type 3 en plus de 8 à 12 channels de DDR5 classiques ; étaient conséquents et donc sujets à davantage de R&D en ce sens !

Vous trouverez ici un récapitulatif de cette spécification.

Certains fournisseurs proposent déjà à la vente des modules CXL Type 3 pour ajouter plusieurs centaines de gigaoctets de mémoire à des systèmes existants limités, dont :

Conclusion

Pléthore de modules, de tailles, de génération et de versions, mais une seule et même utilité, la mémoire-vive, malgré ses nombreuses évolutions et transformations, ne cessera pas d’être au centre des challenges, tant pour les « prosumers » et autres afficionados de laptops performants, toujours plus fins et légers, que pour les professionnels, hyperscalers et autres utilisateurs dont les activités requièrent toujours plus de ressources de calcul. 

Quelle sera la prochaine innovation ? Le prochain format ou la prochaine technologie maximisant la densité, la performance ou l’optimisation des traitements, à l’heure des modèles d’IA et de ML aux milliers de milliards de paramètres ? 

Comptez sûr nous pour couvrir ces sujets futurs !

Chez SIENNA, nous préservons vos contenus les plus sensibles sur le long-terme de manière hors-ligne afin de vous protéger des ransomwares. 🛡️🚀

Augmentez votre cyber-résilience avec nos solutions de stockage hors-ligne dédiées, alliant sécurité, pérennité et immuabilité, grâce à un stockage sur bandes magnétiques, bénéficiant d’une très faible consommation énergétique !

Enfin, si vous voulez rester à l’affut des dernières nouveautés Data/Storage/Backup, vous pouvez retrouver nos derniers articles à cette adresse !

Publications similaires