Qu'est-ce que Ligne de cache ?

Unité de transfert de données entre le cache et le niveau inférieur, aussi appelée bloc de cache. Elle fait 64 octets sur la plupart des CPU ; les bits de poids faible de l'adresse donnent la position (offset) dans la ligne.

Nom japonais: キャッシュライン

« Ligne de cache » apparaît dans 12 questions d'entraînement réparties sur 5 thèmes, dont Multicœur et synchronisation, Hiérarchie mémoire, CPU et architecture.

Domaine: Hiérarchie mémoire

S'entraîner : questions sur Ligne de cache

Quelle est la taille usuelle d'une ligne de cache (bloc de cache) dans la plupart des processeurs actuels ?

  1. A1 octet
  2. B64 octets
  3. C64 MB
Afficher la réponse et l'explication

Réponse : B. 64 octets

La plupart des processeurs échangent les données entre cache et mémoire principale par lignes de 64 octets. Les données d'adresses voisines étant souvent utilisées successivement (localité spatiale), les charger en bloc est efficace, et cela correspond au transfert en rafale de la DRAM (en DDR4, 8 transferts × 8 octets = 64 octets). Dans les programmes multithreads, il faut prendre garde au « faux partage », conflit qui survient lorsque des variables distinctes se trouvent sur la même ligne.

Quel est le rôle du bit de validité (valid bit) associé à chaque ligne de cache ?

  1. AIndiquer si la ligne a été modifiée
  2. BIndiquer l’ordre dans lequel la ligne sera évincée
  3. CIndiquer si la ligne contient des données significatives
Afficher la réponse et l'explication

Réponse : C. Indiquer si la ligne contient des données significatives

Juste après la mise sous tension ou après l’invalidation d’une ligne, le contenu du cache n’a pas de sens. Une ligne dont le bit de validité vaut 0 n’est pas considérée comme un succès même si l’étiquette coïncide par hasard ; le bit passe à 1 lors du chargement de données correctes. On évite ainsi de considérer à tort une ligne vide comme un succès. La modification d’une ligne est indiquée par le bit modifié de l’écriture différée, et l’ordre d’éviction est géré par les informations de remplacement telles que LRU.

« Ligne de cache » dans les explications

Questions mentionnant « Ligne de cache » (12)

  1. Quelle est la taille usuelle d'une ligne de cache (bloc de cache) dans la plupart des processeurs actuels ?
  2. Quel est le rôle du bit de validité (valid bit) associé à chaque ligne de cache ?
  3. Dans le protocole MESI, que signifie l’état Modified (M) d’une ligne de cache ?
  4. Quelle description du transfert en rafale (burst) d'une DRAM est correcte ?
  5. Dans un processeur multicœur, quel mécanisme maintient la cohérence lorsque les caches de plusieurs cœurs contiennent des données de la même adresse ?
  6. 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 ?
  7. Lorsqu’une ligne d’un tableau à deux dimensions mesure 4096 octets (une puissance de 2), le parcours des éléments par colonne peut provoquer de nombreux défauts même si la capacité du cache est suffisante. Quelle mesure est efficace ?
  8. Quelle combinaison correspond aux quatre états du protocole de cohérence de cache MESI ?
  9. Quelle description du faux partage (false sharing), qui survient dans les programmes multithreads, est correcte ?
  10. Un faux partage se produit dans un tableau de compteurs par thread déclaré « long cnt[8]; ». Quelle est la mesure la plus appropriée ?
  11. Pour calculer avec plusieurs threads la somme de tous les éléments d’un tableau, quelle méthode convient du point de vue des performances ?
  12. Quel est l'avantage du transfert en rafale (burst) d'AXI ?

Comparatifs incluant ce terme

Termes associés

Faux partage (false sharing) Protocole MESI Localité spatiale LRU (Least Recently Used) Débit (throughput) TLB (tampon de traduction d'adresses) Cohérence de cache AXI Interruption Allocation en écriture (write allocate)

Retour au glossaire