Mémoire vive dynamique

Page d’aide sur l’homonymie

Pour les articles homonymes, voir Dram et Dynamic.

La mémoire vive dynamique (DRAM pour dynamic random-access memory en anglais) est un type de mémoire vive à semi-conducteur qui enregistre chaque bit de donnée dans une cellule de mémoire. Cette cellule de mémoire ne peut conserver la donnée que pendant un temps très court, typiquement 64 milliseconde. Elle doit donc être rafraîchie régulièrement, d'où le terme dynamique, en opposition aux mémoires vives statiques (SRAM pour static random-access memory en anglais) qui n'ont pas besoin de rafraîchissement. Sans alimentation, la DRAM perd ses données, ce qui la range dans la famille des mémoires volatiles .

Une photographie du die du circuit intégré MT4C1024 de Micron Technology (1994). Il offre une capacité de 1 megabit soit 220 bits ou encore 128 Kio.

La structure la plus commune pour une cellule de mémoire de DRAM est le circuit 1T1C (pour 1 transistor, 1 condensateur), où l'information est interprétée à partir de la charge stockée par le condensateur. Son inconvénient réside dans le courant de fuite du condensateur : l'information disparaît à moins que la charge des condensateurs ne soit rafraîchie. En pratique, certaines implémentations historiques du circuit 1T1C ont utilisé la capacité parasite drain/substrat d'un transistor à effet de champ, mais les technologies modernes utilisent un condensateur dédié .

On trouve en pratique la DRAM sous forme d'un circuit intégré regroupant un grand nombre de cellules de mémoire, qui va du millier aux dizaines de milliards. Ces puces sont largement utilisées en électronique numérique où de la mémoire à grande capacité pour un faible coût est exigée. Une des applications majeure de la DRAM est la mémoire principale (en) utilisée dans les ordinateurs modernes, les cartes graphiques, les smartphones ou encore les consoles de jeux vidéo. Par opposition, la SRAM qui est plus rapide et coûteuse que la DRAM, est utilisée lorsque la vitesse est une priorité, par exemple dans le cache d'un processeur .

Le besoin de rafraîchir la DRAM mène à des circuits et des chronogrammes plus complexes que pour la SRAM. La gestion des séquences liées au rafraîchissement demande la présence d'un contrôleur mémoire adapté aux paramètres de la DRAM qui dépendent du fabricant et du modèle.

FPM 4MB.
EDO RAM.
SDRAM.
RDRAM.
DDR SDRAM.
DDR2 SDRAM.
DDR3 SDRAM.
DDR4 SDRAM.
DDR5 SDRAM.
XDR DRAM.

Types de mémoire vive dynamique

Les mémoires vives dynamiques ont connu différentes versions :

Principes de fonctionnement

Principes de fonctionnement pour la lecture d'une matrice DRAM simple 4 4.
Structure de base d’une matrice de cellules DRAM.

La DRAM est généralement disposée selon un réseau rectangulaire (matrice) de cellules de stockage de charge composé d’un condensateur et d’un transistor par bit de données. La figure de droite montre un exemple simple avec une matrice de cellules quatre par quatre. Certaines matrices DRAM comptent plusieurs milliers de cellules en hauteur et en largeur,.

Les longues lignes horizontales reliant chaque rangée sont appelées lignes de mots. Chaque colonne de cellules est composée de deux lignes de bits, chacune connectée à toutes les autres cellules de stockage de la colonne (l’illustration de droite n’inclut pas ce détail important). Elles sont généralement appelées lignes de bits « + » et « - ».

Un amplificateur de détection est essentiellement une paire d’inverseurs croisés entre les lignes de bits. L'entrée du premier inverseur est connectée à la ligne de bits + et sa sortie à la ligne de bits −. L’entrée du deuxième inverseur est connectée à la ligne de bits et sa sortie à la ligne de bits +. Il en résulte une rétroaction positive qui se stabilise une fois qu’une ligne de bits est à la tension la plus élevée possible et que l’autre ligne de bits est à la tension la plus basse possible.

Lecture d’un bit de données à partir d’une cellule de stockage

  1. Les amplificateurs de détection sont déconnectés.
  2. Les lignes de bits sont préchargées à des tensions exactement égales qui se situent entre les niveaux logiques haut et bas (par exemple, 0,5 V si les deux niveaux sont 0 et 1 V). Les lignes de bits sont physiquement symétriques pour maintenir la capacité égale, et donc à ce moment-là, leurs tensions sont égales.
  3. Le circuit de précharge est désactivé. Parce que les lignes de bits sont relativement longues, elles ont une capacité suffisante pour maintenir la tension préchargée pendant une courte période. Il s’agit d’un exemple de logique dynamique.
  4. La ligne de mots de la rangée souhaitée est ensuite pilotée vers le haut pour connecter le condensateur de stockage d’une cellule à sa ligne de bits. Cela provoque la conduction du transistor, transférant la charge de la cellule de stockage à la ligne de bits connectée (si la valeur stockée est de 1) ou de la ligne de bits connectée à la cellule de stockage (si la valeur stockée est de 0). Étant donné que la capacité de la ligne de bits est généralement beaucoup plus élevée que la capacité de la cellule de stockage, la tension sur la ligne de bits augmente très légèrement si le condensateur de la cellule de stockage est déchargé et diminue très légèrement s'il est chargé (par exemple, 0,54 et 0,45 V dans les deux cas). Comme l’autre ligne de bits reste à 0,50 V, il y a une petite différence de tension entre les deux lignes de bits torsadées.
  5. Les amplificateurs de détection sont maintenant connectés aux paires de lignes de bits. Une rétroaction positive se produit alors à partir des inverseurs croisés, amplifiant ainsi la petite différence de tension entre les lignes de bits paires et impaires d’une colonne particulière jusqu’à ce qu’une ligne de bits soit complètement à la tension la plus basse et l’autre à la tension la plus haute. Une fois que cela s’est produit, la rangée est « ouverte » (les données de cellule souhaitées sont disponibles).
  6. Toutes les cellules de stockage de la rangée ouverte sont détectées simultanément et les sorties de l’amplificateur de détection sont verrouillées. Une adresse de colonne sélectionne ensuite le bit verrouillé à connecter au bus de données externe. Les lectures de différentes colonnes dans la même rangée peuvent être effectuées sans délai d’ouverture de rangée car, pour la rangée ouverte, toutes les données ont déjà été détectées et verrouillées.
  7. Pendant que la lecture des colonnes d'une rangée ouverte se produit, le courant remonte les lignes de bits à partir de la sortie des amplificateurs de détection et recharge les cellules de stockage. Cela renforce (c’est-à-dire « rafraîchit ») la charge dans la cellule de stockage en augmentant la tension dans le condensateur de stockage s’il était chargé au départ, ou en le maintenant déchargé s’il était vide. En raison de la longueur des lignes de bits, il y a un délai de propagation assez long pour que la charge soit retransférée au condensateur de la cellule. Cela prend beaucoup de temps après la fin de l’amplification de détection et se chevauche donc avec une ou plusieurs lectures de colonne.
  8. Une fois la lecture de toutes les colonnes de la rangée ouverte en cours effectuée, la ligne de mot est désactivée pour déconnecter les condensateurs de la cellule de stockage des lignes de bits (la rangée est « fermée »). L’amplificateur de détection est désactivé et les lignes de bits sont à nouveau préchargées.

Écriture dans une cellule de stockage

Écriture dans une cellule de stockage.

Pour stocker des données, une rangée est ouverte et l’amplificateur de détection d’une colonne donnée est temporairement forcé à l’état haute ou basse tension souhaité, provoquant ainsi la charge ou la décharge du condensateur de la cellule de stockage par la ligne de bits à la valeur souhaitée. En raison de la configuration à rétroaction positive de l’amplificateur de détection, il maintiendra une ligne de bits à une tension stable même après la suppression de la tension de forçage. Lors d’une écriture dans une cellule particulière, toutes les colonnes d’une rangée sont détectées simultanément, tout comme lors de la lecture, de sorte que bien que la charge du condensateur de la cellule de stockage d’une seule colonne soit modifiée, la rangée entière est rafraîchie (réécrite), comme illustré dans la figure de droite.

Sécurité

Attaque par démarrage à froid

Bien que les spécifications de la mémoire dynamique indiquent que la conservation des données de la mémoire n'est garantie que si la mémoire est rafraîchie régulièrement (typiquement toutes les 64 ms), les condensateurs de cellules de mémoire conservent souvent leurs charges durant des périodes significativement plus longues, en particulier à basses températures. Sous certaines conditions, la plupart des données de la mémoire DRAM peuvent être récupérées même si la mémoire n'a pas été rafraîchie depuis plusieurs minutes.

Cette propriété peut être utilisée pour contourner certaines mesures de sécurité et récupérer des données stockées dans la mémoire et supposées avoir été détruites à la mise hors tension de l'ordinateur. Pour ce faire, il suffit de redémarrer l'ordinateur rapidement et copier le contenu de la mémoire vive[réf. nécessaire]. Alternativement, on peut refroidir les puces de mémoire et les transférer sur un autre ordinateur[réf. nécessaire]. Une telle attaque a réussi à contourner des systèmes populaires de chiffrement de disque, tels que TrueCrypt, BitLocker Drive Encryption de Microsoft, et FileVault d'Apple. Ce type d'attaque contre un ordinateur est appelé une attaque par démarrage à froid.

Attaque par martèlement de mémoire

Le martèlement de mémoire est un effet secondaire imprévu dans les mémoires dynamiques à accès directe (DRAM) qui provoque une fuite de charge électrique dans des cellules de mémoire, et en conséquence provoque une interaction électrique entre ces cellules et d'autres cellules voisines.

Notes et références

  1. ↑ John L. Hennessy et David A. Patterson, Computer Architecture: A Quantitative Approach, Morgan Kaufmann, , 64-66 p., « 2 : Memory Hierarchy Design ».
  2. ↑ « How to "open" microchip and what's inside? : ZeptoBars » [archive du ], (consulté le ) : « Micron MT4C1024 — 1 mebibit (220 bit) dynamic ram. Widely used in 286 and 386-era computers, early 90s. Die size - 8662x3969μm. ».
  3. ↑ Brent Keeth, R. Jacob Baker, Brian Johnson et Feng Lin, DRAM Circuit Design: Fundamental and High-Speed Topics, Wiley-IEEE Press, , 33-35 p., « 2 : The DRAM Array ».
  4. ↑ David A. Patterson et John L. Hennessy, Computer Organization and Design, Morgan Kaufmann, , 22-23 p., « 1 : Computer Abstractions and Technology ».
  5. ↑ « DRAM Refresh Technical Note », sur Micron Technology.
  6. ↑ https://web.maths.unsw.edu.au/~lafaye/CCM/pc/ram.htm
  7. ↑ (en) extended data out dynamic random access memory, sur le site dictionary.com, consulté le 6 juin 2016.
  8. ↑ (en-US) « Lecture 12: DRAM Basics », sur utah.edu, (consulté le ).
  9. ↑ (en-US) David August, « Lecture 20: Memory Technology - Archivé depuis l'original » [PDF], sur cs.princeton.edu, (consulté le ), p. 3–5.
  10. 1 2 3 4 5 6 7 8 9 Keeth et al. 2007, p. 24-30.
  11. 1 2 (en) « Center for Information Technology Policy Lest We Remember: Cold Boot Attacks on Encryption Keys » (version du sur archive.org) 080222 citp.princeton.edu.
  12. ↑ (en) Leif Z. Scheick, Steven M. Guertin et Gary M. Swift, « Analysis of radiation effects on individual DRAM cells », IEEE Trans. on Nuclear Science, vol. 47, no 6,‎ , p. 2534–2538 (ISSN 0018-9499, DOI 10.1109/23.903804, lire en ligne, consulté le ).
(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Dynamic random-access memory » (voir la liste des auteurs).

Annexes

Lien externe