FR2590699A1 - Systeme assurant la coherence pour les contenus d'une antememoire - Google Patents

Systeme assurant la coherence pour les contenus d'une antememoire Download PDF

Info

Publication number
FR2590699A1
FR2590699A1 FR8616400A FR8616400A FR2590699A1 FR 2590699 A1 FR2590699 A1 FR 2590699A1 FR 8616400 A FR8616400 A FR 8616400A FR 8616400 A FR8616400 A FR 8616400A FR 2590699 A1 FR2590699 A1 FR 2590699A1
Authority
FR
France
Prior art keywords
address
memory
word
cache
mtp
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
FR8616400A
Other languages
English (en)
Other versions
FR2590699B1 (fr
Inventor
Osamu Hazawa
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 FR2590699A1 publication Critical patent/FR2590699A1/fr
Application granted granted Critical
Publication of FR2590699B1 publication Critical patent/FR2590699B1/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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address 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 physically addressed
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0822Copy directories

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

Système assurant la cohérence pour les contenus d'une antémémoire ayant au moins une mémoire centrale et une multitude de processeurs, chacun ayant une antémémoire, dans lequel chacun des processeurs comprend : un moyen de réseau d'adresses de purge 105 pour maintenir une copie du réseau d'adresses dont on recherche l'invalidation, en réponse au stockage dans la mémoire centrale MC à partir d'un autre processeur, la donnée du bloc correspondant dans l'antémémoire de son propre processeur ; un moyen de conversion d'adresses 102 pour mettre à jour un mot de table de page MTP après la conversion d'adresse et pour stocker le mot de table de page mis à jour non dans l'antémémoire mais seulement dans la mémoire centrale ; un moyen générateur de signaux pour produire un signal de notification de stockage de mot de table de page pour donner la notification, lorsque le moyen de conversion d'adresse stocke ce mot mis à jour dans la mémoire centrale, du stockage de ce mot, et un réseau d'adresses de purge 105 invalidant un moyen devant être recherché et pour invalider, en réponse à la fourniture de ce signal de notification et à l'adresse réelle en mémoire de ce mot, en provenance de son propre processeur, la donnée du bloc correspondant dans l'antémémoire de son propre processeur de manière à invalider la donnée d'un tel bloc correspondant. (CF DESSIN DANS BOPI)

Description

1. La présente invention concerne un système assurant
la cohérence pour les contenus d'une antémémoire, et plus par-
ticulièrement, un système d'obtention de cohérence d'antémémoi-
re pour la propre antémémoire (AM) d'un processeur lorsqu'un mot d'une table de pages est renouvelé et stocké non dans
l'antémémoire mais seulement dans une mémoire centrale (MC).
On sait que, dans le but de réduire la fréquence des accès à la mémoire centrale et donc augmenter la vitesse de traitement, on utilise une antémémoire à haute vitesse afin de mémoriser une partie des données stockées dans la
mémoire centrale.
On trouvera des détails d'une telle antémémoire dans l'article intitulé "CACHE MEMORIES" dans l'ouvrage Computing Surveys, Vol. 14, n 3, pp. 474 à 479, numéro de septembre
1982 (désigné ci-après par la Référence).
Comme une antémémoire est utilisée à titre de rem-
plaçant partiel d'une mémoire centrale, les contenus de
cette antémémoire doivent être identiques aux contenus cor-
respondants de la mémoire centrale. Par conséquent, chaque fois qu'une donnée stockée dans la mémoire centrale est mise 2. à jour, les contenus correspondants de l'antémémoire sont également mis à jour ou invalidés avec l'objectif d'assurer
la cohérence entre les contenus de l'antémémoire et les conte-
nus correspondants de la mémoire centrale. Un réseau d'adres-
ses de purge, qui est une copie du réseau d'adresses d'une antémémoire, traite également la concordance à partir de
l'antémémoire ou l'invalidation de manière à assurer la cohé-
rence.
Dans un système multi-processeurs utilisant une techni-
que d'adressage virtuelle et ayant un tampon de traduction à l'écart (TTE) , si aucune adresse réelle correspondant à une adresse virtuelle n'est trouvée sur le tampon TTE, un mot de
table de pages (constitué de l'adresse réelle de mémoire cor-
respondant à une adresse virtuelle dont la conversion est de-
mandée et au moins un bit de commande indiquant l'état d'uti-
lisation du mot de la table de pages, etc.) désigné ci-après par l'abréviation MTP), présent sur un certain groupe dans la mémoire centrale est lu de manière à obtenir la conversion d'adresse. Dans ce cas, le bit de commande que contient le
mot MTP est mis à jour. Le but de la mise à jour est de con-
server la trace du dernier état d'utilisation du mot MTP selon le bit de commande et donc de faciliter la commande de pagination. On trouvera des renseignements sur un tel tampon TTE dans la référence, page 518, Soussection 2.16, et des informations sur la conversion d'adresse, dans le même ouvrage,
page 520, Sous-section 2.17.
Comme le mot MTP est mis à jour chaque fois qu'il est lu comme on l'a indiqué ci-dessus, il doit être réécrit dans la mémoire centrale. Aucun accès Au groupe sur lequel
le groupe MTP pertinent est présent dans la mémoire centra-
le ne doit être autorisé pour n'importe quel autre processeur
pendant le processus d'une telle conversion d'adresse.Lors-
que le mot MTP est stocké dans la mémoire centrale, la cohé-
rence entre les contenus de la mémoire centrale et les conte-
nus correspondants de l'antémémoire doit être assurée, et à cet effet, le mot MTP doit être entré dans une unité tampon 3.
avant d'être stocké dans cette antémémoire. La sortie de l'uni-
té tampon est utilisée pour le stockage dans l'antémémoire.
L'unité tampon est constituée de deux tampons, chacun pour des adresses (réseaux d'adresses) et pour des données, et l'adresse est promptement déterminée par le tampon TTE. Cependant, comme la donnée vient d'une unité d'exécution, elle est souvent déterminée plus tard que l'adresse. Comme il y a lieu d'observer la séquence de stockage, à moins que l'adresse ainsi que la donnée soient prêtes, elles ne sont o10 pas déchargées dans l'antémémoire. Pour ces raisons, si le mot MTP entre dans le tampon de stockage, il est probable qu'un laps de temps considérable s'écoulera avant sa décharge à partir du tampon de stockage. Comme aucun autre processeur n'est autorisé à avoir accès au groupe sur lequel le mot MTP est présent jusqu'à ce que son stockage soit achevé, il est
évident que plus cette période sera longue, moins bonnes se-
ront les performances du système.
Dans un système classique, dans le but d'éviter la détérioration des performances pour de telles raisons, un mot
MTP mis à jour est stocké directement dans la mémoire centra-
le au lieu de l'être via l'antémémoire, et la période d'empê-
chement de l'accès à la mémoire centrale par d'autres proces-
seurs est donc raccourcie.
Alors que le stockage dans la mémoire centrale impli-
que dans ce cas l'accès par l'intermédiaire d'une section de commande de système située entre une multitude d'unités de processeur central (UPC) et la mémoire centrale, la section de commande du système donne un ordre, concernant un stockage effectué par une UPC, seulement à l'autre UPC différente de
celle qui a effectué le stockage de manière à assurer la cohé-
rence et éliminer toute incohérence pouvant se produire entre la mémoire centrale et une antémémoire. Il en résulte que, même s'il y a stockage d'un mot MTP, 1'UPC qui a effectué le
stockage ne reçoit pas une demande pour assurer la cohéren-
ce, de sorte qu'elle ne peut assurer la cohérence, ce qui se 4. traduit par une incohérence entre son antémémoire et la mémoire
centrale en ce qui concerne le mot MTP.
La nécessité d'assurer une cohérence de l'antémémoire est décrite dans la Référence, page 501, "2. Cache Consistency", et un exemple d'un procédé permettant d'assurer cette cohéren-
ce figure dans le même article, page 505, "2. Broadcast Writes".
Comme on l'a décrit ci-dessus, dans le système clas-
sique, la cohérence de l'antémémoire n'est pas assurée pour le processeur qui a effectué une conversion d'adresse en stockant un mot MTP. Il en résulte qu'une incohérence de contenus peut se produire entre la mémoire centrale et l'antémémoire lors du
stockage d'un mot MTP. Par conséquent, on souffre de l'incon-
vénient que, même lorsque le logiciel se réfère simplement à un
mot MTP pour réécrire une page, on ne peut utiliser l'antémémoi-
re, mais on doit employer la mémoire centrale-avec un temps
d'accès plus long, ce qui entraîne une détérioration corres-
pondante des performances.
Par conséquent, un objet de la présente invention est de prévoir un système assurant une cohérence d'antémémoire qui soit exempt de l'inconvénient venant d'être exposé, dans lequel
les accès au réseau d'adresses sont réduits de manière à obte-
nir des performances plus élevées pour le système d'antémémoire.
Selon un aspect de la présente invention, on prévoit
un système assurant la cohérence pour les contenus d'une anté-
mémoire, le système ayant une mémoire centrale et une multitu-
de de processeurs, chacun ayant une antémémoire, dans lequel chaque processeur de la multitude de processeurs comprend: un réseau d'adresses de purge pour conserver une copie du réseau
d'adresses devant être recherché pour invalidation, en répon-
se au stockage dans sa propre mémoire centrale à partir d'un
autre processeur, la donnée du bloc correspondant dans sa pro-
pre antémémoire; une section de conversion d'adresses pour mettre à jour un mot MTP après la conversion d'adresses et pour stocker le mot mis à jour non dans ladite antémémoire
mais seulement dans ladite mémoire centrale; et un moyen géné-
rateur de signaux pour produire un signal de notification d'un 5. tel stockage afin de donner une notification, lorsque le mot MTP mis à jour doit être stocké dans la mémoire centrale, et un réseau d'adresses de purge invalidant un moyen devant être recherché et invalidé, en réponse à la fourniture du signal de notification de stockage et de l'adresse réelle en mémoire du mot MTP en provenance de son propre processeur, la donnée du
bloc correspondant dans l'antémémoire de son propre proces-
seur dans le but d'invalider la donnée d'un tel bloc corres-
pondant. La présente invention sera bien comprise lors de la
description suivante faite en liaison avec les dessins ci-
joints dans lesquels: La figure 1 est un diagramme d'un premier mode de réalisation préféré de l'invention; La figure 2 est un diagramme d'un second mode de réalisation de l'invention; La figure 3 est un diagramme d'un troisième mode de réalisation de l'invention;
La figure 4 est un diagramme d'une structure détail-
lée d'une section 102 de conversion d'adresse des modes de réalisation des figures 1 et 2;
La figure 5 est un diagramme d'une structure détail-
lée d'une section 103 de commande d'antémémoire des modes de réalisation des figures 1 et 2;
Les figures 6A et 6B sont des digrammes d'une struc-
ture détaillée de la section 104 de commande de l'accès à la mémoire centrale des modes de réalisation des figures 1 et 2;
Les figures 7A et 7B sont des diagrammes d'une struc-
ture détaillée de la section 304 de commande de l'accès à la mémoire centrale du mode de réalisation de la figure 3;
Les figures 8A et 8B sont bs diagrammes d'une structu-
re détaillée de la section de commande de système des modes de réalisation des figures 1 et 2; Les figures 9A et 9B sont des diagrammes d'une structure détaillée de la section de commande de système du mode de réalisation de la figure 3; 6.
La figure 10 est un diagramme d'une structure détail-
lée du réseau 105 d'adresses de purge (RAP) du mode de réalisa-
tion de la figure 1;
La figure 11 est un diagramme d'une structure détail-
lée du réseau RAP,205, du mode de réalisation de la figure 2; et
La figure 12 est un diagramme d'une structure détail-
lée du réseau RAP, 305, du mode de réalisation de la figure 3.
Dans les dessins, les mêmes numéros de référence
représentent des éléments identiques de la structure.
En liaison avec la figure 1, un premier mode de réa-
lisation de l'invention comprend des sections 100 et 101 à processeur, une section 106 de commande du système (SCS) pour commander les interactions parmi les sections 100 et 101, et
une mémoire centrale (MC) 107 utilisée en commun par les sec-
tions 100 et 101. Chacune des sections 100 et 101 comporte en outre une section 102 de conversion d'adresse (CA) afin de
convertir des adresses virtuelles en adresses réelles de mémoi-
re, une section 104 de commande de l'accès à la mémoire centra-
le 107, une unité 103 de commande d'antémémoire (UCA) pour commander une antémémoire (AM) et un réseau d'adresses de purge (RAP) 105 comportant une mémoire d'adresses de purge,
qui est une copie du réseau d'adresses de l'antémémoire.
En liaison avec les figures 1 et 5, en réponse à une adresse virtuelle 500 et à une demande de mémoire 501 provenant de l'extérieur, l'unité de commande d'antémémoire
(UCA) 103 recherche un tampon de translation TTE et, si aucu-
ne adresse réelle correspondant à l'adresse virtuelle donnée extérieurement n'est trouvée, la section de conversion 102 est
actionnée par un signal 111 d'actionnement de section de conver-
sion d'adresse. Ainsi, l'adresse virtuelle 500 provenant de
l'extérieur est stockée dans un registre 512 d'adresses vir-
tuelles. Une partie de l'adresse virtuelle, 521, stockée dans le registre 512 accès aux tampons TTE, 524 et 525. Avec cet accès, la section clé 524 des tampons sort une clé, qui est comparée au reste 520 de l'adresse virtuelle stockée dans 7.
le registre 512 par un comparateur 527.
Par ailleurs, le signal de demande 501, après avoir été stocké dans une bascule 513, est appliqué à un circuit de priorité 522, dont la sortie est appliquée à un sélecteur 523 de manière à donner l'instruction de choisir le reste
de l'adresse virtuelle dans le registre 512. Le reste de l'adres-
se virtuelle choisi par le sélecteur 523, en réponse à l'ins-
truction, est fourni à un réseau d'adresses 526. En réponse à la partie restante de l'adresse virtuelle, il y a une donnée de
sortie provenant du réseau 526. La donnée est comparée à une don-
née provenant de la section 525 de données de tampon TTE par un comparateur 528. Le produit logique d'un signal de cohérence résultant de l'opération de comparaison et d'un autre signal de cohérence provenant du circuit 527 est pris par une porte 532. Lorsque l'adresse virtuelle donnée extérieurement est dans
les tampons TTE 524 et 525, la sortie d'une porte 532 est ap-
pliquée à un circuit de priorité 551 au moyen d'un registre 539.
Le circuit de priorité 551 donne alors une instruction à un sé-
lecteur 552 de choisir la donnée parmi un réseau de données 548. Avec cette instruction, la donnée provenant du réseau 548
est stockée dans un registre 554 via le sélecteur 552, et ren-
voyée à l'extérieur à titre de donnée de réponse 113.
Si l'adresse virtuelle donnée extérieurement n'est pas stockée dans la section 524, le comparateur 527 fournit
le signal d'actionnement 111 à la section 102.
En liaison maintenant avec les figures 1 et 4, la
section 102 actionne un circuit de séquence, en réponse au si-
gnal 111, se réfère à une table de pages dans la mémoire, pré-
lève un mot de table de pages (MTP), et produit une adresse réelle de mémoire dans le mot MTP. Ainsi, dans la section 102, une bascule 409 du circuit de séquence est chargée par une adresse virtuelle 114 en provenance de l'unité 103 de commande d'antémémoire (UCA). En même temps, l'adresse virtuelle 114 est appliquée à un circuit arithmétique 408 via un registre 405, et une adresse réelle de mémoire est produite est stockée dans un 8. registre 416. La sortie de la bascule 409 charge une bascule
419, dont la sortie est fournie à titre de signal 142 de de-
mande de lecture à l'unité 103. Simultanément, la sortie de
la bascule 409 est appliquée au registre 416 via un cir-
cuit OU 426, et le registre 416 sort une adresse réelle de mé-
moire 110, qui est fournie à l'unité 103. En réponse à la deman-
de de lecture 142, et à l'adresse réelle de mémoire 110, l'uni-
té 103 sort les données de l'antémémoire ou de la mémoire cen-
trale 107 et les instaure comme données de réponse 113 dans un registre 401 de la section 102. En même temps que les données
de réponse 113, un signal de réponse 112 est fourni à la sec-
tion 102 de manière à charger une bascule 403 et, en même temps,
à remettre à zéro, la bascule 409 via une porte ET 410. Simulta-
nément à la remise à zéro,, une bascule 411 est chargée. Avec cette charge, le résultat du traitement arithmétique des données
de réponse provenant du registre 401 et des contenus du regis-
tre 405 par le circuit arithmétique 408, c'est-à-dire un signal
d'instruction afin d'instaurer une adresse MTP dans le regis-
tre 416, est fourni par la bascule 411 au registre 416 via la
porte OU 426. La sortie de la bascule 411 charge une bascu-
le 414, et la sortie à titre de signal 144 de lecture MTP, et l'adresse réelle en mémoire MTP 110 provenant du registre 416 sont appliquées via l'unité 103 à la section de commande 104 comme adresse de bloc 118 et demande de lecture 116, qui sont
données à la section de commande SCS 106. La section 106 exécu-
te la commande exclusive des adresses MTP et demandes de lectu-
re à partir de la section du processeur 100 et de l'autre sec-
tion de processeur 101, et fournit les adresses MTP et deman-
des de lecture à la mémoire centrale 107. Les lectures de MTP
dans la mémoire centrale, en réponse aux adresses MTP et de-
mandes de lecture, sont stockées comme donnée de réponse 113
dans le registre 401 via la section 106 et l'unité de comman-
de d'antémémoire 103. Le signal de réponse 112, donné en même temps que la donnée 113, charge une bascule 413 via une porte ET 412 et, en même temps, remet à zéro la bascule 411. Un mot MTP provenant du registre 401 est converti par un circuit 407 9. de conversion de bits de commande et, en réponse à un signal sortant de la bascule 413, le stocke dans un registre 415. Le signal de sortie de la bascule 413 est transformé en signal 108 de stockage MTP via une bascule 421 et, en même temps qu'un mot MTP 124 du registre 415, est fourni au réseau d'adres-
ses 105 via l'unité 103.
De nouveau en liaison avec les figures l et 5, la
table de page est recherchée de la manière suivante.
Le signal 142 de demande de lecture en provenance de la section CA 102 est choisi par un circuit de priorité 506 suivant instruction par le signal 108 de stockage MTP. Par
un signal sélectionné 508 donné par le circuit 506, un sélec-
teur 507 choisit l'adresse réelle 110 de mémoire à partir de la section 102, et la stocke dans un registre 515 d'adresses réelles. Le signal choisi 5Q8 charge une bascule 516, dont la
sortie est appliquée à un circuit de priorité 522. L'instruc-
tion donnée par le circuit 522 a pour effet qu'un sélecteur 523 choisit une partie de la sortie du registre 515, et la fournit au réseau d'adresses 526. La sortie du circuit 522 permet à
un sélecteur 570 de choisir l'autre partie de la sortie du re-
gistre 515. L'adresse choisie et la donnée provenant du réseau 526 sont comparées par le comparateur 528. S'il y a à ce stade
reconnaissance de la cohérence, les contenus du réseau de don-
nées 548,c'est-à-dire de l'antémémoire sont renvoyés à titre de
donnée de réponse 113 à la section 102. S'il n'y a pas recon-
naissance par le comparateur 528 de la cohérence, la sortie
d'un registre 539 est chargée dans une bascule 542 via une por-
te ET 561 et une porte OU 562, car une bascule 519 est chargée
par la demande de lecture 142 en provenance de la section 102.
La sortie de la bascule 542 est appliquée comme demande de lec-
ture 116 à la mémoire centrale 107 via la section 104 de com-
mande d'accès et la section SCS 106. La donnée provenant de la mémoire centrale 107 est renvoyée à titre de données de réponse 125 et 113 à la section 102 via la section 106, la
section 104 et l'unité 103.
10. Lors de la lecture d'un mot MTP, l'antémémoire est
contournée. Ainsi, l'adresse réelle est instaurée dans le re-
gistre 515 d'adresses réelles, mais la mémoire centrale 107
est accédée sans consultation du réseau d'adresses 526, c'est-
à-dire de l'antémémoire. Un mot MTP 144 lu de la section 102 est chargé dans la bascule 542 via la porte OU 562 de l'unité 103, et fourni comme demande de lecture 116 à la section 106
via la section 104 de commande de l'accès à la mémoire centra-
le. Comme une commande exclusive est exécutée dans la section 106, aucun mot MTP extrait de l'autre-section de processeur 101
n'est accepté tant qu'il n'y pas stockage du mot MTP lu.
Par le signal 108 de stockage MTP provenant de la section 102, l'unité 103 envoie un signal 115 de stockage MTP à la section 104 de commande de l'accès à la mémoire centrale et au réseau d'adresses 105. Le mot MTP 124 provenant de la section 102 est directement envoyé à la section 104 sans passer par l'unité UPC 103. L'adresse est envoyée à titre d'adresse
de bloc 118 à la section 104 à partir du registre 515 d'adres-
ses réelles, dans lequel est stockée l'adresse au moment de
la lecture MTP. Si le mot MTP devait être stocké dans un regis-
tre 540, qui est le tampon de stockage de l'unité 103, le trai-
tement prendrait une durée importante lorsque le registre 540
est plein, et l'autre section de processeur 101, attendant l'ac-
cès MTP sous la commande exclusive de la section 106, serait
incapable d'obtenir tous les accès en mémoire, ce qui se tradui-
rait par une détérioration considérable des performances du
système. Ce mode de réalisation de l'invention évite la dégra-
dation des performances du système.
En liaison maintenant avec les figures 1 et 6A, la
section 104 de commande de l'accès à la mémoire centrale char-
ge le signal de stockage MTP dans une bascule 153, et stocke l'adresse de bloc 118 dans un registre 157. Grâce au signal 115 de stockage MTP, un circuit de priorité 150 sort un signal d'instruction,en réponse duquel un sélecteur 151 choisit un mot MTP 124, qui est stocké dans un registre 158. Apres cela, 11.
la section 104 envoie à la section 106 la donnée 129, compre-
nant son propre numéro de système 156, l'adresse 157 et la don-
née 158, et un signal 150 de stockage PTW.
En liaison avec les figures 1, 8A et 8B, dans la sec-
tion 106 de commande de système, le signal 150 de stockage MTP
en provenance de la section 104 de commande de l'accès en mé-
moire centrale est chargé dans une bascule 183 et, parmi les données 129, le numéro de système, l'adresse et la donnée
sont stockés dans les registres 172, 173 et 174, respective-
ment. La sortie de la bascule 183 est appliquée à un sélecteur 181 via une porte OU 185, et en même temps, à un circuit de priorité 180, qui reconnaît le signal de stockage MTP, annule
les conditions exclusives de la lecture MTP qui se produisi-
rent avant le stockage MTP, et reçoit un signal de lecture MTP après le stockage MTP. Alors une demande de lecture, une
demande d'écriture, le numéro de système, l'adresse et la don-
née sont stockés dans un registre 182, dont la sortie est en-
voyée à la mémoire centrale 107 de manière à compléter le
stockage MTP.
On décrira maintenant en détail le fonctionnement
de l'ensemble d'adresses 105.
En liaison avec les figures 1 et 5, les bascules 514 et 534 de l'unité UPC 108 sont chargées par le signal 108 de stockage MTP en provenance de la section CA 102. La sortie
de la bascule 534 est appliquée à titre de signal 115 de sto-
ckage MTP à la section 104 de commande de l'accès à la mémoi-
re principale et au réseau 105. L'adresse de bloc 118 est éga-
lement fournie au réseau 105 à partir de l'unité UPC 103.
En liaison maintenant avec les figures 1 et 10, le signal 115 est chargé dans une bascule 191, dont la sortie est appliquée à un circuit de priorité 197 via une porte OU 194. Avec une instruction en provenance du circuit 197,
le sélecteur 196 choisit la sortie d'un registre 188. Le cir-
cuit 197, en réponse à la sortie de la bascule 191, ne fournit
pas un signal de validation à une mémoire RAP 402, et au con-
traire active un comparateur 405 via une porte NON ET 404.
12.
Une adresse est sortie de la mémoire 402 en réponse à une adres-
se de bloc 411 du registre 188, choisie par le sélecteur 196.
Cette adresse et une adresse de bloc 410 provenant du regis-
tre 188 sont comparées par le comparateur 405. S'il y a confir-
mation de la cohérence, une bascule 406 est chargée. La sortie de la bascule 406, à titre de signal 122 de demande de purge,
est envoyée en même temps qu'une adresse de purge 123 à l'uni-
té 103.
De nouveau en liaison avec les figures 1 et 5, le si-
gnal 122 provenant du réseau 105 est chargé dans une bascule 517.
La sortie négative de la bascule 517 fait varier le bit V du
bloc correspondant dans le réseau d'adresses 526.
De nouveau en liaison avec les figures 1 et 10, la
sortie de la bascule 406, c'est-à-dire le signal 122, est four-
nie à la mémoire RAP 402 via une porte NON OU 198 et une porte
ET 400, et fait varier le bit V du bloc correspondant.
* On décrira maintenant en détail ci-après l'opération de purge. En réponse au signal de demande de purge 122, le
circuit de priorité 197 suspend le traitement des autres de-
mandes, et entre dans un cycle destiné à faire varier le bit V
du réseau 402. Le circuit 197 donne l'instruction au sélec-
teur 196 de choisir les contenus du registre 188 dans lequel est stockée l'adresse qui fut mémorisée dans le réseau 402 et
qui pouvait être sortie dans le cycle précédent. Simultané-
ment, le circuit 197 fournit un signal de validation d'écritu-
re au réseau 402, et envoie également un signal de comparai-
son non permise au comparateur 405 via la porte NON ET 404.
Dans cet état, le signal de demande 122 est fourni au réseau 402 via une porte NON OU 199 et la porte ET 400 de manière à
faire varier le bit V. Cela complète l'opération de "purge".
Dans le premier mode de réalisation de l'invention, le signal 108 de stockage MTP provenant de la section CA 102 est fourni au réseau d'adresses RAP 105 via l'unité UCA 103, de sorte que l'opération de stockage UTP peut être répercutée
à l'antémémoire.
13. On décrira maintenant en détail un second mode de
réalisation de l'invention.
En liaison avec les figures 1 et 2, le second mode de réalisation de l'invention est sensiblement identique au pr( mier quant à sa structure et à son fonctionnement. La seule
différence est que, alors que dans le premier mode de réalisa-
tion le signal 108 de stockage MTP provenant de la section CA 102 est fourni au réseau RAP 105 via l'unité 103, dans le second mode de réalisation, un signal 208 de stockage MTP en provenance d'une section CA 202 est directement appliqué à une
mémoire RAP 205.
En liaison avec la figure 11, le signal 208 provenant de la section 202 est appliqué à un circuit de priorité 713
via une bascule 291. Dans le circuit 713, en réponse à la sor-
13 tie de la bascule 291, un sélecteur 714 reçoit l'instruction
en provenance du circuit 713 de choisir une sortie d'un regis-
tre 712.
La sortie du circuit 713 valide un circuit de priori-
té 197 de manière à donner à un sélecteur 196 l'instruction de choisir une sortie du sélecteur 714. La sortie du circuit 19 donne l'instruction d'interdire l'écriture dans une mémoire
RAP 402, et une autre à un comparateur 405 de comparer la sor-
tie du réseau 402 et celle du sélecteur 196. Si le résultat de la comparaison par le comparateur 405 indique la cohérence, une bascule 406 est chargée. La sortie de la bascule 406, à
titre de signal de demande de purge 222, est appliquée en mè-
me temps qu'une adresse de purge 223 à une unité 203 de comman-
de d'antémémoire. La sortie de la bascule 406 est fournie au rd seau RAP 402 via une porte NON OU 299 et une porte ET 700 de manière à faire varier le bit V. On décrira maintenant en détail un troisième mode
de réalisation de l'invention.
En liaison avec les figures 1 et 3, le troisième mode de réalisation de l'invention est sensiblement identique au premier en matin.Je structure et de fonctionnement, sauf YU077 14. toutefois que, alors que dans le premier mode de réalisatio: le signal 108 de stockage MTP en provenance de lasection CA 102 est appliqué au réseau RAP 105 via l'unité UCA 103, dans le troisième mode de réalisation, un signal 308 de sto ckage MTP provenant d'une section CA 302 est directement ap pliquée à un réseau RAP 305 via une unité 303 de commande d témémoire, une section 304 de commande d'accès en mémoire c traie et une unité 306 d'une section de commande de système Dans le troisième mode dé-réalisation, le fonctio nement est semblable à celui du premier mode de réalisation jusqu'à ce que le signai 308 soit fourni en signal 350 de stockage MTP à la section 306 via l'unité 303 et la section 304. En liaison maintenant avec la figure 9A, le signa de stockage MTP en provenance de la section 304 est fourni une bascule 183 à un circuit de priorité 380, qui donne au lecteur 181 l'instruction de choisir une donnée 329 en prov nance d'une section A de processeur 300, stockée dans des r gistres 172, 173 et 174. Il en résulte que la sortie du reg tre 172, qui est un numéro de système provenant du processe A 300; celle du registre 173 qui est une adresse de Bloc; c le du registre 174, qui est une donnée (MTP); celle de la b cule 183 de stockage MTP;celle d'une bascule 170 de lecture et celle d'une bascule 171 d'écriture sont stockées dans un registre 182, sorties parmi lesquelles le signal de stockag MTP, le signal de de,ande de lecture, le signal de demande d'écriture, tous à titre de signaux de demande 340, le numé de système, l'adresse de bloc et la donnée (MTP), tous à ti tre de données 341, sont envoyés à une mémoire centrale 30 En outre, parmi les sorties du registre 182, le signal de demande d'écriture du signal de stockage MTP, le numéro du tème et l'adresse de bloc sont envoyés comme signaux 332 de demande assurant la cohérence de l'antémémoire à tous les p
cesseurs (300 et 301 en figure 3).
En liaison avec la figure 12, les informations 15. envoyées par la section 306 comme signaux 322 de demande d'assurance de la cohérence de l'antémémoire, c'est-à-dire
une adresse 385, une demande 386 d'assurance de la cohéren-
ce de l'antémémoire, un signal 661 de stockage MTP et un numéro de système 387, sont stockés dans un registre 192. La cohérence entre le numéro de système 387, stocké dans le
registre 192, et le nombre produit à partir d'un propre cir-
cuit 198 de génération de numéro de système, est confirmée par un comparateur 401, et un signal est fourni à un circuit
de priorité 197 via une porte OU 650 si le signal 661 de sto-
ckage MTP est "1", même si la sortie d'une porte ET 195 est
"O". Par la sortie de la porte OU 650, un sélecteur 196 don-
ne une instruction à un circuit de priorité 197 de choisir l'adresse 385 à partir du registre 192. La sortie du circuit
197 donne une instruction d'interdiction d'écriture à une mé-
moire RAP 402, et en même temps est fournie via une porte NON ET 404 à un comparateur 405, qui compare l'adresse 385 fournie par le sélecteur 196 et une adresse en provenance du réseau 402. La cohérence confirmée par la comparaison est
chargée dans une bascule 406, et, en même temps qu'une adres-
se 323, transférée à l'unité UCA 303 comme signal 322 de de-
mande de purge.
Incidemment, dans l'antémémoire d'un mode de réalisa-
tion de la présente invention sont stockés les contenus qui sont un mélange d'opérandes et d'instructions. Dans le cas o la présente invention est utilisée dans un système dans lequel l'antémémoire est divisée en une antémémoire pour opérandes
et une autre pour instructions, la confirmation de la cohé-
rence des antémémoires pour les contenus stockés est appli-
quée aux deux antémémoires d'opérandes et d'instructions.
Selon la présente invention, lorsque l'adresse est convertie, le mot MTP est mis à jour, et lorsqu'il est stocké, un signal de notification de stockage MTP et l'adresse réelle
de mémoire du mot MTP sont utilisés pour assurer la cohéren-
ce d'antémémoire parmi tous les processeurs comportant le 16. propre processeur du système, de sorte que, même lorsque le logiciel se réfère au mot MTP, l'antémémoire peut être utilisée,
ce qui se traduit par l'augmentation de la vitesse de traite-
ment. La présente invention n'est pas limitée aux exem- ples de réalisation qui viennent d'être décrits, elle est au contraire susceptible de modifications et de variantes qui
apparaîtront à l'homme de l'art.
17.

Claims (4)

REVENDICATIONS
1 - Système assurant la cohérence pour les contenus d'une antémémoire ayant au moins une mémoire centrale et une multitude de processeurs, chacun ayant une antémémoire, dans lequel chacun des processeurs comprend: - un moyen de réseau d'adresses de purge (105)
pour maintenir une copie du réseau d'adresses dont on recher-
che l'invalidation, en réponse au stockage dans la mémoire centrale (MC) à partir d'un autre processeur, la donnée du bloc correspondant dans l'antémémoire de son propre processeur;
- un moyen de conversion d'adresses (102) pour met-
tre à jour un mot de table de page (MTP) après la conversion d'adresse et pour stocker le mot de table de page mis à jour
non dans l'antémémoire mais seulement dans la mémoire centra-
le;
- un moyen générateur de signaux pour produire un si-
gnal de notification de stockage de mot de table de page pour
donner la notification, lorsque le moyen de conversion d'adres-
se stocke ce mot mis à jour dans la mémoire centrale, du sto-
ckage de ce mot, et - un réseau d'adresses de purge (105) invalidant un moyen devant être recherché et pour invalider, en réponse à la fourniture de ce signal de notification et à l'adresse réelle en mémoire de ce mot, en provenance de son propre processeur,
la donnée du bloc correspondant dans l'antémémoire de son pro-
pre processeur de manière à invalider la donnée d'un tel
bloc correspondant.
2 - Système assurant la cohérence selon la revendica-
tion 1, dans lequel ledit signal de notification et l'adresse
réelle de mémoire du mot de table de page sont fournis au ré-
seau d'adresses de purge (105) via la section (104) de comman-
de de l'accès à la mémoire centrale (MC).
3 - Système assurant la cohérence selon la revendica-
tion 1, dans lequel le signal de notification du stockage du mot de table de page et l'adresse réelle de mémoire de ce mot 18.
sont fournis au réseau d'adresses de purge (105) via la sec-
tion de commande d'antémémoire (103).
4 - Système assurant la cohérence selon la revendi-
cation 1, dans lequel le signal de notification du stockage du mot de table de page est fourni directement à partir du
moyen de conversion d'adresses (102).
FR868616400A 1985-11-25 1986-11-25 Systeme assurant la coherence pour les contenus d'une antememoire Expired - Fee Related FR2590699B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26578185 1985-11-25

Publications (2)

Publication Number Publication Date
FR2590699A1 true FR2590699A1 (fr) 1987-05-29
FR2590699B1 FR2590699B1 (fr) 1994-07-01

Family

ID=17421946

Family Applications (1)

Application Number Title Priority Date Filing Date
FR868616400A Expired - Fee Related FR2590699B1 (fr) 1985-11-25 1986-11-25 Systeme assurant la coherence pour les contenus d'une antememoire

Country Status (3)

Country Link
US (1) US5010475A (fr)
JP (1) JPS62202247A (fr)
FR (1) FR2590699B1 (fr)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2210480B (en) * 1987-10-02 1992-01-29 Sun Microsystems Inc Flush support
DE68924306T2 (de) * 1988-06-27 1996-05-09 Digital Equipment Corp Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern.
US5226146A (en) * 1988-10-28 1993-07-06 Hewlett-Packard Company Duplicate tag store purge queue
US5535359A (en) * 1988-12-02 1996-07-09 Mitsubishi Denki Kabushiki Kaisha Computer system with cache memory having address mask register
JPH0340046A (ja) * 1989-07-06 1991-02-20 Hitachi Ltd キャッシュメモリ制御方式および情報処理装置
US5339397A (en) * 1990-10-12 1994-08-16 International Business Machines Corporation Hardware primary directory lock
WO1992007323A1 (fr) * 1990-10-12 1992-04-30 Intel Corporation Unite de commande d'antememoire et procede associe pour remapper les bits d'adresse d'antememoire
US5584017A (en) * 1991-12-19 1996-12-10 Intel Corporation Cache control which inhibits snoop cycles if processor accessing memory is the only processor allowed to cache the memory location
US5537572A (en) * 1992-03-31 1996-07-16 Vlsi Technology, Inc. Cache controller and method for dumping contents of a cache directory and cache data random access memory (RAM)
US5627986A (en) * 1992-08-31 1997-05-06 Rockwell International Corporation Device and method for selecting and addressing extended memory addresses
US6745292B1 (en) 1995-12-08 2004-06-01 Ncr Corporation Apparatus and method for selectively allocating cache lines in a partitioned cache shared by multiprocessors

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3723976A (en) * 1972-01-20 1973-03-27 Ibm Memory system with logical and real addressing
US4322795A (en) * 1980-01-24 1982-03-30 Honeywell Information Systems Inc. Cache memory utilizing selective clearing and least recently used updating

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3581291A (en) * 1968-10-31 1971-05-25 Hitachi Ltd Memory control system in multiprocessing system
JPS5440182B2 (fr) * 1974-02-26 1979-12-01
US4142234A (en) * 1977-11-28 1979-02-27 International Business Machines Corporation Bias filter memory for filtering out unnecessary interrogations of cache directories in a multiprocessor system
JPS55134459A (en) * 1979-04-06 1980-10-20 Hitachi Ltd Data processing system
US4481573A (en) * 1980-11-17 1984-11-06 Hitachi, Ltd. Shared virtual address translation unit for a multiprocessor system
JPS5864688A (ja) * 1981-10-14 1983-04-18 Hitachi Ltd デ−タ処理装置
AU569857B2 (en) * 1982-12-09 1988-02-25 Sequoia Systems, Inc. Memory backup system
US4648030A (en) * 1983-09-22 1987-03-03 Digital Equipment Corporation Cache invalidation mechanism for multiprocessor systems
US4747043A (en) * 1984-02-10 1988-05-24 Prime Computer, Inc. Multiprocessor cache coherence system
US4638431A (en) * 1984-09-17 1987-01-20 Nec Corporation Data processing system for vector processing having a cache invalidation control unit
US4814981A (en) * 1986-09-18 1989-03-21 Digital Equipment Corporation Cache invalidate protocol for digital data processing system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3723976A (en) * 1972-01-20 1973-03-27 Ibm Memory system with logical and real addressing
US4322795A (en) * 1980-01-24 1982-03-30 Honeywell Information Systems Inc. Cache memory utilizing selective clearing and least recently used updating

Also Published As

Publication number Publication date
JPH0519176B2 (fr) 1993-03-16
JPS62202247A (ja) 1987-09-05
US5010475A (en) 1991-04-23
FR2590699B1 (fr) 1994-07-01

Similar Documents

Publication Publication Date Title
FR2677472A1 (fr) Unite de controle pour memoire cache de second niveau.
US6272587B1 (en) Method and apparatus for transfer of data between cache and flash memory in an internal combustion engine control system
FR2590699A1 (fr) Systeme assurant la coherence pour les contenus d'une antememoire
FR2474201A1 (fr) Procede et dispositif pour gerer les conflits poses par des acces multiples a un meme cache d'un systeme de traitement numerique de l'information comprenant au moins deux processus possedant chacun un cache
FR2539528A1 (fr) Systeme a microprocesseur comportant deux processeurs
FR2906624A1 (fr) Systeme et procede de stockage de masse.
US7260686B2 (en) System, apparatus and method for performing look-ahead lookup on predictive information in a cache memory
US8117395B1 (en) Multi-stage pipeline for cache access
JP2002505535A (ja) 2次元またはそれ以上の次元のプログラミング可能なセル構造を備えたデータフロープロセッサおよびコンポーネントをデッドロックなくコンフィグレーションする方法
EP1510925A2 (fr) Mémoire cache à lecture asynchrone et dispositif de controle de l'accès à une mémoire de données comprenant une telle mémoire cache
FR2602353A1 (fr) Repertoire et controle de cache
CZ9603197A3 (cs) Počítačový systém a způsob přenosu informace
US6412041B1 (en) Real time processing method of a flash memory
EP0160028B1 (fr) Dispositif et procede pour le stockage rapide et stable d'informations
FR2880963A1 (fr) Points d'arrets logiciels destines a etre utilises avec des dispositifs a memoire
CN110457385A (zh) 多租户环境中的可实体化的数据库对象
CA1127317A (fr) Dispositif de conversion d'adresse virtuelle en adresse reelle
Gigli et al. A decentralized oracle architecture for a blockchain-based iot global market
FR2683061A1 (fr) Systeme de segmentation de memoire.
FR2621408A1 (fr) Procede et systeme de gestion des adresses homonymes pour station de travail a antememoire a adressage virtuel et a reinscription
JP2009545811A (ja) エクストリーム仮想メモリ
US8214597B2 (en) Cache tentative read buffer
FR2645297A1 (fr) Ordinateur de transfert avec un trajet de derivation pour le renvoi de donnees a une source de commandes
EP1510926A1 (fr) Dispositif de controle de l'accès à une memoire sécurisée, comprenant un circuit synchrone de recherche d'attributs
FR2732134A1 (fr) Systeme informatique avec memoires hierarchisees

Legal Events

Date Code Title Description
ST Notification of lapse