FR2619641A1 - Dispositif de cache hierarchique - Google Patents
Dispositif de cache hierarchique Download PDFInfo
- Publication number
- FR2619641A1 FR2619641A1 FR8811094A FR8811094A FR2619641A1 FR 2619641 A1 FR2619641 A1 FR 2619641A1 FR 8811094 A FR8811094 A FR 8811094A FR 8811094 A FR8811094 A FR 8811094A FR 2619641 A1 FR2619641 A1 FR 2619641A1
- Authority
- FR
- France
- Prior art keywords
- data
- cache
- directory
- address
- coming
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1063—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
L'invention concerne un dispositif de cache hiérarchique pour l'utilisation dans des systèmes de traitement de l'information, afin d'éviter que le cycle machine soit un goulot d'étranglement pour l'accès au cache et de réduire le temps d'accès au premier cache et de ce fait faciliter l'accroissement de performance du système. Ce dispositif fait appel à des premiers caches 18 pour la gestion d'adresse de faible capacité, valable pour le cycle machine à haute vitesse et s'effectuant dans le processeur et à des seconds caches 19 pour la gestion des adresses réelles de grande capacité.
Description
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.
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.
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.
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 < P2DA) 12 en réponse au résultat de la comparaison effectuée par le circuit comparateur 41. La forme de réalisation comprend en outre une porte 33 pour détecter un défaut afin de trouver chaque défaut identifié par le circuit comparateur 31 et effectuer une recherche de défaut (absence) dans le premier répertoire 3; une bascule (F/F)(CIH) 20 de détection d'absence dans le premier cache positionnée par la sortie de la porte 33; une porte 35 pour détecter un défaut afin de trouver chaque défaut identifié par le circuit comparateur (P2EQ) 41 et déterminant si la recherche effectuée dans le second répertoire 11 concluait à une absence ou non; un registre de données 8 pour mettre en mémoire une donnée venant du sélecteur 32; un circuit comparateur 37 pour comparer la donnée venant du registre de donnée 8 et la donnée venant du sélecteur 36; une porte 44 pour détecter la validité de la donnée recherchée dans le premier cache lorsque d'un signal venant de la bascule F/F 20 détecte qu'il n'y a pas d'absence dans le premier cache et le résultat de la comparaison effectuée par le circuit comparateur 37 indique l'identité; une bascule (F/F) 21 pour reporter la sortie de la porte 44 à l'origine de la demande; une porte 39 pour détecter toute absence dans le premier et le second cache; une bascule (F/F) 23 sollicitant l'extraction à partir d'une unité de mémoire centrale (MMU) ( non représentée ) en réponse à la détection effectuée par la porte 39; une porte 42 pour détecter qu'il n'y a pas absence dans le second cache au moment de l'absence dans le premier cache; une porte 38 pour détecter le manque du circuit comparateur 37 à trouver l'identité au moment de la présence dans le premier et le second cache; une bascule (F/F) 22, positionnée en réponse à la détection par la porte 42 ou par la porte 38, pour invalider la donnée cherchée dans le premier cache et indiqer la validité de la donnée située dans le second cache; un circuit de contrôle 17 pour contrôler les transfert de données dans l'unité de mémoire centrale MMU (non représentée ), les premiers caches 3 et 4, les seconds caches 11 et 12 en réponse aux demandes des bascules
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.
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 < P2DA) 12 en réponse au résultat de la comparaison effectuée par le circuit comparateur 41. La forme de réalisation comprend en outre une porte 33 pour détecter un défaut afin de trouver chaque défaut identifié par le circuit comparateur 31 et effectuer une recherche de défaut (absence) dans le premier répertoire 3; une bascule (F/F)(CIH) 20 de détection d'absence dans le premier cache positionnée par la sortie de la porte 33; une porte 35 pour détecter un défaut afin de trouver chaque défaut identifié par le circuit comparateur (P2EQ) 41 et déterminant si la recherche effectuée dans le second répertoire 11 concluait à une absence ou non; un registre de données 8 pour mettre en mémoire une donnée venant du sélecteur 32; un circuit comparateur 37 pour comparer la donnée venant du registre de donnée 8 et la donnée venant du sélecteur 36; une porte 44 pour détecter la validité de la donnée recherchée dans le premier cache lorsque d'un signal venant de la bascule F/F 20 détecte qu'il n'y a pas d'absence dans le premier cache et le résultat de la comparaison effectuée par le circuit comparateur 37 indique l'identité; une bascule (F/F) 21 pour reporter la sortie de la porte 44 à l'origine de la demande; une porte 39 pour détecter toute absence dans le premier et le second cache; une bascule (F/F) 23 sollicitant l'extraction à partir d'une unité de mémoire centrale (MMU) ( non représentée ) en réponse à la détection effectuée par la porte 39; une porte 42 pour détecter qu'il n'y a pas absence dans le second cache au moment de l'absence dans le premier cache; une porte 38 pour détecter le manque du circuit comparateur 37 à trouver l'identité au moment de la présence dans le premier et le second cache; une bascule (F/F) 22, positionnée en réponse à la détection par la porte 42 ou par la porte 38, pour invalider la donnée cherchée dans le premier cache et indiqer la validité de la donnée située dans le second cache; un circuit de contrôle 17 pour contrôler les transfert de données dans l'unité de mémoire centrale MMU (non représentée ), les premiers caches 3 et 4, les seconds caches 11 et 12 en réponse aux demandes des bascules
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.
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.
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.
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.
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.
Claims (2)
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.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62207382A JP2629727B2 (ja) | 1987-08-22 | 1987-08-22 | 階層化キャッシュ装置 |
JP62207381A JP2629726B2 (ja) | 1987-08-22 | 1987-08-22 | 階層化キャッシュ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2619641A1 true FR2619641A1 (fr) | 1989-02-24 |
FR2619641B1 FR2619641B1 (fr) | 1992-05-07 |
Family
ID=26516216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR888811094A Expired - Fee Related FR2619641B1 (fr) | 1987-08-22 | 1988-08-22 | Dispositif de cache hierarchique |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2619641B1 (fr) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11586561B2 (en) * | 2018-08-10 | 2023-02-21 | Micron Technology, Inc. | Data validity tracking in a non-volatile memory |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0170525A2 (fr) * | 1984-07-31 | 1986-02-05 | Texas Instruments Incorporated | Projet de hiérarchie d'antémémoires à utiliser dans une unité de gestion de mémoire |
EP0180369A2 (fr) * | 1984-10-31 | 1986-05-07 | Texas Instruments Incorporated | Antémémoire adressable par les deux adresses physiques et virtuelles |
-
1988
- 1988-08-22 FR FR888811094A patent/FR2619641B1/fr not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0170525A2 (fr) * | 1984-07-31 | 1986-02-05 | Texas Instruments Incorporated | Projet de hiérarchie d'antémémoires à utiliser dans une unité de gestion de mémoire |
EP0180369A2 (fr) * | 1984-10-31 | 1986-05-07 | Texas Instruments Incorporated | Antémémoire adressable par les deux adresses physiques et virtuelles |
Non-Patent Citations (1)
Title |
---|
IBM TECHNICAL DISCLOSURE BULLETIN, vol. 21, no. 6, novembre 1978, pages 2468-2469, New York, US; F.J. SPARACIO: "Data processing with second level cache" * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11586561B2 (en) * | 2018-08-10 | 2023-02-21 | Micron Technology, Inc. | Data validity tracking in a non-volatile memory |
Also Published As
Publication number | Publication date |
---|---|
FR2619641B1 (fr) | 1992-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2497374A1 (fr) | Machine informatique pour traitement multitache | |
FR2624994A1 (fr) | Systeme de commande de registre intermediaire de traduction | |
FR2621407A1 (fr) | Systeme de reaffectation des adresses et de purge des blocs d'antememoire pour station de travail a antememoire a adressage virtuel et a reinscription | |
TW201723858A (zh) | 用於操作虛擬索引化之實體帶標快取記憶體的裝置及方法 | |
FR2938358A1 (fr) | Interface de memoire securisee | |
FR2609175A1 (fr) | Carte a circuits integres et systeme pour verifier le bon fonctionnement de la carte | |
US20070240021A1 (en) | Method, system and program product for autonomous error recovery for memory devices | |
FR2634919A1 (fr) | Interface de bus pour microprocesseur | |
FR2472232A1 (fr) | Dispositif et procede d'effacement d'antememoire | |
EP0519847B1 (fr) | Carte à mémoire de comptage de données et appareil de lecture | |
FR2754925A1 (fr) | Operation atomique sur memoire distante et dispositif permettant d'effectuer cette operation | |
US7685366B2 (en) | System and article of manufacture for storing data | |
FR2741464A1 (fr) | Dispositif et procede de correction d'anomalie pour un tableau d'adresse d'une memoire cache d'enregistrement | |
FR2682783A1 (fr) | Maintien de coherence de caches. | |
FR2619641A1 (fr) | Dispositif de cache hierarchique | |
FR2644260A1 (fr) | Dispositif de commande d'acces en memoire pouvant proceder a une commande simple | |
EP3611623B1 (fr) | Contrôleur mémoire comprenant deux buffers et un selecteur d'un mode de remplissage desdits buffers | |
FR2677147A1 (fr) | Dispositif de translation d'adresse capable d'obtenir en un temps plus bref une adresse reelle a partir d'une adresse virtuelle. | |
FR2609195A1 (fr) | Procede de gestion d'antememoires associees a des processeurs dans une architecture multiprocesseur a bus unique et systeme de traitement de donnees fonctionnant suivant ce procede | |
US6643736B1 (en) | Scratch pad memories | |
JPS60701B2 (ja) | デ−タ処理装置 | |
FR2513778A1 (fr) | Dispositif et procede d'informatique | |
EP0636984B1 (fr) | Procédé et dispositif de contrÔle des données dans un calculateur | |
JP2629727B2 (ja) | 階層化キャッシュ装置 | |
FR2733066A1 (fr) | Dispositif de controle de memoire cache |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |