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