Hiérarchie mémoire

Exécuter alternativement deux programmes sur le même cœur peut les rendre plus lents que s’ils étaient exécutés seuls. Quelle est l’explication la plus appropriée du point de vue du cache ?

  1. AEn exécution alternée, le nombre d’instructions exécutées par chaque programme double
  2. BEn exécution alternée, la capacité du cache est reconfigurée à la moitié
  3. CLes données de chaque programme sont évincées par celles de l’autre, ce qui multiplie les relectures
Afficher la réponse et l'explication

Réponse : C. Les données de chaque programme sont évincées par celles de l’autre, ce qui multiplie les relectures

Lors d’un changement de programme, le cache et le TLB se remplissent des données de l’autre programme ; quand son tour revient, les données nécessaires ont été évincées. Des accès qui auraient été des succès en exécution seule deviennent des défauts, et les données doivent être relues depuis la mémoire principale. Plus l’intervalle entre les changements est court, plus cet effet est marqué. Le nombre d’instructions exécutées ne change pas et la capacité du cache n’est pas reconfigurée : il s’agit de l’effet du partage du cache.

S'entraîner sur ce thème Retour au thème

Autres questions sur Hiérarchie mémoire

  1. Quel est l’exemple le plus représentatif de la localité temporelle ?
  2. Parcourir le tableau à deux dimensions a[i][j] du langage C avec j dans la boucle interne, comme ci-dessus, est généralement plus rapide qu’avec i dans la boucle interne. Pour quelle raison ?
  3. Pour un cache à correspondance directe avec des adresses de 32 bits, une capacité de 32 KB et des lignes de 64 octets, combien de bits comporte l’étiquette ?
  4. Combien d’ensembles comporte un cache associatif à 4 voies avec des adresses de 32 bits, une capacité de 32 KB et des lignes de 64 octets ?
  5. Dans un cache totalement associatif, combien de bits de l’adresse sont utilisés pour l’index (partie qui sélectionne l’ensemble) ?

Comparatifs sur ce thème