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.
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.