Brevet FR2617302A1 — publié le 19881230

-1 Circuit pour mémoriser des états de disponibilité de ressources logiques, telles que cellules de mémoire, et établir des adresses de ressources libres La présente invention concerne, d'une manière générale, la gestion de la disponibilité de ressources logiques. Ces ressources peuvent être par exemple des ports d'accès, des serveurs, des unités de traitement de données adressables, ou des unités de mémoire d'une base de données. Afin de fixer les idées, on se réfère dans la suite & des ressources logiques simples telles que des cellules d'une mémoire de données. Ainsi, en particulier, l'invention a trait & la surveillance de la disponibilité de cellules d'une mémoire de données, du genre mémoire vive RAM, dans lesquelles sont écrites et lues des données & des instants pratiquement aléatoires. En d'autres termes, la réception des données dans la mémoire est tout à fait sporadique. Il est alors nécessaire de connaître en permanence non seulement les adresses des cellules occupées ayant déjà mémorisé des données et non encore lues. mais également les adresses des cellules inoccupées afin de les adresser en écriture pour mémoriser de prochaines données reçues. La surveillance permanente de l'état de disponibilité des cellules de la mémoire de données et l'adressage dynamique en écriture des cellules de données permettent notamment d'optimiser la capacité de la mémoire de données en fonction du flux statistique moyen des données reçues. A titre d'exemple, la mémoire de données peut être une mémoire tampon incluse dans un système de commutation de données asynchrones, et éventuellement synchrones, rassemblées en paquets. Les paquets reçus sont transmis sporadiquement par des sources de données et sont ainsi à écrire à des instants aléatoires dans la mémoire de données. En lecture, les paquets d'une source de données sont à retransmettre vers une ou plusieurs sources de données, ou bien les paquets de plusieurs sources -2 - de données sont à retransmettre vers une même source de données. Il en résulte que la lecture des paquets dépend de la capacité de réception des sources de données, et par suite, la durée de mémorisation des paquets est fluctuante. Aussi, afin de ne point perdre des données reçues, il est nécessaire de les écrire dans des cellules inoccupées, dépourvues de données antérieures déjà écrites et non encore lues. La présente invention vise donc à résoudre ce problème de -surveillance permanente de la disponibilité d'une mémoire de données à accès aléatoire, et plus généralement la disponibilité d'un ensemble de ressources logiques, en fournissant un circuit pour établir les adresses de cellules disponibles dans la mémoire de données en fonction des états libres et occupés des cellules de données. A cette fin, un tel circuit selon l'invention est caractérisé en ce qu'il comprend une matrice de cellules à un bit qui mémorisent respectivement des bits d'état de disponibilité des ressources de l'ensemble, des moyens d'adressage en écriture pour adresser sélectivement lesdites cellules de la matrice afin d'écrire dans une cellule adressée un bit d'état de disponibilité correspondant à la ressource respective, et des moyens reliés aux sorties de toutes les cellules de la matrice pour détecter les cellules de la matrice contenant chacune un bit d'état libre afin d'établir l'adresse de la ressource disponible correspondant à l'une des cellules de matrice détectées. Plus précisément, les moyens pour détecter les cellules de la matrice contenant chacune un bit d'état libre comprennent dés moyens reliés aux sorties de toutes les cellules de matrice pour lire les bits d'état libre dans les cellules de matrice, et des moyens reliés aux moyens pour lire pour sélectionner prioritairement l'une des cellules de la matrice dans laquelle est lu un bit d'état libre en fonction d'un ordre de priorité des cellules de matrice prédéterminé ou programmé. Selon une réalisation préférée décrite en détail dans la suite de la description, la surveillance des états de ressources logiques organisées en un ensemble matriciel, telles que des cellules d'une mémoire de données, s'effectue d'abord ligne par ligne - respectivement colonne par colonne - afin d'y déceler les lignes - respectivement colonnes - de - 3 mémoire contenant des cellules libres et de sélectionner l'une d'entre elles, puis colonne par colonne - respectivement ligne par ligne - afin de sélectionner une cellule libre dans la ligne - respectivement colonnesélectionnée dans laquelle sera écrite les prochaines données reçues. Dans ce cas, les moyens pour détecter comprennent d'une part, plusieurs premiers moyens respectivement assignés aux lignes de la matrice de cellules pour lire les bits d'état libre dans les lignes de la matrice, des moyens reliés aux premiers moyens pour lire poursélectionner prioritairement l'une des lignes de la matrice dans laquelle est lu au moins un bit d'état libre, en fonction d'un ordre de priorité des lignes de matrice prédéterminé ou programmé, et des premiers moyens reliés aux premiers moyens pour sélectionner pour établir l'adresse de la ligne de matrice prioritaire sélectionnée, d'autre part, plusieurs seconds moyens respectivement assignés aux colonnes de la matrice de cellule et reliés aux premiers moyens pour établir pour lire les bits d'état libre dans la ligne prioritaire sélectionnée, des seconds moyens reliés aux seconds moyens pour lire pour sélectionner prioritairement l'une des colonnes de la matrice ayant une cellule incluse dans la ligne prioritairesélectionnée et contenant un bit d'état libre lu, en fonction d'un ordre de priorité des colonnes de matrice prédéterminé ou programmé, et des seconds moyens reliés aux seconds moyens pour sélectionner pour établir l'adresse de la colonne de matrice prioritaire sélectionnée. En particulier, lorsque toutes les cellules de la mémoire de donnée sont susceptibles de mémoriser des données asynchrones, la matrice de cellules à un bit est une "image" de la cellule de données, c'est-à-dire possède un nombre de cellules égal à celui de la mémoire de données, et les adresses de ligne et colonne des cellules de la matrice sont respectivement identiques aux adresses des cellules de la mémoire de données. D'autres caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la description suivante en référence aux dessins annexés correspondants dans lesquels: - la Fig. 1 est un bloc-diagramme détaillé d'un circuit pour établir des adresses de cellules disponibles d'une mémoire de données selon l'invention; et -4 - la Fig. 2 montre en détail une cellule à un bit d'état incluse dans une matrice du circuit montré à la Fig. 1. Selon la réalisation décrite ci-après, il est supposé qu'un circuit selon l'invention est destiné à surveiller une mémoire de données à accès aléatoire RAN ayant I x J = 1024 cellules de données. Les cellules dans la mémoire de données constituent des ressources logiques particulières, telles que définies ci-dessus. Les cellules sont par exemple organisées en une matrice ayant I = 16 colonnes et J=64 lignes (ou rangées), afin de permettre d'enregistrer-1024 octets, tels que des premiers octets, dits étiquettes, dans des blocs de données de longueur constante transmis par 16 multiplex temporels entrants parallèles. Chaque multiplex convoie des trames de 68 blocs de données par exemple, précédés par un bloc de verrouillage de trame, et chaque bloc de données comporte 16 octets, soit 16 x 8 = 128 bits. Un bloc de données peut être compoqsé soit de données en mode-paquet, c'est-à-dire d'un paquet asynchrone proprement dit, éventuellement vide, soit de données en mode- circuit, c'est-à-dire un ensemble de 16 octets consécutifs d'une voie de parole. Ainsi dans ce cas, chaque cellule de la mémoire de données est propre à mémoriser 8 bits, soit un octet de données. En référence à la Fig. 1, le circuit pour mémoriser les états des cellules de la mémoire de données et établir des adresses de cellules libres de cette mémoire de données, appelé ci-après "circuit de mémorisation d'adresses disponibles" MAD, est organisé autour d'une matrice 1 ayant I = 16 colonnes et J = 64 lignes (ou rangées) de cellules à un bit identiques lo,c, à =z-l.J-= l.s. Chacune des cellules, telles que la cellule 1l ,, o i est un indice entier compris entre 0 et I-1 = 15 et j un indice entier compris entre 0 et J - 1 = 63, est destinée & mémoriser l'état de la cellule d'un octet correspondante dans la mémoire de données. Cet état est indiqué par un bit "1" lorsque la cellule de mémoire de données est disponible, c'est- à-dire libre de données, ou contenant des données qui ne sont plus à lire et qui peuvent être effacées, et par un bit "0" lorsque la cellule de mémoire est indisponible, c'est-à-dire occupée par un octet de données qui doit être lu au moins une fois, respectivement. Comme montré à la Fig. 2, la cellule lij comprend deux portes ET à deux entrées 10 et 11, une porte ET 12 ayant une entrée directe et une Z617302 -5- entrée inverseuse, et une porte OU & deux entrées 13. Une première entrée d'adressage de la porte 10 est reliée à un fil 14. adressant les 64 cellules 1,o à i,.6* de la colonne de rang i et inclus dans un bus de colonne & I = 16 fils 14o à 14is sortant d'un décodeur de colonne 2C. Une seconde entrée d'adressage de la porte 10 est reliée & un fil 15j adressant les 16 cellules loi j à li,sj de la ligne de rang j et inclus dans un bus de ligne à J = 64 fils 15o à 15j' sortant d'un décodeur de ligne 2L. La sortie de la porte ET 10 est reliée à une première entrée de la porte 11 et à l'entrée inverseuse de la porte 12. Une seconde entrée de la porte ET 11 est reliée à une entrée de données DE du circuit KAD qui est reliée à toutes les secondes entrées des portes 11 dans les cellules lo,o à l -, et qui transmet des bits d'état des cellules de la mémoire de données. Les entrées de la porte OU 13 sont reliées aux sorties des portes ET 11 et 12, respectivement. La sortie de la porte 13 constitue la sortie 16ij de la cellule lij et est reliée à l'entrée directe de la porte 12. La sortie de la porte 13 est également reliée à une entrée de rang i d'une porte OU 3, ayant I = 16 entrées reliées respectivement aux sorties des cellules loj à lis,j dans la ligne de rang j. et à une entrée de rang j d'un multiplexeur 4i ayant J = 64 entrées reliées respectivement aux sorties des cellules 1,o à l s,6a dans la colonne de rang i. Ainsi comme montré à la Fig. 1, le circuit MAD comprend J = 64 portes OU 3o à 3s3 ayant chacune I ='16 entrées reliées aux sorties des cellules lo,o à 11s,o, à los3 & àlsS dans la ligne correspondante de rang 0 à 63, et I = 16 multiplexeurs 40 à 4is ayant chacun J = 64 entrées reliées aux sorties des cellules lo,o à loS, à l1,o à lss de la colonne correspondante de rang 0 à 15. De l'agencement des portes 10 à 13 dans la cellule liô montrée à la Fig. 2, il apparaît que, lorsque la cellule est adressée simultanément par les fils d'adressage 14i et 15i tous deux à l'état "1", la porte ET 11 est ouverte pour appliquer le bit d'état transmis par l'entrée DE à l'entrée directe de la porte 12 à travers la porte OU 13, et que la porte 12 est fermée afin de mémoriser le bit d'état. Cette mémorisation est validée dès que l'un des fils d'adresse 14 et 15 passe à l'état "0", ce qui se traduit par une fermeture des portes 10 et 11 qui empêche toute mémorisation d'un nouveau bit d'état jusqu'au prochain état simultané "1" des fils 14 et 15., et par une ouverture de la porte ET 26 17302 -6- 12 qui permet de maintenir la sortie de la cellule à l'état du bit d'état et de mémoriser ce bit d'état par le bouclage de la porte OU 13 à travers l'entrée directe de la porte 12. Comme montré à la Fig. 1, le circuit XAD comprend également un multiplexeur 5L pour sélectionner l'une des lignes de la matrice de cellules 1, un multiplexeur 5C pour sélectionner l'une des colonnes de la matrice de cellules 1 et plus précisément, l'une des cellules dans la ligne sélectionnée par le multiplexeur 5L, un circuit de codage d'adresse de ligne 6L pour détecter les lignes contenant chacune au moins une cellule mémorisant un bit d'état libre 1"H et coder prioritairement l'adresse. de l'une de ces lignes, et un circuit de codage d'adresse de colonne 6C pour détecter les colonnes contenant chacune au moins une cellule mémorisant un bit d'état libre "1" et coder prioritairement l'adresse de l'une de ces colonnes. Du côté des entrées, le circuit MAD offre, outre l'entrée de données DE, un bus d'adresse de colonne ACO ayant 4 = log2I = log216 fils reliés aux entrées de données du décodeur 2C et aux entrées de-sélection du multiplexeur 5C, une entrée de commande en écriture ECR reliée à l'entrée de validation d'au moins l'un des décodeurs 2C et 2L, tel que le décodeur de colonne 2C, un bus d'adresse de ligne ALI ayant 6 = log2J = log264 fils reliés aux entrées de données du décodeur 2L et à des premières entrées de données du multiplexeur 5L, et une entrée de commande en lecture LEC reliée à l'entrée de sélection du multiplexeur L. Le multiplexeur 5L a six secondes entrées reliées à la sortie du circuit de codage 6L constituant un bus d'adresse d'écriture de ligne ALS pour cellule de donnée disponible sélectionnée, et six sorties reliées aux entrées de sélection des multiplexeurs 4o à 4z-1 assignées aux colonnes de la matrice de cellules 1. Les sorties des portes OU 3o à 3S-, sont reliées respectivement à J entrées du circuit de codage 6L. Le multiplexeur 5C a I = 16 entrées reliées respectivement aux sorties des multiplexeurs 4o à 4x-, et aux entrées du second circuit de codage 6C, et une sortie de donnée DS transmettant le bit d'état lu et sélectionné. Quatre sorties du circuit de codage 6C constituent un bus d'adresse d'écriture de colonne ACS pour cellule de donnée disponible sélectionné. 7- Le circuit de codage d'adresse de ligne 6L comprend une matrice de rotation 61L ayant J = 64 entrées parallèles reliées respectivement aux sorties des portes OU 3o à Si-, un codeur d'adresse de ligne prioritaire 62L ayant J = 64 entrées parallèles reliées respectivement & 64 sorties de la matrice de rotation 61L, et un additionneur à 6 bits ADL recevant d'une part, le bus de sortie à log2J = log264 = 6 fils du codeur 62L et d'autre part un autre bus à 6 fils ALP, dont le rôle sera expliqué plus en détail par la suite. Le bus ALS.à 6 fils constitue la sortie de l'additionneur ADL. De même, le circuit de codage de colonne 6C comprend une matrice de rotation 61C ayant I ='16 entrées parallèles reliées respectivement aux sorties des multiplexeurs 4, à 4,-,, un codeur d'adresse de colonne prioritaire 62C ayant I =16 entrées parallèles reliées respectivement à 16 sorties de la matrice de rotation 61C, et un additionneur à 4 bits ADC recevant d'une part, le bus de sortie à logeI = logz 16 = 4 fils du codeur 62C et d'autre part un autre bus à 4 fils ACP dont le rôle sera expliqué plus en détail par la suite. Le circuit 6C a pour sortie un bus ACS à 4 fils constituant la sortie de l'additionneur ADC. De préférence, les matrices de rotation 61L et 61C sont programmables par un mot d'adresse de ligne prioritaire ayant 6 bits et un mot d'adresse de colonne prioritaire ayant 4 bits qui sont appliqués par les bus d'entrée ALP et ACP du circuit XAD, respectivement, afin de choisir la ligne et la colonne ayant la plus forte priorité, c'est-à- dire la cellule parmi 1024 cellules ayant la plus forte priorité, ou bien encore de modifier l'ordre prioritaire préétabli des adresses de ligne et colonne. - En pratique, une matrice de rotation 61L, 61C a pour rôle d'effectuer une rotation des entrées sur les sorties de façon à faire correspondre une entrée d'indice dit prioritaire k de la matrice à la première sortie d'indice 0 de la matrice, o k est un entier compris entre 0 et J-1, 0 et I-1, et plus généralement, à faire correspondre une entrée donnée de la matrice à une sortie de la matrice ayant un indice k fois moindre, lorsque les bits ALP, ACP ont pour valeur k. Le codeur d'adresse prioritaire 62L, 62C est conçu de manière à fournir une adresse correspondant au premier bit à "1" parmi ses propres entrées d'indice O à J-1, 0 à I-1 sélectionnées successivement selon cet ordre. Le fait de faire "tourner" les entrées des codeurs 62L et 62C avant application d'une priorité statique câblée au niveau des codeurs revient en fait & modifier le rang prioritaire et les rangs suivants des entrées de codeur. Les adresses en sortie des codeurs 62L et 62C sont en fait des adresses décalées de la valeur k. Il est donc nécessaire de prévoir, pour la réalisation illustrée, les additionneurs ADL et ADC pour retrouver les adresses correctes ALS et ACS correspondant à la cellule de matrice sélectionnée. Il est à noter, en pratique, que les entrées du circuit MAD peuvent être reliées à des entrées d'adressage en lecture de la mémoire de données à travers une unité logique de gestion d'adressage afin de commander principalement l'écriture de la mémoire de données en fonction de l'utilisation de celle-ci qui peut concerner une commutation de blocs de données entre des multiplex entrants et sortants dans un système de commutation temporel. L'unité logique précitée n'appartient pas à l'objet de la présente demande de brevet et ne sera donc pas décrite. Le fonctionnement du circuit MAD est maintenant décrit, d'abord pour écrire un bit d'état de cellule de la mémoire donnée, puis pour lire le bit d'état dans l'une des cellules de la matrice 1 et enfin, pour sélectionner et transmettre l'adresse d'une cellule de la mémoire de donnée libre et prioritaire. On suppose qu'un bit. d'état transmis par l'entrée DE est à enregistrer dans la cellule l j. Pendant,une première demi-période d'horloge d'octet de données, le bus d'entrée ACO reçoit le numéro en code binaire de la colonne i, le bus d'entrée ALI reçoit le numéro en code binaire de la ligne J, et l'entrée d'écriture ECR reçoit un signal d'écriture à l'état "1". Le décodeur 2C décode le numéro i en appliquant un "1" sur le fil de colonne 14, et un. "0" sur les autres fils de colonne 14o à 14i-, et 14 +, à 14z après validation par le signal d'écriture à l'entrée ECR. Simultanément le décodeur de ligne 2L décode. le numéro de ligne j en appliquant un "1" sur le fil 15J et un "0" sur les autres fils de ligne o à 15j-1 et 15à+. à 15.. Ainsi seule la cellule 1t, a ses entrées 14, et 15, simultanément à l'état "1" et par suite, le bit d'état à l'entrée DE est mémorisé dans la cellule l1. dès que le signal d'écriture ECR revient à l'état "0". Il est à noter que la validation du décodage dans l'un des décodeurs 2C et 2L est suffisante, puisqu'un décodage d'une adresse par l'autre décodeur, tel que le décodeur 2L, sans validation de l'adresse de colonne dans le décodeur 2C, implique des états "0" et "1" aux entrées d'adressage de la cellule, et par suite maintient fermées les portes ET 10 et 11 dans cette cellule. Si l'on désire lire le contenu d'une cellule, par exemple de la cellule li., les numéros en code binaire i et j sont appliqués par les bus ACO et ALI aux entrées de sélection du multiplexeur 5C et aux premières entrées du multiplexeur 5L respectivement, et un signal de lecture à l'état haut "1" est appliqué par l'entrée LEC à l'entrée de sélection du multiplexeur 5L pendant une seconde demi-période d'horloge d'octet. La sortie du multiplexeur 5L transmet le numéro j aux entrées de sélection des multiplexeurs 4, à 4X-l afin que chacun de ces I multiplexeurs appliquent aux I = 16 entrées du multiplexeur 5C les états des bits, "0" ou "1", des cellules lo.J à lis j de la ligne de rang j aux entrées du multiplexeur 5C, respectivement, Dans le multiplexeur 5C, le numéro de colonne i sélectionne la sortie du multiplexeur 4, et, par suite, la sortie DS transmet le bit d'état lu dans la cellule 4.,j. Le choix d'une cellule libre dans la mémoire de données correspondant à une cellule contenant un bit d'état "1" dans la matrice 1 est effectué en permanence d'abord par une sélection de ligne, puis par une sélection de colonne lorsque le signal de lecture à l'entrée LEC est à l'état bas "0", Les J = 64 portes OU So à 3:-l collectent les bits d'état mémorisés dans les cellules, ligne par ligne. Une sortie à l'état haut "1" de l'une des portes OU, telle que la porte 3à, indique qu'au moins l'une des sorties 16o,j à 16I-,j de la ligne j est à l'état "1" et donc qu'au moins l'une des cellules de la ligne j dans la mémoire de données est libre et disponible pour recevoir des données. La matrice de rotation 61L est commandée par le signal du bus ALP pour déterminer la ligne qui doit être considérée comme prioritaire. Le codeur 62L explore alors l'état de ses entrées 0 à J-1 et sélectionne la première de ses entrées, selon-l'ordre d'exploration numérique 0 à J-1, dont le niveau est à "1" pour délivrer en sortie le numéro de la ligne sélectionnée codé sur 6 bits. Le numéro codé est incrémenté de la valeur présente sur le bus ALP - 10 - afin de fournir l'adresse de la ligne sélectionnée en fonction des critères de priorité qui ont été prévus. L'adresse de ligne de la cellule disponible sélectionnée selon l'exemple prédédent est appliquée, à travers les secondes entrées du multiplexeur de sélection de ligne 5L, aux entrées de sélection de tous les multiplexeurs 40 à 4,-1 afin que ceux-ci transmettent les états des bits lus dans les cellules lo,j à a -, dela ligne sélectionnée j aux entrées de la matrice de rotation 61C. La matrice 61C effectue avec le codeur 62C et l'additionneur ADC une sélection de la cellule la plus prioritaire parmi les cellules contenant un bit "1" dans la ligne sélectionnée j, sélection qui est traduite par l'adresse de colonne à 4 bits de ladite cellule la plus prioritaire dans le bus de sortie ACS du circuit de codage 6C, Il est à noter que la réalisation préférée illustrée à la Fig. 1 peut être réduite au moins au niveau des entrées et sorties en fonction d'impératifs nécessaires à la gestion de la mémoire de données. Par exemple, le multiplexeur 5C peut être supprimé ou tout au moins la sortie DS peut être inutilisée, et par suite, le multiplexeur 5L peut être supprimé ainsi que l'entrée LEC, le bus ALS étant alors relié directement aux entrées de sélection des multiplexeurs 40 à 4x-i. Il est à noter, en pratique, que les bus d'adresse de colonne et de ligne ACO et ALI peuvent être reliés à des sorties d'un multiplexeur d'adresses qui reçoit tantôt une adresse d'écriture sélectionnée par le circuit XAD lorsqu'un octet est à écrire dans la cellule de données disponible correspondante, tantôt une adresse de lecture produite par un circuit d'adressage en lecture de la mémoire de données lorsqu'un octet mémorisé dans la cellule de données correspondante est lu pour la dernière fois. L'écriture d'un octet et la lecture d'un octet sont simultanées à des écritures de bits d'état à "0" et "1" dans la cellule de matrice correspondante, via l'entrée DE, respectivement. En outre, il est rappelé que les entrées d'adressage ALP et ACP des matrices de rotation sont optionnelles et par suite, que les matrices de rotation. 61L et 61C peuvent être remplaçées par deux circuits logiques de manière à sélectionner les lignes et colonnes de cellules selon des ordres de priorité figés. 261730? - 11 - Par ailleurs les mots "ligne" et "colonne" dans la présente description et dans l'objet de la présente demande de brevet défini ci- après peuvent être remplacés par "colonne" et "ligne" respectivement, sans modifier le principe de fonctionnement du circuit MAD; ainsi l'ensemble des portes 3,, à 3J-1 peut être remplacé par un ensemble de multiplexeurs analogues aux multiplexeurs 4o, à 4X-, et réciproquement, et la connexion du bus de sortie ALS de l'additionneur ADL aux multiplexeurs 4o à 4,-, peut être remplacée par une connexion du bus de sortie ACS de l'additionneur ADC aux entrées de sélection de multiplexeurs remplaçant les portes 3o à 3J-à, éventuellement à travers un multiplexeur analogue au multiplexeur 5L. Selon d'autres variantes, la matrice de cellules 1 ne peut être qu'une "image" d'une partie de la mémoire de données, ou en d'autres termes, la matrice 1 ne surveille l'état de disponibilité que de cellules prédéterminées en nombre réduit dans la mémoire de données. Dans ce cas, la capacité de la matrice 1 peut-être inférieure à celle de la mémoire de données, et les codeurs 6L et 6C fournissent non seulement les adresses de ligne et colonne de la matrice 1 correspondant à une cellule de matrice prioritaire sélectionnée, mais également les adresses de ligne et colonne de la cellule dans la mémoire de données correspondant à la cellule de matrice sélectionnée. En effet, a priori, les adresses de cellules de la matrice peuvent ne pas être identiques à celles des cellules correspondantes de la mémoire de données à surveiller. Les cellules de la matrice 1 ont été illustrées à la Fig. 2 par des cellules statiques qui peuvent être conçues également comme des cellules du type "latch", c'est-à-dire à bascule du type D avec sortie et entrée bouclées. Toutefois, les cellules de matrice peuvent être des cellules dynamiques. Dans ce dernier cas, l'effacement du contenu dans les cellules de matrice dynamiques.à l'expiration de quelques millisecondes après leur écriture peut être avantageux lorsque la durée maximale nécessaire de mémorisation d'un mot de données, tel qu'octet, dans une cellule de la mémoire de données est de l'ordre de la dizaine de microseconde, par exemple égale. à 3,9ys pour des multiplex entrants à 2, 048 Xbit/s; en effet, le défaut de rafraîchissement des cellules dynamiques assure qu'une cellule de la mémoire de données ne reste -- 12 - jamais indisponible, c'est-à-dire ne mémorise pas en permanence un mot de donnée. En outre, comme il est connu, l'utilisation de cellule dynamique présente notamment les avantages d'une consommation énergétique faible et d'une densité d'intégration élevée du fait du nombre de transistors par cellule très faible. Ce dernier avantage est particulièrement d'intérêt pour l'intégration complète du circuit MAD. -13- R e v e n d i c a t i o n s. 1 - Circuit (XAD) pour établir des adresses de ressources disponibles dans un ensemble de ressources logiques en fonction des états libres et occupés des ressources, caractérisé en ce qu'il comprend une matrice (1) de cellules à un bit (lo.o à l1-1.,-1) qui mémorisent respectivement des bits d'état de disponibilité ("1" et "0") des ressources de l'ensemble, des moyens d'adressage en écriture (2C, 2L) pour adresser sélectivement lesdites cellules de la matrice (lt.o à I.- 1z.-) afin d'écrire dans une cellule adressée un bit d'état de disponibilité correspondant à la ressource respective, et des moyens (3S à 3S:-,, 6L, -4c, à 4I-, 6C) reliés aux sorties (16oo à 16I-,J--1) de toutes les cellules de la matrice pour détecter les cellules de la matrice contenant chacune un bit d'état libre ("1") afin d'établir l'adresse (ALS + ACS) de la ressource disponible correspondant à l'une des cellules de matrice détectées. 2 - Circuit conforme à la revendication 1, caractérisé en ce que les moyens pour détecter comprennent des moyens (30 à 3J-, 40c, à 4I-1i) reliés aux sorties (16o,o à 16I-1.J-1) de toutes les cellules de matrice (loo à I-- -) pour lire les bits d'état libre ("1") dans les cellules de matrice, et des moyens (6L, 6C) reliés aux moyens pour lire pour sélectionner prioritairement l'une des cellules de la matrice dans laquelle est lu un bit d'état libre ("1"), en fonction d'un ordre de priorité des cellules de matrice prédéterminé ou programmé. 3 - Circuit conforme à la revendication 2, caractérisé en ce que les moyens pour sélectionner prioritairement (6L, 6C) comprennent des premiers moyens de décalage (61L) ayant des entrées recevant en parallèle, à travers lesdits moyens pour lire 3o à 3&-,, des premières informations associées respectivement aux lignes de la matrice (1), l'information associée à une ligne étant indicative de la présence ou non d'un bit d'état libre ("1") dans au moins l'une des cellules de ladite ligne, un premier codeur de priorité (62L) recevant en parallèle les premières informations décalées par les premiers moyens de décalage pour 26 1 7302 - 14 - sélectionner une première information prioritaire indicative- de là présence d'un bit d'état libre et coder celle-ci en un signal codé de ligne sélectionnée, des seconds moyens de décalage (61C) ayant des entrées (I) recevant en parallèle, à travers les moyens pour lire (4, à 41-l), des secondes informations associées respectivement aux cellules dans une ligne sélectionnée de la matrice (1) correspondant à ladite première information prioritaire sélectionnée, l'information.associée à une cellule étant indicative de la présence ou non d'un bit d'état libre ("1") dans ladite cellule de ladite ligne, et un second codeur de priorité (62C) recevant en parallèle les secondes informations décalées par les seconds moyens de décalage pour sélectionner une seconde information prioritaire indicative de la présence d'un bit d'état libre et coder celle-ci en un signal codé-de colonne sélectionnée. 4 - Circuit conforme à la'revendication 3, caractérisé en ce que les premiers (61L) et seconds (61C) moyens de décalage sont des première et seconde matrices de rotation, de préférence programmables, ayant autant d'entrées et sorties que de lignes (J) et colonnes (I) dans la matrice de cellules (1) respectivement. - Circuit conforme à la revendication 4, dans lequel des première et seconde valeurs codées de décolage dans les matrices de rotation (61L, 61C) sont programmées respectivement,. caractérisé en ce que les moyens pour sélectionner prioritairement (6L, 6C) comportent un premier additionneur (ADL) recevant le signal codé de ligne sélectionnée par le premier codeur de priorité (62L) et la première valeur codée de décalage programmée dans la première matrice de rotation (61L) pour délivrer l'adresse (ALS) de la ligne de la cellule sélectionnée contenant un bit d'état libre, et un second additionneur (ADP) recevant le signal codé de colonne sélectionnée par le second codeur de priorité (62C) et la seconde valeur codée de décalage programmée dans la seconde matrice de rotation (61C) pour délivrer l'adresse (ACS) de la colonne de la cellule sélectionnée contenant un bit d'état libre. 6 - Circuit conforme à la revendication 1, caractérisé en ce que les moyens pour détecter comprennent plusieurs moyens (3o à 3S-, 6L) respectivement assignés aux lignes de la matrice de cellule (1) pour 2 617 3 02 - 15 - détecter des lignes de la matrice ayant chacune au moins une cellule de matrice contenant un bit d'état libre ("1") afin d'établir l'adresse (ALS) de l'une des lignes de matrice détectées, et plusieurs seconds moyens (4, & - 4z-l, 6C) respectivement assignés aux colonnes de la matrice de cellules (1) et reliés aux premiers moyens pour détecter (30 & 3.-I, 6L) pour détecter les cellules contenant un bit d'état libre ("1") et incluses dans la ligne dont l'adresse est établie afin d'établir l'adresse (ACS) de la colonne ayant l'une des cellules détectées incluses dans ladite ligne dont l'adresse est établie. 7 - Circuit conforme & la revendication 6, caractérisé en ce que les premiers moyens pour détecter comprennent plusieurs premiers moyens (3o & 3J-) respectivement assignés aux lignes de la matrice de cellules (1) pour lire les bits d'état libre ("1") dans les lignes de la matrice, des moyens (61L, 62L) reliés aux premiers môyens pour lire pour sélectionner prioritairement l'une des lignes de la matrice dans laquelle est lu au moins un bit d'état libre ("1"), en fonction d'un ordre de priorité des lignes de matrice prédéterminé ou programmé, et des premiers moyens (ADL) reliés aux premiers moyens pour sélectionner pour établir l'adresse (ALS) de la ligne de matrice prioritaire sélectionnée, et en ce que les seconds moyens pour détecter comprennent plusieurs seconds moyens (4o à 4z-l) respectivement assignés aux colonnes de la matrice de cellule (1) et reliés aux premiers moyens pour établir (6L) pour lire les bits d'état libre ("1") dans la ligne prioritaire sélectionnée, des seconds moyens (61C, 62C) reliés aux seconds moyens pour lire pour sélectionner prioritairement l'une des colonnes de la matrice ayant une cellule incluse dans la ligne prioritaire sélectionnée et contenant un bit d'état libre lu, en fonction d'un ordre de priorité des colonnes de matrice prédéterminé ou programmé, et des seconds moyens (ADC) reliés aux seconds moyens pour sélectionner pour établir l'adresse (ACS) de la colonne de matrice prioritaire sélectionnée. 8 - Circuit conforme à la revendication 7, caractérisé en ce que les premiers et seconds moyens pour sélectionner dans la matrice (1), respectivement. - 16 - 9 - Circuit conforme à l'une quelconque des revendications 1 à 8, pour lequel l'ensemble de ressources logiques est organisé en matrice, comme une mémoire de cellules de données, caractérisé en ce que les adresses de ligne et colonne des cellules de la matrice (1) sont respectivement identiques aux adresses de ligne et colonne de l'ensemble de ressources organisé en matrice. - Circuit conforme à l'une quelconque des revendications 1 à 9, caractérisé en ce qu'il comprend des moyens d'adressage en lecture (5L, 4c, à 4z-,, 5C) pour lire sélectivement le bit d'état (DS) dans l'une quelconque des cellules de la matrice (1). 11 - Circuit conforme à l'une quelconque des revendications 1 à 10, caractérisé en ce que chacune (lij) des cellules de la matrice comprend une première porte ET (10) ayant deux entrées d'adressage de ligne et colonne reliés aux moyens d'adressage en écriture (2C, 2L), une seconde porte ET (11) ayant deux entrées respectivement reliées à la sortie de la première porte ET (10) et à une borne d'entrée (DE) de toutes les cellules de la matrice (1) recevant les bits d'état à écrire, une troisième porte ET (12) ayant une entrée inverseuse reliée à la sortie de la première ET (10) et une entrée directe, et une porte OU (13) ayant deux entrées respectivement reliées aux sorties des secondes et troisième portes ET (11, 12) et une sortie reliée à l'entrée directe de la troisième porte ET (12) et constituant la sortie (16.,à) de la cellule.