FR2663136A1 - 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 PDFInfo
- Publication number
- FR2663136A1 FR2663136A1 FR9007275A FR9007275A FR2663136A1 FR 2663136 A1 FR2663136 A1 FR 2663136A1 FR 9007275 A FR9007275 A FR 9007275A FR 9007275 A FR9007275 A FR 9007275A FR 2663136 A1 FR2663136 A1 FR 2663136A1
- Authority
- FR
- France
- Prior art keywords
- memory
- inv
- index
- channel
- class
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
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
Description
DESCRIPTION "DISPOSITIF DE CONTROLE D'UNE MEMOIRE TAMPON ET METHODE DE
GESTION DE DONNEES NUMERIQUES".DESCRIPTION "DEVICE FOR CONTROLLING A BUFFER MEMORY AND METHOD OF
DIGITAL DATA MANAGEMENT ".
L'invention concerne un dispositif de contrôle pour une mémoire tampon qui met en oeuvre une méthode de remplacement des données présentes lorsque les données cherchées ne sont pas trouvées dans la mémoire tampon. The invention relates to a control device for a buffer memory that implements a method of replacing the present data when the searched data is not found in the buffer memory.
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, n"3, 1982".Various alternative algorithms have been proposed including those described in "Cache memories,
AJ Smith, Computing Surveys, vol. 14, No. 3, 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. 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.
L'algorithme LRU se caractérise par
- de bonnes performances qui sont obtenues en mémorisant avec précision l'ordre dans lequel les éléments de la mémoire tampon sont utilisés. Cette mémorisation est faite à l'aide de bits de remplacement;
- une mise en oeuvre complexe et coûteuse : il faut E bits de remplacement par élément, soit E2 bits de remplacement par classe, une classe étant formée par E éléments-mémoire répartis sur E voies. A ceci s'ajoute de la circuiterie logique.The LRU algorithm is characterized by
- good performance that is obtained by accurately storing the order in which the elements of the buffer are used. This storage is done using replacement bits;
a complex and costly implementation: E replacement bits per element are required, ie E2 replacement bits per class, a class being formed by E memory elements distributed over E channels. Added to this is logical circuitry.
L'algorithme FIFO se caractérise par
- de moins bonnes performances que LRU. Ceci est dû en partie au fait que FIFO choisit l'élément à remplacer sans tenir compte de l'ordre dans lequel les éléments de sa classe sont réutilisés après chargement d'une nouvelle clé;
- une mise en oeuvre assez simple, basée essentiellement sur l'utilisation d'un compteur par classe. Chaque compteur peut prendre les valeurs O à (E-l) et possède donc log#E bits.The FIFO algorithm is characterized by
- poorer performance than LRU. This is due in part to the fact that FIFO selects the element to be replaced regardless of the order in which elements of its class are reused after loading a new key;
- a fairly simple implementation, based essentially on the use of a meter per class. Each counter can take the values O to (E1) and therefore has log # E bits.
L'algorithme Random a des performances voisines de celles de l'algorithme FIFO. The Random algorithm has performances close to those of the FIFO algorithm.
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 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,
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 remplacement des données dans une mémoire-tampon est généralement réalisé soit par l'algorithme LRU qui est performant mais assez complexe à mettre en oeuvre et nécessite un matériel important, soit par l'algorithttte FIFO qui ne nécessite qu'un matériel réduit mais au prix de performances assez restreintes
Le problème posé consiste à déterminer une méthode de remplacement et un dispositif de contrôle la mettant en oeuvre qui permettent d'atteindre de bonnes performances avec un matériel raisonnablement limité donc d'un coût réduit. Il s'agit en quelque sorte de déterminer une situation de compromis entre les deux algorithmes LRU et FIFO.The replacement of the data in a buffer memory is generally performed either by the LRU algorithm which is efficient but rather complex to implement and requires a large amount of hardware, or by the FIFO algorithm which requires only a reduced hardware but rather low performance prices
The problem is to determine a replacement method and a control device implementing it that allow to achieve good performance with a reasonably limited equipment and therefore a reduced cost. It is a question of determining a compromise situation between the two LRU and FIFO algorithms.
La solution à ce problème posé consiste en 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 répartis sur E voies et munis chacun d'une clé, le dispositif de contrôle comprenant des moyens pour comparer, pour une classe courante adressée, une clé d'adresse courante avec des clés stockées et pour détecter ainsi des situations de succès/ échec, et lorsqu'une clé d'adresse courante n'est pas trouvée (échec) dans la mémoire tampon, le dispositif met en oeuvre un remplacement des données contenues dans un des éléments-mémoire de la classe courante adressée qui est sélectionné par un indice de voie C contenu dans un pointeur qui est mis à jour à la fin du remplacement caractérisé en ce que lorsque lesdits moyens détectent un succès, le dispositif de contrôle détermine l'indice de voie INV relatif à l'élément-mémoire adressé, un organe de validation comparant l'indice de voie INV avec ledit indice de voie C puis chargeant dans ledit pointeur la valeur consécutive à l'indice de voie INV dans une suite ordonnée d'indices de voies lorsque l'indice de voie INV est un des successeurs de l'indice de voie C dans ladite suite, et conservant l'indice de voie C dans le cas inverse. The solution to this problem consists in a control device for a buffer memory which is organized according to at least one class of E memory elements distributed on E channels and each provided with a key, the control device comprising means for comparing for a current addressed class, a current address key with stored keys and thus to detect success / failure situations, and when a current address key is not found (failed) in the buffer, the device implements a replacement of the data contained in one of the memory elements of the current class addressed which is selected by a channel index C contained in a pointer which is updated at the end of the replacement characterized in that when said means detect a success, the control device determines the INV channel index relating to the addressed memory element, a validation member comparing the INV channel index with said track index C then loading in said pointer the value consecutive to the track index INV in an ordered sequence of track indices when the track index INV is one of the successors of the track index C in said sequence , and keeping the track index C in the opposite case.
Il peut s'agir également d'une méthode de gestion de données dans une mémoire tampon organisée selon au moins une classe de E éléments-mémoire répartis sur E voies et munis chacun d'une clé, la méthode opérant une comparaison, pour une classe courante adressée, d'une clé d'adresse courante avec des clés stockées et détectant des situations de succès/échec, et lorsqu'une clé d'adresse courante n'est pas trouvée (échec) dans la mémoire tampon, la méthode met en oeuvre un remplacement des données contenues dans un des éléments-mémoire de la classe courante adressée qui est sélectionné par un indice de voie C contenu dans un pointeur qui est mis à jour à l'issue du remplacement caractérisée en ce que lorsqu'un succès est détecté, la méthode comprend les étapes suivantes
- détermination de l'indice de voie INV relatif à l'élé- ment-mémoire adressé,
- comparaison de l'indice de voie INV avec ledit indice de voie C contenu dans le pointeur,
- chargement dans le pointeur de la valeur consécutive à l'indice de voie INV dans une suite ordonnée d'indices de voies lorsque l'indice de voie INV est un des successeurs de l'indice de voie C dans ladite suite et conservation de l'indice de voie C dans le cas inverse.It can also be a method of managing data in a buffer memory organized according to at least one class of E memory elements distributed on E channels and each provided with a key, the method operating a comparison, for a class current address key with stored keys and detecting success / failure situations, and when a current address key is not found (failed) in the buffer, the method implements performs a replacement of the data contained in one of the memory elements of the current class addressed which is selected by a channel index C contained in a pointer which is updated at the end of the replacement characterized in that when a success is detected, the method includes the following steps
determination of the INV channel index relating to the addressed memory element,
comparing the INV channel index with said channel index C contained in the pointer,
- loading in the pointer of the value following the INV channel index in an ordered sequence of channel indices when the channel index INV is one of the successors of the track index C in said sequence and conservation of the C track index in the opposite case.
Ainsi avantageusement on obtient selon l'inven- tion des performances assez voisines de celles obtenues par l'algorithme LRU tout en ayant une complexité de mise en oeuvre qui soit assez proche de l'algorithme FIFO. Comme pour LRU et FIFO l'invention permet de garantir que tous les élémentsmémoire d'une même classe ont déjà été remplis avant de commencer le remplacement. Thus advantageously, according to the invention, performances are obtained that are fairly close to those obtained by the LRU algorithm while having an implementation complexity that is quite close to the FIFO algorithm. As for LRU and FIFO the invention makes it possible to guarantee that all the memory elements of the same class have already been filled before starting the replacement.
En effet l'ordre dans lequel les éléments-mémoire ont été utilisés est pris en compte mais d'une manière telle que le matériel nécessaire est réduit. En effet le nombre de bits de remplacement nécessaires pour définir une classe de E éléments-mémoire est égal à E2 bits pour LRU (E bits par élément) et à log#E pour FIFO et pour la méthode selon l'invention. Cette situation est particulièrement avantageuse lorsque le nombre d'éléments-mémoire est moyennement élevé par exemple 4 ou 8. Néanmoins lorsque le nombre d'éléments-mémoire croît la complexité du dispositif selon l'invention reste raisonnable, comparée à celle relative à l'algorithme LRU qui nécessite de prendre en compte E2 bits ce qui devient rapidement inacceptable quand E croît. Indeed the order in which the memory elements have been used is taken into account but in such a way that the necessary hardware is reduced. Indeed, the number of replacement bits necessary to define a class of E memory elements is equal to E2 bits for LRU (E bits per element) and log # E for FIFO and for the method according to the invention. This situation is particularly advantageous when the number of memory elements is moderately high, for example 4 or 8. Nevertheless, when the number of memory elements increases the complexity of the device according to the invention remains reasonable, compared to that relating to the LRU algorithm that requires taking into account E2 bits which quickly becomes unacceptable when E grows.
L'invention sera mieux comprise à l'aide des figures suivantes données à titre d'exemples non limitatifs qui représentent
- figure 1 : un schéma général simplifié d'une mémoire tampon limitée à deux voies Vo, V1 et à quatre classes Ko à K3. The invention will be better understood with the aid of the following figures given as non-limiting examples which represent
- Figure 1: a simplified general scheme of a buffer limited to two channels Vo, V1 and four classes KB to K3.
- figure 2 : un dispositif de contrôle selon l'invention coopérant avec des éléments-mémoire d'une mémoire tampon. FIG. 2: a control device according to the invention cooperating with memory elements of a buffer memory.
- figure 3 : un organigramme de la méthode de gestion selon l'invention. FIG. 3: a flowchart of the management method according to the invention.
La figure I représente un exemple simplifié, mais non limitatif, d'une mémoire tampon selon l'invention. Elle comprend deux voies Vo, Vr renfermant chacune 4 classes Ko,
K1, K2, K3 d'éléments-mémoire. Une classe contient un élémentmémoire par voie c'est-à-dire 2 selon l'exemple présenté. La voie Vo contient les éléments-mémoire 500, 510r 520, 530. La voie V1 contient les éléments-mémoire SOi, 511, 521, 531. La classe Ko contient les éléments-mémoire 500, 501. FIG. 1 represents a simplified, but nonlimiting, example of a buffer memory according to the invention. It comprises two Vo, Vr channels each containing 4 KB classes,
K1, K2, K3 of memory elements. A class contains a memory element by way, that is to say 2 according to the example presented. The Vo channel contains the memory elements 500, 510r 520, 530. The channel V1 contains the memory elements SOi, 511, 521, 531. The class KB contains the memory elements 500, 501.
Chaque élément-mémoire par exemple 500 comprend plusieurs positions de stockage pour
- un bit de présence P,
- une clé stockée CS,
- un bloc de données BL, qui contient les informations de l'élément, c'est-à-dire des mots ayant des adresses consécutives.Each memory element, for example 500, comprises several storage positions for
a presence bit P,
a stored key CS,
a block of data BL, which contains the information of the element, that is to say words having consecutive addresses.
Les données sont délivrées par un bus de données 5D qui délivre les champs de données BL. The data is delivered by a data bus 5D which delivers the data fields BL.
Les adresses sont délivrées par un bus d'adresses
SA qui délivre trois champs
- un champ de clés d'adresses d'entrée CE,
- un champ de classes d'adresses d'entrée K,
- un champ d'indice de mot IM qui permet de distinguer les mots contenus dans un champ de données BL.The addresses are delivered by an address bus
SA which delivers three fields
an EC input address key field,
an input address class field K,
an IM index field which makes it possible to distinguish the words contained in a data field BL.
Le champ IM et le bit de présence P peuvent ne pas exister. Lorsque le bit de présence P n'existe pas, une autre solution consiste à avoir un drapeau associé à chaque classe. The IM field and the presence bit P may not exist. When the presence bit P does not exist, another solution is to have a flag associated with each class.
Le processeur (non représenté) qui coopère avec la mémoire tampon fournit une adresse sur le bus 5A. Selon l'opération en cours ce processeur peut soit délivrer soit recevoir un mot de données sur le bus 5D. A partir de l'adresse, le décodeur 55 extrait l'indice de classe de l'adresse d'entrée et sélectionne la classe correspondante. Les éléments-mémoire de cette classe sont alors activés. Lorsque par exemple la classe Ko est sélectionnée, les éléments-mémoire 500 et 501 sont activés. Ils transmettent alors leur bit de présence P (s'il existe) et leur clé stockée CS au dispositif de contrôle 10 qui reçoit par ailleurs la clé d'entrée CE de l'adresse d'entrée. Sur le schéma de la figure 1 on a représenté un seul dispositif de contrôle 10 pour l'ensemble de la mémoire tampon, Ceci a l'avantage de minimiser la complexité des moyens matériels.Il est également possible d'utiliser un dispositif de contrôle pour une ou plusieurs classes ce qui présente l'avantage d'une rapidité d'exécution accrue. The processor (not shown) that cooperates with the buffer provides an address on the bus 5A. Depending on the operation in progress, this processor can either deliver or receive a data word on the 5D bus. From the address, the decoder 55 extracts the class index of the input address and selects the corresponding class. The memory elements of this class are then activated. When for example the class KB is selected, the memory elements 500 and 501 are activated. They then transmit their presence bit P (if it exists) and their stored key CS to the control device 10 which also receives the input key CE from the input address. In the diagram of Figure 1 there is shown a single control device 10 for the entire buffer, This has the advantage of minimizing the complexity of the material means. It is also possible to use a control device for one or more classes which has the advantage of an increased speed of execution.
Des pointeurs 40, 41, 42, 43 relatifs à chaque classe contiennent chacun un indice de voie qui permet à l'aide d'un décodeur 56 de sélectionner l'élément-mémoire dans lequel doit s'opérer l'opération de remplacement si la recherche de l'adresse donne lieu à un échec. Le remplacement consiste à écrire le champ de données BL avec sa clé CS et son bit de présence P (s'il existe). Si la recherche de l'adresse donne lieu à un succès, l'opération consiste alors à opérer une lecture ou écriture des données BL dans l'élément-mémoire réalisant le succès et à mettre à jour le pointeur de la classe sélectionnée. La figure 2 représente un dispositif de contrôle 10 qui est affecté à une seule classe Ko relative aux éléments-mémoire 500 501, 502, 503 qui reçoivent leur champ d'adresses du bus SA. Pour simplifier le dessin le décodeur 56 n'est pas représenté. Chaque élément-mémoire transmet sa clé stockée CS à l'un des comparateurs 12o, 121, 122, 123 qui re çoivent tous la clé CE de l'adresse d'entrée et qui opèrent la comparaison sous le contrôle des bits de présence respectifs
Po à P3.Pointers 40, 41, 42, 43 relating to each class each contain a channel index which allows using a decoder 56 to select the memory element in which the replacement operation must take place if the search for the address gives rise to a failure. The replacement consists in writing the data field BL with its key CS and its presence bit P (if it exists). If the search for the address gives rise to a success, the operation is then to read or write the BL data in the element-memory achieving success and update the pointer of the selected class. FIG. 2 shows a control device 10 which is assigned to a single class KB relating to the memory elements 500 501, 502, 503 which receive their address field of the bus SA. To simplify the drawing the decoder 56 is not shown. Each memory element transmits its stored key CS to one of the comparators 12o, 121, 122, 123 which all receive the key CE of the input address and which perform the comparison under the control of the respective presence bits
Po to P3.
En cas d'échec, tous les comparateurs ont leur sortie à l'état inactif (SVo à SV3). Dans ce cas une validation formée par exemple des portes logiques NON-OU16 et ET17 permet de charger dans le pointeur un indice de voie C qui peut par exemple être lu dans une table 152, par exemple une mémoire. Cet indice de voie C ainsi chargé est destiné lors du premier remplacement ultérieur à déterminer la voie dans laquelle doit s'effectuer le remplacement suivant. In case of failure, all the comparators have their output in the idle state (SVo to SV3). In this case, a validation formed, for example, of the logic gates NON-OR16 and ET17 makes it possible to load in the pointer a channel index C which can for example be read in a table 152, for example a memory. This track index C thus loaded is intended for the first subsequent replacement to determine the route in which the next replacement must take place.
L'indice de voie C peut également être obtenu par incrémentation ou décrémentation de l'indice de voie précédent.The track index C can also be obtained by incrementing or decrementing the previous track index.
En cas de succès, un des comparateurs a sa sortie à l'état actif. Un sélecteur 13 détermine l'indice de voie INV de l'élément réalisant le succès. Le sélecteur agit sur un organe de validation 20 qui met à jour le pointeur 40. If successful, one of the comparators has its output in the active state. A selector 13 determines the channel index INV of the success element. The selector acts on a validation member 20 which updates the pointer 40.
L'organe de validation 20 comprend un comparateur 14 qui compare cet indice de voie INV avec l'indice de voie C contenu dans le pointeur
- lorsque l'indice de voie INV est un des successeurs de l'indice de voie C dans une suite ordonnée d'indices, alors la valeur consécutive à l'indice de voie INV est substituée à l'indice de voie C dans le pointeur (porte logique ET18).The validation member 20 comprises a comparator 14 which compares this track index INV with the track index C contained in the pointer
when the channel index INV is one of the successors of the channel index C in an ordered sequence of indices, then the value subsequent to the channel index INV is substituted for the channel index C in the pointer (logical gate ET18).
Cette valeur consécutive est par exemple lue dans une table par exemple stockée dans une mémoire 151.This consecutive value is for example read in a table for example stored in a memory 151.
- lorsque l'indice de voie INV est un prédécesseur de l'indice de voie C dans ladite suite ordonnée d'indices, l'indice de voie C est conservé dans le pointeur. when the channel index INV is a predecessor of the channel index C in the said sequence of indices, the channel index C is kept in the pointer.
Ceci permet de tenir compte de l'ordre dans lequel les éléments-mémoire de la classe ont été utilisés en se déplaçant selon un sens unique dans la suite ordonnée d'indices. Ceci permet de ne pas sélectionner systématiquement l'élément-mémoire suivant comme dans FIFO où cela s'avère peu performant. This makes it possible to take into account the order in which the memory elements of the class have been used by moving in a single direction in the ordered sequence of indices. This makes it possible not to systematically select the next memory element as in FIFO where it proves to be inefficient.
De même ceci permet de ne pas mettre en oeuvre une procédure et une architecture lourdes pour déterminer l'élément-mémoire utilisé le moins récemment comme dans LRU. Similarly, this makes it possible not to implement a heavy procedure and architecture to determine the least recently used memory element as in LRU.
Les performances atteintes par l'invention se situent pratiquement au niveau de celles atteintes par LRU tout en gardant une complexité d'architecture réduite proche de FIFO.The performances achieved by the invention are practically at the level of those achieved by LRU while keeping a reduced complexity of architecture close to FIFO.
Ainsi avantageusement selon l'invention il n'y a qu'un pointeur (40-43) par classe (figure 1) qui peut contenir des valeurs allant de O à (E-1) soit log2E bits. Chaque pointeur opère modulo E. Thus advantageously according to the invention there is only one pointer (40-43) per class (FIG. 1) which can contain values ranging from 0 to (E-1) or log2E bits. Each pointer operates modulo E.
Les suites formant les tables 151, 152 peuvent être stockées dans une ou plusieurs mémoires. Lorsque les suites ordonnées sont distinctes elles doivent être coordonnées. The sequences forming the tables 151, 152 can be stored in one or more memories. When ordered sequences are distinct they must be coordinated.
Ainsi l'une peut être une suite de chiffres pairs et l'autre une suite-de chiffres impairs. Toute autre manière de coordonner les deux suites est possible. Préférentiellement il peut s'agir d'une suite unique par exemple celle formée d'une suite d'entiers qui peuvent se suivre par incrémentation ou décrémentation opérées par au moins respectivement un incrémenteur ou un décrémenteur qui se substituent alors aux tables 151, 152. Ceci conduit à une plus grande rapidité d'exécution et à une plus grande simplicité de mise en oeuvre.Thus one can be a sequence of even numbers and the other a series of odd numbers. Any other way of coordinating the two suites is possible. Preferably, it may be a single sequence, for example that consisting of a sequence of integers that can be incremented or decremented by at least one incrementer or a decrementor respectively, which then replace the tables 151, 152. This leads to greater speed of execution and greater simplicity of implementation.
L'invention concerne également une méthode de gestion de données dans une mémoire tampon pour opérer le remplacement desdites données. L'organigramme de cette méthode est représenté sur la figure 3. The invention also relates to a method of managing data in a buffer memory to perform the replacement of said data. The flow diagram of this method is shown in Figure 3.
Dans une étape d'initialisation 71, pour chaque classe, le pointeur C et les E bits de présence P (un par élément) sont remis à 0. In an initialization step 71, for each class, the pointer C and the E presence bits P (one per element) are reset to 0.
Etape 72 : introduction de l'adresse d'entrée
Etape 73 : sélection de la classe et détermination de la clé de l'adresse d'entrée
Etape 74 : recherche d'un succès pour cette adresse : existet-il un élément de la classe qui
1) a sa clé stockée CS égale à la clé d'entrée CE et
2) a son bit de présence P à 1 (s'il existe).Step 72: Entering the entry address
Step 73: Select the class and determine the key of the input address
Step 74: Search for success for this address: Is there any element of the class that
1) has its stored key CS equal to the EC entry key and
2) has its presence bit P to 1 (if it exists).
. il y a succès (branche 100) il y a sélection (étape 75) de l'élément-mémoire qui vérifie les conditions de succès indiquées ci-dessus, puis lecture ou écriture (étape 76) de la donnée, selon l'opération à effectuer; . s il y a échec sur tous les éléments de la classe, il faut opérer une procédure de remplacement (branche 101). L'élément sélectionné est celui qui a pour indice de voie la valeur contenue dans le pointeur C (étape 80). . there is success (branch 100) there is selection (step 75) of the memory element which verifies the success conditions indicated above, then reading or writing (step 76) of the data, depending on the operation to carry out; . if there is a failure on all the elements of the class, it is necessary to operate a procedure of replacement (branch 101). The selected element is the one whose path index is the value contained in the pointer C (step 80).
Il y a écriture de la clé et des données relatives à l'adresse d'entrée dans cet élément sélectionné (étape 81). Enfin, le bit de présence de cet élément est mis à 1 (étape 82). There is writing of the key and data relating to the input address in this selected element (step 81). Finally, the presence bit of this element is set to 1 (step 82).
Les indices de voies INV peuvent prendre des valeurs de O à E-i. En cas de succès la méthode prend en compte l'indice de voie INV de l'élément-mémoire qui a été sélectionné. Ainsi après l'étape 76 la valeur de l'indice INV est comparée à l'indice de voie C du pointeur (étape 77). The INV channel indices may take values from 0 to E-i. If successful, the method takes into account the channel index INV of the memory element that has been selected. Thus after step 76 the value of the index INV is compared with the track index C of the pointer (step 77).
- Lorsque INV est l'un des successeurs de C, le pointeur est chargé par la valeur SUC (INV) qui est la valeur consécutive à INV dans la suite ordonnée d'indices (étape 78);
- Sinon on ne change pas le contenu du pointeur et on passe à l'adresse d'entrée suivante.When INV is one of the successors of C, the pointer is loaded by the value SUC (INV) which is the value consecutive to INV in the ordered sequence of indices (step 78);
- Otherwise we do not change the contents of the pointer and we go to the next input address.
En cas d'échec lorsque l'opération de remplacement a été opérée avec l'indice de voie C contenu dans le pointeur, cet indice de voie C est remplacé par SUC(C) qui est la valeur consécutive à C dans la suite ordonnée d'indices (étape 83). L'étape 84 constitue un test pour déterminer si le dernier indice de voie de la suite a à être dépassé auquel cas la méthode reboucle sur le premier indice de voie de la suite (étape 85). In the event of failure when the replacement operation has been performed with the channel index C contained in the pointer, this channel index C is replaced by SUC (C) which is the value consecutive to C in the ordered sequence d indices (step 83). Step 84 is a test to determine if the last path index of the sequence has to be exceeded in which case the method loops back to the first path index of the sequence (step 85).
La méthode selon l'invention présente un nombre réduit d'étapes et se prête bien pour être réalisée par logiciel. L'invention peut alors concerner un calculateur qui est agencé pour mettre en oeuvre la méthode de gestion de données. The method according to the invention has a reduced number of steps and is well suited to be carried out by software. The invention may then relate to a computer that is arranged to implement the data management method.
A titre d'exemple le tableau I donne une comparaison des performances obtenues par l'invention et par les algorithmes LRU et FIFO. Dans cet exemple le nombre d'éléments-mémoire par classe est égal à 4 (E=4) et la taille T de la mémoire tampon est variable. Les valeurs du tableau I concernent les pourcentages de recherche d'adresses qui conduisent à un échec. On observe que quelle que soit la taille T de la mémoire tampon, la méthode selon l'invention délivre des résultats meilleurs qu'avec FIFO. Dans certaines situations la comparaison avec l'algorithme LRU est à l'avantage de la méthode selon l'invention.
By way of example, Table I gives a comparison of the performances obtained by the invention and by the LRU and FIFO algorithms. In this example, the number of memory elements per class is equal to 4 (E = 4) and the size T of the buffer memory is variable. The values in Table I relate to address search percentages that lead to failure. It is observed that whatever the size T of the buffer memory, the method according to the invention delivers better results than with FIFO. In some situations the comparison with the LRU algorithm is to the advantage of the method according to the invention.
<tb><Tb>
T <SEP> (octets) <SEP> 256 <SEP> 512 <SEP> 1024 <SEP> 2048 <SEP> 4096 <SEP> 8192 <SEP> 16384
<tb> LRU <SEP> 24,33 <SEP> 19,80 <SEP> 13,03 <SEP> 6,14 <SEP> 1,85 <SEP> 1,18 <SEP> 0,88
<tb> FIFO <SEP> 26,01 <SEP> 20,87 <SEP> 14,06 <SEP> 7,15 <SEP> 2,57 <SEP> 1,44 <SEP> 0,96
<tb> Invention <SEP> 25,27 <SEP> 19,81 <SEP> 12,76 <SEP> 5,97 <SEP> 2,22 <SEP> 1,30 <SEP> 0,96
<tb>
TABLEAU I
Un dispositif de contrôle conforme à l'invention peut présenter l'avantage d'opérer également selon l'algorithme FIFO lors de certaines séquences d'adresses qui ne seraient pas favorables à la méthode présentée conduisant ainsi à un taux d'échec plus élevé. Dans ces situations, il est possible de neutraliser la mise à jour des pointeurs en cas de succès et d'opérer selon l'autre mode. Cette double possibilité, qui ne nécessite aucun moyen matériel supplémentaire, donne audit dispositif de contrôle une grande souplesse d'utilisation. T <SEP> (bytes) <SEP> 256 <SEP> 512 <SEP> 1024 <SEP> 2048 <SEP> 4096 <SEP> 8192 <SEQ> 16384
<tb> LRU <SEP> 24.33 <SEP> 19.80 <SEP> 13.03 <SEP> 6.14 <SEP> 1.85 <SEP> 1.18 <SEP> 0.88
<tb> FIFO <SEP> 26.01 <SEP> 20.87 <SEP> 14.06 <SEP> 7.15 <SEP> 2.57 <SEP> 1.44 <SEP> 0.96
<tb> Invention <SEP> 25.27 <SEP> 19.81 <SEP> 12.76 <SEP> 5.97 <SEP> 2.22 <SE> 1.30 <SEP> 0.96
<Tb>
TABLE I
A control device according to the invention may have the advantage of operating also according to the FIFO algorithm during certain address sequences that would not be favorable to the method presented thus leading to a higher failure rate. In these situations, it is possible to disable the updating of the pointers on success and to operate in the other mode. This dual possibility, which does not require any additional hardware, gives the control device a great flexibility of use.
Claims (9)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9007275A FR2663136B1 (en) | 1990-06-12 | 1990-06-12 | DEVICE FOR CONTROLLING A BUFFER MEMORY AND METHOD FOR MANAGING DIGITAL DATA. |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9007275A FR2663136B1 (en) | 1990-06-12 | 1990-06-12 | DEVICE FOR CONTROLLING A BUFFER MEMORY AND METHOD FOR MANAGING DIGITAL DATA. |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2663136A1 true FR2663136A1 (en) | 1991-12-13 |
FR2663136B1 FR2663136B1 (en) | 1992-09-11 |
Family
ID=9397500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR9007275A Expired - Lifetime FR2663136B1 (en) | 1990-06-12 | 1990-06-12 | DEVICE FOR CONTROLLING A BUFFER MEMORY AND METHOD FOR MANAGING DIGITAL DATA. |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2663136B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3840862A (en) * | 1973-09-27 | 1974-10-08 | Honeywell Inf Systems | Status indicator apparatus for tag directory in associative stores |
GB2214669A (en) * | 1988-01-30 | 1989-09-06 | Int Computers Ltd | Cache memory |
-
1990
- 1990-06-12 FR FR9007275A patent/FR2663136B1/en not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3840862A (en) * | 1973-09-27 | 1974-10-08 | Honeywell Inf Systems | Status indicator apparatus for tag directory in associative stores |
GB2214669A (en) * | 1988-01-30 | 1989-09-06 | Int Computers Ltd | Cache memory |
Non-Patent Citations (1)
Title |
---|
RESEARCH DISCLOSURE, no. 289, mai 1988, page 350, article no. 289116; "Low cost cache replacement" * |
Also Published As
Publication number | Publication date |
---|---|
FR2663136B1 (en) | 1992-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0020983B1 (en) | Memory system comprising a serial storage device | |
BE1001068A4 (en) | Method file quick opening disc identified by the name of roads. | |
FR2881540A1 (en) | Input output cache memory usage method for computer system, involves assuring that prefetch locking indicator of cache memory line of cache memory associated to memory request is in locked condition, if memory request is not speculative | |
FR2664719A1 (en) | CONTROL DEVICE FOR A RECONFIGURABLE PARTITIONING BUFFER MEMORY. | |
FR2489578A1 (en) | ORGANIZATION STRUCTURE FOR BUFFER MEMORY | |
FR2913785A1 (en) | CIRCULAR BUFFER MEMORY MANAGEMENT | |
FR2681707A1 (en) | FILE SYSTEM FOR SELECTIVELY REDISTRIBUTING FILES AND METHOD FOR AFFECTING MEMORY SPACE IN A COMPUTER SYSTEM COMPRISING MULTIPLE DATA STORAGE DEVICES. | |
EP1909169A1 (en) | Mass-storage system and method | |
FR2809841A1 (en) | METHOD AND APPARATUS FOR REDUCING POWER IN HIDDEN MEMORIES AND DATA PROCESSING SYSTEM COMPRISING HOT MEMORIES | |
WO2018046850A1 (en) | Methods and devices for bypassing the internal cache of an advanced dram memory controller | |
FR2645986A1 (en) | METHOD FOR ACCELERATING MEMORY ACCESS TO A COMPUTER SYSTEM AND SYSTEM FOR IMPLEMENTING THE METHOD | |
EP3293637A1 (en) | Index management in a flash memory | |
EP3080812B1 (en) | Memory data writing circuit | |
FR2682783A1 (en) | MAINTAINING HIDDEN CONSISTENCY. | |
FR2683061A1 (en) | MEMORY SEGMENTATION SYSTEM. | |
EP0251861B1 (en) | Memory management unit | |
EP1175122A1 (en) | Memory management apparatus allowing the writing of data blocks by subsititution | |
FR2645987A1 (en) | DEVICE FOR ACCELERATING MEMORY ACCESS IN A COMPUTER SYSTEM | |
FR2663136A1 (en) | Device for controlling a buffer memory and method of managing digital data | |
FR2778254A1 (en) | Memory cache cleaning method to reduce clock cycles in computer system with cache memories | |
FR3051574A1 (en) | MANAGING STORAGE IN A FLASH MEMORY | |
EP0304348B1 (en) | Access locking means for memory access management unit and access conflict management using such locking means | |
EP0908828B1 (en) | Distributed access control system for memory and method | |
FR2821449A1 (en) | METHOD FOR MANAGING INSTRUCTIONS WITHIN A PROCESSOR WITH DECOUPLED ARCHITECTURE, IN PARTICULAR A PROCESSOR FOR DIGITAL SIGNAL PROCESSING, AND CORRESPONDING PROCESSOR | |
EP1821197A2 (en) | Device for postfix notation processing, and electronic integrated circuit comprising such a processing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
CD | Change of name or company name | ||
CJ | Change in legal form | ||
ST | Notification of lapse |