Architecture des ordinateurs Mémoire cache
Transcription
Architecture des ordinateurs Mémoire cache
Architecture des ordinateurs Mémoire cache 1. Étude de temps d’accès Dans la mémoire, les cases d’un tableau déclaré en langage C sont stockées ligne à ligne. Pour vous en convaincre, ecrivez un programme qui déclare un tableau 2x3 et qui affiche les adresses des cases de ce tableau. Ainsi, l’ordre du parcours des cases d’un tableau influe sur les temps d’accès à cause du cache. Réalisez un programme C qui déclare un tableau d’entiers de taille 128x128 et qui l’initialise (avec les valeurs que vous voudrez) deux fois : tout d’abord en parcourant le tableau ligne à ligne, ensuite en le parcourant colonne à colonne. Mesurez le temps de ces deux initialisations (cf fonction times). 2. Manipulation bit à bit On rappelle qu’en C, les fonctions sur les bits sont : Fonctions Opérateur et & ou | non ~ ou exclusif ^ décalage gauche et droite « et » Ecrire des fonctions en C permettant, à partir d’un mot de 32 bits (a) d’en extraire le nième bit (b) de mettre le nième bit à 1 (c) de mettre le nième bit à 0 (d) Ecrire une fonction permettant, à partir d’un mot m de 32 bits et de deux valeurs n et t, d’extraire la valeur entière du sous-mot de t bits démarrant au nieme bit de m. 3. Simulation d’un cache associatif par bloc Ecrivez un programme qui simule le fonctionnement d’un cache de N ensembles de L lignes chacun (cache associatif à L blocs), chaque ligne comprenant 32 octets. On suppose que les adresses sont sur 16 bits. N et L seront donnés en ligne de commande. Le programme propose à l’utilisateur un menu qui lui permet : – d’afficher le cache (X pour les lignes occupées et 0 pour les lignes vides) – d’ajouter une adresse dans le cache – de tester si une adresse est référencée dans le cache