Vous êtes sur la page 1sur 28

Introduction à l’informatique

Mémoires

Leçon basée sur celle du Prof. NICOLAS VAN ZEEBROECK


Contenu
● Introduction
● Organisation
● Fonctionnement
● Examen
● Conclusions

2
Contenu
● Introduction
● Organisation
● Fonctionnement
● Examen
● Conclusions

3
Introduction (1/4) – Rappel
● Mémoire contient les données et les programmes.
● Processeur doit accéder à la mémoire :
– Charger les instructions à exécuter et les données à traiter.
– Stocker dans la mémoire le résultat de ses traitements.
● Deux niveaux de mémoire ont été vus :
– Les registres (niveau du processeur).
– La mémoire centrale (ou RAM).

4
Introduction (2/4) – Registres
● Idéalement : Tout stocker dans les registres du processeur
car elle fonctionne à la même vitesse que le processeur.
● Difficulté : Registres sont des circuits électroniques
(bistables) extrêmement complexes et coûteux.
● En pratique :
– Processeur n’a qu’un nombre très limité de registres.
– Utiliser les registres de manière intelligente
(programmation et compilation).
– Limiter le plus souvent les registres au stockage de
quelques instructions et/ou des données en cours de
traitement.

5
Introduction (3/4) – Mémoire centrale (1/2)
● Mémoire centrale peut stocker de beaucoup plus grandes
quantités d’instructions et de données.
● Principe :
– Garder en mémoire centrale les instructions (du
programme) et l’ensemble des données.
– Transférer entre la mémoire centrale et les registres les
instructions et les données au fur et à mesure des besoins.
● Difficulté : Mémoire centrale est plus lente que le
processeur et le bus mémoire a une capacité limitée.

6
Introduction (4/4) – Mémoire centrale (2/2)
Caractéristiques d’accès
● Capacité : Largeur des registres (aujourd’hui 64 bits).

● Fonctionnement :

– CPU envoie un signal “REQUEST” et indique la nature de


l’interaction “R/W”.
– Une fois les données transférées, mémoire centrale envoie
un signal “COMPLETE”.
● Qualité/vitesse :
– Latence (“latency”) : Temps d’accès aux données.
– Bande passante (“bandwith”) : Capacité de transmission
par unité de temps.
● Adressage : Mémoire structurée en différents modules de
mémoires avec des adressages adaptés.

7
Contenu
● Introduction
● Organisation
● Fonctionnement
● Examen
● Conclusions

8
Organisation (1/9) – Contenu
● Principe
● Hiérarchie
● Types
● Performances

9
Organisation (2/9) – Principe
● On parle de Random Access Memory (RAM, “mémoire à
accès direct”).
● Principe :
– Chaque octet peut être stocké n’importe où (d’où le terme
“random”)
– Temps d’accès est constant.
● Décodage d’adresse se fait généralement en série :
– On sélectionne une première fois une partie de la mémoire.
– Ensuite on sélectionne une adresse particulière dans la
partie juste sélectionnée.
● La RAM est une mémoire vive ou volatile : La mémoire
s’efface dès qu’un courant ne l’alimente plus.

10
Organisation (3/9) – Hiérarchie (1/5)
● Deux problèmes avec la mémoire principale :
– Plus lente que le processeur ce qui ralentit donc
l’exécution des instructions.
– Limitée en taille et s’efface quand l’ordinateur s’éteint.
● Mémoire cache, solution au premier problème :
– Intercaler des mémoires plus rapides, de tailles plus petites
que la mémoire principale mais plus grande que celles des
registres.
– Lire et écrire à des vitesses proches de celles du CPU.
● Mémoire de masse, solution au second problème :
Proposer un stockage permanent (ex: disque dur).

11
Organisation (4/9) – Hiérarchie (2/5)
Mémoire cache
● Mémoire additionnelle au processeur qui fonctionne

quasi à la même vitesse que lui.


● Principe :

– Stocker les instructions et les données les plus


fréquemment utilisées récemment par le processeur.
– Avantage : Limiter au maximum les aller-retour avec la
mémoire centrale.
– Principe : Un programme tourne avec un nombre limité
d’instructions et de données qui reviennent très
fréquemment à un moment donné.
● Aujourd’hui : Souvent plusieurs niveaux de mémoire
cache (baptisés L1, L2 et L3), de tailles croissantes et de
vitesses décroissantes.

12
Organisation (5/9) – Hiérarchie (3/5)
Mémoire de masse
● Mémoires secondaires : Permanentes et à accès direct

(disques durs, clés USB).


● Mémoires d’archivage :

– Permanentes mais très éloignées physiquement et à accès


plus indirect type séquentiel (bandes magnétiques,
CD/DVD).
– Certaines de ces mémoires sont à écriture unique et non
réinscriptibles (CD-ROM ou DVD).

13
Organisation (6/9) – Hiérarchie (4/5)
Principe
● S’adresser toujours d’abord au niveau le plus proche.

● Si l’information demandée ne s’y trouve pas, on descend

au niveau suivant.
● Fonctionnement transparent pour le programme(ur).

14
Organisation (7/9) – Hiérarchie (5/5)
Accès
● Nombre d’appels ratés au premier niveau doit être petit

par rapport aux succès.


● Vitesses décroissent très rapidement par rapport à celles

du processeur :
– Pour la cache, le premier niveau fonctionne à la même
vitesse.
– Le deuxième niveau environ 10× plus lentement.
– Disques durs travaillent typiquement 1000000× plus
lentement.

15
Organisation (8/9) – Types
Familles
● Static RAM (SRAM) :

– Mémoire performante mais très volumineuse, chère et


gourmande en électricité.
– Typiquement utilisée pour la mémoire cache.
● Dynamic RAM (DRAM):
– Mémoire basée sur la capacité parasite drain/substrat d’un
transistor à effet de champ.
– Donnés conservées que pendant quelques millisecondes.
– Contrôleur mémoire réécrit continuellement la mémoire
(rafraîchissement).
– Mémoire plus lente, mais plus économique et moins
volumineuse.
– Typiquement utilisée pour la mémoire centrale.

16
Organisation (9/9) – Performances
● Progrès constants dans l’accélération des mémoires qui
accompagnent l’accélération des CPU.
● Aujourd’hui, deux types de mémoires sont utilisées :
– SRAM pour la cache.
– DDR SDRAM (Double Data Rate Synchronous Dynamic
RAM) pour la mémoire vive.
● Capacités des mémoires RAM évoluent de manière
spectaculaire (typiquement 16 Kb au début des années
1980, actuellement typiquement 4-8 Gb).

17
Contenu
● Introduction
● Organisation
● Fonctionnement
● Examen
● Conclusions

18
Fonctionnement (1/4) – Ordinateur
● Démarrage de l’ordinateur :
– Exécution du Basic Input/Output System (BIOS) depuis
une mémoire ROM.
– Chargement par le BIOS du système d’exploitation (OS)
depuis une mémoire de masse précise (“boot sector”) dans
la RAM puis exécution.
● Lancement d’un programme : Chargement par l’OS du
programme depuis une mémoire de masse dans la RAM
puis exécution.
● Tant que l’ordinateur reste allumé : RAM est rafraîchie
en permanence et son contenu est maintenu.

19
Fonctionnement (2/4) – Mise en veille et extinction
● Mise en veille (stand-by/sleep):
– Alimentation de tous les périphériques et de la mémoire de
masse est coupée.
– Alimentation de la RAM continue de rafraîchir son
contenu mais avec une alimentation limitée.
– L’ordinateur consomme donc toujours du courant et sa
batterie se vide peu à peu (ex: tablettes et smartphones).
– Au réveil, l’utilisateur retrouve son espace de travail tel
qu’il l’avait laissé.
● Extinction (shutdown)
– Alimentation de tous les systèmes est coupée.
– Contenu de la mémoire centrale (vive) est effacée et ce qui
n’a pas été sauvé est perdu.
– Redémarrage : Recharge l’OS et démarrage d’une
nouvelle session vierge.

20
Fonctionnement (3/4) – Hibernation
● Sauvegarde de la RAM dans un fichier particulier sur une
mémoire de masse (typiquement le disque dur).
● Extinction : Tous les systèmes sont éteints, la mémoire
est effacée et l’ordinateur ne consomme plus de courant.
● Redémarrage :
– Recharge du fichier d’hibernation tel quel dans la RAM.
– L’utilisateur retrouve son espace de travail tel qu’il l’avait
laissé avant l’hibernation.
● Remarque : Certains langages de programmations
proposent des mécanismes similaires aux programmeurs
(ex: Python et BLOB).

21
Contenu
● Introduction
● Organisation
● Fonctionnement
● Examen
● Conclusions

22
Fonctionnement (4/4) – Mémoire virtuelle
● La mémoire “réellement nécessaire” peut être modulée :
– Un “gros” programme propose de très nombreuses
fonctionnalités pas toujours utilisées (ex: impression).
– Un “ gros” fichiers contient des informations qui ne sont
pas toujours visualisées ou manipulées (ex: onglets d’un
tableur).
– Un programme activé n’est pas toujours utilisé (ex: un
lecteur de courriel n’ayant pas le focus).
● Ordinateur dispose donc souvent d’une mémoire virtuelle
plus grande que la mémoire physique :
– OS charge progressivement dans la mémoire vive (ex:
module d’un logiciel).
– OS libère temporairement de la mémoire vive non utilisée
et la recharge qu’en cas de besoin (ex: logiciel perdant le
focus).

23
Examen (1/2)
● Un informaticien organise l’espace mémoire d’un
ordinateur de sa conception de manière à ce qu’il soit
capable d’exécuter simultanément 5 programmes de base.
Ces programmes, dans leur version exécutable, sont de
tailles, en ordre croissant : 500 Mb, 1 Gb, 1.5 Gb, 2 Gb et
3 Gb. De manière à pouvoir s’exécuter, 20% au moins de
chacun des programmes doit se trouver dans la RAM.
● Questions :
1. Tout d’abord, déduisez-en la dimension minimale requise
pour cette RAM ainsi que pour le disque dur.
2. Ensuite, sachant qu’il organise son système de mémoire à
l’aide de pages de taille 10 Mb, déduisez-en également le
nombre de bits minimum qui seront nécessaires au seul
adressage des pages dans l’adresse complète des octets en
mémoire.

24
Examen (2/2)
Réponses
1. Multiplier chaque taille de programme par 0,2 pour
connaître l’espace minimum requis :
0,5·0,2 + 1·0,2 + 1.5·0,2 + 2·0,2 + 3·0,2 = 1,6 Gb
2. Deux étapes :
(i) Calculer le nombre de pages de 10 Mb nécessaire pour
stocker 1,6 Gb :
1,6 Gb=1,6·1000 Mb=(160)·10 Mb
(ii)Déterminer le nombre de bits nécessaire pour représenter
un nombre compris entre 0 et 160 :
21=2; 22=4; 23=8; 24=16; 25=32; 26=64; 27=128; 28=256

25
Contenu
● Introduction
● Organisation
● Fonctionnement
● Examen
● Conclusions

26
Conclusions
● Gestion complète de la mémoire peut être très complexe :
– D’un accès rapide à la cache à un accès très lent sur le
disque dur.
– Disque dur peuvent étendre la RAM en stockant
temporairement des pages (mémoire virtuelle).
● Généralement, des mémoires caches sont dédiées aux
instructions et d’autres aux données (car structuration
différente).
● Optimisation de la mémoire demande de jouer avec de
nombreux paramètres (tailles des différentes mémoires,
vitesses de transfert, etc.).
● L’accroissement des capacités mémoires est plus
important que l’accélération de la vitesse des CPU.

27
Introduction à l’informatique

Mémoires

Leçon basée sur celle du Prof. NICOLAS VAN ZEEBROECK