Brevet FR2733066A1 — publié le 19961018

DISPOSITIF DE CONTROLE DE MEMOIRE CACHE La présente invention concerne un dispositif de contrôle de mémoire cache comprenant un réseau d'adresses et une pluralité de bits valables, et plus particulièrement un dispositif de contrôle de mémoire cache conçu pour connecter de façon sélective, entre un processeur et une mémoire centrale, une mémoire de données de la mémoire cache ayant une capacité variée de façon sélective. La capacité de la mémoire de données est altérable de façon sélective selon les besoins de performance du système. Dans un système informatique, une capacité de mémoire d'une mémoire cache doit pouvoir être modifiée pour l'équilibre du système. Par exemple, un système standard à double processeur peut être modifié pour devenir un système subordonné à monoprocesseur. Dans ce cas, la capacité mémoire du système standard est trop importante pour le modèle de système subordonné, puisque la performance du modèle de système subordonné est inférieure à celle du modèle de système standard. Une seule ligne de la mémoire cache (ou de la mémoire de données de la mémoire cache) peut donc être subdivisée, de façon typique, en une pluralité de blocs. Un "bloc" est un bloc de données devant être transférées entre une mémoire cache et une mémoire centrale dans une transaction de bus (par exemple, un cycle de bus). Ainsi, une taille de bloc correspond à une taille de données pour une transaction de bus. La "ligne" est un ensemble de données devant être gérées par une étiquette d'adressage. Ainsi, une taille de ligne est plus grande que ou égale à une taille de bloc. Si nous nous référons à la Fig. 2, un exemple de structure de 2 blocs par ligne montre qu'une ligne de 128 octets comporte deux blocs de 64 octets. Ensuite, les données d'une ligne de 128 octets sont gérées par une étiquette (par exemple, une étiquette d'adressage) et deux bits valables. Un bit valable indique si un bloc correspondant est valable. Chaque bit valable de l'ensemble des bits valables correspond à un bloc. D'un autre côté, un exemple d'une structure ayant un bloc par ligne montre qu'une ligne de 64 octets comporte un bloc de 64 octets. Les données d'une ligne de 64 octets sont donc gérées par une étiquette et un bit valable. Si nous nous référons à la Fig. 3, un système de contrôle de mémoire cache classique ayant deux blocs par ligne comporte une mémoire de données 850 de 512 kilo-octets (512 Ko) qui est divisée en deux blocs de 256 Ko chacun. Un registre d'adresse 810 garde en mémoire une adresse de 32 bits qui comprend une étiquette de 13 bits, un index de 12 bits (par exemple 212), et un décalage de bloc de 7 bits. L'index est utilisé pour sélectionner une ligne (par exemple un ensemble) d'une mémoire cache. L'étiquette est utilisée comme clé de comparaison pour trouver une ligne. Le décalage de bloc est utilisé pour sélectionner les données souhaitées dans le bloc. Un réseau d'adresses 830, deux ensembles de bits valables 840 et la mémoire de données 850 ont 4096 mots (par exemple, des ensembles) parce qu'ils sont indexés par l'index de 12 bits. Le réseau d'adresses 830 garde en mémoire des étiquettes de 13 bits (par exemple, des étiquettes d'adressage) . Les bits valables 840 sont divisés en deux ensembles VO et V1, chacun d'eux ayant une largeur d'un bit. La mémoire de données 850 est divisée en deux ensembles DO et D1, chacun d'eux ayant un bloc de 64 octets. Un sélecteur 870 sélectionne les données voulues parmi des données de 128 octets conformes au décalage de bloc 810. Un comparateur 860 compare une étiquette mise en mémoire dans le réseau d'adresses 830 et une étiquette du registre d'adresse 810. Des portes ET 890 et 891 réalisent une opération logique ET sur une sortie du comparateur 860 et sur des sorties de bits valables 840. Si le comparateur 860 détecte une "coïncidence" et que le bit valable indique "valable", les données du sélecteur 870 sont appropriées (par exemple un "cache HIT" (acceptation de mémoire cache)). Si ce n'est pas le cas, un "cache MISS" (refus de mémoire cache) se produit. D'un autre côté, si nous nous référons à la Fig. 4, un système classique ayant un bloc par ligne comporte une mémoire de données 950 de 256 Ko. Un registre d'adresse 910 garde en mémoire une adresse de 32 bits qui comprend une étiquette de 14 bits, un index de 12 bits et un décalage de bloc de 6 bits. Le décalage de bloc comporte 6 bits parce que la mémoire de données 950 comporte 256 Ko. Ainsi, l'étiquette fait 14 bits de long. Un réseau d'adresses 930 et un comparateur 960 font donc également 14 bits de long. Si nous comparons la Fig. 3 et la Fig. 4, et si un système doit satisfaire les deux structures, le système doit préparer un réseau d'adresses de 14 bits (comme dans la structure de la Fig. 4) et deux ensembles de bits valables (comme dans la structure de la Fig. 3). Ainsi, dans le dispositif de contrôle classique de mémoire cache, lorsque 2 blocs sont utilisés par ligne (comme dans la structure de la Fig. 3), 1 bit du réseau d'adresses est inutilisé. D'un autre côté, lorsque 1 bloc est utilisé par ligne (comme dans la structure de la Fig. 4), l'un des bits valables est inutilisé. Il existe par conséquent des zones de mémoire continuellement inutilisées dans le dispositif de contrôle de la mémoire cache classique. Il en résulte ainsi une puce d'intégration à grande échelle ayant une surface de puce inutilement grande, gâchant ainsi un "emplacement" de puce précieux. Du fait du problème du système classique évoqué cidessus, un des objets de la présente invention est d'éliminer la zone de mémoire non utilisée dans un dispositif de contrôle de mémoire cache et de minimiser la taille de la puce d'intégration à grande échelle, tout en empêchant le gâchis d'emplacements précieux de puce. Dans un dispositif de contrôle de mémoire cache conforme à un premier mode de réalisation de l'invention, un circuit de recherche cherche une ligne dans une mémoire cache. Des circuits d'indication de validité indiquent la validité d'un bloc dans la ligne recherchée par les circuits de recherche. Des circuits à double fonction indiquent la validité d'un second bloc dans la ligne cherchée par le circuit de recherche. Les circuits à double fonction recherchent également, de façon complémentaire, la ligne dans la mémoire cache. Grâce à la structure unique et non évidente de la présente invention, un certain nombre de blocs d'une ligne sont sélectionnables sans gâchis de zone mémoire et sans agrandir inutilement la surface de la puce. Les objets, caractéristiques et avantages susmentionnés de l'invention, ainsi que d'autres, seront encore plus apparents en se référant à la description détaillée suivante de l'invention, étudiée en conjonction avec les dessins d'accompagnement, dans lesquels la Fig. 1 est un schéma de principe indiquant la configuration d'un système informatique dans lequel un dispositif de contrôle de mémoire cache conforme au premier mode de réalisation de la présente invention est utilisé ;; la Fig. 2 illustre des configurations mémoire pour des configurations de 2 blocs par ligne et d'1 bloc par ligne, respectivement la Fig. 3 est un schéma de principe montrant la configuration d'une mémoire cache classique ayant 2 blocs par ligne la Fig. 4 est un schéma de principe montrant la configuration d'une mémoire cache classique ayant 1 bloc par ligne la Fig. 5 est un schéma de principe montrant la configuration d'un contrôleur d'adresse 100 dans le dispositif de contrôle de mémoire cache 20 conforme au premier mode de réalisation de la présente invention la Fig. 6 est un tableau montrant un fonctionnement du dispositif de contrôle de mémoire cache conforme au premier mode de réalisation de la présente invention et la Fig. 7 est un schéma montrant une fonction d'une combinaison d'une porte OU exclusif 170 et d'une porte NON-ET 180 utilisées dans le contrôleur d'adresse 100 montré sur la Fig. 5. Un dispositif de contrôle de mémoire cache conforme au mode de réalisation préféré de la présente invention va être décrit en détail en se référant aux dessins d'accompagnement. Si nous nous référons à la Fig. 1, un système informatique dans lequel la présente invention peut être utilisée comporte au moins un processeur 50, une mémoire principale 60, et une mémoire cache 10 connectée entre le processeur 50 et la mémoire principale 60. La mémoire cache 10 a un dispositif de contrôle de mémoire cache 20 et une mémoire de données 30. La mémoire de données 30 comprend de la mémoire (par exemple des cellules de mémoire vive statique (SRAM), ou de mémoire vive dynamique (DRAM)). Une capacité de la mémoire de données 30 est modifiable selon les exigences de performance du système. Un certain nombre de processeurs 50 pouvant être connectés à la mémoire cache 10 sont également modifiables selon les exigences de performance du système. Une seule ligne de la mémoire de données 30 peut être subdivisée en une pluralité de blocs. Dans un but de simplification, une ligne de la mémoire de données 30 a soit un bloc soit deux blocs dans ce premier mode de réalisation tel que décrit ci-dessous. Le dispositif de contrôle de mémoire cache 20 a un contrôleur d'adresse 100 et une interface 200. Le contrôleur d'adresse 100 détermine un "cache HIT" et un "cache MISS" sur la base d'une adresse émise par le processeur 50. L'interface 200 se connecte entre le processeur 50 et la mémoire principale 60. L'interface 200 envoie l'adresse émise par le processeur 50 au contrôleur d'adresse 100 et reçoit le signal "cache HIT" du contrôleur d'adresse 100. L'interface 200 transfère les données entre la mémoire de données 30 de la mémoire cache 10 et la mémoire principale 60 conformément aux informations du contrôleur d'adresse 100. Si nous nous référons à la Fig. 5, celle-ci nous montre le contrôleur d'adresse 100 du dispositif de contrôle de mémoire cache 20 conforme à la présente invention. Un registre d'adresse 110 garde en mémoire une adresse qui comprend une étiquette 111, un index 112, une commande de bloc 113 et un décalage de bloc 114. L'index 112 est utilisé pour sélectionner un rang (par exemple un ensemble) de la mémoire cache. L'étiquette 111 est utilisée à titre de comparaison pour trouver une ligne de la mémoire de données 30 de la mémoire cache. La commande de bloc 113 est utilisée pour sélectionner le bloc voulu dans la ligne de la mémoire de données 30. Le décalage de bloc 114 est utilisé pour sélectionner les données voulues dans le bloc. Un réseau d'adresses 130 garde en mémoire des étiquettes (par exemple des étiquettes d'adressage). Un registre des bits valables 140 garde en mémoire des bits valables (VO) qui indiquent si les premiers blocs correspondants sont valables. Un registre 150 garde en mémoire des bits, chacun d'entre eux étant soit un bit valable d'un second bloc (V1), soit une partie d'une étiquette d'adressage (AA). Le registre 150 est ainsi, de préférence, un registre à double fonction. Le réseau d'adresses 130, le registre de bits valables 140 et le registre 150 sont indexés par l'index 112. Un sélecteur 120 sélectionne l'une des commandes de bloc 113 ainsi qu'un bit valable (V1) 103 indiquant qu'un second bloc est valable dans une ligne de la mémoire de données 30. Le sélecteur 120 est commandé par un signal de sélection de mode 104 émis par l'interface 200. Le signal de sélection de mode 104 indique si le système informatique est en mode système standard ou en mode sous-système (par exemple système subordonné). Lorsque le mode système standard est indiqué par le signal de sélection de mode 104 (par exemple un "0"), la mémoire cache 10 a 2 blocs par ligne. Lorsque le mode sous-système est indiqué par le signal de sélection de mode 104 (par exemple un "1"), la mémoire cache 10 a 1 bloc par ligne. Comme indiqué précédemment, le signal de sélection de mode 104 est envoyé depuis l'interface 200. L'interface 200 peut avoir un registre qui garde en mémoire le signal de sélection de mode. Un comparateur 160 compare une étiquette mise en mémoire dans le réseau d'adresses 130 à une étiquette 111 du registre d'adresse 110. Un "cache HIT" dans le premier bloc est indiqué lorsqu'une sortie d'une porte ET 190 est de "1". La porte ET 190 réalise une opération logique ET sur une sortie du comparateur 160, une sortie du registre de bits valables 140 et une sortie d'une porte NON-ET 180. La porte NON-ET 180 fait une non-conjonction logique (par exemple une opération logique NON-ET) entre le signal de sélection de mode et une sortie d'une porte OU exclusif 170. La porte OU exclusif 170 réalise une opération OU exclusif entre la commande de bloc 113 et une sortie du registre 150. Ainsi, la porte OU exclusif 170 fonctionne comme un comparateur d'1 bit. Un "cache HIT" dans le second bloc est indiqué lorsqu'une sortie d'une porte ET 191 est de "1". La porte ET 191 réalise une opération de conjonction logique ET entre une sortie du comparateur 160 et la sortie du registre 150. Le sélecteur 120, le registre 150, la porte OU exclusif 170, la porte NON-ET 180 et les portes ET 190 et 191 forment un contrôleur de bloc pour contrôler les bits valables (V1) pour le second bloc, ainsi qu'une partie d'une étiquette d'adressage (AA). Pour être bref, des signaux de commande détaillés (par exemple un signal de commande d'écriture ou de lecture) sont omis. En supposant que la mémoire de données 30 soit une mémoire de 256 Ko et de 512 Ko, et qu'une taille de bloc fasse 64 octets par exemple, l'étiquette 111 fera 13 bits de long, l'index 112 fera 12 bits de long, la commande de bloc 113 fera 1 bit de long et le décalage de bloc fera 6 bits de long. Une largeur du réseau d'adresses 130 fera ensuite 13 bits de long. Chaque largeur des registres 140 et 150 fera 1 bit de long. Si nous nous référons à la Fig. 6 et comme mentionné ci-dessus, le signal de sélection de mode 104 indique un mode du système. Par exemple, si le signal de sélection de mode 104 est de "0", le système informatique est en mode système standard. Si le signal de sélection de mode 104 est de "1", le système informatique est dans un mode sous-système. Lorsque le système informatique est en mode système standard, le sélecteur 120 sélectionne le bit valable (V1) 103 parce que le registre 150 met en mémoire les bits valables (V1). Lorsque le système informatique est en mode soussystème, le sélecteur 120 sélectionne la commande de bloc 113 parce que le registre 150 met en mémoire une partie de l'étiquette d'adressage (AA). La sortie de la porte NON-ET 180 est de "1" à chaque fois que le système informatique est en mode système standard (par exemple quand le signal de sélection de mode 104 est de "0"). Ainsi, une sortie de la porte ET 190 ne dépend, en mode standard, ni de la commande de bloc 113 ni du contenu du registre 150. D'un autre côté, lorsque le système informatique est en mode sous-système (par exemple quand le signal de sélection de mode 104 est de "1"), la sortie de la porte NON-ET 180 est l'opposée de la sortie de la porte OU exclusif 170. Ainsi, la sortie de la porte NON-ET 180 est de "1" uniquement si une partie de l'étiquette d'adressage (AA) coïncide avec la commande de bloc 113. La sortie de la porte ET 190 peut donc indiquer "1" (par exemple un "cache HIT") s'il y a coïncidence en mode sous-système. En nous référant à la Fig. 7, une combinaison de la porte OU exclusif 170 et de la porte NON-ET 180 fonctionne comme une combinaison d'un comparateur de 1 bit et d'une porte OU. Une combinaison du comparateur 160 de N-bits, de la porte OU exclusif 170, de la porte NON-ET 180 et de la porte ET 190 fonctionne comme un comparateur de (N+1) bits, lorsque N est un nombre entier positif. De plus, si le signal de sélection de mode 104 est de "0", une sortie du comparateur de (N+1) bits est toujours de "1" du fait de la fonction de de porte OU. En nous référant aux Fig. 5 et 6, nous allons décrire ci-dessous le fonctionnement du dispositif de contrôle de mémoire cache conforme au premier mode de réalisation de la présente invention et mentionné cidessus. Nous décrirons, dans le premier point ci-dessous, une opération d'enregistrement du réseau d'adresses 130 en mode système standard. Une demande d'adresse envoyée depuis le processeur 50 via l'interface 200 est mise en mémoire dans le registre d'adresse 110. Dans le cycle suivant (par exemple le cycle machine), l'étiquette 111 du registre d'adresse 110 est écrite au niveau du réseau d'adresses 130. A ce moment-là, l'index 112 du registre d'adresse 110 est utilisé comme adresse d'écriture pour le réseau d'adresses 130. Dans le même temps, le bit valable (VO) 102 est écrit dans l'adresse du registre 140. La valeur du bit valable (VO) 102 passe à "1" lorsque le premier bloc devant être enregistré est valable, et passe à "0" lorsque le premier bloc devant être enregistré n'est pas valable. Comme on le voit sur la Fig. 6, comme la sortie du sélecteur 120 correspond dans ce cas à un bit valable (V1), le bit valable (V1) est écrit dans le registre 150. De la même façon que la valeur du bit valable (VO), la valeur de ce bit valable (V1) passe à "1" lorsque le second bloc devant être enregistré est valable, et passe à "0" lorsque le second bloc devant être enregistré n'est pas valable. L'index 112 est transmis comme adresse d'écriture à la mémoire de données 30. En ce qui concerne la commande de bloc 113, lorsque cette sélection de bloc est de "0", elle indique l'opération d'écriture vers le premier bloc, tandis que lorsque cette sélection de bloc passe à "1", elle indique l'opération d'écriture vers le second bloc. L'opération d'enregistrement vers le réseau d'adresses 130 est terminée à ce moment-là. Nous décrirons, dans le second point ci-dessous, une opération de récupération du réseau d'adresses 130 en mode système standard. De la même façon que l'opération d'enregistrement dans le réseau d'adresses 130, la demande d'adresse envoyée en premier est mise en mémoire dans le registre d'adresse 110. Dans le cycle suivant, l'index 112 est utilisé comme adresse de lecture pour le réseau d'adresses 130, le registre 140 et le registre 150. Le comparateur 160 compare l'étiquette 111 à l'étiquette du réseau d'adresses 130 et génère un "1" lorsqu'une coïncidence se produit, tandis qu'il génère un "0" s'il n'y a pas de coïncidence. Comme on le voit sur la Fig. 6, dans ce cas, comme la porte NON-ET 180 génère un "1" en continu, la porte ET 190 génère la même valeur que la sortie du comparateur 160 comme signal "cache HIT" du premier bloc lorsque la valeur du bit valable (VO) est de "1" (quand le bloc requis est enregistré, par exemple) Lorsque la valeur du bit valable (VO) est de "0" (quand le bloc requis n'est pas enregistré, par exemple), la sortie de la porte ET 190 passe à "0" en continu (par exemple un "cache MISS" ) . De la même façon, la porte ET 191 génère la même valeur que la sortie du comparateur 160 lorsque la valeur du bit valable (V1) est de "1", et génère "0" en continu lorsque la valeur du bit valable (V1) est de "O" . L'index 112 est généré comme une adresse utilisée pour indexer la mémoire de données 30. Lorsque la commande de bloc 113 est de "0", cette valeur indique l'opération de lecture du premier bloc. Lorsque cette valeur est de "1", elle indique l'opération de lecture du second bloc. Nous décrirons, dans le troisième point ci-dessous, une opération d'enregistrement du réseau d'adresses 130 en mode sous-système. De la même façon que les opérations précédentes, la demande d'adresse est enregistrée dans le registre d'adresse 110. Dans le cycle suivant, l'étiquette 111 est écrite dans le réseau d'adresses 130 et le bit valable (VO) 102 est écrit dans le registre 140. Si nous nous référons maintenant à la Fig. 6, dans ce cas, comme le sélecteur 120 génère l'étiquette 111, la sortie du sélecteur 120 est écrite dans le registre 150. L'index 112 est fourni pour la mémoire de données 30. Nous décrirons, dans le quatrième point ci-dessous, une opération de récupération du réseau d'adresses 130 en mode sous-système. De la même façon que l'opération précédente, dans un cycle suivant le cycle dans lequel la demande d'adresse est enregistrée dans le registre d'adresse 110, le réseau d'adresses 130, le registre 140 et le registre 150 sont indexés par l'index 112. Comme on le voit sur la Fig. 6, un résultat comparatif entre la commande de bloc 113 et le bit valable (V1) du registre 150 est généré comme la sortie de la porte NON-ET 180. La sortie de la porte NON-ET 180 passe à "1" lorsque le résultat comparatif est "coïncident", tandis que la sortie de la porte NON-ET 180 est de "0" lorsque le résultat comparatif "n'est pas coïncident". Le circuit de porte ET 190 met en conjonction logique la sortie du comparateur 160 et la sortie de la porte NON-ET 180, pour générer ainsi le signal de porte ET comme un signal "cache HIT" lorsque la valeur du bit valable (VO) est de "1". A ce moment-là, un signal "cache HIT" du second bloc généré par la porte ET 191 est inutilisé. L'index 112 est fourni pour la mémoire de données 30. Dans le mode de réalisation décrit ci-dessus, une mémoire cache a un réseau d'adresses (par exemple, une "mémoire cache à mappage direct") . La présente invention peut toutefois être appliquée à d'autres types de mémoires caches (par exemple, une "mémoire cache associative par ensemble" ou une "mémoire cache totalement associative") . Par exemple, une mémoire cache associative par ensemble à deux voies peut avoir deux ensembles de réseau d'adresses 130, de registre 140, de registre 150, de comparateur 160, de sélecteur 120, ainsi que des portes logiques 170, 180, 190 et 191. Comme on peut le voir d'après la description précédente, conformément à la présente invention, comme le registre 150 est utilisé pour garder en mémoire des bits valables du second bloc en mode système standard, ainsi que pour garder en mémoire une partie de l'étiquette d'adressage en mode sous-système, un certain nombre de blocs dans une ligne d'une mémoire de données d'une mémoire cache sont sélectionnables sans gâchis de zones de mémoire. Bien que l'invention ait été décrite dans les termes d'un mode de réalisation préféré, les hommes de l'art reconnaîtront que l'invention peut être mise en pratique, en la modifiant, dans le respect de l'esprit et de la portée des revendications jointes. REVENDICATIONS 1. Dispositif de contrôle de mémoire cache conçu pour une mémoire cache (10) comportant une mémoire de données (30), caractérisé en ce qu'il comprend des moyens pour rechercher une ligne dans ladite mémoire cache (10), ladite ligne ayant une pluralité de blocs des moyens pour indiquer la validité d'un premier bloc dans la ligne recherchée par lesdits moyens de recherche ; et des moyens pour indiquer la validité d'un second bloc dans la ligne cherchée par lesdits moyens de recherche, et pour rechercher de façon complémentaire la ligne dans ladite mémoire cache (10). 2. Dispositif de contrôle de mémoire cache conçu pour une mémoire cache (10) comportant une mémoire de données (30), caractérisé en ce qu'il comprend un réseau d'adresses (130) pour mettre une étiquette d'adressage (111) en mémoire un comparateur (160) pour comparer une première partie d'une adresse demandée à l'étiquette d'adressage (111) gardée en némoire dans ledit réseau d'adresses (130) ; un registre valable pour mettre en mémoire un premier bit valable correspondant à l'étiquette d'adressage (111) mise en mémoire dans ledit réseau d'adresses (130) ; et un contrôleur de bloc pour mettre en mémoire l'un des seconds bits valables si ladite mémoire cache (10) est dans un premier mode et une partie supplémentaire de l'étiquette d'adressage (111) si ladite mémoire cache (10) est dans un second mode, et pour comparer la partie supplémentaire de l'étiquette d'adressage (111) à une seconde partie de l'adresse demandée. 3. Dispositif de contrôle de mémoire cache selon la revendication 2, caractérisé en ce que ladite adresse demandée comprend une étiquette (111) devant être comparée par ledit comparateur (160), comme ladite première partie de ladite adresse demandée un index (112) pour indexer ledit réseau d'adresses (130) et ledit registre valable un décalage de bloc (114) pour sélectionner les données dans ladite mémoire de données (30) ; et une commande de bloc (113) qui soit utilisée comme l'une des parties supplémentaires du décalage de bloc (114), si ladite mémoire cache (10) est en premier mode, et une partie supplémentaire de l'étiquette (111), comme ladite seconde partie de l'adresse demandée, si ladite mémoire cache (10) est en second mode. 4. Dispositif de contrôle de mémoire cache selon la revendication 3, caractérisé en ce que ladite commande de bloc (113) comprend un sélecteur (120) pour sélectionner l'un des seconds bits valables, si ladite mémoire cache (10) est en premier mode et la partie supplémentaire de l'étiquette d'adressage (111) si ladite mémoire cache (10) est en second mode. 5. Dispositif de contrôle de mémoire cache selon la revendication 4, caractérisé en ce que ladite commande de bloc (113) comprend un second comparateur afin de comparer la partie supplémentaire de l'étiquette d'adressage (111) à ladite seconde partie de l'adresse demandée. 6. Dispositif de contrôle de mémoire cache selon la revendication 5, caractérisé en ce que ladite commande de bloc (113) comprend une pluralité de circuits convergeants afin de générer un signal actif si ladite mémoire cache (10) est en premier mode et une sortie dudit second comparateur si ladite mémoire cache (10) est en second mode. 7. Dispositif de contrôle de mémoire cache selon la revendication 5, caractérisé en ce que ladite commande de bloc (113) comprend un registre à double fonction afin de garder en mémoire l'un des seconds bits valables si ladite mémoire cache (10) est en premier mode, et la partie supplémentaire de l'étiquette d'adressage (111) si ladite mémoire cache (10) est en second mode. 8. Dispositif de contrôle de mémoire cache selon la revendication 4, caractérisé en ce que ladite commande de bloc (113) comprend un registre à double fonction afin de garder en mémoire l'un des seconds bits valables si ladite mémoire cache (10) est en premier mode, et la partie supplémentaire de l'étiquette d'adressage (111) si ladite mémoire cache (10) est en second mode. 9. Dispositif de contrôle de mémoire cache selon la revendication 2, caractérisé en ce que ladite commande de bloc (113) comporte un second comparateur afin de comparer la partie supplémentaire de l'étiquette d'adressage (111) avec ladite seconde partie de l'adresse demandée. 10. Dispositif de contrôle de mémoire cache selon la revendication 9, caractérisé en ce que ladite commande de bloc (113) comprend une pluralité de circuits convergents afin de générer un signal actif si ladite mémoire cache (10) est en premier mode, et une sortie dudit second comparateur si ladite mémoire cache (10) est en second mode. 11. Dispositif de contrôle de mémoire cache selon la revendication 9, caractérisé en ce que ladite adresse demandée comprend une étiquette (111) pour qu'elle soit comparée par ledit comparateur (160), comme ladite première partie de ladite adresse demandée un index (112) pour l'indexation dudit réseau d'adresses (130) et dudit registre valable un décalage de bloc (114) pour sélectionner les données dans ladite mémoire de données (30); et une commande de bloc (113) pour qu'elle soit utilisée comme l'une des parties supplémentaires du décalage de bloc (113), si ladite mémoire cache (10) est en premier mode, et une partie supplémentaire de l'étiquette (111) comme ladite seconde partie de l'adresse demandée, si ladite mémoire cache (10) est en second mode. 12. Dispositif de contrôle de mémoire cache selon la revendication 11, caractérisé en ce que ladite commande de bloc (113) comprend un sélecteur (120) afin de sélectionner l'un des seconds bits valables si ladite mémoire cache (10) est en premier mode, et la partie supplémentaire de l'étiquette d'adressage (111) si ladite mémoire cache (10) est en second mode. 13. Dispositif de contrôle de mémoire cache selon la revendication 2, caractérisé en ce que ladite commande de bloc (113) comprend un registre à double fonction afin de garder en mémoire l'un des seconds bits valables si ladite mémoire cache (10) est en premier mode et la partie supplémentaire de l'étiquette d'adressage (111) si ladite mémoire cache (10) est en second mode. 14. Dispositif de contrôle de mémoire cache selon la revendication 2, caractérisé en ce que ladite commande de bloc (113) comprend une pluralité de circuits de sortie afin de générer un signal qui indique si une donnée de l'adresse demandée est dans la mémoire cache (10). 15. Dispositif de contrôle de mémoire cache selon la revendication 2, caractérisé en ce que ladite mémoire cache (10) comprend une mémoire cache à mappage direct. 16. Dispositif de contrôle de mémoire cache selon la revendication 2, caractérisé en ce que ledit réseau d'adresses (130) et ledit registre valable comprennent une pluralité de mots. 17. Dispositif de contrôle de mémoire cache selon la revendication 7, caractérisé en ce que ledit réseau d'adresses (130), ledit registre valable et ledit registre à double fonction comprennent une pluralité de mots. 18. Dispositif de contrôle de mémoire cache selon la revendication 2, caractérisé en ce que ladite mémoire cache (10) comprend une mémoire cache associative par ensemble. 19. Dispositif de contrôle de mémoire cache selon la revendication 2, caractérisé en ce qu'il comprend en outre une pluralité desdites zones d'adresse (111), une pluralité desdits comparateurs (160) et une pluralité desdits registres valables. 20. Dispositif de contrôle de mémoire cache selon la revendication 2, caractérisé en ce que ladite mémoire cache (10) comprend une mémoire cache totalement associative. 21. Dispositif de contrôle de mémoire cache selon la revendication 19, caractérisé en ce que ledit réseau d'adresses (111), ledit registre valable et ledit registre à double fonction comprennent un mot seulement.