FR2769387A1 - Management of a variable memory buffer for computer communications - Google Patents

Management of a variable memory buffer for computer communications Download PDF

Info

Publication number
FR2769387A1
FR2769387A1 FR9712473A FR9712473A FR2769387A1 FR 2769387 A1 FR2769387 A1 FR 2769387A1 FR 9712473 A FR9712473 A FR 9712473A FR 9712473 A FR9712473 A FR 9712473A FR 2769387 A1 FR2769387 A1 FR 2769387A1
Authority
FR
France
Prior art keywords
address
pointers
pointer
memory
addresses
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
FR9712473A
Other languages
French (fr)
Other versions
FR2769387B1 (en
Inventor
Francis Tran
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.)
Societe Anonyme de Telecommunications SAT
Original Assignee
Societe Anonyme de Telecommunications SAT
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 Societe Anonyme de Telecommunications SAT filed Critical Societe Anonyme de Telecommunications SAT
Priority to FR9712473A priority Critical patent/FR2769387B1/en
Publication of FR2769387A1 publication Critical patent/FR2769387A1/en
Application granted granted Critical
Publication of FR2769387B1 publication Critical patent/FR2769387B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/12Indexing scheme relating to groups G06F5/12 - G06F5/14
    • G06F2205/126Monitoring of intermediate fill level, i.e. with additional means for monitoring the fill level, e.g. half full flag, almost empty flag

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

The memory (1) operates with two pointers, indicating the address of start (23) and end (21) of memory within a variable zone (12). The size of the zone (12) is fictitiously altered by shifting (15) the address of one of the pointers (21), detecting whether a filling threshold is reached and determining the relation between the shifted address (24,25) and an address corresponding to the other pointer (23), and as a consequence modifying filling or emptying of memory.

Description

Procédé de gestion d'une mémoire élastique
et dispositif pour la mise en oeuvre du procédé
Dans les systèmes électroniques numériques, les transmissions de données entre un émetteur et un récepteur nécessitent souvent d'interposer une mémoire tampon de stockage temporaire. Selon l'application, cela permet à l'émetteur et au récepteur de fonctionner à des rythmes instantanés différents, ou encore de tolérer des fluctuations du flux entrant, grâce à un lissage.
Method for managing an elastic memory
and device for implementing the method
In digital electronic systems, data transmissions between a transmitter and a receiver often require the interposition of a temporary storage buffer. Depending on the application, this allows the transmitter and the receiver to operate at different instantaneous rhythms, or to tolerate fluctuations in the incoming flow, thanks to smoothing.

Une mémoire tampon, récepteur intermédiaire, est donc interposée entre l'émetteur et le récepteur final. Les données provenant de l'émetteur sont stockées dans le tampon au rythme de la voie d'accès entrante, fixé par l'émetteur, et retransmises au récepteur au rythme de la voie d'accès sortante, de lecture par le récepteur. A l'équilibre, cette mémoire est sensiblement à moitié remplie. Une crête temporaire de fluctuation positive de trafic sera ainsi stockée sans perte et retransmise ultérieurement. De même, une crête négative pourra être masquée puisque la sortie s'alimente sur la réserve de trafic stocké. La mémoire a ainsi un volume utilisé qui est élastique.A buffer memory, intermediate receiver, is therefore interposed between the transmitter and the final receiver. Data from the transmitter is stored in the buffer at the rate of the incoming access channel, set by the transmitter, and retransmitted to the receiver at the rate of the outgoing access channel, read by the receiver. At equilibrium, this memory is substantially half full. A temporary peak of positive traffic fluctuation will thus be stored without loss and retransmitted later. Likewise, a negative peak may be masked since the output feeds on the stored traffic reserve. Memory thus has a used volume which is elastic.

Lorsqu'une crête de trafic se prolonge, la mémoire va déborder ou se vider si aucune mesure de régulation n' intervient. I1 est donc intéressant d'implémenter des indicateurs de remplissage. Grâce à ces indicateurs, un processus de gestion des voies d'accès peut alors modifier si nécessaire le flux entrant et/ou sortant pour les rééquilibrer, par exemple en modifiant le débit de la voie de sortie ou, symétriquement, en avertissant le circuit émetteur.When a traffic peak is prolonged, the memory will overflow or empty if no regulation measures are taken. It is therefore interesting to implement filling indicators. Thanks to these indicators, a process for managing the access channels can then modify the incoming and / or outgoing flow if necessary to rebalance them, for example by modifying the flow of the output channel or, symmetrically, by warning the transmitting circuit. .

Parmi les indicateurs, on peut citer les deux indicateurs de débordement "VIDE" et "PLEIN", qui correspondent aux limites d'élasticité de capacité, et les indicateurs de remplissage qui permettent de détecter par exemple que la mémoire tampon est quasipleine ou quasi-vide. Among the indicators, one can cite the two overflow indicators "EMPTY" and "FULL", which correspond to the elasticity limits of capacity, and the filling indicators which make it possible to detect for example that the buffer memory is quasipleine or quasi- empty.

Comme, dans une mémoire tampon les données sont écrites à des adresses successives et forment donc une zone de données ou bloc de longueur variable, il suffit théoriquement, pour mesurer ce bloc, et en déduire le taux de remplissage, de connaître les adresses de début et de fin de celui-ci.As, in a buffer memory the data are written to successive addresses and therefore form a data area or block of variable length, it is theoretically sufficient, to measure this block, and to deduce the filling rate, to know the start addresses and end of it.

En pratique, on lit les diverses données en conservant leur ordre d'arrivée, c'est-à-dire qu'on lit à chaque fois la donnée la plus anciennement écrite. Cette exploitation est dite FIFO, pour Premier entré - Premier sorti. Pour cela, on écrit les données successivement reçues à des adresses que l'on fait croître progressivement, qui constituent une sorte de front avant par où le bloc se développe. Pour la lecture et la retransmission qui suit vers le récepteur final, qui va rendre disponible l'adresse lue, on lit l'adresse de fin de bloc (données les plus anciennes) et la fait croître progressivement à chaque lecture. Le front arrière de bloc modifié "poursuit" ainsi le front avant. En bout de plage disponible, on reboucle sur le début, c'est-à-dire que le front avant poursuit aussi le front arrière, constituant ainsi un tampon en anneau.In practice, we read the various data by keeping their order of arrival, that is to say that we read each time the data most anciently written. This operation is called FIFO, for First in - First out. For this, we write the successively received data to addresses that we make grow gradually, which constitute a kind of front edge through which the block develops. For the subsequent reading and retransmission to the final receiver, which will make the address read available, the end of block address (oldest data) is read and gradually increased with each reading. The modified block rear edge thus "continues" the front edge. At the end of the available range, we loop back to the start, that is to say that the front edge also follows the rear edge, thus constituting a ring buffer.

De façon classique, on adresse la boucle par deux compteurs avançant pas à pas à chaque événement respectif, écriture et lecture, compteurs qui pointent l'adresse considérée. Une soustraction des adresses des deux pointeurs fournit alors la taille du bloc de données et permet d'en déduire le taux de remplissage.Conventionally, the loop is addressed by two counters advancing step by step at each respective event, writing and reading, counters which point to the address considered. Subtracting the addresses of the two pointers then provides the size of the data block and makes it possible to deduce the filling rate.

Cependant, comme expliqué plus haut, les horloges d'écriture et de lecture ne sont souvent pas synchronisées entre elles, par exemple si les rythmes entrant et sortant sont différents, si bien qu'on ne peut garantir l'existence d'un temps mort qui serait réservé à la soustraction des adresses et celle-ci risque d'être faussée si l'adresse d'un des pointeurs évolue alors. Le résultat ainsi parasité n'a alors aucune signification. On peut prévoir des mécanismes de synchronisation ou de réitération de la soustraction, avec vote majoritaire, mais cela accroît nettement la complexité de l'électronique de calcul et le temps de décision. However, as explained above, the writing and reading clocks are often not synchronized with each other, for example if the incoming and outgoing rhythms are different, so that no dead time can be guaranteed. which would be reserved for the subtraction of the addresses and this one is likely to be distorted if the address of one of the pointers evolves then. The result thus parasitized then has no meaning. One can provide synchronization or reiteration mechanisms of the subtraction, with majority vote, but this clearly increases the complexity of the computing electronics and the decision time.

La présente invention vise à améliorer la fiabilité des résulats de calcul ou d'estimation du remplissage d'une mémoire élastique sans toutefois accroître la complexité du calcul.The present invention aims to improve the reliability of the calculation or estimation results of filling an elastic memory without however increasing the complexity of the calculation.

A cet effet, l'invention concerne tout d'abord un procédé de gestion d'une mémoire élastique, dont on remplit et vide une zone de données de taille variable indiquée par deux pointeurs d'adresses de début et de fin de zone, dans une plage d'adresses de taille déterminée, procédé caractérisé par le fait qu'on modifie fictivement la taille de la zone, par décalage déterminé de l'adresse de l'un des pointeurs, on détecte qu'un seuil de remplissage de la mémoire est atteint en recherchant l'identité entre 1' adresse décalée et une adresse correspondant à l'autre pointeur et on modifie en conséquence le vidage/remplissage de la mémoire.To this end, the invention relates first of all to a method of managing an elastic memory, of which a variable size data area is indicated and emptied indicated by two address pointers at the start and end of the area, in a range of addresses of determined size, process characterized by the fact that the size of the area is fictitiously modified, by determined shift of the address of one of the pointers, it is detected that a threshold for filling the memory is reached by searching for the identity between the offset address and an address corresponding to the other pointer and the emptying / filling of the memory is modified accordingly.

Par exemple, pour détecter un remplissage excessif, on peut associer au pointeur de lecture un pointeur décalé en arrière de celui-ci de
N pas d'adresse. La détection de l'identité entre l'adresse de lecture décalée et l'adresse d'écriture signale alors que l'espace mémoire libre n'est plus que de N unités, c'est-à-dire N (paquets de) bits ou octets.
For example, to detect an excessive filling, one can associate with the reading pointer a pointer shifted behind it by
No address. The detection of the identity between the offset read address and the write address signals that the free memory space is no longer than N units, i.e. N (packets of) bits or bytes.

Pour la détection d'un vidage excessif, le principe est le même que ci-dessus. On peut associer au pointeur d'écriture un pointeur décalé en arrière de celui-ci de M pas. La détection de l'identitié de l'adresse d'écriture décalée avec l'adresse de lecture signale alors que l'espace de données restant à lire n'est plus que de M unités.The principle for the detection of excessive emptying is the same as above. We can associate with the writing pointer a pointer shifted behind it by M steps. The detection of the identity of the write address offset with the read address then signals that the data space remaining to be read is no more than M units.

Comme il s'agit d'une détection par identité, ou égalité, il se produit beaucoup moins de parasites, ou résultats erronés transitoires, lors des changements d'adresse. En effet, une égalité entre deux nombres d'adresse est une juxtaposition d'égalités entre bits de même rang, sans interaction latérale (retenue) entre rangs.As it is a detection by identity, or equality, there is much less noise, or transient erroneous results, during changes of address. Indeed, an equality between two address numbers is a juxtaposition of equality between bits of the same rank, without lateral interaction (retained) between ranks.

Bref, dans l'invention, on remplace la propagation transversale d'une pluralité de changements d'état de bits, liée à l'utilisation d'un soustracteur, par une simple propagation aval, beaucoup plus rapide et ne comportant qu'un seul chemin par bit.In short, in the invention, the transverse propagation of a plurality of bit state changes, linked to the use of a subtractor, is replaced by a simple downstream propagation, much faster and comprising only one path per bit.

Avantageusement, on déplace la zone dans la plage d'adresses, par écriture à l'adresse du pointeur de début et par lecture à l'adresse du pointeur de fin, selon une séquence d'adresses suivant un code de
Gray.
Advantageously, the zone is moved in the address range, by writing to the address of the start pointer and by reading to the address of the end pointer, according to a sequence of addresses according to a code of
Gray.

Ainsi, à chaque changement d'adresse, le code de Gray permet de limiter à un seul bit le changement qui intervient dans les bits d'adresse, ce qui exclut donc tout résultat parasite le bit qui change d'état fait apparaître, de façon stable, par un seul chemin, une fenêtre de résultat d'égalité, ou maintient simplement fermée cette fenêtre en cas d'inégalité persistante.Thus, at each change of address, the Gray code makes it possible to limit to a single bit the change which occurs in the address bits, which therefore excludes any parasitic result the bit which changes state reveals, so stable, by a single path, an equality result window, or simply keeps this window closed in the event of persistent inequality.

Avantageusement encore, on engendre deux décalages de l'adresse de l'un des pointeurs, et on détecte le sens de franchissement d'un seuil associé aux décalages d'après l'ordre dans lequel se produisent les identités correspondantes.Advantageously again, two shifts of the address of one of the pointers are generated, and the direction of crossing a threshold associated with the shifts is detected according to the order in which the corresponding identities occur.

L'invention concerne aussi un dispositif de gestion d'une mémoire élastique, pour la mise en oeuvre du procédé de l'invention, agencé pour écrire et lire une zone de données de taille variable délimitée par deux pointeurs d'adresses à l'intérieur d'une plage d'adresses, caractérisé par le fait qu'il comporte des moyens pour décaler l'adresse d'un des pointeurs et des moyens comparateurs pour détecter 1' identité entre l'adresse décalée et une adresse correspondant à l'autre pointeur.The invention also relates to a device for managing an elastic memory, for implementing the method of the invention, arranged to write and read a data area of variable size delimited by two address pointers inside. of an address range, characterized in that it includes means for shifting the address of one of the pointers and comparator means for detecting the identity between the offset address and an address corresponding to the other pointer.

L'invention sera mieux comprise à l'aide de la description détaillée du mode de mise en oeuvre préféré du procédé de l'invention, en référence au dessin annexé, sur lequel - la figure 1 représente le schéma de principe d'un dispositif de gestion mettant en oeuvre le procédé de l'invention, et - la figure 2 représente un circuit détecteur d'identité d'adresses. The invention will be better understood with the aid of the detailed description of the preferred embodiment of the method of the invention, with reference to the appended drawing, in which - FIG. 1 represents the block diagram of a device for management implementing the method of the invention, and - Figure 2 shows an address identity detector circuit.

Le dispositif représenté est intégré dans un système de transmission de données et comporte une mémoire tampon 1, exploitée ici selon un fonctionnement en anneau, dans laquelle des données sont inscrites par un circuit d'entrée 2 au rythme d'un signal d'horloge H1 et sont lues par un circuit de sortie 3, de restitution différée, selon un signal d'horloge H2.The device shown is integrated into a data transmission system and includes a buffer memory 1, used here in a ring operation, in which data is written by an input circuit 2 at the rate of a clock signal H1 and are read by an output circuit 3, of deferred restitution, according to a clock signal H2.

Un compteur 4, pointeur d'écriture, d'horloge H1, aiguille les données du circuit d'entrée 2 vers une adresse évoluant à chaque écriture. Un compteur 5, pointeur de lecture, d'horloge H2, adresse la mémoire 1, de façon évolutive à chaque lecture, pour alimenter en données le circuit de lecture 3.A counter 4, writing pointer, clock H1, directs the data of the input circuit 2 to an address evolving with each writing. A counter 5, read pointer, clock H2, addresses the memory 1, in an evolutionary fashion with each reading, to supply the reading circuit 3 with data.

Les écritures successives, par bit ou paquets de bits, constituent, dans la plage des adresses de la mémoire 1, une zone 12 de données dont la taille évolue, ici par déplacement de chacune de ses deux extrémités. Les pointeurs évoluent ici selon une séquence déterminée et rebouclée d'adresses successives, si bien que la zone 12 est une zone d'un seul tenant dans la mémoire 1. Si, en variante, les pointeurs évoluaient selon une séquence de Gray, la zone 12 serait physiquement répartie dans la mémoire 1 de façon morcelée, tout en restant logiquement d'un seul tenant puisque toutes les adresses appartiennent à un même tronçon de la séquence de gestion de la mémoire 1. Pour la clarté de l'exposé, la zone 12 est représentée d'un seul tenant dans la figure 1.The successive writes, per bit or packet of bits, constitute, in the range of addresses of the memory 1, an area 12 of data whose size changes, here by displacement of each of its two ends. The pointers evolve here according to a determined and looped sequence of successive addresses, so that the area 12 is an area in one piece in the memory 1. If, as a variant, the pointers evolved according to a Gray sequence, the area 12 would be physically distributed in memory 1 in a fragmented manner, while remaining logically in one piece since all the addresses belong to the same section of the memory management sequence 1. For the sake of clarity, the area 12 is shown in one piece in FIG. 1.

La zone 12 se translate dans la plage de la mémoire 1, son front avant 23 (adresse AD1) progressant, à chaque écriture (hui) d'une unité d'adresse dans la direction de la flèche 20. Le front arrière 21 (adresse AD2) de la zone 12 se déplace dans le même sens au rythme des lectures (H2) (flèche 22), qui libèrent à chaque fois une adresse.Zone 12 translates into the range of memory 1, its front edge 23 (address AD1) progressing, with each writing (hui) of an address unit in the direction of arrow 20. The rear edge 21 (address AD2) of zone 12 moves in the same direction to the rhythm of the readings (H2) (arrow 22), which release an address each time.

Autrement dit, la zone 13 libre diminue d'une unité à chaque écriture et se dilate d'une unité à chaque lecture intervenant dans la zone 12 complémentaire.
Au compteur de lecture 5 est associé un compteur décalé 6 et, dans cet exemple, un autre compteur décalé 7, qui pointent respectivement sur des adresses 24 et 25. L'écart entre les adresses 21 et 24 est ici fixe, c'est-à-dire que le front arrière fictif 24, retardé d'un décalage 15, se déplace (flèche 26) à la vitesse du front arrière 21 dont il est l'image. Le compteur 6 reçoit le signal d'horloge H2, tout comme le compteur 5, et comporte une entrée de prépositionnement qui fixe, à la mise sous tension ou de façon cyclique grâce à un signal de synchronisation 14 issu du compteur 5, son écart (15) (nombre de pas d'adresse) par rapport au compteur de lecture 5, autrement dit le seuil de remplissage à détecter. Quant au compteur 7, il est ici décalé d'une unité en plus par rapport au compteur 6 et se présente en fait sous la forme d'un registre tampon (registre à décalage à un étage) à entrées et sorties parallèles lisant l'état du compteur 6. On conçoit que, de même, le compteur retardé 6 pourrait être remplacé par un registre à décalage ayant le nombre d'étages correspondant au décalage 15. Un double comparateur 8 reçoit les adresses issues des pointeurs, d'écriture 4, d'une part et, d'autre part, de lecture décalée 6, respectivement 7. Il fournit des signaux, en cas d'égalité, à un circuit machine d'états 11 élaborant un indicateur de remplissage 10.
In other words, the free zone 13 decreases by one unit with each writing and expands by one unit with each reading occurring in the complementary zone 12.
To the reading counter 5 is associated a shifted counter 6 and, in this example, another shifted counter 7, which point respectively to addresses 24 and 25. The difference between the addresses 21 and 24 is here fixed, that is to say that is to say that the fictitious rear edge 24, delayed by an offset 15, moves (arrow 26) at the speed of the rear edge 21 of which it is the image. The counter 6 receives the clock signal H2, like the counter 5, and has a prepositioning input which fixes, at power-up or cyclically thanks to a synchronization signal 14 coming from the counter 5, its difference ( 15) (number of address steps) relative to the reading counter 5, in other words the filling threshold to be detected. As for counter 7, it is here offset by one more unit compared to counter 6 and is in fact in the form of a buffer register (shift register with one stage) with parallel inputs and outputs reading the state of the counter 6. It is understood that, similarly, the delayed counter 6 could be replaced by a shift register having the number of stages corresponding to the shift 15. A double comparator 8 receives the addresses from the pointers, of writing 4, on the one hand and, on the other hand, of offset reading 6, respectively 7. It supplies signals, in the event of a tie, to a state machine circuit 11 producing a filling indicator 10.

Le double comparateur 8 est constitué de deux comparateurs identiques. Le premier compare les adresses des pointeurs 4 et 6, le second compare celles des pointeurs 4 et 7. La figure 2 représente la structure du premier des comparateurs 8. Il est constitué d'une rangée de portes OU exclusif 81 à 88 en parallèle, à deux entrées, dont l'une reçoit un bit d'adresse de poids spécifique du pointeur 4 et l'autre le bit homologue du pointeur 6. Il y a autant de portes OU exclusif que de bits d'adresse, ici huit. Une porte OU classique collecte les résultats des portes OU exclusif 81 à 88.The double comparator 8 consists of two identical comparators. The first compares the addresses of pointers 4 and 6, the second compares those of pointers 4 and 7. FIG. 2 represents the structure of the first of comparators 8. It consists of a row of exclusive OR gates 81 to 88 in parallel, with two inputs, one of which receives a specific gravity address bit from pointer 4 and the other the homologous bit from pointer 6. There are as many exclusive OR gates as address bits, here eight. A classic OR gate collects the results of exclusive OR gates 81 to 88.

En cas d'identité d'adresses (4, 6), chaque paire de bits de même poids a la représentation binaire "00" ou "11" et toutes les portes OU exclusifs 81 à 88 fournissent donc un état logique "0", si bien que la porte OU 89 fournit de même un état logique "O". Par contre, une paire de bits de même poids présentant une discordance "01 " ou "10" fait passer à " 1 " la sortie de la porte OU exclusif 81 à 88 considérée.In the case of address identities (4, 6), each pair of bits of the same weight has the binary representation "00" or "11" and all the exclusive OR gates 81 to 88 therefore provide a logical state "0", so that the OR gate 89 likewise provides a logic "O" state. On the other hand, a pair of bits of the same weight having a discrepancy "01" or "10" causes the output of the exclusive OR gate 81 to 88 considered to pass to "1".

La sortie du OU 89 est alors forcée à " 1 " et l'état des autres bits en entrée ne peut que confirmer cet état "1", sans pouvoir l'annuler.The output of OR 89 is then forced to "1" and the state of the other input bits can only confirm this state "1", without being able to cancel it.

Comme le montre la figure 2, la propagation des transitions d'état des adresses en entrée s'effectue uniquement vers l'aval (89) sans propagation latérale entre les portes OU exclusif 81 à 88. De ce fait, une transition d'un bit d'adresse n'a qu'un seul chemin de propagation, si bien qu'il n'y a aucun risque d'apparition d'états transitoires en sortie de la porte OU 89 dus à un seul bit, comme ce serait le cas s'il existait deux chemins en parallèle avec des temps de propagation différents.As shown in FIG. 2, the propagation of the state transitions of the input addresses takes place only downstream (89) without lateral propagation between the exclusive OR gates 81 to 88. As a result, a transition from one address bit has only one propagation path, so that there is no risk of transient states at the output of OR gate 89 due to a single bit, as would be the case case if there were two paths in parallel with different propagation times.

Bref, l'identité d'adresses est un état particulier que l'on détecte par des moyens matériels beaucoup plus simples qu'un bloc de calcul d'amplitude de différence, puisqu'il y a pas de retenue à propager transversalement, donc le temps de traversée est bien plus court.In short, the identity of addresses is a particular state that is detected by material means much simpler than a block for calculating the difference in amplitude, since there is no reserve to propagate transversely, therefore the crossing time is much shorter.

En cas de changement de plusieurs bits d'adresse, il subsiste cependant, au moins en théorie, un risque d'apparition d'état transitoire au niveau de la porte OU 89 si, parmi les portes OU exclusif 81 à 88, qui commutent, l'une présente un temps de traversée nettement inférieur à celui d'une autre et ouvre la fenêtre avant que l'autre porte n'ait eu le temps d'en confirmer la fermeture.In the event of a change of several address bits, there remains however, at least in theory, a risk of the appearance of a transient state at the level of the OR gate 89 if, among the exclusive OR gates 81 to 88, which switch, one has a significantly shorter crossing time than another and opens the window before the other door has had time to confirm closing.

De même, un compteur classique (4, 6) peut présenter des états (adresses) transitoires entre deux états stables successifs. Afin d'éviter le risque correspondant, les compteurs (4, 5, 6, 7 peuvent en variante, comme déjà évoqué, progresser selon un code de Gray, c'est-à-dire que les adresses successives qu'ils fournissent ne diffèrent deux à deux que d'un seul bit ...0000, ...0001, ...0011, 0010, .0110, ...0111, ...0101, ...0100, etc.Similarly, a conventional counter (4, 6) can have transitory states (addresses) between two successive stable states. In order to avoid the corresponding risk, the counters (4, 5, 6, 7 can alternatively, as already mentioned, progress according to a Gray code, that is to say that the successive addresses which they supply do not differ two to two than one bit ... 0000, ... 0001, ... 0011, 0010, .0110, ... 0111, ... 0101, ... 0100, etc.

La mémoire 1 est gérée de la façon suivante. A la mise sous tension, les compteurs-pointeurs 4 et 5 ont un même état, par exemple l'adresse "0", l'adresse du pointeur 6 se trouvant décalée en arrière de celle du pointeur 5 avec l'écart prédéterminé 15. Après écritures et lectures, la mémoire 1 présente une zone de données 12, comme sur la figure 1. Le problème général est de fournir des indicateurs de remplissage au système pour permettre si nécessaire de réguler la taille de la zone 12 pour éviter une saturation complète (débordement) de la mémoire (perte d'élasticité) et éventuellement éviter son vidage complet (débordement de capacité négative).Memory 1 is managed as follows. On power-up, the counter-pointers 4 and 5 have the same state, for example the address "0", the address of the pointer 6 being shifted behind that of the pointer 5 with the predetermined difference 15. After writing and reading, the memory 1 presents a data area 12, as in FIG. 1. The general problem is to supply filling indicators to the system to allow if necessary to regulate the size of the area 12 to avoid complete saturation (overflow) of the memory (loss of elasticity) and possibly avoid its complete emptying (overflow of negative capacity).

La figure 1 illustre simplement la détection de franchissement d'un seuil de remplissage avec risque de débordement positif. Lorsque la taille de la zone 12 s'accroît, le front d'écriture 23 dépasse dans l'ordre les adresses de fronts de lecture décalés en arrière 25 et 24 pour atteindre ensuite l'adresse du front de lecture 21.Figure 1 simply illustrates the detection of crossing a filling threshold with risk of positive overflow. When the size of the zone 12 increases, the writing front 23 exceeds in order the addresses of reading fronts shifted backwards 25 and 24 to then reach the address of the reading front 21.

Lorsqu'intervient la coïncidence des front d'écriture 23 et front de lecture décalé le plus en arrière 25, puis celle des fronts 23 et 24, le double comparateur 8 fournit alors des signaux permettant à la machine d'états 1 1 de signaler par le signal de remplissage 10 que le seuil de remplissage fixé par le décalage 15 vient être franchi dans le sens croissant. Autrement dit, on signale que la réserve de sécurité 15, correspondant au décalage, est entamée. En toute rigueur, on détecte que le remplissage atteint en croissant le front 24, et que la réserve 15 risque d'être entamée si, comme c'est probable, le remplissage se poursuit. Par contre, si l'on s'intéresse au front 25 de plus grand décalage et à la réserve qu'il forme avec le front arrière 21 (ici la réserve 15 augmentée d'une unité) cette réserve est entamée avec certitude. Les fronts 24, 25 définissent ainsi ici fonctionnellement un seuil unique associé. Bien entendu, il aurait pu être prévu que les deux adresses 24 et 25 de seuils de remplissage soient disjointes, avec entre elles une zone tampon.When the coincidence of the writing front 23 and the reading edge offset the most back 25 occurs, then that of the fronts 23 and 24, the double comparator 8 then provides signals allowing the state machine 1 1 to signal by the filling signal 10 that the filling threshold fixed by the offset 15 has just been crossed in the increasing direction. In other words, it is signaled that the safety reserve 15, corresponding to the offset, has started. Strictly speaking, it is detected that the filling reaches increasing edge 24, and that the reserve 15 may be started if, as is likely, the filling continues. On the other hand, if one is interested in the front 25 of greatest offset and in the reserve which it forms with the rear front 21 (here the reserve 15 increased by one) this reserve is started with certainty. The edges 24, 25 thus functionally define here a single associated threshold. Of course, provision could have been made for the two addresses 24 and 25 of filling thresholds to be separate, with a buffer zone between them.

Si le système prend des mesures pour ralentir les écritures, la zone 12 décroît et il y a de nouveau coïncidence des fronts ci-dessus, mais dans l'ordre inverse. La machine d'états 1 1 indique alors que le seuil de remplissage vient d'être franchi dans le sens décroissant.If the system takes measures to slow down the writes, the zone 12 decreases and the above edges coincide again, but in reverse order. The state machine 1 1 then indicates that the filling threshold has just been crossed in the decreasing direction.

Autrement dit, on signale que la réserve de sécurité 15 est de nouveau disponible. Comme il s'agit en définitive de détecter la présence ou non d'une réserve de sécurité de remplissage comme 15, accolée ici derrière le front arrière de lecture 21 dans la figure 1, on conçoit que cette réserve aurait, de façon équivalente, tout aussi bien pu être accolée devant le front avant d'écriture 23. Auquel cas, on associerait au pointeur d'écriture 4 un pointeur décalé en avant (ou plusieurs) et on détecterait sa coïncidence avec le pointeur de lecture 5.In other words, it is signaled that the safety reserve 15 is again available. As it is ultimately a question of detecting the presence or not of a filling safety reserve like 15, attached here behind the rear reading front 21 in FIG. 1, it is conceivable that this reserve would, in an equivalent manner, all could also have been placed in front of the front before writing 23. In which case, we would associate with the writing pointer 4 a pointer shifted forward (or more) and we would detect its coincidence with the reading pointer 5.

Si, contrairement à l'exemple de la figure 1, on cherchait à détecter un vidage excessif de la mémoire 1, le principe exposé ci-dessus (pointeur(s) décalé(s) en arrière ou en avant) reste valable. Par exemple, on peut associer au pointeur d'écriture 4 (ou un des) pointeur(s) décalé(s) en arrière pour marquer une réserve de sécurité de vidage et on détecte sa coïncidence avec le pointeur de lecture 5.If, contrary to the example of FIG. 1, one sought to detect an excessive emptying of the memory 1, the principle exposed above (pointer (s) shifted back or forward) remains valid. For example, we can associate with the writing pointer 4 (or one of the pointer (s) shifted backwards) to mark a reserve for emptying security and we detect its coincidence with the reading pointer 5.

On remarquera de même qu'un décalage dans un sens équivaut au décalage complémentaire (par rapport à la taille totale de la mémoire 1) dans l'autre sens.It will also be noted that an offset in one direction is equivalent to the complementary offset (relative to the total size of the memory 1) in the other direction.

Dans certaines applications, il peut être utile de créer une sorte d'hystérésis sur la taille de la réserve (15), c'est-à-dire qu'on engendre une paire de décalages pour la détection du franchissement du seuil de remplissage dans un sens et on engendre une paire différente de décalages pour la détection du franchissement, dans l'autre sens, d'un autre seuil. In certain applications, it may be useful to create a sort of hysteresis on the size of the reserve (15), that is to say that a pair of offsets is generated for the detection of the crossing of the filling threshold in one direction and a different pair of offsets is generated for detecting the crossing, in the other direction, of another threshold.

Claims (9)

REVENDICATIONS 1. - Procédé de gestion d'une mémoire élastique (1), dont on remplit et vide une zone de données de taille variable (12) indiquée par deux pointeurs d'adresses de début (23) et de fin (21) de zone, dans une plage d'adresses de taille déterminée, procédé caractérisé par le fait qu'on modifie fictivement la taille de la zone (12), par décalage déterminé (15) de l'adresse (21) de l'un des pointeurs, on détecte qu un seuil de remplissage de la mémoire est atteint en recherchant l'identité entre l'adresse décalée (24; 25) et une adresse (23) correspondant à l'autre pointeur et on modifie en conséquence le vidage/remplissage de la mémoire.CLAIMS 1. - Method for managing an elastic memory (1), of which a variable size data area (12) is filled and emptied indicated by two start (23) and end (21) address pointers of zone, in a range of addresses of determined size, method characterized in that the size of the zone (12) is fictitiously modified, by determined offset (15) of the address (21) of one of the pointers , it is detected that a memory filling threshold is reached by searching for the identity between the offset address (24; 25) and an address (23) corresponding to the other pointer and the emptying / filling of Memory. 2.- Procédé selon la revendication 1, dans lequel on déplace la zone (12) dans la plage d'adresses, par écriture à l'adresse du pointeur de début (23) et par lecture à l'adresse du pointeur de fin (21), selon une séquence d'adresses suivant un code de Gray.2.- Method according to claim 1, in which the zone (12) is moved in the address range, by writing to the address of the start pointer (23) and by reading to the address of the end pointer ( 21), according to a sequence of addresses following a Gray code. 3.- Procédé selon l'une des revendications 1 et 2, dans lequel on engendre deux décalages de l'adresse de l'un des pointeurs (24, 25), et on détecte le sens de franchissement d'un seuil associé aux décalages d'après l'ordre dans lequel se produisent les identités correspondantes.3.- Method according to one of claims 1 and 2, in which two shifts of the address of one of the pointers (24, 25) are generated, and the direction of crossing a threshold associated with the shifts is detected. according to the order in which the corresponding identities occur. 4.-Procédé selon la revendication 3, dans lequel on engendre une paire de décalages pour la détection du franchissement du seuil de remplissage dans un sens et on engendre une paire différente de décalages pour la détection du franchissement, dans l'autre sens, d'un autre seuil.4. A method according to claim 3, in which a pair of offsets is generated for the detection of the crossing of the filling threshold in one direction and a different pair of offsets is generated for the detection of the crossing, in the other direction, d 'another threshold. 5.- Dispositif de gestion d'une mémoire élastique, pour la mise en oeuvre du procédé de la revendication 1, agencé pour écrire et lire dans une zone de données de taille variable (12) délimitée par deux pointeurs (4, 5) d'adresses (23, 21) à l'intérieur d'une plage d'adresses, caractérisé par le fait qu'il comporte des moyens (6) pour décaler l'adresse de l'un des pointeurs (5) et des moyens comparateurs (8) pour détecter l'identité entre l'adresse décalée (24; 25) et une adresse (23) correspondant à 1' autre pointeur (4).5.- Device for managing an elastic memory, for implementing the method of claim 1, arranged to write and read in a data area of variable size (12) delimited by two pointers (4, 5) d 'addresses (23, 21) within an address range, characterized in that it comprises means (6) for shifting the address of one of the pointers (5) and comparator means (8) to detect the identity between the offset address (24; 25) and an address (23) corresponding to the other pointer (4). 6.- Dispositif selon la revendication 5, dans lequel il est prévu des moyens de comptage (4, 5, 6) selon le code de Gray, pour fournir les pointeurs d'adresses.6.- Device according to claim 5, wherein there is provided counting means (4, 5, 6) according to the Gray code, to provide the address pointers. 7.- Dispositif selon la revendication 6, dans lequel les moyens de comptage comportent au moins deux compteurs selon le code de7.- Device according to claim 6, wherein the counting means comprise at least two counters according to the code Gray, à commande d'avance commune (5, 6), agencés pour présenter entre eux ledit décalage d'adresses (15).Gray, with common advance control (5, 6), arranged to present between them said address offset (15). 8.- Dispositif selon la revendication 7, dans lequel les moyens comparateurs comportent, en sortie des compteurs (4, 6), des portes8.- Device according to claim 7, wherein the comparator means comprise, at the output of the counters (4, 6), doors OU exclusif (81 - 88) de comparaison d'adresses bit à bit.Exclusive OR (81 - 88) for bit-by-bit address comparison. 9.- Dispositif selon la revendication 8, dans lequel les portes OU exclusif (81 - 88), montées en parallèle, sont reliées à l'entrée d'une porte OU (89). 9.- Device according to claim 8, wherein the exclusive OR gates (81-88), mounted in parallel, are connected to the input of an OR gate (89).
FR9712473A 1997-10-07 1997-10-07 METHOD FOR MANAGING AN ELASTIC MEMORY AND DEVICE FOR IMPLEMENTING THE METHOD Expired - Fee Related FR2769387B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR9712473A FR2769387B1 (en) 1997-10-07 1997-10-07 METHOD FOR MANAGING AN ELASTIC MEMORY AND DEVICE FOR IMPLEMENTING THE METHOD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9712473A FR2769387B1 (en) 1997-10-07 1997-10-07 METHOD FOR MANAGING AN ELASTIC MEMORY AND DEVICE FOR IMPLEMENTING THE METHOD

Publications (2)

Publication Number Publication Date
FR2769387A1 true FR2769387A1 (en) 1999-04-09
FR2769387B1 FR2769387B1 (en) 2001-08-10

Family

ID=9511906

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9712473A Expired - Fee Related FR2769387B1 (en) 1997-10-07 1997-10-07 METHOD FOR MANAGING AN ELASTIC MEMORY AND DEVICE FOR IMPLEMENTING THE METHOD

Country Status (1)

Country Link
FR (1) FR2769387B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2375196A (en) * 2001-02-14 2002-11-06 Canon Kk Method for optimisation of memory storage by measuring filling

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4040027A (en) * 1975-04-25 1977-08-02 U.S. Philips Corporation Digital data transfer system having delayed information readout from a first memory into a second memory
US5084841A (en) * 1989-08-14 1992-01-28 Texas Instruments Incorporated Programmable status flag generator FIFO using gray code

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4040027A (en) * 1975-04-25 1977-08-02 U.S. Philips Corporation Digital data transfer system having delayed information readout from a first memory into a second memory
US5084841A (en) * 1989-08-14 1992-01-28 Texas Instruments Incorporated Programmable status flag generator FIFO using gray code

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2375196A (en) * 2001-02-14 2002-11-06 Canon Kk Method for optimisation of memory storage by measuring filling
GB2375196B (en) * 2001-02-14 2003-12-17 Canon Kk Method for optimizing the use of a storage means and devices and switching nodes for implementing the same

Also Published As

Publication number Publication date
FR2769387B1 (en) 2001-08-10

Similar Documents

Publication Publication Date Title
EP0113307B1 (en) Alignment circuit for fixed-length digital information blocks
FR2748171A1 (en) METHOD FOR GENERATING A CLOCK SIGNAL FOR USE IN A DATA RECEIVER, CLOCK GENERATOR, DATA RECEIVER AND REMOTE CONTROL ACCESS SYSTEM FOR VEHICLES
EP0094322B1 (en) High-rate coupler between a pcm multiplex and a packet switch
EP0298546B1 (en) System for the transmission of a series of digital samples coded by binary words with variable lengths
EP0051019B1 (en) Counting device for high-frequency pulses
EP0041001B1 (en) Bit-by-bit time-division digital switching networks
EP0041895B1 (en) Method and device for the transmission of digital data packets
EP0136757A2 (en) Transceiver station for a frequency hopping information transmission system
EP0162174A1 (en) Buffer device used in a voice transmission network
EP0621703A1 (en) Method and circuit for clockrecovery and synchronisation for the reception of information transmitted via an ATM network
EP0400520B1 (en) Receiving signal drop-out detecting device for digital signal receiver
EP0298810A1 (en) Method and device for the aquisition of synchronisation bits in data transmission systems
FR2769387A1 (en) Management of a variable memory buffer for computer communications
EP0064923B1 (en) System for the phase synchronization of digital data streams, and its application to the commutation of said data streams
EP0848517A1 (en) Data transmission frame and method and device for sending and receiving such a frame
EP0384536B1 (en) Method and device for bit synchronisation in a digital data receiver
EP0018618B1 (en) Multiplex synchronisation device in a tdm exchange
EP0211438A1 (en) Apparatus for transmitting packets in an asynchronous time network and method for coding the silences
EP0123573B1 (en) Method for the adaptive coding and decoding of a television picture, and device for carrying out such a method
EP0029923A1 (en) Buffer memory control circuit
EP0343083B1 (en) Loss of synchronisation detection device, and its use in a digital transmission network
EP0298793B1 (en) Circuit for storing availability states of logic resources such as memory cells, and for setting up addresses of free resources
EP0094865A2 (en) Packet mode data transmitter and receiver
FR2884035A1 (en) System on chip for forming complex circuit on silicon chip, has transmitter circuit with data bus connecting receiver circuit`s input port to transmitter circuit`s output port, and two links connecting terminals of circuits
EP0417681B1 (en) Dual mode synchronisation device, in particular for the recovery of the frame-clock phase in a half-duplex transmission system

Legal Events

Date Code Title Description
CA Change of address
CD Change of name or company name
TP Transmission of property
ST Notification of lapse

Effective date: 20080630