FR 2536200 A1 19840518 FR 8219093 A 19821115 1 - Unité de stockage temporaire de données organisée en file d'attente La présente invention concerne le stockage temporaire de données sous forme de file d'attente du type premier entré, premier sorti, qu'on désignera par la suite par l'abréviation habituelle de pile ou file FIFO Elle trouve des applications dans chacun des domaines o une mémoire tampon est nécessaire du fait qu'il n'y a pas coïncidence entre sources des signaux d'entrée représentatifs d'évènements externes et instants d'utilisation de ces signaux A titre d'exemples d'applica- tion, on peut citer lé mixage d'informations, le lissage, le passage d'un rythme d'arrivée de signaux d'entrée à un rythme d'utilisa- tion, le déphasage d'informations et le multiplexage. On peut distinguer deux genres d'unités de stockage du type pile FIFO (le terme d'unité désignant tout à la fois les éléments de stockage proprement dits et leur système de gestion) La première technique consiste à utiliser un empi- lement de registres dans lesquels l'information progresse. L'intérêt de cette solution est d'assurer un asynchronisme to- tal entre l'entrée et la sortie, l'inconvénient est d'une part la capacité limitée, d'autre part, l'existence d'un temps de propagation de l'entrée à la sortie qui augmente avec la capacité de l'empilement de registres Une autre technique consiste à utiliser une mémoire vive de stockage à accès aléatoire ou RAM associée à une logique de gestion On peut arriver ainsi à des capacités importantes, mais en contrepartie il n'y a plus asynchronisme complet entre l'entrée et la sor- tie. La présente invention vise à fournir une unité de sto- ckage du type file FIFO utilisant une mémoire vive,qui répond mieux que celles antérieurement connues aux exigences de la pratique, notamment en ce qu'elle permet d'obtenir un temps d'accès indépendant de la capacité tout en assurant un asyn- chronisme entre l'entrée et la sortie. 2 - Dans ce but, l'invention propose notamment une unité de stockage temporaire d'informations du type file FIFO com- prenant une mémoire vive de lecture/écriture à accès aléatoire dont la sortie est reliée au moins à un registre tampon et un système de gestion permettant d'effectuer une lecture dans ledit registre à un instant quelconque par rapport aux ins- tants d'écriture en mémoire vive et de provoquer la lecture en mémoire vive en réponse à une indication de registre vide et entre écritures en mémoire vive. Dans son cadre le plus général, l'invention propose une logique de gestion associée à un registre placé en sortie lecture de la mémoire vive, qui permettent d'anticiper une demande de lecture vers la mémoire de manière à pouvoir dis- poser de l'information immédiatement après une demande de l'utilisateur. La présence du registre tampon de sortie permet à l'uti- lisateur d'obtenir l'information simultanément avec la for- mulation d'une demande de lecture Le registre est vidé par cette demande, puis il est rempli par le signal d'indication de lecture en mémoire vive ou RAM fourni par le système de gestion On voit qu'il y a découplage de la sortie du regis- tre par rapport à l'entrée en mémoire RAM et que les actions d'écriture et de lecture dans cette mémoire RAM sont symé- trisées En écriture, il y a formulation d'une demande: les informations d'entrée restent présentes jusqu'à la prochaine demande et l'écriture dans la mémoire RAM se fait automatique- ment à un instant choisi par une logique d'allocation apparte- nant au système de gestion, En lecture, une demande formulée accède à l'information et la lecture en mémoire RAM se fait automatiquement à un ins- tant quelconque entre cette demande et la suivante Les cycles d'accès à la mémoire RAM sont fixés par une horloge extérieure de pilotage Mais il est évidemment essentiel d'éviter que ne se déroulent simultanément un cycle de lecture et un cycle d'écriture en mémoire RAM Pour cela, la logique 25362 00 -3- d'allocation appartenant au système de gestion sera à exclu- sion mutuelle et allouera les créneaux fournis par l'horloge H soit à l'écriture, soit à la lecture en inhibant, en ré- ponse à une demande d'écriture ou de lecture, l'autre opéra- tion avant exécution de la première La logique d'allocation sera génralement munie d'une entrée de priorité, permettant de trancher en cas de demande simultanée en inhibant la de- mande non prioritaire. Dans ce but,, la logique d'allocation peut comporter deux bascules affectées l'une à l'écriture en mémoire RAM, l'autre à la lecture dans cette mémoire Le résultat du traitement des demandes d'écriture et de lecture DE et DL est validé périodiquement, au rythme de l'horloge H, dans ces bascules La montée de l'une annonce l'enclenchement* d'un cycle d'écriture, la montée de l'autre l'enclenchement d'un cycle de lecture La logique d'exclusion répond alors aux conditions suivantes: Elle prend-en compte une demande quelle qu'elle soit, si elle est isolée, Elle inhibe toute possibilité de saisie de la demande concurrente si la demande prioritaire est présente; Si la demande non prioritaire est d'abord présente seule, elle la laisse progresser jusqu'à la bascule de saisie correspondante; mais si la demande prioritaire survient avant cette saisie, elle inhibe dans un premier temps la demande concurrente sur la bascule de saisie concernée avant d'apparaître dans un second temps sur sa propre bascule de saisie. On voit que l'intervalle qui sépare l'instant d'inhibi- tion d'une demande de l'instant d'exécution de l'autre cons- titue un temps de garde, qui sera sélectionné-en fonction du temps de réponse de la logique, interdisant de façon abso- lue la montée simultanée des deux bascules de saisie. Dans un premier mode de réalisation de l'invention, particulièrement simple, seul un registre de sortie est -prévu Il réalise déjà un découpage partiel entre l'entrée et la sortie d'informations dans l'unité de stockage Mais ce découplage n'est effectif et ne conduit au fonctionnement totalement asynchrone en écriture et lecture défini ci- dessus que si les périodes de lecture et d'écriture satis- font à certaines contraintes de durée La période TE ou TL de la transaction (écriture ou lecture) considérée comme prioritaire pour la logique d'allo- cation doit être au moins égale au double de la durée T de traitementd'un cycle par l'ensemble constitué du système de gestion et de la mémoire La période de la transaction non prioritaire doit être supérieure à 3 T. Ces valeurs de TE et TL sont assez éloignées des per- formances optimales *de l'unité, considérées comme correspon- dant à l'enchaînement sans temps mort des cycles d'écriture et de lecture Deux exemples suffisent à le montrer. En cas de fonctionnement très dissymétrique o le rythme des transactions est faible vis-à-vis de l'autre, la priorité étant donnée à la plus rapide, la période mini- male de cette dernière sera de 2 T alors qu'on pourrait espérer s'approcher aussi près de T que le-permettent les temps morts. En cas de fonctionnement avec rythmes d'écriture et de lecture plésiochrones, on devrait pouvoir approcher des conditions TE 2 T et TL 2 2 T, alors qu'en fait on est limité à TE 3 T et TL 3 T. Pour cette raison, l'unité de stockage comporte avanta- geusement un registre tampon d'entrée ainsi qu'un second registre de sortie, ce qui permet d'approcher davantage des conditions limites théoriques Ces registres tampons supplé- mentaires ont pour fonction d 'anticiper les demandes de l'utilisateur en effectuant eux-mêmes les demandes de tran- saction à la logique d'allocation lorsque les conditions - de cette transaction sont réunies Ils suppriment, par là, la nécessité de disposer d'au moins une période entière T pour chaque demande de-transaction (écriture ou lecture) et autorisent une utilisation complète de l'ensembledes possi- bilités d'accès à la mémoire vive au travers du système de gestion. L'invention sera mieux comprise à la lecture-de la description qui suit de modes particuliers de réalisation donnés à titre d'exemples non limitatifs, et de la comparai- son qui en est faite avec une unité suivant l'art antérieur. La description se réfère aux dessins qui l'accompagnent, dans lesquels: - la Figure 1 est un schéma de principe d'une unité de stockage temporaire organisée en-file d'attente, de type connu, utilisant une mémoire RAM, la Figure 2, similaire à la Figure 1, est un schéma de principe d'une unité suivant un premier mode d'exécution de l'invention, comportant un registre de sortie en plus d'une mémoire RAM, la Figure 3 est un schéma de principe d'une unité de stockage temporaire constituant un autre mode de réalisation de l'invention, à un registre d'entrée et deux registres de sortie, les Figures 4, 5 et 6 sont des schémas synoptiques de détail, montrant respectivement la constitution d'une logique de gestion d'entrée, d'une logique de gestion de sortie, et d'une logique d'allocation écriture/lecture uti- lisables dans le mode de réalisation de la Figure 3, la Figure 7 est un schéma de principe, très simplifié, d'un circuit de gestion des adresses d'écriture et de lec- ture en mémoire RAM, également utilisable dans le mode de réalisation montré en Figure 3, la Figure 8 est un diagramme montrant comment s'ef- fectue l'inhibition de l'écriture en mémoire RAM lorsque la file est pleine, l'inhibition de lecture en cas de détec- tion de file vide s'effectuant de façon similaire. 6- Avant d'exposer l'invention, on rappellera brièvement, en faisant référence à la fiqure 1, la constitution générale d'une unité de stockage 2 mémoire RAM organisée en file FIFO L'uni- té montrée en figure 1 comporte une mémoire RAM 10 munie d'une entrée 12 sur laquelle sont appliquées les données d'en- trée DI et d'une sortie 14 sur laquelle l'utilisateur reçoit les données de sortie DO en réponse à une demande de lecture. La mémoire RAM 10 est associée à un système de gestion 16 Ce dernier peut être regardé comme comportant une logique d'allo- cation 18 qui reçoit, en 20 et 22, les demandes d'écriture et de lecture La logique 18 est munie d'une entrée 23 de com- mande de priorité en écriture ou en lecture E/L Elle comporte encore des pointeurs d'écriture et de lecture 24 et 26 permet- tant de détecter les états de pile vide et de pile pleine et un multiplexeur d'adresses 28. Le fonctionnement d'une telle unité est bien connu: pour provoquer l'écriture en mémoire RAM 10, on fournit les données à charger en DI, accompagnées d'un signal de demande d'écri- ture Les données sont prises en compte au bout d'un temps fonction des demandes de lecture et d'une règle de priorité. Ce temps est matérialisé par la génération d'un signal d'ac- quittement par la logique d'allocation 18 En lecture, on effectue une demande qui est prise en compte par la logique d'allocation 18 L'information DO est disponible en sortie de la mémoire vive RAM 10 au bout d'un temps variable qui sera, comme pour l'écriture, repéré par un signal de validation. On voit apparaître l'inconvénient principal d'une telle unité, qui est l'absence d'asynchronisme entre écriture et lecture du fait que la mémoire constitue un point de couplage qui ne peut être accédé simultanément en lecture et en écri- ture en réponse à des demandes simultanées en 20 et 22. Le mode le plus simple d'exécution de l'invention, sché- matisé en figure 2 (o les organes correspondant à ceux de la figure 1 sont désignés par les mêmes numéros de référence) comporte un registre tampon de sortie 30 interposé entre la sortie de la mémoire RAM 10 et la sortie de données DO de 7 - l'unité Le système de gestion 16 doit alors assurer de plus la gestion du registre de sortie L'utilisateur n'accède à la mémoire RAM 10 qu'à travers cette logique Sur la-figure 2, elle est montrée associée à deux bascules 32 et 34 La bascule de lecture 34 reçoit les demandes de lecture DEM LEC de l'utilisateur (organe d'entrée de ligne de télécommunica- tion par exemple) Lorsque cette bascule reçoit une telle demande de lecture et un signal de validation de-la logique 18, elle est positionnée à zéro et engendre une demande DL de lecture en mémoire RAM 10 Dès qu'un cycle de lecture sera accordé, la bascule 34 sera repositionnée à 1 et le registre rechargé. La bascule 32, qui peut comme la bascule 34, être inté- grée à la logique 18, permet de transmettre les demandes DE d'écriture en RAMà la mémoire RAM 10, les conflits d'accès en mémoire RAM étant réglés suivant la priorité sélectionnée à l'aide de l'entrée 23. L'horloge de séquencement nécessaire au fonctionnement, fournissant un signal d'horloge de rythme H n'a pas été re- présentée sur les figures 1 et 2 Les périodes de cette hor- loge déterminent les cycles d'accès à la mémoire et le nombre de transactions ne peut évidemment dépasser le nombre de cycles d'horloge, de période TH. Vus-de l'extérieur, les instants d'écriture en mémoire RAM et de lecture du registre tampon de sortie sont quel- conques et éventuellement simultanés Le fonctionnement in- terne n'en reste pas moins synchrone et fixé par l'horloge, dont la période TH doit être compatible avec les périodes TL et TE des rythmes de lecture et d'écriture. La période TH déterminant la fréquence dés possibilités d'accès en mémoire RAM, l'inégalité suivante doit dans tous les cas être vérifiée: l/TH >, 1/TL + 1/TE ( 1) Dans le cas d'une situation symétrique o TE = TL? 3 TH, on pourra toujours satisfaire une demande d'écriture pendant -8- la présence TE de l'information: il suffit de maintenir celle-ci sous forme parallèle pendant une durée TE à l'entrée de la mémoire RAM 10 après avoir fait une demande d'écriture DEM LEC Symétriquement, une demande d'information DO en sortie sera satisfaite en venant lire l'information en sortie dans le registre 30 pendant un temps TL après une demande de lecture. On décrira maintenant, en faisant référence à la figure 3, le schéma de principe d'un circuit applicable dans tous les cas o la relation ( 1) est satisfaite, sans toute- fois évidemment arriver à l'égalité entre les deux termes de la relation. Le circuit dont le principe est -montré en figure 3 (o les organes correspondant à ceux de la figure 1 portent le menie numéro de référence) comporte non seulement un registre tampon de sortie, mais aussi un registre tampon d'entrée 36 et, au surplus, pour tenir compte du fait que l'ordre de lec- ture HL ne peut être formulé que si les données sont déjà disponibles en sortie et ne laisse pas, comme c'était le cas pour l'écriture, une période complète TL de HL disponible pour satisfaire la demande, deux registres tampons en cascade 3 Oa et 30 b sont prévus au lieu d'un seul. Le système de gestion 16 peut être regardé comme compor- tant une logique 38 de gestion d'entrée, associée au regis- tre tampon d'entrée 36 Le registre 36 a un nombre N d'élé- ments binaires ou "bits" correspondant à celui dans chaque mot en mémoire La logique 38, de gestion du registre d'écri- ture, effectue des demandes d'écriture à la logique d'alloca- tion 18, une logique d'allocation écriture/lecture 18, qui accorde les cycles (au rythme TH) à la lecture ou à l'écriture en fonction des demandes et de la priorité accordée à l'une ou à l'autre, affichée-en 23, un circuit 42 de ge'stion des adresses d'écriture et de lecture dans la mémoire RAM 10 qui comporte des moyens 44 de détection de file pleine ou file vide qui bloquent respectivement les demandes d'écriture ou de lecture qui ne pourraient être servies, une logique 46 de gestion des deux registres tampons de lecture 30 a et 30 b, composés chacun de N éléments binai- res. Des commandes supplémentaires peuvent être prévues pour permettre d'utiliser des registres externes (non représentés) et d'augmenter la longueur des mots au-delà du nombre d'élé- ments binaires des registres 36, 30 a et 30 b. La logique de gestion d'entrée 38 peut avoir la consti- tution de principe montrée en figure 4 et qui autorise le fonctionnement aussi bien lorsque-l'information provient d'un convertisseur série/parallèle que lorsqu'elle est direc- tement disponible en parallèle Cette logique 38 est prévue pour charger de façon asynchrone le registre 36 lorsque deux conditions sont remplies: le registre 36 est vide et une information DI est disponible en entrée Le registre 36 doit alors être chargé pour stocker temporairement les informa- tions d'entrée DI en attendant leur transfert dans la mémoire RAM 10. Pour cela, la logique de gestion d'entrée comporte deux bascules 52 et 54. La bascule 52 est prévue pour être positionnée dès qu'une demande de chargement est formulée en Ec Dans le cas o l'information serait appliquée en parallèle, un 1 serait maintenu en permanence sur l'entrée de la bascule 52 au lieu du signal de demande Ec Quant à la bascule 54, elle est prévue pour provoquer par son passage à 1 le char- gement des informations d'entrée dans le registre 36. Comme le montre la figure 4, l'entrée d'horloge de la bascule 52, du type D, est reliée à l'entrée de rythme d'écriture HL L'entrée de la bascule est reliée à la sortie d'une porte OU 56 qui reçoit le signal de demande d'écriture EC et la sortie Q de la bascule 52. - La bascule 54 de son côté reçoit le signal de rythme H sur son entrée d'horloge Sa sortie est reliée aux entrées d'une porte ET 58 dont l'autre entrée est reliée à la sortie Q de 52 et dont la sortie revient, par l'intermédiaire d'un élément 60 fournissant un retard correspondant au temps de traversée d'une porte (dont le rôle apparaîtra plus loin), aux entrées de remise à zéro R de la bascule 52 et de posi- tionnement S de la bascule 54 La sortie Q de la bascule 54 attaque également une des entrées d'une porte ET 62 dont la sortie est reliée, d'une part, à l'entrée de la bascule 54, d'autre part, à l'une des entrées d'une porte OU 64 dont la sortie constitue la demande DE d'écriture en mémoire. On voit que l'état 1 de la bascule 52 indique qu'une information est accessible en entrée et que l'état 1 de la bascule 54 indique que le registre 36 est plein Alors que la bascule 52 est positionnée à 1 par une action extérieure (signaux HE et Ec), la remise à zéro de 54 est effectuée après chaque cycle d'écriture L'existence simultanée des états 1 de 52 et O de 54 assure la remise à zéro de la pre- mière bas 6 ule et le forçage à 1 de la seconde bascule. De façon plus complète, le fonctionnement de la logique de gestion d'entrée 38 est le suivant. Lors de l'apparition d'une information DI en entrée de la file, la bascule 52 est positionnée à 1 par le signal de demande Si le registre 36 est vide (ce qui correspond à l'état O à la sortie Q de la bascule 54), la porte ET 58 est alors passante et le signal de niveau 1 à sa sortie est trans- mis à l'entrée S de la bascule 54 par l'intermédiaire d'un circuit à retard 60 ce qui fait passer la sortie Q de la bascule 54 à l'état 1, ce qui provoque le chargement du registre 36. De plus, l'apparition du signal de niveau 1 à la sortie de la porte ET 58 a pour effet de ramener à zéro avec lé même retard (circuit 60) la sortie Q de la bascule 52, avec un retard fixé par 60 Le signal en sortie Q de la bascule 52, qui correspond à une demande de chargement du registre tampon d'entrée 36, est également transmis, à travers une porte OU 64, pour fournir un signal de demande d'écriture en mémoire DE dont l'exploitation sera exposée en détail plus loin. La bascule 54 est commandée pour remise à zéro de ma- nière cadencée par l'horloge qui détermine la durée des périodes d'écriture ou de lecture en mémoire RAM 10 La bas- cule 54 n'est remise à zéro (ce qui libère le registre 36 pour un nouveau chargement) que lorsque la porte ET 62 délivre un signal de niveau zéro, validé par l'horloge H, c'est-à-dire lorsque le signal *E (E étant le signal de commande d'écriture en mémoire RAM 10) sur la seconde entrée de la porte 62 est au niveau zéro, ou, en d'autres termes, lorsqu'une demande d'écriture de la mémoire a été effectuée pendant le cycle précédant l'impulsion d'horloge. La sortie de la porte ET 62 est également reliée à l'une des entrées de la porte OU 64, pour fournir un signal de demande d'écriture DE en mémoire RAM 10. Ainsi, quand le signal à la sortie Q de la bascule 52 disparaît, par activation de l'entrée de restauration R, mais qu'il n'y a pas eu d'écriture en mémoire RAM 10, le re- gistre 36 n'est pas disponible-pour être à nouveau chargé La demande d'écriture de l'information contenue dans le registre 36 en mémoire RAM est maintenue par la connexion 68 entre la sortie de la porte ET 62 et la porte OU 64. La logique 46 de gestion des registres de sortie 30 a et b peut avoir une constitution générale similaire à celle - de la logique 38 associée au registre tampon d'entrée Dans le cas montré en figure 5, elle comporte encore deux bascules 70 a et 70 b du type "D", dont les sorties Q attaquent cette fois les entrées de commande des registres 30 a et 30 b, res- pectivement L'état 1 de la bascule 70 a indique -a présence d'informations dans le registre 30 a L'état 1 de la bascule b indique la présence d'informations dans le registre 30 b. Chaque cycle de lecture interne en mémoire RAM 10 charge le registre 30 a et positionne la bascule 70 a à l'état 1 Une 2536200. 12 - lecture provoquée par l'application des signaux HL et LE vide le registre 3 Ob et remet à zéro la bascule 70 b. Comme dans le cas de l'écriture, le circuit se prête aussi bien au cas o on veut utiliser l'information de sortie de l'unité de stockage en mode série que dans celui o on veut en disposer sous forme parallèle, avec les mêmes modifications dans l'attaque des bascules. Le fonctionnement de la logique 46 est le suivant dans leur état normal, avant lecture du registre 30 b, les registres 30 a et 30 b sont chargés respectivement par les informations de rang N et n+ 1 de la mémoire RAM 10 Une lecture du registre 30 b libère ce dernier pour un chargea ment par l'information suivante -Elle se traduit par une mise à zéro de la sortie Q de la bascule 70 b A cet ins- tant, la bascule 70 a ayant sa sortie Q à l'état 1, une porte ET 72 (dont les entrées sont reliées à la sortie Q de 70 a et de 70 b) délivre un signal qui agit, avec un retard fixé par un élément 74, sur l'entrée de position- nement S de la bascule 70 b, transférant ainsi, dans le registre 30 b, l'information contenue en 30 a et indiquant un nouvel état occupé de 30 b Le signal est également appliqué sur l'entrée de remise à zéro de la bascule 70 a, ce qui libère le registre 30 a de l'information qui vient d'être transférée dans le registre 30 b La sortie _ de 70 b envoie de son côté une demande DL de lecture de la mémoire RAM 10 par l'intermédiaire d'une porte OU 76 La bascule 70 a, commandée en séquence par la même horloge H que la bascule 54 de la logique d'entrée, est remise à 1 lors de l'appa- rition d'un 1 en sortie de l'inverseur 78 qui reçoit un O de la porte ET 80 Cette remise à 1 ou positionnement de la bascule 70 a intervient lorsque la connexion 82 reçoit le signal r = O (L étant le signal de commande de lec- ture en-mémoire), c'est-à-dire lorsqu'une lecture de la mémoire a été demandée et ordonnée Tant que cette demande de lec- ture n'a pas été ordonnée, la sortie de la porte 80 reste 13 - à 1 et maintient une demande de lecture de la mémoire RAM par l'intermédiaire de la porte OU 76. La logique d'allocation écriture/lecture 18 a un rôle essentiel Elle va permettre un fonctionnement à exclusion mutuelle interdisant de façon absolue la présence simulta- née d'un ordre de lecture et d'un ordre d'écriture en mémoire RAM 10 Cette logique est prévue de façon que toute action, constituée par une demande de lecture ou d'écriture, n'est validée qu'après inhibition de l'autre type de de- mande, avec possibilité de suppression ou inhibition de la première demande si celle-ci est indiquée comme non priori- taire par l'affichage en 23 (figure 3). La figure 6 montre un mode de réalisation possible de la logique d'allocation 18, qui effectue l'allocation en fonction des demandes DE et DL formulées par les logiques 38 et 46 (figures 4 et 5) Le rôle du circuit d'allocation 18 est d'attribuer les créneaux fournis par l'horloge de rythme, de période TH, à l'écriture, à la lecture, ou à aucune des deux s'il n'y a pas de demande En cas de conflit, la priorité doit être accordée à l'écriture ou à la lecture suivant l'indication E/L fournie en 23. Le circuit comporte deux bascules 84 a et 84 b destinées à indiquer l'allocation: l'état E = 1 sur la sortie Q de la bascule 84 a indique un cycle d'écriture, l'état L = 1 à la sortie Q de la bascule 84 b indique un cycle de lecture. Un mécanisme d'exclusion mutuelle est prévu pour interdire la montée simultanée des deux bascules Il comporte, à chaque entrée de bascule, une porte ET d'inhibition 92 a ou 92 b à deux entrées La-première entrée reçoit le signal de demande DE ou DL à travers une porte ET-NON 88 a ou 88 b, un inverseur 90 a ou 90 b et un élement 94 a ou 94 b fournissant un retard correspondant approximativement à la durée d'une traversée de porte Cet élément à retard 94 a ou 94 b garantit que l'inhibition d'une bascule est opérationnelle avant l'action sur l'autre bascule La logique 18 coopère avec 14 - des moyens 44 de détection de file pleine ou de file vide en RAM Ces moyens sont prévus pour fournir des signaux de limite FP et FV appliqués respectivement aux entrées de remise à zéro des bascules 84 a et 84 b Les signaux de pile pleine et de pile vide sont également appliqués, par l'intermédiaire d'inverseurs 96 a et 96 b respectivement, aux secondes entrées des portes ET-NON 88 a et 88 b Ces portes valident donc les demandes d'allocation d'écriture ou de lecture par une opération logique de la forme XDE = DE x TF XDL = DL x TV Une priorité à l'écriture est assurée en appliquant un 1 logique sur l'entrée 23 Ce 1 logique est transmis par la porte OU 98 a à la porte ET 92 a d'exclusion La priorité à la lecture est assurée en appliquant un O logique sur l'entrée 23 En réponse, un inverseur 99 applique un 1 logique à la porte OU 98 b qui la transmet à la porte ET 92 b. Le fonctionnement de la logique 18 est le suivant, si l'on suppose une demande d'écriture DE formulée alors qu'il n'y a pas de conflit avec une demande de lecture et que la file n'est paspleine, la porte ET-NON 88 a émet un zéro qui est inversé par l'inverseur 90 a La porte ET 92 a émet alors, avec un retard fixé par l'élément 94 a, un 1 car, en l'absence de demande de lecture, la porte ET-NON 88 b applique un 1 à l'entrée de la porte 92 a par l'intermédiaire de la porte OU 98 a La demande d'écriture DE est alors vali- dée en commande E d'écriture en mémoire RAM 10. Le fonctionnement de la logique est identique pour la commande de lecture, en l'absence de conflit IL fait inter- venir la partie du circuit symétrique de celle qui vient - d'être envisagée (portes 88 b, 92 b, inverseur 90 b, bascule 84 b). Il faut noter au passage que la priorité en cas de présence simultanée d'une demande d'écriture et de lecture, matérialisée par le signal appliqué sur l'entrée 23, sera choisie pour donner priorité au rythme le plus élevé des- demandes en lecture et/ou en écriture. Si la priorité est donnée à la lecture, c'est-à-dire qu'un niveau O est appliqué sur l'entrée 23, en cas de présence simultanée de DE et DL (en supposant bien entendu que la file n'est ni vide ni pleine), les portes ET-NON 88 a et 88 b fournissent toutes deux un'O logique qui sera transformé en 1 par les inverseurs respectifs 90 a et 90 b. Par l'intermédiaire des portes OU 98 a et 98 b et de l'in- verseur 99, le signal de priorité au niveau O en 23 impose un O sur la seconde entrée de la porte 92 a et un 1 sur la seconde entrée de la porte 92 b Cette dernière seule fournitun 1 qui valide la bascule 84 b de commande de lecture en mémoire RAM 10 Les éléments à retard 94 a et 94 b évitent la présence simultanée de commandes d'écriture et de lecture dans le cas o la demande prioritaire appa- raît avant l'instant o s'effectue la décision, fixé par un coup del'horloge H, alors qu'une demande non prioritaire est déjà présente. Entre la logique 18 et la mémoire RAM 10 doit être * prévu un circuit de gestion d'adresses dans cette mémoire. De plus, étant donné que la file FIFO réalisée à partir de la RAM constitue une file circulaire, il faut, pour éviter la destruction d'informations ou l'apparition d'in- formations erronées, empêcher tout croisement des pointeurs d'écriture et de lecture Ce problème est bien connu, car il se pose également dans les processeurs, ainsi que les moyens pour les résoudre Pour cette raison, les moyens destinés à fournir une indication de mémoire RAM pleine FP ou vide FV, afin de bloquer respectivement toute nou- velle écriture ou toute nouvelle lecture, ne seront que brièvement décrits en mentionnant essentiellement les as- pects spécifiques à la présente invention. Les pointeurs d'écriture et de lecture sont incrémentés en fin de cycle d'écriture ou de lecture et indiquent alors l'adresse du prochain mot à écrire ou à lire Une égalité des pointeurs d'écriture PTE et de lecture PTL après un cycle d'écriture indique que la mémoire RAM est pleine et qu'aucune écriture supplémentaire ne peut être acceptée si elle n'est précédée par au moins une lecture Symétriquement, une égalité entre PTE et PTL après une lecture signifie que la mémoire RAM est vide et qu'aucune lecture ne pourra être effectuée dans la RAM avant nouvelle écriture. La détection des états RAM pleine et RAM vide peut être effectuée à l'aide de portes ET qui reçoivent,sur une entrée, un signal indiquant l'égalité des pointeurs et, sur l'autre entrée, un signal indiquant que la dernière opération est une écriture pour une des portes, un signal indiquant que la der- nière opération est une lecture pour l'autre porte Les indications de sortie FP et FV apparaissent alors qu'un nou- veau cycle d'horloge est déjà en cours Elles sont utilisées, dans la logique d'allocation (figure 6), pour interdire toute prise en compte de demande d'écriture dans le cas FP = 1, de lecture dans le cas FV = 1 Elles stoppent de plus le cycle en cours s'il a été retenu par l'opération proscrite, par remise à O de la bascule 84 a ou 84 b. De plus, dans le cas de file pleine, on doit inhiber la sortie du créneau d'écriture en mémoire WM et, pour cette raison, la génération du signal FP à partir du positionnement du pointeur d'écriture doit être aussi rapide que possible de façon à ne pas obliger à trop retarder la génération du signal WM Ce créneau WM est destiné à fournir le signal d'écriture en mémoire Il ne doit être généré qu'après un temps à qui suit le front montant du signal d'horloge H Il peut être obtenu à l'aide d'une porte réalisant l'opération logique WM = E x FP x H ( 2) 17 - o Ho est le signal H retardé d'une valeur au moins égale à a La figure 7 montre, de façon extrêmement schématisée, une constitution possible du circuit de gestion d'adresses. Ce circuit comporte des pointeurs de lecture et d'écriture a et 100 b dont les sorties attaquent le multiplexeur 28 et un circuit de détection de limite 102 L'élément d'entrée de ce dernier est constitué par un circuit additionneur 104, qui opère en soustracteur (inversion d'un des signaux d'en- trée) pour effectuer la différence entre les valeurs des deux pointeurs, dont le signal de sortie est appliqué à un réseau de portes 106, disposées de façon à correspondre à la capacité et à la disposition des pointeurs Ces pointeurs peuvent par exemple être constitués de compteurs synchrones à quatorze étages, constamment activés par le signal d'hor- loge H mais dont le fonctionnement n'est effectif qu'en cas de validation Les pointeurs comportent une remise à zéro générale RZG permettant de positionner l'ensemble des entrées des conp- teurs, constituant ces pointeurs, i 0. Le pointeur d'écriture PTE indique l'adresse de la prochaine écriture en mémoire Il est incrémenté à la fin de chaque cycle d'écriture sur le front montant d'horloge H De façon similaire, le pointeur d'écriture PTL pointe le prochain mot mémoire à lire Il est, comme le compteur constituant le pointeur de lecture, incrémenté en fin de cycle. La détection de file pleine et de file vide est assurée par deux portes OU- NON 108 a et 108 b La porte 108 a reçoit le signal de sortie du réseau de portes 106 et le signal E* provenant d'une bascule 110 dont le montage et le fonc- tionnement ne seront pas décrits, car ils sont évidents La porte 108 a comprend une entrée supplémentaire IFP qui permet d'inhiber la fonction de détection de file pleine par appli- cation d'un signal externe de niveau 1 Une telle inhibition peut être nécessaire pour certaines applications La porte -18 - OU-NON 108 b reçoit, de façon symétrique, le signal de sortie du réseau de portes 106 et le signal L* provenant de la bascule 110 Mais cette porte ne comporte pas d'entrée d'in- hibition. Une porte OU 112 destinée à générer le signal d'écriture WM comporte trois entrées L'une reçoit le signal de pile pleine FP Une seconde reçoit le signal E, Une troisième reçoit le signal d'horloge par l'intermédiaire d'un élément 114 fournissant un retard au moins égal à à, de sorte que la porte 112 répond à la fonction ( 2) ci-dessus. A titre de simple exemple, on a représenté sur la figure 8 l'évolution des divers signaux qui interviennent dans le fonctionnement, lorsque la file est pleine à l'issue d'une opération d'écriture Dans le cas montré en figure 8, le cycle d'écriture 1 remplit la pile et provoque l'apparition d'une indication de mémoire RAM pleine (passage à 1 de FP). Lorsqiue l'ordre d'écriture suivant E apparaît, il est inhi- bé après un délai qui correspond d une garde de s écurité et interdit l'apparition du signal d'écriture:P L'in- hibition se poursuit jusqu'à-ce que le signal E soit repassé au niveau 1 Ce retour au niveau 1 est autorisé par une opération de lecture Un nouveau cycle d'écriture peut alors avoir lieu (cycle d'écriture 2 sur la figure 8) Ce cycle d'écriture remplit de nouveau la file et provoque une nouvelle inhibition. L'invention ne se limite évidemment pas aux modes par- ticuliers de réalisation décrits ci-dessus à titre d'exemples. Elle est susceptible de nombreuses variantes et, en parti- culier, le système de gestion peut remplir de nombreuses fonctions supplémentaires, commander des registres externes, ou des registres d'entrée et de sortie s'ajoutant à ceux qui ont été mentionnés L'essentiel est que ce système de gestion permette d'effectuer l'opération de lecture de données dans le registre (ou un registre) de sortie à un instant quel- conque par rapport à l'écriture d'une information dans le registre (ou un registre) d'entrée, la simultanéité d'opéra- 19 - tion d'écriture et de lecture en mémoire RAM étant interdite et rendue impossible par inhibition de l'opération d'écriture ou de lecture avant exécution de l'autre opération (lecture ou écriture) Il doit être entendu que la portée du présent brevet s'étend à de telles variantes, ainsi généra- lement qu'à toutes autres restant dans le cadre des équiva- lences. 2536200. - REVENDICATIONS 1 Unité de stockage temporaire de données organisée en file d'attente FIFO, comprenant une mémoire vive de lecture/écriture à accès aléatoire ( 10) et un système de ges- tion ( 16), caractérisée en ce que l'unité comprend de plus au moins un registre tampon de sortie ( 30) en aval de la mémoire vive ( 10) et en ce que ledit système de gestion est prévu pour autoriser une lecture dans le registre ( 30) à un instant quelconque par rapport aux instants d'écriture en mémoire vive et provoquer la lecture en mémoire vive en réponse à une indication de registre vide. 2 Unité selon la revendication 1, caractérisée en ce que le système de gestion comprend une logique d'allocation à exclusion mutuelle inhibant, en réponse à une demande de lecture ou d'écriture, l'autre opération avant exécution de la première. 3 Unité selon la revendication 2, caractérisée en ce que la logique d'allocation comprend une entrée de priorité permettant d'interrompre l'une des actions entre l'appari- tion d'une demande de l'autre action et validation de la première, si la seconde action est prioritaire par rapport à la première. 4 Unité de stockage selon la revendication -2, caracté- risée en ce que la logique d'allocation comprend deux bascules ( 84 a, 84 b) d'allocation destinées à fournir sur leur sortie (Q) le signal validé de lecture ou d'écriture en mémoire RAM, respectivement et en ce que les entrées des deux bascules ( 84 a et 84 b) sont reliées à des portes d'ex- clusion respectives ( 92 a, 92 b) associées à un circuit prévu pour qu'une des portes ne puisse appliquer un signal de validation à la bascule correspondante qu'après inhibition de l'autre bascule par la porte associée. Unité de stockage selon la revendication 4, caracté- risée en ce que lesdites portes d'exclusion ( 92 a, 92 b) sont des portes ET, en ce que lesdites portes reçoivent, sur une entrée, le signal de lecture (DE) ou d'écriture (DL) et 21 - reçoivent sur l'autre entrée un signal provenant d'une porte de priorité ( 98 a, 98 b) qui reçoit sur une entrée l'une un signal de priorité, l'autre un signal complémentaire four- ni par un inverseur ( 99). 6 Unité de stockage selon la revendication 5, carac- tériséeen ce qu'un circuit fournissant un retard choisi en fonction du temps de traversée des portes est placé sur l'entrée d'amenée du signal de demande d'écriture ou de lec- ture à l'une au moins des portes d'exclusion ( 92 a, 92 b). 7 Unité de stockage selon la revendication 4 ou 5, caractérisée en ce que le système de gestion comprend des moyens de détection de file pleine et de file vide, en ce que lesdits moyens sont reliés à des entrées de remise à zéro respectives des bascules d'allocation ( 84 a, 84 b), et en ce que lesdits moyens alimentent une première porte ( 88 a) par laquelle est transmis à la porte d'exclusion correspondante ( 92 a) le signal de demande d'écriture (DE) pour inhiber la demande d'écriture en cas d'état de pile pleine et sont re- liés à une seconde porte ( 88 b) par laquelle est transmis le signal de demande de lecture (DL) à la porte d'exclusion correspondante ( 92 b) pour inhiber la lecture en mémoire RAM en cas de-file vide. 8 Unité de stockage selon l'une quelconque des reven- dications précédentes, caractérisée en ce que la mémoire RAM est uniquement associée à un seul registre de sortie ( 30). 9 Unité de stockage selon l'une quelconque des reven- dications 1 à 7, caractérisée en ce que l'unité de stockage comprend un registre tampon d'entrée ( 36) et deux registres tampons de sortie ( 30 a, 30 b) placés en cascade. 10 Unité de stockage-selon la revendication 9, caracté- risée en ce que le système de gestion comprend une logique de gestion de registre tampon d'entrée ( 36) qui comporte une bascule ( 52) de mémorisation des demandes d'écriture (EC) et une bascule ( 54) de représentation de l'état du re- gistre d'entrée ( 36), le chargement du registre d'entrée ( 36) étant provoqué par la simultanéité d'une demande d'écriture 22 - à l'entrée de l'unité et de l'état vide du registre et une demande d'écriture (DE) en mémoire RAM ( 10) étant élaborée *par une porte ( 64) en réponse à la présence d'informations à l'entrée du registre d'entrée ( 36) ou à l'intérieur de celui-ci. 11 Unité de stockage selon la revendication 9 ou 10, caractérisée en ce que le système de gestion comprend une logique de gestion des registres tampons de sortie ( 30 a, 30 b) comportant deux bascules ( 70 a, 70 b) de représentation de la présence d'informations dans les registres de sortie ( 30 a, b), respectivement, et des moyens pour positionner la première bascule ( 70 a) en réponse au chargement du premier registre de sortie ( 30 a) lors d'un cycle de lecture interne en mémoire RAM ( 10) et des moyens pour vider le second re- gistre ( 30 b) et restaurer la seconde bascule ( 70 b) en réponse à une demande de lecture (LE) par un utilisateur.