Qu'est-ce que Pénalité de défaut (miss penalty) ?

Temps supplémentaire nécessaire, lors d'un défaut de cache, pour aller chercher la donnée au niveau inférieur. Il dépend du temps d'accès du niveau inférieur et du temps de transfert de la ligne.

Nom japonais: ミスペナルティ

« Pénalité de défaut (miss penalty) » apparaît dans 9 questions d'entraînement réparties sur 1 thèmes, dont Hiérarchie mémoire.

Domaine: Hiérarchie mémoire

Ce qui détermine la pénalité de défaut

La pénalité de défaut est le temps nécessaire pour aller chercher la ligne manquante au niveau suivant de la hiérarchie. Elle comporte deux parties : la latence jusqu'à l'arrivée de la première donnée et le temps de transfert du reste de la ligne, égal à la taille de ligne divisée par la bande passante. Dans une hiérarchie à plusieurs niveaux, la pénalité de défaut du L1 est simplement le temps d'accès moyen du L2. Avec un temps de succès L2 de 10 ns, un taux de défaut local L2 de 20 % et une mémoire principale à 100 ns, la pénalité de défaut du L1 vaut 10 + 0,2 × 100 = 30 ns, bien moins qu'un accès direct à la mémoire.

Son intervention dans l'AMAT et le CPI

Le temps moyen d'accès mémoire (AMAT) vaut temps de succès + taux de défaut × pénalité de défaut. Avec un temps de succès de 2 cycles, un taux de défaut de 4 % et une pénalité de 150 cycles, l'AMAT vaut 2 + 0,04 × 150 = 8 cycles, soit quatre fois le temps de succès. En termes de CPI, un CPI idéal de 1,0 avec 1,3 accès mémoire par instruction, un taux de défaut de 2 % et une pénalité de 100 cycles gagne 1,3 × 0,02 × 100 = 2,6 cycles de blocage, ce qui donne un CPI de 3,6. Une pénalité élevée transforme même de faibles taux de défaut en ralentissements importants.

Pourquoi le taux de défaut seul peut tromper

Des caches plus grands ou plus associatifs réduisent le taux de défaut mais peuvent allonger le temps de succès, et des lignes plus longues exploitent la localité spatiale mais augmentent la pénalité de défaut, car chaque défaut transfère plus de données. Les conceptions doivent donc être comparées par l'AMAT, et non par le taux de défaut. Avec une pénalité de 20 cycles, un cache à succès en 1 cycle et à 5 % de défauts affiche en moyenne 1 + 0,05 × 20 = 2,0 cycles, alors qu'un cache à succès en 2 cycles et à 4 % de défauts affiche 2 + 0,04 × 20 = 2,8 cycles : le cache au taux de défaut le plus faible est le plus lent.

Techniques réduisant la pénalité effective

Ajouter des niveaux de cache raccourcit le trajet pour la plupart des défauts. Le mot critique en premier (critical word first) envoie le mot demandé par le CPU avant le reste de la ligne, et le redémarrage anticipé (early restart) permet de reprendre l'exécution dès l'arrivée de ce mot. Les caches non bloquants continuent de servir les succès pendant qu'un défaut est en cours, et les cœurs à exécution dans le désordre font se chevaucher plusieurs défauts, de sorte que leurs latences se masquent en partie. Le préchargement (prefetching) masque la pénalité en allant chercher les données à l'avance ; une règle empirique utile fixe la distance de préchargement à environ la pénalité de défaut divisée par la durée d'une itération de boucle.

S'entraîner : questions sur Pénalité de défaut (miss penalty)

Avec un temps de succès de 2 cycles, un taux de défauts de 4% et une pénalité de défaut de 150 cycles, quel est le temps moyen d’accès mémoire en cycles ?

  1. A8 cycles
  2. B6 cycles
  3. C152 cycles
Afficher la réponse et l'explication

Réponse : A. 8 cycles

Temps moyen d’accès mémoire = temps de succès + taux de défauts × pénalité de défaut = 2 + 0.04 × 150 = 2 + 6 = 8 cycles. Le temps de succès s’applique à tous les accès, et la pénalité de défaut ne s’ajoute qu’en cas de défaut. 6 cycles ne compte que la part des défauts et oublie le temps de succès. 152 cycles est la durée d’un accès en défaut, et non la moyenne. Même avec un taux de défauts de seulement 4%, la moyenne est multipliée par 4.

Un processeur a un CPI moyen de 1.0 avec un cache idéal. Il effectue en moyenne 1.3 accès mémoire par instruction, avec un taux de défauts de 2% et une pénalité de défaut de 100 cycles. Quel est le CPI moyen réel ?

  1. A3.0
  2. B3.6
  3. C1.3
Afficher la réponse et l'explication

Réponse : B. 3.6

Les cycles de blocage mémoire par instruction valent 1.3 accès × 0.02 × 100 cycles = 2.6 cycles. En les ajoutant au CPI idéal, on obtient 1.0 + 2.6 = 3.6, soit des performances divisées par 3.6 par rapport à l’idéal. 3.0 suppose à tort un seul accès par instruction (1.0 + 1 × 0.02 × 100). 1.3 est le nombre d’accès par instruction, et non le CPI. Un faible taux de défauts suffit à dégrader fortement les performances lorsque la pénalité de défaut est élevée.

Questions fréquentes

Comment calcule-t-on la pénalité de défaut dans un cache à deux niveaux ?

La pénalité de défaut du L1 est égale au temps d'accès moyen du L2 : temps de succès du L2 plus taux de défaut local du L2 multiplié par le temps d'accès à la mémoire principale. Par exemple, 10 ns + 0,2 × 100 ns = 30 ns.

Quelle est la différence entre taux de défaut et pénalité de défaut ?

Le taux de défaut est la proportion d'accès qui échouent dans le cache, tandis que la pénalité de défaut est le temps supplémentaire que coûte chaque défaut. Le temps d'accès moyen dépend de leur produit, auquel s'ajoute le temps de succès.

Une ligne de cache plus grande augmente-t-elle la pénalité de défaut ?

Oui. Chaque défaut doit transférer davantage d'octets, si bien que la partie transfert de la pénalité augmente, même si des lignes plus grandes peuvent réduire le nombre de défauts pour du code présentant une bonne localité spatiale.

« Pénalité de défaut (miss penalty) » dans les explications

Questions mentionnant « Pénalité de défaut (miss penalty) » (9)

  1. Avec un temps de succès de 2 cycles, un taux de défauts de 4% et une pénalité de défaut de 150 cycles, quel est le temps moyen d’accès mémoire en cycles ?
  2. Un processeur a un CPI moyen de 1.0 avec un cache idéal. Il effectue en moyenne 1.3 accès mémoire par instruction, avec un taux de défauts de 2% et une pénalité de défaut de 100 cycles. Quel est le CPI moyen réel ?
  3. Avec un temps de succès L1 de 1 ns, un taux de défauts L1 de 5%, un temps de succès L2 de 10 ns, un taux de défauts local L2 de 20% et un temps d’accès à la mémoire principale de 100 ns, quel est le temps moyen d’accès mémoire ?
  4. Quel est l’effet de l’augmentation de la taille de ligne du cache ?
  5. Lors de l’insertion d’instructions de préchargement logiciel, quelle description de la distance de préchargement (jusqu’où en avance lire les données) est correcte ?
  6. Dans un cache multiniveau où un cache L2 est placé sous le cache L1, quel est le rôle principal du cache L2 ?
  7. Si le taux de succès du cache est de 95%, quel est le taux de défauts ?
  8. Quelle technique, lors du chargement depuis la mémoire principale d’une ligne en défaut, envoie d’abord le mot requis par le CPU puis le reste de la ligne ?
  9. Pourquoi faut-il comparer les caches selon le temps moyen d’accès mémoire, et pas seulement selon le taux de défauts ?

Calculateurs pour semi-conducteurs

Termes associés

CPI Localité spatiale Préchargement (prefetch) Précharge Allocation en écriture (write allocate) Blocage de boucle (loop blocking) Cache associatif par ensembles Cache entièrement associatif Cache non bloquant Correspondance directe (direct-mapped)

Retour au glossaire