FR2845784A1 - Dispositif de memorisation de donnees de type lifo incorporant deux memoires a acces aleatoire - Google Patents

Dispositif de memorisation de donnees de type lifo incorporant deux memoires a acces aleatoire Download PDF

Info

Publication number
FR2845784A1
FR2845784A1 FR0212663A FR0212663A FR2845784A1 FR 2845784 A1 FR2845784 A1 FR 2845784A1 FR 0212663 A FR0212663 A FR 0212663A FR 0212663 A FR0212663 A FR 0212663A FR 2845784 A1 FR2845784 A1 FR 2845784A1
Authority
FR
France
Prior art keywords
output
input
address
during
equal
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
FR0212663A
Other languages
English (en)
Other versions
FR2845784B1 (fr
Inventor
Pascal Urard
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.)
STMicroelectronics SA
Original Assignee
STMicroelectronics SA
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 STMicroelectronics SA filed Critical STMicroelectronics SA
Priority to FR0212663A priority Critical patent/FR2845784B1/fr
Priority to US10/669,886 priority patent/US7139865B2/en
Publication of FR2845784A1 publication Critical patent/FR2845784A1/fr
Application granted granted Critical
Publication of FR2845784B1 publication Critical patent/FR2845784B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • G06F7/785Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using a RAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/768Data position reversal, e.g. bit reversal, byte swapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Complex Calculations (AREA)

Abstract

Un dispositif de mémorisation de données de type LIFO de profondeur 2N, N étant un nombre entier, comprend deux mémoires à accès aléatoire (10, 20) ayant chacune au moins 2N-1 emplacements pour stocker des données. Un contrôleur (1) commande la lecture et l'écriture des données dans l'une ou l'autre des deux mémoires, ou la transmission directe de données à des moyens de multiplexage (30, 40). Des sorties des deux mémoires sont aussi reliées aux moyens de multiplexage et la sortie du dispositif est connectée aux moyens de multiplexage par un échantillonneur (50).

Description

DISPOSITIF DE MEMORISATION DE DONNEES DE TYPE LIFO
INCORPORANT DEUX MEMOIRES A ACCES ALEATOIRE
La présente invention concerne un dispositif de mémorisation LIFO
(" Last In, First Out "), autrement connu sous la désignation de pile inverse.
Un dispositif de mémorisation de type LIFO est caractérisé par une profondeur P, P étant un nombre entier pouvant être de la forme 2N, N étant un entier. Le dispositif a pour fonction de mémoriser une succession de données produites par une source de données selon un ordre chronologique déterminé, et de restituer ces données par séquences successives de P données, l'ordre 10 chronologique de restitution des données à l'intérieur de chaque séquence étant inverse de l'ordre chronologique de production des données par la source. La mémorisation par le dispositif de données produites par la source est poursuivie simultanément à la restitution des données, d'une façon cadencée selon une suite d'intervalles de temps successifs définis par ailleurs. 15 Ainsi, en régime de fonctionnement établi du dispositif de mémorisation, un enregistrement d'une donnée et une restitution d'une autre donnée sont opérés
à chaque intervalle de temps.
De façon connue de l'Homme du Métier, un dispositif de mémorisation de type LIFO de profondeur P peut être constitué de deux mémoires à accès 20 aléatoire et à port unique (ou mémoire " SP-RAM " pour " Single Port Random Access Memory "), identiques et à P adresses chacune, auxquelles sont adressées les séquences de P données. Dans ce type de dispositif, les données d'une même séquence peuvent être adressées à une même mémoire, en alternant entre les deux mémoires RAM pour deux séquences 25 successives de données. Ainsi, à chaque intervalle de temps du cadencement du fonctionnement du dispositif de mémorisation, une donnée d'une séquence en cours de production par la source de données est inscrite dans l'une des deux SP-RAMs, alors qu'une autre donnée de la séquence de données immédiatement antérieure est simultanément lue dans l'autre SP-RAM. Pour 30 obtenir le fonctionnement en pile inverse, la lecture dans chaque SP-RAM est effectuée suivant un ordre des adresses de cette SP-RAM inverse de l'ordre des mêmes adresses suivant lequel les données ont été préalablement -2
inscrites dans cette SP-RAM.
Ce type de dispositif de mémorisation nécessite par conséquent deux SPRAMs, chacune d'elles ayant au moins autant d'adresses que la profondeur P du dispositif. Cette capacité importante de mémorisation engendre un cot 5 important, d en particulier à la surface de substrat semiconducteur nécessaire
pour réaliser les modules de mémoire correspondants.
La capacité de mémorisation nécessaire pour un dispositif de mémorisation de type LIFO de profondeur P peut être réduite à une seule mémoire RAM à P adresses, en utilisant une mémoire de type DP-RAM (ou 10 " Dual Port- RAM "). A chaque intervalle de temps du cadencement du fonctionnement du dispositif de mémorisation, une donnée d'une séquence en cours de production par la source de données peut alors être inscrite dans la DPRAM simultanément à la lecture dans cette DP-RAM d'une autre donnée de la séquence de données immédiatement antérieure. Cette écriture et cette 15 lecture sont effectuées à deux adresses successives selon un ordre de
parcours des adresses de la DP-RAM. Pour obtenir le fonctionnement en pile inverse, les données d'une même séquence sont inscrites puis lues dans la DP-RAM en parcourant les adresses de la DP-RAM selon des ordres inverses entre l'écriture et la lecture des données de cette séquence. Dans ces 20 conditions, un seul module de mémoire à P adresses est suffisant.
Un inconvénient de ce dernier mode de réalisation de dispositifs de mémorisation de type LIFO réside dans l'utilisation de modules de mémoire DP-RAM. En effet, les modules de mémoire DP-RAM sont plus chers et plus volumineux que les modules de mémoire SP-RAM, pour une même capacité 25 de mémorisation. Ils sont donc particulièrement pénalisants pour la réalisation
de circuits peu chers et de dimensions réduites.
La présente invention a pour but de proposer un dispositif de
mémorisation de type LIFO de profondeur P=2N, N étant un nombre entier, comprenant deux mémoires RAM pouvant chacune avoir à partir de P/2 30 adresses d'enregistrement de données.
Un dispositif de mémorisation selon l'invention comprend: -3 - deux mémoires à accès aléatoire ayant chacune au moins 2N-1 emplacements pour stocker des données à des adresses respectives, N étant un entier supérieur à 1, une entrée de données reliée à une source de données, une entrée de commande, une entrée d'adresse et une sortie; - des moyens de multiplexage ayant des première et seconde entrées de données respectivement reliées aux sorties de données des deux mémoires, une troisième entrée de données reliée à la source de données et une sortie reproduisant des données présentes à l'une desdites première, seconde et troisième entrées de données sélectionnée par des signaux 10 d'aiguillage; - un contrôleur pour délivrer, dans des intervalles de temps successifs, des signaux électriques sur des sorties du contrôleur incluant deux sorties de commande d'accès respectivement reliées aux entrées de commande des deux mémoires, deux sorties d'adresse respectivement reliées 15 aux entrées d'adresse des deux mémoires et au moins une sortie de commande d'aiguillage pour délivrer lesdits signaux d'aiguillage; et - des moyens pour échantillonner la sortie des moyens de multiplexage au début de chaque intervalle de temps et produire des données
de sortie du dispositif.
Dans le dispositif de mémorisation de l'invention, le contrôleur est agencé pour délivrer, au cours de deux séquences consécutives de 2N intervalles de temps: - sur chacune des deux sorties de commande d'accès, et pour au moins des intervalles de temps distincts des limites des deux séquences, des 25 commandes d'accès alternativement en lecture et en écriture, une commande d'accès en écriture étant délivrée sur l'une desdites sorties de commande d'accès pendant qu'une commande d'accès en lecture est délivrée sur l'autre sortie de commande d'accès et vice-versa; - sur chacune des deux sorties d'adresse, des adresses croissant 30 au cours de l'une des deux séquences et décroissant au cours de l'autre séquence, de telle sorte que, pour au moins des intervalles de temps distincts des limites des deux séquences, l'entrée d'adresse de chaque mémoire reçoive - 4 la même adresse au cours de deux intervalles de temps consécutifs de chaque séquence pendant lesquels l'entrée de commande de ladite mémoire reçoit une commande d'accès en lecture puis une commande d'accès en écriture; et - sur chaque sortie de commande d'aiguillage, des signaux 5 d'aiguillage réglés pour qu'au cours de chaque séquence, les moyens d'échantillonnage produisent des données issues de la source dans un ordre chronologique inverse de l'ordre chronologique d'arrivée desdites données
depuis la source.
Un premier avantage d'un dispositif de mémorisation selon l'invention 10 réside dans sa consommation énergétique particulièrement réduite. Cette consommation réduite résulte notamment de son fonctionnement possible avec un total de 2N emplacements de mémoire seulement, c'est-à-dire autant que la
profondeur de la pile inverse correspondante, telle que définie plus haut.
Un second avantage d'un dispositif de mémorisation selon l'invention 15 réside dans son fonctionnement possible avec des mémoires de type SP-RAM.
Il en résulte une économie importante de surface de substrat semiconducteur,
et par conséquent un cot particulièrement bas du dispositif.
Un dispositif de mémorisation selon l'invention peut être utilisé pour des données de types variés. En particulier, les données peuvent être des 20 successions de bits telles que des octets, des programmes ou des collections
d'éléments d'information devant être produits selon un ordre chronologique inverse de celui d'arrivée de ces mêmes données depuis une source adaptée à chaque type de données. Les deux mémoires du dispositif doivent alors présenter des emplacements de dimension adaptée au type de données 25 mémorisées.
Dans un mode de réalisation préféré de l'invention, les signaux d'aiguillage sont délivrés de façon que la sortie des moyens de multiplexage reproduise des données présentes à ladite troisième entrée de données, et ce pendant au moins un intervalle de temps situé à une limite de chaque 30 séquence. Dans ce mode de réalisation et durant les intervalles de temps concernés, les données délivrées par la source sont reproduites à la sortie des moyens de multiplexage avec un retard d aux moyens de multiplexage - 5 seulement. Le retard introduit par le dispositif de mémorisation entre les séquences de données produites à la sortie des moyens de multiplexage et les séquences des mêmes données délivrées par la source est alors minimal, tout
en étant compatible avec le fonctionnement de pile inverse.
Des dispositifs de mémorisation selon l'invention peuvent être réalisés avec différents types de mémoires, dont, en particulier, des mémoires SPRAM à lecture différée ou immédiate. Pour des mémoires SP-RAM à lecture différée, les données lues sont produites sur la sortie de la mémoire pendant l'intervalle de temps suivant immédiatement l'intervalle de temps durant lequel l'entrée de 10 commande de ladite mémoire reçoit une commande d'accès en lecture et l'entrée d'adresse de ladite mémoire reçoit une adresse. Ce premier type de mémoires permet un fonctionnement particulièrement rapide du dispositif de mémorisation. Par opposition, des données lues dans une mémoire SP-RAM à lecture immédiate sont produites sur la sortie de la mémoire pendant le même 15 intervalle de temps durant lequel l'entrée de commande reçoit une commande
d'accès en lecture et l'entrée d'adresse reçoit une adresse. Ce second type de mémoires peut être adapté pour des dispositifs de mémorisation incorporés à des circuits comprenant par ailleurs des modules de mémoire de ce type. Il est en effet parfois avantageux d'utiliser un type de mémoires unique à l'intérieur 20 d'un même circuit.
L'invention concerne aussi un procédé de mémorisation et de restitution de données utilisant un dispositif de mémorisation tel que décrit précédemment.
D'autres particularités et avantages de la présente invention 25 apparaîtront dans la description ci-après de deux exemples de réalisation non
limitatifs, en référence aux dessins annexés, dans lesquels: - la figure 1 représente l'architecture d'un dispositif de mémorisation selon la présente invention; - la figure 2 est un schéma fonctionnel d'un contrôleur adapté pour un 30 dispositif de mémorisation selon la figure 1 utilisant des mémoires de type SP-RAM à lecture différée; -6 - la figure 3 est un schéma fonctionnel d'un contrôleur adapté pour un dispositif de mémorisation selon la figure 1 utilisant des mémoires de
type SP-RAM à lecture immédiate.
L'architecture de circuit de la figure 1 est commune aux deux modes de 5 réalisation décrits par la suite. Le premier mode de réalisation utilise deux modules de mémoire de type SP-RAM à lecture différée, et le second mode de réalisation utilise deux modules de mémoire de type SP-RAM à lecture immédiate. Selon la figure 1, le dispositif de mémorisation possède une entrée de 10 données E connectée à une source de données référencée 1000. Cette entrée
de données E est reliée par des bus de données respectifs à l'entrée de données 18 d'une première mémoire 10 de l'un des types cités ci-dessus, à l'entrée de données 19 d'une seconde mémoire 20 du même type, et à une première entrée de données 41 d'un multiplexeur 40, noté MUX2 sur la figure 15 1. Les deux mémoires sont notées RAM1 et RAM2 sur la figure 1.
Les sorties des deux mémoires 10, 20 sont reliées respectivement par
des bus de données à une première entrée 31 et à une seconde entrée 32 d'un multiplexeur 30, noté MUXI sur la figure 1. La sortie de données du multiplexeur 30 (MUX1) est connectée à une seconde entrée de données 42 20 du multiplexeur 40 (MUX2).
La sortie du multiplexeur 40 (MUX2) est connectée à l'entrée 51 d'une porte D référencée 50 sur la figure 1, dont la sortie 52 constitue la sortie de
données S du dispositif de mémorisation de données.
Selon un fonctionnement explicité dans la suite, les données délivrées 25 par la source 1000 sont réparties entre un premier groupe de données, notées DONNEES1 sur la figure 1, qui transitent par la mémoire 10, un second groupe de données, notées DONNEES2, qui transitent par la mémoire 20, et des données transmises directement entre l'entrée E du dispositif et le multiplexeur
(MUX 2).
Une horloge non représentée et reliée au contrôleur 1, aux deux multiplexeurs 30, 40 et à la porte D 50 cadence le fonctionnement général du dispositif selon une suite d'intervalles de temps définie. Eventuellement le -7 cadencement du fonctionnement peut aussi être défini par des signaux d'interrogation et de déclenchement transmis à certains composants du
dispositif de mémorisation.
Un contrôleur 1 chargé du pilotage du dispositif de mémorisation possède les sorties suivantes: - une première et une seconde sorties de commande d'accès 12 et 13 reliées à des entrées de commande respectives de la mémoire 10 (RAMi) et de la mémoire 20 (RAM2). Chacune des sorties 12, 13 transmet une commande d'accès binaire, respectivement R/Wl ou RW2, pendant chaque 10 intervalle de temps. A titre d'exemple, une valeur 0 commande un accès en écriture dans la mémoire 10, 20 concernée, et une valeur 1 commande un accès en lecture; - une première et une seconde sorties d'adresse 14 et 15 reliées à des entrées d'adresse respectives des mémoires 10 et 20 par des bus 15 d'adresses respectifs. Les adresses ADDR1 et ADDR2 des mémoires 10 et 20 ainsi transmises sont codées par le contrôleur 1 sur N-1 bits, entre 0 et 2N1-1 - une première et une seconde sorties de commande d'aiguillage 16 et 17 reliées aux entrées de commande d'aiguillage respectives des multiplexeurs 30 et 40. A titre d'exemple, des signaux d'aiguillage AIG1 et AIG2 20 produits respectivement sur les sorties 16 et 17 ont chacun, pour chaque
intervalle de temps, une valeur binaire 0, lorsque la sortie du multiplexeur 30/40 concerné est destinée à reproduire la donnée reçue sur ladite première entrée 31/41 de ce multiplexeur, ou une valeur binaire 1 lorsque la sortie de ce multiplexeur 30/40 est destinée à reproduire la donnée reçue sur ladite 25 seconde entrée 32/42 de ce multiplexeur.
Par ailleurs, chaque multiplexeur 30/40 reproduit instantanément sur sa sortie les données reçues sur sa première entrée 31/41 ou sur sa seconde entrée 32/42 en fonction du signal d'aiguillage AIGi/AIG2 transmis sur son entrée de commande d'aiguillage. Ainsi, pour chaque intervalle de temps, la 30 sortie de chaque multiplexeur 30, 40 reproduit les données reçues pendant ce
même intervalle de temps sur l'une de ses deux entrées.
L'invention est maintenant décrite en détail selon un premier mode de -8 réalisation utilisant deux modules de mémoire de type SP-RAM à lecture différée. A l'intérieur du contrôleur 1 correspondant à la figure 2, un compteur cyclique 100 produit un numéro de comptage de l'intervalle de temps en cours. 5 Ce numéro de comptage, sur N+1 bits, c'est-à-dire compris entre 0 et 2N+1_1, reprend à 0 lorsque la valeur 2N+1 est atteinte. Le compteur 100 est synchronisé avec le système de cadencement du fonctionnement du dispositif
global par une liaison non représentée.
Une première branche de circuit interne au contrôleur 1, reliée à la 10 sortie du compteur 100, génère, pour chaque intervalle de temps, l'adresse d'accès ADDR1 à la mémoire 10 (RAMi). Dans cette première branche, un premier numéro partiel de comptage de l'intervalle de temps en cours, sur N-1 bits, est obtenu en retirant le bit de poids le plus fort (MSB ou "Most Significant Bit") et le bit de poids le plus faible (LSB ou "Least Significant Bit") au numéro 15 de comptage délivré par le compteur 100. Ce retrait des bits extrêmes du
numéro de comptage est réalisé par le séparateur 101.
Le premier numéro partiel de comptage est alors adressé directement sur une première entrée d'un multiplexeur 105 interne au contrôleur 1. Un opérateur numérique 103, opérant sur N-1 bits, retranche le premier numéro 20 partiel de comptage au nombre 2N-1-2 et adresse le résultat à une seconde
entrée du multiplexeur 105.
La sortie du multiplexeur 105 est reliée à la sortie 14 du contrôleur 1.
Un séparateur distinct 107, disposé à la sortie du compteur 100, isole le bit de poids le plus fort (MSB) du numéro de comptage de l'intervalle de 25 temps en cours. Ce bit est alors adressé à une entrée de commande du multiplexeur 105, qui reproduit instantanément sur la sortie 14 le signal reçu sur sa première ou sa seconde entrée, respectivement lorsque le bit d'entrée de commande est égal à 0 ou 1. Le signal produit sur la sortie 14 pour chaque
intervalle de temps est l'adresse d'accès ADDR1 à la mémoire 10 (RAMi).
L'adresse ADDR1 ainsi obtenue, codée sur N-1 bits, est égale au premier numéro partiel de comptage pendant les intervalles de temps de numéros respectifs de 0 à 2N_1 et égale à 2N-1-2 dont est retranché le premier -9 numéro partiel de comptage pendant les intervalles de temps de numéros
respectifs de 2N à 2 N+11.
Une seconde branche de circuit interne au contrôleur 1, aussi reliée à la sortie du compteur 100, fournit, pour chaque intervalle de temps, l'adresse 5 d'accès ADDR2 à la mémoire 20 (RAM2). Dans cette seconde branche, un second numéro partiel de comptage de l'intervalle de temps en cours, sur N-1 bits, est obtenu en ajoutant 1, à nombre de bits constant, au numéro de comptage délivré par le compteur 100, puis en retirant le bit de poids le plus fort (MSB) et le bit de poids le plus faible (LSB). Lors de l'addition de 1, 10 effectuée sur N+1 bits, le résultat reprend la valeur 0 lorsque la valeur 2N+1 est atteinte. Le second numéro partiel de comptage est obtenu par l'opérateur 102
représenté sur la figure 2.
Le second numéro partiel de comptage est alors adressé directement sur une première entrée d'un multiplexeur 106 interne au contrôleur 1. Un 1 5 opérateur numérique 104, opérant sur N-1 bits, retranche le second numéro partiel de comptage au nombre 2N-1_1 et adresse le résultat à une seconde
entrée du multiplexeur 106.
La sortie du multiplexeur 106 constitue la sortie 15 du contrôleur 1.
A la sortie de l'opérateur 102, le bit de poids plus fort (MSB) du second 20 numéro partiel de comptage est par ailleurs adressé à une entrée de
commande du multiplexeur 106, qui reproduit instantanément sur la sortie 15 le signal reçu sur sa première ou sa seconde entrée, respectivement lorsque le bit d'entrée de commande est égal à 0 ou 1. Le signal produit sur la sortie 15 pour chaque intervalle de temps est l'adresse d'accès ADDR2 à la mémoire 20 25 (RAM2).
L'adresse ADDR2 ainsi obtenue, codée sur N-1 bits, est égale au
second numéro partiel de comptage pendant les intervalles de temps de numéros respectifs de 0 à 2N-2, ou de numéro 2N+1_1, et égale à 2N-1-1 dont est retranché le second numéro partiel de comptage pendant les intervalles de 30 temps de numéros respectifs de 2N_1 à 2N+1-2, ou de numéro 2N_1.
Un séparateur 109, connecté à la sortie du séparateur 107 et relié par sa sortie aux sorties 16 et 13 du contrôleur 1, isole le bit de poids le plus faible - 10 (LSB) du numéro de comptage de l'intervalle de temps en cours. Le bit délivré par le séparateur 109 constitue alors le signal d'aiguillage AIG1 délivré par la sortie 16 du contrôleur 1, et la commande d'accès RJW2 délivrée par la sortie 13. Un inverseur 110 connecté entre la sortie de l'opérateur 109 et la sortie 12 5 du contrôleur 1 produit la commande d'accès R/Wl. De cette façon, pour chaque intervalle de temps, la commande d'accès R/Wl, codée sur 1 bit, est contraire au bit de poids le plus faible du numéro de comptage de l'intervalle de
temps en cours.
Enfin, un opérateur logique "ET" 111, connecté à la sortie du 10 séparateur 107, reçoit sur son entrée le numéro de comptage de l'intervalle de
temps en cours réduit aux N bits de poids les plus faibles, et le compare à 2N_1.
La sortie de l'opérateur logique 111 est connectée à la sortie 17 du contrôleur
1, fournissant le signal d'aiguillage AIG2.
Le tableau 1 ci-dessous fournit les valeurs des premier et second 15 numéros partiels de comptage, ainsi que les valeurs des sorties 12 à 17 du
contrôleur 1 décrit ci-dessus, pour chaque intervalle de temps. Pour ce tableau, à titre d'exemple, N est pris égal à 3. Une séquence d'intervalles de temps comprend alors 8 intervalles de temps successifs, numérotés de 0 à 7 pour la première séquence par le compteur 100, et de 8 à 15 pour la seconde 20 séquence.
- 11 -
Compteur Premier Second d'intervalles numéro W/R1 ADDR1 AIG1 numéro W/R2 ADDR2 AIG2 de temps partiel (12) (14) (16) partiel (13) (15) (17) (100) (101) (102)
0 00 1 0 0 00 0 0 0
1 00 0 0 1 01 1 0
2 01 1 1 0 01 0 1 0
3 01 0 1 1 10 1 2 0
4 10 1 2 0 10 0 2 0
10 0 2 1 11 1 3 0
6 11 1 3 0 11 0 3 0
7 1 1 0 3 1 00 1 3 1
8 00 1 2 0 00 0 3 0
9 00 0 2 1 01 1 2 0
01 1 1 0 01 0 2 0
1 1 01 0 1 1 10 1 1 0
12 10 1 0 0 10 0 1 0
13 10 0 0 1 11 1 0 0
14 11 1 3 0 1 1 0 0 0
1 1 0 3 1 00 1 0 1
16=0 00 1 0 0 00 0 0 0
Tableau 1
Dans le tableau 1, les premier et second numéros sont indiqués en nombres binaires.
partiels de comptage Comme l'indique la dernière ligne du tableau 1, identique à la ligne 5 correspondant à l'intervalle de temps de numéro 0, I'ensemble des valeurs des compteurs d'intervalles de temps et des sorties 12-17 sont reprises cycliquement, étant toutes obtenues à partir du numéro de comptage cyclique,
de période 2N+'l, délivré par le compteur 100.
Il apparaîtra évident pour l'Homme du Métier que le même tableau de 10 valeurs peut être obtenu avec un contrôleur 1 ayant une structure interne autre que celle décrite plus haut. Il doit donc être entendu que le schéma fonctionnel de la figure 2 ne correspond qu'à un exemple de contrôleur 1 permettant de mettre en oeuvre l'invention, et que tout autre type de contrôleur délivrant des
signaux de sortie identiques doit être considéré comme équivalent.
-12
Chacune des deux mémoires 10, 20 est conçue pour un mode d'accès en écriture ou en lecture respectivement lorsque la commande d'accès R/W1 ou R/W2 correspondante est égale à 0 ou 1.
Le premier multiplexeur 30 est conçu pour reproduire instantanément 5 sur sa sortie le signal appliqué sur sa première ou seconde entrée respectivement lorsque le signal d'aiguillage AIG1 appliqué à l'entrée de commande du multiplexeur 30 est égal à 0 ou 1. Autrement dit, durant chaque intervalle de temps, le signal de sortie du multiplexeur 30 est égal au signal appliqué à l'une de ses deux entrées. Le multiplexeur 40 possède un 10 fonctionnement identique à celui du multiplexeur 30, transposé en fonction du
signal d'aiguillage AIG2.
Dans ces conditions, pour N encore égal à 3, le fonctionnement du dispositif de mémorisation est caractérisé par le tableau 2 suivant, déduit du
tableau 1:
Compteur Sortie Accès Sortie Accès Sortie Sortie Sortie Sortie d'intervalles source RAM1 RAMI1 RAM2 RAM2 MUX1 MUX2 Porte D de temps (1000, E) (12) (31) (13) (32) (42) (51) (52, S) (100) 0 #0 lecture écriture -/#14 -/#14 -/#14 -/#15 1 #1 écriture -/#13 lecture - - / #13 /#13 -/#14 2 #2 lecture - écriture -/#12 -/#12 -/#12 - /#13 3 #3 écriture -/#11 lecture - -/#11 -/#11 -/#12 4 #4 lecture - écriture -/#10 -/#10 /#10 -/ #11 #5 écriture / #9 lecture - - #9 -/ #9 - / #10 6 #6 lecture écriture - / #8 - #8 - #8 -/ #9 7 #7 écriture -/#15 lecture - -/#15 -/#7 /#8 8 #8 lecture - écriture #6 #6 #6 #7 9 #9 écriture #5 lecture - #5 #5 #6 #10 lecture - écriture #4 #4 #4 #5 11 #11 écriture #3 lecture - #3 #3 #4 12 #12 lecture - écriture #2 #2 #2 #3 13 #13 écriture #1 lecture - #1 #1 #2 14 #14 lecture - écriture #0 #0 #0 #1 #15 écriture #7 lecture - #7 #15 #0
Tableau 2
Dans le tableau 2, chaque signe # indique un numéro d'identification - 13
de la donnée concernée, repérée par rapport à l'intervalle de temps pendant lequel la source 1000 a produit cette donnée (deuxième colonne du tableau 2).
Lorsque deux mentions alternatives sont inscrites dans une case du tableau 2, la première mention correspond à la valeur prise lors d'une première exécution 5 du cycle de fonctionnement du dispositif de mémorisation, et la seconde
mention correspond à la valeur prise lorsque le cycle de fonctionnement du dispositif a déjà été préalablement exécuté. Un tiret indiqué à la place d'une mention signifie l'absence de valeur déterminée pour la sortie concernée, ce qui intervient lors d'une première exécution du cycle, ou correspond à une 10 opération n'aboutissant pas à la délivrance d'une valeur déterminée.
En comparant la dernière colonne du tableau 2 indiquant les données successivement délivrées par la sortie S du dispositif aux données produites à l'entrée E (deuxième colonne du tableau 2), on constate que le fonctionnement du dispositif de mémorisation correspond effectivement à celui d'une pile
1 5 inverse de profondeur 2N=23=8.
Il apparaîtra à l'Homme du métier que les valeurs d'adresse ADDR1 et de la commande d'accès R/Wl indiquées dans le tableau 1 pour les intervalles de temps 2N-2, 2Nj1, 2N+1-2 et 2N+1_1 peuvent être remplacées par d'autres valeurs, à condition que ces remplacements soient sans effet sur le contenu de 20 la mémoire 10 inscrit pendant les autres intervalles de temps. Le fonctionnement global en pile inverse du tableau 2 (dernière colonne du tableau 2) reste alors inchangé. De même, les valeurs de ADDR2 et RIW2 indiquées pour les intervalles de temps 2N_1 et 2N+1_1 peuvent être modifiées
dans les mêmes conditions.
Un second mode de réalisation d'un dispositif de mémorisation selon l'invention est maintenant décrit, qui utilise deux modules de mémoire de type SP-RAM à lecture immédiate. L'architecture du dispositif représentée sur la
figure 1 est reprise pour ce second mode de réalisation.
La figure 3 représente le schéma fonctionnel d'un contrôleur 100 30 adapté pour l'utilisation de mémoires SP-RAM à lecture immédiate. Le contrôleur 1 comprend encore des compteurs 100, 101 et 102 basés sur l'intervalle de temps en cours, identiques à ceux décrits dans le premier mode - 14 de réalisation. Les sorties des compteurs 101 et 102 sont respectivement connectées aux premières entrées des multiplexeurs 105 et 106. Par ailleurs, les sorties des compteurs 101 et 102 sont aussi connectées aux entrées de deux opérateurs numériques identiques 103' et 104', opérant chacun sur N-1 5 bits. Les opérateurs 103' et 104' retranchent chacun les valeurs reçues en entrée à 2N-1_1. La sortie de l'opérateur 103' est reliée à la seconde entrée du multiplexeur 106, et celle de l'opérateur 104' est reliée à la seconde entrée du
multiplexeur 105.
Les deux multiplexeurs 105 et 106 reçoivent sur leur entrée de 10 commanderespective le bit de poids le plus fort (MSB) du numéro de comptage de l'intervalle de temps en cours produit par le compteur 100. Ce bit de poids le plus fort (MSB) est isolé par le séparateur 107. Les multiplexeurs 105, 106 sont agencés pour reproduire instantanément sur leur sortie respective le signal reçu sur leur première ou seconde entrée respective, 15 lorsque le signal reçu sur leur entrée de commande est égal à 0 ou 1, respectivement. La sortie du multiplexeur 105 est reliée à la sortie 14 du contrôleur 1, transmettant l'adresse ADDR1, et la sortie du multiplexeur 106 est reliée à la
sortie 15, transmettant l'adresse ADDR2.
Le séparateur 107 délivre par ailleurs les N bits de poids les plus faibles (LSB) du numéro de comptage de l'intervalle de temps en cours à l'opérateur logique "ET" 1 1 1. L'opérateur 1 1 1 compare la valeur reçue à son entrée à 2N_1, et délivre à sa sortie le signal binaire 1 en cas d'égalité, sinon le signal binaire 0. Ce signal binaire est délivré à un inverseur 112, dont la sortie 25 génère le second signal d'aiguillage AIG2 et est reliée à la sortie 17 du
contrôleur 1.
Le séparateur 108 isole le bit de poids le plus faible (LSB) du numéro de comptage de l'intervalle de temps en cours, et est connecté à l'entrée de l'inverseur 113. Les sorties du séparateur 107 et de l'inverseur 113 délivrant 30 respectivement le bit de poids le plus fort (MSB) et un signal binaire contraire au bit de poids le plus faible (LSB) du numéro de comptage de l'intervalle de temps en cours sont reliées aux entrées de l'opérateur logique 114, opérant - 15 I'opération logique "ou exclusif", notée "OU_EX". Un opérateur logique "OU" 115 reçoit en entrées les signaux binaires produits par les opérateurs 111 et 114, et produit en sortie la commande d'accès R/W1 transmise sur la sortie 12 du contrôleur 1. Enfin, un inverseur 116 produit la commande d'accès R/W2 à 5 partir du signal de sortie de l'opérateur 115, et est connecté à la sortie 13 du contrôleur 1. Le signal AIG1 transmis sur la sortie 16 est identique à la
commande d'accès R/W2.
Ainsi, les commandes d'accès R/W1 et R/W2 correspondent, pour chaque intervalle de temps, aux expressions respectives: R/W1=[cc(0)) OU_EX C(N)) ] OU C[AIG2], et R/W2=[C(0) OU_EX C(N)] OU C[AIG2], avec: C(0) est le bit de poids le plus faible (LSB) de l'intervalle de temps en cours, C(N) est le bit de poids le plus fort (MSB) de l'intervalle de temps en cours, cX désigne la valeur contraire de la variable binaire X. On peut aussi utiliser: R/W2=CR/W1, R/W1 étant encore donné par la
première des deux formules ci-dessus.
Eventuellement, I'opérateur "OU" 115 peut être supprimé, ainsi que sa connexion à l'entrée de l'opérateur 112. La sortie de l'opérateur "OU_EX" 114 est alors directement connectée aux sorties 12 et 16 du contrôleur 1 et à 20 I'entrée de l'inverseur 116. Les formules précédentes deviennent alors: R/Wl=[cC(0)) OU_EX C(N))], et R/w2=CR/W1. Le tableau I bis cidessous correspond au tableau 1, transposé au second mode de réalisation, N étant encore pris égal à 3, à titre d'exemple: - 16- Compteur Premier Second d'intervalles numéro W/R1 ADDR1 AIG1 numéro W/R2 ADDR2 AIG2 de temps partiel (12) (14) (16) partiel (13) (15) (17)
(100) (101) (102)
0 00 1 0 0 00 0 0 1
1 00 0 0 1 01 1 1 1
2 01 1 1 0 01 0 1 1
3 01 0 1 1 10 1 2 1
4 10 1 2 0 10 0 2 1
10 0 2 1 11 1 3 1
6 11 1 3 0 11 0 3 1
7 1 1 0 3 1 00 1 0 0
8 00 0 3 1 00 1 3 1
9 00 1 2 0 01 0 3 1
01 0 2 1 01 1 2 1
1 1 01 1 1 0 10 0 2 1
12 10 0 1 1 10 1 1 1
13 10 1 0 0 11 0 1 1
14 1 1 0 0 1 1 1 1 0 1
11 1 3 0 00 0 0 0
16=0 00 1 0 0 00 0 0 1
Tableau 1 bis
Les mémoires 10 et 20 ainsi que les multiplexeurs 30 et 40 ont chacun des fonctionnements identiques à ceux décrits pour le premier mode de réalisation. Le tableau 2bis ci-dessous est alors déduit du tableau Ibis en référence à la figure 1: - 17- Compteur d'intervalles Sortie Accès Sortie Accès Sortie Sortie Sortie Sortie e ems source RAM1 RAM1 RAM2 RAM2 MUX1 MUX2 Porte D d(100) (1000, E) (12) (31) (13) (32) (42) (51) (52, S) 0 #0 lecture -/#14 écriture - -/#14 - / #14 - / #15 1 #1 écriture - lecture -/#13 -/#13 - / #13 - / #14 2 #2 lecture -/#12 écriture - -/#12 - / #12 -/#13 3 #3 écriture - lecture -/#11 -/#11 -/#11 -/#12 4 #4 lecture - / #10 écriture - / #10 - / #10 - / #11 #5 écriture - lecture -/ #9 /#9 - /#9 -/#10 6 #6 lecture -I#8 écriture - I#8 -/#8 /X#9 7 #7 écriture - lecture / #0 -/#0 - / #7 -I#8 8 #8 écriture - lecture #6 #6 #6 #7 9 #9 lecture #5 écriture - #5 #5 #6 #10 écriture - lecture #4 #4 - #4 #5 11 #11 lecture #3 écriture - #3 #3 #4 12 #12 écriture - lecture #2 #2 #2 #3 13 #13 lecture #1 écriture - #1 #1 #2 14 #14 écriture - lecture #0 #0 #0 #1 #15 écriture - lecture #0 #0 #15 #0
Tableau 2bis
Il apparaîtra évident à l'Homme du métier au regard des tableaux Ibis et 2bis que les valeurs des commandes d'accès et d'adresses R/W1, ADDR1, R/W2 et ADDR2 peuvent être remplacées par des valeurs sans effet sur le 5 contenu des mémoires 10, 20 pour les instants 2N-1 et 2N+1-1. Les données délivrées à chaque intervalle de temps par le dispositif de mémorisation restent
alors identiques.
Le second mode de réalisation correspond bien encore à un fonctionnement de pile inverse de profondeur 2N Il est entendu que, pour les deux modes de réalisation décrits, les mémoires 10, 20 et les multiplexeurs 30, 40, 105 et 106 peuvent être remplacés par des éléments analogues pour lesquels les commandes d'accès ou les signaux d'aiguillage sont inverses de ceux cités plus haut. Le contrôleur 1 doit alors être adapté en conséquence, sans que le principe de l'invention et 15 l'architecture du dispositif de mémorisation représentée sur la figure 1 soient modifiés. - 18

Claims (12)

R E V E N D I C A T I O N S
1. Dispositif de mémorisation comprenant: - deux mémoires à accès aléatoire (10, 20) ayant chacune au moins 2N-1 emplacements pour stocker des données à des adresses 5 respectives, N étant un entier supérieur à 1, une entrée de données (18, 19) reliée à une source de données (1000), une entrée de commande, une entrée d'adresse et une sortie; - des moyens de multiplexage (30, 40) ayant des première et seconde entrées de données (31, 32) respectivement reliées aux sorties de 10 données des deux mémoires (10, 20), une troisième entrée de données reliée à la source de données (1000) et une sortie (51) reproduisant des données présentes à l'une desdites première, seconde et troisième entrées de données sélectionnée par des signaux d'aiguillage; - un contrôleur (1) pour délivrer, dans des intervalles de temps 15 successifs, des signaux électriques sur des sorties du contrôleur incluant deux sorties de commande d'accès (12, 13) respectivement reliées aux entrées de commande des deux mémoires (10, 20), deux sorties d'adresse (14,15) respectivement reliées aux entrées d'adresse des deux mémoires et au moins une sortie de commande d'aiguillage (16, 17) pour délivrer lesdits signaux 20 d'aiguillage; et - des moyens (50) pour échantillonner la sortie des moyens de multiplexage (30, 40) au début de chaque intervalle de temps et produire des données de sortie du dispositif, dans lequel le contrôleur (1) est agencé pour délivrer, au cours de 25 deux séquences consécutives de 2N intervalles de temps: - sur chacune des deux sorties de commande d'accès (12, 13), et pour au moins des intervalles de temps distincts des limites des deux séquences, des commandes d'accès (RIW1, RIW2) alternativement en lecture et en écriture, une commande d'accès en - 19 écriture étant délivrée sur l'une desdites sorties de commande d'accès pendant qu'une commande d'accès en lecture est délivrée sur l'autre sortie de commande d'accès et vice-versa; - sur chacune des deux sorties d'adresse (14,15), des 5 adresses (ADDR1, ADDR2) croissant au cours de l'une des deux séquences et décroissant au cours de l'autre séquence, de telle sorte que, pour au moins des intervalles de temps distincts des limites des deux séquences, l'entrée d'adresse de chaque mémoire reçoive la même adresse au cours de deux intervalles de temps consécutifs de 10 chaque séquence pendant lesquels l'entrée de commande de ladite mémoire reçoit une commande d'accès en lecture puis une commande d'accès en écriture; et - sur chaque sortie de commande d'aiguillage, des signaux d'aiguillage (AIG1, AIG2) réglés pour qu'au cours de chaque 1 5 séquence, les moyens d'échantillonnage (50) produisent des données issues de la source (1000) dans un ordre chronologique inverse de
l'ordre chronologique d'arrivée desdites données depuis la source.
2. Dispositif selon la revendication 1, dans lequel, pendant au moins un intervalle de temps situé à une limite de chaque séquence, les signaux 20 d'aiguillage sont délivrés de façon que la sortie des moyens de multiplexage
(51) reproduise des données présentes à ladite troisième entrée de données.
3. Dispositif selon l'une quelconque des revendications précédentes,
dans lequel le contrôleur (1) est agencé pour coder les adresses de chaque
mémoire sur N-1 bits.
4. Dispositif selon l'une quelconque des revendications précédentes,
dans lequel les moyens de multiplexage comprennent: - un premier multiplexeur (30) ayant: - une entrée de commande d'aiguillage reliée à une première sortie de commande d'aiguillage (16) du contrôleur (1), - une première (31) et une seconde (32) entrées de données reliées respectivement aux sorties des deux mémoires (10, 20), et - une sortie reproduisant les signaux de la première ou de la seconde entrée dudit premier multiplexeur selon un premier signal 5 d'aiguillage (AIGI) appliqué à l'entrée de commande dudit premier multiplexeur; - un second multiplexeur (40) ayant: - une entrée de commande d'aiguillage reliée à une seconde sortie de commande d'aiguillage (17) du contrôleur (1), - une première (41) et une seconde (42) entrées de données reliées respectivement à la source de données (1000) et à la sortie du premier multiplexeur (30), et - une sortie (51) reproduisant les signaux de la première ou de la seconde entrée dudit second multiplexeur selon un second 15 signal d'aiguillage (AIG2) appliquée à l'entrée de commande dudit
second multiplexeur.
5. Dispositif selon la revendication 4, dans lequel le contrôleur (1) est agencé de façon à ce que le premier signal d'aiguillage (AIGII) et la commande d'accès (R/Wl / RJW2) délivrée par le contrôleur à l'une des deux mémoires 20 (10 / 20) soient des signaux binaires identiques entre eux, pour au moins des
intervalles de temps distincts des limites des deux séquences.
6. Dispositif selon l'une quelconque des revendications précédentes,
dans lequel les moyens (50) pour échantillonner la sortie des moyens de multiplexage (30, 40) comprennent une bascule D.
7. Dispositif selon l'une quelconque des revendications 1 à 6, dans
lequel les deux mémoires (10, 20) sont des mémoires à lecture différée, les données lues dans chaque mémoire étant produites sur la sortie de ladite mémoire pendant l'intervalle de temps suivant immédiatement l'intervalle de - 21 temps durant lequel l'entrée de commande de ladite mémoire reçoit une commande d'accès en lecture et l'entrée d'adresse de ladite mémoire reçoit
une adresse.
8. Dispositif selon les revendications 4 et 7, dans lequel le contrôleur
(1) comprend: - un compteur cyclique (100) des intervalles de temps des deux séquences consécutives, agencé pour produire un numéro sur N+1 bits, entre 0 et 2N+1_1 de comptage de l'intervalle de temps en cours; - des moyens (109, 110) pour générer sur une première sortie de 10 commande d'accès (12) reliée à une première des deux mémoires (10) une première commande d'accès binaire (R/Wl) contraire au bit de poids le plus faible du numéro de comptage de l'intervalle de temps en cours, pendant les intervalles de temps de numéros respectifs de 0 à 2N-3 et de 2N à 2N+1-3; - des moyens (109) pour générer la seconde commande d'accès 15 (R/W2) sur une seconde sortie de commande d'accès (13) reliée à la seconde des deux mémoires (20) sous forme du bit de poids le plus faible du numéro de comptage de l'intervalle de temps en cours, pendant les intervalles de temps de numéros respectifs de 0 à 2N-2 et de 2N 2 N+1-2; - des moyens (101) pour produire, pendant chaque intervalle de 20 temps, un premier numéro partiel de comptage d'intervalles de temps sur N-1 bits, égal au numéro de comptage de l'intervalle de temps en cours auquel le bit de poids le plus fort et le bit de poids le plus faible ont été retirés; des moyens (103, 105) pour générer sur une première sortie d'adresse (14) reliée à l'entrée d'adresse de ladite première mémoire (10) une 25 adresse (ADDR1) égale au premier numéro partiel de comptage pendant les intervalles de temps de numéros respectifs de 0 à 2NN-3, et égale à 2N-12 dont est retranché le premier numéro partiel de comptage pendant les intervalles de temps de numéros respectifs de 2N 2 N+1 -3; - des moyens (102) pour produire, pendant chaque intervalle de 30 temps, un second numéro partiel de comptage d'intervalles de temps sur N-1 - 22 bits, égal au numéro de comptage de l'intervalle de temps en cours, auquel 1 est additionné, puis auquel le bit de poids le plus fort et le bit de poids le plus faible ont été ensuite retirés; - des moyens (104, 106) pour générer sur une seconde sortie 5 d'adresse (15) reliée à l'entrée d'adresse de ladite seconde mémoire (20) une adresse (ADDR2) égale au second numéro partiel de comptage pendant les intervalles de temps de numéros respectifs de 0 à 2N-2, et égale à 2N-1-1 dont est retranché le second numéro partiel de comptage pendant les intervalles de temps de numéros respectifs de 2N à 2N+1-2; - des moyens pour générer sur la première sortie de commande d'aiguillage (16) le premier signal d'aiguillage (AIGI) sous forme d'un signal binaire contraire à ladite première commande d'accès (R/Wl); - des moyens (107, 111) pour générer sur la seconde sortie de commande d'aiguillage (17) le second signal d'aiguillage (AIG2) sous forme 15 d'un signal binaire égal à 1 lorsque le numéro de comptage de l'intervalle de temps en cours, réduit au N bits de poids les plus faibles, est égal à 2N_1j et égal à 0 sinon; chacune des deux mémoires (10, 20) étant en mode d'accès en écriture ou en lecture lorsque la commande d'accès correspondante (R/Wl / R/W2) est égale 20 à 0 ou 1, respectivement;
les premier (30) et second (40) multiplexeurs étant chacun agencés pour reproduire sur la sortie dudit multiplexeur un signal appliqué sur la première ou la seconde entrée dudit multiplexeur, lorsque le signal d'aiguillage (AIG1/AIG2) appliqué à l'entrée de commande dudit multiplexeur est égal à 0 ou 1, 25 respectivement.
9. Dispositif selon la revendication 8, dans lequel - les moyens du contrôleur (1) pour générer la première commande d'accès (R/Wl) sont agencés pour produire pendant chaque intervalle de temps un signal binaire contraire au bit de poids le plus faible du numéro de 30 comptage de l'intervalle de temps en cours; - 23 - les moyens du contrôleur (1) pour générer une adresse (ADDR1) sur ladite première sortie d'adresse (14) sont agencés pour produire une adresse égale au premier numéro partiel de comptage pendant les intervalles de temps de numéros respectifs de 0 à 2N_1, et égale à 2N-1-2 dont est 5 retranché le premier numéro partiel de comptage pendant les intervalles de temps de numéros respectifs de 2N à 2N+1_1; - les moyens du contrôleur (1) pour générer la seconde commande d'accès (R/W2) sont agencés pour produire pendant chaque intervalle de temps un signal égal au bit de pois le plus faible de l'intervalle de temps en 10 cours;et - les moyens du contrôleur (1) pour générer une adresse (ADDR2) sur ladite seconde sortie d'adresse (15) sont agencés pour produire une adresse égale au second numéro partiel de comptage pendant les intervalles de temps de numéros respectifs de 0 à 2N-2 ou de numéros 2N+1_1, et égal à 15 2N-1-1 dont est retranché le second numéro partiel de comptage pendant les
intervalles de temps de numéros respectifs de 2N à 2N+1_1, ou de numéro 2N_1.
10. Dispositif selon la revendication 9, dans lequel le contrôleur (1) comprend: - un premier multiplexeur interne (105) ayant une première entrée 20 reliée pour recevoir le premier numéro partiel de comptage, une seconde entrée reliée pour recevoir la valeur, sur N-1 bits, de 2N-1-2 auquel est retranché le premier numéro partiel de comptage, une entrée de commande reliée pour recevoir le bit de poids le plus fort du numéro de comptage de l'intervalle de temps en cours, et agencé pour reproduire sur une sortie reliée à 25 la première sortie d'adresse du contrôleur (14) la valeur reçue sur la première ou la seconde entrée dudit premier multiplexeur interne, lorsque la valeur appliquée à l'entrée de commande dudit premier multiplexeur interne est 0 ou 1, respectivement; et - un second multiplexeur interne (106) ayant une première entrée 30 reliée pour recevoir le second numéro partiel de comptage, une seconde entrée reliée pour recevoir la valeur, sur N-1 bits, de 2N-1-1 auquel est - 24 retranché le second numéro partiel de comptage, une entrée de commande reliée pour recevoir le bit de poids le plus fort du numéro de comptage de l'intervalle de temps en cours auquel 1 est additionné, et agencé pour reproduire sur une sortie reliée à la seconde sortie d'adresse du contrôleur (15) 5 la valeur reçue sur la première ou la seconde entrée dudit second multiplexeur interne, lorsque la valeur appliquée à l'entrée de commande dudit second
multiplexeur interne est 0 ou 1, respectivement.
il. Dispositif selon l'une quelconque des revendications 1 à 6, dans
lequel les mémoires (10, 20) sont des mémoires à lecture instantanée, les 1o données lues dans chaque mémoire étant produites sur la sortie de ladite mémoire pendant l'intervalle de temps durant lequel l'entrée de commande de ladite mémoire reçoit une commande d'accès en lecture et l'entrée d'adresse
de ladite mémoire reçoit une adresse.
12. Dispositif selon les revendications 4 et 11, dans lequel le contrôleur
1 5 (1) comprend: - un compteur cyclique (100) des intervalles de temps des deux séquences consécutives, agencé pour produire un numéro sur N+1 bits, entre 0 et 2N+1_1 de comptage de l'intervalle de temps en cours; des moyens (101) pour produire, pendant chaque intervalle de 20 temps, un premier numéro partiel de comptage d'intervalles de temps sur N-1 bits, égal au numéro de comptage de l'intervalle de temps en cours auquel le bit de poids le plus fort et le bit de poids le plus faible ont été retirés; des moyens (102) pour produire, pendant chaque intervalle, un second numéro partiel de comptage d'intervalles de temps sur N-1 bits, égal au 25 numéro de comptage de l'intervalle de temps en cours, auquel 1 est additionné, puis auquel le bit de poids le plus fort et le bit de poids le plus faible ont été ensuite retirés; - des moyens (111, 112) pour générer sur ladite seconde sortie de commande d'aiguillage (17) le second signal d'aiguillage (AIG2) sous forme 30 d'un signal binaire égal à 0 lorsque le numéro de comptage de l'intervalle de - 25 temps en cours, réduit au N bits de poids les plus faibles, est égal à 2N-1, et égal à 1 sinon; - des moyens (104', 105) pour générer sur une première sortie d'adresse (14) reliée à l'entrée d'adresse d'une première des deux mémoires 5 (10) une adresse (ADDR1) égale au premier numéro partiel de comptage pendant les intervalles de temps de numéros respectifs de 0 à 2N- 2, et égale à 2N-1-1 dont est retranché le second numéro partiel de comptage pendant les intervalles de temps de numéros respectifs de 2N à 2N+ -2; - des moyens (103', 106) pour générer sur une seconde sortie 10 d'adresse (15) reliée à l'entrée d'adresse de la seconde des deux mémoires (20) une adresse (ADDR2) égale au second numéro partiel de comptage pendant les intervalles de temps de numéros respectifs de 0 à 2N- 2, et égale à 2N-1-1 dont est retranché le premier numéro partiel de comptage pendant les intervalles de temps de numéros respectifs de 2N à 2N+1-2; - des moyens (111, 116) pour générer sur une première sortie de commande d'accès (12) reliée à ladite première mémoire (10) une première commande d'accès binaire (R/Wl) égale à, pour les intervalles de temps de numéros distincts de 2N_1 et 2N+1_1: [cC(0) OU_EX C(N)] OU c[second signal d'aiguillage (AIG2)], o: 20 C(0) est le bit de poids le plus faible de l'intervalle de temps en cours, C(N) est le bit de poids le plus fort de l'intervalle de temps en cours, OUEX est l'opérateur binaire ou exclusif, cX désigne la valeur contraire de la variable binaire X; - des moyens pour générer sur la seconde sortie de commande 25 d'accès (13) reliée à ladite seconde mémoire (20) une seconde commande d'accès binaire (RIW2) égale à [C(0) OU_EX C(N)] OU c[second signal d'aiguillage (AIG2)], pour les intervalles de temps de numéros respectifs distincts de 2N-1 et 2N+1_1; - des moyens pour générer sur la première sortie de consignes 30 d'aiguillage (16) un signal binaire (AIGI) contraire à la première commande d'accès (R/W1); - 26 chacune des deux mémoires (10, 20) étant en mode d'accès en écriture ou en lecture lorsque la commande d'accès correspondante (R/W1 / RIW2) est égale à 0 ou 1, respectivement; les premier (30) et second (40) multiplexeurs étant chacun agencés pour 5 reproduire sur la sortie dudit multiplexeur un signal appliqué sur la première ou la seconde entrée dudit multiplexeur, lorsque le signal d'aiguillage (AIG1/AIG2) appliqué à l'entrée de commande dudit multiplexeur est égal à 0 ou 1, respectivement. 13. Dispositif selon la revendication 12, dans lequel - les moyens du contrôleur (1) pour générer la première commande d'accès (R/W1) sont agencés pour produire pendant chaque intervalle de temps un signal binaire égal à [cC(O) OUEX C(N)]; les moyens du contrôleur (1) pour générer la seconde commande
d'accès (RIW2) sont agencés pour produire pendant chaque intervalle de 15 temps un signal binaire contraire à la première commande d'accès (R/Wl).
- les moyens (104',105) pour générer une adresse (ADDR1) sur la première sortie d'adresse (14) sont agencés pour produire un signal égal au premier numéro partiel de comptage pendant les intervalles de temps de numéros respectifs de 0 à 2N_1, et égal à 2N-1-1 dont est retranché le second 20 numéro partiel de comptage pendant les intervalles de temps de numéros respectifs 2Nà 2N+1_1; - les moyens (103',106) pour générer une adresse (ADDR2) sur la seconde sortie d'adresse (15) sont agencés pour produire un signal égal au second numéro partiel de comptage pendant les intervalles de temps de 25 numéros respectifs de 0 à 2N_1, et égal à 2N-1- 1 dont est retranché le premier numéro partiel de comptage pendant les intervalles de temps de numéros respectifs 2Nà 2N+1_1 14. Dispositif selon la revendication 13, dans lequel le contrôleur (1) comprend: - 27 - un premier multiplexeur interne (105) ayant une première entrée reliée pour recevoir le premier numéro partiel de comptage, une seconde entrée reliée pour recevoir la valeur, sur N-1 bits, de 2N-1-1 auquel est retranché le second numéro partiel de comptage, une entrée de commande 5 reliée pour recevoir le bit de poids le plus fort du numéro de comptage de l'intervalle de temps en cours, et agencé pour reproduire sur une sortie reliée à la première sortie d'adresse du contrôleur (14) la valeur reçue sur la première ou la seconde entrée dudit premier multiplexeur interne, lorsque la valeur appliquée à l'entrée de commande dudit premier multiplexeur interne est 0 ou 10 1, respectivement; et - un second multiplexeur interne (106) ayant sur une première entrée reliée pour recevoir le second numéro partiel de comptage, une seconde entrée reliée pour recevoir la valeur, sur N-1 bits, de 2N-1-1 auquel est retranché le premier numéro partiel, une entrée de commande reliée pour 15 recevoir le bit de poids le plus fort du numéro de comptage de l'intervalle de
temps en cours, et agencé pour reproduire sur une sortie reliée à la seconde sortie d'adresse du contrôleur (15) la valeur reçue sur la première ou la seconde entrée dudit second multiplexeur interne, lorsque la valeur appliquée à l'entrée de commande dudit second multiplexeur interne est 0 ou 1, 20 respectivement.
15. Procédé de mémorisation de données utilisant un dispositif de
mémorisation selon l'une quelconque des revendications 1 à 14.
FR0212663A 2002-10-11 2002-10-11 Dispositif de memorisation de donnees de type lifo incorporant deux memoires a acces aleatoire Expired - Fee Related FR2845784B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0212663A FR2845784B1 (fr) 2002-10-11 2002-10-11 Dispositif de memorisation de donnees de type lifo incorporant deux memoires a acces aleatoire
US10/669,886 US7139865B2 (en) 2002-10-11 2003-09-24 LIFO type data storage device incorporating two random access memories

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0212663A FR2845784B1 (fr) 2002-10-11 2002-10-11 Dispositif de memorisation de donnees de type lifo incorporant deux memoires a acces aleatoire

Publications (2)

Publication Number Publication Date
FR2845784A1 true FR2845784A1 (fr) 2004-04-16
FR2845784B1 FR2845784B1 (fr) 2005-01-14

Family

ID=32039648

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0212663A Expired - Fee Related FR2845784B1 (fr) 2002-10-11 2002-10-11 Dispositif de memorisation de donnees de type lifo incorporant deux memoires a acces aleatoire

Country Status (2)

Country Link
US (1) US7139865B2 (fr)
FR (1) FR2845784B1 (fr)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7868898B2 (en) * 2005-08-23 2011-01-11 Seiko Epson Corporation Methods and apparatus for efficiently accessing reduced color-resolution image data
US7991962B2 (en) * 2007-12-10 2011-08-02 International Business Machines Corporation System and method of using threads and thread-local storage
US9219471B2 (en) * 2014-04-24 2015-12-22 Taiwan Semiconductor Manufacturing Company Limited Circuitry for phase detector
RU2742532C1 (ru) * 2020-01-06 2021-02-08 Владимир Анатольевич Маклашов Когерентная помеха "пинг-понг" и цифровая радиочастотная память с обратным воспроизведением

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0274323A1 (fr) * 1986-12-22 1988-07-13 Sgs-Thomson Microelectronics S.A. Circuit intégré de traitement de signal pour la sommation en ligne et en colonne de matrices de valeurs numériques
EP0319430A1 (fr) * 1987-12-03 1989-06-07 France Telecom Dispositif et procédé à mémoire tampon, notamment pour la transposition matricielle ligne-colonne de séquences de données
US5206834A (en) * 1989-10-14 1993-04-27 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device performing last in-first out operation and the method for controlling the same
US5287309A (en) * 1990-07-19 1994-02-15 Kabushiki Kaisha Toshiba High-speed stack memory
US20010049807A1 (en) * 1997-07-02 2001-12-06 Kim Heon-Cheol Address generator of dynamic memory testing circuit and address generating method thereof

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5671400A (en) * 1995-08-16 1997-09-23 Unisys Corporation Programmable bus interface unit data path
US6178472B1 (en) * 1998-06-15 2001-01-23 International Business Machines Corporation Queue having distributed multiplexing logic
US6282633B1 (en) * 1998-11-13 2001-08-28 Tensilica, Inc. High data density RISC processor
US6389525B1 (en) * 1999-01-08 2002-05-14 Teradyne, Inc. Pattern generator for a packet-based memory tester
US6704759B2 (en) * 2001-01-19 2004-03-09 Motorola, Inc. Method and apparatus for compression/decompression and filtering of a signal
US6973078B2 (en) * 2001-04-20 2005-12-06 Sun Microsystems, Inc. Method and apparatus for implementing low latency crossbar switches with integrated storage signals

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0274323A1 (fr) * 1986-12-22 1988-07-13 Sgs-Thomson Microelectronics S.A. Circuit intégré de traitement de signal pour la sommation en ligne et en colonne de matrices de valeurs numériques
EP0319430A1 (fr) * 1987-12-03 1989-06-07 France Telecom Dispositif et procédé à mémoire tampon, notamment pour la transposition matricielle ligne-colonne de séquences de données
US5206834A (en) * 1989-10-14 1993-04-27 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device performing last in-first out operation and the method for controlling the same
US5287309A (en) * 1990-07-19 1994-02-15 Kabushiki Kaisha Toshiba High-speed stack memory
US20010049807A1 (en) * 1997-07-02 2001-12-06 Kim Heon-Cheol Address generator of dynamic memory testing circuit and address generating method thereof

Also Published As

Publication number Publication date
FR2845784B1 (fr) 2005-01-14
US20040117542A1 (en) 2004-06-17
US7139865B2 (en) 2006-11-21

Similar Documents

Publication Publication Date Title
EP0046708B1 (fr) Circuit de traitement numérique en arithmétique distribuée utilisant des multiplexeurs à l'entrée d'une mémoire
FR2611299A1 (fr) Systeme d'enregistrement d'albums sur mesure
FR2494946A1 (fr) Format d'enregistrement de bande a balayage helicoidal et dispositif d'enregistrement ou de restitution a y utiliser
EP1080431A1 (fr) Systeme d'acquisition de donnees comprenant un circuit de conversion d'un signal d'entree analogique haute frequence en une pluralite de signaux numeriques
FR2686990A1 (fr) Unite arithmetique ayant une operation d'accumulation.
EP0298002B1 (fr) Mémoire de transposition pour circuit de traitement de données
FR2520529A1 (fr) Procede et montage de correlation a grande vitesse
FR2845784A1 (fr) Dispositif de memorisation de donnees de type lifo incorporant deux memoires a acces aleatoire
EP0924627B1 (fr) Processeur de calcul d'une transformation rapide de Fourier à architecture dite "pipelinée"
EP0350368B1 (fr) Dispositif pour le codage et la mise en forme de données pour enregistreurs à têtes tournantes
EP1061704B1 (fr) Procédé et dispositif de calcul d'une transformation rapide de Fourier pour une demodulation OFDM
FR2863794A1 (fr) Procedes et dispositifs de localisation d'erreurs pour les codes de geometrie algebrique
FR2772951A1 (fr) Procede de commande d'un etage radix 4 d'un dispositif electroonique de calcul d'une transformee de fourier a architecture dite "pipelinee", et dispositif correspondant
CH659555A5 (fr) Procede et dispositif de codage d'une information digitale codee sous forme binaire.
EP0635786B1 (fr) Dispositif de stockage de données
FR2754904A1 (fr) Production d'impulsions dans le canal analogique d'un appareil de test automatique
FR2729500A1 (fr) Systeme d'acquisition de donnees a grande vitesse
FR2821202A1 (fr) Procede de test d'un plan-memoire a acces sequentiel, et dispositif semiconducteur de memoire a acces sequentiel correspondant
FR2919941A1 (fr) Dispositif de test de circuit analogique
WO1999030251A1 (fr) Procede de calcul de la transformee de fourier rapide et de la transformee de fourier rapide inverse
EP0715430B1 (fr) Système de transmission au moyen d'informations protégées par un code de gestion d'erreurs
FR2509895A1 (fr) Memoire a tores commandee par un tore auxiliaire
EP0725961B1 (fr) Dispositif numerique de multi-comparaison dynamique notamment pour la surveillance en temps reel d'une pluralite de signaux
EP0595707B1 (fr) Séquenceur linéaire avec signaux de sortie binaires
FR2533782A1 (fr) Equipements d'enregistrement et de lecture de donnees numeriques sur videodisque analogique, munis de moyens de protection contre les erreurs

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20070629