Simulateur de Cache - Version Random
📖 Description
Le programme cache_random.c
simule le comportement d'un cache de processeur. Il permet de suivre les hits et les misses ainsi que d'analyser les performances du cache en fonction des références mémoire fournies.
📦 Compilation
Pour compiler le programme, utilisez la commande suivante :
gcc -o cache_simulator cache_random.c -lm
ou
make
⚙️ Exécution
Pour exécuter le programme, utilisez la ligne de commande suivante :
./cache_simulator -s <cache_size(KB)> -l <line_size> -a <associativity> [-c] [-W] < <trace_file>
📝 Arguments
-
-s <cache_size(KB)>
: Taille du cache en kilooctets. (Obligatoire)
Exemple : -s 64 -> taille du cache de 64 KB -
-l <line_size>
: Taille de la ligne de cache en octets. (Obligatoire)
Exemple : -l 16 -> taille de ligne de 16 octets -
-a <associativity>
: Associativité du cache (nombre de lignes par ensemble). (Obligatoire)
Exemple : -a 4 -> associativité de 4 lignes -
-c
: Activer l'écriture en mode Write Back. (Optionnel)
Exemple : -c -> active le mode Write Back -
-W
: Activer la stratégie d'allocation d'écriture (Write Allocate). (Optionnel)
Exemple : -W -> active l'allocation d'écriture
📚 Fonctionnement de la Stratégie Random
La stratégie de remplacement Random est une méthode simple pour gérer les lignes de cache lorsque le cache est plein. Contrairement à d'autres méthodes comme LRU, où les décisions sont basées sur l'historique d'accès, Random choisit simplement une ligne à remplacer au hasard parmi celles qui sont présentes dans le cache.
Principe de Fonctionnement
-
Choix Aléatoire: Lorsqu'un nouvel accès à la mémoire doit être effectué et que le cache est plein, une ligne de cache est choisie de manière aléatoire pour être remplacée. Ce choix ne dépend d'aucun critère de fréquence ou de récence.
-
Remplacement: La ligne choisie est invalidée et remplacée par la nouvelle ligne de données, qui est ensuite chargée dans le cache.
Avantages et Inconvénients
-
Avantages:
- La simplicité de l'algorithme rend son implémentation facile.
- En tant que méthode probabiliste, elle peut parfois donner de bons résultats dans des cas spécifiques, où le comportement d'accès est imprévisible.
-
Inconvénients:
- Random n'utilise pas d'historique d'accès, ce qui peut entraîner un taux de hit inférieur par rapport à des stratégies comme LRU ou FIFO.
- Dans certains scénarios, elle peut remplacer des lignes de cache qui auraient pu être utilisées à nouveau dans un futur proche, entraînant ainsi des misses fréquentes.
🛠️ Auteur
- Moncef STITI