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

36
© Jacques Farré 2013 Informatique générale - stockage 1/36 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 Licence 1 Sciences & Technologies Université de Nice – Sophia Antipolis

Transcript of Informatique Générale Organisation de la mémoire et...

© Jacques Farré 2013 Informatique générale - stockage 1/36

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

Licence 1 Sciences & TechnologiesUniversité de Nice – Sophia Antipolis

© Jacques Farré 2013 Informatique générale - stockage 2/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 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 ? À 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

Barette de mémoire RAM

Dérouleurs de bande magnétiique

© Jacques Farré 2013 Informatique générale - stockage 3/36

Caractéristiques

Mémoire volatile vs non-volatile Conserve ou non l’information en

l’absence d’électricité Dynamique ou statique

Nécessite ou non un rafraîchissement périodique des données

Accès séquentiel ou aléatoire 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

bit mémoire RAM

© Jacques Farré 2013 Informatique générale - stockage 4/36

Les mémoires de masse

© Jacques Farré 2013 Informatique générale - stockage 5/36

Disque dur

Un disque dur (DD/HD) est un stockage non volatile Composé de plateaux en rotation

Nombre de plateaux et vitesse variable suivant les modèles

Plateaux en général double face Actuellement 5400, 7200,

10000 ou 15000 tr/min (vitesse de rotation constante)

À chaque face est associé une tête de lecture « flottant » à 8-12 nanomètres de la surface

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 elles font donc toutes le même mouvement

jpeducasse.free.fr

© Jacques Farré 2013 Informatique générale - stockage 6/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 7/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 : 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)

blocs

© Jacques Farré 2013 Informatique générale - stockage 8/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

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

casteyde.christian.free.fr

© Jacques Farré 2013 Informatique générale - stockage 9/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 10/36

Forme générale d'un bloc

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é).

Source Wikipedia

© Jacques Farré 2013 Informatique générale - stockage 11/36

Perte d’espace

Vitesse angulaire constante Donc vitesse linéaire variable

suivant distance du centre

Si même nombre de secteur/piste pour tous les cylindres

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 12/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 13/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 14/36

Disques SSD (solid-state drive)

En mémoire flash 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 …

Mais 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 15/36

Stockage optique

Principe : des marques sont placées sur une surface

réfléchissante utilisation d’un laser pour lire/écrire : CD-ROM, DVD

Performance mesurée par rapport à un modèle de première génération

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 16/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 17/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. 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)

© Jacques Farré 2013 Informatique générale - stockage 18/36

Mémoire « centrale »

© Jacques Farré 2013 Informatique générale - stockage 19/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 20/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 21/36

Hiérarchie des mémoires (source O. Carton)

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 Cache pour les instructions et cache pour les données Souvent plusieurs niveaux de cache : L

k plus rapide

mais avec une taille plus petite que Lk+1

© Jacques Farré 2013 Informatique générale - stockage 22/36

Fonctionnement de la mémoire cache

Le cache est divisé en blocs (ou lignes) Par exemple, une ligne fait 64 octets Un cache de 64Ko aura donc 1024 lignes

Quand le CPU a besoin d’un octet en mémoire 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 23/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

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

n° de ligne : 12 bits adresse dans ligne : 6 bits

Jacques Farré 2012 24/36Jacques Farré 2012 Stockage

Direct Mapped (ou à correspondance pré-établie)

Ligne de cache : adresse modulo taille cachepar exemple pour un cache de 9 lignes de 10octets et l'adresse 157

Cache

RAM8

0

(157/10) mod 9 = 6

15

1500

9

0

Jacques Farré 2012 25/36Jacques Farré 2012 Stockage

Direct Mapped

Ligne de cache : adresse modulo taille cacheAdresse 302

Cache

RAM

0 150

8

0

(302/10) mod 9 = 3

15

3000

9

0

30

Jacques Farré 2012 26/36Jacques Farré 2012 Stockage

Direct Mapped

Ligne de cache : adresse modulo taille cacheAdresse 245

Cache

RAM

0 150

8

0

(245/10) mod 9 = 6

24

3000

9

30

240

Jacques Farré 2012 27/36Jacques Farré 2012 Stockage

Fully Associative

Cache

RAM

La ligne va n'importe où dans le cache : il faut donc une stratégie de placementpour décider où ranger la ligne mémoire dans le cacheAdresse 157

15

150

Jacques Farré 2012 28/36Jacques Farré 2012 Stockage

Fully Associative

Cache

RAM

15 3024

150 240 300

Jacques Farré 2012 29/36Jacques Farré 2012 Stockage

Set AssociativeMélange des deux méthodes précédentesLes lignes de cache sont groupées en ensembles (set)Le set est choisi avec l’opération moduloLa ligne dans le set est aléatoire (et associative)

RAM

0150

Cache 3-way associative

20

(157/10) mod 3 = 0

15

1

Jacques Farré 2012 30/36Jacques Farré 2012 Stockage

Set Associative

RAM

0 150

Cache 3-way associative

(302/10) mod 3 = 0

300240

1530

Jacques Farré 2012 31/36Jacques Farré 2012 Stockage

Set Associative

RAM

0 150

Cache 3-way associative

(235 mod 3) = 2

300230

1530 23

© Jacques Farré 2013 Informatique générale - stockage 32/36

Recherche dans le cache

On regarde dans le cache très souvent pour savoir si une ligne y est

L’opération doit être rapide Fully 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 Une seule ligne à regarder

Set Associative 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 33/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 34/36

Influence de la taille du cache et des politiques de placement

sur le miss rate

© Jacques Farré 2013 Informatique générale - stockage 35/36

Exemple : Core 2 Duo E6600

L1 Data cache 2 x 32 KBytes 8-way set associative 64-byte line size

L1 Instruction cache 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 36/36

Exemple : Intel i7 4 coeurs (Sandy Bridge)

L1 Data cache (1 par coeur) 32 KBytes 8-way set associative 64-byte line size

L1 Instruction cache idem Data cache

L2 cache (1 par coeur) 256 KBytes 16-way set associative 64-byte line size

L3 cache (commun aux 4 coeurs contient le processeur graphique