FR 2552916 A1 19850405 FR 8315510 A 19830929 File d'attente asynchrone à empilement de registres L'invention concerne les files d'attente du type "premier entré, premier sorti", largement utilisé en informatique et traitement numérique du signal, notamment pour cons5 tituer une mémoire tampon Elle concerne plus particulièrement les files d'attente asynchrones, c'est-à-dire n'imposant pas une relation temporelle déterminée entre l'entrée et la sortie, du type comprenant un empilement en cascade de p registres identiques de stockage de données, et une chaîne de commande 10 de p sousensembles identiques associés chacun à un des registres. Dans un exemple représentatif, la file d'attente comporte un empilement de p registres comportant tous le même nombre de positions binaires, et la chaîne logique de 15 commande est formée par un mécanisme à p positions binaires associées chacune à un registre de stockage. La file est agencée pour qu'une information chargée dans le premier registre progresse spontanément de registre en registre jusqu'à se stabiliser dans le dernier registre non vide Chaque lecture vide le dernier registre de l'empilement et la totalité de l'information stockée descend d'un degré dans la file. Un montage classique de réalisation d'une telle file est illustré en Figure 1 Chacun des registres 101, lop est associé a un sous-ensemble comportant une bascule 121, 12 p de type RS, toutes les bascules étant en cascade Chaque sous-ensemble fournit un signal logique agissant sur le registre associé et indicatif de l'état libre ou occupé du registre Ce signal logique est produit en fonction des 30 signaux logiques de sortie du sous-ensemble précédent (ou amont), du sous-ensemble suivant (ou aval), et du sousensemble lui-même, les deux sous-ensembles d'extrémité exigeant naturellement un montage légèrement différent. On voit sur la Figure 1 que le montage est tel que, 35 lorsque le sousensemble d'ordre i contient un 1 tandis que le sous-ensemble d'ordre i+ 1 contient un 0, le sousensemble d'ordre i+ 1 délivre, par l'intermédiaire d'une porte ET, un signal de commande de chargement du registre de rang Z 552916 i+ 1, ce signal étant utilisé pour, d'une part, porter à 1 le sousensemble d'ordre i+ 1 et pour, d'autre part, ramener à O le sous-ensemble d'ordre i. Il apparaît ainsi que le signal logique de sortie d'un 5 sous-ensemble tel que 121 n'agit sur le sous-ensemble suivant, par exemple 122, qu'après passage à travers le sous-ensemble lui-même, comme le font apparaître les liaisons en traits renforcés sur la Figure 1 o les diverses entrées et sorties portent les abréviations usuelles: He: demande d'écriture HI: demande de lecture DE: entrée de données DS: sortie de données Ve: validation d'entrée Vl: validation de lecture Un tel mécanisme a pour conséquence un temps de réaction important. Pour plus de commodité, la figure 1 porte également, entre parenthèses, les abréviations habituellement utilisées 20 sur les composants d'origine anglo-saxonne. Dans une file d'attente du genre montré en Figure 1, la progression de l'information dans les registres de données s'effectue au rythme des verrouillages et déverrouillages des bascules RS, ce qui conduit, en cas de file presque vide, à 25 une durée de descente importante (intervalle de temps entre l'entrée d'un mot de données dans le premier registre et disponibilité du mot en sortie). En effet, les registres 101 à 10 p lisent l'information en réponse aux signaux logiques successifs émis par les sous30 ensembles correspondants. L'invention vise à fournir une file d'attente du type ci-dessus défini, mais à fonctionnement rapide et presque indépendant du degré de remplissage de la file, restant toutefois d'une réalisation simple. Dans ce but, l'invention propose notamment une file d'attente dans laquelle les registres sont du type à verrouillage à un état transparent et un état verrouillé et chaque sous-ensemble comporte un commutateur constitué de façon à fournir, sur sa sortie reliée au registre associé, un signal logique représentatif de l'état du sous-ensemble amont ou aval suivant que le sous-ensemble comprenant le commutateur est libre ou occupé. Les registres mis en oeuvre par l'invention peuvent être d'un type connu, par exemple peuvent être constitués par des registres F 100-150 de la société FAIRCHILD Dans un te registre, les données appliquées à l'entrée apparaissent instantanément sur la sortie lorsqu'une entrée de commande 10 est à un premier niveau logique Lorsque cette entrée de commande passe à un second niveau logique, les données appliquées à l'entrée du registre immédiatement avant la transition restent appliquées sur la sortie. Grâce à l'emploi de tels registres, la chaîne de 15 registres n'apporte aucun ralentissement au transit des données le long de la cascade lorsque les registres sont dans l'état transparent. On pourrait penser qu'il était donc évident de substituer, aux registres classiques utilisés pour constituer des 20 files dans l'art antérieur, des registres présentant un état transparent Mais, en apparence, cette substitution n'apporte aucun avantage, car il faut que l'élément de commande des registres de contrôle qui accompagne l'information au cours de la descente dans la cascade progresse également jusqu'à valider l'accès aux données en sortie Or, la progression par "demande- acquittement" des bascules RS utilisées dans les sous-ensembles de l'art antérieur est lente par nature, de sorte que la substitution d'un type'de registres à un autre ne procure en soi aucun avantage. Les inventeurs ont d O, pour surmonter le problème, s'écarter complètement des solutions de l'art antérieur en ce qui concerne la constitution des sous-ensembles Dans la file d'attente suivant l'invention, telle que définie cidessus, la chaîne logique de commande est prévue pour engendrer 35 uniquement, lors de l'opération d'écriture, des signaux logiques d'état qui suivent la progression de l'information à travers les registres de données jusqu'à ce que cette information atteigne le dernier registre vide précédant un registre occupé. Dans un mode avantageux de réalisation, chaque commutateur est constitué par un multiplexeur 2 vers 1. La sortie du multiplexeur commande directement l'état du registre associé. -En général, chaque multiplexeur aura une entrée reliée à la sortie du multiplexeur de l'étage précédent une entrée reliée à la sortie de l'étage suivant et une entrée de commande reliée à sa propre sortie, le registre 10 associé étant transparent lorsqu'il reçoit un zéro logique de sortie du multiplexeur, laquelle reflète l'état de l'entrée reliée au multiplexeur précédent lorsque l'entrée de commande reçoit un zéro et réflète l'état de l'entrée reliée au multiplexeur suivant lorsque l'entrée de commande 15 reçoit un 1. Pour qu'il y ait fonctionnement correct de la chaîne de multiplexeurs, il sera en général nécessaire de retarder la remontée de l'information de chaque multiplexeur au précédent Pour cela, il suffit d'appliquer la sortie de chaque multiplexeur au précédent par l'intermédiaire d'un élément de retard Cet élément de retard sera tel que la somme du retard qu'il fournit et du temps de traversée du multiplexeur soit supérieure au temps de commutation du multiplexeur. La file d'attente peut être complétée par des sorties d'indication d'état prélevées à la sortie des commutateurs de certains au moins des étages Sur chacune de ces sorties pourra être interposée une cellule logique de filtrage destinée à éliminer les transitoires provoqués 30 par la descente ou la remontée de l'information. L'invention sera mieux comprise à la lecture de la description qui suit d'un mode particulier de réalisation donné à titre d'exemple non limitatif La description se réfère aux dessins qui l'accompagnent, dans 35 lesquels: la Figure 1, déjà mentionnée, est un schéma synoptique de principe montrant une file d'attente suivant l'art antérieur, la Figure 2 est un schéma synoptique de principe 5 montrant la coopération entre trois sousensembles successifs d'une file d'attente suivant l'invention, la Figure 3 est un schéma synoptique montrant la constitution d'ensemble d'une file d'attente comportant des sous-ensembles du type montré en Figure 2, la Figure 4 est un chronogramme montrant l'allure des signaux qui apparaissent à divers emplacements du synoptique de la Figure 3, la Figure 5 est un schéma de principe montrant l'opération de filtrage de sortie destinée à assurer une 15 plus grande sécurité de fonctionnement, la Figure 6 est un schéma de principe d'une cellule de filtrage utilisable dans le schéma de la Figure , la Figure 7 est un chronogramme montrant les 20 signaux intervenant dans l'opération de filtrage. La constitution générale d'une file d'attente suivant l'invention apparaît sur la Figure 2, qui montre schématiquement le mode de commande par multiplexeur sur trois registres successifs, et sur la Figure 3, sur la25 quelle apparaissent les sous-ensembles de commande des premiers et derniers registres, dont la structure est particulière. On voit sur la figure 2 l'e commutateur 16 i associé au registre l Oi, constitué par un multiplexeur 2 30 vers 1 La sortie ai du multiplexeur commande directement l'état du registre associé: si ai = O, le registre est transparent, si a = 1, le registre est verrouillé L'évolution du commutateur 16 i est gouvernée par trois sources d'information, son état présent, l'état de l'étage au35 dessus 16 i 1 l l'état de l'étage au- dessous 16 i+I Mais, à un instant donné, deux seulement de ces sources sont déterminantes. En effet, si l'étage i est libre, l'action du commutateur 16 i n'est déterminée que par l'état de l'étage ii 1 De même s'il retient une information, son changement d'état ne peut provenir que de la disponibilité de l'étage du dessous d'ordre i+ 1. Dans le cas de l'emploi d'un commutateur constitué par un multiplexeur, ces fonctions peuvent être obtenues en reliant l'entrée de commande 18 du multiplexeur à sa sortie Si la sortie est à zéro, c'est la sortie du multiplexeur du dessus 10 16 i_ 1 qui est déterminante Si la sortie est à 1, c'est la sortie de l'étage 16 i+ 1 qui est déterminante. Dans la pratique, il sera nécessaire d'introduire un retard dans la commande d'un multiplexeur 16 i par le multiplexeur 16 i+ 1, pour un motif qui sera exposé plus loin Ce 15 retard peut être obtenu à l'aide d'une ligne à retard 20. i grâce auquel un changement d'état de la sortie ai+ 1 n'est analysé sous forme d'un ordre a'i+l par le multiplexeur 16 i i+ 1 qu'au bout d'un temps q 2 ' On retrouve, sur la Figure 3, les entrées et sorties 20 usuelles He, H 1, DE, DS, Ve et V 1 déjà montrées sur la Figure 1 La demande d'écriture est matérialisée par un front montant sur l'entrée He, reliée à une bascule 22 de prise en compte des demandes externes d'écriture Le mot à écrire, placé à l'entrée DE de la file lorsque le front montant est appliqué,passe alors à travers tous les registres dans l'état transparent pour venir se stocker dans le dernier. De même, les demandes de lecture sont matérialisées par des fronts montants appliqués sue l'entrée H 1 et, lorsque la file n'est pas vide, la première donnée accessible est 30 disponible sur la sortie DS L'activation de l'entrée Hl détruit au surplus cette information, qui est remplacée par le contenu du registre immédiatement supérieur 10 op 1 s'il n'était pas vide. Le fonctionnement réel des circuits apparaît sur le chronogramme de la Figure 4, qui montre les cycles d'écriture et de lecture Sur cette Figure, chacune des lignes montre l'allure des signaux qui apparaissent au point du schéma synoptique de la Figure 3 qui est désigné par la même réfé- rence Pour simplifier, on supposera que la file est à quatre étages, c'est-à-dire comporte quatre registres 100, 101, 102 et 103. Dans ce fonctionnement apparaissent trois constantes de temps importantes: q O: temps de commutation de chaque multiplexeur 16, c'est-à- dire temps au bout duquel un ordre de commande se reflète en sortie; ql: temps de traversée du multiplexeur, c'est-à-dire 10 temps au bout duquel l'état de l'entrée analysée se reflète à la sortie; q 2: temps de parcours d'une ligne à retard 20. Au surplus intervient, en entrée et en sortie, le temps ô de réaction des bascules d'écriture 22 et de lecture 15 24. On supposera que l'information progresse au travers des registres 10, lorsqu'ils sont transparents, plus vite qu'au travers de la chaîne logique de commande Mais si le cas contraire se présentait, il suffirait de provoquer un 20 allongement du temps ql de traversée des multiplexeurs ou de prépositionner les données DE par rapport à la génération du signal He avec une avance suffisante pour garantir que l'information est arrivée au fond de la file lorsque celle-ci est vide, avant que le signal de commande fourni par le dernier 25 multiplexeur 16 ne verrouille le dernier registre 10. Dans le cas illustré sur la Figure 4, un ordre d'écriture est matérialisé à l'instant to par un front montant sur l'entrée He Ce front montaht provoque, au bout du temps ô, la montée de la bascule d'écriture 22 (ligne BE). 30 Si l'on suppose le registre 100 vide, donc transparent, la sortie a O est initialement à 0 Au bout du temps ql de traversée du multiplexeur 160, la sortie a O passe à 1 et fait commuter de nouveau le multiplexeur 160, au bout du temps qo de commutation En effet, le signal a 1, et donc le signal 35 a'i, est à zéro si le registre 101 est vide. L'information descend ainsi jusqu'au dernier registre qui précède un registre plein et verrouillé. L'utilité des retards q 2 dans les circuits de remontée de commande de chaque multiplexeur vers le multiplexeur précédent apparaît sur la Figure 4 Si l'on suppose que les signaux de sortie ai et ai+ 1 de deux multiplexeurs consécutifs 16 i et 16 i+ 1 (Figure 2) sont au niveau bas, le signal ai passe à l'état haut à la suite d'une écriture dans le registre i Le multiplexeur 16 i regarde a'i+î au bout du temps de commutation qo (Figure 4) Il faut qu'à ce moment a'i reflète l'état de ai+ 1 avant que ce dernier n'ait lui-même subi la commutation Pour qu'il y ait un fonctionnement correct, il faut que les différents temps de propagation soient reliés par la relation: qo de q 1 +q 2. La file d'attente dont la constitution de principe est montrée en Figure 3 doit être munie d'indicateurs d'état si l'on veut disposer d'une information concernant le contenu de la file. Les états non plein ou non vide de la file sont indiqués,-comme 25 dans une file en registre de constitution classique, par des signaux Ve et Vl respectivement prélevés à la sortie du premier multiplexeur et à la sortie du dernier multiplexeur. Ve = O signifie que le premier registre 100 est verrouillé et qu'aucune écriture ne peut donc être engagée. Inversement, Vl = 1 indique qu'une information est disponible dans le dernier registre 10 p. La file d'attente peut avantageusement être complétée par des éléments indiquant les états de remplissage intermédiaires De tels éléments sont indiqués schématiquement sur 35 la Figure 5. Sur cette figure, seuls ont été représentés les registres 100, 10 i et 10 p, ainsi que les entrées et sorties En principe, il suffit, pour déterminer que la file est au moins remplie jusqu'au niveau du registre i, de vérifier que le signal ai correspondant est au niveau 1 L'infor5 mation peut alors être prélevée sur des sorties intermédiaires 261, 26 i, 26 p_ 1 Mais cette indication n'est pas certaine par suite des transitoires provoqués par la progression des informations et des trous Ce défaut peut être écarté en interposant, sur chacune des sorties 26, une cellule logique 10 de filtrage 28 destinée à faire disparaître les impulsions positives ou négatives ayant une durée inférieure à une valeur déterminée La cellule de filtrage 28 peut avoir la constitution montrée en Figure 6 et comporter une bascule 30 interposée sur le trajet du signal vers la sortie 32 i L'entrée 15 d'horloge de la bascule 30 reçoit un ordre élaboré par une porte OU EXCLUSIF 34 dont les entrées sont reliées l'une à la sortie 32 i, l'autre à l'entrée par l'intermédiaire d'une ligne à retard T Dès que la porte 34 détecte une différence entre le signal d'entrée retardé de t et le signal de sortie, elle 20 active l'entrée d'horloge de la bascule 30 qui saisit l'état actuel de 26 i: on voit sur le chronogramme de la Figure 6, o les lignes indiquent la forme des signaux aux emplacements désignés par la même lettre sur la Figure 6, que toute impulsion d'une durée inférieure à T, par exemple celles désignées par 25 36, ne provoque aucun changement d'état de la bascule 30, les basculements n'étant provoqués que par des signaux représentatifs d'un véritable changement de remplissage de la file, comme indiqué aux instants t 1 255 Z 916 REVENDICATIONS 1 File d'attente asynchrone comprenant un empilement en cascade de p registres identiques de stockage de données et une chaîne logique de commande de p sous-ensembles identiques associés chacun à un des registres, caractérisée en ce que les registres ( 10) sont du type à verrouillage ayant un état transparent et un état verrouillé et en ce que chaque sous-ensemble comporte un commutateur ( 16) constitué de façon à fournir, sur sa sortie a reliée au registre associé, 10 un signal logique représentatif de l'état du sous-ensemble amont ou aval suivant que le registre associé au sous-ensemble comprenant le commutateur est libre ou occupé. 2 File d'attente selon la revendication 1, caractérisée en ce que chaque commutateur est constitué par un 15 multiplexeur 2 vers 1 dont la sortie commande directement l'état du registre associé. 3 File d'attente selon la revendication 2, caractérisée en ce que chaque multiplexeur ( 16 i) comporte une entrée reliée à la sortie du multiplexeur de l'étage précé20 dent ( 16 i_ 1), une entrée reliée à la sortie de l'étage suivant ( 16 i+ 1) et une entrée de commande reliée à sa propre sortie, le registre associé étant transparent lorsqu'il reçoit un zéro logique de la sortie du multiplexeur, laquelle reflète l'état de l'entrée reliée au multiplexeur précédent lorsque l'entrée de commande reçoit un zéro et reflète l'état de l'entrée reliée au multiplexeur suivant lorsque l'entrée de commande reçoit un 1. 4 File d'attente selon l'une quelconque des revendications 2 et 3, caractérisée en ce que la sortie de chaque multiplexeur ( 16 i) est appliquée directement à son entrée ( 18) et est appliquée par l'intermédiaire d'un élément de retard ( 20 i) à une entrée de données du multiplexeur précédent ( 16 i_ 1) File d'attente selon la revendication 4, carac35 térisée en ce que l'élément de retard fournit un retard (q 2) tel que la somme de ce retard et du temps de traversée du multiplexeur soit supérieure au temps de commutation du multiplexeur. I 1 6 File d'attente selon l'une quelconque des revendications précédentes, caractérisée en ce qu'elle comporte des sorties d'indication d'état prélevées à la sortie des commutateurs de certains au moins des étages. 7 File d'attente selon la revendication 6, caractérisée en ce qu'au moins une des sorties d'indication d'état est munie d'une cellule logique de filtrage ( 28) destinée à éliminer les transitoires de durée inférieure à un seuil (T) prédéterminé