FR2472232A1 - Dispositif et procede d'effacement d'antememoire - Google Patents

Dispositif et procede d'effacement d'antememoire Download PDF

Info

Publication number
FR2472232A1
FR2472232A1 FR8026453A FR8026453A FR2472232A1 FR 2472232 A1 FR2472232 A1 FR 2472232A1 FR 8026453 A FR8026453 A FR 8026453A FR 8026453 A FR8026453 A FR 8026453A FR 2472232 A1 FR2472232 A1 FR 2472232A1
Authority
FR
France
Prior art keywords
cache
memory
address
directory
duplicate
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
FR8026453A
Other languages
English (en)
Other versions
FR2472232B1 (fr
Inventor
Marion G Porter
Charles P Ryan
James L King
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.)
Bull HN Information Systems Italia SpA
Bull HN Information Systems Inc
Original Assignee
Honeywell Information Systems Italia SpA
Honeywell Information Systems Inc
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 Honeywell Information Systems Italia SpA, Honeywell Information Systems Inc filed Critical Honeywell Information Systems Italia SpA
Publication of FR2472232A1 publication Critical patent/FR2472232A1/fr
Application granted granted Critical
Publication of FR2472232B1 publication Critical patent/FR2472232B1/fr
Expired 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0822Copy directories

Abstract

DISPOSITIF ET PROCEDE D'EFFACEMENT D'ANTEMEMOIRE DANS UN SYSTEME DE TRAITEMENT DE DONNEES A PLUSIEURS PROCESSEURS. LE DISPOSITIF COMPREND UNE UNITE D'ANTEMEMOIRE 41, 42, 43 ET UN REPERTOIRE EN DOUBLE 73, 74, 75 ASSOCIES A CHAQUE PROCESSEUR 37, 38, 39. LE REPERTOIRE EN DOUBLE, QUI REFLETE LE CONTENU DU REPERTOIRE COMPRIS DANS L'UNITE D'ANTEMEMOIRE ASSOCIEE, ET LE REPERTOIRE D'ANTEMEMOIRE SONT CONNECTES PAR UNE UNITE DE COMMANDE DE SYSTEME 55, 58, 59. DES COMMANDES CONCERNANT DES SEGMENTS D'INFORMATIONS DANS LA MEMOIRE PRINCIPALE 50 DU SYSTEME SONT TRANSFEREES PAR L'UNITE DE COMMANDE DE SYSTEME A CHACUN DES REPERTOIRES EN DOUBLE POUR DETERMINER SI LE SEGMENT CONCERNE EST CONTENU DANS LA MEMOIRE DE SON UNITE D'ANTEMEMOIRE ASSOCIEE, AUQUEL CAS LE REPERTOIRE EN DOUBLE EMET UNE COMMANDE D'EFFACEMENT PAR L'UNITE DE COMMANDE DE SYSTEME AFIN D'EFFACER LE SEGMENT D'INFORMATIONS DE L'UNITE D'ANTEMEMOIRE ASSOCIEE. APPLICATION AUX SYSTEMES DE TRAITEMENT DE DONNEES.

Description

La présente invention concerne les systèmes de trai-
tement de données et, en particulier, les systèmes de traitement de données comportant plusieurs processeurs à chacun desquels
est connectée une antémémoire et un répertoire en double asso-
ciés à une unité de commande de système. Une antémémoire est une unité de mémoire (mémoire d'antémémoire) depetite capacité et généralement rapide et un répertoire sert à localiser des informations dans la mémoire d'antémémoire. La mémoire d'antémémoire est généralement plus rapide que la mémoire principale. Si les informations sont inscrites dans la mémoire d'antémémoire, le processeur peut
alors avoir accès plus rapidement aux informations nécessaires.
En outre, la mémoire d'antémémoire a généralement une capacité
qui est une petite fraction de celle de la 'mémoire principale.
Les opérandes et les instructions, auxquels on se référera dans la suite comme étant du genre segments d'informations ou données, sont extraits de la mémoire principale et mémorisés dans la mémoire d'antémémoire ou directement chargés dans cette
dernière à partir de l'unité centrale de traitement (CPU).
Quand l'unité CPU a besoin de segments d'informations, elle a d'abord accès à l'antémémoire. Si les segments d'informations ne sont pas présents dans la mémoire d'antémémoire, ceux-ci sont alors obtenus par accès à la mémoire principale. Les segments d'informations adressés et extraits de la mémoire peuvent être écrits dans la mémoire d'antémémoire quand ils passent par l'unité CPU avant d'être transférés jusqu'au processeur. En général, il est souhaitable que la mémoire principale contienne tous les segments d'informations et que la mémoire d'antémémoire ne contienne que des informations reflétant ce qui est en mémoire principale. De cette façon, si
un périphérique demande des informations qui lui sont trans-
mises à partir d'une portion de la mémoire, et qu'ensuite les segments d'informations soient effacés quand ils proviennent
de la mémoire principale, il est donc possible que l'antémé-
moire d'un ou de plusieurs processeurs contienne des données
qui ne sont plus présentes en mémoire principale.
En outre, il est possible qu'un des processeurs écrive un segment d'informations dans un emplacement particulier de la mémoire-principale. L'antémémoire d'un autre processeur
peut contenir le segment d'informations qui vient d'être remp-
lacé par le premier processeur. Il est donc possible que, si le processeur a accès à ce segment d'informations particulier présent dans sa mémoire d'antémémoire, il puisse agir sur des données qui ne sont plus identiques au segment d'informations
se trouvant en mémoire principale.
Un type d'opération d'effacement d'antémémoire consis-
te à effacer toute l'antémémoire dans tous les processeurs
chaque fois que des données sont écrites dans la mémoire prin-
cipale ou effacées par un périphérique. Cependant, le plus souvent, la majorité des segments d'informations contenus dans l'antémémoire n'ont pas été utilisés par le périphérique et il est probable que des segments d'informations qui viennent d'être effacés doivent être à nouveau extraits de la mémoire principale. Ce type de disposition est décrit dans le brevet
des E.U.A. no 3 845 474, intitulé "Cache Store Clearing Opera-
tion for Multiprocessor Mode".
De nombreux systèmes de traitement de données utili-
sent une segmentation et une pagination de la mémoire. La segmentation est habituellement divisée en plus petites sections que l'on désigne par le terme "pages". Les pages correspondent à des emplacements de mémoire particuliers dans la mémoire d'antémémoire. Il est ainsi possible de construire un dispositif qui permette de n'effacer de façon sélective que certains emplacements de mémoire, c'est-à-dire les emplacements associés à une page particulière, si cette page particulière intervient
dans une opération d'entrée-sortie ou dans un autre processeur.
Ce type d'opération et de dispositif est décrit dans le brevet des E.U.A. no 3 979 726, intitulé "Apparatus for Selectively Clearing a Cache Store in a Processor having Segmentation and Paging". Bien que dans ce dispositif particulier, toute la mémoire d'antémémoire ne soit pas effacée, il n'en est pas moins vrai que des données utiles dans l'antémémoire puissent être effacées si ces données sont relatives à la page qui intervient dans l'opération. Il est donc nécessaire d'avoir accès à des segments d'informations provenant de la mémoire principale
pendant des opérations suivantes de l'unité CPU.
Aucune des dispositions connues ne permet un effa-
cement sélectif d'antémémoire en utilisant un répertoire en double qui communique avec le répertoire d'antémémoire par
l'intermédiaire de l'unité de commande de système.
La présente invention se rapporte à un dispositif d'effacement d'antémémoire d'un système de traitement de
données comportant un ensemble de répertoires en double.
Chaque répertoire en double est connecté par l'intermédiaire d'une unité de commande de système à l'antémémoire de son processeur correspondant. Chaque antémémoire comporte un
répertoire d'antémémoire et une mémoire d'antémémoire.
Dans le but d'utiliser l'adresse d'un segment d'informations particulier dans la mémoire principale comme indicateur d'adresse pour l'antémémoire, l'adresse de mémoire principale est divisée en une partie supérieure et une partie inférieure. La portion inférieure est constituée par les bits de poids faible de l'adresse et la portion supérieure par les bits de poids fort de l'adresse. La portion inférieure est utilisée pour adresser un groupe d'indicateurs d'adresse dans
le répertoire d'antémémoire. Les sorties du répertoire d'anté-
mémoire sont reliées en parallèle à un comparateur pour lui transmettre tous les indicateurs d'adresse du groupe. Les indicateurs d'adresse sont comparés avec la portion supérieure de l'adresse pour déterminer si le segment d'informations demandé est contenu dans la mémoire d'antémémoire. S'il y a correspondance entre l'indicateur d'adresse et la portion supérieure de l'adresse de mémoire principale, le segment d'informations particulier contenu dans la mémoire d'antémémoire
et correspondant à l'indicateur d'adresse du groupe est sélec-
tionné. Cela est réalisé en affectant à chaque indicateur d'adresse du répertoire un niveau qui correspond à un niveau de l'antémémoire. Par exemple, si le répertoire est organisé de telle sorte qu'il y ait huit niveaux, c'est-à-dire huit indicateurs d'adresse qui sont adressés par la portion inférieure de l'adresse de mémoire principale,.l'antémémoire doit avoir huit niveaux. Le comparateur reçoit les huit indicateurs d'adresse de façon à connaître le niveau de chaque indicateur
d'adresse. Si une correspondance est déterminée entre un des-
indicateurs d'adresse et la portion supérieure de l'adresse de mémoire principale, le comparateur engendre un signal de sortie indiquant à l'antémémoire lequel de ses huit niveaux doit être
sélectionné en sortie.
Les indicateurs d'adresse sont mémorisés dans le répertoire par la sélection de la portion inférieure de l'adresse de mémoire principale comme adresse-du répertoire et par la
présence de la portion supérieure de l'adresse de mémoire prin-
cipale aux entrées d'écriture du répertoire d'antémémoire. Le niveau particulier est sélectionné par un compteur à permutation
circulaire (ou tout autre procédé classique). Un bit est égale-
ment associé à chaque indicateur d'adresse de façon à indiquer l'état de plein/vide de l'emplacement de mémoire correspondant dans la mémoire d'antémémoire. Si le bit de plein/vide.eqst'mis à un, il indique que l'emplacement de mémoire correspondant dans l'antémémoire contient un segment d'informations valide qui peut être utilisé par l'unité CPU. Si le bit de plein/vide
n'est pas mis à un, le comparateur n'indique pas de correspon-
dance et ne sélectionne pas un des niveaux dans la mémoire d'antémémoire, même si l'indicateur d'adresse pour ce niveau est identique à la portion supérieure de l'adresse de mémoire
principale. Il n'est donc pas nécessaire d'effacer tout l'indi-
cateur d'adresse ou d'utiliser un autre procédé pour effacer la mémoire d'antémémoire. Le bit de plein/vide du répertoire d'antémémoire est mis à un quand un segment d'informations est écrit dansl'antémémoire et quand la portion supérieure de l'adresse de-mémoire principale est écrite dans le répertoire - comme indicateur d'adresse avec le niveau affecté. Comme on le voit, la portion supérieure de l'adresse de mémoire principale ne peut être écrite que dans le répertoire à partir de l'unité CPU. Cependant, le bit de plein/vide peut être adressé par une
instruction d'effacement de bloc contenant une portion infé-
rieure de l'adresse à partir de l'unité de commande de système.
L'antémémoire est connectée par l'intermédiaire de l'unité de commande de système à la mémoire principale-et à un répertoire en double. Chaque antémémoire du système de traitement de
données est associée à un répertoire en double. Chaque réper-
toire en double comporte des emplacements de mémoire qui correspondent à chaque emplacement de mémoire dans le répertoire d'antémémoire. Le répertoire en double peut mémoriser des indicateurs d'adresse et des niveauxainsi que les bits de plein/vide associés. L'unité de commande de système ou d'autres
unités sont connectées à chacun des répertoires en double.
Le répertoire en double reçoit l'indication précisant qu'un indicateur d'adresse particulier a été écrit dans le répertoire et le groupe de bits de plein/vide précisant que le
segment d'informations dans la mémoire d'antémémoire est valide.
Le répertoire en double répond à ces indications en mémorisant l'indicateur d'adresse au même niveau et en mettant à un son
bit de plein/vide.
Si, par exemple, un autre processeur écrit dans un emplacement de mémoire principale particulier, l'unité de
commande de système associée envoie un signal à l'autre réper-
toire en double pour indiquer l'adresse de mémoire principale qui est affectée. Chaque répertoire en double examine son contenu pour déterminer si cet indicateur d'adresse particulier
formé par, la portion supérieure de l'adresse de mémoire prin-
cipale est contenu à l'adresse définie dans le répertoire en double par la portion inférieure de l'adresse de mémoire principale. Si un des indicateurs d'adresse est déterminé par comparaison comme étant la portion supérieure de l'adresse de mémoire principale et si le bit de plein/vide est mis à un, le répertoire en double remet à zéro le bit de plein/vide pour
indiquer que le segment d'informations contenu dans l'antémé-
moire à cette adresse n'est plus valide. Le répertoire envoie alors un signal d'effacement au répertoire de son antémémoire associée. Le signal d'effacement contient le niveau et la portion inférieure de l'adresse de mémoire principale. Le
niveau transmis est évidemment le niveau qu'occupait l'indica-
teur d'adresse qui correspondait à la portion supérieure de
6 2412232
l'adresse de mémoire principale. Le signal d'effacement contient également des instructions destinées à 1'antémémoire et précisant que le bit de plein/vide du niveau d'adresse
doit être remis à zéro pour indiquer que le segment d'informa-
tions contenu dans l'antémémoire n'est plus valide. L'unité de commande de système est aussi connectée à différents périphériques qui transfèrent des segments d'informations à écrire en mémoire principale et qui reçoivent aussi des segments d'informations de la mémoire principale en
vue de leur utilisation par les périphériques. Les périphéri-
ques sont informés par une des unités CPU, par l'intermiédiaire de l'unité de commande de système, qu'ils doivent lire etS effacer une portion de la mémoire.-Le périphérique demande * -e ainsi, par l'intermédiaire de-l'unité de commande de système, des segments d'informations contenus à certaines adretses de
la mémoire principale et assure l'effacement des segments d'in-
formations correspondants. L'unité de commande de système envoie l'adresse d'un segment d'informations effacé et l'indication ' que l'adresse a été effacée dans chacun des répertoires en double, quand une adresse particulière de la mémoire 1% ncipale ne contient plus de segment d'informations valide puisqu'il a été effacé par le périphérique. Les répertoires en double utilisent alors la portion inférieure de l'adresse de mémoire principale pour avoir accès au groupe approprié d'indicateurs d'adresse dans le répertoire en double. La portion supérieure de l'adresse de mémoire principale est comparée aux indicateurs d'adresse. Si un des indicateurs d'adresse est identique à la portion supérieure de l'adresse de mémoire principale et si le bit de plein/vide est mis à un (c'est-à-dire si l'antémémoire contient un segment d'informations valide), le bit de plein/vide se trouvant dans le répertoire associé à l'indicateur d'adresse
particulier est remis à zéro pour indiquer que la mémoire d'anté-
mémoire ne contient pas de segment-d'informations valide. Un signal d'effacement est alors envoyé à l'antémémoire et le bit de plein /vide durépertoire d'antémémoire est également remis
à zéro, comme indiqué plus haut.
Un avantage de la présente invention est de fournir
un ensemble de répertoires en double fonctionnant par l'inter-
médiaire d'une unité de. commande de système pour faire en sorte qu'aucune des antémémoires ne contienne des segments
d'informations qui soient différents, pour certains emplace-
ments de mémoire, des informations correspondant à ces
emplacements et contenues dans la mémoire d'antémémoire.
Un autre avantage de la présente invention est de fournir un ensemble de répertoires en double qui répondent à des informations lues et effacées par des périphériques, par l'intermédiaire d'une unité de commande de système, pour faire en sorte que, si l'information d'un emplacement de mémoire principale est effacée par un périphérique ou remplacée, la mémoire d'antémémoire des différentes -unités centrales de
traitement de données ne contienne que les segments d'informa-
ttns qui se trouvent alors dans la mémoire principale.
D'autres caractéristiques et avantages de la présente
invention seront mis en évidence dans la description suivante,
donnée à titre d'exemple non limitatif, en référence aux dessins annexés dans lesquels:
Figure 1 est un schéma fonctionnel montrant l'archi-
tecture de base d'un système de traitement de données, Figure 2 est un schéma fonctionnel d'un système de traitement de données à plusieurs processeurs à chacun desquels est associée une unité d'antémémoire ainsi qu'un répertoire en double; Figure 3 est un schéma fonctionnel d'une unité d'antémémoire représentée sur la Figure 2; Figure 4 est un schéma fonctionnel d'un répertoire en double représenté sur la Figure 2; et Figure 5 est un organigramme du fonctionnement des
répertoires en double de la Figure 2.
Sur la Figure 1, une unité centrale de traitement de données (CPU) 10 est connectée à une antémémoire 14 par l'intermédiaire d'un canal multilignes 12. L'antémémoire 14
est connectée à une unité de commande de système 18 par l'in-
termédiaire d'un canal multi-lignes 16. L'unité de commande de système 18 est connectée à une mémoire principale 22 par
8 2472232
l'intermédiaire d'un canal multi-lignes 20. Des périphériques 24 et 25 sont connectés à l'unité_de commande de système
respectivement par des canaux multi-lignes 27 et 28.
L'unité centrale de traitement envoie des demandes-
de segments d'informations-à la mémoire principale 22. L'unité
CPU peut également émettre des commandes par le canal multi-
lignes 12 pour que certains segments d'informations soient-
écrits dans la mémoire principale 22. La demande d'informa-m
tions à lire et les commandes d'écriture traversent l'antémé-
moire 14. La commande de lecture déclenche généralement une recherche dans le répertoire d'antémémoire (non représenté) par utilisation de l'adresse fournie par l'unité centrale de traitement pour adresser un- emplacement de mémoire particulier dans la mémoire principale, afin de déterminer si ce segment d'informations est présent dans la mémoire d'antémémoire. Si le segment d'informations est présent dans l'antémémoire_ le segment d'informations est lu dans la mémoire d'antémémoire
et est envoyé à l'unité centrale de traitement par l'intermé-
diaire du canal multi-lignes 12. La demande de lecture duc segment d'informations dans la mémoire principale 22 est alors annulée. Si les segments d'informations ne sont pas présents= dans, la mémoire d'antémémoire, en correspondance à l'adresse
de mémoire principale, la demande de lecture passe dans Iè,-
canal multi-lignes 16 pour être transmise à l'unité de commande de système 18 et passe dans le canal multi-lignes 20 pour atteindre la mémoire principale 22. Le segment d'informations mémorisé est lu par utilisation de l'adresse fournie par l'unité CPU. Le segment d'informations lu passe en sens inverse dans le canal multi-lignes 20, l'unité de commandedesystème 18
le canal multi-lignes 16, l'antémémoire 14 et le canal multi-
lignes 12 pour atteindre l'unité centrale de traitement CPU 10.
En général, les segments d'informations provenant de la mémoire principale sont contenus dans la mémoire de l'antémémoire 14 de telle sorte que, si l'unité CPU souhaite utiliser ces - segments d'informations pendant des opérations suivantes, ils
sont disponibles dans l'antémémoire.
Pendant une commande d'écriture, les segments.d'infor-
mations à écrire dans la mémoire principale 22 passent dans le canal multi-lignes 12, l'antémémoire 14, le canal 16, l'unité de commande de système 18, et le canal 20. L'unité centrale de traitement peut imposer que les segments d'informations écrits dans la mémoire principale soient aussi écrits dans la mémoire proprement dite( non représentée) de l'antémémoire 14. On notera que tous les segments d'informations présents
dans l'antémémoire sont également contenus, pour une architec-
ture classique, dans la mémoire principale 22. Les périphéri-
ques 24 et 25 peuvent recevoir des segments d'informations provenant de l'unité de commande de système 18 et/ou envoyer à celle-ci des segments d'informations. Par exemple, si le périphérique 24 envoie des segments d'informations à écrire en mémoire principale 22, les segments d'informations passent par un canal 27, l'unité de commande de système 18, et le
canal 20. Si un des segments d'informations en mémoire prin-
cipale 22 est remplacé par un segment d'informations prove-
nant du périphérique 24, ou s'il est possible que cela se
produise, la mémoire de l'antémémoire 14 doit être effacée.
Tout au moins, les segments d'informations remplacés doivent être effacés. Comme on l'a mentionné plus haut à propos de l'art antérieur, on réalise ceci habituellement en effaçant
toute la mémoire d'antémémoire pendant une opération de lec-
ture à partir d'un périphérique.
Si, par exemple, le périphérique 25 doit lire des segments d'informations provenant de la mémoire principale 22 et faire en sorte que ces segments soient effacés, les segments d'informations correspondant à ceux effacés de la mémoire principale et qui sont présents dans l'antémémoire doivent être aussi effacés. Dans l'art antérieur, ainsi qu'on l'a mentionné plus haut, la mémoire de l'antémémoire 14 était
complètement effacée, et pas seulement les segments d'infor-
mations présents dans celle-ci et qui avaient été lus en mémoire principale. On notera qu 'une technique pour effacer la mémoire d'antémémoire consiste à effacer simplement un bit de plein/vide contenu dans le répertoire associé à la mémoire d'antémémoire.
Sur la Figure 2, on a représenté un système de trai-
' tement de données à plusieurs processeurs 34 agencé selon la présente invention. Ce système de traitement de données
34 comporte des unités centrales de traitement (CPU) 37 à 39.
Bien que le système 34 représenté comporte trois unités cen-
trales de traitement, la présente invention peut aussi être
appliquée au cas de deux unités centrales de traitement.
De même, il est possible d'utiliser la présente invention avec
un nombre d'unités centrales de traitement supérieur à deux.
Chacune des unités centrales de traitement 37 à 39 est connec--
tée à une unité d'antémémoire, correspondant aux unités d'anté-
mémoire 41 à 43. L'unité centrale de traitement 37 est connectée s l'unité d'antémémoire 41 par l'intermédiaire d'un canal multi-lignes 45. Les unités centrales de traitement 38 et 39 sont connectées à leurs unités d'antémémoire associées
42 et 43 respectivement par des canaux multi-lignes 47 et 48.
Par l'intermédiaire des canaux multi-lignes 45, 47
et 48, les unités centrales de traitement demandent des seg-
ments d'informations en provenance de la mémoire principale 50 et imposent que certains segments d'informations fournis par l'unité centrale de traitement soient écrits dans la mémoire principale 50. Le fonctionnement des unités d'antémémoire 41 à 43-sera décrit en détail dans la suite en référence à la Figure 3. L'unité d'antémémoire 41 est connectée à une unité de commande de système 55 par l'intermédiaire d'un canal multi-lignes 53. Des unités de commande de système 58 et 59 sont respectivement connectées aux unités d'antémémoire 42 et 43 respectivement par l'intermédiaire de canaux multi-lignes 61 et 62. Bien que cela n'ait pas été représenté sur la Figure 2, les unités de commande de système 55, 58 et 59 sont aussi connectées à des périphériques (non représentés), tels que
les périphériques 24 et 25 de la Figure 1.
Les unités de commande de système 55, 58 et 59
peuvent constituer une seule unité de commande de système.
Une unité de commande de système peut être agencée pour
desservir une ou plusieurs unités centrales de traitement.
Si on utilise plus d'une unité.de commande de système, chacune des unités de commande de système doit alors être reliée électriquement avec toutes les autres. unités de commande.de système de façon que leurs activités puissent être coordonnées correctement. L'unité de commande de système 55 est connectée aux unités de commande de système.58 et 59 respectivement par des canaux 64 et 65. On notera que l'ensemble des canaux de la Figure 2 créent une voie de communication bidirectionnelle entre les unités auxquelles ils sont connectés. L'unité de commande de système 58 est connectée à l'unité de commande de système 59 par l'intermédiaire d'un canal multi-lignes 67. Les unités de commande de système 55, 58 et 59 sont connectées à la mémoire principale 50 respectivement par l'intermédiaire de canaux multi-lignes 69, -70 et 71. Les unités d'antémémoire 41 à 43 comportent respectivement des répertoires en double 73 à 75 associés. Le répertoire en double 73 est connecté à l'unité de commande de système 55 par l'intermédiaire du canal multi-lignes 77. Le répertoire 73 est également connecté aux unités de commande de système 58 et 59 respectivement par l'intermédiaire des canaux multi-lignes 79 et 80. Le répertoire en double 74 est connecté à l'unité de commande de système 58 associée à l'unité d'antémémoire 42 par l'intermédiaire d'un canal multi-lignes 82. Le répertoire en double 74 est également
connecté aux unités de commande de système 55 et 59 respective-
ment par l'intermédiaire de canaux multi-lignes 84 et 85. Le répertoire en double 75 est pareillement connecté aux unités
de commande de système 55 et 58 respectivement par l'intermé-
diaire de canaux multi-lignes 88 et 89. Le répertoire en double est également connecté à l'unité de commande de système 59 par l'intermédiaire d'un canal multi-lignes 92, l'unité 59
étant connectée à son unité d'antémémoire 43 associée.
Les unités centrales de traitement 37, 38 et 39 peuvent demander un segment d'informations provenant de la mémoire principale 50 en fournissant une adresse concernant l'emplacement de mémoire particulier qui contient le segment d'informations voulu et une commande. de lecture. Les unités centrales de traitement 37, 38 et 39 peuvent aussi écrire un
segment d'informations dans la mémoire principale 50 en comman-
- 2472232
dant respectivement les unités de commande de système 55,
58 et 59 et en fournissant l'adresse o le segment-d'informa-
tions particulier doit être écrit ainsi que le segment d'in-
formations. Par exemple, l'unité centrale de traitement 37 demande un segment d'informations contenu à une adresse par- ticulière dans la mémoire principale par l'intermédiaire du canal multi-lignes 45, de l'unité d'antémémoire 4I, du canal
53, de l'unité de commande de système 55 et du canal 69.
Cette commande de lecture indique que le segment d'informa-
tions doit être transféré à une adresse particulière dans la commande à l'unite centrale de traitement 37. La mémoire principale 50 situe le segment d'informations en utilisant l'adresse contenue dans la commande de lecture et fournit le segment d'informations à l'unité centrale de traitement 37 par l'intermédiaire du canal 69, de l'unité de commande de système 55, du canal 53, de l'unité d'antémémoire 41, et du canal 45. Des commandes de lecture peuvent être aussi émises par les périphériques connectés aux unités de commande de système 55, 58 et 59. Les commandes de lecture peuvent aussi effacer des segments d'informations de la mémoire principale
après que les segments d'informations ont été transférés -
par l'intermédiaire de l'unité de commande de système concernée.
Quand l'unité centrale de traitement 37 demande un segment d'informations particulier, la demande va d'abord
à l'unité d'antémémoire 41 par l'intermédiaire du canal 45.
L'unité d'antémémoire détermine normalement si le segment d'informations demandé est contenu dans sa propre mémoire 110 (Figure 3). Si le segment d'informations est-présent dans la mémoire d'antémémoire, l'opération de lecture de la mémoire principale est annulée. Si -le segment d'informations n'est pas contenu dans la mémoire d'antémémoire, l'opération continue comme décrit plus haut et le segment d'informations est extrait de la mémoire principale. Comme spécifié par l'unité centrale de traitement 37, quand le segment d'informations particulier demandé à la mémoire principale 50 est transféré de l'unité de commande de système 55 à l'unité d'antémémoire 41, le segment d'informations est à la fois transféré jusqu'à l'unité
centrale de traitement 37 et mémorisé dans la mémoire d'anté- mémoire 1.10 (Figure 3) de l'unité 41.
Quand l'unité centrale de traitement 37 émet une commande d'écriture et fournit l'adresse de l'emplacement de la mémoire principale 50 o le segment d'informations, fourni par l'unité centrale de traitement 37, doit être écrit, la commande d'écriture peut provoquer, si l'unité centrale de
traitement 37 l'indique ainsi, l'écriture du segment d'infor-
mations par l'unité d'antémémoire 41 dans la mémoire d'antémé-
moire 110. La commande d'écriture va ensuite à l'unité de commande de système 55 et enfin à la mémoire principale 50
pour y être écrite à l'emplacement de mémoire adressé.
Le répertoire en double 73 qui est associé à l'unité
d'antémémoire 41 conserve un enregistrement de tous les empla-
cements de mémoire de la mémoire principale 50 dont les contenus sont également mémorisés dans la mémoire de l'unité d'antémémoire 41. Le répertoire en double 73 détermine s'il y a ou non correspondance entre l'emplacement de mémoire en cours d'adressage et un emplacement de mémoire indiqué comme ayant son segment d'informations également contenu dans la mémoire 110 (Figure 3) de l'unité d'antémémoire 41. Le procédé particulier d'écriture et de lecture qui est utilisé par le répertoire en double et l'unité d'antémémoire pour déterminer si l'emplacement de mémoire principale adressé a ou non son segment d'informations contenu dans la mémoire d'antémémoire
est semblable.
Le répertoire en double 73 reçoit également des signaux d'entrée provenant des autres unités de commande de système 58 et 59 pour déterminer si une des opérations de l'unité centrale de traitement ou d'un périphérique se faisant par l'intermédiaire des unités de commande de système affecte l'un des emplacements de mémoire principale qui ont aussi leurs segments d'informations mémorisés dans la mémoire de l'unité d'antémémoire 41. Par exemple, si l'unité de commande de système 58 reçoit une commande d'écriture de l'unité centrale de traitement 38 pour effectuer. une opération d'écrituredans un certain emplacement de mémoire principale, les répertoires en double 73 et.75 en sont avertis par - l'intermédiaire des canaux 79 et 89. Les répertoires en double 73 et 75 contrôlent leurs contenus pour déterminer si les unités d'antémémoire associées 41 et 43 contiennent.le segment d'informations dans cet emplacement particulier. Si le répertoire en double 73 détermine que le segment d'informations est contenu dans la mémoire 110 de l'unité d'antémémoire, une commande d'effacement est lancée par le répertoire en double 73 par l'intermédiaire du canal 77. L'unité de commande de système 55 transmet la commande par le canal 53 jusqu'à l'unité d'antémémoire 41 et
ce segment d'informations particulier est effacé de la mémoire-
de l'unité d'antémémoire. Si le répertoire en double.75 déter-
mine que l'unité d'antémémoire 43 contient le segment d'inforz.
mations dans cet emplacement particulier, il émet également par le canal 92 une commande d'effacement qui est transmise l'unité d'antémémoire 43 par l'intermédiaire de l'unité de commande de système 59. Le segment d'informations particulier
est effacé de la mémoire (non représentée) de l'unité d'anté-
mémoire 43.
Une séquence semblable de produit si l'unité de commande de système 58, quand elle est commandée par l'unité: centrale de traitement 38, autorise un périphérique à lire et à effacer des emplacements de mémoire principale. Les réper- * toires en double 73, 74 et 75 contrôlent chaque adresse des
emplacements de mémoire pour déterminer si les unités d'anté--
mémoire 41, 42 et 43 contiennent ou non le segment d'informa-
tions se trouvant dans l'emplacement correspondant de mémoire principale. Si le répertoire en double 73 détermine que la mémoire 110 de l'unité d'antémémoire 41 contient le segment d'informations se trouvant dans l'emplacement correspondant de mémoire principale, le répertoire en double émet la commande d'effacement comme décrit plus haut. Les répertoires
en double 74 et 75 émettent également des commandes d'efface-
ment s'ils déterminent que leur mémoire (non représentée)
d'antémémoire associée 42 ou 43 contient le segment d'informa-
tions se trouvant dans l'emplacement correspondant de mémoire principale. Un type de système utilisant des répertoires en
double est décrit dans la demande de brevet des E.U.A.
n0 968-223, déposée le il décembre 1978 et intitulée
"Apparatus for Selectively Clearing a Cache Store".
L'unité d'antémémoire 41 de la Figure 2 est représentée plus en détail sur la Figure 3. Les unités d'antémémoire 41, 42 et 43 (Figure 2) sont semblables du point
de vue conception et la description d'une seule d'entre elles
sera suffisante. Comme le montre la Figure 2, les lignes d'entrée 112 et les lignes de sortie 114 du canal 45 sont
représentées séparément. Les fonctions classiques de synchro-
nisation et autres commandes logiques prévues dans un disposi-
tif de ce type sont toutes utilisées. Des lignes autres que les lignes 112 et 114 sont donc présentes dans le canal 45. La même considération s'applique aux autres canaux qui seront
décrits plus en détail en relation avec les Figures 3 et 4.
Les lignes d'entrée 112 sont connectées à des commutateurs de données 118, 119 et 120, à des registres 122 à 124, et à un comparateur 126. Le commutateur de données 119 reçoit seulement la portion inférieure de l'adresse de mémoire principale et fournit l'adresse à un répertoire d'antémémoire 129. Le répertoire d'antémémoire 129 -est une mémoire à accès
sélectif qui est organisée selon un système d'adressage asso-
ciatif par niveaux. La sortie du commutateur de données 119 est connectée au commutateur de données 135, au répertoire 129 et à un registre 137 par l'intermédiaire d'un canal multi-lignes 132. Le registre 137 a sa sortie connectée à une entrée du
commutateur 119 par l'intermédiaire d'un canal multi-lignes 140.
La sortie du commutateur de données 135 est connec-
tée à un registre d'adresse 143 par l'intermédiaire d'un canal multilignes 142. Le registre d'adresse 143 fournit l'adressage nécessaire à la mémoire 110 par l'intermédiaire-d'un canal multi-lignes 144. Les données à écrire dans la mémoire 110 d'antémémoire sont fournies à partir du commutateur de données 118 par l'intermédiaire d'un canal multi-lignes 146. Le comparateur 126 fournit un signal de sortie à un commutateur de données 151 par l'intermédiaire, d'un canal 148. Le commutateur de données 151 reçoit également à ses entrées les signaux de 16. sortie de la mémoire 110 d'antémémoire par l'intermédiaire d'un ensemble de canaux 155. La sortie du commutateur de données 151 est reliée à un registre 158 par l'intermédiaire d'un canal multi-lignes 160.-La sortie du registre 158 est connectée à un commutateur de données 164 par l'intermédiaire d'un canal multi-lignes 162. La sortie du commutateur de données 164 est connectée aux lignes de sortie 114 reliées à l'unité
CPU 37 (Figure 2).
Si des données doivent être écrites dans la mémoire d'antémémoire à partir de l'unité CPU 37, l'adresse et la commande arrivent par les lignes d'entrée 112. La commande d'écriture contient toute l'adresse d'emplacement de mémoire principale pour le segment d'informations particulier à écrire dans la mémoire d'antémémoire. La portion inférieure de l'adresse, constituée spécifiquement par les bits 24 à 30, est envoyée au répertoire d'antémémoire 129 par l'intermédiaire du commutateur de données 119. La portion supérieure de l'adresse est envoyée au comparateur 126 et à la mémoire 110 d'antémémoire. Le segment d'informations à écrire dans la mémoire 110 d'antémémoire est transmis à partir des lignes d'entrée 112 à la mémoire 110 d'antémémoire par l'intermédiaire du commutateur de données 118 et du-canal 146. L'adresse de l'emplacement de la mémoire d'antémémoire o le segment d'informations doit être écrit, qui est contenue dans le registre 143, est transmise par la portion inférieure de-l'adresse de mémoire principale, par l'intermédiaire du canal 132, du commutateur de données 135 et du canal 142. La mémoire 110 d'antémémoire est agencée de façon que l'adresse transmise à partir du registre 143 par l'intermédiaire du canal multi- lignes 144 sélectionne un groupe
de huit emplacements de mémoire pour le segment d'informations.
L'emplacement particulier parmi les huit emplacements de mémoire (qui sont désignés dans la suite par le terme niveaux) est fourni par un compteur à permutation circulaire (non représenté) d'une unité de commande 167. Quand la portion inférieure de
l'adresse est envoyée au répertoire d'antémémoire 129, un.
groupe de huit indicateurs d'adresse différents dans huit emplacements de mémoire dans le répertoire d'antémémoire sont transmis de sa sortie au comparateur 126. Le comparateur 126 détermine si celui des huit indicateurs d'adresse différents
du groupe qui est transmis est identique à la portion supé-
rieure de l'adresse de mémoire principale <constituée par les bits 10 à 23). Pendant une opération de lecture normale, la commande provenant de l'unité CPU 37 est introduite dans l'unité d'antémémoire 41 et le commutateur de données 119 est commandé par l'unité de commande 167 pour envoyer la portion inférieure de l'adresse au répertoire d'antémémoire
129 et au commutateur de-données 135. Le commutateur de.
données 135 est commandé pour sélectionner la sortie du commutateur de données 132 par l'unité de commande 167. La portion inférieure de l'adresse de mémoire principale est écrite dans le registre 143. La sortie de la mémoire 110 d'antémémoire engendre un des huit segments d'informations qui passent dans les canaux 155 et qui peuvent être sélectionnés
par le commutateur 151.
La sélection d'un des huit segments d'informations de la sortie du commutateur 151 est faite par le comparateur 126. Quand la portion inférieure de l'adresse de mémoire principale est transférée du commutateur 119 au répertoire 129,
la sortie du répertoire d'antémémoire par rapport au compara-
teur 126 engendre huit indicateurs d'adresse qui représentent la portion supérieure de l'adresse de mémoire principale pour les huit segments d'informations correspondants contenus dans la mémoire 110 d'antémémoire. Le comparateur 126 compare la portion supérieure de l'adresse de mémoire principale provenant des lignes d'entrée 112 avec chacun des indicateursd'adresse
fourni par le répertoire d'antémémoire 129. Si un des indica-
teurs d'adresse correspond à la portion supérieure de l'adresse de mémoire principale, le comparateur 126 indique quel niveau est associé à l'indicateur d'adresse. La transmission du niveau au commutateur 151 permet à celui-ci de sélectionner ledit niveau et le segment d'informations correct est chargé dans le registre 158 avant d'être transmis à l'unité CPU 37
(figure 2) par l'intermédiaire du commutateur de données 164.
Ce commutateur de données 164 est commandé par l'unité de
commande 167.
Dans un répertoire:d'antémémoire agencé de façon particulière, le niveau occupé par le segment d'informations dans la mémoire 110 d'antémémoire est mémorisé avec la portion supérieure de l'adresse de mémoire principale (ou indicateur d'adresse). Des bits de plein/vide sont également associés à l'indicateur d'adresse (ou portion supérieure de l'adresse de mémoire principale), ces bits indiquant que l'indicateur d'adresse particulier correspond à un segment d'informations valide dans la mémoire 110 d'antémémoire. Les commandes et
l'adresse de l'emplacement de mémoire convenable dans la mémoi-
re principale ne sont pas seulement transmises au commutateur de données 119 et au comparateur 126, mais également à un ensemble de registres de mémorisation temporaire représentés par le registre 123. L'unité, de commande 167 fournit le1 signaux de commande nécessaires au registre 123. Il est apparu utile, dans certaines applications, de pouvoir mémoriser quatre demandes de lecture séparées. Chaque registre est agencéYpour mémoriser non seulement le segment de commande de la demande de lecture mais aussi l'adresse dans la mémoire principale et le niveau affecté dans la mémoire 110 d'antémémoireo le segment d'informations lu dans la mémoire principale doit être écrit si le segment d'informations n'est pas contenu dans la mémoire d'antémémoire. Lorsque le comparateur 126 détermine que le segment d'informations est déjà présent dans la mémoire 110 d'antémémoire, l'opération de lecture est annulée et cette
demande de lecture particulière est enlevée du registre 123.
* Dans certaines conditions, des demandes de lecture sont intro-
duites dans le registre 123 tandis que la mémoire d'antémémoire
exécute d'autres fonctions dans le répertoire d'antémémoire.
Il est quelquefois souhaitable que la portion inférieure de l'adresse mémorisée dans le registre 123 soit envoyée au commutateur de données 135 par l'intermédiaire du canal multi-lignes 178. La-portion inférieure de l'adresse de mémoire principale qui est envoyée à partir du registre 123 dans le registre 143 par l'intermédiaire du commutateur de
données 135 est utilisée pour-fournir à la mémoire 110 d'anté-
mémoire l'adresse o les données sont lues dans la mémoire principale par l'intermédiaire de l'unité de commande de système (comme il sera décrit en détail dans la suite). Le contenu du registre 123 est aussi envoyé à un comparateur 181 et à un commutateur de données 182. Le commutateur de données 182 qui est commandé par l'unité de commande 167 est connecté par sa sortie à l'unité de commande de système 55 (Figure 2) par l'intermédiaire des lignes de sortie 186 du canal' 53. La sortie du commutateur de données 182 est aussi connectée au commutateur de données 118 par l'intermédiaire d'un canal
multi-lignes 188.
Un comparateur 180 compare les signaux de sortie du commutateur de données 120 au contenu du registre 123 pour déterminer si une des demandes de lecture se trouvant dans le registre 123 est présente à nouveau sur les lignes 112 ou si une commande d'effacement (qui sera décrite en détail dans la suite à propos du registre 210) est reçue en provenance de
l'unité de commande de système. Le signal de sortie du compara-
teur 182 envoyé sur la ligne 190 empêche le comparateur 126 d'engendrer un signal de sortie interdisant le transfert à l'unité CPU 37 d'un segment d'informations qui doit être effacé. La ligne 190 peut être aussi connectée à l'unité de
commande 167.
Des commandes d'écriture provenant de l'unité CPU sont mémorisées dans le registre 124. L'unité de commande 167 peut engendrer les signaux de commande convenables pour le chargement de la commande d'écriture dans le registre 124. La sortie du registre 124 est connectée au commutateur de données 182 par l'intermédiaire d'un canal multi-lignes 197. L'adresse
du segment d'informations qui doit être écrit en mémoire princi-
pale peut traverser les commutateurs de données 119 et 135 et
être introduite dans le registre 143. Les segments d'informa-
tions qui sont chargés peuvent traverser le commutateur de données 182 à partir du registre 124 et passer dans le canal multi-lignes 188 et le commutateur de données 118 pour entrer dans la mémoire 110 d'antémémoire. En même temps, la portion inférieure de l'adresse de mémoire.-principale devient un
indicateur d'adresse qui est chargé dans le répertoire d'anté-
mémoire 129 au niveau déterminé par le-compteur à permutation circulaire(non représenté). Le même niveau est également fourni simultanément à la mémoire-1iO. d'antémémoire. Le niveau est introduit dans le répertoire d'antémémoire avec l'indicateur d'adresse et.le bit de plein/vide est mis à un pour indiquer
l'état plein.
Dans certaines conditions, il est nécessaire que la portion inférieure de l'adresse de mémoire principale soit
mémorisée temporairement avant d'être utilisée par le réper-
toire d'antémémoire dans la mémoire d'antémémoire. Dans ce cas, la portion inférieure de l'adresse de mémoire principale est chargée dans le registre 137 et les signaux de sortie du commutateur de données 119 deviennent les signaux de sortie du
registre 137 au moment approprié.
Les lignes d'entrée 199 partant de l'unité de
commande de système 55 et qui font partie des lignes consti-
tuant le canal 53 sont connectées à un registre 204. La sortie
du registre 204 est connectée à un registre 210 et aux commuta-
teurs de données 118 et 164 par l'intermédiaire d'un canal multi-lignes 206. Le commutateur de données 164 peut ainsi avoir sa sortie sélectionnée parmi les sorties du registre 158
ou du registre 204. Le registre 210 mémorise des commandes -
d'effacement provenant de l'unité de commande de système 55.
Jusqu'à quatre de ces commandes peuvent être mémorisées dans le registre 210. Les commandes-d'effacement sont ensuite
envoyées aux commutateurs de données 120 et 119 par l'inter-
médiaire d'un canal multi-lignes 212. Ces commandes d'effacement ont une priorité, établie par l'unité de commande 167, sur les opérations ordinaires de l'unité d'antémémoire 41. La portion inférieure de l'adresse de mémoire principale est fournie au répertoire d'antémémoire par l'intermédiaire du commutateur de données 119. Le bit de plein/vide de l'indicateur d'adresse convenable dans le répertoire d'antémémoire 129 est mis à un
pour indiquer que la mémoire d'antémémoire est vide (c'est-à-
dire que le segment d'informations contenu dans cet emplacement particulier de la mémoire d'antémémoire ne représente plus un segment d'informations valide).. Une partie de la commande mémorisée dans le registre 210,qui est constituée par le niveau de-l'indicateur d'adresseest fournie au répertoire d'antémémoire-129 (par l'intermédiaire de lignes non repré-
sentées) et peut être transférée par le compteur à permuta-
tion circulaire pour fournir l'information nécessaire pour rechercher lequel des huit indicateurs d'adresse, adressés par la portion inférieure de l'adresse de mémoire principale provenant du registre 210, doit avoir son bit de plein/vide remis à zéro. Dans une commande de lecture normale, le segment d'informations à écrire dans la mémoire d'antémémoire est envoyé à la mémoire 110 d'antémémoire par l'intermédiaire du canal 206 et du commutateur de données 118 et la portion inférieure de l'adresse de mémoire principale est envoyée au registre 143 à partir du registre 137 ou du registre 123. Le
segment d'informations doit être écrit dans la mémoire d'anté-
mémoire après sa lecture dans la mémoire principale, s'il n'était pas présent auparavant dans la mémoire d'antémémoire,
et l'opération de lecture ne doit pas être annulée.
Le répertoire en double 73 (Figure 2) est représen-
té en détail sur la Figure 4. Les répertoires en double 73, 74 et 75 sont de conception semblable et par conséquent il suffit d'en décrire un seul de façon détaillée. Le canal multi-lignes 77 représenté sur la Figure 4 est constitué par des lignes d'entrée 220 et des lignes de sortie 222. Les lignes d'entrée 220 sont connectées à des registres 225 et 226. Les commandes de lecture et d'écriture en provenance de l'unité CPU 37 (Figure 2) et transférées par l'intermédiaire de l'unité d'antémémoire 41 et de l'unité de commande de système 55 sont introduites dans le répertoire en double à partir de l'unité de commande de système 55 par l'intermédiaire des lignes d'entrée 220. Ces commandes sont aussi transférées à la mémoire principale par-l'intermédiaire du canal multi- lignes 69 (Figure 2). Le registre 226 engendre à sa sortie la commande et la portion d'adresse de celle-ci qui sont transmises à un commutateur de données 228. Une unité logique de répertoire
230 examine la commande dans le registre 226 par l'intermé-
diaire d'un canal multi-lignes.232. La commande indique que des informations ont été écrites dans la mémoire d'antémémoire ou seront écrites dans cette mémoire après lecture dans la mémoire 50 (Figure 2). Dans le cas o la commande indique qu'il y a eu ou qu'il y aura un changement dans le répertoire 129, le répertoire 230 émet un signal de mise à un ou de remise
à zéro par une ligne 235, en direction de la mémoire de réper-
toire en double 237. L'unité logique 230 fait aussi fonctionner le commutateur de données 228 et le commutateur de données 239 respectivement par l'intermédiaire de lignes 241 et 242. Si cela est nécessaire, -les commandes de lecture et d'écriture en provenance de l'unité centrale de traitement peuvent être mémorisées dans le registre 225. Le registre 225 doit être agencé pour mémoriser plus d'une commande. Des signaux de
lecture/effacement en provenance de périphériques par l'inter-
médiaire de l'unité de commande de système 55 peuvent être
aussi mémorisés dans le registre 225.
Les commandes de lecture et d'écriture et des commandes d'effacement en provenance des unités de commande de système 58 et 59 sont transmises par les canaux 79 et 80 respectivement à des registres 244 et 245. Les registres 244 et 245 doivent être agencés pour mémoriser plus d'une commande. La sortie du registre 244 est connectée au commutateur de données 239 par l'intermédiaire d'un canal multi-lignes 247, et le registre 245 est connecté au commutateur 239 par l'intermédiaire d'un canal multi-lignes 249. Le contenu du registre 225 est aussi envoyé à une entrée du commutateur de données 239 par l'intermédiaire d'un canal multilignes 251. La sortie du commutateur de données 239 est connectée à un registre 255 par l'intermédiaire d'un canal multi-lignes 253. La sortie du registre 255 est connectée à une entrée du commutateur de
données 228 par-l'intermédiaire d'un canal multi-lignes 257.
Ainsi, toutes les commandes provenant de l'unité de commande de système 55 (Figure 2) peuvent être chargées dans le registre 226 si une action immédiate est nécessaire et si ce registre
est sélectionné par la sortie du commutateur de données 228.
Autrement, les commandes peuvent traverser le registre 225 et être sélectionnées par la sortie du commutateur de données
239 pour être chargées dans le registre 255.
L'unité de commande 230 peut sélectionner la sortie du registre 255 comme la sortie du commutateur de
données 228. La sortie du commutateur de données 228 est con-
nectée à un registre 261 à la mémoire de répertoire en double 237 et à un comparateur 264,par l'intermédiaire d'un canal multi-lignes 259. Seule l'adresse de l'emplacement de mémoire principale affectée par la commande est transférée jusqu'au registre 261 pour y être chargée. La portion inférieure de l'adresse de mémoire principale est utilisée par un canal 266 de répertoire
comme adresse pour la mémoire/en double 237. La portion supé-
rieure de l'adresse de mémoire principale est envoyée à la mémoire de répertoire en double 237 par l'intermédiaire d'un canal multi-lignes 268. La portion supérieure de l'adresse de mémoire principale et le niveau sont envoyés à la mémoire de répertoire en double pour y être mémorisés. Le bit de plein/ vide d'un indicateur d'adresse est mis à un ou remis à zéro
par l'unité logique 230 par l'intermédiaire de la ligne 235.
La portion supérieure de l'adresse de mémoire principale est aussi envoyée à un comparateur 264. Si la mémoire de répertoire
en double est en train d'être lue pour déterminer si un indi-
cateur d'adresse particulier est identique à la portion supé-
rieure de l'adresse de mémoire principale sur le canal 259, un nombre d'indicateurs d'adresse, par exemple huit, sont envoyés au comparateur 264 par l'intermédiaire d'un canal multi-lignes 270. Le comparateur 264 détermine si un des indicateurs d'adresse représente la portion supérieure de l'adresse de mémoire principale. Si un des indicateurs d'adresse est identique à la portion supérieure de l'adresse de mémoire principale, le niveau associé à cet indicateur d'adresse est établi à la sortie du comparateur 264 pour être transféré à une entrée du registre 261 par -l'intermédiaire d'un canal multi-lignes 272. La fonction du répertoire en double 73 de
la Figure 4 est décrite en détail en relation avec la Figure 5.
Cependant, un bref exemple de son fonctionnement facilitera dès
maintenant la compréhension de l'invention.
L'unité centrale de-traitement 38 engendre une commande-d'écriture à une adresse particulière dans- la mémoire principale. Cette commande traverse l'unité d'antémémoire-42 et entre dans l'unité de commande de système 58. L'unité de commande de système 58 envoie-l'adresse de la commande et sa
nature par le-canal multi-lignes 79 et la commande est mémori-
sée dans le-registre 244. A ce niveau, le contenu du registre 244 qui représente cette commande d'écriture est chargé dans le registre 255 par l'intermédiaire-du commutateur de données 239 sous la commande de l'unité logique 230. Le registre 255 est sélectionné comme la sortie du commutateur de données 228 et l'adresse est envoyée à la mémoire de répertoire en double
comme décrit plus haut. En supposant que la mémoire 110 d'anté-
mémoire contient le segment d'informations qui était présent avant cette commande d'écriture, la mémoire de répertoire en double contient alors l'indicateur d'adresse de cet emplacement
de mémoire particulier et le comparateur 264 engendre le niveau.
de cet indicateur d'adresse.
On notera que le comparateur 264 détermine également si le bit de plein/vide associé à l'indicateur d'adresse qui est identique à la portion supérieure de l'adresse de mémoire principale est mis à un. Si le bit de plein/vide n'est pas mis à
un, le comparateur 264 n'envoie pas le niveau au registre 261.
Une commande d'effacement est engendrée par le registre 261
sous la commande de l'unité logique 230. Cette commande d'effa-
cement contient le code nécessaire qui est reconnu comme une commande d'effacement par l'unité d'antémémoire 41 de même que
la portion inférieure de l'adresse de mémoire principale prove-
nant du registre 255 par l'intermédiaire du commutateur de
données 228 et le niveau déterminé par le comparateur 264.
Cette commande d'effacement est transférée à l'unité de commande de système 55 par l'intermédiaire des lignes de sortie 222. L'unité de commande de système 55 (Figure 2) transmet la
commande d'effacement i l'unité d'antémémoire 41 par-l'inter-
médiaire des lignes d'entrée 199. La commande d'effacement est reconnue par l'unité de commande 167 et elle est chargée dans le registre 210. Le niveau qui doit être effacé provient par exemple du compteur à permutation circulaire (non représenté), et le bit de plein/vide de l'indicateur approprié des huit indicateurs d'adresse adressés par la portion inférieure de l'adresse de mémoire principale est remis à zéro. Le bit de plein/vide remis à zéro indique que le segment d'informations contenu dansla mémoire 110 d'antémémoire qui est associé à
l'indicateur d'adresse particulier n'est plus valide.
Le fonctionnement du répertoire en double 73 et de l'unité d'antémémoire 41 sera décrit en détail dans la suite
en relation avec l'organigramme logique de la Figure 5.
Sur la Figure 5, après l'opération d'initialisation, les circuits logiques entrent dans l'état défini par le bloc
277. On passe ensuite dans le bloc 279 o un contrôle est effec-
tué pour déterminer si une commande a été reçue par les registres 225, 226, 244 ou 245 (Figure 4). Si une commande n'a pas été
reçue, une boucle est suivie par le branchement 280 pour reve-
nir au bloc 277. Si une commande a été reçue, on passe du bloc 279 au bloc 281. Dans le bloc 281, un contrôle est fait pour déterminer si la commande reçue provenait de l'unité centrale de traitement 37 associée. Les commandes présentes dans les registres 244 et 245 proviennent respectivement des unités de commande de système 58 et 59. Les commandes présentes dans les registres 225 et 226 proviennent de l'unité de commande de système 55. Si la commande reçue provient de l'unité CPU 37 par l'intermédiaire de l'unité de commande de système 55, on passe au bloc 286 par le branchement 284. Cependant, si le
contrôle fait dans le bloc 281 détermine que la commande pro-
venait d'une des unités centrales de traitement 38 et 39 ou d'un des périphériques connectés à une des unités de commande de système 55, 58 et 59, on passe au bloc 291 par le branchement 289. En supposant que la commande provenait de l'une des unités centrales de traitement 38 et 39 ou d'un des périphériques connectés aux unités de commande-de système 55, 58 et 59 et qu'on
se trouve dans le bloc 291, un contrôle est effectué pour déter-
miner si la commande particulière est une commande de lecture.
Si la commande est une commande de lecture, on passe au bloc 296 par le branchement 294. Dans le bloc 296, les données demandées sont envoyées de la mémoire principale 50 (Figure 2)
à l'unité de.commande de système appropriée et de là au péri-
phérique ou à l'unité centrale de traitement demanderesse. Le répertoire en double 73 n'intervient pas. Si la commande reçue n'est pas unecommande de lecture, on passe du bloc 291 au bloc 298. Dans le bloc 298, un contrôle est effectué pour déterminer si cette commande particulière est une commande de lecture/effacement. Si on a affaire à une commande de lecture/ effacement, on passe du bloc 298 au bloc 304. Dans le bloc. 304, l'adresse des informations demandées est envoyée à la mémoire de répertoire en double 237 (Figure 4). Les contenus des mémoires de répertoire en double (non représentées) transférés
dans les répertoires en double 74 et 75 sont également examinés.
On passe ensuite du bloc 304 au bloc 307.
Dans le bloc 307, un contrôle est effectué poixa déterminer si l'un des comparateurs, tels que le comparateur 264 (Figure 4), a ou non identifié un des indicateurs d'adresse,
qui a été adressé par la portion inférieure de l'adresse 'de-
mémoire principale et qui correspond à la portion supérieure de l'adresse de mémoire principale. Si le comparateur 264, patte exemple, ne trouve pas l'indicateur d'adresse dans la mémoire
de répertoire en double, on passe au bloc 296 par le branctIêe-
ment 310. Dans le bloc 296, le segment d'informations demandé est transféré de la mémoire principale à l'unité de commande de système et de là à l'unité centrale de traitement demanderesse
ou au périphérique demandeur. Si, dans le bloc 307, une cor-
respondance est déterminée par un comparateur entre la portion
supérieure de l'adresse de mémoire principale et un des indi-
cateurs d'adresse qui ont été adressés par la portion inférieure de l'adresse de mémoire principale, on passe du bloc 307 au
bloc 312. Dans le bloc 312, le bit de plein/vide de l'indica-
teur d'adresse qui correspond à la portion supérieure de l'adresse de mémoire principale est remis à zéro pour indiquer que l'emplacement correspondant de la mémoire d'antémémoire ne
contient pas. de segment d'informatior valide.
Le niveau de l'indicateur d'adresse qui correspon-
dait à la portion supérieure de l'adresse de mémoire principale
est envoyé au registre 261 par l'intermédiaire du canal 272.
Le registre 261 engendre une-commande d'effacement sous la commande de l'unité logique 230. L'adresse concernant la portion inférieure de l'adresse de mémoire principale est obtenue à partir du registre 255 et chargée dans le registre 261. La commande d'effacement est ensuite transférée par les lignes de sortie 222 et la ligne d'entrée 199 (Figure 3), jusqu'au registre 204. La commande d'effacement est ensuite chargée dans le registre 210, -le bit de plein/vide est adressé par la portion inférieure de l'adresse de mémoire principale, et le niveau contenu dans la commande, tel que fourni par la commande, a son bit de plein/vide remis à zéro, ce qui indique que l'emplacement de mémoire 110 d'antémémoire qui correspond
à celui-ci ne contient pas de segment d'informations valide.
On passe ensuite du bloc 312 au bloc 296 et les données sont envoyées de la mémoire principale 50 (Figure 2) au périphérique
ou à l'unité centrale de traitement demanderesse.
Si la commande examinée dans le bloc 298 n'est pas une commande de lecture/effacement, on passe au bloc 318 par le branchement 316. Cela implique que la commande est une commande d'écriture servant à écrire un segment d'informations dansJa mémoire principale 50. Dans le bloc 318, les répertoires en double 73, 74 et 75 sont examinés pour déterminer si leur
mémoire d'antémémoire associée contient le segment d'informa-
tions dont l'adresse de mémoire principale est fournie par la
commande d'écriture si celle-ci a été émise par un périphérique.
La portion inférieure de l'adresse de mémoire principale est ainsi envoyée aux mémoires des répertoires en double 73, 74 et 75. On passe ensuite du bloc 318 au bloc 320. Si la commande
d'écriture provient de l'une des unités CPU 42 et 43, l'indi-
cateur d'adresse et le niveau sont écrits, dans les mémoires des répertoires en double 74 et 75, dans le bloc 318 si une
entrée a. été faite. dans 1'antémémoire associée.
Dans le bloc 320, les sorties des comparateurs des répertoires en double 73, 74 et 75, qui sont semblables au
comparateur 264 -pour déterminer si les mémoires des réper-
toires en double contiennent un indicateur d'adresse qui indique que les unités d'antémémoire associées 41, -42 et 43, contiennent respectivement un segment d'informations qui correspond à l'adresse de mémoire principale. Si un indicateur d'adresse a été écrit dans une mémoire de répertoire en double
dans le bloc 318, le comparateur associé n'est pas examiné.
S'il a été déterminé qu'aucun des indicateurs d'adresse n'indique que les mémoires d'antémémoire contiennent ce segment d'informations particulier, on passe alors au bloc 324 par le branchement 322. S'il a été déterminé qu'une ou plusieurs mémoires des répertoires en double 73, 74 et 75 contiennent un indicateur d'adresse précisant que la mémoire d'antémémoire associée contient le segment d'informations affecté par la commande d'écriture, on passe du bloc 320 au bloc 326. Dans le bloc 326, - le bit de plein/vide dans la mémoire de répertoire en double est remis à zéro pour l'indicateur d'adresse particulier et une commande d'effacement est envoyée à l'unité d'antémémoire dans la mémoire de laquelle est contenu
ce segment d'informations particulier. Si la mémoire de réper-
toire en double a été écrite dans le bloc 318, le bit de
plein/vide n'est évidemment pas remis à zéro dans le bloc 326.
Du bloc 326, on passe ensuite au bloc 324 par le branchement 328. Dans le bloc 324, l'opération d'écriture est achevée dans la mémoire principale 50 et un signal d'opération
terminée est envoyé à l'unité de commande de système demande-
resse par son répertoire en double associé et par la mémoire principale 50. Le signal d'opération terminée peut être transmis à l'unité centrale de traitement 37 par l'intermédiaire de l'unité de commande de système 55 et de l'unité d'antémémoire 41, si cela est nécessaire. On passe ensuite du bloc 324 au
bloc 277.
En supposant que, pendant que les circuits logiques étaient dans l'état défini par le bloc 280, la commande était fournie par l'unité centrale de traitement 37, on passe au bloc 286 par le branchement 284 et le fonctionnement des circuits logiques se poursuit de la façon suivante. Dans le bloc 286, un contrôle est effectué pour déterminer si la commande est une commande de lecture. Si la commande est une commande de lecture, on passe au bloc 332 par le branchement 330. Dans le bloc 332, la commande de lecture est à nouveau examinée pour déterminer si elle représente une opération de lecture/effacement. Si la commande-ne représente pas une commande de lecture/effacement, on passe au bloc 336 par le branchement 334. Dans ces conditions, la commande est donc une commande d'écriture. La portion supérieure de l'adresse de mémoire principale est écrite dans l'emplacement approprié de la mémoire de répertoire en double 237 (Figure 4) comme indicateur d'adresse en utilisant la portion inférieure de l'adresse de mémoire principale sur le canal 266. La commande d'écriture comprend le niveau à associer aux indicateurs
d'adresse. Le bit de plein/vide est mis à un.
On passe ensuite du bloc 336 au bloc 338. Dans le bloc 338, les autres mémoires de répertoires en double sont examinées par les répertoires en double 74 et 75 pour déterminer si un indicateur d'adresse présent correspond à la portion supérieure de l'adresse de mémoire principale. Les indicateurs d'adresse examinés représentent les huit indicateurs d'adresse qui sont transférés au comparateur à partir de la mémoire de répertoire en double quand ils sont adressés par la portion inférieure de l'adresse de mémoire principale. On passe alors du bloc 338 au bloc 340. 'Dans le bloc 340, un contrôle est
effectué pour déterminer si les comparateurs dans les réper-
toires en double 74 et 75 ont identifié un des indicateurs d'adresse, fournis au comparateur par la mémoire de répertoire en double, comme étant identique à la portion supérieure de
l'adresse de mémoire principale.
Si aucun des comparateurs ne trouve une correspon-
dance, c'est-à-dire un des indicateurs d'adresse identique à la port-ion supérieure de l'adresse de mémoire principale, on
passe alors au bloc 324 par le branchement 342 et le fonction-
nement des circuits logiques se poursuit de la façon qui a été décrite plus haut. Si les comparateurs dans les répertoires en double 74 et 75 déterminent qu'un indicateur d'adresse est identique à la portion supérieure-de l'adresse de mémoire principale,-on passe du bloc-340. au bloc 344. Dans le bloc. 344, comme dansle:bloc: 326, les commandes d'effacement ainsi que la portion inférieure de l',adresse de mémoire principale.et le niveau fourni par le comparateur sont envoyés à l'unité CPU
appropriée 38 ou 39. On passe ensuite au bloc 324 par le bran-
chement 346.
Si, dans le bloc 332, il est déterminé que la com-
mande est une commande de lecture/effacement, on passe au bloc 348. Dans le bloc 348, tous les répertoires en double sont examinés pour déterminer si une mémoire de répertoire en double (seule la mémoire de répertoire en double 237 du répertoire en
double 73 a été représentée, sur la Figure 4) contient un indi-
cateur d'adresse correspondant à l'adresse fournie par la commande. Dans le bloc 350, qui suit le bloc 348, les-signaux de sortie de tous les comparateurs (seul le comparateur 264 du répertoire en double 73 est représenté) sont examinés pour déterminer si un des indicateurs d'adresse est identique à la portion supérieure de l'adresse de mémoire principale fournie
dans la commande. Les indicateurs d'adresse envoyés au compara-
teur sont constitués seulement par ceux adressés par la portion
inférieure dEé'adresse de mémoire principale. Si aucun des indi-
cateurs d'adresse ne correspond à la portion supérieure de l'adresse de mémoire principale, on passe alors.du bloc 350 au bloc 354 par le branchement 352. Dans le bloc 354, les données demandées sont envoyées à l'unité CPU 37 (Figure 2) par la mémoire principale 50 par l'intermédiaire de l'unité de commande
de système 55.
S'il a été déterminé que l'un des indicateurs d'adresse correspond à la portion supérieure de l'adresse de mémoire principale, on passe du bloc 350 au bloc 356. Dans le bloc 356, le bit de plein /vide de cet indicateur d'adresse est remis à zéro et la commande d'effacement est envoyée à l'unité d'antémémoire de l'unité CPU associée. On passe ensuite du bloc 356 au bloc 354. Du bloc 354 on revientau bloc 2-77 -et le déroulement du fonctionnement des circuits logiques se poursuit
de la façon décrite plus haut.
Si, dans le bloc 286, il est déterminé que la commande reçue de l'unité CPU 37 est une commande de lecture, on passe alors au bloc 358. pans le bloc 358, la commande est examinée pour déterminer si une entrée doit être faite dans la mémoire 110 d'antémémoire. Si le segment d'informations adressé dans la mémoire principale 50 (Figure 2) doit être écrit dans la mémoire 110 d'antémémoire (Figure 3), on passe du bloc 358
au bloc 360. Dans le bloc 360, la portion supérieure de l'adres-
se de la mémoire principale est écrite dans la mémoire de répertoire en double 237 comme indicateur d'adresse avec le niveau fourni par la commande de lecture dans la mémoire de répertoire en double 237 (Figure 4) . Du bloc 360 on passe au bloc 354 et le fonctionnement des circuits logiques se poursuit
de la façon décrite plus haut.
Si, dans le bloc 358, il est déterminé qu'une entrée ne doit pas être faite dans la mémoire 110 d'antémémoire (Figure 3), on passe au bloc 364 par le branchement 362. Dans le bloc 364, la mémoire de répertoire en doublé 237 contient la portion inférieure de l'adresse de mémoire principale du
segment d'informations à lire qui est envoyée par le canal 266.
Le comparateur 264 examine les indicateurs d'adresse reçus de la mémoire de répertoire en double 237 pour déterminer si un des indicateurs d'adresse est identique à la portion supérieure de l'adresse de mémoire principale. On passe ensuite du bloc 364 au bloc 366. Si, dans le bloc 366, il est déterminé qu'aucun des indicateurs d'adresse ne correspond à la portion supérieure de l'adresse de mémoire principale, on passe du bloc 366 au bloc 354 par le branchement 368, et le déroulement du fonctionnement
des circuits logiques se poursuit de la façon décrite plus haut.
Si le comparateur 264 détermine qu'un indicateur d'adresse est identique à la portion supérieure de l'adresse de mémoire principale, on passe au bloc 370. Dans le bloc 370, le bit de plein/vide de cet indicateur d'adresse est remis à zéro. On notera que-le bit de plein/vide correspondant du répertoire d'antémémoire 129 a été remis à zéro auparavant. On passe ensuite du bloc 370 au bloc 354 et le fonctionnement des mémoires de répertoire en double et d'antémémoire continue comme
décrit plus haut.

Claims (16)

  1. REVENDICATIONS
    l.Dispositif pour effacer de façon sélective une
    antémémoire dans un système de traitement de données à plu-
    sieurs processeurs (37,38,39)pour fournir un segment d'infor-
    mations mémorisé dans un ensemble de mémoires (11O)d'antémé-
    moire identique au segment d'informations contenu dans une mémoire principale (50)à une adresse particulière,chaque mé moire d'antémémoire étant connectée à un processeur du système de traitement de données, caractérisé en ce qu'il comprend: a.un ensemble de répertoires d'antémémoire (129)associés chacun à une mémoire d'antémémoire (llO), chaque répertoire
    d'antémémoire étant agencé pour mémoriser/ineortion de l'adres-
    se particulière pour localiser le segment d'informations dans une mémoire d'antémémoire qui lui est associée;
    b.un ensemble de répertoires en double (73,74,75) asso,-
    ciés chacun à un des répertoires d'antémémoire,un répertoire en double (73)étant agencé pour recevoir et mémoriser ladite portion de l'adresse particulière afin de déterminer si le
    segment d'informations est contenu dans la mémoire d'antémé-
    moire (11O)associée en réponse à une commande comprenant ladite adresse particulière;et c. au moins une unité de commande de système (55, 58, 59) connectée en fonctionnement entre ledit répertoire en double
    (73)et son répertoire d'antémémoire (129)associé pour trans-
    férer ladite portion de l'adresse particulière de l'un à l'autre,ladite unité de commande de système étant connectée en outre en fonctionnementpour transférer ladite commande aux autres répertoires en double afin de déterminer si la portion
    de l'adresse particulière y est contenue.
  2. 2.Dispositif d'un système de traitement de données comportant un ensemble de processeurs (37,38,39)connectés à une mémoire principale (50)agencée pour répondre à une adresse particulière afin de recevoir un certain segment d'informations et le mémoriser et afin de mettre à disposition ce segment d'informations pour son transfert,caractérisé en ce qu'il comprend: a.une unité d'antémémoire (41,42,43)pour chaque
    processeur,ladite unité d'antémémoire (41)comprenant une mémoi-
    re d'antémémoire (110).contenant ledit segment d'informations et un répertoire d'antémémoire (129)contenant une adresse associative pour localiser ledit segment d'informations contenu dans la mémoire d'antémémoirqen réponse à ladite adresse particulière,ledit répertoire d'antémémoire étant agencé pour effacer ledit segment d'informations en réponse à des signaux d'effacement; b. un ensemble de répertoires en double (73,74,75) connectés chacun pour recevoir et mémoriser des modifications dans leur répertoire d'antémémoire associétet adaptés pour reconnaître si ledit segment d'informations est contenu dans la mémoire d'antémémoire associée afin de produire des signaux d'effacement;et -c. au moins une unité de commande de système (55,58,59) connectée entre ledit ensemble de répertoires en double et ledit ensemble d'unités d'antémémoire pour transférer des modifications d'un répertoire d'antémémoire au répertoire
    en double associé et pour transférer lesdits signaux d 'effa-
    cement du répertoire en double à son répertoire d'antémémoire
    associé.
  3. 3. Dispositif d'effacement d'antémémoire dans un système de traitement de données à plusieurs processeurs (37,38,39)comportant une mémoire principale (50)agencée pour mémoriser et fournir un certain segment d'informations en réponse à une adresse de mémoire principale particulière d'un certain emplacement de mémoire de celle-ci,un processeur
    produisant une commande pour modifier ledit segment d'in-
    formations qui contient ladite adresse de mémoire principale particulière, caractérisé en ce qu'il comprend: a. au moins une unité de commande de système (55,58,59) connectée entre ladite mémoire principale et ledit processeur du système,l'unité de commande de système étant agencée pour recevoir ladite commande; b.un ensemble de répertoires en double (73,74, 75) connectés à l'unité de commande de système pour recevoir ladite commande,un répertoire en double étant associé avec ledit processeur, lesdits répertoires en double de l'ensemble, à l'exception du répertoire en double précité,étant agencés pour répondre à la commande en produisant des signaux d'effacement si l'adresse particulière est identifiée;et c. un ensemble d'unités d'antémémoire (41,42,43) connectées chacune en fonctionnement à un processeur,chaque unité d'antémémoire étant agencée pour recevoir et mémoriser ledit segment d'informations et pour effacer ce segment d'informations en réponse auxdits signaux d'effacement, chaque répertoire d'antémémoire relié électriquement à son répertoire en double associé par l'intermédiaire de l'unité
    de commande de système.
  4. 4.Dispositif d'effacement d'antémémoire selon la -
    revendication 3,caractérisé en ce que l'unité d'antémémoire (41) comprend une mémoire d'antémémoire (110)agencée pour
    mémoriser des segments d'informations et un répertoire -
    d'antémémoire (129) agencé pour déterminer si ledit segment d'informations est contenu dans la mémoire d'antémémoire à
    partir de l'adresse particulière.
  5. 5.Dispositif d'effacement d'antémémoire d'un système
    de traitement de données à plusieurs processeurs (37,38,39)>-
    caractérisé en ce qu'il comprend: ' a.un ensemble d'unités d'antémémoire (41,42,43)
    connectées chacune en fonctionnement à un processeur du sys-
    tème,chaque unité d'antémémoire comprenant une mémoire d'antémémoire (110) agencée pour mémoriser des segments d'informations,et un répertoire d'antémémoire (129) agencé pour déterminer si un certain segment d'informations est contenu dans la mémoire d'antémémoire associée; b. un ensemble de répertoires en double (73,74,75) associés chacun à une unité d'antémémoire de l'ensemble d'unités d'antémémoire,chaque répertoire en double étant agencé pour déterminer si ledit segment d'informations est contenu dans la mémoire d'antémémoire associée afin de produire des signaux d'effacement;et c.au moins une unité de commande de système (55, 58,59)connectée entre l'ensemble de répertoires en double et l'ensemble d'unités d'antémémoire pour transférer lesdits signaux d'effacement des répertoires en double au répertoire d'antémémoire de leur unité d'antémémoire associée,l'unité
    d'antémémoire répondant aux signaux d'effacement pour effa-
    cer ledit segment d'informations.
  6. 6.Dispositif d'effacement d'antémémoire d'un système
    de traitement de données comportant un ensemble de proces-
    seurs (37,38,39),ledit système comprenant une mémoire principale (50) pour mémoriser et fournir un certain segment d'informations en réponse à une certaine adresse de mémoire
    principale définissant un emplacement particulier de celle-
    ci,caractérisé en ce qu'il comprend: a.un ensemble d'unités d'antémémoire (41,42,43) connectées chacune en fonctionnement à un des processeurs et
    agencées pour mémoriser ledit segment d'informations et four-
    nir ce segment d'informations au processeur auquel chacune
    est connectée en réponse à ladite adresse de mémoire principa-
    le,les unités d'antémémoire étant agencées pour effacer ledit segment d'informations en réponse à des signaux d'effacement;
    b.un ensemble de répertoires en double (73,74,75)asso-
    ciés chacun à une unité d'antémémoire de l'ensemble des unités d'antémémoire et déterminant si ledit segment d'informations est contenu dans l'unité d'antémémoire associée,à partir de ladite adresse de mémoire principale,afin de produire lesdits signaux d'effacement; c.au moins une unité de commande de système (55,58,59) connectée entre ledit ensemble des unités d'antémémoire et les répertoires en double et agencée pour recevoir une commande afin de modifier ledit segment d'informations contenu dans la
    mémoire principale pour transférer ladite commande à l'ensem-
    ble des répertoires en double et les signaux d'effacement provenant dudit répertoire en double à l'unité d'antémémoire associée,la commande comprenant ladite adresse de mémoire principale.
  7. 7.Dispositif d'effacement d'antémémoire selon la revendication 6,caractérisé en ce que le répertoire en double (73)associé à l'unité d'antémémoire (41)produit les signaux d'effacement seulement si ladite commande est reçue par l'unité de commande de système (55)en provenance d'un autre processeur (38 ou 39) que celui (37) connecté à l'unité d'antémémoire.
  8. 8. Dispositif d'effacement d'antémémoire selon la
    revendication 6,caractérisé en ce que chaque unité d'antémé-
    moire (41)comprend un répertoire d'antémémoire (129) servant à mémoriser des indicateurs d'adresse et une mémoire d'antémémoire (110)servant à mémoriser certains segments d'informations.
  9. 9. Dispositif d'effacement d'antémémoire selon la revendication 8,caractérisé en ce que chaque indicateur d'adresse contenu dans un répertoire d'antémémoire (129) est
    mémorisé dans le répertoire en double (73)associé.
  10. 10. Dispositif d'effacement d'antémémoire selon la revendication 9, caractérisé en ce que ladite adresse de mémoire principale est divisée enune portion supérieure et en une portion inférieure,ladite portion supérieure étant mémorisée
    comme indicateur d'adresse particulier dans un certain emplace-
    ment dudit répertoire en double (73)et de son répertoire d'antémémoire (129)associé comme défini par l'adresse contenue
    dans ladite portion inférieure.
  11. 11. Dispositif d'effacement d'antémémoire selon la
    revendication 10,caractérisé en ce que ladite mémoire d'anté-
    mémoire (110)comporte un certain nombre de niveaux d'emplace-
    ments de mémoire adressés par ladite portion inférieure pour fournir/n ensemble de segments d'informations, à raison d'un segment d'informations pour chaque niveau à une sortie de ladite mémoire,un niveau adressé par la portion inférieure comportant un emplacement de mémoire contenant ledit segment d'informations.
  12. 12.Dispositif d'effacement d'antémémoire selon la revendication 11,caractérisé en ce que ledit niveau et des indicateurs de plein/vide sont mémorisés,en association avec ledit indicateur d'adresse particulier,dans ledit répertoire
    en double (73) et son répertoire d'antémémoire (129)associé.
  13. 13.Dispositif d'effacement d'antémémoire selon la revendication 12, caractérisé en ce qu'un certain nombre d'indicateurs d'adresse, y compris l'indicateur d'adresse précité,sont fournis à une sortie dudit répertoire en double (73)et de son répertoire d'antémémoire (129)associé quand il est adressé par ladite portion inférieure,ledit nombre
    d'indicateurs d'adresse égalant ledit nombre-de niveaux.
  14. 14.Dispositif d'effacement d'antémémoire selon la reven-
    dication 13,caractérisé en ce que ladite unité d'antémémoire (41) comprend un premier comparateur (126)connecté en fonc- tionnement au répertoire d'antémémoire et agencé pour recevoir ladite portion supérieure afin de déterminer si un indicateur d'adresse faisant partie dudit nombre d'indicateurs d'adresse constitue ledit indicateur d'adresse précité et définit son
    niveau.
  15. 15.Dispositif d'effacement d'antémémoire selon la revendication 14, caractérisé en ce que ledit répertoire en double (73) comprend une mémoire de répertoire en double (237)j contenant des indicateurs d'adresse,et un second comparateur (264) connecté en fonctionnement à la mémoire de répertoire en double,ledit second comparateur étant agencé pour recevoir ladite portion supérieure afin de déterminer si
    un indicateur d'adresse faisant partie dudit nombre d'indica-
    teurs d'adresse constitue ledit indicateur d'adresse
    précité et définit son niveau.
  16. 16. Procédé d'effacement d'antémémoire dans un système de traitement de données comportant un groupe de processeurs (37,38,39)et une mémoire principale (50)agencée pour mémoriser des segments d'informations, caractérisé en ce qu'il consiste à: a. transférer chaque commande,qui comprend une adresse en mémoire principale d'un segment d'informations,en affectant ce segment d'informations contenu dans la mémoire
    principale,à partir d'au moins une unité de commande de systè-
    me (55,58,59), à un ensemble de répertoires en double
    (73,74,75)qui sont chacun associés à un processeur dudit groupe.
    b.comparer une portion supérieure de l'adresse de mémoire principale à un ensemble d'indicateurs d'adresse,qui sont adressés par la portion inférieure de l'adresse de mémoire principale,à l'aide dudit répertoire en double pour produire des signaux d'effacement si la portion supérieure est identique à un certain indicateur d'adresse dudit ensemble qui indique que
    le segment d'informations est mémorisé dans une unité d'anté-
    mémoire (41,42,43), c.transférer les signaux d'effacement à ladite unité d'antémémoire connectée audit processeur par l'intermédiaire de l'unité de commande de système;et d.remettre à zéro un bit de plein/vide associé audit indicateur d'adresse pour invalider ledit segment d'informa-
    tions contenu dans ladite unité d'antémémoire.
FR8026453A 1979-12-14 1980-12-12 Dispositif et procede d'effacement d'antememoire Expired FR2472232B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10380479A 1979-12-14 1979-12-14

Publications (2)

Publication Number Publication Date
FR2472232A1 true FR2472232A1 (fr) 1981-06-26
FR2472232B1 FR2472232B1 (fr) 1988-04-22

Family

ID=22297115

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8026453A Expired FR2472232B1 (fr) 1979-12-14 1980-12-12 Dispositif et procede d'effacement d'antememoire

Country Status (6)

Country Link
JP (1) JPS5698769A (fr)
AU (1) AU543278B2 (fr)
CA (1) CA1159153A (fr)
DE (1) DE3046912C2 (fr)
FR (1) FR2472232B1 (fr)
GB (1) GB2065941B (fr)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4399506A (en) * 1980-10-06 1983-08-16 International Business Machines Corporation Store-in-cache processor means for clearing main storage
US4525777A (en) * 1981-08-03 1985-06-25 Honeywell Information Systems Inc. Split-cycle cache system with SCU controlled cache clearing during cache store access period
DE3138972A1 (de) * 1981-09-30 1983-04-14 Siemens AG, 1000 Berlin und 8000 München Onchip mikroprozessorchachespeichersystem und verfahren zu seinem betrieb
JPH0668735B2 (ja) * 1987-02-09 1994-08-31 日本電気アイシーマイコンシステム株式会社 キヤツシユメモリ−
JPH01115358A (ja) * 1987-10-30 1989-05-08 Toru Ishiwatari 鎌倉彫を施した棺の製造方法
US5282201A (en) * 1987-12-22 1994-01-25 Kendall Square Research Corporation Dynamic packet routing network
US5226039A (en) * 1987-12-22 1993-07-06 Kendall Square Research Corporation Packet routing switch
US5055999A (en) 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US5341483A (en) * 1987-12-22 1994-08-23 Kendall Square Research Corporation Dynamic hierarchial associative memory
US5761413A (en) 1987-12-22 1998-06-02 Sun Microsystems, Inc. Fault containment system for multiprocessor with shared memory
US5822578A (en) * 1987-12-22 1998-10-13 Sun Microsystems, Inc. System for inserting instructions into processor instruction stream in order to perform interrupt processing
US5251308A (en) * 1987-12-22 1993-10-05 Kendall Square Research Corporation Shared memory multiprocessor with data hiding and post-store
GB2216308A (en) * 1988-03-01 1989-10-04 Ardent Computer Corp Maintaining cache consistency
US5153595A (en) * 1990-03-26 1992-10-06 Geophysical Survey Systems, Inc. Range information from signal distortions
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
CA2078312A1 (fr) 1991-09-20 1993-03-21 Mark A. Kaufman Processeur de donnees numeriques a pagination amelioree
US5724549A (en) * 1992-04-06 1998-03-03 Cyrix Corporation Cache coherency without bus master arbitration signals

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2155203A5 (fr) * 1971-09-10 1973-05-18 Ibm
US3845474A (en) * 1973-11-05 1974-10-29 Honeywell Inf Systems Cache store clearing operation for multiprocessor mode
US4020466A (en) * 1974-07-05 1977-04-26 Ibm Corporation Memory hierarchy system with journaling and copy back
US4136386A (en) * 1977-10-06 1979-01-23 International Business Machines Corporation Backing store access coordination in a multi-processor system
FR2444299A1 (fr) * 1978-12-11 1980-07-11 Honeywell Inf Systems Dispositif pour l'effacement selectif d'une antememoire

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5440182B2 (fr) * 1974-02-26 1979-12-01
US3979726A (en) * 1974-04-10 1976-09-07 Honeywell Information Systems, Inc. Apparatus for selectively clearing a cache store in a processor having segmentation and paging
JPS5295128A (en) * 1976-02-06 1977-08-10 Hitachi Ltd Information processing device
JPS5361236A (en) * 1976-11-12 1978-06-01 Fujitsu Ltd Memory access control system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2155203A5 (fr) * 1971-09-10 1973-05-18 Ibm
US3845474A (en) * 1973-11-05 1974-10-29 Honeywell Inf Systems Cache store clearing operation for multiprocessor mode
US4020466A (en) * 1974-07-05 1977-04-26 Ibm Corporation Memory hierarchy system with journaling and copy back
US4136386A (en) * 1977-10-06 1979-01-23 International Business Machines Corporation Backing store access coordination in a multi-processor system
FR2444299A1 (fr) * 1978-12-11 1980-07-11 Honeywell Inf Systems Dispositif pour l'effacement selectif d'une antememoire

Also Published As

Publication number Publication date
AU543278B2 (en) 1985-04-18
CA1159153A (fr) 1983-12-20
AU6532480A (en) 1981-06-18
DE3046912C2 (de) 1994-05-11
FR2472232B1 (fr) 1988-04-22
DE3046912A1 (de) 1981-09-03
JPS5698769A (en) 1981-08-08
GB2065941A (en) 1981-07-01
GB2065941B (en) 1984-02-29

Similar Documents

Publication Publication Date Title
FR2472232A1 (fr) Dispositif et procede d&#39;effacement d&#39;antememoire
FR2602353A1 (fr) Repertoire et controle de cache
KR880000299B1 (ko) 캐쉬장치
FR2682507A1 (fr) Memoire cache pour processeur numerique a traduction d&#39;adresses virtuelles en adresses reelles.
FR2624994A1 (fr) Systeme de commande de registre intermediaire de traduction
NO135885B (fr)
FR2602070A1 (fr) Systeme et procede d&#39;acces a une memoire d&#39;ordinateur.
EP1510925A2 (fr) Mémoire cache à lecture asynchrone et dispositif de controle de l&#39;accès à une mémoire de données comprenant une telle mémoire cache
EP0173383A1 (fr) Processeur pour effectuer suivant différents modes le traitement de données et dispositif de multiplication convenant pour un tel processeur
FR2480459A1 (fr) Systeme de traitement de donnees a un dispositif d&#39;appariement d&#39;adresses de memoire de controle
EP0228329B1 (fr) Dispositif électronique formant mémoire stable rapide perfectionnée
FR2613851A1 (fr) Carte a circuits integres et procede pour y enregistrer des donnees
FR2558613A1 (fr) Appareil de traitement de donnees du type pipeline
FR2536884A1 (fr) Reseau de transfert de donnees entre plusieurs processeurs et une memoire
FR2683061A1 (fr) Systeme de segmentation de memoire.
FR2474199A1 (fr) Dispositif pour superposer les phases successives du transfert des informations entre plusieurs unites d&#39;un systeme de traitement de l&#39;information
FR2590699A1 (fr) Systeme assurant la coherence pour les contenus d&#39;une antememoire
FR2889328A1 (fr) Dispositif d&#39;interfacage unidirectionnel de type fifo entre un bloc maitre et un bloc esclave, bloc maitre et bloc esclave correspondants
FR2674044A1 (fr) Agencement pour predire une adresse d&#39;instruction resultant d&#39;un branchement dans un systeme de traitement numerique des donnees.
FR2759178A1 (fr) Circuit de gestion de memoire dans un environnement multi-utilisateurs avec requete et priorite d&#39;acces
EP3611623B1 (fr) Contrôleur mémoire comprenant deux buffers et un selecteur d&#39;un mode de remplissage desdits buffers
FR2749681A1 (fr) Circuit pour transborder des donnees entre memoires distantes et calculateur comprenant un tel circuit
EP0306357A1 (fr) Unité de gestion d&#39;accès en mémoire, à identifiants logiques invariants, notamment pour la gestion de bases de données
FR2601163A1 (fr) Systeme de commande arithmetique de donnees scalaires pour un processeur arithmetique vectoriel.
FR2717921A1 (fr) Dispositif de gestion de conflit d&#39;accès entre un CPU et des mémoires.