Brevet FR2835937A1 — publié le 20030815

dans ladit journal d'événements (14). 1- 2835937 CHAMP DE L' INVENTION Cette invention se rapporte d'une manière générale à des systèmes informatiques et de manière plus spécifique à des systèmes de mémoire cache. ARRIERE PLAN DE L' INVENTION La plupart des systèmes informatiques emploient une hiérarchie de systèmes de mémoires à plusieurs niveaux, avec une mémoire relativement rapide, coûteuse et de capacité limitée au niveau le plus élevé de la hiérarchie et en continuant par une mémoire relativement plus lente, de plus faible coût et de capacité supérieure au niveau le plus bas de la hiérarchie. De manière typique, la hiérarchie comprend une petite mémoire rapide appelée un cache, soit intogrée physiquement dans le circuit intogré du processeur soit montée physiquement proche du processeur pour la vitesse. Il peut exister des caches d' instructions et des caches de données séparés. Il peut exister plusieurs niveaux de caches. Beaucoup de systèmes informatiques emploient plusieurs processeurs, chacun d'eux pouvant avoir plusieurs niveaux de cache. Certains caches peuvent être partagés par plusieurs processeurs. Tous les processeurs et les caches peuvent partager une mémoire principale commune. De manière typique, une mémoire est organisée en mots (par exemple des mots de 32 ou 64 bits). Typiquement, la quantité minimum de mémoire qui peut être transférée entre un cache et un niveau inférieur qui fait suite dans la hiérarchie de la mémoire est appelée une ligne ou parfois un bloc. Une ligne est formoe typiquement de plusieurs mots (par exemple 16 mots par ligne). Une mémoire peut aussi être divisoe en - 2 - 2835937 pages (appelées aussi segments), avec plusieurs lignes par page. Dans certains systèmes, la taille des pages peut être variable. Le présent document de brevet utilise le terme "ligne" pour des entrées de cache, mais l' invention est également applicable à des organisations en blocs ou autres de la mémoire. Beaucoup de systèmes informatiques utilisent plusieurs processeurs, chacun d'eux pouvant avoir plusieurs niveaux de cache. Certains caches peuvent être partagés par plusieurs processeurs. Tous les processeurs et les caches peuvent partager une mémoire principale commune. Une ligne particulière peut simultanément exister en mémoire et dans les hiérarchies de cache pour plusieurs processeurs. Toutes les copies d'une ligne dans les caches doivent être identiques, une propriété appelée cohérence. Les protocoles pour maintenir la cohérence pour plusieurs processeurs sont appelés des protocoles de cohérence de cache. 2 0 Les protocoles de cohérence de cache mettent, de manière commune, chaque ligne cachée dans un parmi plusieurs états. Une approche commune utilise trois états possibles pour chaque ligne dans un cache. Avant qu'une ligne quelconque soit placée dans le cache, toutes les entrées sont dans un état par défaut appelé "Invalide". Lorsqu'une ligne physique antérieurement non cachée est placce dans le cache, l'état de l'entrée dans le cache est modifié de Invalide à "Partagé" (Shared). Si une ligne est modifiée dans un cache, elle peut aussi être immédiatement modifiée en mémoire (une opération appelée "write through", écrire au travers). En variante, un cache peut écrire une ligne modifiée en mémoire uniquement lorsque la ligne modifiée dans le cache est invalidée ou remplacée (une opération appelée écriture en retour). Pour un cache à écriture en retour, lorsqu'une ligne dans le cache est modifiée, ou sera modifiée, l'état de l'entrce dans le cache est changé en "Modifié". L' affectation selon trois états qui vient d'être décrite est parfois appelée protocole MSI, faisant référence à la première lettre de chacun des trois états selon leurs terminologies anglosaxonnes (Modified, Shared, Invalid). Pour améliorer la performance, le système informatique essaye de conserver les donnces qui seront utilisoes bientôt dans la mémoire la plus rapide, qui de manière usuelle est un cache élevé dans la hiérarchie. Typiquement, lorsqu'un processeur demande une ligne, si la ligne n'est pas dans un cache pour le processeur ("raté" de cache), alors la ligne est copiée depuis la mémoire principale ou depuis un cache d'un autre processeur. Une ligne venant de la mémoire principale ou une ligne venant du cache d'un autre processeur, est aussi typiquement copiée dans un cache pour le processeur demandeur, en supposant que cette ligne particulière devra à nouveau faire l'objet d'un accès bientôt. Si un cache est plein, alors une nouvelle ligne doit remplacer une certaine ligne existante dans le cache. Si une ligne à remplacer est propre (la copie dans le cache est identique à la copie en mémoire principale), elle peut simplement être écrasée. Si une ligne à remplacer n'est pas propre (la copie dans le cache est différente de la copie en mémoire principale), alors la ligne doit d'abord être expulsée (copice en mémoire principale). Un algorithme de remplacement est utilisé pour déterminer quelle ligne dans le cache est remplacée. Un algorithme commun pour le remplacement consiste à remplacer la ligne utilisée la moins récemment dans le cache. Une préoccupation particulière relative à la performance dans le cas de grands systèmes 4 - 2835937 informatiques à plusieurs processeurs est l' impact sur la latence lorsqu'un processeur demande une ligne qui est cachée par un autre processeur. Si une ligne modifiée (malpropre) est cachée par un premier processeur, et que la ligne est demandée par un deuxTème processeur, la ligne est écrite en mémoire principale et elle est aussi transférée vers le cache demandeur (transfert de cache à cache). Pour un grand système à plusieurs processeurs, un transtert de cache à cache peut nécessiter une latence plus longue qu'un transfert depuis la mémoire principale. En outre, pour un grand système à plusieurs processeurs, un transfert de cache à cache peut engendrer du trafic sur les bus locaux qui ne serait pas nécessaire pour un transfert depuis une mémoire principale. Par conséquent, il est possible d'améliorer la latence moyenne en réduisant le nombre de transferts de cache à cache ce que l'on peut améliorer en retour par une expulsion préemptive des lignes malpropres périmées. En outre, pour de grands systèmes, même si une ligne dans le cache d'un autre processeur n'est pas malpropre, il peut exister une latence sensible mise en jeu lorsque l'on détermine si une ligne est réellement malpropre. Par exemple, dans le protocole de cohérence MSI, si une ligne est dans l'état Modifié, un processeur peut modifier la ligne sans informer un autre processeur. Une ligne dans l'état Modifié dans un cache peut en réalité être propre, ce qui signifie que la copie dans la mémoire principale peut être utilisée, mais un temps sensible peut être nocessaire pour déterminer si la ligne est propre ou malpropre. Par conséquent, la latence moyenne peut être améliorce par une expulsion préemptive des lignes périmées dans l'état Modifié, même si elles sont propres. Des systèmes pour déterminer l'âge de lignes malpropres sont connus. Par exemple, le document US- 6,134,634 décrit un système dans lequel chaque ligne dans un cache possède un compteur associé qui est utilisé pour compter les cycles pendant lesquels la ligne n'a pas fait l'objet d'une écriture. Si le compte dépasse un nombre prédéterminé, cela détermine que la ligne est périmée et peut être expulsée. Il existe un besoin pour identifier des lignes périmées à moindre faible coût. RESUME DE L' INVENTION L' invention prévoit un système de mémoire cache comprenant: un stockage pour une pluralité de valeurs de données; un stockage pour une pluralité de bits d' âge, chaque bit d' âge correspondant à au moins une des valeurs de données; et chaque bit d'âge indiquant si au moins une valeur de donnée en correspondance est périmée. Dans une variante de réal i sat ion du système de mémoire cache de la présente invention, on prévoit que chaque bit d'âge indique qu'au moins une valeur de donnée en correspondance est périmée lorsque le bit d'âge est resté à un état logique particulier pendant au moins une durce temporelle prédéterminée. Dans cette variante de réalisation du système de mémoire cache de la présente invention, on prévoit en outre une machine à états, la machine à états déterminant de manière périodique l'état de chaque bit d'âge et, pour chaque bit d'âge qui n'est pas à l'état logique particulier, mettant l'état du bit d'âge à l'état logique particulier. Dans une autre variante de réalisation du système de mémoire cache de la présente invention, on prévoit en outre que chaque bit d'âge indique en outre si au moins une valeur de donnée en correspondance est 6- 2835937 modifiée. Dans cette autre variante de réalisation du système de mémoire cache de la présente invention, on prévoit en outre que chaque bit d'âge peut indiquer si au moins une ligne de valeurs de données en correspondance est périmée et modifiée lorsque le bit d'âge est resté à un état logique particulier pendant au moins une durée temporelle prédéterminée. Dans cette autre variante de réalisation du système de mémoire cache de la présente invention, on prévoit en outre une machine à états, la machine à états déterminant de manière périodique l'état de chaque bit d'âge, et, pour chaque bit d'âge qui n'est pas à l'état logique particulier, mettant l'état du bit d'âge à l'état logique particulier. La présente invention prévoit en outre un procédé pour détecter si une entrée est périmée dans une mémoire cache, ce procédé comprenant les étapes consistant à: mettre un bit à un premier état logique lorsque l'entrée fait l'objet d'un accès; mettre le bit à un deuxième état logique; et déterminer que l'entrée est périmée lorsque le bit est au deuxième état logique après au moins une durée prédétermince après avoir été mis au deuxième état logique. Selon une variante de réalisation du procédé pour détecter si une entrée est périmée dans une mémoire cache conformément à la présente invention, ledit procédé comprend en outre les étapes consistant à: mettre le bit au premier état logique lorsque l'entrée fait l'objet d'une écriture; et déterminer que l'entrée est périmée et malpropre lorsque le bit est au deuxième état logique après au moins la durée prédéterminée après avoir été mis au deuxième état logique. La présente invention prévoit en outre un procédé - 7 - 2835937 pour détecter si au moins une entrée parmi un jeu d'entrées dans une mémoire cache est périmée, comprenant les étapes consistant: mettre un bit à un premier état logique quand une entrée en correspondance à un index fait l'objet d'un accès; mettre le bit à un deuxième état logique; et déterminer qu'au moins une entrée en correspondance à l' index est périmoe lorsque le bit est au deuxième état logique après au moins une durée prédéterminée après avoir été mis au deuxième état logique. Selon une variante de réalisation du procédé pour détecter si au moins une entrée parmi un jeu d'entrces dans une mémoire cache est périmée conformément à la présente invention, ledit procédé comprend en outre les étapes consistant à: mettre le bit au premier état logique lorsqu'une entrée en correspondance à un index est modifiée; et déterminer qu'au moins une entrée en correspondance à l' index est périmée et malpropre lorsque le bit est au deuxième état logique après au moins une durce prédéterminée après avoir été mis au deuxième état logique. Dans un mode de réali sat ion donné à t itre d'exemple de l' invention, un système de cache peut identifier des lignes périmées avec une très petite circuiterie incrémentielle. BREVE DESCRIPTION DES DESSINS La figure 1 est un schéma par blocs d'un exemple de système qui inclut l'invention. Les figures 2A et 2B sont des organigrammes de procédés pilotés par des événements conformes avec une partie d'un exemple de mode de réalisation de l'invention. La figure 3 est un organigramme d'un procédé conforme à une partie d'un exemple de mode de - 8 - 2835937 réalisation de l' invention. DESCRIPTION DETAILLEE DU MODE DE REALISATION PREFERENTIEL DE L' INVENTION Si un cache stocke une ligne d'adresses entière ainsi que des données, et qu'une ligne quelconque peut être placée à un endroit quelconque dans le cache, on dit que le cache est complètement associatif. Cependant, pour un grand cache dans lequel une ligne quelconque peut être placée à un endroit quelconque, le matériel nécessaire pour déterminer rapidement si (et o) une entrée est dans le cache peut être très important et coûteux. Pour de grands caches, une variante plus rapide, permettant de gagner de l'espace, consiste à utiliser un sous-ensemble d'une adresse (appelé un index) pour désigner un jeu de lignes à l'intérieur du cache et à stocker ensuite le jeu restant formé des bits plus significatifs de chaque adresse physique (appelée étiquette) ainsi que les donnces. Dans un cache à indexation, une rubrique ayant une adresse particulière peut uniquement être placce à l'intérieur d'un jeu de lignes désignces par l' index. Si le cache est arrangé de telle manière que l' index pour une adresse déterminée cartographie à exactement une ligne dans le sous-ensemble, on dit que le cache est à cartographie directe. Si l' index cartographie avec plus d'une ligne dans le sous-ensemble, on dit que le cache est associatif par jeu. L'adresse est numérotée, en intégralité ou en partie, pour fournir un index du jeu, ce qui réalise des partitions de l'espace d'adresse en jeux. Dans beaucoup d' architectures de mémoires informatiques, un processeur produit des adresses virtuel le s qui sont traduites par une combinai son de matériel et de logiciel en adresses physiques, qui - 9- 2835937 accèdent à une mémoire physique principale. Un groupe d'adresses virtuelles peut être affecté de manière dynamique à chaque page. La mémoire virtuelle (pagination ou segmentation) demande une structure de données, appelée parfois une table de page, qui traduit l'adresse virtuelle en l'adresse physique. Pour réduire le temps de traduction des adresses, les ordinateurs utilisent de manière commune un cache associatif spécialisé dédié à la résolution de la traduction des adresses, appelé de manière commune le TLB (Translation Look-aside Buffer, tampon de traduction qui regarde de côté). La figure 1 illustre un exemple de cache pour un système dans lequel l' invention peut être exécutée. L'exemple spécifique de cache illustré à la figure 1 est un cache associatif par jeu à quatre voies avec un adressage virtuel. Cependant, l' invention est applicable à toute configuration de cache, y compris des caches à cartographie directe, des caches complètement associatifs et d'autres configurations de caches associatifs par jeu. Dans l'exemple de la figure 1, une adresse virtuelle 100 comprend des bits d' index de plus faible ordre 102 et des bits d'étiquette d'ordre plus élevé 104. Les bits d' index sont typiquement les mêmes pour l'adresse virtuelle et l'adresse physique. Les bits d' index sont utilisés pour sélectionner un jeu de lignes de données dans la section des données 106 du cache. La section sortie des données 106 consiste en quatre lignes de donnces. Les bits d' index sont aussi utilisés pour sélectionner un jeu d'étiquettes physiques dans la section des étiquettes 108 du cache. La sortie de la section des étiquettes 108 consiste en quatre étiquettes physiques, chacune correspondant à une ligne de données. Le TLB 110 stocke à la fois des étiquettes virtuelles et - 10 - 2835937 physiques. Pour une opération de TLB réussie, le TLB fournit une étiquette physique qui correspond à l'étiquette virtuelle 104. Chacun des quatre comparateurs numériques (non illustrés) compare ensuite l'étiquette physique venant du TLB à une étiquette physique venant de la section des étiquettes 108. Une paire d'étiquettes physiques en correspondance indique par l'intermédiaire d'une logique (non illustrée) laquelle des quatre lignes de données est sélectionnée par un multiplexeur (non illustré). Notons que pour les bits d' index particuliers, il peut ne pas y avoir de paires d'étiquettes physiques correspondantes, auquel cas il y a un raté de cache. Un cache complètement associatif peut avoir une structure semblable à un TLB pour déterminer si une ligne est dans le cache et à quel endroit. Conformément à l' invention, des bits d'âge sont utilisés pour indiquer si des lignes dans le cache peuvent être périmées. Un bit d'âge est associé à chaque valeur d' index possible, ou, en variante à chaque ligne dans le cache. A la figure 1, la boite 112 indique un jeu de bits dâge, chaque bit d'âge étant associé à une valeur d' index. Les boites 114 indiquent une variante de conception, avec quatre jeux de bits d'âge, chaque bit d'âge étant associé à une ligne de données. Pour un cache complètement associatif, chaque bit d'âge serait associé à une ligne de données. Dans un cache cartographié directement, chaque bit d'âge serait associé à la fois à une valeur d' index et à une ligne de donnces. Il n'est pas nécessaire que les bits d'âge soient physiquement placés dans la section des étiquettes 108 du cache. Il est uniquement nécessaire d'avoir une relation de un à un avec les valeurs d' index ou, en variante, avec les lignes de données. Il est commun de stocker les informations de cohérence de 11- 2835937 cache dans la section des étiquettes 108, de sorte que des bits d'âge peuvent être ajoutés à la section des étiquettes avec peu de matériel incrémentiel. En outre, pour certaines architectures de processeur, la section des étiquettes 108 peut être intégrée sur la puce du processeur et la structure de données 106 peut être sur une puce séparée. Si la structure d'étiquettes 108 fait partie intégrante du processeur, les temps d'accès pour les bits d'âge sont diminués, ce qui facilite la manipulation des bits d'âge pendant la latence pour récupérer des données. Pour un cache complètement associatif, les bits d'âge peuvent être situés physiquement avec la structure identique à un TLB utilisce pour déterminer si une ligne de données est dans le cache. Une machine à états 116 boucle de manière périodique à travers tous les bits d'âge, comme cela est exposé d'une manière plus détaillée en conjanction avec la figure 3. Dans un but d' illustration uniquement, à la figure 1, la machine à états 116 est montrée comme interagissant avec des bits d'âge 112 associés avec chaque valeur d' index. Si les bits d'âge sont associés avec chaque ligne de données (les bits d'âge 114), alors la machine à états interagirait avec les bits d'âge 114. Les figures 2A et 2B illustrent un exemple de variantes de procédés pilotés par des événements, et la figure 3 illustre un exemple de procédé pour une machine à états (figure 1, 116). Tous les bits d'âge sont initialement prédisposés à un premier état logique (par exemple un ZERO logique) (figure 3, 300). Les bits d'âge peuvent ensuite être utilisés pour détecter si une ligne a fait l'objet d'un accès (lecture ou écriture) (figure 2A), ou, en variante, si une ligne a été modifiée (écriture seule) (figure 2B). Si - 12 - 2835937 l'objectif est d'identifier des lignes périmées, alors à chaque fois qu'une ligne fait l'objet d'un accès (figure 2A, 200), le bit d'âge en correspondance est mis au premier état logique (figure 2A, 202). En variante, si l'objectif est d' identifier des lignes malpropres périmées, à chaque fois qu'une ligne fait l'objet d'une modification (écriture) (figure 2B, 204), le bit d'âge en correspondance est mis au premier état logique (figure 2B, 206). Si les bits d'âge font physiquement partie du cache, ils peuvent être mis au premier état logique par le cache. Si les bits d'âge sont physiquement séparés du cache, la machine à états (figure 1, 116) peut recevoir la valeur d' index et la machine à états peut mettre le bit d'âge en correspondance au premier état logique. La figure 3 illustre un exemple de procédé pour la machine à états (figure 1, 116), en supposant qu'il y a un bit d'âge pour chaque valeur d' index (figure 1, 112). A l'étape 300, chaque bit d'âge est initialisé à un premier état logique, par exemple un ZERO logique. L' index est initialisé à l'étape 302. La machine à états attend alors pendant un temps prédéterminé (étape 304) avant de vérifier l'état des bits d'âge. La machine à états boucle ensuite de manière répétitive à travers toutes les valeurs d' index. A l'étape 306, pour chaque valeur de l' index, la machine à états examine l'état du bit d'âge en correspondance. Si le bit d'âge est au premier état logique, alors à l'étape 308, la machine à états met le bit d'âge à un deuxième état logique (par exemple, UN logique). d Si le bit d'âge est déjà au deuxième état logique, à l'étape 310, une ligne dans le jeu de lignes en correspondance à la valeur de l' index peut être expulsée. Dans un cache associatif par jeu, il existe de nombreuses lignes qui correspondent à la valeur de - 13 - 2835937 l' index et le système doit déterminer laquelle de ces nombreuses lignes expulser. Il peut y avoir plus d'une ligne périmoe en correspondance à la valeur de l' index. Il est commun pour des caches d'avoir un algorithme de remplacement, par exemple, "utilisé le moins récemment". Pour l'exemple d'un cache associatif par jeu à quatre voies, l'algorithme de remplacement peut être utilisé pour sélectionner une parmi quatre lignes associéss à une valeur d' index ayant un bit d'âge en correspondance au deuxième état logique. Il existe plusieurs variantes. Si l'objet est de détecter et d'expulser des lignes périmées, alors l'algorithme de remplacement peut être utilisé pour sélectionner l'une quelconque des lignes en correspondance à la valeur de l' index. En particulier, si l'algorithme de remplacement est " utilisé le moins récemment ", une ligne périmée sera expulsée. Si l'objet est de déterminer des lignes malpropres périmées, alors l'algorithme de remplacement peut être limité aux seules lignes modifices en correspondance à la valeur de l' index. Les étapes 312 et 314 bouclent les étapes 306 à 310 pour toutes les valeurs de l' index, et exécutent ensuite la période d'attente (étape 304) avant de répéter le cycle. Dans l'exemple de mode de réalisation de la figure 3, le temps d'attente 304 est un temps d'attente minimum et le temps de cycle glabal pour vérifier l'état d'un bit d'âge particulier quelconque peut être plus long d'une quantité variable que le temps minimum d'attente. Par exemple, il peut être préférable d'exécuter la boucle des index (figure 3, étapes 306 à 314) uniquement lorsque le cache est oisif, de sorte que le temps de cycle total pour vérifier l'état d'un bit d'âge quelconque peut dépendre de l'encombrement du cache. En outre, souvenons-nous - 14 - 2835937 que chaque fois qu'une ligne fait l'objet d'un accès (ou, en variante, à chaque fois qu'une ligne fait l ' objet d'une écriture) le bit d' âge en correspondance est mis au premier état logique. Il en résulte que la mise des bits d'âge au premier état logique (figures 2A et 2B) est asynchrone au procédé de la figure 3. Par conséquent, le temps entre l'époque o un bit d'âge est mis au premier état logique et l'époque à laquelle il est vérifié par la machine à états est variable. En variante, la mise des bits d'état au premier état logique pourrait être rendue synchrone, par exemple en retardant la mise des bits d'état jusque juste avant ou après l'étape 304 de la figure 3, et la machine à états pourrait être exécutée avec des temps de cycle non variables. S'il existe un bit d'âge par ligne (figure 1, 114), par exemple dans un cache associatif par jeu à quatre voies, alors le système utilisant l'exemple de procédé de la figure 3 pourrait répéter les étapes 306 à 310 quatre fois, une fois pour chacun des quatre bits d'âge associé à chaque valeur de l' index. Pour un cache complètement associatif, le système pourrait reboucler à travers les entrces dans une structure de table de correspondance (par exemple une mémoire à contenu adressable) au lieu de valeurs d' index. Dans le système de cache résultant, des lignes périmées ou, en variante, des lignes malgropres périmoes, peuvent être identifiées en ajoutant uniquement un bit pour chacun des nombres de valeurs de l' index dans le cache ou un bit pour chacun des nombres de lignes dans le cache, plus une machine à états. La description précédente de la présente invention a été présentée dans des buts d' illustration et de description. Elle n'a pas l' intention d'être exhaustive ou de limiter l' invention à la forme précise divulguce, et d'autres modifications et variations peuvent être possibles à la lumière des enseignements ci-dessus. Le mode de réali sat ion a été choi s i et décrit de maniè re à expliquer au mieux les principes de l' invention et de son application pratique pour permettre ainsi à d'autres personnes compétentes dans la technique d'utiliser l' invention au mieux dans divers modes de réali sat ion et diverses modifications qui conviendraient aux utilisations particulières envisagées. L' intention est que les revendications jointes soient destinces à inclure d'autres variantes de mode de réalisation de l' invention sauf dans la mesure o ils seraient limités par la technique anclenne. - 16 - 2835937 REVEND I CAT IONS 1. Système de mémoire cache, comprenant: un stockage (106) pour une pluralité de valeurs de données; un stockage (112, 114) pour une pluralité de bits d' âge, chaque bit d' âge correspondant à au moins une des valeurs de données; et chaque bit d'âge indiquant si au moins une valeur de donnée en correspondance est périmée. 2. Système de mémoire cache de la revendication 1, dans lequel en outre: chaque bit d'âge indique qu'au moins une valeur de donnée en correspondance est périmée lorsque le bit d'âge est resté à un état logique particulier pendant au moins une durée temporelle prédéterminée. 3. Système de mémoire cache de la revendication 2, comprenant en outre: une machine à états (116), la machine à états déterminant de manière périodique l'état de chaque bit d'âge et, pour chaque bit d'âge qui n'est pas à l'état logique particulier, mettant l'état du bit d'âge à l'état logique particulier. 4. Système de mémoire cache de la revendication 1, dans lequel en outre: chaque bit d'âge indique en outre si au moins une valeur de donnée en correspondance est modifiée. 5. Système de mémoire cache de la revendication 4, dans lequel en outre: - 17 - 2835937 chaque bit d'âge indique si au moins une ligne de valeurs de données en correspondance est périmée et modifiée lorsque le bit d'âge est resté à un état logique particulier pendant au moins une durée temporelle prédétermince. 6. Système de mémoire cache de la revendication 5, comprenant en outre: une machine à états (116), la machine à états déterminant de manière périodique l'état de chaque bit d'âge, et, pour chaque bit d'âge qui n'est pas à l'état logique particulier, mettant l'état du bit d'âge à l'état logique particulier. 7. Procédé pour détecter si une entrée est périmoe dans une mémoire cache, comprenant les étapes consistant à: mettre (202) un bit à un premier état logique lorsque l'entrée fait l'objet d'un accès; mettre le bit à un deuxième état logique; et déterminer que l'entrée est périmée lorsque le bit est au deuxième état logique après au moins une durce prédéterminée après avoir été mis au deuxième état logique. 8. Procédé de la revendication 7, comprenant en outre les étapes consistant à: mettre (206) le bit au premier état logique lorsque l'entrée fait l'objet d'une écriture; et déterminer (310) que l'entrée est périmée et malpropre lorsque le bit est au deuxième état logique après au moins la durée prédéterminée après avoir été mis au deuxième état logique. 9. Procédé pour détecter si au moins une entrce parmi 18- 2835937 un jeu d'entrces dans une mémoire cache est périmée, comprenant les étapes consistant: mettre (202) un bit à un premier état logique quand une entrce en correspondance à un index fait l'objet d'un accès; mettre le bit à un deuxième état logique i et déterminer qu'au moins une entrce en correspondance à l' index est périmée lorsque le bit est au deuxième état logique après au moins une durée prédétermince après avoir été mis au deuxième état logique. 10. Procédé de la revendication 9, comprenant en outre les étapes consistant à: mettre (206) le bit au premier état logique lorsqu'une entrce en correspondance à un index est modifiée; et déterminer qu'au moins une entrée en correspondance à l' index est périmée et malpropre lorsque le bit est au deuxième état logique après au moins une durée prédéterminée après avoir été