Informatique Générale Organisation de la mémoire et stockage

Transcription

Informatique Générale Organisation de la mémoire et stockage
Université de Nice – Sophia Antipolis
Licence 1 Sciences & Technologies
Informatique Générale
Organisation de la mémoire
et stockage
Jacques Farré
(d'après Fabrice Huet, Wikipedia ... et bien d'autres)
[email protected]
http://deptinfo.unice.fr/~jf/InfoGene
© Jacques Farré 2013
Informatique générale - stockage
1/36
Mémoire et stockage



Mémoire et stockage ont un même but : garder
de l’information (suites de bits)
La mémoire s’utilise pour une
conservation temporaire (elle a
Barette de mémoire RAM
besoin d'être rafraichie)
Le stockage pour une conservation
longue durée : disque dur, DVD, CD,
clé USB, bande magnétique …

Où se trouve la mémoire/stockage ? Dérouleurs de bande magnétiique



À l’extérieur de l’ordinateur : DVD, CDRom, clef USB,…
Dans l’ordinateur : disque dur, RAM, carte graphique…
Dans le processeur : cache mémoire (jusqu’à 3
niveaux différents), registres
© Jacques Farré 2013
Informatique générale - stockage
2/36
Caractéristiques

Mémoire volatile vs non-volatile


Dynamique ou statique


Nécessite ou non un rafraîchissement
périodique des données
bit mémoire RAM
Accès séquentiel ou aléatoire


Conserve ou non l’information en
l’absence d’électricité
par exemple bande magnétique vs disque dur
Performance



Capacité : quantité totale d’information
Temps d’accès : temps pour obtenir la première
information demandée
Débit : quantité de données pouvant être lues/écrites
par seconde
© Jacques Farré 2013
Informatique générale - stockage
3/36
Les mémoires de
masse
© Jacques Farré 2013
Informatique générale - stockage
4/36
Disque dur

Un disque dur (DD/HD) est un stockage non volatile

Composé de plateaux en rotation




Plateaux en général double face
Actuellement 5400, 7200,
10000 ou 15000 tr/min (vitesse
de rotation constante)
jpeducasse.free.fr
À chaque face est associé une tête de lecture
« flottant » à 8-12 nanomètres de la surface



Nombre de plateaux et vitesse
variable suivant les modèles
Nécessite une bonne pression atmosphérique dans le disque
Aucune impureté (donc ne pas l'ouvrir sans précautions)
L’ensemble des têtes est posé sur un bras rigide

© Jacques Farré 2013
elles font donc toutes le même mouvement
Informatique générale - stockage
5/36
Disque dur : capacités

Déterminée par plusieurs paramètres

Densité des plateaux



Quantité de bits par mm2 (ou par inch2, 1 inch = 2,54 cm)
Prix Nobel 2007 (Albert Fert et Peter Grünberg, pour
l'etude de la magnétorésistance géante)

Nombre de plateaux

Taille des plateaux
Limitations :

La densité a une limite physique

Plus de plateaux génèrent plus de chaleur

Plateaux de grande taille ⇒ contraintes mécaniques
© Jacques Farré 2013
Informatique générale - stockage
6/36
Piste, cylindre, secteur, bloc

Piste : zone circulaire à la surface d’un plateau

Cylindre : ensemble des pistes situées à
un même rayon

Secteur : arc
délimitant
une zone sur
le plateau

Bloc :



blocs
Plus petit élément de stockage
Localisé a l’intersection d’une
piste et d’un secteur
A une certaine taille (512 octets en général)
© Jacques Farré 2013
Informatique générale - stockage
7/36
Adressage de bloc

Adressage d'un bloc :

Comme pour la mémoire, on
accède à un bloc avec une
adresse qui est divisée en 3
composantes





Numéro de tête (détermine le
plateau et la face)
Numéro de piste
Numéro du secteur sur cette piste
casteyde.christian.free.fr
Les blocs sont numérotés de l’extérieur vers l’intérieur
Le CPU envoie au disque dur


L’adresse absolue du bloc
Le contrôleur du disque convertit en 3 composantes
© Jacques Farré 2013
Informatique générale - stockage
8/36
Lecture/écriture d'un bloc


Il faut ensuite

Déplacer la tête jusqu’au cylindre correspondant (T seek)

Attendre que le bon bloc vienne sous la tête (Tlatence)

Transférer les données (Ttransmission)
Temps d’accès : facile à calculer,
on connaît




la vitesse de rotation
La vitesse de déplacement du bras
(seek time, fourni par le constructeur)
Le débit de transfert (fourni par le constructeur)
Pire cas : le bras doit traverser l’ensemble du plateau et le secteur
à lire se trouve juste derrière la tête (dans le sens de rotation)

Cas moyen : le bras doit traverser la moitié du plateau et le
secteur à lire se trouve à l’opposé de la tête
© Jacques Farré 2013
Informatique générale - stockage
9/36
Forme générale d'un bloc
Source Wikipedia





Le gap : zone inutilisée pour permettre le temps de basculement du
mode lecture au mode écriture et inversement (permet aussi de
compenser de légères dérives de la vitesse de rotation du disque)
Zone servo : contient des « tops » pour synchroniser le contrôleur de
disque avec les données qui vont défiler juste après sous la tête de
lecture ID : en-tête contenant le n° du bloc qui suit ; permet au contrôleur du
disque de déterminer le n° de secteur que la tête de lecture va lire
(donc de déterminer si le bras portant les têtes est positionné sur la
bonne piste)
Les données : ce qui est véritablement stocké par l’utilisateur du
disque
Σ : une somme de contrôle permettant de détecter/corriger des
erreurs : permet aussi de mesurer le vieillissement du disque dur (il
perd petit à petit de sa fiabilité).
© Jacques Farré 2013
Informatique générale - stockage
10/36
Perte d’espace

Vitesse angulaire constante


Si même nombre de secteur/piste
pour tous les cylindres


Donc vitesse linéaire variable
suivant distance du centre
Perte d’espace important pour les cylindres
extérieurs
Faire varier la vitesse angulaire
 Contraintes mécaniques
 Latence
© Jacques Farré 2013
Informatique générale - stockage
11/36
Zoned Bit Recording

Solution pragmatique


Faire varier le nombre de
secteurs par cylindre
Pas pour chaque cylindre


Trop compliqué
Par groupe de cylindre


Les cylindres proches du
centre ont moins de secteurs
que ceux à l’extérieur
Complexité dans la
transformation d’adresse
© Jacques Farré 2013
Informatique générale - stockage
12/36
Partitionnement d'un disque dur

Fractionnement du disque physique en plusieurs
disques logiques



permet d'avoir plusieurs systèmes de fichiers différents
(Fat32-Windows ou Ext3-Linux) sur un même disque
et d'avoir plusieurs systèmes d'exploitation (en général
Windows et Linux) sur une même machine (dual boot)
Les partitions sont décrites dans des tables de partitions
la table principale est contenue dans le premier secteur
du disque ou secteur d'amorçage (Master Boot Record ou
MBR) qui contient également le programme d'amorçage
 elle peut contenir au plus 4 partitions (dites primaires)
 en général, on garde une partition primaire pour
contenir des partitions secondaires (ou logiques)
Logiciels de partitionnement : fdisk, Gparted, Partition Magic
(payant) ...


© Jacques Farré 2013
Informatique générale - stockage
13/36
Disques SSD (solid-state drive)

En mémoire flash




Mais




technologie à base de transistors à effet de champ
non volatile, accès rapide (0,1 ms contre 3 à 12ms de
temps de latence pour un disque classique), pas d'usure
mécanique, pas de bruit
par exemple clés USB, appareils photos numériques,
téléphones mobiles, lecteurs MP3 …
7 à 8 fois plus chers qu'un disque classique
plus performants en lecture qu'en écriture
pas supporté par tous les systèmes d'exploitation
Actuellement, plutôt des disques mixtes


système d'exploitation et programmes sur SSD
fichiers utilisateurs sur disque classique
© Jacques Farré 2013
Informatique générale - stockage
14/36
Stockage optique

Principe :





utilisation d’un laser pour lire/écrire : CD-ROM, DVD
Performance mesurée par rapport à un modèle
de première génération


des marques sont placées sur une surface
réfléchissante
1x CD-ROM = 150Ko/s
1x DVD-ROM = 1.32Mo/s
Unique tête de lecture, une face lisible à la fois
Possibilité de multi-couches : focus différent du
laser
© Jacques Farré 2013
Informatique générale - stockage
15/36
Vitesse linéaire / angulaire
constante ?

Premiers modèle


variation de la vitesse de rotation en fonction de la
position maintient d’une vitesse linéaire
constante
pour un lecteur 1x



1.2m/s comme un CD audio (130 Kbits/s)
vitesse angulaire de 495 à 212 tour/min
Lecteurs modernes


Zoned CLV : piste intérieures à vitesse angulaire
constante (CAV), pistes extérieures à vitesse
linéaire constante (CLV)
certains modèles peuvent avoir plusieurs lasers
© Jacques Farré 2013
Informatique générale - stockage
16/36
CD / DVD

Un CD standard peut contenir de 650 à 900 Mo de
données ou de 74 à 99 minutes de musique


Il contient de 333 000 à 444 500 blocs
Chaque bloc contient 2352 octets
 2352 octets utiles pour la musique
 dont 2048 pour stocker des données


autres octets pour correction des erreurs et identification des
blocs
Plusieurs formats différents de DVD




DVD-R, DVD+R (1 seule écriture), DVD-RW, DVD+RW, DVD-RAM
Globalement incompatibles pour la gravure
Se comportent en lecture comme un DVD-Rom
Plusieurs formats (DVD-1 à DVD-18) : simple/double face,
simple/double couche, par ex.



© Jacques Farré 2013
DVD-5 : 4.70 Go (simple face, simple couche)
DVD-9 : 8.54 Go (simple face, double couche)
DVD-18 : 17 Go (double face, double couche)
Informatique générale - stockage
17/36
Mémoire « centrale »
© Jacques Farré 2013
Informatique générale - stockage
18/36
Mémoire cache

La mémoire RAM est beaucoup plus lente que le CPU


Exemple : CPU à 2,6Ghz, mémoire avec 10ns de latence
(temps de calcul de l'adresse avant de transmettre le
contenu)
Si le CPU veut accéder à une information mémoire
Après combien de cycles va-t-il recevoir l’information ? 10×10-9 s
 Combien de cycles CPU pendant cette durée ?
10×10-9 × 2,6×109 = 26 cycles
 Même si ce CPU peut faire n’importe quelle instruction (add,
mult…) en quelques cycles, il doit attendre 26 cycles pour
avoir les opérandes 

Trop coûteux pour le CPU d’aller chercher l’information en
mémoire ; mais c’est pourtant là qu’elle est !


La mémoire rapide est chère, donc trop coûteux d’avoir toute
la RAM très rapide : on va se contenter d’une petite partie
La mémoire cache (antémémoire) est une zone de mémoire
plus rapide où l'on stocke une copie des informations en
mémoire RAM !
© Jacques Farré 2013
Informatique générale - stockage
19/36
Justifications de la mémoire cache

Deux principes fondamentaux en informatique



Localité temporelle
 Si une adresse mémoire est utilisée, elle le sera
probablement à nouveau dans un futur proche
Localité spatiale
 Si une adresse mémoire est utilisée, alors les
adresses proches le seront probablement dans
un futur proche
Ces deux principes sont à la base du principe
des caches
© Jacques Farré 2013
Informatique générale - stockage
20/36
Technologie de la mémoire cache

La mémoire cache est composée de
transistors, et non de condensateurs




Même fréquence que le CPU
Latence de quelques cycles CPU
Taille très réduite : 32Ko-128Ko
pour les mémoire L1
Aucun contrôle sur le contenu
du cache



Se remplit au fur et à mesure
de l’exécution des programmes
Hiérarchie des mémoires (source O. Carton)
Cache pour les instructions et cache pour les données
Souvent plusieurs niveaux de cache : Lk plus rapide
mais avec une taille plus petite que Lk+1
© Jacques Farré 2013
Informatique générale - stockage
21/36
Fonctionnement de la mémoire
cache

Le cache est divisé en blocs (ou lignes)



Quand le CPU a besoin d’un octet en mémoire



Par exemple, une ligne fait 64 octets
Un cache de 64Ko aura donc 1024 lignes
Il regarde dans le cache si il y est (donc besoin que le
cache connaisse les adresses des octets qui y sont)
Si pas dans le cache, lecture en mémoire et insertion dans
le cache (au besoin en écrasant des octets présents)
En fait le cache est géré au niveau des lignes


Pour les lignes de 64 octets, les octets d'adresse 0 à 63
seront dans la même ligne, ceux de 64 à 127 dans une
autre, etc.
Revient à découper la mémoire en blocs de la taille d'une
ligne de cache : transferts mémoire ↔ cache par bloc
© Jacques Farré 2013
Informatique générale - stockage
22/36
Stratégies de placement


La mémoire cache est beaucoup plus petite que
la RAM (ou que la mémoire cache de niveau inférieur)
Si le processeur demande à lire l’adresse mémoire x



Où placer l’information contenue en x (et celles des octets
du bloc de x) dans le cache ?
Le cache doit mémoriser l'adresse de base de la ligne :
pour des lignes de 2n octets, adresse de base b = x / 2n
par exemple
n° de ligne : 12 bits

adresse dans ligne : 6 bits
Stratégies de placement (cablées, non logicielles)



Sur une ligne dépendante de l'adresse : direct mapped
N’importe où : cache fully associative
Dans un sous ensemble de lignes : set associative
© Jacques Farré 2013
Informatique générale - stockage
23/36
Direct Mapped
(ou à correspondance pré-établie)
Ligne de cache : adresse modulo taille cache
par exemple pour un
Cache
cache de 9 lignes de 10
15
octets et l'adresse 157
(157/10) mod 9 = 6
8
0
RAM
9
0
150
Jacques Farré 2012
Stockage
24/36
Direct Mapped
Ligne de cache : adresse modulo taille cache
Adresse 302
Cache
30
15
(302/10) mod 9 = 3
8
0
RAM
9
0
0
Jacques Farré 2012
300
150
Stockage
25/36
Direct Mapped
Ligne de cache : adresse modulo taille cache
Adresse 245
Cache
30
24
(245/10) mod 9 = 6
8
0
RAM
9
0
0
Jacques Farré 2012
150
240
Stockage
300
26/36
Fully Associative
La ligne va n'importe où dans le cache : il faut donc une
stratégie de placement
Cache
pour décider où ranger
15
la ligne mémoire dans
le cache
Adresse 157
RAM
150
Jacques Farré 2012
Stockage
27/36
Fully Associative
Cache
24
15
30
RAM
150
Jacques Farré 2012
240
Stockage
300
28/36
Set Associative
Mélange des deux méthodes précédentes
Les lignes de cache sont groupées en ensembles (set)
Le set est choisi avec
Cache 3-way associative
l’opération modulo
15
La ligne dans le set est
aléatoire (et associative)
(157/10) mod 3 = 0
0
1
2
RAM
0
Jacques Farré 2012
150
Stockage
29/36
Set Associative
Cache 3-way associative
1530
(302/10) mod 3 = 0
RAM
0
Jacques Farré 2012
240
150
Stockage
300
30/36
Set Associative
1530
23
Cache 3-way associative
(235 mod 3) = 2
RAM
0
Jacques Farré 2012
230
150
Stockage
300
31/36
Recherche dans le cache

On regarde dans le cache très souvent pour savoir si
une ligne y est


Fully Associative



Une seule ligne à regarder
Set Associative


Il faut regarder toutes les lignes : trop lent
séquentiellement
Recherche en parallèle, très coûteux financièrement
car circuits compliqués
Direct Mapped


L’opération doit être rapide
Un seul set à regarder, mais recherche séquentielle ou
en parallèle (moins coûteux car moins de lignes) à
l’intérieur
Si l’information recherchée est dans le cache : Cache
Hit sinon Cache Miss
© Jacques Farré 2013
Informatique générale - stockage
32/36
Cache miss, politique de
remplacement

Si info non présente dans le cache, on doit l’y mettre

Problème si cache plein ou ligne pleine : il faut choisir
une ligne à remplacer




Si direct mapped pas le choix
Si fully associative trop de choix
Si set associative un peu de choix
Politiques de remplacement (stratégies associatives)



Aléatoire : on choisit une ligne au hasard parmi les
candidates
FIFO : premier entré – premier sorti
Least Recently Used : on supprime une ligne qui n’a
pas été utilisée depuis longtemps


Il faut se souvenir de cette information
Influence le miss rate (nb pages non présentes / nb pages cherchées)
© Jacques Farré 2013
Informatique générale - stockage
33/36
Influence de la taille du cache
et des politiques de placement
sur le miss rate
© Jacques Farré 2013
Informatique générale - stockage
34/36
Exemple : Core 2 Duo E6600

L1 Data cache




L1 Instruction cache




2 x 32 KBytes
8-way set associative
64-byte line size
32 Kbytes
8-way set associative
64-byte line size
L2 cache



4096 KBytes,
16-way set associative
64-byte line size
© Jacques Farré 2013
Informatique générale - stockage
35/36
Exemple : Intel i7 4 coeurs (Sandy
Bridge)

L1 Data cache (1 par coeur)




L1 Instruction cache


idem Data cache
L2 cache (1 par coeur)




32 KBytes
8-way set associative
64-byte line size
256 KBytes
16-way set associative
64-byte line size
L3 cache (commun aux 4 coeurs

contient le processeur graphique
© Jacques Farré 2013
Informatique générale - stockage
36/36

Documents pareils