Brevet FR2619641A1 — publié le 19890224

Dispositif de cache hiérarchique. Art antérieur L'invention concerne un dispositif de cache hiérarchique pour l'utilisation dans des systèmes de traitement de l'information. Un appareil de cache hiérarchique d'un art antérieur est divulgé sous forme de mémoire hiérarchique dans le brevet U.S. n0 4,078,254. Cet appareil est structuré de sorte à éviter une duplication de données entre les unités de mémoires cache qui sont hiérarchisées en vue de raccourcir les accès aux unités de mémoires cache dont les distances d'accès ont été accrues. Si l'on réalise un accès à une première mémoire cache et si la donnée désirée n'y est pas trouvée, on réalise l'accès à une deuxième mémoire cache. Si la donnée désirée est trouvée dans la deuxième mémoire cache, il n'y aura pas de tranfert de la seconde unité de mémoire cache à la première unité de mémoire cache. De ce fait, le temps nécessité pour copier la donnée en mémoire est réduit. Toutefois, il n'est pas fait mention des capacités de la première unité de mémoire cache et de la seconde mémoire cache.Il n'est pas non plus décrit de dispositif particulier destiné à réduire la capacité de la première unité de mémoire cache, qui est fréquemment utilisée. Usuellement, le temps d'accès de la première unité de mémoire cache qui est utilisée fréquemment est établie à la valeur du cycle machine, et il reste à résoudre le problème de l'augmentation de la probabilité de la présence d'une donnée désirée quelconque dans cette première mémoire cache, en réduisant son temps d'accès et en raccourcissant de ce fait le cycle machine. RESUME DE L'INVENTION L'objet de la présente invention est de ce fait de fournir un dispositif de mémoire hiérarchique exempt des inconvénients mentionnés ci-dessus. Selon un aspect de l'invention, on réalise un premier dispositif qui comprend : un premier moyen de cache comprenant un premier répertoire pour enregistrer de manière organisée la donnée enregistrée par son adresse logique; un deuxième moyen de cache comprenant un second répertoire pour enregistrer de manière organisée la donnée comprenant la même~donnée que la donnée enregistrée dans le premier moyen de cache à l'aide de l'adresse réelle; un moyen de détermination pour comparer la donnée du premier moyen de cache et la donnée du second moyen de cache et déterminer la validité de la donnée venant du premier moyen de cache; un moyen pour mettre en mémoire la donnée venant du second moyen de cache dans. le premier moyen de cache si le moyen de détermination détermine que la donnée n'est pas valable et rechercher sa présence dans le premier et le second moyen de cache ou chercher son absence dans le premier moyen de cache et sa présence dans le second moyen de cache; et un moyen pour obtenir une donnée à partir d'une unité de mémoire principale lorsqu'il cherche en constatant son absence dans le premier et dans le second moyen de cache. Un second dispositif selon l'invention comprend un premier moyen de cache comprenant un premier répertoire pour enregistrer de manière organisée une donnée par son adresse logique; un second moyen de cache comprenant un deuxième répertoire pour enregistrer de manière organisée la donnée comprenant la même donnée que la donnée enregistrée par son adresse réelle; un troisième répertoire pour organiser selon l'adresse logique la donnée enregistrée dans le second moyen de cache; un moyen pour mettre en mémoire la donnée provenant du second moyen de cache dans le premier moyen de cache si on constate son absence dans le troisième répertoire et que l'on constate sa présence dans le premier et le second répertoire ou si l'on constate son absence dans le premier répertoire et sa présence dans le second répertoire; et un moyen pour obtenir une donnée à partir d'une unité de mémoire principale lorsque l'on constate son absence dans le premier et dans le second répertoire. DESCRIPTION DES DESSINS Les objets, caractéristiques et avantages de la présente invention apparaîtront mieux à la lumière de la description suivante, à l'aide des dessins ci-joints dans lesquels La Fig. 1 représente un schéma illustrant une première forme de réalisation préférée de l'invention et le Fig. 2 représente un schéma illustrant une seconde forme de réalisation préférée de l'invention. Des références identiques ont été utilisées dans les figures pour repérer des éléments structurels identiques. DESCRIPTION DETAILLEE DES FORMES DE REALISATION PREFEREES En se reportant à la Fig. 1, une première forme de réalisation préférée de la présente invention comprend un registre d'adresses logiques (LAR) 1 pour mettre en mémoire la demande d'adresses logiques venant de l'origine de la demande, tel qu'une section opérationelle arithmétique; un tampon de traduction d'adresse (TLB) 2 pour traduire une adresse logique venant du registre d'adresse logique 1 en une adresse réelle; et un premier moyen de cache 18.Le premier moyen de cache 18 possède un premier répertoire (L1AA) 3 pour mettre en mémoire une adresse logique enregistrée en réponse à une adresse de bloc logique en reliant les bits supérieurs de l'adresse de page logique ( Section P ) et les bits supérieurs de l'adresse relative dans une page réelle (Section L) du registre d'adresse logique (LAR1); une première zone de données (L1 DA) 4 pour mettre en mémoire la donnée correspondant aux adresses logiques mises en mémoire dans le premier répertoire (L1AA) 3; un circuit comparateur 31 pour comparer les bits supérieurs de l'adresse venant du premier répertoire (L1AA) 3 et de l'adresse logique venant du premier répertoire (L1AA) 3 et de l'adresse logique venant du registre d'adresse logique (LAR) 1; et un sélecteur 32 pour sélectionner la donnée venant de la première zone de donnée (L1DA)4 en réponse au résultat de la comparaison effectuée par le circuit comparateur 31. La forme de réalisation comprend en outre un circuit comparateur 30 pour comparer les bits supérieurs de l'adresse logique du tampon de traduction d'adresse (TLB) 2 et d'une adresse venant du registre d'adresse logique (LAR1), et déterminer dans laquelle de deux lignes situées dans le tampon de traduction d'adresse 2 existe le résultat de la traduction d'adresse; un sélecteur 45 pour sélectionner l'adresse réelle des deux lignes dans le tampon de traduction d'adresse 2 en réponse au résultat de la comparaison effectuée par le circuit comparateur 30; un registre d'adresse réelle (PAR) 7 pourmettre en mémoire le résultat de la sélection effectuée par le sélecteur 45 et une adresse relative dans une page réelle ( section L ) dans le registre d'adresse logique 1 et un second moyen de cache 19. Le second moyen de cache 19 possède un second répertoire Il pour enregistrer et extraire les bits supérieurs de l'adresse réelle en réponse aux bits inférieurs de l'adresse réelle venant du registre d'adresse réelle (PAR) 7; un circuit comparateur 41 pour comparer une adresse venant du second répertoire 11 et une adresse venant du registre d'adresse réelle 7; une seconde zone de données (P2DA) 12 pour mettre en mémoire la donnée correspondant à l'adresse réelle dans le second répertoire 11; et un sélecteur 36 pour sélectionner la donnée venant de la second zone de donnée F/F 22 et 23 et de l'unité de mémoire centrale MMU; un sélecteur 46^pour sélectionner soit le résultat de la sélection effectuée par le sélecteur 36, soit la donnée venant de l'unité de mémoire centrale MMU ( non représentée ) en réponse à une instruction venant du circuit de contrôle 17; un registre 14 pour mettre en mémoire le résultat de la sélection effectuée par le sélecteur 46; un registre 5 pour mettre en mémoire la donnée venant du registre 14 de sorte à mettre en mémoire la donnée dans la première zone de donnée 4; un sélecteur 47 pour sélectionner la donnée venant soit du registre 14 soit du registre 8 en réponse à une instruction du circuit de contrôle 17; un circuit d'alignement de donnée 16 pour aligner la donnée venant du sélecteur 47; et un registre de donnée 15 pour mettre en mémoire la donnée alignée par le circuit d'alignement de donnée 16. Décrivons en détail le fonctionnement de la première forme de réalisation de la présente invention. En se référant à la Fig. 1, une demande d'adresse logique d'accès de cache venant de la section opérationnelle arithmétique ( non représentée ) de l'origine de la demande est mise en mémoire dans le registre d'adresse logique 1. L'adresse mise en mémoire dans le registre 1 arrive en parallèle au tampon de traduction d'adresse 2, au premier répertoire 3 et à la première zone de donnée 4. Dans cette forme de réalisation, le tampon de traduction d'adresse 2 consiste en deux lignes, et le premier répertoire 3 et la zone de donnée 4 comprennent chacun quatre lignes. Le circuit comparateur 30 détermine si le résultat de la traduction d'adresse est présent sur la ligne 0 ou la ligne 1 du tampon de traduction d'adresse 2.Le registre d'adresse réelle (PAR) 7 met en mémoire l'adresse de page réelle après la traduction d'adresse effectuée par le cache de traduction d'adresse 2 et l'adresse relative dans la page réelle du registre d'adresse logique 1 (L). Le premier répertoire (L1AA) 3 fournit le contenu des quatre lignes de niveau 0 à 3 en réponse à l'adresse de bloc logique en reliant les bis inférieurs de l'adresse de bloc logique (P) et les bits supérieurs de l'adresse relative dans la page réelle (L) du registre d'adresse logique 1. Le circuit comparateur 31 compare la sortie venant du premier répertoire 3 et les bits supérieurs de l'adresse venant du registre d'adresse logique 1, et fournit un signal d'identité à l'une des sorties de ligne si la donnée désirée est présente dans la première zone de donnée 4. Décrivons ci-après en détail le fonctionnement s'opérant en réponse à la recherche dans l'adresse de bloc logique du registre d'adresse logique 1, en absence de la donnée désirée dans la première zone de donnée 4. En réponse à une adresse réelle venant du registre d'adresse réelle 7, le second répertoire 11 extrait les contenus des quatre lignes, 0 à 3. Le circuit comparateur 41 compare la sortie du second répertoire 11 et les bits supérieurs de l'adresse de page réelle. Le fonctionnement suivant va avoir lieu, en réponse à un signal d'identité venant du circuit comparateur 41. Le signal indiquant l'identité entre données comparées est délivré à la porte ET 42, en passant par la porte 35. La porte ET 42 prend le produit logique formé entre le signal d'identité venant de la porte 35 et le signal de détection d'absence de premier cache venant de la bascule F/F 20, et ce produit logique positionne la bascule F/F 22 en passant par la porte 43. La bascule F/F 22 une fois positionnée invalide la première donnée de la recherche dans le premier cache et indique la validité de la donnée de la recherche dans le second cache.En réponse au signal venant de la bascule F/F 22, le circuit de contrôle (MAC) 17 envoie un signal d'instruction de sélection au sélecteur 46 qui, en réponse à ce signal d'instruction de sélection, sélectionne et met en mémoire dans le registre 14 la donnée fournie par la seconde zone de donnée 12, en passant par le sélecteur 36. La sortie du registre 14 est appliquée dans le registre d'écriture 5 pour la première zone de donnée 4 et, après avoir été alignée par le circuit d'alignement de donnée 16 en passant par le sélecteur 47, la donnée est transférée à l'origine de la demande, an passant par le registre 15. Décrivons maintenant le fonctionnement ayant lieu lorsque le circuit comparateur 41 ne trouve pas qu'il y a identité dans le résultat de la comparaison, par exemple dans l'éventualité d'une absence dans le second cache. Si le circuit comparateur 41 ne trouve pas d'identité entre chaque paire de données comparées, le signal indiquant l'absence d'identité est appliqué à la porte 39 en passant par la porte 35.La porte ET 39 prend le produit logique entre le signal venant de la porte 35 et celui de la bascule F/F 20 et positionne la bascule F/F 23. En réponse au signal venant de la bascule F/F 23, le circuit de contrôle 17 sollicite le chargement d'une donnée dans l'unité de mémoire principale MMU (non représentée) . En réponse à cette demande de chargement d'une donnée, l'unité de mémoire principale MMU ( non représentée ) extrait la donnée. La donnée lue est placée dans le registre 14 en passant par le sélecteur 46, et également dans le registre 9.La donnée placée dans le registre 14 est mise en mémoire dans la première zone de donnée 4, en passant par le registre 5, et est envoyée au même moment à l'origine de la demande, en passant par le sélecteur 47, le circuit d'alignement de donnée 16 et le registre de donnée 15; Décrivons maintenant le fonctionnement ayant lieu lorsque la recherche effectuée dans le premier répertoire 3 confirme une présence. Dans le cas où la recherche effectuée dans le premier répertoire 3 confirme une présence, le contenu de la première zone de donnée 4 peut ne pas être nécessairement validé pour les deux raisons suivantes. En premier lieu, étant donné que le premier répertoire 3 est organisé par adresse logique, le contenu du premier répertoire 3 et la première zone de données 4 sont traités sans être complètement remis à zéro si la correspondance entre les adresses logiques et les adresses lues est modifiée par le software. En second lieu, dans un système où différentes adresses logiques permettent une correspondance avec la même adresse réelle, la réflexion sur le premier répertoire 3 et la première zone de donnée 4 par mise en mémoire n'est uniquement possible que par une entrée unique d'adresse logique. Pour ces deux raisons, une validité à 100 % ne peut être assurée uniquement en considérant le premier répertoire 3. En conséquence, un traitement de confirmation est nécessaire au moyen du second cache, en gérant l'adresse réelle de grande capacité des premiers caches 3 et 4 exploitant les entrées de premier cache. Nous décrivons ci-après les détails du traitement de confirmation dans différents cas. Lorsque la recherche effectuée dans le second répertoire 11 constate une absence, le fonctionnement suivant a lieu Une constatation d'absence dans le second cache survient en réponse à un changement de la donnée enregistrée dans la première zone de donnée 4 correpondant aux adresses logiques enregistrées dans le premier répertoire 3. La donnée n'est pas non plus présente dans la seconde zone de donnée 12. Pour cette raison, comme dans le fonctionnement ayant lieu lorsque survient la constatation d'une absence dans le premier et dans le second cache, une demande de chargement de donnée -est effectuée auprès de l'unité de mémoire principale MMU (non représentée), et la donnée est enregistrée à nouveau dans les premier et second caches. Décrivons à présent le fonctionnement survenant lorsqu'unie recherche dans le second répertoire 11 constate une présence et que la première mémoire de donnée 4 et la seconde mémoire de donnée 12 ne sont pas identiques. Cet état indique que la mise en mémoire dans les premiers caches 3 et 4 n'est pas correctement renvoyée comme étant le résultat de l'enregistrement dans le second répertoire 11 d'une adresse réelle correspondant à une adresse logique qui est différente de l'adresse logique enregistrée dans le premier répertoire 3. De ce fait, comme l'opération qui s'effectue a lieu lorsqu'une recherche dans le premier répertoire constate une absence et qu'elle constate une présence dansle second répertoire, la donnée provenant de la seconde zone de donnée 12 est validée et enregistrée à nouveau dans les premiers caches 3 et 4. Ensuite lorsque qu'une recherche effectuée dans le second directoire 11 constate une présence et que les données extraites de la première mémoire 4 et de la seconde mémoire 12 sont constatées comme étant identiques, le fonctionnement est le suivant. Cet état indique que l'adresse logique enregistrée dans le premier répertoire 3 est identique à l'adresse logique correspondant à l'adresse réelle enregistree dans le second répertoire 4 et que la donnée provenant de la première zone de donnée 4 est valable. De ce fait, la bascule F/F 21 est positionnée et le fait qu'elle ait été positionnée est reporté à la section opérationnelle arithmétique ( non représentée ) qui est l'origine de la demande. Ensuite, une deuxième forme de réalisation de la présente invention est décrite en détail en se référant à la Fig. 2. En se référant à la Fig. 2, la seconde forme de réalisation de l'invention possède essentiellement la même structure que la première forme de réalisation. Le circuit comparateur 37 situé dans la première forme de réalisation est absent à la seconde, mais cette dernière possède les éléments suivants que le premier n'a pas. Un second registre d'adresse logique 6 est structuré de manière similaire au premier registre d'adresse logique 1, et les registres 7, 8 et 9 sont disposés au même niveau que la bascule F/F 20. Un troisième répertoire 10, organisé par adresse logique, est disposé au même niveau que le second répertoire 11 organisé par adresse réelle et que la seconde zone de donnée 12. Les contenus de quatre lignes, 0 à 3, sont extraits en réponse à une adresse de bloc logique reliant une partie de l'adresse de page logique (P) d'une adresse logique dans le second registre d'adresse logique 6 et une partie d'une adresse relative dans une page réelle (L). Un circuit comparateur 40 compare le contenu du troisème répertoire 10 et celui du second registre d'adresse logique 6. Si une recherche effectuée par le circuit comparateur 31 dans le premier répertoire 3 constate une présence, une recherche effectuée dans le troisième répertoire 10 par le circuit comparateur 40 constate une absence. Ceci peut survenir par exemple en tenant compte de la raison suivante. C 'est le cas si différentes adresses logiques A et B correspondent à la même adresse réelle C. Si l'unité de donnée a correspondant à l'adresse logique A est présente dans la première zone de donnée 4,1'unité de donnée a est extraite. Toutefois, si une unité de donnée ss correspondant à l'adresse logique B n'est pas mise en mémoire dans la seconde zone de donnée 12, l'unité de donnée ss est mise en mémoire z une position indiquée par l'adresse réelle C dans l'unité de mémoire principale MMU.A ce moment, il est nécessaire de mettre en mémoire l'unité de donnée ss dans la position indiquée par l'adresse logique B correspondant à l'adresse réelle C et au même moment de la mettre en mémoire dans la position indiquée par l'autre adresse logique A correspondant à l'adresse réelle C. Une porte 34 détecte le cas ou il y a présence, dans lequel au moins une paire de données sont considérées comme identiques dans la comparaison effectuée par la circuit comparateur 40 et détecte celui où il ne constate pas de présence, dans lequel aucune identité du tout n'est trouvée. Une porte 37 détecte le cas dans lequel toutes les recherches effectuées dans le premier, le secorid et le troisième répertoire 3, 11 et 10 ont détecté une présence, et entrainé le positionnement de la bascule F/F 21, dont le positionnement indique que la recherche effectuée dans le premier cache est valable. En conséquence, la bascule F/F 21 reporte la validité de la donnée issue de la recherche dans le premier cache à la section opérationnelle arithmétique (non représentée ), qui est l'origine de la demande. La porte 38 détecte le cas dans lequel les recherches effectuées dans le premier et dans le second répertoire 3 et 11 ont constaté une présence et où celle effectuée dans le troisième répertoire 10 n'a pas constaté de présence.Le résultat de la détection positionne la bascule F/F 22 en passant par la porte 43 dont le positionnement indique que la donnée trouvée lors de la recherche dans le premier cache n'est pas valable et la donnée du second cache est valable. Décrivons à présent le fonctionnement de la seconde forme de réalisation préférée de la présente invention. Le fonctionnement de la seconde forme de réalisation est essentiellement le même que celui de la première forme de réalisation, à l'exception du traitement de confirmation dans le cas où l'on constate une présence dans le premier cache. Pour cette confirmation également le fonctionnement qui a lieu dans le cas où l'on ne constate pas de présence dans le second répertoire 11 est le même que dans la première forme de réalisaiton. Si une recherche effectuée dans le second répertoire 11 constate une présence et qu'une recherche effectuée dans le troisième répertoire 10 ne constate pas de présence, ceci signifie qu'est mise en mémoire dans le troisième répertoire 10 une adresse logique différente de ce qui est mis en mémoire dans le premier répertoire 3. Pour cette raison, le fait de mettre en mémoire dans les premiers caches n'est pas correctement renvoyé. De ce fait, comme dans le fonctionnement ayant lieu lorsqu'une recherche effectuée dans le premier répertoire ne constate pas de présence et qu'une recherche effectuée dans le second répertoire constate une présence, la donnée provenant de la seconde zone de donnée 12 est validée et enregistrée de nouveau dans les premiers caches3et4. Ensuite, si les recherches effectuées dans le second et le troisième répertoire constatent tous les deux une présence, ceci signifie que les adresses logiques enregistrées dans le premier et dans le troisième répertoire 3 et 10 sont les mêmes et que la donnée provenant de la première zone de donnée 4 est valable. De ce fait, la bascule F/F 21 est positionnée et ce fait est reporté à la section opérationnelle arithmétique ( non représentée ) qui est l'origine de la demande. L'une des caractéristiques de la présente invention réside dans les structures de cache dans lesquelles sont hiérarchisées les premiers caches pour la gestion d'adresse de faible capacité, valable pour le cycle machine à haute vitesse s'effectuant dans le processeur, et les seconds caches pour la gestion des adresses réelles de grande capacité, tendant elle-même à accroître la probabilité de trouver une présence. Par cette caractéristique, la présente invention présente les avantages de ne pas permettre que le cycle machine du processeur soit un goulot d'étanglement pour l'accès au cache, de réduire le temps d'accès aux premiers caches et de ce fait de faciliter l'accroissement de performance du système. REVENDICATIONS 1. Dispositif de cache hiérarchique comprenant un premier moyen de cache comprenant un premier répertoire pour enregistrer de manière organisée la donnée enregistrée par son adresse logique; un deuxième moyen de cache comprenant un second répertoire pour enregistrer de manière organisée la donnée comprenant la même donnée que la donnée enregistrée dans le premier moyen de cache à l'aide de l'adresse réelle; un moyen de détermination pour comparer la donnée du premier moyen de cache et la donnée du second moyen de cache et déterminer la validité de la donnée venant du premier moyen de cache; un moyen pour mettre en mémoire la donnée venant du second moyen de cache dans le premier moyen de cache en réponse à la détermination de l'invalidité de la donnée venant du moyen de détermination. 2. Dispositif de cache hiérarchique comprenant un premier moyen de cache comprenant un premier moyen de répertoire pour enregistrer de manière organisée une donnée par son adresse logique; un second moyen de cache comprenant un deuxième répertoire pour enregistrer de manière organisée la donnée comprenant la même donnée que la donnée enregistrée par son adresse réelle; un troisième répertoire pour organiser selon l'adresse logique la donnée enregistrée dans le second moyen de cache; et un moyen pour mettre en mémoire la donnée provenant du second moyen de cache dans le premier moyen de cache si les adresses désirées sont présentes dans le premier et le second répertoire et si aucune adresse désirée n'est présente dans le troisième répertoire.