FR2733066A1 - Dispositif de controle de memoire cache - Google Patents

Dispositif de controle de memoire cache Download PDF

Info

Publication number
FR2733066A1
FR2733066A1 FR9604661A FR9604661A FR2733066A1 FR 2733066 A1 FR2733066 A1 FR 2733066A1 FR 9604661 A FR9604661 A FR 9604661A FR 9604661 A FR9604661 A FR 9604661A FR 2733066 A1 FR2733066 A1 FR 2733066A1
Authority
FR
France
Prior art keywords
cache memory
address
mode
control device
block
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
Application number
FR9604661A
Other languages
English (en)
Other versions
FR2733066B1 (fr
Inventor
Takahiro Tanioka
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of FR2733066A1 publication Critical patent/FR2733066A1/fr
Application granted granted Critical
Publication of FR2733066B1 publication Critical patent/FR2733066B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory

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

La présente invention concerne un dispositif de contrôle de mémoire cache (20), pour une mémoire cache (10) ayant une mémoire de données (30), qui comprend un réseau d'adresses, un registre des bits valables, un comparateur et un registre à double fonction. Le registre à double fonction garde en mémoire l'un des bits valables et une partie d'une étiquette d'adressage. Le dispositif de contrôle de mémoire cache (20) s'applique à la fois à un système standard ayant une pluralité de blocs par ligne et à un système subordonné ayant un seul bloc par ligne.

Description

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.

Claims (21)

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.
FR9604661A 1995-04-14 1996-04-15 Dispositif de controle de memoire cache Expired - Fee Related FR2733066B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7088918A JP2710580B2 (ja) 1995-04-14 1995-04-14 キャッシュメモリ装置

Publications (2)

Publication Number Publication Date
FR2733066A1 true FR2733066A1 (fr) 1996-10-18
FR2733066B1 FR2733066B1 (fr) 1998-05-07

Family

ID=13956309

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9604661A Expired - Fee Related FR2733066B1 (fr) 1995-04-14 1996-04-15 Dispositif de controle de memoire cache

Country Status (3)

Country Link
US (1) US5809535A (fr)
JP (1) JP2710580B2 (fr)
FR (1) FR2733066B1 (fr)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4073157B2 (ja) * 2000-08-21 2008-04-09 富士通株式会社 タグメモリのアクセス回数を制限したキャッシュシステム
US6754776B2 (en) * 2001-05-17 2004-06-22 Fujitsu Limited Method and system for logical partitioning of cache memory structures in a partitoned computer system
JP4669244B2 (ja) 2004-07-29 2011-04-13 富士通株式会社 キャッシュメモリ装置およびメモリ制御方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1981001894A1 (fr) * 1979-12-19 1981-07-09 Ncr Co Antememoire dans laquelle la dimension du bloc de donnees est variable
EP0448205A2 (fr) * 1990-03-23 1991-09-25 Advanced Micro Devices, Inc. Antémémoire à longueur de bloc reconfigurable

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5489444A (en) * 1977-12-27 1979-07-16 Fujitsu Ltd Associative memory processing system
JPS5712222A (en) * 1980-06-30 1982-01-22 Mitsubishi Electric Corp Cooker
KR950006590B1 (ko) * 1986-11-14 1995-06-19 가부시기가이샤 히다찌세이사꾸쇼 캐시 메모리를 갖는 마이크로 프로세서
JPH01280850A (ja) * 1988-05-06 1989-11-13 Hitachi Ltd キヤツシユ装置およびそれを用いた情報処理装置
JPH03147039A (ja) * 1989-11-01 1991-06-24 Hitachi Ltd データ処理システムのアドレス変換装置
US5367659A (en) * 1991-09-30 1994-11-22 Intel Corporation Tag initialization in a controller for two-way set associative cache
GB2275119B (en) * 1993-02-03 1997-05-14 Motorola Inc A cached processor
US5483644A (en) * 1993-04-15 1996-01-09 Vlsi Technology, Inc. Method for increasing cacheable address space in a second level cache

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1981001894A1 (fr) * 1979-12-19 1981-07-09 Ncr Co Antememoire dans laquelle la dimension du bloc de donnees est variable
EP0448205A2 (fr) * 1990-03-23 1991-09-25 Advanced Micro Devices, Inc. Antémémoire à longueur de bloc reconfigurable

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LEE Y S: "A SECONDARY CACHE CONTROLLER DESIGN FOR A HIGH-END MICROPROCESSOR", IEEE JOURNAL OF SOLID-STATE CIRCUITS, vol. 27, no. 8, 1 August 1992 (1992-08-01), pages 1141 - 1146, XP000309393 *

Also Published As

Publication number Publication date
US5809535A (en) 1998-09-15
JPH08286974A (ja) 1996-11-01
JP2710580B2 (ja) 1998-02-10
FR2733066B1 (fr) 1998-05-07

Similar Documents

Publication Publication Date Title
US10878052B2 (en) Blockchain-based cross-chain data operation method and apparatus
FR2474721A1 (fr) Dispositif de memoire d'antememoire
US20040250027A1 (en) Method and system for comparing multiple bytes of data to stored string segments
JP2020182214A (ja) ブロックチェーンおよびオフチェーン装置の連携のための検証システムおよび方法
FR2602070A1 (fr) Systeme et procede d'acces a une memoire d'ordinateur.
FR2602353A1 (fr) Repertoire et controle de cache
FR2820850A1 (fr) Controleur de coherence pour ensemble multiprocesseur, module et ensemble multiprocesseur a architecture multimodule integrant un tel controleur
FR2472233A1 (fr) Dispositif de commande de memoire pour systeme de traitement des donnees
FR2582829A1 (fr) Systeme de gestion de memoire d'ordinateur
FR2677472A1 (fr) Unite de controle pour memoire cache de second niveau.
FR2664719A1 (fr) Dispositif de controle pour une memoire tampon a partitionnement reconfigurable.
FR2528195A1 (fr) Systeme de communication entre ordinateurs
FR2733066A1 (fr) Dispositif de controle de memoire cache
US7685366B2 (en) System and article of manufacture for storing data
FR2644260A1 (fr) Dispositif de commande d'acces en memoire pouvant proceder a une commande simple
US7139690B2 (en) Object-level conflict detection in an object-relational database system
FR2590699A1 (fr) Systeme assurant la coherence pour les contenus d'une antememoire
FR2741974A1 (fr) Procede et appareil pour corriger une erreur dans le champ de commande d'une memoire cache
FR2733614A1 (fr) Systeme multiprocesseur en groupes et procede pour controler une phase d'horloge de groupes
FR2871908A1 (fr) Procede et programme d'ordinateur de traitement d'une adresse virtuelle pour la programmation d'un controleur de dma et systeme sur puce associe
EP0908828B1 (fr) Procédé et système contrôle d'accès partagés à une mémoire vive
FR2733067A1 (fr) Dispositif et procede de commande de verrouillage
EP0306357A1 (fr) Unité de gestion d'accès en mémoire, à identifiants logiques invariants, notamment pour la gestion de bases de données
FR2614127A1 (fr) Circuit de detection d'erreur capable de detecter des erreurs de transfert par rafales dans une memoire moins recemment utilisee
KR102443302B1 (ko) 블록 체인 기반 서버리스 서비스 개발 장치 및 방법

Legal Events

Date Code Title Description
ST Notification of lapse