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

Documents pareils