Vous êtes sur la page 1sur 10

3 Les mémoires

Sommaire
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2 Organisation et fonctionnement . . . . . . . . . . . . . . . . . . . . . 36
3.3 Caractéristiques des mémoires . . . . . . . . . . . . . . . . . . . . . . 37
3.4 Différents types de mémoires à semi-conducteurs . . . . . . . . . . 37
3.4.1 La mémoire à accès aléatoire ou mémoire RAM . . . . . . . . 38
3.4.2 La mémoire à lecture seule ROM . . . . . . . . . . . . . . . . . 39
3.5 Hiérarchie des mémoires . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.6 La mémoire cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.6.1 Principe de fonctionnement . . . . . . . . . . . . . . . . . . . . 41
3.6.2 Principes de localité . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.6.3 Hiérarchie de cache . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.1 Introduction
On appelle « mémoire » tout composant électronique capable de stocker temporaire-
ment des données. L’unité de mémoire stocke les informations binaires sous forme de
bits. Généralement, la mémoire/stockage est classée en 2 catégories :

Mémoire volatile : elle perd ses données lorsque l’alimentation est coupée.

Mémoire non volatile : il s’agit d’un stockage permanent et ne perd aucune don-
née lorsque l’alimentation est coupée.

35
3.2 Organisation et fonctionnement

3.2 Organisation et fonctionnement


Une mémoire est constituée de cellules mémoires (bascules bistables) qui sont regrou-
pées pour former des cases mémoires (généralement un octet ou un multiple d’un oc-
tet). Chaque case mémoire est identifiée par une adresse unique obtenue par la com-
binaison binaire d’un ensemble de fils constituant le bus d’adresse.
L’ensemble de fils permettant de lire ou d’écrire sur chaque cellule mémoire forme le
bus de donnée. Lorsque le bus d’adresse est composé de n fils, la taille de la mémoire
est T = 2n cases ou mots. Le nombre m de fils du bus de donnée quant à lui indique la
largeur des mots mémoires (Figure 3.1).

Fig. 3.1 : Schéma d’organisation d’une mémoire

Les lignes d’adresses sont connectées aux n entrées d’un décodeur qui sélectionne une
seule des 2n lignes du composant mémoire. Les bits qui appartiennent à la ligne sé-
lectionnée sont connectés au bus des données. Le nombre de fils de données définit la
taille des données que l’on peut sauvegarder dans chaque case mémoire.
En plus du bus d’adresses et du bus de données, un boîtier mémoire comprend une
entrée de commande qui permet de définir le type d’action que l’on effectue avec la
mémoire (lecture/écriture) et une entrée de sélection qui permet de mettre les en-
trées/sorties du boîtier en haute impédance -isoler le boîtier électriquement- (Figure
3.2).

36
3.3 Caractéristiques des mémoires

A0 D0
A1 D1
A2 D2
.
.
.
. RAM / ROM
.
.
. D7
An

CS WE OE

Fig. 3.2 : Schéma fonctionnel d’une mémoire

3.3 Caractéristiques des mémoires


Les principales caractéristiques d’une mémoire sont les suivantes :

La capacité représentant le volume global d’informations (en bits) que la mémoire


peut stocker ;

Le temps d’accès correspondant à l’intervalle de temps entre la demande de lecture/é-


criture et la disponibilité de la donnée ;

Le temps de cycle représentant l’intervalle de temps minimum entre deux accès suc-
cessifs ;

Le débit définissant le volume d’information échangé par unité de temps, exprimé en


bits par seconde ;

La non volatilité caractérisant l’aptitude d’une mémoire à conserver les données lors-
qu’elle n’est plus alimentée électriquement.

3.4 Différents types de mémoires à semi-conducteurs


On distingue deux types de mémoires à semi-conducteurs (Figure 3.3) :

les mémoires à accès aléatoire volatiles (mémoires vives ou RAM) ;

les mémoires mortes (ROM).

37
3.4 Différents types de mémoires à semi-conducteurs

Mémoires à
semi-
conducteurs

ROM RAM

ROM PROM SRAM DRAM

EPROM EEPROM

Mémoire
Flash

Fig. 3.3 : Types de mémoires à semi-conducteurs

3.4.1 La mémoire à accès aléatoire ou mémoire RAM


La mémoire RAM est une mémoire volatile, utilisée par le processeur et le copro-
cesseur pour stocker temporairement de l’information, exécuter des instructions et
supporter le système d’exploitation. L’information contenue dans une mémoire RAM
peut être effacée, remplacée ou recouvrée en tout temps. On appelle aussi ce dispositif,
la mémoire vive ou mémoire système.

3.4.1.1 RAM statique

La mémoire vive statique (ou SRAM de l’anglais Static Random Access Memory) est
un type de mémoire vive utilisant des bascules pour mémoriser les données. La SRAM
est la plus ancienne et les bits y sont mémorisés par des bascules électroniques dont
la réalisation nécessite six transistors par bit à mémoriser. Les informations y restent
mémorisées tant que le composant est sous tension. C’est une mémoire très rapide
mais très couteuse.

3.4.1.2 RAM dynamique

La mémoire vive dynamique (en anglais DRAM pour Dynamic Random Access Me-
mory) est de réalisation beaucoup plus simple que la SRAM. Ce qui permet de faire
des composants de plus haute densité et dont le coût est plus faible. Chaque bit y est
mémorisé par une charge électrique stockée dans un petit condensateur. Le conden-
sateur se décharge au bout de quelques millisecondes. Aussi pour ne pas perdre cette

38
3.4 Différents types de mémoires à semi-conducteurs

information, il faut rafraîchir le contenu de la mémoire toutes les millisecondes. C’est


pourquoi on l’appelle mémoire dynamique. C’est ce qui explique aussi la lenteur rela-
tive de la RAM dynamique.

3.4.2 La mémoire à lecture seule ROM


Originellement, l’expression mémoire morte (en anglais, Read-Only Memory : ROM)
désignait une mémoire informatique non volatile (c’est-à-dire une mémoire qui ne
s’efface pas lorsque l’appareil qui la contient n’est plus alimenté en électricité) et dont
le contenu est fixé lors de sa programmation, qui pouvait être lue plusieurs fois par
l’utilisateur, mais ne pouvait plus être modifiée [Wikipédia, 2020b].

Les ROM ont petit à petit évolué de mémoires mortes figées à des mémoires program-
mables, puis reprogrammables.

3.4.2.1 ROM

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.

3.4.2.2 PROM

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 (ou bien de diodes) pouvant être ”grillés” grâce à un appareil appelé
« programmateur de ROM », appliquant une forte tension (12V) aux cases mémoire
devant être marquées. Les fusibles ainsi grillés correspondent à des 0, les autres à des
1.

3.4.2.3 EPROM

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.

39
3.5 Hiérarchie des mémoires

3.4.2.4 EEPROM

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’elles peuvent être effacées même lorsqu’elles sont en
position dans l’ordinateur.

3.4.2.5 FEPROM oui mémoire Flash

La FEPROM ”Flash EPROM” plus souvent appelée mémoire Flash est un modèle de
mémoire effaçable électriquement. Les opérations d’effacement et d’écriture sont plus
rapides qu’avec les anciennes EEPROM. C’est ce qui justifie l’appellation ”Flash”. Cette
mémoire, comme les autres ROM, conserve les données même quand elle n’est plus
sous tension.

3.5 Hiérarchie des mémoires


La machine idéale devrait posséder une mémoire de capacité illimitée et dont le temps
d’accès serait compatible avec la vitesse du processeur. Cette solution n’est pas écono-
miquement viable : les plus rapides sont les plus coûteuses, les plus lentes sont les
moins coûteuses. Sur des critères de coût et de performance s’établit une hiérarchie
que l’on retrouvera dans toute machine.

On utilise des mémoires de faible capacité mais très rapide pour stocker les informa-
tions dont le microprocesseur se sert le plus et on utilise des mémoires de capacité
importante mais beaucoup plus lente pour stocker les informations dont le micropro-
cesseur se sert le moins. Ainsi, plus on s’écarte du microprocesseur et plus la capacité
et le temps d’accès des mémoires vont augmenter (Figure 3.4).

les registres sont les éléments de mémoire les plus rapides. Ils sont situés au
niveau du processeur et servent au stockage des opérandes et résultats intermé-
diaires.

la mémoire cache est une mémoire rapide de faible capcité destinée à accéléré
l’accès à la mémoire centrale en stockant les données les plus utilisées.

la mémoire centrale (RAM) contient les programmes (code + données) et est


plus lente que les deux mémoires précédentes.

La mémoire d’appui est l’équivalent de la mémoire cache pour la mémoire de


masse.

40
3.6 La mémoire cache

Fig. 3.4 : Hiérarchie des mémoires

la mémoire de masse est un support de stockage généralement de grande capa-


cité et sert au stockage et à l’archivage des informations.

3.6 La mémoire cache


Introduit en milieu des années 60 sous le nom de mémoire esclave (Slave Memory),
l’antemémoire ou mémoire cache, ou plus simplement cache, est une mémoire qui
sert de tampon entre le processeur et la mémoire. Son temps d’accès est de 4 à 20 fois
inférieur à celui de la mémoire principale [Buisson, 2006].

Les caches sont intermédiaires entre les registres internes du micro-processeur et la


mémoires vive. Ils sont faits de mémoire rapide mais ils sont de taille réduite par rap-
port à la mémoire centrale.

3.6.1 Principe de fonctionnement


Pour expliquer le fonctionnement d’une mémoire cache, considérons une instruction
de lecture en mémoire. Lorsque le processeur tente d’accéder à cette information il
commence par la chercher dans le cache. S’il ne l’y trouve pas, il va la prendre en mé-
moire et recopie éventuellement dans le cache la portion de mémoire contenant cette

41
3.6 La mémoire cache

information. Ce processus se passe de façon tout-à-fait transparente pour l’utilisateur


[Blanchet et Dupouy, 2008].

Le processus fonctionne ainsi [Wikipédia, 2020a] :

1. l’élément demandeur (microprocesseur) demande une information ;

2. le cache vérifie s’il possède cette information. S’il la possède, il la retransmet à


l’élément demandeur – on parle alors de succès de cache (cache hit en anglais).
S’il ne la possède pas, il la demande à l’élément fournisseur (mémoire principale
par exemple) – on parle alors de défaut de cache (cache miss) ;

3. l’élément fournisseur traite la demande et renvoie la réponse au cache ;

4. le cache la stocke pour utilisation ultérieure au besoin et la retransmet à l’élément


demandeur.

Le cache est organisé par lignes. Chaque ligne contient une portion de 8 à 512 octets
des données en mémoires et une étiquette (tag en anglais) qui est l’adresse de ces don-
nées en mémoire. Lorsque le micro-processeur veut accéder à la mémoire, il compare
l’adresse avec les étiquettes des lignes du cache. S’il trouve l’adresse parmi les étiquettes,
le micro-processeur utilise directement les données du cache (Figure 3.5).

Index Tag Dirty Data


0 362F 0 4F ...
1 F3E0 0 00 ...
2 980A 1 F1 ...
3 8127 0 00 ...
4 A40B 1 56 ...
5 FFBC 1 90 ...
6 51DE 0 BC ...
7 0013 0 1A ...

Fig. 3.5 : Organisation de la mémoire cache

3.6.2 Principes de localité


Le fonctionnement de la mémoire cache repose sur le principe de localité. Ces prin-
cipes ont été découverts à la suite d’études sur le comportement des programmes in-
formatiques [Wikipédia, 2020a] :

1. le principe de localité spatiale qui indique que l’accès à une donnée située à une
adresse X va probablement être suivi d’un accès à une zone très proche de X.

42
3.6 La mémoire cache

C’est évidemment vrai dans le cas d’instructions exécutées en séquence, et plus


vrai encore pour les boucles courtes.
2. le principe de localité temporelle qui indique que l’accès à une zone mémoire à
un instant donné a de fortes chances de se reproduire dans la suite immédiate
du programme. C’est évidemment vrai dans le cas des boucles de quelques ins-
tructions seulement.
Donc, si on charge une portion de la mémoire dans la mémoire cache, il y a de grandes
chances pour que le processeur n’ait à faire, pendant un certain temps, que des accès
dans le cache, sans avoir recours à la mémoire principale. Ce temps est évidemment
fonction de la taille du cache et de la structure des programmes.

3.6.3 Hiérarchie de cache


Pour un meilleur compromis entre le prix de la mémoire cache et son efficacité, on
utilise plusieurs niveaux de cache. On parle alors de hiérarchie de cache (Figure 3.6).
La plupart des ordinateurs performants utilisent 3 à 4 niveaux de cache. Le cache de
niveau 1 est le plus près du micro-processeur. Il est petit mais fait de mémoire très
rapide. Le cache de niveau 2 est de taille plus grande mais fait de mémoire moins
rapide. Le cache de niveau 3 est encore plus grand mais fait de mémoire encore mois
rapide. Le cache de niveau 1 est directement intégré au processeur. Le cache de niveau
2 est souvent dans le même boîtier que le micro-processeur ce qui permet un large
bus entre les deux. Le bus de niveau 3 est en général sur la carte mère du processeur
[Carton, 2019].

CPU Cache
Cache
Cache L3
Cache L3
L1 L2

Fig. 3.6 : Hiérarchie de la mémoire cache

43
3.6 La mémoire cache

44

Vous aimerez peut-être aussi