RAM - Mémoire vive

Septembre 2015

Types de mémoires vives


On distingue généralement deux grandes catégories de mémoires vives :

  • Les mémoires dynamiques (DRAM, Dynamic Random Access Module), peu coûteuses. Elles sont principalement utilisées pour la mémoire centrale de l'ordinateur ;
  • Les mémoires statiques (SRAM, Static Random Access Module), rapides et onéreuses. Les SRAM sont notamment utilisées pour les mémoires cache du processeur ;

Fonctionnement de la mémoire vive


La mémoire vive est constituée de centaines de milliers de petits condensateurs emmagasinant des charges. Lorsqu'il est chargé, l'état logique du condensateur est égal à 1, dans le cas contraire il est à 0, ce qui signifie que chaque condensateur représente un bit de la mémoire.

Etant donné que les condensateurs se déchargent, il faut constamment les recharger (le terme exact est rafraîchir, en anglais refresh) à un intervalle de temps régulier appelé cycle de rafraîchissement. Les mémoires DRAM nécessitent par exemple des cycles de rafraîchissement est d'environ 15 nanosecondes (ns).

Chaque condensateur est couplé à un transistor (de type MOS) permettant de « récupérer » ou de modifier l'état du condensateur. Ces transistors sont rangés sous forme de tableau (matrice), c'est-à-dire que l'on accède à une case mémoire (aussi appelée point mémoire) par une ligne et une colonne.

représentation d


Chaque point mémoire est donc caractérisé par une adresse, correspondant à un numéro de ligne (en anglais row) et un numéro de colonne (en anglais column). Or cet accès n'est pas instantané et s'effectue pendant un délai appelé temps de latence. Par conséquent l'accès à une donnée en mémoire dure un temps égal au temps de cycle auquel il faut ajouter le temps de latence.

Ainsi, pour une mémoire de type DRAM, le temps d'accès est de 60 nanosecondes (35ns de délai de cycle et 25 ns de temps de latence). Sur un ordinateur, le temps de cycle correspond à l'inverse de la fréquence de l'horloge, par exemple pour un ordinateur cadencé à 200 MHz, le temps de cycle est de 5 ns (1/(200*106)).

Par conséquent un ordinateur ayant une fréquence élevée et utilisant des mémoires dont le temps d'accès est beaucoup plus long que le temps de cycle du processeur doit effectuer des cycles d'attente (en anglais wait state) pour accèder à la mémoire. Dans le cas d'un ordinateur cadencé à 200 MHz utilisant des mémoires de types DRAM (dont le temps d'accès est de 60ns), il y a 11 cycles d'attente pour un cycle de transfert. Les performances de l'ordinateur sont d'autant diminuées qu'il y a de cycles d'attentes, il est donc conseillé d'utiliser des mémoires plus rapides.

Formats de barrettes de mémoire vive


Il existe de nombreux types de mémoires vives. Celles-ci se présentent toutes sous la forme de barrettes de mémoire enfichables sur la carte-mère.

Les premières mémoires se présentaient sous la forme de puces appelées DIP (Dual Inline Package). Désormais les mémoires se trouvent généralement sous la forme de barrettes, c'est-à-dire des cartes enfichables dans des connecteurs prévus à cet effet. On distingue habituellement trois types de barrettes de RAM :

  • les barrettes au format SIMM (Single Inline Memory Module) : il s'agit de circuits imprimés dont une des faces possède des puces de mémoire. Il existe deux types de barrettes SIMM, selon le nombre de connecteurs :
    • Les barrettes SIMM à 30 connecteurs (dont les dimensions sont 89x13mm) sont des mémoires 8 bits qui équipaient les premières générations de PC (286, 386).
      barrette de mémoire SIMM 30 connecteurs
    • Les barrettes SIMM à 72 connecteurs (dont les dimensions sont 108x25mm) sont des mémoires capables de gérer 32 bits de données simultanément. Ces mémoires équipent des PC allant du 386DX aux premiers Pentium. Sur ces derniers le processeur travaille avec un bus de données d'une largeur de 64 bits, c'est la raison pour laquelle il faut absolument équiper ces ordinateurs de deux barrettes SIMM. Il n'est pas possible d'installer des barrettes 30 broches sur des emplacements à 72 connecteurs dans la mesure où un détrompeur (encoche au centre des connecteurs) en empêche l'enfichage.
      barrette de mémoire SIMM 72 connecteurs
  • les barrettes au format DIMM (Dual Inline Memory Module) sont des mémoires 64 bits, ce qui explique pourquoi il n'est pas nécessaire de les apparier. Les barrettes DIMM possèdent des puces de mémoire de part et d'autre du circuit imprimé et ont également 84 connecteurs de chaque côté, ce qui les dote d'un total de 168 broches. En plus de leurs dimensions plus grandes que les barrettes SIMM (130x25mm) ces barrettes possèdent un second détrompeur pour éviter la confusion.
    barrette de mémoire SIMM 72 connecteurs

Il peut être intéressant de noter que les connecteurs DIMM ont été améliorés afin de faciliter leur insertion grâce à des leviers situés de part et d'autre du connecteur. Il existe en outre des modules de plus petite taille, appelés SO DIMM (Small Outline DIMM), destinés aux ordinateurs portables. Les barrettes SO DIMM comportent uniquement 144 broches pour les mémoires 64 bits et 77 pour les mémoires 32 bits.
  • les barrettes au format RIMM (Rambus Inline Memory Module, appelées également RD-RAM ou DRD-RAM) sont des mémoires 64 bits développée par la société Rambus. Elles possèdent 184 broches. Ces barrettes possèdent deux encoches de repérage (détrompeurs), évitant tout risque de confusion avec les modules précédents.


Compte tenu de leur vitesse de transfert élevée, les barrettes RIMM possèdent un film thermique chargé d'améliorer la dissipation de la chaleur.

Comme dans le cas des DIMM, il existe des modules de plus petite taille, appelés SO RIMM (Small Outline RIMM), destinés aux ordinateurs portables. Les barrettes SO RIMM comportent uniquement 160 broches.

DRAM PM


La DRAM (Dynamic RAM, RAM dynamique) est le type de mémoire le plus répandu au début du millénaire. Il s'agit d'une mémoire dont les transistors sont rangés dans une matrice selon des lignes et des colonnes. Un transistor, couplé à un condensateur donne l'information d'un bit. 1 octet comprenant 8 bits, une barrette de mémoire DRAM de 256 Mo contiendra donc 256 * 2^10 * 2^10 = 256 * 1024 * 1024 = 268 435 456 octets = 268 435 456 * 8 = 2 147 483 648 bits = 2 147 483 648 transistors. Une barrette de 256 Mo possède ainsi en réalité une capacité de 268 435 456 octets, soit 268 Mo ! Ce sont des mémoires dont le temps d'accès est de 60 ns.

D'autre part, les accès mémoire se font généralement sur des données rangées consécutivement en mémoire. Ainsi le mode d'accès en rafale (burst mode) permet d'accéder aux trois données consécutives à la première sans temps de latence supplémentaire. Dans ce mode en rafale, le temps d'accès à la première donnée est égal au temps de cycle auquel il faut ajouter le temps de latence, et le temps d'accès aux trois autres données est uniquement égal aux temps de cycle, on note donc sous la forme X-Y-Y-Y les quatre temps d'accès, par exemple la notation 5-3-3-3 indique une mémoire pour laquelle 5 cycles d'horloge sont nécessaires pour accéder à la première donnée et 3 pour les suivantes.

DRAM FPM


Pour accélérer les accès à la DRAM, il existe une technique, appelée pagination consistant à accéder à des données situées sur une même colonne en modifiant uniquement l'adresse de la ligne, ce qui permet d'éviter la répétition du numéro de colonne entre la lecture de chacune des lignes. On parle alors de DRAM FPM (Fast Page Mode). La FPM permet d'obtenir des temps d'accès de l'ordre de 70 à 80 nanosecondes pour une fréquence de fonctionnement pouvant aller de 25 à 33 Mhz.

DRAM EDO


La DRAM EDO (Extended Data Out, soit Sortie des données améliorée parfois également appelé "hyper-page") est apparue en 1995. La technique utilisée avec ce type de mémoire consiste à adresser la colonne suivante pendant la lecture des données d'une colonne. Cela crée un chevauchement des accès permettant de gagner du temps sur chaque cycle. Le temps d'accès à la mémoire EDO est donc d'environ 50 à 60 nanosecondes pour une fréquence de fonctionnement allant de 33 à 66 Mhz.

Ainsi, la RAM EDO, lorsqu'elle est utilisée en mode rafale permet d'obtenir des cycles de la forme 5-2-2-2, soit un gain de 4 cycles sur l'accès à 4 données. Dans la mesure où la mémoire EDO n'acceptait pas des fréquences supérieures à 66 Mhz, elle a disparu au bénéfice de la SDRAM.

SDRAM


La SDRAM (Synchronous DRAM, traduisez RAM synchrone), apparue en 1997, permet une lecture des données synchronisée avec le bus de la carte-mère, contrairement aux mémoires EDO et FPM (qualifiées d'asynchrones) possédant leur propre horloge. La SDRAM permet donc de s'affranchir des temps d'attente dus à la synchronisation avec la carte-mère. Celle-ci permet d'obtenir un cycle en mode rafale de la forme 5-1-1-1, c'est-à-dire un gain de 3 cycles par rapport à la RAM EDO. De cette façon la SDRAM est capable de fonctionner avec une cadence allant jusqu'à 150 Mhz, lui permettant d'obtenir des temps d'accès d'environ 10 ns.

DR-SDRAM (Rambus DRAM)


La DR-SDRAM (Direct Rambus DRAM ou encore RDRAM) est un type de mémoire permettant de transférer les données sur un bus de 16 bits de largeur à une cadence de 800Mhz, ce qui lui confère une bande passante de 1,6 Go/s. Comme la SDRAM, ce type de mémoire est synchronisé avec l'horloge du bus pour améliorer les échanges de données. En contrepartie, la mémoire RAMBUS est une technologie propriétaire, ce qui signifie que toute entreprise désirant construire des barrettes de RAM selon cette technologie doit reverser des droits (royalties) aux sociétés RAMBUS et Intel.

DDR-SDRAM


La DDR-SDRAM (Double Data Rate SDRAM) est une mémoire basée sur la technologie SDRAM, permettant de doubler le taux de transfert de la SDRAM à fréquence égale.

La lecture ou l'écriture de données en mémoire est réalisé sur la base d'une horloge. Les mémoires DRAM standard utilisent une méthode appelé SDR (Single Data Rate) consistant à lire ou à écrire une donnée à chaque front montant.

SDR - Single Data Rate


La DDR permet de doubler la fréquence des lectures/écritures, avec une horloge cadencée à la même fréquence, en envoyant les données à chaque front montant, ainsi qu'à chaque front descendant.

DDR - Double Data Rate



Les mémoires DDR possèdent généralement une appellation commerciale du type PCXXXX où «XXXX» représente le débit en Mo/s.

DDR2-SDRAM


La mémoire DDR2 (ou DDR-II) permet d'atteindre des débits deux fois plus élevés que la DDR à fréquence externe égale.

On parle de QDR (Quadruple Data Rate ou quad-pumped)pour désigner la méthode de lecture et d'écriture utilisée. La mémoire DDR2 utilise en effet deux canaux séparés pour la lecture et pour l'écriture, si bien qu'elle est capable d'envoyer ou de recevoir deux fois plus de données que la DDR.

QDR - Quad Data Rate


La DDR2 possède également un plus grand nombre de connecteurs que la DDR classique (240 pour la DDR2 contre 184 pour la DDR).

DDR3-SDRAM


Le DDR3 SDRAM améliore les performances par rapport au DDR2, mais surtout diminue la consommation électrique. En effet, celle-ci est de 40 % inférieure, en particulier grâce à une baisse du voltage utilisé, une finesse de gravure accrue. Si le débit théorique de ces barrettes peut dépasser les 10 Go/s, les temps de latence sont restés dans les mêmes ordres de grandeur que ceux des DDR2.

Les barrettes DDR3 ont 240 connecteurs comme les DDR2 mais ne sont absolument pas compatibles (des détrompeurs empêchent l'insertion).

Tableau récapitulatif


Le tableau ci-dessous donne la correspondance entre la fréquence réelle de la mémoire, liée au FSB ou BCLK de la carte mère par le coefficient mémoire, celle de la fréquence d'Entrées/Sorties, souvent donnée par les logiciels de diagnostic, et son débit, qui correspond à son appellation commerciale en Mo/s:

MémoireAppellationFréquence E/S Fréquence réelleDébit
DDR200 PC1600100 MHz100 MHz1,6 Go/s
DDR266 PC2100133 MHz133 MHz2,1 Go/s
DDR333 PC2700166 MHz166 MHz2,7 Go/s
DDR400 PC3200200 MHz200 MHz3,2 Go/s
DDR433 PC3500217 MHz217 MHz3,5 Go/s
DDR466 PC3700233 MHz233 MHz3,7 Go/s
DDR500 PC4000250 MHz250 MHz4 Go/s
DDR533 PC4200266 MHz266 MHz4,2 Go/s
DDR538 PC4300269 MHz269 MHz4,3 Go/s
DDR550 PC4400275 MHz275 MHz4,4 Go/s
DDR2-400 PC2-3200200 MHz100 MHz3,2 Go/s
DDR2-533 PC2-4300266 MHz133 MHz4,3 Go/s
DDR2-667 PC2-5300333 MHz166 MHz5,3 Go/s
DDR2-675 PC2-5400337 MHz168 MHz5,4 Go/s
DDR2-800 PC2-6400400 MHz200 MHz6,4 Go/s
DDR2-1066PC2-8500533 MHz266 MHz8,5 Go/s
DDR2-1100PC2-8800560 MHz280 MHz8,8 Go/s
DDR2-1200PC2-9600600 MHz300 MHz9,6 Go/s
DDR3-800PC3-6400400 MHz100 MHz6,4 Go/s
DDR3-1066PC3-8500533 MHz133 MHz8,5 Go/s
DDR3-1333PC3-10600666 MHz166 MHz10,7 Go/s
DDR3-1600PC3-12800800 MHz200 MHz12,8 Go/s
DDR3-1800PC3-14400900 MHz225 MHz14,4 Go/s
DDR3-2000PC3-160001000 MHz250 MHz16 Go/s
DDR3-2133PC3-170001066 MHz266 MHz17 Go/s
DDR3-2200PC3-176001100 MHz275 MHz17,6 Go/s
DDR3-2400PC3-192001200 MHz300 MHz19,2 Go/s
DDR3-2500PC3-200001250 MHz312 MHz20 Go/s
DDR3-2600PC3-208001300 MHz325 MHz20,8 Go/s
DDR3-2666PC3-213001333 MHz333,25 MHz21,3 Go/s
DDR3-2800PC3-224001400 MHz350 MHz22,4 Go/s
DDR3-2933PC3-234661466,5 MHz366,6 MHz23,4 Go/s
DDR3-3000PC3-240001500 MHz375 MHz24 Go/s

Synchronisation (timings)


Il n'est pas rare de voir des notations du type 3-2-2-2 ou 2-3-3-2 pour décrire le paramétrage de la mémoire vive. Cette suite de quatre chiffres décrit la synchronisation de la mémoire (en anglais timing), c'est-à-dire la succession de cycles d'horloge nécessaires pour accéder à une donnée stockée en mémoire vive. Ces quatre chiffres correspondent généralement, dans l'ordre, aux valeurs suivantes :

  • CAS delay ou CAS latency (CAS signifiant Column Address Strobe) : il s'agit du nombre de cycles d'horloge s'écoulant entre l'envoi de la commande de lecture et l'arrivée effective de la donnée. Autrement dit, il s'agit du temps d'accès à une colonne.
  • RAS Precharge Time (noté tRP, RAS signifiant Row Address Strobe) : il s'agit du nombre de cycles d'horloge entre deux instructions RAS, c'est-à-dire entre deux accès à une ligne. opération.
  • RAS to CAS delay (noté parfois tRCD) : il s'agit du nombre de cycles d'horloge correspondant au temps d'accés d'une ligne à une colonne.
  • RAS active time (noté parfois tRAS) : il s'agit du nombre de cycles d'horloge correspondant au temps d'accés à une ligne.


Les cartes mémoires sont équipées d'un dispositif appelé SPD (Serial Presence Detect), permettant au BIOS de connaître les valeurs nominales de réglage définies par le fabricant. Il s'agit d'une EEPROM dont les données seront chargées par le BIOS si l'utilisateur choisi le réglage « auto ».

La correction d'erreurs


Certaines mémoires possèdent des mécanismes permettant de pallier les erreurs afin de garantir l'intégrité des données qu'elles contiennent. Ce type de mémoire est généralement utilisé sur des systèmes travaillant sur des données critiques, c'est la raison pour laquelle on trouve ce type de mémoire dans les serveurs.

Bit de parité


Les barrettes avec bit de parité permettent de s'assurer que les données contenues dans la mémoire sont bien celles que l'on désire. Pour ce faire, un des bits de chaque octet stocké en mémoire sert à conserver la somme des bits de données.
Le bit de parité vaut 1 lorsque la somme des bits de données est impaire et 0 dans le cas contraire.

De cette façon les barrettes avec bit de parité permettent de vérifier l'intégrité des données mais ne permettent pas de corriger les erreurs. De plus pour 9 Mo de mémoire, seulement 8 serviront à stocker des données, dans la mesure où le dernier mégaoctet conservera les bits de parité.

Barrettes ECC


Les barrettes de mémoire ECC (Error Correction Coding) sont des mémoires possédant plusieurs bits dédiés à la correction d'erreur (on les appelle ainsi bits de contrôle). Ces barrettes, utilisées principalement dans les serveurs, permettent de détecter les erreurs et de les corriger.

Barrettes avec registre ou tampon (registered ou buffered)


Ces barrettes ont un registre entre les puces de DRAM et le contrôleur mémoire du système (dans le chipset ou dans le processeur). Ce registre retient les données pendant un cycle d'horloge avant qu'elles ne soient envoyées vers le contrôleur mémoire. Ce processus augmente la fiabilité du transfert de données, au détriment du temps de traitement, en retard d'un cycle d'horloge par rapport à de la mémoire sans registre. Ces modules de mémoire avec registre ne sont généralement utilisés que dans les serveurs.

Dual Channel


La plupart des contrôleurs mémoire proposent un fonctionnement en double canal (en anglais Dual Channel) pour la mémoire. Il s'agit d'exploiter les modules de mémoire par paire afin de cumuler la bande passante et ainsi exploiter au maximum les capacités du système. Il est essentiel, lors de l'utilisation du Dual Channel, d'utiliser des barrettes identiques par paire (fréquence, CAS, capacité, et préférentiellement de même marque).

Ressources sur le même sujet

Pour une lecture illimitée hors ligne, vous avez la possibilité de télécharger gratuitement cet article au format PDF :
Ram-memoire-vive .pdf

Réalisé sous la direction de , fondateur de CommentCaMarche.net.


A voir également


Random access memory (RAM or PC memory)
Random access memory (RAM or PC memory)
Memoria de acceso aleatorio (memoria RAM o PC)
Memoria de acceso aleatorio (memoria RAM o PC)
Der Arbeitsspeicher (RAM oder PC-Speicher)
Der Arbeitsspeicher (RAM oder PC-Speicher)
Memoria ad accesso casuale
Memoria ad accesso casuale
A memória viva (RAM ou memória PC)
A memória viva (RAM ou memória PC)
Ce document intitulé «  RAM - Mémoire vive  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.