Les mémoires RAM |
par jean-michel stazzu et eric segovia
Sommaire
La mémoire est le principal
espace de travail d'un ordinateur. Elle opère en tandem avec l'unité centrale
de traitement (UCT), ou microprocesseur. Ensemble, ils stockent les données,
les programmes et les informations traitées, directement et immédiatement accessibles
au processeur ou aux autres composants du système. La mémoire est essentielle
pour le bon fonctionnement de l'ordinateur; c'est elle qui fait le lien entre
les logiciels et l'unité centrale. C'est d'elle aussi que dépend la taille et
le nombre de programmes que l'ordinateur pourra exécuter simultanément. C'est
elle enfin qui permet d'optimiser le potentiel de microprocesseurs toujours
plus puissants.
Il existe beaucoup de mémoires différentes. Chacune a ses spécificités et ses
avantages. Leur nombre peut malheureusement porter à confusion. Ce petit glossaire
a pour but de vous aider à y voir plus clair ou au moins vous "rafraîchir
la mémoire".
La mémoire de travail d'un
ordinateur est organisée comme une matrice de "cellules mémoire".
Celles-ci sont disposées en lignes et en colonnes, comme sur un échiquier. Chaque
cellule peut mémoriser un bit de données que l'ordinateur peut récupérer instantanément
en indiquant la colonne et la ligne où il se trouve (c'est-à-dire son adresse).
Ces bits de données peuvent être adressés, récupérés et modifiés séparément.
C'est pourquoi la mémoire centrale des ordinateurs est appelée mémoire à accès
aléatoire, mémoire vive, ou encore RAM.
La RAM est une mémoire volatile, non rémanente. Elle doit rester sous
tension, sinon elle perd ses données. Dès que le courant est coupé, la RAM se
vide de son contenu, et ce contrairement aux disques et disquettes, aux bandes
magnétiques et aux CD-ROM, qui conservent les données de manière permanente.
La DRAM, ou RAM dynamique,
est le type de mémoire le plus courant dans un ordinateur. Le noyau de la mémoire
centrale est généralement composé d'un banc de modules DRAM. Le système s'en
sert pour stocker les données, les programmes et les informations traitées qui
circulent entre le processeur, la carte vidéo et les autres périphériques.
La DRAM est "dynamique". C'est-à-dire qu'elle doit être rafraîchié
ou rechargée plusieurs centaines de fois par seconde pour pouvoir conserver
ses données. Ses cellules de mémoire sont conçues autour de minuscules condensateurs
qui stockent des charges électriques. Ce sont autant de piles minuscules, qui
s'é puisent progressivement si on ne leur restitue pas l'énergie né cessaire.
La SRAM, ou mémoire statique,
est elle aussi organisée en lignes et colonnes de cellules qui stockent les
données. Elle est cependant cinq fois plus rapide, deux fois plus chère et deux
fois plus volumineuse que la DRAM. La SRAM est aussi une mémoire volatile (elle
doit être alimentée en continu), mais à l'inverse de la DRAM, elle ne doit pas
être sans cesse rafraîchie.
La SRAM utilise des circuits à bascule en forme de noeuds qui laissent passer
l'électricité d'un côté ou de l'autre selon celui des deux transistors qui est
activé. Ce concept du "passage de flux" est plus rapide que celui
du "stockage de charge" de la DRAM, mais avec une consommation d'énergie
accrue d'autant.
Plus économique et moins encombrante, la DRAM est utilisée de préférence en
mémoire centrale, alors que la SRAM, plus rapide, sert pour les antémémoires
ou mémoires caches.
La RAM cache ou antémémoire
est un petit bloc de mémoire à grande vitesse (généralement de la SRAM) qui
s'intercale entre le microprocesseur et la mémoire centrale. Elle a pour rôle
de stocker les données et instructions les plus demandées. Lorsqu'il a besoin
de données, le processeur va d'abord voir dans la cache à haute vitesse. S'il
ne les y trouve pas, il les récupère en mémoire centrale, plus lente.
La mémoire cache est un peu comme un réfrigérateur. Au lieu de vous rendre tout
de suite chez l'épicier ou le boucher (la mémoire centrale) chaque fois que
vous avez un petit creux, vous vous rendez d'abord au frigo (la mémoire cache).
Si l'aliment dont vous avez envie s'y trouve, vous aurez gagné beaucoup de temps.
Sinon, il n'y a plus qu'à aller au magasin.
La plupart des ordinateurs
d'aujourd'hui sont équipés de DRAM FPM. La DRAM FPM est une amélioration de
DRAM plus ancienne. Elle peut accéder plus rapidement aux données d'une même
ligne, ou "page", de mémoire. Si les données recherchées se trouvent
sur la même ligne que les données précédentes, le contrôleur de mémoire ne localise
plus la ligne. Il renseigne uniquement la colonne. D'où un léger gain de temps.
La mémoire FPM est un peu comme un dictionnaire. Si le mot suivant se trouve
sur la même "page", il suffit au lecteur de descendre dans la liste
pour en trouver la définition. Si ce n'est pas le cas, il doit tourner les pages,
ce qui prend plus de temps.
DRAM EDO (Extended Data Output)
La DRAM EDO est identique
à la DRAM FPM, à ceci près qu'elle permet des accès "back-to-back"
en mémoire beaucoup plus rapides. Facile à mettre en uvre, elle a eu très
vite beaucoup de succès. L'ordinateur doit toutefois avoir été conçu spécifiquement
pour l'EDO. Si ce n'est pas le cas, le système acceptera la mémoire EDO, mais
sans apporter d'amélioration du point de vue des performances. Aujourd'hui,
la majorité des mémoires centrales des ordinateurs sont des DRAM FPM ou EDO.
Les EDO sont parfois appelées des DRAM en "mode hyperpage" (Hyper
Page Mode DRAM).
La Burst EDO est un perfectionnement
de l'EDO standard. Elle permet de transmettre une "rafale" ou suite
de données en mémoire en réponse à une seule et même requête (bursting). On
part en effet du principe que la prochaine adresse de données demandée par le
processeur sera séquentielle à la précédente, ce qui se vérifie généralement.
Dans une DRAM BEDO, tous les accès à la mémoire se font en rafale.
La SDRAM est une autre forme
de mémoire, qui a été développée peu après l'EDO. La principale innovation technologique
de la SDRAM tient au fait qu'elle peut s'autosynchroniser sur l'horloge système
qui rythme l'unité centrale. En étant "synchrone" avec le processeur,
elle évite les retards de temporisation (temps d'attente) et rend le processus
de récupération des données en mémoire beaucoup plus efficace.
Un ordinateur ne pourra pas utiliser de la SDRAM s'il n'a pas été conçu dans
ce but. Si la plupart des modèles qui sortent aujourd'hui reconnaissent l'EDO,
rares sont ceux qui sont compatibles avec la SDRAM. D'ici quelques années, la
DRAM FPM aura disparu et la SDRAM commencera probablement à remplacer l'EDO
dans les systèmes hautes performances.
SGRAM (Synchronous Graphics RAM)
La SGRAM est une extension de la SDRAM, qui inclut des fonctionnalités de lecture/écriture spécifiquement graphiques. En SGRAM, les données sont récupérées et modifiées en blocs plutôt que séparément, ce qui réduit le nombre de cycles de lecture/écriture et améliore les performances du contrôleur graphique, et par conséquent celles du système.
La RDRAM est un concept totalement original développé par Rambus, Inc. Extrêmement rapide, la RDRAM nécessite quelques adaptations au niveau du contrôleur de mémoire et de l'interface mémoire/système. Elle utilise un mince "canal" à large bande passante pour transmettre les données environ 10 fois plus vite que la DRAM standard. Pour l'instant, on la retrouve dans certains jeux électroniques et dans les applications graphiques sur PC.
Une mémoire graphique doit
être rapide. Elle doit rafraîchir ou régénérer l'écran de 60 à 70 fois par seconde
pour éviter le scintillement. En même temps, la mémoire graphique doit réagir
très rapidement aux sollicitations du processeur ou du contrôleur graphique
pour adapter l'image affichée. Avec de la RAM ordinaire, le tube cathodique
et l'unité centrale se disputeraient le seul port de données disponible, provoquant
un engorgement du trafic.
Avec son double port, la VRAM permet de résoudre ce problème en affectant un
port au tube cathodique pour le rafraîchissement et la mise à jour de l'image,
et le second au processeur ou au contrôleur graphique pour l'actualisation des
données d'image en mémoire.
La VRAM est comme le drive-in d'un fast-food à double guichet. Vous passez commande
et vous payez au premier et puis vous avancez jusqu'au suivant pour prendre
livraison de votre repas. Le processus entier gagne en rapidité et en efficacité.
La WRAM est aussi une mémoire double port destinée aux applications graphiques intensives. Elle est légèrement différente de la VRAM car elle est compatible EDO et le port dédié à l'affichage est plus petit.
Qu'est-ce que la mémoire cache?
La mémoire cache, ou antémémoire, est une mémoire à grande vitesse conçue spécialement pour fournir au processeur les instructions et les données les plus demandées. Les accès à la mémoire cache sont plusieurs fois plus rapides qu'en mémoire centrale. Plus le processeur peut récupérer d'instructions et de données en mémoire cache, plus il est globalement performant.
En général, la mémoire cache
se distribue sur deux niveaux: la cache interne, normalement située à l'intérieur
du processeur, et la cache externe, implantée sur la carte mère. La cache interne
est parfois appelée cache primaire ou de premier niveau (niveau 1), et la cache
externe, cache secondaire ou de second niveau (niveau 2). Dans la plupart des
ordinateurs de bureau, la cache interne a une capacité de 1 à 32 kilo-octets
(1.000 à 32.000 octets). Les configurations de cache externe sont généralement
beaucoup plus grandes: de 64 Ko à 1 Mo (64.000 à 1.000.000 d'octets). Lorsque
l'on parle d'une mise à niveau de la cache, il s'agit presque toujours de la
cache externe. On peut enficher des composants séparés aux endroits prévus à
cet effet sur la carte mère ou installer un module d'antémémoire dans un emplacement
dédié. Une extension de la cache interne suppose presque toujours le remplacement
du processeur.
Remarque: L'unité centrale de certains PC plus anciens à processeurs 286 et
386 ne contient pas d'antémémoire interne. Dans ce cas, le cache primaire, de
premier niveau, est le cache externe (si il existe).
Fonctionnement de la mémoire cache
Vous être invité à une soirée
et votre hôte a demandé à tous les convives ce qu'ils souhaitaient boire. Les
boissons sont les données, le magasin du coin la mémoire centrale et le réfrigérateur,
la mémoire cache. Si quelqu'un demande un Pepsi®, l'hôte va d'abord voir au
frigo. S'il en trouve, il le sert sans attendre. Sinon, il doit aller en chercher
au magasin, ce qui prend beaucoup plus de temps. Mais tant qu'à faire, il peut
en profiter pour prendre un pack de 6, en se disant logiquement qu'il pourra
se rendre directement au réfrigérateur la prochaine fois qu'on lui demandera
un Pepsi®.
Le contrôleur d'antémémoire ne fait pas autre chose. Quand il va chercher une
instruction en mémoire centrale, il rapatrie en même temps les instructions
suivantes en mémoire cache. Il augmente ainsi la probabilité que la prochaine
instruction demandée par le processeur soit déjà présente en mémoire cache (une
requête processeur satisfaite en antémémoire s'appelle un "cache hit").
Combien me faut-il de mémoire cache ?
Sur un classique Intel à 100 MHz, le processeur peut mettre jusqu'à 180 ns pour aller chercher l'information en mémoire centrale, contre 45 ns en mémoire cache. (Ceci représente un cycle complet: requête, vérification, temps d'accès.) Vu le gain en performances qu'autorise la mémoire cache, on pourrait trouver logique d'utiliser des SRAM pour toutes les mémoires de l'ordinateur. Malheureusement, la SRAM coûte plus de six fois le prix des DRAM généralement employées en mémoire centrale. Autrement dit, il n'est pas rentable d'installer trop d'anté mémoire sur un système. Dans notre exemple, employer de la cache en mémoire centrale reviendrait à racheter le magasin du coin pour avoir toutes les boissons possibles et imaginables à portée de main. Un frigo bien garni fait gagner du temps et offre plus de confort, mais cela ne vaut peut-être pas la peine d'installer un magasin dans son jardin. Pour la mémoire cache, c'est la même chose. Les premiers 256 Ko font gagner beaucoup de temps à l'ordinateur en conservant les instructions les plus récurrentes. Cependant, 256 Ko supplémentaires soit une cache totale de 512 Ko n'améliorent par les performances dans la même proportion que les 256 Ko d'origine.
La mémoire centrale peut
mettre jusqu'à 180 ns pour satisfaire une requête processeur.
Cache interne de 16 Ko (premier niveau)
Cache externe de 256 Ko (second niveau)
La cache secondaire satisfait une requête processeur dans les 45 ns.
Asynchronous SRAM - SRAM qui n'a pas besoin d'un signal d'horloge pour valider
les signaux de commande. La SRAM asynchrone est 30% moins chère et moins performante
que la SRAM synchrone.
Burst - Type d'antémémoire synchrone. De 30 à 50% plus rapide que la mémoire
asynchrone et près de la moitié plus chère.
Cache controller - Circuit qui gère l'interface entre le processeur, l'antémémoire
et le contrôleur de la DRAM (mémoire centrale).
Cache hit - Quand l'adresse requise par le processeur est présente en antémémoire.
Cache miss - Quand l'adresse requise par le processeur n'est pas présente en
antémémoire.
CELP socket - Card Edge Low Profile. Type d'emplacement normalement utilisé
pour les modules d'antémémoire.
COAST - Cache On A Stick. Spécification répandue pour les modules d'antémémoire.
Direct-mapped cache - Antémémoire ne comportant qu'un seul emplacement possible
pour chaque entrée de données.
External cache - Antémémoire implantée à l'extérieur du processeur. Elle est
généralement soudée sur la carte mère, à proximité immédiate du processeur,
ou enfichée près du processeur sous forme de module d'antémémoire.
Full-associative cache - Antémémoire dans laquelle chaque emplacement de la
mémoire centrale peut être transposé sur une ligne de cache.
Index - Sous-ensemble de bits d'adresses de l'unité centrale permettant de retrouver
un emplacement spécifique en anté mémoire.
Internal cache - Antémémoire implantée à l'intérieur de la puce processeur.
Level 1 (L1) - Antémémoire la plus proche du processeur. La cache de premier
niveau se trouve généralement à l'intérieur de la puce. On dit aussi cache ou
antémé moire primaire.
Level 2 (L2) - Antémémoire un peu plus éloigné e du processeur. La cache de
second niveau se trouve généralement sur la carte mère. On dit aussi cache ou
antémémoire secondaire.
Pipeline burst - Type d'antémémoire synchrone lé gèrement moins chère que la
mémoire Burst, mais tout aussi performante. (La Burst est virtuellement plus
rapide, mais la carte mère ne peut en profiter.)
Primary cache - Antémémoire de premier niveau.
Secondary cache - Antémémoire de second niveau.
Set-associativity - Nombre d'emplacements où une même adresse de la mémoire
centrale peut être placée dans l'anté mémoire.
SRAM - Static Random Access Memory. Type de mémoire généralement
utilisée pour les modules dantémémoire. La SRAM est plus rapide, mais
aussi plus onéreuse que la DRAM.
Synchronous SRAM - SRAM qui a besoin dun signal dhorloge
pour valider les signaux de commande. Cest ce qui permet à lantémémoire
dopérer à la même fréquence que le processeur. Il peut sagir de
mémoire Burst ou de Burst pipeline.
TAG - Sous-ensemble de bits dadresses du processeur utilisé pour
comparer les bits drapeaux du répertoire de lantémémoire aux adresses
de la mémoire centrale.
Tag RAM - Antémémoire physiquement divisée en deux sections. La section
de la RAM "Tag" contient les adresses drapeaux des emplacements des
données en mémoire cache. Elle est plus petite que la RAM "Data",
qui contient les données ou les instructions proprement dites.
Write back (ou Copy back) - Les données écrites en antémémoire par le
processeur ne sont pas écrites en mémoire centrale tant que la ligne de données
de lanté mémoire nest pas sur le point dêtre remplacée.
Write through - Technique qui consiste à écrire simultanément les données
du processeur en antémé moire et en mémoire centrale pour en garantir la cohérence.
La SDRAM (Synchronous Random
Access Memory), ou DRAM synchrone, est la premiere DRAM capable de s'autosynchroniser
sur le processeur. Basée sur un noyau de DRAM standard, une SDRAM fonctionne
exactement de la même manière. Elle apporte en plus une serie de particularités
qui font son interêt.
Fonctionnement synchrone: contrairement aux DRAM asynchrones traditionnelles,
les SDRAM ont une entrée d'horloge. L'horloge système qui commande les operations
pas-à-pas du microprocesseur peut donc aussi piloter la SDRAM. Le contrôleur
de mémoire sait exactement à quel cycle d'horloge les données demandées seront
prêtes. Pratiquement, le processeur ne doit plus marquer de temps d'attente
entre les acces mémoire.
Bancs de cellules: les cellules de mémoire de la puce SDRAM sont divisées en
deux `bancs' independants. Les deux bancs pouvant être actives simultanement,
il est possible de produire un flux continu de données en passant de l'un à
l'autre. Cette methode dite `d'entrelacement' ecourte le cycle mémoire total
et autorise des transferts de données plus rapides.
Mode burst: le `bursting' est une technique de transfert `en rafale' qui genere
automatiquement un bloc de donnees (une suite d'adresses consecutives) chaque
fois que le processeur demande une adresse quelconque. On part du principe (comme
pour les mémoires caches) que la prochaine adresse demandée par le processeur
sera sequentielle à la precedente, ce qui est generalement le cas. Ce `mode
rafale' est applique aussi bien en lecture (à partir de la mémoire) qu'en écriture
(vers la mémoire).
Les DRAM synchrones sont plus rapides. Même si elles sont basées sur une architecture
DRAM standard, la combinaison des trois particularités precitées leur permet
de transferer les données plus vite et plus efficacement. Les taux de transfert
d'une SDRAM atteignent dejà les 100 MHz soit près de 4 fois plus qu'une DRAM
standard. La SDRAM peut ainsi rivaliser avec les plus onereuses SRAM (RAM statiques)
employées comme antemémoires externes.
L'information à traiter
par le processeur est conservée dans la mémoire centrale de l'ordinateur. Le
temps necessaire au transfert des données entre l'unite centrale et la mémoire
joue donc un rôle essentiel. Un processeur plus rapide peut bien sûr rendre
le système plus performant, mais encore faut-il qu'il ne soit pas pris dans
un cycle `d'etats d'attente' destiné à permettre à tout le reste du système
de tenir la cadence. Depuis qu'Intel a présenté les premiers x286 il y a quinze
ans, les puces mémoire ordinaires n'ont jamais été en mesure de suivre le rythme
de processeurs toujours plus rapides.
Les DRAM classiques, asynchrones, ne possedent pas d'entrée d'horloge. Cela
ne posait pas de problème durant la prémière decennie de developpement des microprocesseurs.
Toutefois, à partir d'un certain moment, les systèmes equipes de DRAM standard
ont décommencer à imposer des états d'attente afin d'empêcher les microprocesseurs
de saturer la mémoire. Un état d'attente est une pause marquée par un microprocesseur
plus rapide pour laisser le temps aux autres composants de le rattraper.
Les nouvelles technologiques ont des lors vise non seulement à améliorer la
vitesse, mais aussi à ecourter l'ensemble du cycle de récherche des données
en mémoire, est possible dans les 35 ns qui suivent, contre 12 ns pour une SDRAM
-12 (temps d'acces 60 ns). C'est trois fois plus rapide sans necessiter un remodelage
en profondeur du système.
Adressage pipeline permet d'entamer un second acces aux données avant la fin du precédent
Le rôle de la SDRAM dans les mémoires PC
La plupart des mémoires
pour PC à l'heure actuelle sont des DRAM FPM ou des DRAM EDO. La DRAM synchrone
devait rapidement prendre le relais. D'une FPM à une EDO (adjonction d'une antémémoire
secondaire), on gagnait 50 % en performances. Plus encore 50 % d'une EDO à une
BEDO ou une SDRAM. Bon nombre de constructeurs considèraient neanmoins la BEDO
- limitée du point de vue de la vitesse comme une phase `transitoire' entre
l'EDO et la SDRAM. Pour eux, la SDRAM ètait la mémoire centrale de demain.
La demande actuelle vient des applications haut de gamme et à teneur graphique
intensive, comme le multimedia, les serveurs, les commutateurs ATM et autres
materiels de télécommunication/réseau necessitant une large bande passante et
des taux de transferts élevés. De l'avis des specialistes, la SDRAM devait s'imposer
comme le nouveau standard pour les mémoires centrales.Mais la technique ne s'arrêtant
jamais, on voit naître depuis une évolution de la SD-RAM dite PC133, c'est la
DDR-SD-RAM 266 ( 2 X 133 Mhz ). En attendant qu'INTEL baisse les prix de sa
RAMBUS les consommateurs investissent encore dans la SD-RAM et ses évolutions.
4ème trimestre 96: la SDRAM occupe de plus en plus de place dans les catalogues des constructeurs de DRAM
Coup d'oeil sur la SDRAM:
Candidat ideal pour les mémoires centrale de demain
Single In-line Memory Module (module de mémoire à connexion simple) et DIMM, Dual In-line Memory Module (module de mémoire à double connexion). Principale différence: sur un SIMM, les broches en vis-à-vis de part et d'autre de la carte sont "associées" en un contact électrique unique. Sur un DIMM, en revanche, elles restent isolées électriquement et forment deux contacts séparés.
L'unité centrale (UCT) adresse
la mémoire par bancs. Chaque banc fournit le nombre maximum de bits que le processeur
est capable de traiter simultanément. Par exemple, un système 32 bits gère l'information
mémoire par blocs de 32 bits. Les anciens SIMM 30 broches ont une largeur de
8 bits, contre 32 bits pour les 72 broches.
Sur un système 32 bits équipé de modules 30 broches, les emplacements sont généralement
organisés par "bancs" de quatre. Chaque banc est traité comme une
entité séparée. En d'autres termes, tous les emplacements du banc doivent être
occupés par des modules de capacité identique. Impossible d'en garnir un partiellement.
La mémoire s'achète et s'installe par groupe de quatre modules. C'est pourquoi
Kingston propose des kits de quatre pièces.
D'un autre côté, si le système 32 bits utilise des modules 72 broches, l'unité centrale peut adresser séparément la mémoire de chaque module. Chaque emplacement constitue un banc à lui tout seul, ce qui en facilite l'installation. La carte mère des systèmes 32 bits les plus courants comporte quatre emplacements mémoire, qui peuvent recevoir n'importe quelle combinaison de modules de différente capacité.
SIMM / DIMM 72 broches et 168 broches
L'illustration ci-dessous
représente un SIMM 72 broches et le nouveau DIMM 168 broches standard.
Le SIMM 72 broches a une largeur de 32 bits, contre 64 bits pour le DIMM 168
broches. Le nouveau DIMM permet donc de doubler la largeur de bus d'un module
sans l'allonger démesurément.
Avec la technologie DIMM et les nouveaux ordinateurs 64 bits, l'ingénieur système a le choix entre deux possibilités. S'il opte pour des SIMM 72 broches, les modules pourront être arrangés par "bancs" de deux. Toutefois, l'utilisateur devra les commander et les installer par paires. S'il préfère les DIMM 168 broches, l'utilisateur peut remplir ses emplacements mémoire à sa guise.
Autre avantage de la technologie DIMM, elle permet de fabriquer des modules 32 bits très petits. L'illustration à gauche montre un SIMM 72 bits standard par rapport à un DIMM SO (Small Outline, ou "petit format"). Tous deux sont des modules 32 bits, mais le DIMM SO est à peu près la moitié moins encombrant que le SIMM 72 bits. Il permet donc de gagner de la place lorsque celle-ci est comptée. C'est pourquoi la plupart des constructeurs de portables ont adopté le DIMM SO comme mémoire standard pour leurs systèmes.
Type de module - Largeur de
bus - Type de configuration
SIMM 30 broches - 8 bits
systèmes 16 bits: installation par paires
systèmes 32 bits: installation par quatre
SIMM 72 broches - 32 bits
systèmes 32 bits: - installation isolée
systèmes 64 bits: - installation par paires
DIMM 168 broches - 64 bits
systèmes 64 bits: installation isolée
DIMM SO - 32 bits
(Pour ordinateurs portables essentiellement)
systèmes 32 bits: installation isolée
systèmes 64 bits: installation par paires