Informatique Générale Organisation de la mémoire et...
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)
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 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 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 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