La mémoire vive, généralement appelée RAM
(Random Access Memory, traduisez mémoire à accès
aléatoire), est la mémoire principale
du système, c'est-à-dire qu'il s'agit d'un espace permettant de stocker de manière temporaire
des données lors de l'exécution d'un programme.
En effet le stockage de données dans la mémoire vive est temporaire, contrairement au stockage de données sur une mémoire de masse telle que le disque dur (mémoire avec laquelle les novices la confondent généralement), car elle permet uniquement de stocker des données tant qu'elle est alimentée électriquement. Ainsi, à chaque fois que l'ordinateur est éteint, toutes les données présentes en mémoire sont irrémédiablement effacées.
La mémoire morte, appelée ROM pour Read Only Memory
(traduisez mémoire en lecture seule) est un type de mémoire permettant de conserver les informations
qui y sont contenues même lorsque la mémoire n'est plus alimentée électriquement. A la base
ce type de mémoire ne peut être accédée qu'en lecture. Toutefois il est désormais
possible d'enregistrer des informations dans certaines mémoires de type ROM.
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)
à un intervalle de temps régulier appelé cycle de rafraîchissement
(d'une durée d'environ 15 nanosecondes (ns) pour une mémoire DRAM).
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.
Chaque point mémoire est donc caractérisé par une adresse, correspondant à
un numéro de ligne et un numéro de colonne. 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 25ns 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é à 200Mhz, le temps de cycle est de 5ns (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é à 200Mhz 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.
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.
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 0 lorsque la somme des bits de données est impaire
et 1 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 8 Mo de mémoire, seulement 7 serviront à stocker des données,
dans la mesure où le dernier mégaoctet conservera les bits de parité.
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.
|