Brevet FR2601491A1 — publié le 19880115

Mémoire de file d'attente. La présente invention concerne l'électronique et plus particulièrement les mémoires d'informations binaires de type file d'attente, également connues sous la désignation FIFO dans lesquelles la première information introduite est la première extraite. Elle a pour but une mémoire de file d'attente ayant une structure simple facilement intégrable selon une technique de prédiffusé ou de précaractérisé et ne mettant en oeuvre, à la lecture comme à l'écriture, qu'un faible nombre de couches logiques afin d'atteindre 10 une vitesse de fonctionnement la plus élevée possible. Elle a pour objet une mémoire de file d'attente pour mots binaires à N digits, N étant un entier supérieur à zéro, comportant: - une pile de données formée d'un ensemble de N registres à décalage à P étages, P étant un entier égal au nombre maximum de mots binaires 15 empilables dans la mémoire de file d'attente, qui sont pourvus d'une commande de décalage dans un sens placée sous le contrôle d'une entrée de commande d'écriture de la mémoire de file d'attente, d'une entrée série de données reliée à l'un des digits d'une entrée parallèle d'inscription de données de la mémoire de file d'attente et de P sor20 ties parallèles de données, - un registre de pointage de pile constitué d'un registre à décalage bidirectionnel à P + 1 étages qui est pourvu d'une entrée de commande de décalage dans un sens, dit sens de décalage d'écriture, placée sous le contr8le de l'entrée de commande d'écriture de la mémoire de file 25 d'attente, d'une entrée de commande de décalage dans l'autre sens, dit sens de décalage de lecture, placée sous le contr8le d'une entrée de commande de lecture de la mémoire de file d'attente, de P + 1 sorties parallèles de données et d'un circuit de prépositionnement de tous ses étages permettant d'inscrire dans son premier étage repéré par rapport 30 au sens de décalage d'écriture, un élément binaire, dit pointeur, circulant ultérieurement dans le dit registre de pointage de pile au gré des commandes d'écriture et de lecture appliquées à la mémoire de file d'attente et - N sélecteurs 1 parmi P qui sont pourvus chacun de P entrées de 35 -- 2 -sélection de données connectées aux P sorties parallèles de données d'un registre à décalage de la pile de données, d'une sortie de sélection de données constituant l'un des digits d'une sortie parallèle de lecture de données de la mémoire de file d'attente et de P entrées 5 d'adressage connectées aux sorties parallèles de données des P derniers étages du registre de pointage de pile repérés par rapport au sens de décalage d'écriture, et qui sélectionnent les N digits du mot binaire inscrit dans les étages des registres de la pile de données d'un rang, par rapport au sens de décalage d'écriture, inférieur d'une 10 unité à celui de l'étage du registre de pointage de pile renfermant le pointeur. Cette mémoire de file d'attente est pourvue de manière avantageuse de moyens de blocage de sa commande d'inscription en cas de présence du pointeur dans le dernier étage du registre de pointage de 15 pile par rapport au sens de décalage d'écriture afin d'éviter un dépassement de la capacité de sa pile et de moyens de blocage de sa commande de lecture en cas de présence du pointeur dans le premier étage du registre de pointage de pile repéré par rapport au sens de décalage d'écriture, afin d'éviter qu'il ne sorte du registre de poin20 tage. Selon un mode préféré de réalisation, le pointeur est un élément binaire de niveau logique 1 qui se déplace parmi un ensemble d'éléments binaires au niveau logique 0 dans les étages du registre de pointage de pile et chaque sélecteur 1 parmi P est formé d'un ensemble 25 de portes logiques de type "et" à deux entrée connectées l'une à une sortie de donnéesd'un étage de registre à décalage de la pile de données et l'autre à la sortie de données de l'étage du registre de pointage de pile d'un rang supérieur d'une unité, ce rang étant repéré par rapport au sens de décalage d'écriture, les dites portes logiques 30 ayant une sortie à collecteur ouvert permettant un couplage par un "ou câblé". D'autres caractéristiques et avantages de l'invention ressortiront de la description ci-après d'un mode de réalisation donné à titre d'exemple. Cette description sera faite en regard de la figure unique 35 qui représente le schéma d'une mémoire de file d'attente selon l'invention pour mots binaires à deux digits. _3 2 62601491 On distingue essentiellement sur la figure deux registres à décalage unidirectionnels 10,20 constituant une pile de données pour mots binaires à deux digits, un registre à décalage bidirectionnel 30 constituant un registre de pointage de pile et deux ensembles de portes 5 logiques de type "et" 40,50 constituant des sélecteurs de données reliés aux sorties des registres à décalage 10,20 de la pile de données et adressés par le registre à décalage 30 du registre de pointage de pile. Chaque digit des mots binaires mémorisés dans la pile de données 10 est enregistré séparément dans un registre à décalage distinct 10,20 à un seul sens de décalage supposé être de gauche à droite sur la figure. Ces registres à décalages 10,20 comportent un nombre d'étages P égal au nombre maximum de mots binaires-que l'on peut stocker dans la pile de données. Ils sont pourvus d'une entrée série de données 11 15 respectivement 21 reliée à l'un des digits d'une entrée parallèle d'inscription de données 1 de la mémoire de file d'attente, d'une entrée de commande de décalage 12 respectivement 22 placée sous le contrôle d'une entrée de commande d'écriture 2 et d'une entrée de sélection en écriture 3 de la mémoire de file d'attente par l'inter20 médiaire d'une porte logique de type "et" 60 et d'une sortie de données à chaque étage. Le registre de pointage de pile repère l'étage des registres à décalage de la pile de données dans lequel se situe le mot binaire le plus anciennement inscrit sans avoir été lu. Son registre à décalage 25 bidirectionnel 30 comporte P + 1 étages, un étage supplémentaire par rapport aux registres à décalage de la pile de données ayant été prévu comme position de repli pour le pointeur lorsque la pile de données est vide de mot binaire non lu. Il est pourvu d'un circuit de prépositionnement 31 muni d'une commande d'activation reliée à une 30 entrée d'initialisation 4 de la mémoire de file d'attente, d'une entrée 32 de commande de décalage dans un sens, dit sens de décalage d'écriture, supposé être de gauche à droite sur la figure comme le sens de décalage des registres de la pile de données et d'une entrée 33 de commande de décalage en sens inverse dit sens de décalage de lecture, 35 supposé être de droite à gauche sur la figure; _ 4 2 2601491 Pour la clarté de la description, les étages de6 différents registres à décalage 10, 20, 30 seront considérés ultérieurement dans un ordre croissant allant dans le sens de décalage d'écriture c'est-àdire de gauche à droite sur la figure. Le circuit de prépositionnement 31 est un circuit câblé de remise à zéro et à un des étages du registre à décalage bidirectionnel 30. A l'initialisation de la mémoire de file d'attente, il permet, comme représenté, de charger dans le premier étage 34 un niveau logique 1 destiné à être utilisé comme pointeur et dans tous les autres 10 étages un niveau logique 0. L'entrée 32 de commande de décalage dans le sens de l'écriture est raccordée en parallèle sur les entrées de commande de décalage 12 et 22 des registres 10 et 20 de la pile de données ce qui permet de déplacer le pointeur dans le sens de décalagee'neCsyinreonisme avec 15 l'introduction des mots binaires dans la pile de données. Pour éviter que le pointeur ne s'échappe du registre 30 par suite d'une saturation de la mémoire de file d'attente, la présence du pointeur est repérée dans le dernier étage 35 du registre 30 et utilisée pour bloquer les entrées de commande de décalage 12, 22, 32 par l'intermédiaire de la 20 porte logique de type "et" 60 qui reçoit sur une entrée auxiliaire le signal de sortie du dernier étage 35 du registre 30 transmis par l'intermédiaire d'un inverseur 61. L'entrée 33 de commande de décalage dans le sens de la lecture est placée sous le contr8le d'une entrée de commande de lecture 5 et de 25 sélection en lecture 6 de la mémoire de file d'attente par l'intermédiaire d'une porte logique de type "et" 62 de manière à déplacer le pointeur dans le sens de décalage de lecture à chaque lecture d'un mot binaire dans la pile de données. Pour éviter que le pointeur ne s'échappe du registre à décalage 30 par suite d'une 30 lecture de la pile de données alors qu'il est dans le premier étage 34 du registre à décalage 30, sa position dans ce premier étage 34 est repérée et utilisée pour bloquer l'entrée de commande de décalage de lecture 33 par l'intermédiaire de la porte logique de type "et" 62 qui reçoit sur une entrée auxiliaire le signal de sortie de ce premier 35 étage 34 transmis par l'intermédiaire d'un inverseur 63. - 5 -2601491 Le pointeur chargé initialement dans le premier étage 34 donne par sa position dans les P derniers étages du registre à décalage 30 celle, dans les étages des registres 10, 20 de la pile de données, du mot binaire le plus anciennement inscrit sans avoir été lu puisqu'il 5 est déplacé, comme ce dernier, dans le sens de décalage d'écriture à chaque introduction d'un nouveau mot dans la pile de données et inversement dans le sens de décalage de lecture à chaque lecture d'un mot binaire dans la pile de données. Du fait de l'utilisation du premier étage 34 du registre 30 comme position de repli pour le 10 pointeur, ce dernier occupe dans le registre 30 l'étage de rang immédiatement supérieur à celui de l'étage des registres 10, 11 de la pile de données renfermant le mot binaire le plus anciennement inscrit sans avoir été lu. L'ensemble 40 de portes logiques de type "et" constitue un sé15 lecteur de données 1 parmi P permettant de lire l'étage du registre à décalage 10 de la pile de données de rang immédiatement inférieur à celui de l'étage du registre à décalage 30 renfermant le pointeur. Il renferme P portes logiques jouant le r8le d'interrupteurs individuels disposés entre une sortie commune 64 et la sortie de données de chacun 20 des étages du registre à décalage 10 de la pile de données, et commandés par les P derniers étages du registre à décalage 30. Les portes logiques sont de type "et" à deux entrées avec une sortie à haute impédance au niveau logique 0 et à faible impédance au niveau logique 1. Elles ont chacune une entrée connectée à la sortie de 25 données d'un étage du registre à décalage 10 de la pile de données, l'autre entrée connectée à la sortie de données de l'étage du registre à décalage 30 de rang immédiatement supérieur et leur sortie raccordée à la sortie commune 64 pour former un "ou câblé" matérialisé sur la figure par une résistance 65 reliée à la masse. Toutes les portes 30 logiques de l'ensemble 40 qui sont reliées en entrée aux sorties de données d'étages du registre à décalage 30 ne renfermant pas le pointeur sont bloquées par un niveau logique 0 et délivrent en sortie un niveau logique 0 sous forte impédance. Celle qui est reliée à la sortie de données d'un étage du registre à décalage 30 contenant le pointeur, 35 s'il y en a une, c'est-à-dire si le pointeur n'est pas dans le premier étage 34 qui ne commande aucune porte de l'ensemble 40, est en - 6 - =2601491 revanche débloquée, recopie l'état de l'étage de rang immédiatement inférieur du registre à décalage 10 et engendre en sortie, soit un niveau logique 1 sous faible impédance qui prime sur les niveaux logiques 0 délivrés par toutes autres portes logiques de 5 l'ensemble 40, soit un niveau logique O sous forte impédance qui confirme les niveaux logiques 0 délivrés par toutes les autres portes logiques de l'ensemble 40. L'ensemble 50 de portes logiques de type "et", de même constitution que l'ensemble 40, joue le même r8le que ce dernier vis à 10 vis du registre à décalage 20 de la pile de données. Les P portes logiques qu'il renferme sont reliées à une sortie commune 66 formant un "ou câblé" matérialisé sur la figure par une résistance 67 connectée à la masse. Les sorties 64 et 66 des ensembles de portes logiques 40 et 50 15 sont reliées aux digits d'une sortie 7 de lecture de données de la mémoire de file d'attente par l'intermédiaire de deux portes logiques de type "et" 68, 69 contrôlées par l'entrée de sélection en lecture 6 de la mémoire de file d'attente. La structure qui vient d'être décrite pour la mémoire de file 20 d'attente met en oeuvre en écriture comme en lecture un très faible nombre de couches logiques ce qui lui donne un maximum de rapidité. Sa simplicité et sa répétitivité permettent une intégration aisée. Il est en outre facile d'adapter ses dimensions aux besoins, sa pile de données pouvant être rétrécie et réduite à un seul registre à décalage ou 25 élargie et comporter plus de deux registres à décalage en parallèle ou rallongée, des entrées sorties pouvant être prévues pour permettre des mises en cascade. On peut, sans sortir du cadre de l'invention modifer certaines dispositions ou remplacer certains moyens par des moyens équivalents. 30 7 REVENDICATIONS: 1/ Mémoire de file d'attente haute vitesse pour mots binaires à N digits, N étant un entier supérieur à zéro, caractérisée en ce qu'elle comporte: une pile de données formée d'un ensemble de N registres à décalage (10, 20) à P étages, P étant un entier égal au nombre maximum de mots binaires empilables dans la mémoire de file d'attente, qui sont pourvus d'une entrée de commande de décalage dans un sens (12, 22) placée sous le contrôle d'une entrée de commande d'écriture (2) de la mémoire de file 10 d'attente, d'une entrée série de données (11) reliée à l'un des digits d'une entrée parallèle (1) d'inscription de données de la mémoire de file d'attente et de P sorties parallèles de données, - un registre de pointage de pile constitué d'un registre à décalage bidirectionnel (30) à P + 1 étages, qui est pourvu d'une entrée (32) de 15 commande de décalage dans un sens, dit sens de décalage d'écriture, placée sous le contrôle de l'entrée de commande d'écriture (2) de la mémoire de file d'attente, d'une entrée (33) de commande de décalage dans l'autre sens, dit sens de décalage de lecture, placée sous le contrôle d'une entrée de commande de lecture (5) de-la mémoire de file 20 d'attente, de P + 1 sorties parallèles de données et d'un circuit- de prépositionnement (31) de tous ses étages, le dit circuit de prépositionnement (31) étant muni d'une commande d'activation reliée à une entrée d'initialisation (4) de la mémoire de file d'attente et permettant d'inscrire dans un premier étage (34) repéré par rapport au sens de 25 décalage d'écriture un élément binaire, dit pointeur, circulant ultérieurement dans les étages des registres de pointage de pile au gré des commandes d'écriture et de lecture appliquées à la mémoire de file d'attente et, - N sélecteurs 1 parmi P (40, 50) qui sont pourvus chacun de P entrées de 30 sélection de données connectées aux P sorties parallèles de données d'un registre à décalage (10, 20) de la pile de données, d'une sortie de sélection de données constituant l'un des digits d'une sortie parallèle de lecture de données (7) de la mémoire de file d'attente et des P entrées d'adressage connectées aux sorties parallèles de données des P 35 -8 derniers étages du registre de pointage de pile (30) repérés par rapport au sens de décalage d'écriture, et qui sélectionnent les N digits du mot binaire inscrits dans les étages de registre à décalage (10, 20) de la pile de données d'un rang, par rapport au sens de 5 décalage d'écriture, inférieur d'une unité à celui de l'étage du registre de pointage de pile (30) renfermant le pointeur. 2/ Mémoire selon la revendication 1 caractérisée en ce qu'elle comporte des moyens de blocage des entrées de commande de décalage dans le sens de décalage d'écriture (12, 22, 32) des registres à décalage (10, 20, 30) 10 de la pile de données et du registre de pointage de pile en cas de présence du pointeur dans le dernier étage (35) du registre de pointage de pile, étage repéré par rapport au sens de décalage d'écriture. 3/ Mémoire selon la revendication 1 caractérisée en ce qu'elle comporte des moyens de-blocage de l'entrée (33) de commande de décalage dans le 15 sens de décalage de lecture du registre à décalage (30) du registre de pointage de pile en cas de présence du pointeur dans le premier étage (34) du registre de pointage de pile, étage repéré par rapport au sens de décalage d'écriture. 4/ Mémoire selon la revendication I dans laquelle le pointeur est un 20 élément binaire au niveau logique 1 circulant parmi des éléments binaires au niveau logique 0 dans le registre de pointage de pile (30) caractérisée en ce que chaque sélecteur 1 parmi P (40, 50) comporte un ensemble de P portes logiques de type "et" à deux entrées avec une sortie à haute impédance au niveau logique 0 et à faible impédance au niveau 25 logique 1, chacune de ces portes logiques ayant une entrée connectée à la sortie de données d'un étage d'un registre à décalage (10, 20) de la pile de données, l'autre entrée connectée à la sortie de données de l'étage du registre à décalage (30) du registre de pointage de pile de rang immédiatement supérieur par rapport au sens de décalage d'écriture, et sa sortie 30 reliée par un "ou câblé" aux sorties des autres portes logiques du sélecteur considéré.