Anomalie de Belady

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

L'anomalie de Belady 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, dans les mémoires cache de haut niveau (gestion de pages…), ce phénomène est également observable.

Histoire[modifier | modifier le code]

Jusqu'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 et remit ainsi en question l'efficacité de cet algorithme. De nos jours, des algorithmes pseudo-LRU ou LRU lui sont préférés.

Principe[modifier | modifier le code]

Prenons 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 | modifier le code]