Les mémoires
  Sommaire
  Introduction
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'effecue 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ée 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.
  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 deux types de barrettes
de RAM :
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 256000000*8 bits soit 2 048 000 000 (256000000*8) transistors.
Ce sont des mémoires dont le temps d'accès est de 60ns.
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 rafales, le temps d'accès à la première donnée est
égale 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.
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.
La DRAM EDO (Extended Data Out, soit Sortie des données amélioré 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.
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 dûs à 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'à 150Mhz, lui permettant
d'obtenir des temps d'accès d'environ 10ns.
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 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.
  Mémoire morte
Il existe un type de mémoire permettant de stocker des données en l'absence de courant électrique, il s'agit de la ROM (Read Only Memory, dont la traduction est
mémoire en lecture seule) appelée parfois mémoire non volatile, car elle
ne s'efface pas lors de la mise hors tension du système.
Ce type de mémoire permet notamment de conserver les données nécessaires au démarrage de l'ordinateur
En effet, ces informations ne peuvent être stockées
sur le disque dur étant donné que les paramètres du disque (essentiels à son
initialisation) font partie de ces données vitales à l'amorçage.
Différentes mémoires de type ROM contiennent des données essentielles au démarrage, c'est-à-dire:
- Le BIOS est un programme permettant de piloter les interfaces d'entrée-sortie
principales du système, d'où le nom de BIOS ROM donné parfois à la puce
de mémoire morte de la carte-mère qui l'héberge
- Le chargeur d'amorce: un programme permettant de charger le système d'exploitation
en mémoire (vive) et de le lancer. Celui-ci cherche généralement le système d'exploitation
sur le lecteur de disquette, puis sur le disque dur, ce qui permet de pouvoir lancer le système d'exploitation
à partir d'une disquette système en cas de dysfonctionnement du système
installé sur le disque dur
- Le Setup CMOS, c'est l'écran disponible à l'allumage de l'ordinateur
permettant de modifier les paramètres du système (souvent appelé BIOS à tort...)
- Le Power-On Self Test (POST), programme exécuté automatiquement
à lamorçage du système permettant de faire un test du système (c'est pour cela
par exemple que vous voyez le système "compter" la RAM au démarrage)
Etant donné que les ROM sont beaucoup plus lentes que les mémoires de types RAM
(une ROM a un temps d'accès de l'ordre de 150 ns tandis qu'une mémoire de type SDRAM
a un temps d'accès d'environ 10 ns), les instructions contenues dans la ROM sont parfois copiées en RAM au démarrage, on parle alors de shadowing (en français cela pourrait se traduire par ombrage, mais on parle généralement de mémoire fantôme).
Les ROM ont petit à petit évoluées de mémoires mortes
figées à des mémoires programmables, puis reprogrammables.
Les premières ROM étaient fabriquées à l'aide d'un procédé
inscrivant directement les données binaires dans une plaque
de silicium grâce à un masque. Ce procédé est maintenant obsolète.
Les PROM (Programmable Read Only Memory) ont été mises
au point à la fin des années 70 par la firme Texas Instruments.
Ces mémoires sont des puces constituées de milliers de fusibles pouvant
être "grillés" grâce à un appareil appelé
programmateur de ROM, envoyant un fort courant (12V) dans certains fusibles. Ainsi,
les fusibles grillées correspondent à des 0, les autres à des 1.
Les EPROM (Erasable Programmable Read Only Memory) sont des PROM pouvant
être effacées. Ces puces possèdent une vitre permettant de laisser passer
des rayons ultra-violets. Lorsque la puce est en présence de rayons ultra-violets
d'une certaine longueur d'onde, les fusibles sont reconstitués, c'est-à-dire
que tous les bits de la mémoire sont à nouveau à 1. C'est pour
cette raison que l'on qualifie ce type de PROM d'effaçable.
Les EEPROM (Electrically Erasable read Only Memory) sont aussi des PROM effaçables,
mais contrairement aux EPROM, celles-ci peuvent être effacées par un simple courant
électrique, c'est-à-dire qu'elle peuvent être effacées même lorsqu'elles
sont en position dans l'ordinateur. Ces mémoires sont aussi appelées mémoires
flash (ou ROM flash), et l'on qualifie de flashage l'action
consistant à reprogrammer une EEPROM.
|