A system and method of maintaining consistent cached copies of memory in a
multiprocessor system having a main memory, includes a memory directory
having entries mapping the main memory, an access history information in
the memory directory entries, and a directory cache having records
corresponding to a subset of the memory directory entries. The memory
directory may be a full map directory having entries mapping all of the
main memory or a sparse directory having entries mapping to a subset of
the main memory. The method includes the steps of receiving a signal
indicating a processor cache miss, retrieving a memory directory entry
from the memory directory, updating the access history of the memory
directory entry, selecting a directory cache line based on its access
history and allocating the directory cache line for replacement, and
writing the memory directory entry into the directory cache.
Un système et une méthode de maintenir à copies cachées conformées de mémoire dans un système de multiprocesseur ayant une mémoire centrale, inclut un annuaire de mémoire ayant des entrées tracer la mémoire centrale, une information d'histoire d'accès dans les entrées de répertoire de mémoire, et une cachette d'annuaire ayant des disques correspondre à un sous-ensemble des entrées de répertoire de mémoire. L'annuaire de mémoire peut être un plein annuaire de carte ayant des entrées tracer tous les mémoire centrale ou annuaire clairsemé ayant des entrées qui tracent à un sous-ensemble de la mémoire centrale. La méthode inclut les étapes de recevoir un signal indiquant une absence dans l'antémémoire de processeur, recherchant une entrée de répertoire de mémoire à partir de l'annuaire de mémoire, mettant à jour l'histoire d'accès de l'entrée de répertoire de mémoire, choisissant une ligne de cachette d'annuaire basée sur son histoire d'accès et assignant la ligne de cachette d'annuaire pour le remplacement, et écrivant l'entrée de répertoire de mémoire dans la cachette d'annuaire.