93 votes

Pourquoi la RAM doit-elle être volatile ?

Si la RAM d'un ordinateur était non volatile comme les autres supports de stockage permanents, le temps de démarrage n'existerait pas. Alors pourquoi n'est-il pas possible d'avoir un module de RAM non volatile ?

152voto

MSalters Points 8049

Au fond, c'est dû à la physique.

Toute mémoire non volatile doit stocker ses bits dans deux états qui ont une grande barrière énergétique entre eux, sinon la plus petite influence modifierait le bit. Mais lorsque nous écrivons dans cette mémoire, nous devons activement surmonter cette barrière énergétique.

Les concepteurs ont une certaine liberté dans le réglage de ces barrières énergétiques. Fixez-la à un niveau bas 0 . 1 et vous obtenez une mémoire qui peut être réécrite en grande quantité sans générer beaucoup de chaleur : rapide et volatile. Fixez la barrière énergétique à un niveau élevé 0 | 1 et les morceaux resteront en place presque toujours, ou jusqu'à ce que vous dépensiez beaucoup d'énergie.

La DRAM utilise de petits condensateurs qui fuient. Des condensateurs plus grands fuiraient moins, seraient moins volatiles, mais prendraient plus de temps à charger.

Le flash utilise des électrons qui sont envoyés à haute tension dans un isolateur. La barrière énergétique est si élevée qu'il est impossible de les faire sortir de manière contrôlée ; la seule solution consiste à nettoyer un bloc entier de bits.

117voto

gronostaj Points 50460

Lorsque la plupart des gens lisent ou entendent "RAM", ils pensent à ces choses :

Two SDRAM sticks, courtesy of Wikipedia

En fait, ils sont constitués de puces DRAM, et la question de savoir si la DRAM est une sorte de RAM est controversée. (Avant, c'était de la "vraie" RAM, mais la technologie a changé et c'est plutôt une croyance religieuse si c'est de la RAM ou non, voir la discussion dans les commentaires).

La RAM est un terme général. Il signifie "mémoire à accès aléatoire", c'est-à-dire toute sorte de mémoire à laquelle on peut accéder dans n'importe quel ordre (par "accès", j'entends lecture ou écriture, mais certains types de RAM peuvent être en lecture seule).

Par exemple, le disque dur n'est pas une mémoire à accès aléatoire, car lorsque vous essayez de lire deux bits qui ne sont pas adjacents (ou que vous les lisez dans l'ordre inverse pour une raison quelconque), vous devez attendre que les plateaux tournent et que l'en-tête se déplace. Seuls les bits séquentiels peuvent être lus sans opérations supplémentaires entre eux. C'est également pour cette raison que la DRAM peut être considérée comme une mémoire non RAM - elle est lue par blocs.

Il existe de nombreux types de mémoire à accès aléatoire. Certaines d'entre elles ne sont pas volatiles et il en existe même des à lecture seule, par exemple la ROM. Il existe donc une RAM non volatile.

Pourquoi ne l'utilisons-nous pas ? La vitesse n'est pas le plus gros problème car, par exemple, la mémoire NOR Flash peut être lue aussi rapidement que la DRAM (du moins, c'est ce que l'on croit). Wikipedia dit, mais sans citation). Les vitesses d'écriture sont moins bonnes, mais le problème le plus important est le suivant :

En raison de l'architecture interne des mémoires non volatiles, elles doivent s'user. Le nombre de cycles d'écriture et d'effacement est limité à 100 000-1 000 000. Cela semble être un nombre important et c'est généralement suffisant pour le stockage non volatile (les lecteurs pendulaires ne tombent pas en panne si souvent, n'est-ce pas ?), mais c'est un problème qui a déjà dû être résolu dans les disques SSD. La RAM est écrite bien plus souvent que les disques SSD, elle serait donc plus sujette à l'usure.

La DRAM ne s'use pas, elle est rapide et relativement bon marché. La SRAM est encore plus rapide, mais elle est aussi plus chère. Actuellement, elle est utilisée dans les processeurs pour la mise en cache. (et c'est vraiment de la RAM sans aucun doute ;) )

23voto

Daniel R Hicks Points 6107

Il convient de noter que le le premier "magasin principal" couramment utilisé dans les ordinateurs était le "noyau". -- De minuscules tores de ferrite disposés en réseau, avec des fils les traversant dans trois directions.

Pour écrire un 1, il faut envoyer des impulsions d'intensité égale dans les fils X et Y correspondants, afin de "retourner" le noyau. (Pour écrire un zéro, vous ne le feriez pas.) Vous devez effacer l'emplacement avant d'écrire.

Pour lire, vous essayez d'écrire un 1 et de voir si une impulsion correspondante est générée sur le fil de "détection" - si c'est le cas, l'endroit où se trouve l'interrupteur. utilisé pour être un zéro. Il faudrait alors bien sûr réécrire les données, puisque vous venez de les effacer.

(Il s'agit d'un légèrement description simplifiée, bien sûr).

Mais le truc était non-volatile. Vous pouvez éteindre l'ordinateur, le redémarrer une semaine plus tard, et les données seront toujours là. Et c'était bien de la "RAM".

(Avant le "noyau", la plupart des ordinateurs fonctionnaient directement à partir d'un "tambour" magnétique, avec seulement quelques registres de mémoire CPU, et quelques uns utilisaient des trucs comme des CRT de stockage).

Ainsi, la réponse à la question de savoir pourquoi la RAM (dans sa forme actuelle, la plus courante) est volatile est simplement que cette forme est bon marché et rapide. le site leader précoce dans le développement de la RAM à semi-conducteurs, et ne s'est lancé dans le commerce des CPU que pour générer un marché pour leur RAM).

18voto

UltimateBrent Points 6167

DRAM est rapide, peut être construit à bas prix jusqu'à des densités extrêmement élevées (faible $/MB et cm 2 /MB), mais perd son état à moins d'être rafraîchie très fréquemment. Sa très petite taille fait partie du problème ; les électrons fuient à travers les parois minces.

SRAM est très rapide, moins bon marché ($/MB élevé) et moins dense, et ne nécessite pas de rafraîchissement, mais perd son état une fois l'alimentation coupée. La construction SRAM est utilisée pour la "NVRAM", qui est une RAM attachée à une petite batterie. J'ai quelques cartouches Sega et Nintendo qui ont des états de sauvegarde vieux de plusieurs décennies stockés dans la NVRAM.

EEPROM (généralement sous la forme de "Flash") est non-volatile, lente à l'écriture, mais bon marché et dense.

FRAM (RAM ferroélectrique) est l'une des technologies de stockage de nouvelle génération qui devient disponible et qui fait ce que vous voulez : rapide, bon marché, non volatile... mais pas encore dense. Vous pouvez obtenir une Microcontrôleur TI qui l'utilise et offre le comportement que vous souhaitez. Couper le courant et le rétablir vous permet de reprendre là où vous en étiez. Mais il n'y a que 64kbytes de ce truc. Ou vous pouvez obtenir FRAM série 2Mbit .

La technologie "Memristor" fait l'objet de recherches pour offrir des propriétés similaires à celles des FRAM, mais elle n'est pas encore vraiment un produit commercial.


Modifier Note : si vous disposez d'un système à mémoire persistante, vous devez soit trouver un moyen d'appliquer les mises à jour pendant qu'il fonctionne, soit accepter la nécessité d'un redémarrage occasionnel. sans perdre tout votre travail. Avant l'avènement des smartphones, un certain nombre de PDA stockaient toutes leurs données dans la NVRAM, ce qui permettait à la fois une mise en marche instantanée et une perte potentielle instantanée de toutes les données si la batterie était déchargée.

6voto

Selon moi, le principal problème ici est effectivement la volatilité. Pour écrire rapidement, il faut que l'écriture soit facile (c'est-à-dire qu'elle ne nécessite pas de longues périodes de temps). Cela va à l'encontre de ce que vous aimeriez voir lors de la sélection de la RAM : Elle doit être rapide.

Analogie de tous les jours : - Écrire quelque chose sur un tableau blanc est très facile et ne demande que peu ou pas d'effort. Par conséquent, c'est rapide et vous pouvez dessiner sur tout le tableau en quelques secondes. - Cependant, vos croquis sur le tableau blanc sont très volatiles. Un seul faux mouvement et tout s'envole. - Prenez une plaque de pierre et gravez-y votre croquis - par exemple Les Pierrafeu et votre croquis y restera pendant des années, des décennies, voire des siècles. Mais écrire cela prend beaucoup plus de temps.

Retour aux ordinateurs : La technologie permettant d'utiliser des puces rapides pour stocker des données persistantes existe déjà (comme les lecteurs flash), mais les vitesses sont encore bien inférieures à celles de la RAM volatile. Jetez un œil à une clé USB et comparez les données. Vous trouverez quelque chose comme "lecture à 200 MB/s" et "écriture à 50 MB/s". C'est une sacrée différence. Bien sûr, le prix du produit joue un rôle ici, mais le temps d'accès général peut s'améliorer en dépensant plus d'argent, mais la lecture sera toujours plus rapide que l'écriture.

"Mais comment faire pour flasher le BIOS ? C'est intégré et c'est rapide !" vous pourriez demander. Vous avez raison, mais avez-vous déjà flashé une image du BIOS ? Le démarrage à travers le BIOS ne prend que quelques instants - la plupart du temps est perdu en attendant le matériel externe - mais le flashage réel peut prendre des minutes, même s'il ne s'agit que de quelques KByte à graver/écrire.

Cependant, il existe des solutions de contournement pour ce problème, par exemple la fonction Hybernate de Windows. Le contenu de la RAM est écrit sur une mémoire non volatile (comme un disque dur), puis relu plus tard. Certains BIOS de netbooks offrent des fonctions similaires pour la configuration et les paramètres généraux du BIOS à l'aide d'une partition cachée du disque dur (ce qui permet de se passer du BIOS, même en cas de démarrage à froid).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X