\section{Types de mémoires}

Pour vous familiariser avec les différents types de mémoire, il
est important de voir où et comment la mémoire s'intègre dans le
système.\\

Les trois principaux types de mémoire installés sur les PC
modernes sont :\\

\begin{itemize}
  \item ROM (\textit{Read Only Memory}, mémoire en lecture seule) ;
  \item DRAM (\textit{Dynamic Random Access Memory}, mémoire à accès
    aléatoire dynamique) ;
  \item SRAM (\textit{Static Random Access Memory}, mémoire à accès
    aléatoire statique).
\end{itemize}

    \subsection{DRAM}

La DRAM (\textit{Dynamic RAM}, RAM dynamique) est le type de
mémoire qu'utilisent la plupart des PC modernes. Les points forts
de la DRAM sont sa densité et son faible coût, ce qui la rend
abordable pour des tailles importantes de mémoire.\\

Les éléments de base d'un module DRAM sont de minuscules
condensateurs qui emmagasinent la charge correspondant à une
donnée binaire. Le problème de la DRAM est qu'elle est dynamique
et doit, de ce fait, constamment être régénérée, sinon les
condensateurs se vident et les données se perdent. Le
rafraîchissement se produit quand le contrôleur mémoire accède aux
rangées de données pendant un très court instant (15 $\mu$s par
cycle). On accède à toutes les rangées en 128 cycles. Ce qui veut
dire que toutes les données sont rafraîchies dans un délai de 1,92
ms.\\

Le rafraîchissement de la mémoire se fait malheureusement au
détriment des autres tâches. Dans les anciens PC, cela
représentait environ 10\% du temps CPU. Dans les machines récentes
qui tournent à plusieurs centaines de mégahertz, cette opération
prend 1\% du temps CPU. Certains systèmes permettent de modifier
le cycle de rafraîchissement mémoire par un paramètre du Setup. II
faut être très prudent car si on allonge le délai, certaines cases
de mémoire peuvent commencer à perdre l'information, ce qui
entraîne des erreurs qui ne sont pas dues à une cause matérielle.
Il est plus sage de maintenir le délai de rafraîchissement
recommandé, ce qui n'a pas de conséquence sensible sur les
performances.\\

Les DRAM n'ont qu'un transistor et un condensateur par bit ce qui
les rend très compactes. Les modules DRAM offrent des volumes de
256 Mbits ce qui signifie 256 millions de transistors sur une puce
! En comparaison, le Pentium II avec ses 7,5 millions fait pâle
figure. La différence est que dans une puce de mémoire les
composants sont rangés suivant une structure de grille très
simple, alors que dans un processeur les circuits sont très
complexes et de structure différente. II y a un fabricant de
modules qui étudie à l'horizon 2001-2002 des puces de densité 256
Gbits en 0,05 $\mu$m, ce qui montre que les densités mémoire
continuent à augmenter sans cesse.\\

Le transistor de chaque cellule élémentaire lit l'état du
condensateur qui lui est attaché. S'il est chargé, la cellule est
à 1, sinon elle est à 0. Dans ces condensateurs minuscules, la
charge ne se maintient que par un rafraîchissement très fréquent.
Une microcoupure ou une interférence sur le cycle de
rafraîchissement peut suffire à provoquer une perte de la charge
et la destruction de la donnée.\\

La mémoire DRAM est utilisée dans les PC parce qu'elle est bon
marché, dense et tient peu de place. Malheureusement, la DRAM est
plus lente que le processeur. C'est pour cela que l'on a recherché
différentes organisations de DRAM pour accélérer le
fonctionnement.

    \subsection{DRAM FPM}

La mémoire DRAM utilise une technique d'accès à deux dimensions :
la pagination. L'accès à une case de mémoire nécessite de
sélectionner des adresses de rangée et de colonne, ce qui prend du
temps. La pagination permet un accès plus rapide aux données d'une
même rangée en ne modifiant que l'adresse de colonne. La mémoire
gérée par cette technique s'appelle mémoire FPM (\textit{Fast Mode
Page}, mode page rapide).\\

Le mode page consiste à découper la mémoire en pages, avec des
rangées allant de 512 à quelques milliers d'octets. On accède aux
cases mémoire appartenant à la même page avec un nombre de cycles
d'attente plus petit. Si on veut accéder à une autre page, il faut
ajouter un ou plusieurs cycles d'attente supplémentaires.\\

Pour accélérer la vitesse d'accès à la mémoire, les concepteurs
d'ordinateurs ont recherché des modes d'accès plus rapides. Le
mode d'accès rafale (burst) a été l'un des changements les plus
importants pour les processeurs 486 et suivants. Ce mode d'accès
tient compte du fait que la majorité des accès mémoire se fait sur
des données consécutives. Dès qu'on a accédé à une case mémoire,
le mode rafale permet l'accès aux trois données adjacentes sans
attente ni latence. Un accès en rafale est limité à quatre accès
au total. Pour expliquer cela, on se réfère au nombre de cycles
pour chacun des accès. On l'exprime sous la forme x-y-y-y où x est
le temps du premier accès (cycle plus latence) et y représente le
nombre de cycles pour chaque accès suivant.\\

La DRAM de 60 ns a un mode rafale de 5-3-3-3. Le premier accès
correspond à cinq cycles (soit 75 ns sur un bus cadencé à 66 MHz :
5 fois 15 ns), les cycles suivants prennent trois cycles (45 ns :
3 fois 15 ns). Comme on le voit, le temps global est plus court.
Sans cette technique, on fonctionne en 5-5-5-5 en ajoutant
nécessairement les latences pour chaque accès.\\

La mémoire DRAM qui utilise le mode page et le mode rafale est
appelée DRAM FPM (\textit{Fast Page Mode}, mode page rapide). Un
grand nombre de 486 et les modèles suivants utilisent ce mode.\\

Une autre technique appelée \textit{entrelacement} permet
d'accélérer la mémoire FPM. C'est un modèle dans lequel on associe
deux bancs mémoire en accédant alternativement à l'un puis à
l'autre pour la même position de rangée et de colonne. On traite
le premier pendant que l'on charge la donnée du second. Ce
chevauchement des accès sur deux bancs réduit l'effet de latence
et du temps de cycle, et permet un accès global plus rapide. Pour
utiliser cette méthode, il est nécessaire d'installer des bancs
mémoire identiques, ce qui double le nombre de modules SIMM ou
DIMM nécessaire. Cette méthode a eu son succès sur les systèmes à
mémoire 32 bits avec les processeurs 486 mais l'arrivée des
Pentium à mémoire 64 bits la éclipsée. Pour utiliser
l'entrelacement sur un Pentium, il faut installer de la mémoire
128 bits, ce qui nécessite quatre modules SIMM à 72 broches ou
deux modules DIMM.

    \subsection{RAM EDO}

Depuis 1995, il existe un nouveau type de RAM pour les Pentium
appelé RAM EDO (\textit{Extended Data Out}, sortie de données
améliorée). La mémoire EDO est une forme modifiée de la mémoire
FPM que l'on appelle aussi HPM (\textit{Hyper Page Mode}, mode
page hyper). Cette technique a été inventée et brevetée par Micron
Technology. Les modules sont fabriqués par plusieurs sociétés. La
mémoire EDO est conçue pour optimiser le chevauchement entre les
accès successifs. L'ajout d'un verrou de type D (D-Latch) permet de charger une nouvelle adresse en entrée sans attendre la validation d'une donnée en sortie. Les cycles de latence entre deux lectures sont minimisés, d'où un fonctionnement de l'ordre de 50 MHz , contre 25 MHz pour de la DRAM à 70 ns en FPM.\\

\begin{figure}[h]
  \centering
  \includegraphics{images/fig6fpm.eps}
  \label{im6}
\end{figure}
\begin{figure}[h]
  \centering
  \includegraphics{images/fig7edo.eps}
  \caption{On observe que la mémoire EDO permet d'avor un flux de données deux fois supérieure à la mémoire FPM}
  \label{im7}
\end{figure}

La RAM EDO a un cycle de 5-2-2-2 en mode rafale, ce qui fait un
gain de quatre cycles par rapport au mode FPM, soit 22\%. En test,
le gain réel est de 5\%. La RAM EDO utilise les mêmes composants
que la DRAM classique, au même coût.\\

%Pour être en mesure de l'utiliser, il faut un chipset approprié.
%Depuis 1995, le chipset Intel 430FX (Triton) et bien d'autres
%intègrent cette fonction.\\

%La RAM EDO est idéale pour les ordinateurs équipés d'un bus
%cadencé à 66 MHz et plus, ce qui correspond au marché depuis 1997.
%Cependant, en 1998, le marché de la RAM EDO a baissé pour laisser
%la place à la SDRAM (\textit{Synchronous DRAM}, DRAM synchrone)
%qui devient le standard sur les nouveaux ordinateurs.

    \subsection{BEDO}

La mémoire BEDO (\textit{Burst EDO DRAM}, DRAM EDO rafale) est une
mémoire EDO avec des dispositifs complémentaires pour assurer des
transferts plus rapides. Un seul chipset (Intel 440FX Natoma) peut
gérer cette puce qui a été rapidement éclipsée par les SDRAM. La
mémoire BEDO n'est pas présente dans les ordinateurs actuels et
n'est plus produite.

    \subsection{SDRAM}

SDRAM (\textit{Synchronous DRAM}, DRAM synchrone) est un type de
mémoire qui fonctionne en synchronisation avec le bus. La mémoire
SDRAM livre l'information en rafales très rapides à l'aide d'une
interface utilisant une horloge. Elle élimine la plus grande
partie des temps de latence inhérents aux modules de DRAM en se
synchronisant avec l'horloge de la carte mère.\\

%Comme pour la RAM EDO, votre chipset doit être en mesure de
%supporter ce type de mémoire. Depuis 1997, avec les chipsets 430VX
%et 430TX, tous les chipsets d'Intel supportent la SDRAM, qui est
%devenue le type de mémoire le plus connu dans les nouveaux
%systèmes. La SDRAM est particulièrement bien adaptée à
%l'architecture des Pentium II et des cartes mères
%correspondantes.\\

Les performances de la SDRAM sont largement supérieures à celles
de la RAM FPM et EDO. Avec un temps de latence identique, mais des
temps de cycles beaucoup plus rapides, le mode rafale SDRAM a un
cycle de 5-1-1-1, ce qui correspond pour quatre accès à huit
cycles d'horloge seulement, contre onze pour la RAM EDO et
quatorze pour la RAM FPM.\\

En plus, la SDRAM est capable de fonctionner avec un bus cadencé à
200 MHz (3 ns) qui est devenu le standard en 2001. Presque tous
les PC vendus en 2001 et ceux qui seront vendus dans les deux
prochaines années seront équipés de mémoire SDRAM.\\

La mémoire SDRAM est vendue sous forme de modules DIMM, et ses
performances sont exprimées en mégahertz plutôt qu'en nanoseconde.
Vous trouverez de la SDRAM cadencée à 66 MHz (15 ns), 83 MHz (12
ns) ou 133 MHz (7 ns). A cause du découpage de temps très pointu à
100 MHz, Intel à créé un standard PC/133 qui définit les critères
de performance que le module mémoire doit respecter pour être
fiable dans un ordinateur cadencé à 133 MHz. Pour assurer le
respect de ce critère beaucoup de modules certifiés PC/133 seront
calibrés à 5 ns, soit 166 MHz. Même s'ils sont capables de
soutenir 166 MHz, ils ne seront certifiés qu'à 133 MHz. Intel sent
bien que 7 ns est un laps de temps trop près des
limites pour être suffisamment sûr.\\

Bien que sensiblement plus rapide que les types précédents, la
mémoire SDRAM n'est pas plus chère, ce qui lui a permis d'être
très rapidement adoptée.

    \subsection{RDRAM}

La RDRAM (\textit{Rambus DRAM}, DRAM Rambus) est un tout nouveau
concept de mémoire qui est exploité dans les systèmes PC haut de
gamme depuis 1999-2000. Avec l'appui d'Intel, ce nouveau type de
mémoire est supporté dans les chipsets produits pendant cette période.\\

La RDRAM accroît la largeur de bande de la mémoire en portant le
bus de données interne à 16 bits, ce qui le double, et en portant
la fréquence d'horloge à 800 MHz, avec un débit en pointe de 1,6
Go par seconde. RDRAM améliore le mode de fonctionnement du bus de
telle manière qu'il n'est plus nécessaire de partager ou
multiplier les informations de contrôle du bus de données. Par
contre, la RDRAM crée un contrôle indépendant et découpe les
adresses de bus en deux groupes correspondant aux rangées et aux
colonnes. Les données sont transférées par 2 octets à la fois sur
un bus élargi. La synchronisation est assurée par l'envoi de
paquets lors du pic descendant de l'horloge.\\

Cette architecture supporte des transactions multiples et
imbriquées. En interne, l'unité 64 Mbits utilise un chemin de
données d'une largeur totale de 128 bits à une fréquence de 100
MHz, ce qui permet de transférer 8 octets toutes les 10 ns. La
RDRAM a quatre modes de désactivation et se met automatiquement en
mode veille à la fin d'une transaction. Pour ces raisons, la
puissance nécessaire au module est légèrement plus faible que
celle d'un module SDRAM dans un PC de bureau, et équivalente à
celle d'un module EDO d'un ordinateur portable.\\

Les puces de RDRAM sont destinées à être installées sur des
modules RIMM (\textit{Rambus Inline Memory Module}, module de
mémoire à rangée de contacts Rambus). Un module RIMM est similaire
en taille et en forme à une barrette DIMM mais ils ne sont pas interchangeables.\\

%Le contrôleur de mémoire RDRAM doté d'un canal Rambus simple
%accepte jusqu'à trois modules RIMM. Chaque module RIMM de 256 Mo
%porte des puces de 64 Mbits. Les futures modules de mémoire RIMM
%auront des capacités plus importantes - jusqu'à 1 Go. Il sera
%également possible de développer des chipsets intégrant le
%contrôleur Rambus, qui pourront accueillir plusieurs canaux Rambus
%et donc plus de connecteurs RIMM.
Il est à noter que Rambus ne fabrique ni les puces RDRAM ni les
modules RIMM. Ceci est laissé à d'autres sociétés. Rambus est
simplement une société de conception. Elle cède des licences
d'utilisation à des fabricants de modules. Treize sociétés ont
signé un contrat de licence avec Rambus : Fujitsu, Hitachi,
Hyundai, IBM, LG, Micron Technology, Mitsubishi, NEC, Oki,
Samsung, Siemens AG et Toshiba. Ces entreprises fabriquent en même
temps les puces de RDRAM installées sur les modules RIMM.

    \subsection{SDRAM DDR}

La DDR RAM à 100 Mhz, 133 Mhz, 166 Mhz est une autre variante de
la mémoire SDRAM. La différence principale entre la SDRAM et la
DDR SDRAM est que la DDR SDRAM a la capacité d'utiliser la montée
aussi bien que la descente de l'horloge pour transférer les
données ce qui a pour conséquence de doubler ses performances de
transfert de données. C'est à dire que cette mémoire fonctionne
comme si ells était cadencée à 200 Mhz, 266 Mhz ou 333 Mhz. Le
taux de transfert maximum de la DDR SDRAM est de 2,666 Go/s à 166
Mhz.\\

La mémoire DDR est proposée par des sociétés fabriquant des
processeurs comme AMD et Cyrix, ou des chipsets comme VIA
Technologies, ALi (Acer Labs, Inc.), et SiS (Silicon integrated
Systems), comme alternative à faible prix. Intel n'utilisera que
de la RDRAM sur ses produits haut de gamme en 1999. La mémoire DDR
sera réservée aux machines bas de gamme. La standardisation
officielle de la mémoire DDR a été entreprise par le consortium
DDR, composé de sociétés telles que Fujitsu, Hitachi, Hyundai,
Mitsubishi, NEC, Samsung, Texas Instruments et Toshiba.\\

    \subsection{Mémoire cache-SRAM}

II existe un autre type de mémoire qui est sensiblement plus
rapide que la plupart des autres types de DRAM. II s'agit de la
SRAM (\textit{Static RAM}, RAM statique). La mémoire SRAM doit son
nom au fait que, contrairement à la DRAM, elle n'a pas besoin
d'être rafraîchie. Par sa conception, ce type de mémoire est plus
rapide que la DRAM et tout à fait en mesure de s'intégrer dans les
PC modernes.\\

La mémoire SRAM est disponible avec des temps d'accès de 2 ns ou
moins ce qui lui permet de s'adapter à des processeurs
fonctionnant à 500 MHz ou plus. Ces performances s'expliquent par
la conception de la SRAM, qui utilise un groupe de six transistors
par bit de stockage. L'emploi de transistors à la place des
condensateurs a éliminé le rafraîchissement nécessaire avec la
DRAM, dont les condensateurs se déchargeaient si la mémoire
n'était pas rafraîchie. Tant qu'elle est sous tension, la SRAM
conserve les données qu'elle contient. Avec de telles
caractéristiques, pourquoi ne pas utiliser de la SRAM dans tous
les systèmes informatiques ? La réponse à cette question est
simple. Elle tient à différents facteurs :\\


\begin{tabular}{l l l l}
Type  &  Vitesse & Densité & Coût \\
DRAM & Lente & haute & bas \\
SRAM & Rapide & faible & élevé \\
\newline
\end{tabular}

Comparée à la DRAM, la SRAM est plus rapide mais de faible densité
et de coût élevé. La faible densité explique que les puces soient
plus grandes tout en stockant moins d'information. Le grand nombre
de transistors et leur organisation en groupes de six expliquent
que ce type de mémoire soit plus coûteux à produire que les puces
de DRAM. Une puce de DRAM de 64 Mo correspond physiquement en
taille et en coût à une puce de SRAM de 2 Mo. Pratiquement, une
puce de SRAM est trente fois plus grosse et plus chère qu'une puce
de DRAM équivalente. Ce sont ces éléments qui ont empêché la SRAM
de trouver sa place dans les PC.\\

Jusqu'à récemment, la mémoire DRAM était limitée à 60 ns (16 MHz).
Tant que les PC tournaient à 16 MHz, il était possible à la
mémoire de s'intégrer parfaitement dans les ordinateurs sans être
épaulée par de la mémoire cache. Depuis que la barrière des 16 MHz
a été franchie, l'harmonie a été rompue, et c'est à ce moment-là
que la mémoire SRAM a fait son apparition. C'était vers 1986-1987,
quand les premiers PC 386 étaient cadencés à 16 ou 20 MHz. Ce fut
le moment où les premiers PC commencèrent à utiliser ce qu'on
appelle de la mémoire cache, c'est-à-dire une mémoire tampon très
rapide, de type SRAM, qui alimente directement le processeur. Le
système est conçu pour anticiper les besoins du processeur en
mémoire et pour pré charger les instructions et données
nécessaires.\\

L'efficacité de la mémoire cache s'exprime par un taux de réussite
(ou taux d'anticipations pertinentes). Quand le cache peut faire
face à toutes les demandes du processeur, c'est réussi. Quand le
processeur doit rechercher les données dans la mémoire plus lente,
c'est l'échec. Si un processeur fonctionne à 233 MHz, son cycle de
mémoire est de 4 ns mais avec une mémoire à 60 ns, il tournera
seulement à 16 MHz. Par contre s'il travaille dans la mémoire
cache à 2 ns, il n'attendra pas et fonctionnera à pleine
vitesse.\\

Pour diminuer le nombre de cas où le processeur est obligé de lire
dans la mémoire lente, il existe deux niveaux de mémoire cache :
les mémoires cache de niveau 1 (Ll) et celles de niveau 2 (L2). La
mémoire cache de niveau 1 est aussi appelée cache interne. Elle
est intégrée au processeur et fait partie de la pastille de
circuit imprimé du processeur. De ce fait, la mémoire cache de
niveau 1 fonctionne à la vitesse du noyau du processeur. Tous les
486 et les processeurs suivants intègrent une mémoire cache de
niveau 1, ce qui les rend sensiblement plus rapides que leurs
prédécesseurs. La mémoire cache de niveau 2 est également appelée
"mémoire cache externe" car elle est externe à la puce du
processeur. A l'origine, elle était installée sur la carte mère.
C'était le cas sur les ordinateurs de type 386, 486 et Pentium.
Sur ces ordinateurs, la mémoire cache de niveau 2 fonctionne à la
vitesse de la carte mère car elle installée sur la carte mère. Sur
les ordinateurs de type Pentium et plus anciens, elle est
généralement placée à côté du support de processeur.\\

Pour accroître les performances, à partir du Pentium Pro et du
Pentium II, les concepteurs de processeurs ont décidé d'incorporer
la mémoire cache de niveau 2 au processeur. Elle demeure néanmoins
bien distincte de la pastille du processeur et se présente sous la
forme d'une pastille (Pentium Pro) ou d'une puce (Pentium II)
distinctes. Les ordinateurs équipés d'un Pentium Pro ou d'un
Pentium ne comportent donc pas de mémoire cache de niveau 2 sur
leur carte mère.\\

Le meilleur moyen, pour comprendre comment sont placés le cache et
la mémoire, est de regarder l'architecture globale du système.\\

\begin{figure}
  \centering
  \includegraphics{images/fig5.eps}
  \caption{Architecture d'un ordinateur équipé d'un processeur
    Pentium MMX et d'un chipset Intel 430TX..}\label{im5}
\end{figure}

Le Tableau \ref{5} illustre le besoin de mémoires cache de niveau
1 (interne) et de niveau 2 (externe) dans les ordinateurs
modernes.\\

\begin{table}[h]
  \centering
    \begin{tabular}{|m{3cm}|m{1.8cm}|m{1.8cm}|m{1.8cm}|m{1.8cm}|m{1.8cm}|}
    \hline
    CPU & 486 DX4 & Pentium & Pentium Pro & Pentium II& Pentium III \\
    \hline
    Vitesse du processeur :& 100MHz & 233MHz & 200MHz & 300MHz & 400MHz\\
    \hline
    Vitesse de la mémoire cache de niveau 1 : & 10ns (100MHz)&
    4ns (233MHz)& 5ns (200 MHz)& 3ns (300 MHz)& 2ns (400MHz)\\
    \hline
    Vitesse de la mémoire cache de niveau 2 :& 30ns (33 MHz)&
    15ns (66 MHz)& 5ns (200 MHz)& 6ns (150MHz)&  5ns (200MHz)\\
    \hline
    Vitesse de la carte mère :& 33MHz & 66MHz & 66MHz & 66MHz & 100MHz\\
    \hline
    Vitesse des modules :& 60ns & 6ns & 60ns & 15ns & 10ns \\
    \hline
    SIMM/DIMM :& (16MHz) & (16MHz) & (16MHz) & (66 MHz) & (100MHz)\\
    \hline
    \end{tabular}
  \caption{Les caches L1 (interne) et L2 (externe) dans les
    systèmes modernes}\label{5}
\end{table}

La mémoire cache fonctionnait, à l'origine, en mode asynchrone,
c'est-à-dire qu'elle ne tournait pas à la même vitesse que le
processeur. Avec le chipset 430TX, en début d'année 1995, est
apparu un nouveau type de cache synchrone. Ceci suppose que les
puces fonctionnent à la même vitesse que le bus. Une fonction
appelée \textit{mode rafale (Burst) à pipeline} est également
apparue à cette époque. Elle réduisait le nombre de cycles
d'attente en offrant des accès d'un seul cycle pour les accès
multiples, une fois le premier transfert effectué. En résumé, la
mémoire cache rafale (Burst) synchrone à pipeline apporte une
amélioration de 20\% des performances générales de l'ordinateur,
ce qui n'est pas
négligeable.\\

Le contrôleur de mémoire cache est intégré soit, dans le chipset
pour le Pentium et les systèmes moins puissants, soit dans le
processeur lui-même pour le Pentium Pro, le Pentium II et les
nouveaux systèmes. C'est le contrôleur de mémoire cache qui
détermine les possibilités de la mémoire cache. Certains
contrôleurs limitent la quantité de mémoire qui peut être mise en
cache. Quelquefois, cette limite est relativement basse. Le
chipset 430TX ne va pas au delà des premiers 64 Mo. Si vous avez
plus de 64 Mo, vous pourrez ressentir un ralentissement. Par
exemple, les systèmes d'exploitation Windows 95, 98 et NT se
chargent en fin de mémoire. Avec 96 Mo, le système ira se charger
au delà des 64 Mo dans la zone non mise en cache. II s'ensuit une
dégradation sérieuse des performances, qui ne trouve sa solution
qu'en enlevant la mémoire excédentaire. Il est imprudent
d'installer plus de mémoire RAM que n'en peut gérer votre chipset.

