Anomalie de Belady
En informatique, l'anomalie de Bélády est une anomalie de comportement observée en informatique pour l'algorithme de remplacement des lignes de cache FIFO.
Augmenter le nombre de voies de la mémoire cache peut accroître le taux de défauts de cache.
Ce phénomène n'est pas spécifique aux mémoires caches N-associatives mais est général à toutes les applications où l'algorithme FIFO est utilisé.
Par exemple, ce phénomène est également observable dans les mémoires cache de haut niveau (gestion de pages…).
Histoire
modifierJusqu'en 1970, il était communément admis qu'une augmentation du nombre de voies améliorait la performance de l'algorithme de remplacement FIFO.
László Bélády démontra que le résultat est opposé pour certaines situations atypiques. Il remit ainsi en question l'efficacité de cet algorithme dans plusieurs situations.
Depuis, des algorithmes pseudo-LRU ou LRU lui sont préférés.
Principe
modifierPrenons l'exemple d'une mémoire cache associative de degré 3 et d'une seconde de degré 4.
Comparons leurs résultats pour la séquence :
3 2 1 0 3 2 4 3 2 1 0 4.
On suppose que ces lignes sont mappées sur le même ensemble.
Voies accédées | 3 | 2 | 1 | 0 | 3 | 2 | 4 | 3 | 2 | 1 | 0 | 4 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Voie 1 | 3 | 3 | 3 | 0 | 0 | 0 | 4 | 4 | 4 | 4 | 4 | 4 |
Voie 2 | 2 | 2 | 2 | 3 | 3 | 3 | 3 | 3 | 1 | 1 | 1 | |
Voie 3 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 0 | 0 |
Voies accédées | 3 | 2 | 1 | 0 | 3 | 2 | 4 | 3 | 2 | 1 | 0 | 4 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Voie 1 | 3 | 3 | 3 | 3 | 3 | 3 | 4 | 4 | 4 | 4 | 0 | 0 |
Voie 2 | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 3 | 3 | 3 | 4 | |
Voie 3 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | ||
Voie 4 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | |||
(en rouge les défauts de cache) |
Nous voyons ainsi que nous obtenons 9 défauts de cache pour 3 voies et 10 pour 4 voies.
Le résultat est contraire à l'intuition première, d'où le nom d'anomalie de Belady.
Bien évidemment ce genre de situations n'est pas la plus courante et l'algorithme FIFO présente un comportement normal pour la majorité des séquences.
Néanmoins, cela a entravé le développement de l'algorithme FIFO dans l'industrie et a justifié aux yeux de nombreuses personnes son remplacement par des algorithmes plus efficaces (LRU, pseudo-LRU…) mais également par une politique aléatoire…
Lien externe
modifier- Article original : (en) László Bélády, Randolph A. Nelson et Gerald S. Shedler, « An anomaly in space-time characteristics of certain programs running in a paging machine », Communications of the ACM, vol. 12, no 6, (DOI 10.1145/363011.363155)