Corrigé
Transcription
Corrigé
Université de Nice – Sophia Antipolis Licence 1 Sciences Fondamentales 20132014 Informatique Générale TD n° 9 1. Performances des disques durs Soit un disque dur magnétique possédant les caractéristiques suivantes : • 6 plateaux (12 faces); • 2048 pistes par face, 18 secteurs par piste, 512 octets par secteurs; • vitesse de rotation 6000 tours/min; donc 100 / s • temps de positionnement mini 5ms, moyen 20ms. b) Calculer la capacité totale du disque. 12 x 2048 x 18 x 512, environ 226 Mo, c'est un très petit disque c) Calculer le débit maximum du disque. En supposant qu'on lit toujours la même piste : 18 x 512 x 100 environ 900 Ko / s (comme les disques ont plutôt des débits de 100 Mo / s, ils ont environ 100 fois plus de secteurs par piste) d) On suppose qu'on vient de lire le secteur d'adresse (cylindre 100, piste 2, secteur 17). On veut lire le secteur (cylindre 101, piste 0, secteur 1). • Quel secteur du disque sera sous les têtes de lecture/écriture après le positionnement : il s'est passé 5ms (on suppose qu'aller de 2 à 0 prend le temps mini), le disque a fait 100 * (5 / 1000) tours, soit ½ tour on est sur le secteur (17 + 18/2) % 18, soit le secteur 2. Il faut sauter 16 secteurs , et on lit un secteur toutes les 1 / (100x18) secondes, soit toutes les 0,5 ms donc on attend encore 8 ms. • Quand le transfert pourratil commencer ? Environ 5 + 8 ms, en fait plutôt 14 ms car les temps ont été un peu sousestimés. e) Un fichier de 1Mo est enregistré sur ce disque dans une zone continue à partir du cylindre 10, piste 0, secteur 0. • Calculer l'espace disque (nombre de cylindres/pistes/secteurs) occupé par le fichier. nombre de secteurs = 1Mo / 512 = 220 / 29, donc 2048 secteurs, 2048 / 18 soit environ 114 pistes • Calculer le temps d'accès à tout le fichier. Lire une piste prend 10ms, et il faut environ 13 ms pour changer de piste (question c), donc 23 x 114 , environ 2,6 secondes 2. Mémoires Caches. Pourquoi utiliseton des mémoires caches ? Pour avoir des mémoires + rapides par rapport au processeur (mais comme elles sont chères, ce ne peut pas être toute la RAM qui est faite avec ces technologies permettant des accès plus rapides) 3. Mémoire cache L1. Soit une mémoire cache de niveau L1 ayant les caractéristiques suivantes : • 32 mots par lignes (mots de 4 octets) • taille de 32ko • 4way associatifs. Remplacement LRU. • association par poids faible • taille de bus d’adresse : 32bits a) Combien y atil de lignes dans cette mémoire cache ? 1 ligne = 32x4 = 128 octets, donc 215/27=28=256 lignes b) Combien yatil de blocs associatifs dans cette mémoire cache ? 4 way donc 256/4= 64 lignes par ensemble associatif c) Si la mémoire cache de niveau L2 a une taille de 2 Mo, combien y atil de blocs de la mémoire cache L2 par bloc de la mémoire cache L1 ? 2048/32=64 4. Adresses. Pour un cache dont les lignes font 128 octets, donnez l’adresse du premier mot dans la ligne contenant l’adresse suivante : a) A23847EF b) 7245E824 E c) EFABCD2 L'adresse dans une ligne est donnée par les 7 octets de poids faible (128=27). L'adresse du premier octet n'aura que des 0 dans ses 7 bits de poids faible, c'est à dire le résultat du masque ad & 0xFFFFFFF8 (soit ad AND 1...1 1000 0000), soit resp A2384780, 7245E8200, EFABCD80 (le dernier chiffre est obligatoirement 8 ou 0) 5. Cache et stratégie de remplacement. On considère un CPU composé d’un cache de 4 lignes (de 100 octets). Le but de cet exercice est de calculer le taux d’échec de ce cache suivant différentes politiques de placement et de remplacement. Le CPU va accéder à la mémoire en utilisant les adresses suivantes : 10 307 615 198 347 664 152 1245 575 761 952 1245 317 253 11 a) Le cache est full associative, calculez le taux d’échec avec une politique de remplacement LRU On retient seulement les centaines. États successifs du cache (défauts marqués par *) : adresse ligne file LRU (ordonnée par temps du dernier accès) 710* 700 700 ? ? ? 307* 300 700 300 ? ? 715 700 300 700 ? ? 268* 200 300 700 200 ? 347 300 700 200 300 ? 764 700 200 300 700 ? 152* 100 200 300 700 100 245 200 300 700 100 200 575* 500 (à la place de 300) 700 100 200 500 761 700 100 200 500 700 952* 900 (à la lace de 100) 200 500 700 900 245 500 700 900 200 317* 300 (à la place de 500) 700 900 200 300 253 700 900 300 200 711 700 900 300 200 700 Le taux d'échec = nbr défauts / nbr accès = 7 / 15 = 47 % b) Calculez le taux d’échec dans le cas où le cache est direct mapped On place dans la ligne (ad / 100) % 4 (puisque 4 lignes) adresse n° ligne cache 0 1 2 710* 307* 715* 268* 347* 764* 152* 245 575* 3 3 3 2 3 3 1 2 1 3 ? ? ? ? ? ? ? ? ? ? ? ? ? 100 ? ? ? 200 200 200 200 700 300 700 700 300 700 700 ? 500 200 700 761 952* 245 317* 253 711* 3 1 2 3 2 3 ? 900 200 700 ? 900 200 300 ? 900 200 700 Le taux d'échec = 11 / 15 = 73 % c) Considérez maintenant que le cache est 4way associative avec 10 lignes de 10 octets par ensemble. Calculez le taux d’échec avec LRU. Puisqu'on a maintenant des lignes de 10 octets (ad / 10) % 4 désigne l'ensemble n° ensemble 0 1 2 3 710* 71 3 710 307* 30 2 300 710 d) 715 71 3 268* 26 2 300,260 710 347* 34 2 300,260,340 710 764* 76 0 760 300,260,340 710 152* 15 3 760 300,260,340 710,150 245* 24 0 760,240 300,260,340 710,150 575* 57 1 760,240 570 300,260,340 710,150 761 76 0 952* 95 3 760,240 570 300,260,340 710,150,950 245* 24 3 '' + 240 317* 31 3 '' + 31 253* 25 1 '' 570,250 '' '' 711 71 3 Encore plus de défauts, mais le jeux d'essai n'est pas très réaliste, et surtout pas suffisamment long. On voit en particulier que si on recommençait la séquence d'accès, toutes les lignes seraient en cache et il n'y aurait plus de défaut, à la différence des 2 autres méthodes. Le graphique cidessous montre les performances des mémoirescache en fonction de la taille et des politiques de remplacement.