FR2655445A1 - Device for controlling a buffer memory and method of managing digital data - Google Patents

Device for controlling a buffer memory and method of managing digital data Download PDF

Info

Publication number
FR2655445A1
FR2655445A1 FR8915901A FR8915901A FR2655445A1 FR 2655445 A1 FR2655445 A1 FR 2655445A1 FR 8915901 A FR8915901 A FR 8915901A FR 8915901 A FR8915901 A FR 8915901A FR 2655445 A1 FR2655445 A1 FR 2655445A1
Authority
FR
France
Prior art keywords
memory
class
memory elements
address
bits
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
FR8915901A
Other languages
French (fr)
Other versions
FR2655445B1 (en
Inventor
Deville Yannick
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.)
Laboratoires dElectronique Philips SAS
Original Assignee
Laboratoires dElectronique Philips SAS
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 Laboratoires dElectronique Philips SAS filed Critical Laboratoires dElectronique Philips SAS
Priority to FR8915901A priority Critical patent/FR2655445B1/en
Publication of FR2655445A1 publication Critical patent/FR2655445A1/en
Application granted granted Critical
Publication of FR2655445B1 publication Critical patent/FR2655445B1/en
Anticipated expiration legal-status Critical
Expired - Lifetime 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/12Replacement control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Control device and method of managing digital data which in a buffer memory allow the control of the replacement of data. For each of the memory elements (K1, V1) (K1, V2) distributed in classes over several pathways, the invention employs a storage unit with B bits (301, 302) making it possible to log whether the memory element has been used. Means for polling (33, 34, 35), for selecting (39, 40, 42) and for setting (36, 38) make it possible to perform the replacement with a lowered failure rate. The invention has its application in the control of data exchanges between various memory levels. Application: management of digital data memories.

Description

DESCRIPTION
L'invention concerne un dispositif de contrôle pour une mémoire tampon qui est organisée selon au moins une classe de E éléments-mémoire munis de clés et répartis sur E voies, la mémoire étant adressée par des adresses ayant des champs d'indices de classe et/ou de clé, chaque voie étant munie d'au moins un comparateur des adresses d'entrée et des adresses stockées et lorsque l'adresse d'entrée n Lest pas trouvée (échec) dans la mémoire tampon, le dispositif permet de la trouver dans une mémoire source puis de transférer le contenu des informations qui s'y rapportent vers la mémoire tampon suivant une méthode de remplacement.
DESCRIPTION
The invention relates to a control device for a buffer memory which is organized according to at least one class of E memory elements provided with keys and distributed over E channels, the memory being addressed by addresses having class index fields and / or key, each channel being provided with at least one comparator of the input addresses and the stored addresses and when the input address is not found (failure) in the buffer memory, the device makes it possible to find it in a source memory and then transfer the contents of related information to the buffer memory following a replacement method.

L'invention concerne également une méthode de gestion de données numériques mise en oeuvre dans une mémoire tampon. The invention also relates to a digital data management method implemented in a buffer memory.

Les méthodes de remplacement s'appliquent plus particulièrement à des systèmes comportant une mémoire hiérarchisée et/ou une mémoire virtuelle. Elles concernent donc en particulier la plupart des ordinateurs. Elles permettent de gérer la mémoire paginée (mémoire centrale), les caches (mémoire cache) et les traducteurs d'adresses (Translation
Lookaside Buffers TLB) de la plupart des ordinateurs.
The replacement methods apply more particularly to systems comprising a hierarchical memory and / or a virtual memory. In particular, they concern most computers. They allow to manage the paged memory (central memory), the caches (cache memory) and the translators of addresses (Translation
Lookaside Buffers TLB) from most computers.

Un système à mémoire hiérarchisée comporte un processeur et un organe de stockage d'informations ayant une grande capacité de stockage appelé mémoire de masse (disques durs, bandes...). Un tel organe de stockage est bien plus lent que le processeur, et il n'est pas possible de concevoir un système basé uniquement sur ces deux éléments. On intercale donc entre le processeur et cet organe de stockage un certain nombre de niveaux de mémoire, ce nombre dépendant de la complexité du système considéré. Plus le niveau de mémoire considéré est proche du processeur plus ce niveau a une vitesse de fonctionnement élevée, mais plus il a une capacité de stockage faible. De ce fait chaque niveau de mémoire ne contient qu'une partie des informations que contient le niveau qui le suit immédiatement du côté de la mémoire de masse.La capacité d'un niveau étant limitée, il s'ensuit que lorsque le processeur délivre une adresse qui est absente de ce niveau, le système de gestion de la mémoire doit chercher l'information dans un niveau amont et la charger dans ledit niveau. Si ledit niveau est plein, le système de gestion de la mémoire doit supprimer l'information qui était présente dans un des éléments-mémoire constitutifs de la mémoire tampon afin d'allouer sa place à la nouvelle information. Il est donc nécessaire de définir une méthode de remplacement qui permette de conserver dans les niveaux proches du processeur les informations les plus utiles. A hierarchical memory system comprises a processor and an information storage member having a large storage capacity called mass storage (hard disks, strips, etc.). Such a storage device is much slower than the processor, and it is not possible to design a system based solely on these two elements. There is therefore inserted between the processor and this storage device a certain number of memory levels, this number depending on the complexity of the system considered. The closer the memory level is to the processor, the higher the operating speed, but the lower the storage capacity. As a result, each level of memory contains only part of the information contained in the immediately following level on the mass memory side. The capacity of a level being limited, it follows that when the processor delivers a address that is absent from this level, the memory management system must seek the information in an upstream level and load it in said level. If said level is full, the memory management system must delete the information that was present in one of the constituent elements of the buffer memory in order to allocate its place to the new information. It is therefore necessary to define a replacement method that keeps the most useful information in the levels close to the processor.

Lorsqu'il est nécessaire d'aller la chercher très en amont dans le système hiérarchisé, il y a une perte considérable de temps.When it is necessary to look for it very early in the hierarchical system, there is a considerable loss of time.

Un problème de remplacement similaire se pose dans les systèmes à mémoire virtuelle. Pour éviter de traduire à chaque accès le numéro de page virtuelle en numéro de page physique, on conserve dans un petit registre tampon appelé traducteur d'adresses (Translation Lookaside Buffers TLB) quelques couples "page virtuelle, page physique" qui ont été utilisés. Quand une nouvelle page est adressée il faut choisir le couple à supprimer du traducteur d'adresses. A similar replacement problem arises in virtual memory systems. To avoid translating the virtual page number to the physical page number at each access, a few "virtual page, physical page" pairs that have been used are kept in a small buffer register called Translation Lookaside Buffers TLB. When a new page is addressed you have to choose the couple to delete from the address translator.

Différents algorithmes de remplacement ont été proposés notamment ceux décrits dans "Cache memories,
A.J. SMITH, Computing Surveys, vol.14, n03, 1982".
Various alternative algorithms have been proposed including those described in "Cache memories,
AJ SMITH, Computing Surveys, vol.14, n03, 1982 ".

Les trois algorithmes les plus classiques sont
LRU (Least Recently Used en langue anglaise) cet algorithme consiste à remplacer l'élément qui est resté inutilisé le plus longtemps.
The three most classic algorithms are
LRU (Least Recently Used in English) this algorithm is to replace the item that has been unused for the longest time.

FIFO (First In First Out) : cet algorithme consiste à remplacer l'élément qui est présent depuis le plus longtemps. FIFO (First In First Out): this algorithm is to replace the element that is present since the longest.

Random : cet algorithme remplace un élément au hasard. Random: This algorithm replaces a random element.

Il est possible de comparer les algorithmes entre eux en déterminant un taux d'échec c'est-à-dire le taux d'adresses appelées par le processeur qui ne sont pas trouvées dans la mémoire considérée et qu'il faut donc aller chercher dans une mémoire placée en amont. It is possible to compare the algorithms between them by determining a failure rate that is to say the rate of addresses called by the processor that are not found in the memory considered and that must therefore be sought in a memory placed upstream.

Dans la plupart des cas l'algorithme LRU donne les meilleures performances. En effet la plupart des programmes tendent à ne pas réutiliser des adresses (donc des éléments-mémoire) qui n'ont pas été utilisés depuis longtemps. Il existe toutefois un cas particulier simple où cet algorithme n'est pas satisfaisant : si un programme adresse cycliquement une certaine zone mémoire successivement par des adresses croissantes, puis en recommençant, et si cette zone mémoire a une taille telle qu'elle renferme plus d'éléments-mémoire à adresser que ne peut en contenir la mémoire tampon; alors à chaque fois qu'un nouvel élément-mémoire est adressé un échec se produit et un remplacement est nécessaire. In most cases the LRU algorithm gives the best performance. Indeed most programs tend not to reuse addresses (so memory-elements) that have not been used for a long time. However, there is a simple special case where this algorithm is not satisfactory: if a program cyclically addresses a certain memory area successively by increasing addresses, then starting again, and if this memory zone has a size such that it contains more data. memory elements to be addressed that can not contain the buffer memory; so whenever a new memory element is addressed a failure occurs and a replacement is needed.

L'algorithme FIFO est moins performant que l'algorithme LRU. Dans le cas particulier des boucles il présente le même inconvénient que l'algorithme LRU. The FIFO algorithm is less efficient than the LRU algorithm. In the particular case of loops, it presents the same drawback as the LRU algorithm.

L'algorithme Random a des performances voisines de celles de l'algorithme FIFO. Toutefois il ne présente pas d'inconvénient particulier en cas de boucles. The Random algorithm has performances close to those of the FIFO algorithm. However, it does not have any particular disadvantage in the case of loops.

Les situations où des difficultés d'exploitation de ces méthodes classiques apparaissent sont multiples
- soit qu'il n'est pas aisé de concevoir des circuits compacts les mettant en oeuvre,
- soit que des fonctionnements en boucle donnent lieu à des difficultés de remplacement,
- soit que l'exploitation de la totalité de la mémoire soit mal réalisée,
- soit que la mémoire possède un nombre élevé d'éléments E par classe.
Situations where difficulties of exploitation of these classical methods appear are multiple
or that it is not easy to design compact circuits implementing them,
- that looping operations give rise to difficulties of replacement,
either the exploitation of the entire memory is poorly performed,
or that the memory has a high number of elements E per class.

Généralement plusieurs de ces difficultés apparaissent simultanément. Generally many of these difficulties occur simultaneously.

Le problème qui est posé est de déterminer une méthode de remplacement et un dispositif de contrôle qui soient plus efficaces que les précédents pour traiter au mieux ces différentes difficultés selon des conditions d'exploitation variées. Ce problème est résolu par l'invention à l'aide d'un dispositif de contrôle qui comprend
- pour chaque élément-mémoire, un organe de stockage de B bits (B(E), avec E multiple de B, qui permet de repérer si l'élément-mémoire a été utilisé par les adresses d'entrée au cours de phases successives antérieures, une phase pouvant couvrir l'analyse de plusieurs adresses d'entrée,
- des premiers moyens pour scruter au cours desdites phases successives au moins un des B bits de chacun des éléments-mémoire; les E bits de même rang des E éléments-mémoire d'une même classe, formant une banque BKC, étant scrutés au cours d'une même phase, sous le contrôle d'un compteur de phases, lesdits premiers moyens comprenant en outre un compteur de transitions qui, au cours d'une même phase, est incrémenté d'une unité lorsqu'au moins un des bits scrutés d'un élémentmémoire a changé d'état, ledit compteur délivrant, après un nombre E/B dtincrémentations, un signal de fin de phase, celui-ci activant des moyens de forçage qui forcent un état logique de non succès dans la banque BKC+1 à utiliser à la phase suivante,
- des seconds moyens pour sélectionner des éléments-mémoire qui n'ont pas été adressés ni au cours des B-i phases précédentes ni sur la partie de la phase en cours qui précède l'instant d'analyse de l'adresse d'entrée en détectant que tous les bits de leur organe de stockage sont à l'état logique de non-succès,
- des troisièmes moyens pour sélectionner un des élémentsmémoire parmi lesdits éléments-mémoire non adressés précédents pour y effectuer le remplacement.
The problem is to determine a replacement method and a control device that are more efficient than the previous ones to better deal with these different difficulties under different operating conditions. This problem is solved by the invention with the aid of a control device which comprises
for each memory element, a B bit storage device (B (E), with E multiple of B, which makes it possible to identify whether the memory element has been used by the input addresses during successive phases previous, a phase that can cover the analysis of several input addresses,
first means for scanning during said successive phases at least one of the B bits of each of the memory elements; the E bits of the same rank of E memory elements of the same class, forming a BKC bank, being scanned during the same phase, under the control of a phase counter, said first means further comprising a counter of transitions which, during the same phase, is incremented by one unit when at least one of the scanned bits of a memory element has changed state, said counter delivering, after an E / B number of increments, a signal end of phase, the latter activating forcing means which force a logical state of non-success in the bank BKC + 1 to be used in the next phase,
second means for selecting memory elements that have not been addressed either during the previous two phases or on the part of the current phase preceding the analysis time of the input address by detecting that all the bits of their storage member are in the logical state of non-success,
third means for selecting one of the memory elements from said preceding unaddressed memory elements to perform the replacement therein.

Ainsi, pour un élément-mémoire donné, lorsque les
B bits de son organe de stockage sont à l'état de "succès" ceci signifie que cet élément-mémoire vient d'être adressé et qu'il n'est plus disponible pendant cette phase. Pour la même raison si l'organe de stockage renferme certains bits à l'état de "non succès", le nombre de ces bits va permettre d'en déduire l'ancienneté du dernier appel de cet élément-mémoire et selon la méthode proposée de permettre son utilisation pour effectuer le remplacement.
So, for a given memory element, when the
B bits of its storage member are in the state of "success" this means that this memory element has just been addressed and is no longer available during this phase. For the same reason if the storage device contains some bits in the state of "unsuccessful", the number of these bits will allow to deduce the age of the last call of this memory element and according to the proposed method to allow its use to make the replacement.

Tous les organes de stockage des E éléments-mémoire appartenant à la même classe K sont répartis sur les E voies différentes. Dans une même classe les bits de même rang des organes de stockage sont lus simultanément. Tous ces E bits de même rang C constituent la banque BKC et peuvent incrémenter au cours d'une même phase un compteur de transitions
A à condition qu'ils soient passés de l'état de non succès à l'état de succès au cours de cette phase. Pour opérer de la sorte lesdits premiers moyens peuvent comprendre E multiplexeurs placés chacun entre la sortie des E organes de stockage et le compteur de transitions, les multiplexeurs étant contrôlés par le compteur de phases.Il est également possible de ne pas utiliser de multiplexeurs, les sorties des E organes de stockage étant alors réunies directement au compteur de transitions qui dans ce cas est incrémenté d'une unité si une ou plusieurs des entrées sont passées d'un état de non-succès à un état de succès au cours du traitement d'une adresse. Pour cela le compteur de transitions possède E.B entrées connectées aux B bits des E éléments-mémoire d'une même classe. Avantageusement cette seconde disposition permet une réalisation matérielle plus compacte.
All the storage members of E memory elements belonging to the same class K are distributed over the E different channels. In the same class, the bits of the same rank of the storage members are read simultaneously. All these E bits of the same rank C constitute the bank BKC and can increment during a same phase a counter of transitions
Has provided that they have passed from the state of unsuccessful to the state of success during this phase. To operate in this way said first means can comprise E multiplexers each placed between the output of the E storage members and the transitions counter, the multiplexers being controlled by the phase counter. It is also possible not to use multiplexers, the outputs of the storage elements E being then directly connected to the transitions counter which in this case is incremented by one unit if one or more of the inputs have passed from a state of non-success to a state of success during the processing of 'an address. For this purpose, the transitions counter has EB inputs connected to the B bits of the E memory elements of the same class. Advantageously, this second arrangement allows a more compact material realization.

Lorsqu'un état d'échec est détecté une opération de remplacement doit être effectuée. Pour cela lesdits seconds moyens déterminent pour chaque organe de stockage si tous les bits sont à l'état logique de non-succès. Dans le cas général plusieurs éléments-mémoire ont tous leurs bits à l'état de non succès". Parmi ceux-ci, selon l'invention, lesdits troisièmes moyens de sélection déterminent un premier élément-mémoire disponible en testant, selon un classement préétabli, chacun des éléments-mémoire non adressés. Avantageusement le classement préétabli peut être mis en oeuvre dans un circuit qui privilégie la vitesse. La clé et la donnée qui se rapportent à l'adresse concernée sont donc écrites dans cet élémentmémoire sélectionné. When a failure state is detected, a replacement operation must be performed. For this, said second means determine for each storage device if all the bits are in the logical state of non-success. In the general case, several memory elements have all their bits in the unsuccessful state. "Among these, according to the invention, said third selection means determine a first available memory element by testing, according to a predetermined ranking. Each of the non-addressed memory elements can advantageously be used in a speed-sensitive circuit, so that the key and the data relating to the address concerned are written in this selected memory element.

Le dispositif de contrôle selon l'invention peut constituer un circuit qui peut être intégré à la mémoire tampon et/ou au processeur. Mais il est également possible de réaliser l'invention selon une méthode de remplacement qui est mise en oeuvre par programme dans un calculateur. Dans ce cas il s'agit d'une méthode de gestion de données numériques dans une mémoire tampon formée de E voies, chaque voie étant formée d'éléments-mémoire repérés par une clé, les voies étant divisées en classes, chaque classe étant formée de E élémentsmémoire pris un à un dans chaque voie, la mémoire tampon recevant des adresses d'entrée ayant des indices de classe et/ou de clé, la méthode opérant une recherche, dans la mémoire tampon, d'une adresse d'entrée en la comparant aux indices de classes et/ou aux clés d'adresses stockées,
- et lorsque l'adresse d'entrée est trouvée (succès), la méthode met en oeuvre des opérations de lecture/écriture de la mémoire tampon,
- et lorsque l'adresse d'entrée n'est pas trouvée (échec), la méthode met en oeuvre une recherche dans une mémoire source puis un transfert du contenu des informations qui se rapportent à cette adresse d'entrée vers la mémoire tampon suivant une méthode de remplacement, caractérisé en ce que, à chaque fois qu'une adresse est présentée en entrée, la méthode de remplacement effectue le stockage des succès de la comparaison dans B variables logiques Po...Pc...PB~1 associées à chaque élément-mémoire avec B=E/k (k entier > 1) la méthode se subdivisant en deux branches
- une branche succès, auquel cas l'étape de lecture/écriture des informations selon l'adresse d'entrée est effectuée,
- une branche échec, auquel cas la méthode comprend les étapes suivantes
sélection des éléments-mémoire ayant leur variable logique PC+1 à l'état logique de non succès,
sélection, parmi ces éléments-mémoire, de celui qui est muni d'un accès privilégié pour y effectuer le remplacement en écrivant les informations et les champs de clé selon l'adresse d'entrée, l'une et l'autre branche comprenant ensuite les étapes suivantes
- pour tous les E éléments-mémoire d'une même classe, mise à jour puis scrutation des B variables logiques au cours de B phases successives et, dans une même phase; comptage du nombre
A de changements d'états des bits PC d'un même rang C formant ensemble une banque BKC,
- comparaison du nombre A de changements d'états avec la valeur E/B
et lorsque A < E/B, passage à l'adresse d'entrée suivante
et lorsque A=E/B, remise à l'état non succès des bits PC+1 de la banque BRC+l suivante puis incrémentation à C+1 (modulo B) du comptage de rang, remise à zéro du compteur A et passage à l'adresse suivante.
The control device according to the invention can constitute a circuit that can be integrated in the buffer memory and / or the processor. But it is also possible to realize the invention according to a replacement method which is implemented programmatically in a computer. In this case it is a method of managing digital data in a buffer formed of E channels, each channel being formed of memory elements identified by a key, the channels being divided into classes, each class being formed of E memory elements taken one by one in each channel, the buffer receiving input addresses having class and / or key indices, the method performing a search, in the buffer memory, of an input address in comparing it to class indices and / or stored address keys,
- and when the input address is found (success), the method implements read / write operations of the buffer memory,
- and when the input address is not found (failure), the method implements a search in a source memory and then a transfer of the contents of the information relating to this input address to the next buffer an alternative method, characterized in that, whenever an address is presented as input, the replacement method stores the successes of the comparison in B logical variables Po ... Pc ... PB ~ 1 associated to each memory element with B = E / k (k integer> 1) the method is subdivided into two branches
a success branch, in which case the step of reading / writing information according to the input address is performed,
- a failure branch, in which case the method includes the following steps
selection of the memory elements having their logical variable PC + 1 in the logical state of no success,
selecting, among these memory elements, the one that has privileged access to make the replacement by writing the information and the key fields according to the input address, the one and the other branch then comprising the next steps
for all the E memory elements of the same class, updating and then scanning the B logical variables during B successive phases and in the same phase; Counting the number
A changes of state of the PC bits of the same rank C together forming a bank BKC,
- comparison of the number A of changes of states with the value E / B
and when A <E / B, move to the next entry address
and when A = E / B, unsuccessful reset of the PC + 1 bits of the following bank BRC + 1 and then incrementation at C + 1 (modulo B) of the rank count, resetting of the counter A and passing to the following address.

La sélection des éléments-mémoire, en testant que leur variable logique PC+1 est à l'état logique de non-succès, est plus facile à opérer dans une mise en oeuvre par programme que la sélection qui consiste à tester que toutes les variables Po à #B-1 sont à l'état logique de non-succès. The selection of the memory elements, by testing that their PC + 1 logic variable is in the logical state of non-success, is easier to operate in a program implementation than the selection which consists in testing that all the variables Po to # B-1 are in the logical state of non-success.

Cette dernière solution est mieux adaptée à une réalisation matérielle d'un dispositif de contrôle du fait que le bit
PC+1 à tester change en fonction de la banque adressée.
This last solution is better adapted to a hardware realization of a control device because the bit
PC + 1 to be tested changes according to the addressed bank.

La méthode de remplacement selon l'invention garantit que pour chaque classe on dispose toujours d'élémentsmémoire ayant toutes leurs variables logiques P0. ..... #B-1 à l'état logique de non-succès, par exemple l'état 0. En effet considérons la situation au début de la dernière phase sur une durée de B phases. Si l'on suppose que sur les B-l phases précédentes toutes les présentations d'adresses d'entrée ont donné lieu à un succès, comme il ne peut y avoir qu'au maximum E/B succès par phase, il y a donc au maximum eu (B-1).E/B succès sur des éléments-mémoire tous différents. Comme il ne peut y avoir que B.E/B succès sur B phases (car au début d'une phase tous les bits d'une banque sont tous remis à jour), il reste obligatoirement au minimum E/B éléments-mémoire ayant tous leurs bits à zéro au début de la
Bième phase.Comme au cours d'une phase, d'après la méthode selon l'invention, il n'est pas possible d'adresser plus de
E/B éléments-mémoire il y a donc assez d'éléments-mémoire jus qu a la fin de la Bième phase ayant tous leurs bits à zéro.
The replacement method according to the invention ensures that for each class there are always memory elements having all their logical variables P0. ..... # B-1 in the logical state of non-success, for example the state 0. Indeed, consider the situation at the beginning of the last phase over a duration of B phases. Assuming that on all previous Bl phases all input address presentations have been successful, since there can only be a maximum E / B success per phase, then there is at most had (B-1) .E / B success on all different memory elements. Since there can be only BE / B success on B phases (because at the beginning of a phase all the bits of a bank are all updated), it remains obligatorily at least E / B memory elements having all their bits to zero at the beginning of the
Phase B. As during a phase, according to the method according to the invention, it is not possible to address more than
Thus, there are enough memory elements until the end of the Bth phase, all of which have their bits at zero.

C'est la remise à zéro, en fin de phase, de tous les bits d'une banque qui garantit cette propriété.It is the reset, at the end of the phase, of all the bits of a bank which guarantees this property.

La comparaison des clés d'entrée avec les clés stockées est généralement effectuée sous le contrôle d'un bit de présence L propre à chaque élément-mémoire. Ce bit de présence est mis à un certain état logique lors de l'écriture de cet élément-mémoire. L'état de ce bit de présence révèle ainsi si l'élément-mémoire est occupé ou inoccupé. Ceci s'avère utile lors du premier chargement de la mémoire où une situation d'erreur peut apparaître sans l'existence de ce bit de présence. The comparison of the input keys with the stored keys is generally performed under the control of a presence bit L specific to each memory element. This presence bit is set to a certain logical state when writing this memory element. The state of this presence bit thus reveals whether the memory element is busy or unoccupied. This is useful when first loading the memory where an error situation can appear without the existence of this presence bit.

Dans la phase de chargement des éléments-mémoire au début d'un cycle de fonctionnement il peut être utile de différer la mise en oeuvre du mécanisme de remplacement jusqu'à ce que tous les éléments-mémoire disponibles de la classe considérée aient été utilisés. Pour cela au lieu d'un bit de présence L affecté à un bloc de donnée on utilise un bit de présence Q affecté à tous les éléments-mémoire d'une même classe. Ce bit Q est testé, et si une situation de non-succès est détectée le chargement de la donnée est alors effectué dans un élément-mémoire libre. Lorsque ce bit change d'état tous les éléments-mémoire de la classe ont été utilisés et contiennent des informations valides. Ainsi avantageusement on obtient de meilleures performances car on remplit toujours complètement la classe avant d'opérer le premier remplacement. In the loading phase of the memory elements at the beginning of an operating cycle, it may be useful to defer the implementation of the replacement mechanism until all the available memory elements of the considered class have been used. For this instead of a presence bit L assigned to a data block is used a presence bit Q assigned to all the memory elements of the same class. This bit Q is tested, and if a situation of non-success is detected the loading of the data is then carried out in a free memory element. When this bit changes state all memory elements of the class have been used and contain valid information. Thus advantageously we obtain better performance because we always completely fill the class before making the first replacement.

Dans ce cas la méthode de remplacement comprend pour chaque classe, préalablement au remplacement une étape de chargement de tous les éléments-mémoire inoccupés d'une même classe, ladite étape comprenant la détection du changement d'état d'un bit de présence unique affecté à la signalisation de l'occupation de tous les éléments-mémoire de ladite classe. In this case, the replacement method comprises for each class, prior to replacement, a step of loading all the unoccupied memory elements of the same class, said step comprising detecting the change of state of an assigned single presence bit. signaling the occupation of all the memory elements of said class.

Pour opérer préalablement l'étape de chargement l'invention concerne alors un dispositif de contrôle qui comprend un élément de stockage d'un bit de présence unique pour tous les éléments-mémoire d'une même classe afin d'opérer le chargement de tous les éléments-mémoire inoccupés de ladite classe préalablement au remplacement, ce bit de présence contrôlant le compteur de transitions de ladite classe pour qu'il opère un comptage modulo E/B si le bit de présence indique le chargement complet des éléments-mémoire inoccupés et un comptage modulo E dans le cas inverse. To carry out the loading step in advance, the invention then relates to a control device that comprises a single presence bit storage element for all the memory elements of the same class in order to operate the loading of all the data elements. unoccupied memory elements of said class prior to replacement, said presence bit controlling the transitions counter of said class to operate a modulo E / B count if the presence bit indicates the complete loading of the unoccupied memory elements and a modulo E count in the opposite case.

L'invention peut aussi concerner un calculateur agencé pour mettre en oeuvre cette méthode de gestion de données. The invention may also relate to a computer arranged to implement this method of data management.

L'invention sera mieux comprise à l'aide des figures suivantes données à titre d'exemple non limitatif et qui représentent
Figure 1 : un système général de traitement de données mettant en relief les échanges entre différents niveaux de mémoire.
The invention will be better understood with the aid of the following figures given by way of non-limiting example and which represent
Figure 1: a general system of data processing highlighting the exchanges between different levels of memory.

Figure 2 : un schéma de l'organisation générale d'une mémoire tampon. Figure 2: a diagram of the general organization of a buffer.

Figure 3 : un schéma d'un dispositif de contrôle selon l'invention. Figure 3: a diagram of a control device according to the invention.

Figures 4A, 4B : un chronogramme se rapportant au schéma de la figure 3. Figures 4A, 4B: a timing diagram referring to the diagram of Figure 3.

Figure 5 : une représentation de l'organisation des organes de stockage. Figure 5: a representation of the organization of the storage organs.

Figure 6 : un exemple de transfert des données opéré dans les registres sur plusieurs éléments-mémoire. Figure 6: an example of data transfer operated in the registers on several memory elements.

Figure 7 : un exemple de l'évolution sur plusieurs phases du contenu d'un registre. Figure 7: An example of the multi-phase evolution of the contents of a registry.

Figure 8 : un schéma d'un circuit de remplacement dans un élément-mémoire prédéterminé. Figure 8: a diagram of a replacement circuit in a predetermined memory element.

Figures 9A1 9B : un organigramme concernant les différentes étapes de la méthode de gestion de données selon l'invention. 9A1 9B: a flow diagram relating to the various steps of the data management method according to the invention.

La description qui va suivre opère la distinction entre le terme "donnée" qui est la valeur à échanger et le terme "adresse" qui est l'adresse de cette valeur. Dans un sens général bien évidemment toutes deux sont par essence des données numériques qui sont celles gérées selon l'invention.  The following description makes the distinction between the term "data" which is the value to be exchanged and the term "address" which is the address of this value. In a general sense of course both are in essence digital data which are those managed according to the invention.

La figure 1 représente un système général de traitement de données numériques où sont plus particulièrement mis en relief les échanges qui s'opèrent entre les différents niveaux successifs de mémoire. Un tel système va comprendre notamment un processeur 10 qui pour fonctionner va opérer avec les couples adresses-données. Ainsi il va pouvoir délivrer une adresse afin de recevoir une donnée ou bien il va délivrer une donnée et une adresse à laquelle cette donnée doit être transmise. Dans la forme la plus générale de ce système, le processeur 10 va délivrer une adresse virtuelle ADVIR à un traducteur d'adresses Il qui à son tour va délivrer une adresse physique ADPHY. Celle-ci va permettre de trouver l'élément-mémoire où la donnée doit être soit lue soit transmise.Les systèmes importants vont disposer de plusieurs niveaux de mémoire, par exemple une mémoire cache 12, une mémoire centrale 13, une mémoire de masse 14. L'adresse physique délivrée par le traducteur d'adresses 11 va parvenir à la mémoire cache 12. Deux cas peuvent se présenter
- la mémoire cache 12 contient la donnée adressée (ou la place pour cette donnée) et dans ce cas elle la transmet (ou la reçoit) vers (ou en provenance du) le processeur,
- la mémoire cache 12 ne contient pas la donnée (ou la place pour cette donnée) et dans ce cas elle la requiert de la mémoire d'amont du niveau le plus proche en l'occurence ici d'une mémoire centrale 13. La mémoire centrale 13 la transmet alors à la mémoire cache 12 qui à son tour la transmet au processeur. Les mêmes mécanismes d'échanges opèrent entre la mémoire centrale 13 et la mémoire de masse 14.
FIG. 1 represents a general system of digital data processing where the exchanges that take place between the different successive levels of memory are more particularly highlighted. Such a system will include a processor 10 which will operate to work with the data-address pairs. Thus it will be able to deliver an address in order to receive data or it will deliver a data and an address to which this data must be transmitted. In the most general form of this system, the processor 10 will issue an ADVIR virtual address to an address translator Il which in turn will issue a physical address ADPHY. This will make it possible to find the memory element where the data must be either read or transmitted. The important systems will have several levels of memory, for example a cache memory 12, a central memory 13, a mass memory 14 The physical address delivered by the address translator 11 will reach the cache memory 12. Two cases may occur
the cache 12 contains the addressed data (or the place for this data) and in this case it transmits (or receives) it to (or from) the processor,
the cache 12 does not contain the data (or the place for this data) and in this case it requires it from the upstream memory of the nearest level, in this case here a central memory 13. The memory central 13 then transmits it to the cache memory 12 which in turn transmits it to the processor. The same exchange mechanisms operate between the central memory 13 and the mass memory 14.

Pour recevoir une nouvelle donnée il est nécessaire de mettre en oeuvre une méthode de remplacement des données anciennes.- Celle-ci s'applique pour les remplacements effectués aussi bien dans le traducteur d'adresses Il que dans la mémoire de cache 12 ou que dans la mémoire centrale 13. To receive a new data it is necessary to implement a method of replacing the old data. This applies for the replacements carried out both in the address translator 11 and in the cache memory 12 or in the central memory 13.

Pour mettre en oeuvre les algorithmes LRU, FIFO,
Random déjà présentés, les différents niveaux de mémoire doivent disposer chacun d'un dispositif de contrôle du remplacement. L'organisation générale de la mémoire cache ainsi contrôlée est représentée sur le schéma de la figure 2. Une organisation similaire s'applique pour les autres niveaux de mémoire. Le dispositif reçoit une adresse 20 qui comprend généralement plusieurs champs : un champ de clé CE, un champ de classe K et un champ d'indice de mot de donnée IM. La mémoire est structurée selon plusieurs voies V1, V2... Une voie (par exemple V1) comprend plusieurs éléments-mémoire EO, El, E2...
To implement the LRU, FIFO algorithms,
Random already presented, the different levels of memory must each have a replacement control device. The general organization of the cache thus controlled is shown in the diagram of Figure 2. A similar organization applies for the other levels of memory. The device receives an address which generally comprises several fields: a key field CE, a class field K and a data word index field IM. The memory is structured according to several channels V1, V2. A channel (for example V1) comprises several memory elements E0, E1, E2.

Chaque élément-mémoire stocke d'une part la clé CE correspondant aux données et d'autre part les données proprement dites dans des blocs BL qui peuvent chacun stocker plusieurs mots de données.Each memory element stores, on the one hand, the key CE corresponding to the data and, on the other hand, the data itself in blocks BL which can each store several data words.

Un champ de classe K1 permet de distinguer les éléments-mémoire entre eux dans une voie donnée. Ce même champ de classe KI se retrouve sur plusieurs voies. Ceci est représenté sur la figure 2 sous la forme de couches correspondant à des classes Kî, K2...  A class field K1 makes it possible to distinguish the memory elements with each other in a given channel. This same class field KI is found on several tracks. This is represented in FIG. 2 in the form of layers corresponding to classes K 1, K 2 ...

Le champ d'indice de mot de donnée IM de l'adresse permet de distinguer les différentes données dans un bloc d'informations associées BL. Généralement un élément-mémoire
EO contient pour chaque bloc un bit de présence L qui permet au processeur de connaître si une donnée a déjà été stockée à cette position depuis l'initialisation du dispositif. Ce bit de présence est testé en même temps que l'adresse d'entrée est elle-même testée.
The data word index field IM of the address makes it possible to distinguish the different data in a block of associated information BL. Usually a memory element
EO contains for each block a presence bit L which allows the processor to know if data has already been stored at this position since the initialization of the device. This presence bit is tested at the same time that the input address is itself tested.

Lorsqu'une adresse d'entrée est reçue, le dispositif de contrôle détermine la classe et la clé puis teste la clé. Si celle-ci est trouvée dans la mémoire tampon la donnée concernée présente dans le bloc BL correspondant est transmise (bus IF). Si la clé n'est pas trouvée, la donnée concernée doit être cherchée dans la mémoire d'amont puis la clé d'entrée et la donnée sont inscrites dans la mémoire du niveau en cours d'opération. Il est donc nécessaire de remplacer une des données jugées anciennes par la donnée qui vient juste d'être adressée. Ceci est effectué par un dispositif de contrôle qui gère le remplacement. When an input address is received, the control device determines the class and the key and then tests the key. If it is found in the buffer memory the relevant data present in the corresponding block BL is transmitted (IF bus). If the key is not found, the data concerned must be searched in the upstream memory and then the input key and the data are entered in the memory of the level during operation. It is therefore necessary to replace one of the data deemed old by the data that has just been addressed. This is done by a control device that manages the replacement.

Le dispositif de contrôle selon l'invention est représenté sur la figure 3. Pour la clarté de l'exposé le dispositif de contrôle de la figure 3 est limité à la gestion de seulement deux éléments-mémoire appelés (K1rV1) et (K1rV2) appartenant à la même classe K1 mais situés sur deux voies VI et V2 différentes. A chaque élément-mémoire est associé un organe de stockage 301, 302 d'un mot logique formé de plusieurs bits Po PC -PB-1 Cet organe est par exemple un registre formé de bascules RS. Ce mot logique va conserver la trace des adressages antérieurs selon une méthode dynamique de renouvellement qui permet au dispositif de contrôle d'opérer avec un taux de succès élevé dans des conditions variées. The control device according to the invention is shown in FIG. 3. For the sake of clarity, the control device of FIG. 3 is limited to the management of only two memory elements called (K1rV1) and (K1rV2) belonging to each other. at the same class K1 but located on two different channels VI and V2. Each memory element is associated with a storage member 301, 302 of a logical word formed of several bits Po PC -PB-1 This member is for example a register formed of RS flip-flops. This logical word will keep track of previous addresses according to a dynamic renewal method that allows the control device to operate with a high success rate under various conditions.

Les registres 301r 302 peuvent recevoir leurs informations par deux voies différentes. Ils sont notamment chargés respectivement par des comparateurs 311r 312 qui comparent une clé CR d'une adresse d'entrée à chercher avec les clés CEl,
CE2 présentes respectivement dans les éléments-mémoire (Kî,VI) et (K1,V2). Les comparateurs 311r 312 sont respectivement validés par les bits de présence Li et L2. En cas de succès, les comparateurs 311r 312 délivrent des signaux COI, COz à un état logique déterminé. Pour la suite de la description l'état de succès sera représenté par le niveau logique 1. Les portes logiques sont donc décrites en fonction de ce niveau logique I.
The registers 301r 302 can receive their information by two different ways. They are in particular loaded respectively by comparators 311r 312 which compare a key CR of an input address to look for with the keys CE1,
CE2 present respectively in the memory elements (K1, VI) and (K1, V2). The comparators 311r 312 are respectively enabled by the presence bits Li and L2. If successful, comparators 311r 312 deliver signals COI, COz to a certain logic state. For the rest of the description, the state of success will be represented by logic level 1. Logic gates are thus described according to this logical level I.

Une convention inverse peut être choisie et dans ce cas l'homme du métier peut sans difficulté modifier le type des portes logiques. Les signaux COi, C02 traversent respectivement des portes OU 321 322 et actionnent l'entrée forçage à 1 (set) des bascules RS. Un niveau logique 0 pour COi, C02 est inopérant. Les bascules RS de chaque registre 3 1 r 302 sont lues à l'aide de multiplexeurs 331r 332 qui sont commandés simultanément par un compteur de phases 34 (compteur C). Dans une même phase les bascules de même rang des registres 3oui, 302 sont lues. Si la lecture concerne par exemple les bits P1, ceux-ci arrivent sur un compteur de transition 35 (compteur A) qui comptabilise pour tous les bits P1 leur changement de l'état logique O (non succès) à l'état logique 1 (succès). En fonction de l'état du compteur de phase 34 tous les bits Po à #B-I sont ainsi testés.An inverse convention can be chosen and in this case the skilled person can easily change the type of logic gates. The signals CO 1, C 2 2 respectively pass through OR gates 321 322 and actuate the forced entry at 1 (set) of the RS flip-flops. A logical level 0 for COi, C02 is inoperative. The RS flip-flops of each register 3 1 r 302 are read using multiplexers 331r 332 which are simultaneously controlled by a phase counter 34 (counter C). In the same phase the latches of the same rank of the registers 3oui, 302 are read. If the reading concerns, for example, the bits P1, these arrive at a transition counter 35 (counter A) which counts for all the bits P1 their change from the logical state O (not successful) to the logic state 1 ( success). Depending on the state of the phase counter 34, all the bits Po to # B-I are thus tested.

Une autre variante consiste à ne pas utiliser les multiplexeurs 331r 332, mais un compteur de transitions 35 possédant E.B entrées reliées aux sorties des bascules RS de la classe. Le compteur est incrémenté d'une unité par le passage à 1 d'une ou de plusieurs bascules au cours du traitement de l'adresse considérée. Another variant consists in not using the multiplexers 331r 332, but a transitions counter 35 having E.B inputs connected to the outputs of the flip-flops RS of the class. The counter is incremented by one unit by changing to 1 of one or more flip-flops during the processing of the considered address.

Dans les deux cas, le compteur de transition 35 opère un comptage modulo E/B (E : nombre d'éléments-mémoire par voie, B : nombre de bits du mot logique). Lorsque le comptage atteint E/B il délivre un signal (connexion 30) qui incrémente le compteur de phases 34 et le bit suivant de chaque mot logique est testé. Le compteur de phases 34 passe ainsi d'une valeur C à une valeur C+î (modulo B) qui est transmise à une logique de forçage 38 par un sélecteur 36 après validation (connexion 37) par la sortie du compteur de transition 35. La logique de forçage 38 active l'entrée remise à zéro (reset) de la bascule RS qui suit celle qui a provoqué le comptage jus qu a E/B du compteur de transition 35. Ainsi lorsque les bits
PI testés ont provoqué par leur transition un comptage à E/B, les bits suivants P2 de tous les registres sont mis à zéro.
In both cases, the transition counter 35 operates a modulo E / B count (E: number of memory elements per channel, B: number of bits of the logical word). When the count reaches E / B it delivers a signal (connection 30) which increments the phase counter 34 and the next bit of each logical word is tested. The phase counter 34 thus changes from a value C to a value C + 1 (modulo B) which is transmitted to a forcing logic 38 by a selector 36 after validation (connection 37) by the output of the transition counter 35. The forcing logic 38 activates the reset input of the RS flip-flop following the one that caused the counting of the transition counter 35 until the E / B is reached. Thus, when the bits
PI tested caused by their transition an E / B count, the next bits P2 of all the registers are set to zero.

Ceci permet de pouvoir stocker un adressage de cet élément-mémoire (succès dans cet élément-mémoire) à la phase suivante C+1 si celui-ci se produit. Sinon ce bit P2 restera à zéro.This allows to store an address of this memory element (success in this memory element) to the next phase C + 1 if it occurs. Otherwise this P2 bit will remain at zero.

Lorsque le compteur de transition 35 n'atteint pas la valeur
E/B aucune des actions précédentes n'est effectuée et le dispositif de contrôle passe à l'analyse de l'adresse suivante.
When the transition counter 35 does not reach the value
E / B none of the previous actions are performed and the control device passes to the analysis of the following address.

Quand une adresse d'entrée est testée elle peut ne pas être trouvée dans la mémoire gérée par le dispositif de contrôle. La procédure de remplacement proprement dite est alors mise en oeuvre. Pour déterminer l'élément-mémoire dans lequel va s'opérer le remplacement il faut alors tester les états logiques des bits contenus dans les registres 3 1r 302 à l'aide respectivement d'une porte logique OU 391 392. Si l'un quelconque des bits d'un mot logique est à 1, l'élément-mémoire a été adressé durant les phases précédentes ou la phase en cours et n'est plus disponible. Si tous les bits du mot logique sont à zéro l'élément-mémoire n'a pas été référencé au cours des (B-l) phases précédentes ni jusqu'à l'instant où s'effectue l'analyse de l'adresse en cours.Si par exemple l'élément-mémoire (R1,V1) est disponible, la porte 391 délivre un signal DI1 à l'état logique O qui active une logique combinatoire 40. Celle-ci peut en effet recevoir des signaux analogues en provenance d'autres éléments-mémoire disponibles. Dans ce cas la logique combinatoire 40 sélectionne un des élémentsmémoire selon un critère prédéterminé. Ce critère peut privilégier la vitesse d'accès à l'élément-mémoire. Si par exemple la logique combinatoire 40 sélectionne l'élément-mémoire (K1,V1), elle délivre alors un signal INDI à l'état logique 1 à cet élément-mémoire, signal IND1 qui est validé par un signal S1 délivré par la porte NON-OU 41 qui détecte que tous les comparateurs 311, 312 n'ont pas détecté un succès (C01=O,
CO2=O).Cette validation est effectuée par l'organe de validation 42 qui transmet le signal IND1 à la porte OU 321 qui met à 1 les bascules du registre 3 1 pour prendre en compte le succès de l'adressage dû au remplacement.
When an input address is tested it may not be found in the memory managed by the control device. The actual replacement procedure is then implemented. In order to determine the memory element in which the replacement will take place, it is then necessary to test the logic states of the bits contained in the registers 3 1r 302 respectively by means of an OR logic gate 391 392. If any one bits of a logical word is 1, the memory element has been addressed during the previous phases or the current phase and is no longer available. If all the bits of the logical word are zero, the memory element has not been referenced during the preceding (B1) phases nor until the analysis of the current address is performed. If for example the memory element (R1, V1) is available, the gate 391 delivers a logic DI1 signal which activates a logic combinatorial 40. This can indeed receive analog signals from other memory elements available. In this case, the combinational logic 40 selects one of the memory elements according to a predetermined criterion. This criterion can privilege the speed of access to the memory element. If, for example, the combinational logic 40 selects the memory element (K1, V1), it then delivers an INDI signal at logic state 1 to this memory element, signal IND1 which is enabled by a signal S1 delivered by the gate NO-OR 41 which detects that all the comparators 311, 312 have not detected a success (C01 = O,
CO2 = O). This validation is performed by the validation member 42 which transmits the signal IND1 to the OR gate 321 which sets the flip-flops of the register 31 to take into account the success of the addressing due to the replacement.

La figure 3A représente un schéma d'une modification à apporter à la figure 3 pour que la méthode de remplacement opère avec préalablement une étape de chargement de tous les éléments-mémoire inoccupés. Pour cela un bit de présence Q concernant l'ensemble de la classe K1 est stocké dans une bascule 29. La bascule 29 et le compteur de transition 35 interagissent mutuellement l'un sur l'autre. Lorsque Q=O la bascule 29 (connexion 27) place le compteur de transition 35 pour opérer un comptage jusqu'à la valeur de seuil E. Lorsque le compteur de transition 35 atteint la valeur de seuil prévue il fait passer Q à 1 (connexion 28) et le compteur opère alors avec la valeur de seuil E/B. Le signal de fin de phase (connexion 28) est alors transmis par la connexion 37 comme précédemment vers le sélecteur 36.Pour opérer ces étapes de chargement une autre modification est à effectuer consistant à valider le fonctionnement des comparateurs 31l, 312... des éléments-mémoire non par les bits de présence L1, L2 mais par respectivement les sorties de portes logiques OU (non représentées) qui reçoivent chacune respectivement le bit de présence Q de la classe et le bit PO de l'élément-mémoire concerné. FIG. 3A represents a diagram of a modification to be made to FIG. 3 so that the replacement method operates with a prior step of loading all the unoccupied memory elements. For this purpose, a presence bit Q concerning the entire class K1 is stored in a flip-flop 29. The flip-flop 29 and the transition counter 35 interact with one another. When Q = 0 the flip-flop 29 (connection 27) places the transition counter 35 to count up to the threshold value E. When the transition counter 35 reaches the predicted threshold value, it passes Q to 1 (connection 28) and the counter then operates with the threshold value E / B. The end-of-phase signal (connection 28) is then transmitted via the connection 37 as before to the selector 36. In order to carry out these charging steps, another modification is to be performed consisting in validating the operation of the comparators 311, 312 ... memory elements not by the presence bits L1, L2 but respectively by the OR logic gate outputs (not shown) which each receive respectively the presence bit Q of the class and the bit PO of the memory element concerned.

Une partie du diagramme des temps concernant le schéma de la figure 3 est représenté sur les figures 4A et 4B. La figure 4A se rapporte au cas où la comparaison des clés a donné lieu à un succès. La figure 4B se rapporte au cas où la comparaison des clés a donné lieu à un échec. Les niveaux logiques significatifs sont représentés en traits gras sur ces figures. On suppose que les événements décrits concernent uniquement l'élément-mémoire (ksi, V1). Dans le cas de la figure 4A une adresse d'entrée ADR donne lieu à un succès ce qui provoque le passage du signal C01 et du signal Si au niveau logique 1. Le passage à 1 du signal Si entraîne le transfert de la "donnée" proprement dite.Le passage à 1 du signal COi force un état logique 1 dans tous les bits Po à #B-i du registre. La situation de succès est ainsi conservée dans le registre. En supposant que le compteur de phase soit calé sur le bit Pc et en supposant qu'avant de passer à 1 le bit Pc était à l'état 0, il se produit alors une transition qui provoque une incrémentation INCA du compteur A. Simultanément le signal Dli passe au niveau logique 1 ce qui signifie que l'élément-mémoire El vient d'être utilisé et n'est plus disponible pendant la phase en cours ni pendant les (B-1) phases suivantes. Le signal INDI relatif à l'élément-mémoire (K7,V1) passe à l'état logique 0. Le système opère alors le traitement de fin de phase avec éventuellement mise à jour des compteurs
A et C. L'analyse de l'adresse d'entrée est alors terminée et l'adresse suivante est analysée.
A portion of the timing diagram relating to the diagram of Fig. 3 is shown in Figs. 4A and 4B. Figure 4A refers to the case where the key comparison has been successful. Figure 4B refers to the case where the comparison of the keys has given rise to a failure. Significant logical levels are shown in bold lines in these figures. It is assumed that the events described concern only the memory element (ksi, V1). In the case of FIG. 4A, an ADR input address gives rise to a success which causes the signal C01 and the signal Si to pass to the logic level 1. The change to 1 of the signal S1 transfers the "data" The transition to 1 of the signal CO1 forces a logic state 1 in all the bits Po to #Bi of the register. The success situation is thus kept in the register. Assuming that the phase counter is set to the Pc bit and assuming that before changing to 1 the Pc bit was in the 0 state, then a transition occurs which causes INCA incrementation of the counter A. Simultaneously the signal Dli goes to logic level 1, which means that the memory element E1 has just been used and is no longer available during the current phase or during the following (B-1) phases. The INDI signal relating to the memory element (K7, V1) goes to the logic state 0. The system then performs the end of phase processing with possibly updating the counters
A and C. The analysis of the input address is then completed and the following address is analyzed.

Dans le cas de la figure 4B est représentée une situation d'échec pour tous les éléments-mémoire de la mémoire. L'adresse d'entrée ADR donne lieu à un échec ce qui provoque le passage des signaux COI et Si au niveau logique 0. On suppose de plus que le remplacement s'opère dans l'élément-mémoire (Kl,Vi) afin de faciliter la présentation du chronogramme. Son signal IND1 est donc à 1. In the case of Figure 4B is shown a failure situation for all the memory elements of the memory. The input address ADR gives rise to a failure which causes the passage of signals COI and Si at logic level 0. It is further assumed that the replacement takes place in the memory element (K1, V1) in order to facilitate the presentation of the chronogram. Its signal IND1 is therefore at 1.

Ce signal est validé par Si (niveau 1) ce qui provoque le chargement de la clé et de la donnée associée dans l'élément-mémoire. La porte OU 321 (figure 3) passe ainsi à 1 et provoque le passage à 1 des bits PO à PB~1 du registre 301. Le signal DI1 passe à 1 et fait redescendre IND1 à zéro pour indiquer que l'élément (K?,V1) n'est plus libre. Le remplacement qui est ainsi effectué se trouve alors mémorisé. La procédure qui suit devient alors identique à celle déjà décrite en cas de succès. This signal is validated by Si (level 1) which causes the key and associated data to be loaded into the memory element. The OR gate 321 (FIG. 3) thus passes to 1 and causes the bits PO to PB ~ 1 of the register 301 to be changed to 1. The signal DI1 goes to 1 and down IND1 to zero to indicate that the element (K? , V1) is no longer free. The replacement that is thus performed is then stored. The following procedure then becomes identical to that already described in case of success.

La figure 5 représente l'organisation des différents registres de stockage. Comme cela a été expliqué préalablement une classe déterminée K1 est répartie sur plusieurs voies V1, V2... Pour une même classe Ki on dispose donc des éléments-mémoire (K1,V1),..., (K1,V3),...,(K1,V8) dans un cas de mémoire à 8 voies. En prenant pour exemple des registres stockant 4 bits Po à P31 à chaque élément-mémoire est associé un tel registre. Le compteur de phase va être pointé simultanément sur les bits de même rang appartenant à ces registres. Figure 5 shows the organization of the different storage registers. As has been previously explained, a given class K1 is distributed over several channels V1, V2. For the same class K1, therefore, memory elements (K1, V1),... (K1, V3), are available. .., (K1, V8) in an 8-channel memory case. Taking for example registers storing 4 bits Po to P31 to each memory element is associated with such a register. The phase counter will be pointed simultaneously on the bits of the same rank belonging to these registers.

L'organisation des registres de la figure 5 se présente sous une forme matricielle. Tous les bits de même rang, par exemple de rang 2, prennent le nom de banque BK2. Lors de l'opération de forçage à zéro (pour le rang C+1) décrite précédemment c'est toute la banque BKC+1 de rang suivant C+1 qui est concernée. Lorsque le compteur de phase a atteint le dernier bit du registre (P3 dans l'exemple) il revient à la position de départ Po. The organization of the registers in Figure 5 is in a matrix form. All the bits of the same rank, for example of rank 2, take the name of bank BK2. During the forcing operation at zero (for the rank C + 1) previously described, the entire bank BKC + 1 of the next rank C + 1 is concerned. When the phase counter has reached the last bit of the register (P3 in the example) it returns to the starting position Po.

Pour bien mettre en évidence le changement d'état logique des bits P0. . #B-i des registres un exemple très simplifié est représenté sur la figure 6. Il concerne quatre éléments-mémoire (Ki,Vi), (Ki,V2), (Ki,V3), (K1,V4) ayant chacun un registre à seulement deux bascules pour stocker deux bits Po et P1. La valeur E/B est donc égale à 2. To highlight the logical state change of P0 bits. . #Bi of the registers a very simplified example is represented in FIG. 6. It concerns four memory elements (Ki, Vi), (Ki, V2), (Ki, V3), (K1, V4) each having a register at only two latches to store two bits Po and P1. The E / B value is therefore equal to 2.

A titre d'exemple, au départ, après le temps tO1 les bits P1 des éléments (Ki,V1) et (Ki,V2) sont à 1 et tous les autres bits sont à zéro. Le compteur de phase (C=O) est pointé sur la banque BRO. Le compteur A est à 0. By way of example, initially, after the time tO1, the bits P1 of the elements (Ki, V1) and (Ki, V2) are at 1 and all the other bits are at zero. The phase counter (C = O) is pointed at the BRO bank. Counter A is at 0.

Au temps t=t1 le test de l'adresse d'entrée se traduit par un succès dans l'élément-mémoire (Ki,Vi). Ceci provoque pour cet élément-mémoire, le passage de Po du niveau logique O au niveau logique 1 (repéré par une *). Le compteur de transition compte une transition. At time t = t1 the test of the input address results in a success in the memory element (Ki, Vi). This causes for this memory element, the passage of Po from logic level O to logic level 1 (marked by an *). The transition counter has a transition.

L'adresse d'entrée suivante est testée et donne lieu au temps t=t2 à un succès dans l'élément-mémoire (K1rV3). Pour cet élément-mémoire ceci provoque le passage de
PO et P1 du niveau logique O au niveau logique 1 (repéré par une *). Le compteur de transition compte une transition supplémentaire. Il atteint la valeur E/B=2 ce qui provoque au temps t=t3 un changement de phase (C=1) avec simultanément forçage à zéro de toute la banque suivante c'est-à-dire BRI.
The following input address is tested and gives rise to time t = t2 to success in the memory element (K1rV3). For this memory element this causes the passage of
PO and P1 from logical level O to logic level 1 (marked with *). The transition counter has an additional transition. It reaches the value E / B = 2 which causes at time t = t3 a phase change (C = 1) with simultaneous forcing to zero of the entire next bank that is to say BRI.

Tous les bits P1 sont mis à zéro. Le compteur de transition est remis à zéro.All P1 bits are set to zero. The transition counter is reset.

Au temps t=t4 le test de l'adresse d'entrée se traduit par un échec dans tous les éléments-mémoire. En supposant que l'élément-mémoire retenu pour le remplacement soit l'élément-mémoire (Kî,V2), les bits Po et P1 de cet élémentmémoire passent à l'état logique 1 (repéré par une *). Le compteur de transition compte une transition. At time t = t4 the test of the input address results in a failure in all the memory elements. Assuming that the memory element selected for replacement is the memory element (K1, V2), the bits Po and P1 of this memory element pass to the logical state 1 (indicated by a *). The transition counter has a transition.

Au temps t=t5 le test de l'adresse d'entrée se traduit par un échec dans tous les éléments-mémoire. En supposant que l'élément-mémoire retenu pour le remplacement soit l'élément-mémoire (Kî;V4), les bits Po et Pj de cet élémentmémoire passent à l'état logique 1 (repéré par une *). Le compteur de transition compte une transition supplémentaire. At time t = t5 the test of the input address results in a failure in all the memory elements. Assuming that the memory element selected for replacement is the memory element (K1; V4), the bits Po and Pj of this memory element go to logical state 1 (marked with an *). The transition counter has an additional transition.

Il atteint la valeur E/B=2 ce qui provoque un changement de phase (C=O) pour t=t6 avec forçage à zéro de toute la banque suivante c'est-à-dire BKo. Le compteur de transition est remis à zéro.It reaches the value E / B = 2 which causes a phase change (C = O) for t = t6 with zero forcing of the entire next bank, that is to say BKo. The transition counter is reset.

Les bits Po à #B-i d'un registre d'un élément-mémoire déterminé représentent le nombre de fois et l'époque à laquelle cet élément-mémoire a été adressé. Ceci est représenté sur la figure 7 pour différentes situations. Dans le cas I le compteur de phase opère sur la banque BK4, tous les bits du registre sont au niveau logique 1 ce qui signifie que cet élément-mémoire vient d'être adressé pendant la phase en cours (et peut être aussi avant). The bits Po to # B-i of a register of a determined memory element represent the number of times and the time at which this memory element was addressed. This is shown in Figure 7 for different situations. In case I the phase counter operates on the bank BK4, all the bits of the register are at logic level 1 which means that this memory element has just been addressed during the current phase (and can be also before).

Dans le cas Il le compteur de phase opère sur la banque BKs. Le bit P5 est à zéro et tous les autres bits sont à 1. Ceci signifie que cet élément-mémoire n'a pas été adressé pour la phase en cours mais a été adressé à la phase précédente, et peut-être avant. In the case It the phase counter operates on the bank BKs. P5 bit is zero and all other bits are 1. This means that this memory element has not been addressed for the current phase but has been addressed to the previous phase, and perhaps before.

Dans le cas III le compteur de phase opère sur la banque BK3. Les bits P1, P2 et P3 sont à zéro et tous les autres bits sont à 1. Ceci signifie que cet élément-mémoire n'a pas été adressé pour la phase en cours ni au cours des deux phases précédentes mais par contre a été adressé à la troisième phase précédente et peut-être avant. In case III the phase counter operates on bank BK3. The bits P1, P2 and P3 are at zero and all the other bits are at 1. This means that this memory element has not been addressed for the current phase nor during the two previous phases but has been addressed in the previous third phase and perhaps before.

Dans le cas IV le compteur de phase opère sur la banque BK1. Les bits P2 et P3 sont au niveau logique 1 et tous les autres bits sont au niveau logique zéro. Ceci signifie que cet élément-mémoire n'a pas été adressé pour la phase en cours ni au cours des cinq phases précédentes. In case IV the phase counter operates on bank BK1. The bits P2 and P3 are at logic level 1 and all the other bits are at logic level zero. This means that this memory element has not been addressed for the current phase or in the previous five phases.

Les moyens qui sélectionnent dans une classe donnée l'élément-mémoire dans lequel doit s'effectuer le remplacement peuvent opérer selon un critère prédéterminé sur l'un quelconque de ces éléments-mémoire ayant tous leurs bits Po à Pg-l à O (non-succès). The means which select in a given class the memory element in which the replacement must take place can operate according to a predetermined criterion on any one of these memory elements having all their bits Po to Pg-1 to O (no -success).

Préférentiellement selon l'invention ce critère prédéterminé va consister à choisir un élément-mémoire selon un classement prédéterminé qui privilégie la vitesse d'accès, par exemple selon l'ordre des indices de voie, à l'aide du circuit représenté sur la figure 8. Ainsi avantageusement la sélection est faite avec une grande rapidité. La figure 8 concerne 4 éléments-mémoire d'une même classe mais ceci n'est nullement limitatif. Considérons les voies V1 à V4 dont les indices de voies vont en augmentant. Les moyens de sélection comprennent alors 4 portes logiques
- une porte inverseuse qui reçoit le signal Dli (figure 3) de la première voie,
- une porte ET 82 qui reçoit le signal Dli de la voie précédente et le signal DI2 de la deuxième voie qui est appliqué inversé,
- une porte ET 83 qui reçoit les signaux DI1 et DI2 des deux voies précédentes et le signal DI3 de la troisième voie qui est appliqué inversé,
- une porte ET 84 qui reçoit les signaux Dli, DI2 et DI3 des trois voies précédentes et le signal DIs de la quatrième voie qui est appliqué inversé.
Preferably, according to the invention, this predetermined criterion will consist in choosing a memory element according to a predetermined classification which privileges the speed of access, for example according to the order of the channel indices, using the circuit represented in FIG. 8 Thus, advantageously, the selection is made with great speed. Figure 8 relates to 4 memory elements of the same class but this is not limiting. Let us consider the paths V1 to V4 whose track indices are increasing. The selection means then comprise 4 logic gates
an inverting gate which receives the signal Dli (FIG. 3) of the first channel,
an AND gate 82 which receives the signal Dli of the previous channel and the signal DI2 of the second channel which is applied inverted,
an AND gate 83 which receives the signals DI1 and DI2 of the two preceding channels and the signal DI3 of the third channel which is applied inverted,
an AND gate 84 which receives the signals Dli, DI2 and DI3 of the three preceding channels and the signal DIs of the fourth channel which is applied inverted.

Lorsqu'il y a un plus grand nombre de voies le même mécanisme itératif est appliqué. When there are more channels the same iterative mechanism is applied.

Ainsi à l'aide du circuit de la figure 8, il est possible d'opérer un classement des voies selon un classement prédéterminé. Tout autre classement que celui présenté peut être utilisé. Ce classement est par exemple ici celui des indices de voies. Ainsi sur la figure 8, l'élément sélectionné sera celui ayant l'indice le plus faible. L'avantage réside dans la rapidité de fonctionnement d'un tel circuit qui ne nécessite qu'un étage logique entre les signaux DI et les signaux IND. Thus with the aid of the circuit of FIG. 8, it is possible to operate a classification of the tracks according to a predetermined classification. Any other classification than the one presented can be used. This classification is for example here that of the track indices. Thus in Figure 8, the selected element will be the one with the lowest index. The advantage lies in the speed of operation of such a circuit which only requires a logic stage between the signals DI and the signals IND.

Le dispositif de contrôle qui vient d'être décrit peut être exploité pour gérer les mécanismes de remplacement de mémoires de différentes natures. Il peut s'agir par exemple de traducteur d'adresses ou de mémoire cache ou de mémoire centrale pour gérer leurs échanges avec les mémoires d'amont. The control device which has just been described can be used to manage the mechanisms for replacing memories of different types. It can be for example address translator or cache memory or central memory to manage their exchanges with the upstream memories.

Egalement, la même méthode de remplacement peut être utilisée pour programmer un calculateur ou un processeur afin de gérer ses échanges avec les mémoires environnantes.Also, the same replacement method can be used to program a computer or a processor to manage its exchanges with the surrounding memories.

L'organigramme de la méthode est représenté sur les figures 9A et 9B. Dans une étape 102 d'initialisation un compteur de phases C et un compteur de transitions A par classe sont mis à zéro ainsi que tous les bits PO à PB-1 de tous les éléments-mémoire. Le bit de présence L s'il existe est mis à 0. The flowchart of the method is shown in Figures 9A and 9B. In a step 102 of initialization a phase counter C and a transitions counter A per class are set to zero as well as all the bits PO to PB-1 of all the memory elements. The presence bit L if it exists is set to 0.

Etape 104 :introduction de l'adresse d'entrée
Etape 106 : sélection de la classe de l'adresse d'entrée et détermination de la clé,
Etape 108 : comparaison de la clé de l'adresse d'entrée avec les clés stockées et vérification que le bit de présence L a été activé
lorsqu'il y a succès (branche 109) il y a sélection (étape 110) de l'élément-mémoire ayant l'adresse concernée puis lecture ou écriture de la "donnée" (étape 112) selon l'opération à effectuer.
Step 104: Entering the entry address
Step 106: selecting the class of the input address and determining the key,
Step 108: comparing the key of the input address with the stored keys and checking that the presence bit L has been activated
when there is success (branch 109) there is selection (step 110) of the memory element having the address concerned then read or write the "data" (step 112) according to the operation to be performed.

lorsqu'il y a échec dans tous les éléments-mémoire il faut opérer une procédure de remplacement (branche 111). when there is failure in all the elements-memory it is necessary to operate a procedure of replacement (branch 111).

Celle-ci comprend la sélection de tous les éléments-mémoire ayant leur bit P+1 à l'état logique zéro (ou bien ceux ayant tous leurs bits Po...PB~1 à l'état logique zéro) (étape 114), puis sélection parmi ceux-ci de l'élément-mémoire ayant un numéro d'ordre prédéterminé (étape 116). Enfin écriture des champs de clé et des données relatives à l'adresse d'entrée dans l'élément-mémoire sélectionné de la mémoire tampon (étape 118).This comprises the selection of all the memory elements having their bit P + 1 in the logic zero state (or those having all their bits Po ... PB ~ 1 in the logic zero state) (step 114) and selecting therefrom the memory element having a predetermined sequence number (step 116). Finally write key fields and data relating to the input address in the selected memory element of the buffer (step 118).

Le bit de présence L de l'élément-mémoire concerné est mis à l'état logique 1 (occupé) (étape 119). The presence bit L of the memory element concerned is set to logical state 1 (busy) (step 119).

En cas de succès ou en cas d'échec (dans toute la mémoire) la méthode tient compte du nombre et de la nature des opérations effectuées. Lorsqu'un élément-mémoire a été adressé, que ce soit après une situation de succès ou une situation d'échec suivi d'un remplacement, tous les bits PO...Pg~1 de cet élément-mémoire sont mis à l'état logique 1 (étape 120). Le compteur de phase étant pointé sur la banque BKC, il y a comparaison pour le bit de cette banque, correspondant à l'élément-mémoire adressé, entre son état avant et après son éventuel passage à 1 pour détecter sa transition (étape 122). In case of success or failure (in all memory) the method takes into account the number and nature of the operations performed. When a memory element has been addressed, whether after a success situation or a failure situation followed by a replacement, all the bits PO ... Pg ~ 1 of this memory element are set to logic state 1 (step 120). The phase counter being pointed at the bank BKC, there is a comparison for the bit of this bank, corresponding to the addressed memory element, between its state before and after its eventual transition to 1 to detect its transition (step 122) .

Si les deux états sont différents, il y a incrémentation du compteur A (étape 124). Sinon le compteur reste inchangé. La valeur de ce compteur est testée (étape 126). Si sa valeur est inférieure à la valeur E/B, l'adresse d'entrée suivante est analysée (retour à l'étape 104). Si sa valeur est égale à la valeur E/B ce compteur A est remis à zéro, le compteur de phase C est incrémenté (étape 128) pour se pointer sur la banque suivante BKC+i. Si le compteur de phase atteint la valeur B du nombre de variables logiques (étape 130) il est remis à zéro (étape 132) pour revenir à la première position et opérer cycliquement.If the two states are different, there is incrementation of the counter A (step 124). Otherwise the counter remains unchanged. The value of this counter is tested (step 126). If its value is less than the E / B value, the next input address is analyzed (return to step 104). If its value is equal to the E / B value, this counter A is reset to zero, the phase counter C is incremented (step 128) to point to the next bank BKC + i. If the phase counter reaches the value B of the number of logic variables (step 130) it is reset (step 132) to return to the first position and operate cyclically.

Les variables logiques Pc correspondant à la nouvelle banque pointée (suite à l'incrémentation) sont mises à zéro (étape 134). L'adresse d'entrée suivante est analysée (retour à l'étape 104). The logical variables Pc corresponding to the new bank pointed (following the incrementation) are set to zero (step 134). The next input address is analyzed (return to step 104).

Une autre manière d'opérer peut consister à remplacer les étapes 120, 122 et 124 par les étapes suivantes
étape 140 : test du bit Pc de l'élément-mémoire concerné
Si ce bit PcrO, ne rien faire,
Si ce bit Pc=O, incrémenter le compteur de transition A (étape 142) puis mettre toutes les variables logiques PO~~~PB-1 de l'élément concerné à l'état logique 1 (étape 144).
Another way to operate may be to replace steps 120, 122 and 124 with the following steps
step 140: testing the Pc bit of the memory element concerned
If this PcrO bit, do nothing,
If this bit Pc = O, increment the transition counter A (step 142) then set all the logical variables PO ~~~ PB-1 of the element concerned to the logic state 1 (step 144).

Bien évidemment l'homme du métier peut inverser les états logiques 1 et O sans changer le cadre de l'invention. Obviously, those skilled in the art can reverse the logic states 1 and O without changing the scope of the invention.

Lorsque la méthode de remplacement comprend préalablement au remplacement une étape de chargement de tous les éléments-mémoire inoccupés, l'organigramme des figures 9A et 9B est modifié de la manière suivante
- l'étape 102 comprend la désactivation du bit de présence Q1 (Q=O logique, par exemple).
When the replacement method comprises, prior to the replacement, a step of loading all the unoccupied memory elements, the flowchart of FIGS. 9A and 9B is modified as follows
step 102 comprises deactivating the presence bit Q1 (for example, logic Q = O).

- l'étape 108 comprend non seulement le test de la clé d'entrée S mais aussi le test pour connaître si le bit de présence Q ou le bit Po de l'élément-mémoire concerné sont à l'état logique 1. step 108 comprises not only the test of the input key S, but also the test of whether the presence bit Q or the bit Po of the memory element concerned are in the logical state 1.

Une première situation peut être constituée par l'égalité des clés. Le test ci-dessus étant satisfait, la donnée relative à cette clé peut être adressée. A first situation can be constituted by the equality of the keys. The above test being satisfied, the data relating to this key can be addressed.

Une seconde situation peut être constituée soit par l'inégalité des clés soit par le fait que le test ci-dessus n'est pas satisfait. Dans ce cas la méthode peut avoir à opérer soit une étape de chargement soit une étape de remplacement. A second situation can be constituted either by the inequality of the keys or by the fact that the above test is not satisfied. In this case the method may have to operate either a loading step or a replacement step.

lorsque Q=O l'ensemble de la classe n'est pas occupé. when Q = O the whole class is not busy.

. lorsque Q=1 l'ensemble de la classe est occupé. . when Q = 1 the whole class is busy.

Quelle que soit la valeur de Q, la clé et la donnée sont chargées selon les étapes déjà décrites pour le remplacement.  Whatever the value of Q, the key and the data are loaded according to the steps already described for the replacement.

L'étape 119 est supprimée. L'étape 126 est modifiée pour opérer de la manière suivante : le bit Q est testé,
i) lorsque Q=O on teste Si A=E
. Si la réponse est positive, il faut remettre à O tous les bits Po...PB~1 de tous les éléments de la classe et faire Q=i puis passer à l'étape 128
Si la réponse est négative, il faut passer à l'étape 104
ii) lorsque Q=i on teste Si A=E/B
. Si la réponse est positive, il faut passer à l'étape 128
. Si la réponse est négative, il faut passer à l'étape 104.
Step 119 is deleted. Step 126 is modified to operate as follows: bit Q is tested,
i) when Q = O we test If A = E
. If the answer is positive, reset O to all Po ... PB ~ 1 bits of all the elements of the class and make Q = i then go to step 128
If the answer is no, go to step 104
ii) when Q = i we test If A = E / B
. If the answer is positive, go to step 128
. If the answer is negative, go to step 104.

Lorsque cette méthode de gestion est mise en oeuvre dans un calculateur l'invention concerne alors un calculateur agencé pour mettre en oeuvre ladite méthode. When this management method is implemented in a calculator the invention then relates to a computer arranged to implement said method.

Pour illustrer les performances de la méthode de remplacement selon l'invention, le tableau I permet de la comparer avec les autres méthodes de remplacement les plus utilisées.

Figure img00220001
To illustrate the performance of the replacement method according to the invention, Table I compares it with the other most used alternative methods.
Figure img00220001

<tb><Tb>

<SEP> M <SEP> 256 <SEP> 512 <SEP> 1024 <SEP>
<tb> B=1 <SEP> <SEP> bit <SEP> 17,9 <SEP> 7,83 <SEP> <SEP> 2,10 <SEP>
<tb> B=2 <SEP> bits <SEP> 18,1 <SEP> 8,32 <SEP> 2,29 <SEP>
<tb> LRU <SEP> 18,1 <SEP> 9,32 <SEP> 2,82 <SEP>
<tb> Random <SEP> 19,8 <SEP> <SEP> 8,44 <SEP> <SEP> 2,59 <SEP>
<tb> FIFO <SEP> 20,2 <SEP> 9,74 <SEP> <SEP> 3,07 <SEP>
<tb>
TABLEAU I
Ce tableau indique le pourcentage d'échecs pour un même nombre d'accès à une mémoire cache ayant des tailles
M=256; 512; 1024 octets. La comparaison est fournie dans le cas de la méthode selon l'invention avec la variable logique ayant B=i bit et B=2 bits. Les algorithmes qui servent à la comparaison sont LRU, Random et FIFO. On observe que pour
M=256 octets la méthode selon l'invention avec B=2 bits délivre des résultats identiques (18,1%) avec l'algorithme
LRU. Pour M=1024 octets, l'écart est en faveur de l'invention (2,29% pour l'invention et 2,82% pour LRU). Lorsque B=1 bit l'invention fournit alors un gain appréciable. Pour
M=256 octets, le taux d'échecs est réduit à 17,9% pour l'invention (18,1% pour LRU) et pour M=1024 octets, le taux d'échecs est réduit à 2,10% pour l'invention (2,82% pour LRU).
<SEP> M <SEP> 256 <SEP> 512 <SEP> 1024 <SEP>
<tb> B = 1 <SEP><SEP> bit <SEP> 17.9 <SEP> 7.83 <SEP><SEP> 2.10 <SEP>
<tb> B = 2 <SEP> bits <SEP> 18.1 <SEP> 8.32 <SEP> 2.29 <SEP>
<tb> LRU <SEP> 18.1 <SEP> 9.32 <SEP> 2.82 <SEP>
<tb> Random <SEP> 19.8 <SEP><SEP> 8.44 <SEP><SEP> 2.59 <SEP>
<tb> FIFO <SEP> 20.2 <SEP> 9.74 <SEP><SEP> 3.07 <SEP>
<Tb>
TABLE I
This table shows the percentage of failures for the same number of cache accesses with sizes
M = 256; 512; 1024 bytes. The comparison is provided in the case of the method according to the invention with the logic variable having B = 1 bit and B = 2 bits. The algorithms used for the comparison are LRU, Random and FIFO. It is observed that for
M = 256 bytes the method according to the invention with B = 2 bits delivers identical results (18.1%) with the algorithm
LRU. For M = 1024 bytes, the difference is in favor of the invention (2.29% for the invention and 2.82% for LRU). When B = 1 bit the invention then provides an appreciable gain. For
M = 256 bytes, the failure rate is reduced to 17.9% for the invention (18.1% for LRU) and for M = 1024 bytes, the failure rate is reduced to 2.10% for the invention. invention (2.82% for LRU).

Les autres algorithmes sont globalement de qualité inférieure.  The other algorithms are generally of inferior quality.

Claims (10)

REVENDICATIONS 1. Dispositif de contrôle pour une mémoire tampon qui est organisée selon au moins une classe de E éléments-mémoire munis de clés et répartis sur E voies, la mémoire étant adressée par des adresses ayant des champs d'indices de classe et/ou de clé, chaque voie étant munie d'au moins un comparateur des adresses d'entrée et des adresses stockées, et lorsque l'adresse d'entrée n'est pas trouvée (échec) dans la mémoire tampon, le dispositif permet de la trouver dans une mémoire source puis de transférer le contenu des informations qui s'y rapportent vers la mémoire tampon suivant une méthode de remplacement, caractérisé en ce que pour opérer ledit remplacement le dispositif comprend1. A control device for a buffer memory which is organized according to at least one class of E memory elements provided with keys and distributed over E channels, the memory being addressed by addresses having class index fields and / or key, each channel being provided with at least one comparator of the input addresses and the stored addresses, and when the input address is not found (failure) in the buffer memory, the device makes it possible to find it in a source memory and then transfer the contents of the information relating thereto to the buffer memory according to a replacement method, characterized in that to perform said replacement the device comprises - pour chaque élément-mémoire, un organe de stockage de B bits (B < E), avec E multiple de B, qui permet de repérer si l'élément-mémoire a été utilisé par les adresses d'entrée au cours de phases successives antérieures, une phase pouvant couvrir l'analyse de plusieurs adresses d'entrée, for each memory element, a B bit storage unit (B <E), with E multiple of B, which makes it possible to identify whether the memory element has been used by the input addresses during successive phases previous, a phase that can cover the analysis of several input addresses, - des premiers moyens pour scruter au cours desdites phases successives au moins un des B bits de chacun des éléments-mémoire, les E bits de même rang des E éléments-mémoire d'une même classe, formant une banque BKC, étant scrutés au cours d'une même phase sous le contrôle d'un compteur de phases, lesdits premiers moyens comprenant en outre un compteur de transitions qui, au cours d'une même phase, est incrémenté d'une unité lorsqu'au moins un des bits scrutés d'un élémentmémoire a changé d'état, ledit compteur délivrant après un nombre E/B d'incrémentations, un signal de fin de phase, celui-ci activant des moyens de forçage qui forcent un état logique de non succès dans la banque BKC+1 à utiliser à la phase suivante, first means for scanning during said successive phases at least one of the B bits of each of the memory elements, the E bits of the same rank of the E memory elements of the same class, forming a BKC bank, being scrutinized during of a same phase under the control of a phase counter, said first means further comprising a transitions counter which, during the same phase, is incremented by one unit when at least one of the scanned bits d a memory element has changed state, said counter delivering, after an E / B number of increments, an end of phase signal, which activates forcing means which force a logical state of non-success in the bank BKC + 1 to use in the next phase, - des seconds moyens pour sélectionner des éléments-mémoire qui n'ont pas été adressés ni au cours des B-i phases précédentes ni sur la partie de la phase en cours qui précède l'instant d'analyse de l'adresse d'entrée, en détectant que tous les bits de leur organe de stockage sont à l'état logique de non-succès, second means for selecting memory elements that have not been addressed either during the previous two phases or on the part of the current phase preceding the analysis time of the input address, in detecting that all the bits of their storage member are in the logical state of non-success, - des troisièmes moyens pour sélectionner un des élémentsmémoire parmi lesdits éléments-mémoire non adressés précédents pour y effectuer le remplacement. third means for selecting one of the memory elements from said preceding unaddressed memory elements to perform the replacement therein. 2. Dispositif de contrôle selon la revendication 1 caractérisé en ce que lesdits premiers moyens comprennent E multiplexeurs placés chacun entre la sortie des E organes de stockage et le compteur de transitions, les multiplexeurs étant contrôlés par le compteur de phases,2. Control device according to claim 1 characterized in that said first means comprise E multiplexers each placed between the output of the E storage members and the transitions counter, the multiplexers being controlled by the phase counter, 3. Dispositif de contrôle selon la revendication 1 caractérisé en ce que le compteur de transitions possède E.B entrées connectées aux B bits des E éléments-mémoire d'une même classe.3. Control device according to claim 1 characterized in that the transitions counter has E.B inputs connected to the B bits of E memory elements of the same class. 4. Dispositif de contrôle selon une des revendications 1 à 3 caractérisé en ce que lesdits troisièmes moyens déterminent un premier élément-mémoire disponible en testant, selon un classement préétabli, chacun des éléments-mémoire non adressés.4. Control device according to one of claims 1 to 3 characterized in that said third means determine a first available memory element by testing, according to a preset classification, each of the unaddressed memory elements. 5. Dispositif de contrôle selon une des revendications 1 à 4 caractérisé en ce qu'il comprend un élément de stockage d'un bit de présence unique pour tous les élémentsmémoire d'une même classe afin d'opérer le chargement de tous les éléments-mémoire inoccupés de ladite classe préalablement au remplacement, ce bit de présence contrôlant le compteur de transitions de ladite classe pour qu il opère un comptage modulo E/B si le bit de présence indique le chargement complet des éléments-mémoire inoccupés et un comptage modulo E dans le cas inverse.5. Control device according to one of claims 1 to 4 characterized in that it comprises a storage element of a single presence bit for all the memory elements of the same class in order to operate the loading of all elements- unoccupied memory of said class prior to replacement, this presence bit controlling the transitions counter of said class to operate a modulo E / B count if the presence bit indicates the complete loading of the unoccupied memory elements and a modulo count E in the opposite case. 6. Dispositif de contrôle selon une des revendications 1 à 5 caractérisé en ce qu'il gère les échanges soit entre un traducteur d'adresses et une mémoire cache, soit entre un traducteur d'adresse et une mémoire centrale, soit entre une mémoire cache et une mémoire centrale, soit entre une mémoire centrale et une mémoire de masse.6. Control device according to one of claims 1 to 5 characterized in that it manages exchanges between an address translator and a cache memory, or between an address translator and a central memory, or between a cache memory and a central memory, either between a central memory and a mass memory. 7. Méthode de gestion de données numériques dans une mémoire tampon formée de E voies chaque voie étant formée d'éléments-mémoire repérés par une clé, les voies étant divisées en classes, chaque classe étant formée de E éléments-mémoire pris un à un dans chaque voie, la mémoire tampon recevant des adresses d'entrée ayant des indices de classe et/ou de clé, la méthode opérant une recherche dans la mémoire tampon d'une adresse d'entrée en la comparant aux indices de classes et/ou aux clés d'adresses stockées,7. Method of managing digital data in a buffer formed of E channels each channel being formed of memory elements identified by a key, the channels being divided into classes, each class being formed of E memory elements taken one by one in each channel, the buffer receiving input addresses having class and / or key indices, the method searching the buffer of an input address by comparing it to class indices and / or stored address keys, - et lorsque l'adresse d'entrée est trouvée (succès), la méthode met en oeuvre des opérations de lecture/écriture de la mémoire tampon, - and when the input address is found (success), the method implements read / write operations of the buffer memory, - et lorsque l'adresse d'entrée n'est pas trouvée (échec), la méthode met en oeuvre une recherche dans une mémoire source puis un transfert du contenu des informations qui se rapportent à cette adresse d'entrée vers la mémoire tampon suivant une méthode de remplacement, caractérisé en ce que, à chaque fois qu'une adresse est présentée en entrée, la méthode de remplacement effectue le stockage des succès de la comparaison dans B variables logiques Po...Pc...PB~ associées à chaque élément-mémoire avec B=E/k (k entier > 1) la méthode se subdivisant en deux branches - and when the input address is not found (failure), the method implements a search in a source memory and then a transfer of the contents of the information relating to this input address to the next buffer an alternative method, characterized in that, whenever an address is presented as input, the replacement method stores the successes of the comparison in B logical variables Po ... Pc ... PB ~ associated with each memory element with B = E / k (k integer> 1) the method being subdivided into two branches - une branche succès, auquel cas l'étape de lecture/écriture des informations selon l'adresse d'entrée est effectuée, a success branch, in which case the step of reading / writing information according to the input address is performed, - une branche échec, auquel cas la méthode comprend les étapes suivantes - a failure branch, in which case the method includes the following steps sélection des éléments-mémoire ayant leur variable logique PC+1 à l'état logique de non-succès, selection of the memory elements having their PC + 1 logic variable in the logical state of non-success, sélection, parmi ces éléments-mémoire, de celui qui est muni d'un accès privilégié pour y effectuer le remplacement en écrivant les informations et les champs de clé selon l'adresse d'entrée, l'une et l'autre branche comprenant ensuite les étapes suivantes selecting, among these memory elements, the one that has privileged access to make the replacement by writing the information and the key fields according to the input address, the one and the other branch then comprising the next steps - pour tous les E éléments-mémoire d'une même classe, mise à jour puis scrutation des B variables logiques au cours de B phases successives et, dans une même phase, comptage du nombre for all the E memory elements of the same class, updating and then scanning the B logical variables during B successive phases and, in the same phase, counting the number A de changements d'états des bits Pc d'un même rang C formant ensemble une banque BKC,A of changes of states of the bits Pc of the same rank C forming together a bank BKC, - comparaison du nombre A de changements d'états avec la valeur E/B - comparison of the number A of changes of states with the value E / B . et lorsque A < E/B passage à l'adresse d'entrée suivante . and when A <E / B move to the next input address . et lorsque A=E/B remise à l'état non succès des bits . and when A = E / B reset to unsuccessful bit state PC+1 de la banque BKC+l suivante puis incrémentation à C+1 (modulo B) du comptage de rang, remise à zéro du compteur A et passage à l'adresse suivante.PC + 1 of the following bank BKC + 1 then incrementation at C + 1 (modulo B) of the count of rank, resetting counter A and going to the next address. 8. Méthode selon la revendication 7 caractérisée en ce qu'elle comprend, pour chaque classe, préalablement au remplacement, une étape de chargement de tous les éléments-mémoire inoccupés d'une même classe, l'étape comprenant la détection du changement d'état d'un bit de présence unique affecté à la signalisation de l'occupation de tous les éléments-mémoire de ladite classe. 8. Method according to claim 7 characterized in that it comprises, for each class, prior to replacement, a step of loading all the unoccupied memory elements of the same class, the step comprising detecting the change of state of a single presence bit assigned to the signaling of the occupation of all the memory elements of said class. 9. Méthode selon les revendications 7 ou 8 caractérisée en ce que la méthode gère les échanges soit entre un traducteur d'adresses et une mémoire cache, soit entre un traducteur d'adresses et une mémoire centrale, soit entre une mémoire cache et une mémoire centrale, soit entre une mémoire centrale et une mémoire de masse.9. Method according to claim 7 or 8 characterized in that the method manages exchanges between an address translator and a cache memory, or between an address translator and a central memory, or between a cache memory and a memory central, or between a central memory and a mass memory. 10. Calculateur caractérisé en ce qu'il est agencé pour mettre en oeuvre la méthode selon une des revendications 7 à 9. 10. Calculator characterized in that it is arranged to implement the method according to one of claims 7 to 9.
FR8915901A 1989-12-01 1989-12-01 DEVICE FOR CONTROLLING A BUFFER MEMORY AND METHOD FOR MANAGING DIGITAL DATA. Expired - Lifetime FR2655445B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR8915901A FR2655445B1 (en) 1989-12-01 1989-12-01 DEVICE FOR CONTROLLING A BUFFER MEMORY AND METHOD FOR MANAGING DIGITAL DATA.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR8915901A FR2655445B1 (en) 1989-12-01 1989-12-01 DEVICE FOR CONTROLLING A BUFFER MEMORY AND METHOD FOR MANAGING DIGITAL DATA.

Publications (2)

Publication Number Publication Date
FR2655445A1 true FR2655445A1 (en) 1991-06-07
FR2655445B1 FR2655445B1 (en) 1992-04-10

Family

ID=9388057

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8915901A Expired - Lifetime FR2655445B1 (en) 1989-12-01 1989-12-01 DEVICE FOR CONTROLLING A BUFFER MEMORY AND METHOD FOR MANAGING DIGITAL DATA.

Country Status (1)

Country Link
FR (1) FR2655445B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6490666B1 (en) * 1999-08-20 2002-12-03 Microsoft Corporation Buffering data in a hierarchical data storage environment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2357036A1 (en) * 1976-07-02 1978-01-27 Ibm "FIRST IN, FIRST OUT" TYPE MEMORY AND ITS CONTROL CIRCUITS

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2357036A1 (en) * 1976-07-02 1978-01-27 Ibm "FIRST IN, FIRST OUT" TYPE MEMORY AND ITS CONTROL CIRCUITS

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
COMPUTING SURVEYS, vol. 14, no. 3, septembre 1982, pages 473-530, New York, US; A.J. SMITH: "Cache memories" *
IBM TECHNICAL DISCLOSURE BULLETIN, vol. 27, no. 12, mai 1985, pages 6853-6854, New York, US; "Self-adjusting page replacement algorithm" *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6490666B1 (en) * 1999-08-20 2002-12-03 Microsoft Corporation Buffering data in a hierarchical data storage environment

Also Published As

Publication number Publication date
FR2655445B1 (en) 1992-04-10

Similar Documents

Publication Publication Date Title
EP0151653B1 (en) Series-parallel/parallel-series device for variable bit length configuration
FR2624994A1 (en) INTERMEDIATE TRANSLATION REGISTER CONTROL SYSTEM
CH616252A5 (en)
EP0013347A1 (en) Buffer memory device for data transfer between a processor and an input/output unit
FR2664719A1 (en) CONTROL DEVICE FOR A RECONFIGURABLE PARTITIONING BUFFER MEMORY.
FR2621407A1 (en) SYSTEM FOR REASSIGNING ADDRESSES AND PURGEING ANEMEMOIRE BLOCKS FOR VIRTUAL ADDRESSING AND RE-REGISTRATION WORKSTATION STATION
FR2913785A1 (en) CIRCULAR BUFFER MEMORY MANAGEMENT
BE897587A (en) PARALLEL CIRCUIT FOR CYCLIC REDUNDANCY CONTROL
EP0392932A1 (en) Method and device for speeding-up memory accesses using a modified LRU algorithm
FR2811784A1 (en) MEMORY MANAGEMENT DEVICE FOR RECORDING DATA BLOCKS BY SUBSTITUTION
EP0394115B1 (en) Apparatus for speeding-up memory accesses in a computer system
FR2655445A1 (en) Device for controlling a buffer memory and method of managing digital data
FR2600441A1 (en) MEMORY MANAGEMENT UNIT
WO2002065291A2 (en) Device for reconfiguring a faulty storage assembly
EP0306357A1 (en) Memory access management unit with logical unvarying identifiers, especially for data base management
EP0112427B1 (en) Programmable logic controller
FR2632093A1 (en) MODULAR MEMORY
FR3084179A1 (en) DIRECT ACCESS IN MEMORY
FR2663136A1 (en) Device for controlling a buffer memory and method of managing digital data
FR2633744A1 (en) ELECTRONIC RAM MEMORY DEVICE
EP0962855B1 (en) Fast acces to buffer circuits
FR2821202A1 (en) METHOD FOR TESTING A SEQUENTIAL ACCESS MEMORY PLAN, AND CORRESPONDING SEQUENTIAL ACCESS MEMORY CONDUCTOR DEVICE
FR2611940A1 (en) MEMORY ACCESS CONTROL SYSTEM
FR3102868A1 (en) Method for executing a transaction
WO1998009406A1 (en) Device for managing a buffer memory, without reconstruction, when a data block memorised in this memory is being prematurely eliminated

Legal Events

Date Code Title Description
CD Change of name or company name
CJ Change in legal form
ST Notification of lapse