FR 2135151 A1 19721215 FR 7211404 A 19720328 72 11404 1 2135151 La présente invention concerne un système d'emmagasinage de données qui utilise une mémoire associative. Conformément à la présente invention, un système d'emmagasinage de données comprend une mémoire associative formée par plusieurs registres 5 associatifs appropriés à l'emmagasinage d'éléments de données, système dans lequel, durant son fonctionnement, les registres qui ne sont pas utilisés pour l'emmagasinage des éléments de données, sont identifiés par des nombres séquentiels appartenant à une séquence numérique cyclique dont la longueur est égale au nombre de registres dans la mémoire, un nombre différent étant 10 emmagasiné dans chaque registre qui n'emmagasine pas d'éléments de données; le système comprend en outre un moyen pour emmagasiner, dans un registre à partir duquel est extrait, ou déchargé, un élément de données avant que ne soit extrait tout autre élément de données de la mémoire, le nombre faisant suite, dans la séquence cyclique, au dernier nombre séquentiel. 15 La présente invention fournit un moyen facile et bon marché pour utiliser totalement la capacité d'une mémoire associative. Il s'est avéré nécessaire de fournir des indicateurs d'utilisation aux registres de mots d'une mémoire associative. La présente invention écarte cette nécessité. De préférence, la présente invention est réalisée dans un système de 20 mémoire tampon qui emmagasine temporairement les données en transit entre / plusieurs dispositifs. Les données associées à chaque dispositif .sont extraites de la mémoire dans l'ordre suivant lequel elles ont été chargées dans celle-ci. Le dispositif utilise uniquement l'espacement d'emmagasinage qui lui est nécessaire. Ceci fait contraste aux systèmes connus dans lesquels une 25 quantité fixe d'emmagasinage est attribuée préalablement à un dispositif, indépendamment de l'espacement véritablement nécessaire. Ces attributions d'emmagasinage sont nécessairement calculées pour satisfaire les besoins correspondant "aux pires des cas", et non pas les besoins correspondant à une moyenne. 30 Dans un autre mode de réalisation, aussitôt qu'un nombre donné de mots associé à un dispositif a été chargé dans la mémoire, les mots sont désignés en tant que blocs de données. Les blocs de données sont extraits de la mémoire suivant l'ordre dans lequel ils ont été désignés. Il est fait en sorte que les blocs de données associés à certains dispositifs aient une plus grande 35 priorité que les blocs restants. Les blocs de données de grande priorité sont extraits avant le reste. La description de la présente invention et les revendications qui la définissent contiennent les termes "séquences de nombres" et "incrémentation" qu'il convient de définir de la façon suivante. 40 une "séquence de nombres" est un grouDe, suivant un certain ordre, 72 11404 2 2135151 de configurations de bits aC13, a(2), .... a(n-1), a(n). La configuration de bits suivant a(i) est aCi+1). Dans une séquence de nombres cyclique, la configuration de bits suivant a(n) est a(1). Le terme "incrémentation" représente l'opération correspondant à la transformation d'une configuration ^ de bits selon sa configuration de bits suivante. Les configurations de bits sont appelées "nombres". Il est à noter qu'il n'est pas question que la configuration de bits ait une signification numérique. Lorsque les configurations a(i) sont des représentations binaires de noirbres entiers et que a(i+1) = aCi] + 1, l'incré-^ mentation a sa signification usuelle. Si, dans ce cas, aCi+1) = a(i)-1, l'incrémentation selon la définition couvre la décrémentation telle qu'elle est comprise habituellement. Il est donné dans la description un exemple d'une séquence sans signification numérique. D'autres objets, caractéristiques et avantages de la présente invention ^ ressortiront mieux de l'exposé qui suit, fait en référence aux dessins annexés à ce texte, qui représentent un mode de réalisation préféré de celle-ci. La figure 1 représente un diagramme de fonctionnement général d'un système de traitement de données utilisant un système d'emmagasinage de données conforme à la présente invention. 20 La figure 2 représente un diagramme de fonctionnement général montrant l'agencement et le contenu d'emmagasinage type d'un système d'emmagasinage de données conforme à la présente invention. Les figures 3a et 3b représentent l'attribution de l'espacement de mémoire tampon à un terminal. Les figures 4a et 4b illustrent l'utilisation des contrôles de charge et de décharge, et La figure 5 représente un diagramme de fonctionnement général de l'agencement et du contenu d'emmagasinage type d'un autre mode de réalisation du système de la figure 1. ^ Sur la figure 1, un système d'emmagasinage de données numériques 1, conforme à la présente invention est, de préférence, réalisé sous forme de système d'emmagasinage tampon pour plusieurs dispositifs de traitement de données 2. Ces dispositifs sont représentés comme comprenant une unité centrale de traitement de données CPU et des dispositifs entrée/sortie (I/O). 35 La connexion entre les dispositifs 2 et le système d'emmagasinage 1 se fait au moyen d'un système de commutation connu 3, tel que celui trouvé dans de nombreux systèmes de traitement de données pour déterminer quels sont les transferts de données qui peuvent avoir lieu en un temps donné quelconque. Dans certaines applications, lorsque par exemple, les dispositifs entrée/sortie 40 2 sont des terminaux de télécommunication, il peut y avoir connexion directe 72 11404 3 2135151 du CPU au système d'emmagasinage 1, et le système de commutation 3 pourrait être un multiplexeur de lignes. La commande du système d'emmagasinage 1 est, de préférence, assurée par une mémoire de commande à microprogrammes 4 de type quelconque approprié. Une description complète des fonctions de 5 commande requises est donnée ci-après. La mémoire 4 peut être intégrée à la commande du CPU pour faire partie de la commande de tout le système représenté sur la figure 1. Le système d'emmagasinage 1 conforme à la présente invention, comprend, de préférence, deux mémoires associatives, une mémoire de données 10 et une mémoire de contrôle 20. 10 Deux systèmes d'emmagasinage conformes à la présente invention vont être décrits. Le Dremier système comprend une mémoire associative dans laquelle un espacement d'emmagasinage peut, jusqu'à une certaine limite, être attribué à chacun des différents dispositifs, suivant le besoin. L'espacement d'emmagasinage utilisé par un dispositif va être appelé dispositif tampon. Le 15 second système est une modification du Dremier en ce sens que si un disppsitif requiert un espacement d'emmagasinage supérieur à un seul dispositif tampon, il est créé un nouveau dispositif tampon pour ce dispositif. En se référant maintenant à la figure 2, qui représente le Dremier système mentionné ci-dessus, une mémoire de données associative 10 et une 20 mémoire de contrôle associative 20 ont respectivement les registres d'entrée/ / sortie 11 et 21 qui sont subdivisés en champs définis par la nature du contenu des mémoires respectives. Le registre 11 comprend un champ de commande 12, un champ identificateur 13, un champ de séquence 14 et un charra de données 15. Ce dernier champ est subdivisé en champs 15a à 15c qui sont respectivement 25 appelés champ de multiplet 1, champ de multiplet 2, champ de multiplet 3. De façon semblable, le registre 21 a un champ de commande 22, un champ de séquence 24 et des champs de multiplets 1 à 3, 25a à 25c. Il est à noter qu'il n'y a pas de champ identificateur. Les champs 12 et 22 reçoivent sur les lignes respectives 1B et 26 les signaux provenant d'une source de commande 30 Cnon représentée] qui peut être une mémoire de commande à microprogrammes. Le champ identificateur 13 est connecté par la ligne 17 à une source de nombres [non représentée) qui engendre une série de nombres qui désignent un élément de données comme étant associé à un dispositif particulier. La série de nombres peut être une adresse par laauelle est identifié le dispo-35 sitif. Le fonctionnement de la source de nombres n'entre pas dans le cadre de la présente invention; aussi n'en est-il donné aucune autre description plus détaillée étant donné que les techniques de désignations sont bien connues dans l'art. Les champs de séquence 14 et 24 et les sous-champs 15b, 25b et 15c, 25c, sont connectés en paires correspondantes comme le sont 40 les champs 15a et 25a qui sont également connectés par une ligne 18 aux 72 11404 4 2135151 sources et puits de données. La forme de ces sources et de ces puits n'entre pas dans le cadre de la présente invention mais ces derniers pourraient être la mémoire principale d'un système de traitement de données et une pluralité de dispositifs entrée/sortie, telles que des unités à disques, à bandes et des lignes de télécommunications, le tout é$ant multiplexé sur la ligne 16. □ans le mode de réalisation àécrit, un élément de données à transférer renrésente trois multiplets de données et la ligne 18 porte un multiplet de données à la fois. Il va être supposé que, tandis qu'un élément de données se présente au système d'emmagasinage tampon sur la ligne 18, la désignation de l'élément est maintenue sur la ligne 17. Les mémoires associatives 10 et 20 sont de préférence du type décrit dans le brevet français 1 582 992. Dans une opération de Recherche, un argument de recherche dans un champ sélectionné, le champ de recherche du registre entrée/sortie de la mémoire, est comparé au même chanp de tous les registres de mots de la mémoire. Lorsque le contenu d'un registre de mots et le contenu de l'argument de recherche coïncident, une bascule du sélecteur est enclenchée (position active] et marque l'accès au registre de sorte que puisse être exécutée une autre opération de Lecture ou d'Ecriture. Une opération de Lecture permet la lecture simultanée sur le registre entrée/sortie du contenu d'un champ sélectionné, le champ lecture/écriture, de tous les registres de mots marqués par les bascules de sélecteur. Une opération d'écriture permet au contenu du champ de lecture/écriture du registre entrée/sortie d'être simultanément écrit dans tous les registres de mots de la mémoire, les bascules du sélecteur étant enclenchées. L'opération Suivante est également définie sur les mémoires associatives 10, 20, opération qui peut être combinée à une opération de Recherche où les bascules du sélecteur sont traitées comme registre à décalage et auxquelles il est attribué un décalage d'un étage. L'effet recherché consiste à marquer, en vue d'un accès, les registres de mots suivant les registres de mots marqués au début de l'opération. Les opérations de Recherche et Suivante provoquent finalement l'accès aux registres de mots suivant les registres de mots contenant les données coïncidant avec l'argument de recherche. Les cellules d'emmagasinage de données qui forment les mémoires, comprennent quatre états stables, deux états représentant respectivement les éléments binaires 1 et 0, et deux états X et Y. L'état X est tel qu'il ne révèle jamais une non coïncidence lors d'une opération de Recherche, et il est lu en tant que 0 binaire. L'état Y révèle toujours une non coïncidence lors d'une opération de Recherche, si bien qu'il peut uniquement y avoir accès aux registres dont les cellules 72 11404 5 2135151 du champ de recherche sont fixées à Y, par une opération Suivante. L'état Y est également lu comme 0 binaire. Une construction de cellules appropriées est donnée dans le brevet français 1 581 240. Sur les figures, ce ne sont pas les registres de mots qui sont représen-5 tés mais leur contenu sous forme de rangées de caractères, dont chacune représente l'état d'une cellule d'emmagasinage de données. Si le contexte ne le spécifie pas autrement, l'absence d'un caractère signifie qu'une cellule se trouve à l'état X. Les lignes contenues dans les blocs représentant les emmagasinages n'ont aucune signification physique et sont simplement représent-10 ées pour aider le lecteur. En se reportant à la mémoire de données 10, les registres de mots de la mémoire peuvent être utilisés, cas dans lequel, ils détiennent des éléments de données, ou bien ils peuvent être mis sur une liste disponible, cas dans lequel les registres peuvent emmagasiner des données. 15 Sur la figure 2, les registres de mots, ou lignes, 1 à 0 de la mémoire sont utilisés; les lignes restantes sont sur la liste disponible. Comme cela sera mis en évidence dans la description suivante de la liste disponible, les lignes utilisées et celles mises sur la liste disponible peuvent être intercalées entre elles et ne sont pas nécessairement, comme le montrent 20 les dessins, rassemblées sous forme de blocs distincts dans la mémoire. / La figure 2 représente, en fait, un étage au tout début de l'utilisation du système de avant que toutes les lignes de la mémoire 10 n'aient été utilisées une fois. Les figures 3a et 3b montrent l'organisation des dispositifs tamoon 25 types. Les figures ne représentent pas les blocs de la mémoire de données 10 mais sont des tabulations du contenu des lignes de la mémoire 10 qui comprend le dispositif tampon. Etant donné que la mémoire 10 est une mémoire associative, les lignes peuvent être placées n'importe où dans la mémoire. Par exemple, les trois lignes A, B, C, apparaissant sur la figure 3a peurraient 30 se trouver dans les registres de mots respectifs 19, 7 et 11 de la mémoire 10, en utilisant le système de numérotation indiqué sur la gauche de la mémoire 10 de la figure 2. Sur les figures 3a et 3b, les champs de la mémoire 10 préalablement décrite ont respectivement les mêmes références que celles apparaissant sur la figure 2. Chaque élément de données est identifié comme 35 appartenant à un dispositif tampon donné par l'identificateur du champ 13 et sa position dans le dispositif tampon est donnée par un numéro de séouence dans le champ de séquence 14. Le dispositif tampon fonctionne sur le principe çJremier entré, premier sorti et l'élément de données suivant à extraire est identifié par un marqueur de décharge, ou extraction, qui est un bit 40 "1" dans la colonne extrême droite du champ de commande à trois colonnes 72 11404 6 2135151 12. Le dernisr élémsnt Emmagasiné dans le dispositif tamppon est identifié par un marqueur de charge qui est un bit "1" dans la colonne centrale du champ de commande 12. La colonne gauche du champ de commande est réservée pour indiquer si un registre de mots est utilisé comme dispositif tampon ' ou s'il est mis sur la liste disponible. Le numéro de séquence représente le moyen par lequel les données sont extraites d'un dispositif tampon suivant l'ordre dans lequel elles ont été chargées. Lorsque les données sont chargées dans un dispositif tampon, le numéro de séquence des données marquées par ls marqueur de charge est trouvé 'G st incrémenté. Le numéro de séquence incrémenté, avec un nouveau marqueur de charge, est placé dans le champ de séquence de la ligne dans laquelle doivent êtrs chargées les données. L'ancien marqueur de charge est effacé. Lorsque les données sont déchargées, ou extraitesd'un dispositif tampon, le numéro de séquence des données déchargées est incrémenté et les données ayant le numéro de séquence incrémenté reçoivent le marqueur de décharge. Les numéros de séquence sont incrémentés cycliquement: l'incrément du numéro supérieur de la séquence donne le numéro inférieur de la séquence. Il est à remarquer que la valeur absolue d'un numéro de séquence n'est pas importante étant donné qu'elle est utilisée uniquement pour indiquer un ordre relatif -Q de la charge et dB la décharge. La figure 3a représente un dispositif tampon type, représenté par le dispositif tampon associé au dispositif identifié par une adresse 0011. La ligne A est la prochaine ligne à être déchargée étant donné qu'elle a un marqueur de décharge. Lorsque le ligne A est déchargée, le marqueur va être placé sur la ligne B, ligne qui a le numéro de séquence -5 immédiatement supérieur. La dernière ligne à être chargés sst la ligne C étant donné qu'slle a un marqueur de charge. La ligne suivante qui doit être chargée va avoir le numéro de séquence 110, c'est-à-dire le numéro de séquence de C incrémenté. Les numéros de squence sont également utilisés pour déterminer lorsqu'un 30 dispositif tampon est plein. La longueur d'une séquence est choisie comme étant inférieure d'une unité à la capacité d'un dispositif tampon. La figure 3b représente un dispositif plein avec une capacité représentant 8 lignes de la mémoire, 24 multiplets de données emmagasinées, c'est-à-dire trois multiplets par ligne. La séquence comprend 7 nombres allant de la valeur ^ binaire 001 à la valeur binaire 111, et lorsqu'un dispositif tampon est plein, les données avec le marqueur de charge et les données avec le marqueur de décharge ont les mêmes numéros de séquence. Une vérification pour savoir si un dispositif tampon est plein, a lieu chaque fois qu'il est nécessaire de charger davantage de données dans le dispositif tampon. En utilisant 40 le dispositif tampon de la figure 3b, comme exemple, le premier cycle d'emma 72 11404 7 2135151 gasinage sur une charge de données serait: recherche du champ de commande 12 = 010, sur le champ d'identificateur 13 = 0001, une lecture du champ d'identificateur 13 et du champ de séquence 14. Le registre entrée/sortie à la fin du ycle détient comme valeur dans le champ 13, la valeur 0001, 5 et dans le champ 14, la valeur 001 étant donné que la ligne E est sélectionnée par la recherche. Le second cycle d'emmagasinage correspond à une recherche champ 13 = 0001 et sur le champ 14 = 001, et à une lecture du champ 12. Ceci sélectionne les lignes D et E et, à la fin du cycle, le registre entrée/ sortie détient dans le champ 12 la valeur 011. La présence du marqueur de 10 décharge dans la sortie indique que le dispositif tampon est plein. Si un dispositif tampon est plein, il est possible qu'il suffise que les données à charger soient maintenues dans le registre de sortie du dispositif au moyen duquel elles ont été fournies jusqu'à ce que les données soient déchargées du dispositif tampon. Ceci ne représente pas toujours 15 une solution satisfaisante et dans la description suivante, faite en référence à la figure 5, il est fait usage d'un système dans lequel il est créé un nouveau dispositif tampon tout en maintenant l'ordre des mots de charge et de décharge dans le ou les disppsitifs tampon associés à un dispositif. En se reportant à nouveau à la figure 2, comme cela a été mentionné 20 préalablement, chaque registre de mots de la mémoire de données 10 est soit / utilisé comme faisant partie d'un dispositif tampon soit placé sur la liste disponible. La charge des données dans un dispositif tampon implique la sélection d'un registre sur la liste disponible et l'attribution de ce dernier au dispositif tampon tandis qu'une décharge des données à partir 25 d'un dispositif tampon implique le renvoi du registre d'où les données ont été mises sur la liste disponible. La figure 4a représente le contenu de la mémoire de données 10, contenu qui est, par exemple, de 72 lignes, peu après que le système tampon ait été armoçcé. Sept lignes ont été chargées, deux à partir de chacun des disposi-30 tifs respectivement identifiés par 0010 et 1010, et trois à oartir d'un dispositif identifié Dar 0001. Trois dispositifs tampons ont été formés. Les champs 15a à 15c des sept lignes contiennent des données. Le reste de la mémoire 10 se trouve sur la liste disponible. Les lignes sur la liste disponible sont distinguées par un bit "1" dan? la colonne extrême gauche 35 du champ de commande 12. Un enregistrement des lignes qui emmagasinent les données et des lignes qui sont sur la liste disponible est maintenu au moyen des comptages de charge et de décharge. Comme cela sera expliqué lors du fonctionnement du système de la figure 2, les comptages de charge et de décharge sont emmagasinés dans la mémoire de contrôle 20. Initialement, 40 chaque ligne de la mémoire 10 est identifiée par un nombre allant de 0 à 71. 72 11404 6 2135151 Peu importe le nombre attribué à une ligne étant donné que la mémoire 10 est associative mais il est pratique, à des fins de charge, de placer les lignes suivant un ordre séauentiel allant du haut vers le bas de la mémoire comme le montre la figure 4a. Le nombre identifiant une ligne est emmagasiné 5 dans le champ de données de la ligne. En conséquence, la ligne supérieure de la mémoire 10 contient le nombre 0 et la ligne inférieure de la mémoire 10 contient le nombre 71. Les comptages de charge et de décharge sont tous deux initialement 71. Lorsqu'il est nécessaire de charger un mot dans la mémoire 10, le comptage de charge est examiné, testé par comparaison au 10 comptage de décharge, incrémenté et utilisé pour sélectionner la ligne de la mémoire 10 qui se trouve sur la liste disponible et qui a, dans le champ de données, le même nombre que le comptage de charge. Le test fait sur le comptage de décharge consiste à déterminer si la mémoire est pleine ou vide. Si l'on uppose que la mémoire 10 est vide, et si l'on suppose que les nombres 15 0 à 71 sont écrits dans les champs de données 15a à 15c, et que la colonne gauche du champ de commande 12 de chaque ligne contient un "1" binaire, le processus se fait de la façon suivante: 1. Le comptage de charge est retrouvé et comparé au comptage de charge. Etant donné qu'ils sont tous deux 71, ceci montre que la mémoire 20 est pleine ou vide. Une recherche est alors faite sur la colonne extrême gauche du champ de commande 12 et révèle contenir au moins un "1" binaire, de sorte que la mémoire est reconnue être vide. 2. Le comptage de charge est incrémenté de 71 à 0. 25 3. Une recherche est faite pour la ligne contenant "0" dans le champ de données - dans ce cas, la ligne supérieure delà mémoire -et le mot à emmagasiner est écrit dans la ligne au moment même où le bit de la liste disponible est amené à "0". La figure 4a représente l'état de la mémoire 10 après que sept mots 30 aient été chargés et qu'aucun n'ait été déchargé. Le comptage de décharge reste à 71 tandis que le comptage de charge est maintenant 6. Il est supposé qu'il est nécessaire de décharger un mot à partir du dispositif tamppn associé au dispositif 0001. On procède à une recherche avec l'argument de recherche 001 dans le champ 13 et avec l'argument de recherche 001 dans le champ 12. 35 La ligne J (figure 4b) est sélectionnée, et les données sont déchargées des champs 15a à 15c. Le comptage de décharge est retrouvé et incrémenté, passant, dans le présent exemple, de 71 à 0. Il y a de nouveau accès à la ligne J en utilisant les champs 12 et 13 en tant qu'argument de recherche et le comptage de décharge incrémenté est écrit dans les champs de données 40 15a à 15c. Simultanément, le contenu du champ 12 de la ligne J passe à 72 11404 9 2135151 100. Pour réaliser l'opération, le marqueur de décharge est écrit dans le prochain mot de séquence supérieure du dispositif tampon, dans le cas présent, dans la ligne K. L'effet des opérations de décharge consiste à rendre la igne J de la mémoire 10 disponible pour l'emmagasinage des données. En 5 considérant la manière suivant laquelle le comptage de charge et de décharge est utilisé, on peut voir que la ligne J ne va pas être employée avant l'utilisation de tous les mots de la liste disponible au début de l'opération de décharge. Le processus décrit assure qu'une ligne de la mémoire est disponible aussitôt qu'elle est déchargée. La ligne J est chargée tout de suite 10 après la ligne ayant l'adresse 71, indépendamment de l'utilisation ou non de toute ligne (sur la figure 4b, la ligne supérieure de la mémoire 10). Si la cadence de la charge et de la décharge est approximativement la même pour tous les dispositifs, l'effet des comptages de charge et de décharge consiste à déplacer cycliquement la liste disponible autour de la mémoire. Si, par exemple, environ 50 lignes sont utilisés en un temps donné quelconque, la liste disponible va initialement de la cinquantième à la soixante douzième ligne. Peu après, elle va de la soixantième à la soixante douzième ligne et de la première à la dixième ligne et, encore plus tard, de la dizième à la trentième ligne. Par ailleurs, si quelques dispositifs sont tels que 20 les données qui leur sont associées restent plus longtemps dans la mémoire que les données restantes, il y a un léger mouvement cyclique dans la mémoire des dispositifs tampon attribués à ces dispositifs ainsi qu'un mouvement cyclique beaucoup plus rapide de dispositifs tampon attribués aux dispositifs restants. 25 Les tables d'incrémentation pour les numéros de séouence de mots d'un dispositif tampon et les comptages de charge et de décharge sont représentés sur la figure 2. La mémoire de comptage 20 détient à la fois la table d'incrémentation de séquence 30 et la table d'incrémentation de comptage 32. En considérant tout d'abord la table d'incrémentation de séquence 30, 30 n va être rappelé qu'un mot de dispositif tampon non attribué contient la valeur binaire 000 dans le champ 14. Lorsqu'un mot de dispositif tampon est attribué à un dispositif, la valeur à charger dans le champ 14 est une valeur d'une unité supérieure à celle du champ 14 du mot préalablement attribué au dispositif, ou bien, si c'est le premier mot à attribuer au 35 dispositif, la valeur est 001. La capacité d'un dispositif tampon est de 8 mots, mais, étant donné que lorsque le dispositif tampon est plein, las numéros de séquence sont égaux, il y a seulement sept valeurs requises oour le champ 14. La table d'incrémentation occupe le champ 24 de la mémoire de comptage 20, champ qui est directement connecté au champ 14 de la mémoire 40 de données 10, et qui comprend neuf lignes de trois bits chacune. Les valeurs 72 11404 10 2135151 10 binaires 000, 001, 010 à 111, sont respectivement emmagasinées dans lss huit premières lignes. La neuvième ligne contient la valeur 001. La table est destinée à être utilisée dans un cycle de mémoire dans leauel sont réalisées les opérations Sélection, Suivante, Lecture en utilisant le champ 24 en tant que champ de recherche ainsi que de lecture. Au début d'un cycle, l'argument de recherche correspond à ce qui a été retrouvé du champ 14 de la mémoire de données 10 durant le cycle précédent. A la fin d'un cycle, le contenu du champ 24 est, partant, du champ 14 du registre entrée/sortie de la mémoire de données 10, représente le numéro de séquence qui doit être placé dans le mot de dispositif tampon attribué. Si aucun mot n'a été préalablement attribué, l'argument de recherche est 000 et le mot suivant de la table est retrouvé pour obtenir la valeur 001 comme numéro de séquence. D'autres arguments de recherche donnent finalement en une sortie de l'argument de recherche incrémenté de un. Il est à noter que la valeur 111 est incrémentée à 001 et qu'un argument de recherche suivant de valeur 001 donne finalement en une sortie de valeur 010 malgré les deux lignes de la table sélectionnée. Ceci est dû au fait que les lignes sélectionnées sont soumises à une condition OU, et la ligne suivant la neuvième ligne de la table contient dans le champ 24 uniquement les cellules d'états X qui sont lues en tant que zérô. 20 La table d'incrémentation de comptage de charge et de décharge 32 est construite suivant un principe différent de celui utilisé pour la table d'incrémentation de séquence 30. Les comptages de charge et de décharge peuvent assumer des valeurs qui se trouvent dans une gamme plus grande que celle des numéros de séquence. Une mémoire de données type 10 Deut avoir 2$ environ 70 registres de mots. Il peut être conçu une table d'incrémentation pour une incrémentation de 0 à 70, table qui ne nécessite pas trop d'espacement d'emmagasinage; mais cette table est complexe dans son utilisation et nécessite différents nombres de cycles d'emmagasinage conformément à la quantité de propagations de reports requise. Il est bien entendu possible de construire 30 une table semblable à la table 30, mais la quantité d'espacement d'emmagasinage requise est particulièrement grande. Pour pallier ces inconvénients, on a recours au fait que la mémoire de données 10 est associative si bien qu'il n'est pas nécessaire d'identifier les registres de mots de la mémoire de données par une liste ordonnée de numéros. Tout ce qui est nécessaire 35 est une configuration de bits différente pour identifier chaque registre de mots. La table d'incrémentation de comptage 32 est conçue pour obtenir à la sortie une séquence de configurations de bits de sorte que l'usage d'une configurations de bits de la séquence en tant qu'argument de recherche donne finalement la sortie de la configuration de bits suivante de la séquence. Une configuration de bits n'a pas de signification numérique. Il est à noter 40 72 11404 11 2135151 que dans la présente description des comptages de charge et de décharge, on a fait référence à des nombres décimaux et à une incrémentation de ces nombres. Mais le choix qui a été fait, dans le mode de réalisation préféré, d'identifications non numériques n'exclut bien entendu pas l'usage de ce procédé 5 d'identification de la liste par tous autres identificateurs. La table 32 de la figure 2 est destinée à être utilisée avec un cycle d'emmagasinage des opérations de Recherche, Suivante, Lecture, avec un argument de recherche comprenant le comptage de charge ou de décharge en cours, argument qui est lu à partir du registre de mots 33 de la mémoire 20 Cpour 10 le comptage de charge) ou à partir du registre de mots 34 de la mémoire 20 Cpour le comptage de décharge), et une sortie comprenant le comptage de charge ou de décharge incrémenté. Le terme "incrémenté" est utilisé ici Dour se référer à la configuration de bits apparaissant dans la séquence après la configuration de bits comprenant l'argument de recherche. Les lignes 15 de la table sont numérotées sur le côté droit. Le tableau suivant illustre la façon dont la table 32 transmet une séquence de configurations de bits en commençant avec un argument de recherche initial "tous des zéros". Par des modifications appropriées, il peut être conçue une table donnant 20 une séquence cyclique d'une longueur quelconque en utilisant l'approche de la table 32. Puisque, par hypothèse, la mémoire de données a environ 70 lignes, la table complète représentée et décrite ai-dessous ne serait pas utilisée. Il va maintenant être décrit les séquences de charge et de décharge pendant une opération cyclique de mémoire. Il est bien conroris que la mémoire de données 10 et la mémoire de contrôle 20 fonctionne suivant un synchronisme 25 commandé par une horloge externe Cnon représentée), que les champs de recherche et de lecture ou d'écriture sont définis par un masquage classique qui est commandé de façon externe, et que les données sur les lignes 16 et 26 sont également fournies par commande externe. Cette commande externe pourrait prendre la forme d'une mémoire de commande à microprogrammes trans-3 0 mettant à chaque mémoire 10 et 20 deux mots de commande pour chaque cycle des mémoires de données de comptage. Chaque mot de commande -contiendrait les données définissant l'opération mémoire à réaliser dans la phase du cycle mémoire auquel est associé le mot, et le champ sur lequel dqit être réalisée l'opération. Cette commande est bien connue dans l'art actuel des 3 5 microprogrammes et des codeurs, aussi n'en sera-t-il donné aucune autre description détaillée. Décharge d'un mot du disppsitif tampon CLe numéro du dispositif est envoyé sur la ligne 17.) Cycle 1 Mémoire de contrôle 20: aucune opération. 40 . Mémoire de données 10: Recherche sur le champ 13 pour le 72 11404 Séauence Ligne Sélectionnée , Lignes lues — 5 Configuration de bits { No de sortie 1 1 2 0 0000 0000 0001 2 2 3 0 0000 0000 0010 3 3 4 0 0000 0000 0100 4 4 5 0 0000 0000 1000 5 1. 5, 7 2, 6, 8 0 0000 0001 1001 6 2, 20 3, 21 0 0000 0001 0010 7 3, 20 4, 21 0 0000 0001 0100 8 4, 20 5, 21 0 0000 0001 1000 9 1, 5, 8. 20 2, 6, 9, 21 0 0000 0011 1001 10 2, 22 3, 23 0 0000 0010 0010- et de même jusau'à 20 4. 26 5, 27 0 0000 1000 1000 21 1, 5, 7. 11, 13, 26 2, 6, 8, 12, 14. 27 0 0001 1001 1001 22 2, 28 3, 29 0 0001 0000 0010 et de même jusqu'à 100 0 1000 1000 1000 101 1, 5, 7, 11, 13 2, -6, 8, 12, 17, 26, 34 18, 27, 35 1 1001 1001 1001 102 18 19 0 0000 0000 0000 Réalisant ainsi le cycle. numéro du dispositif st sur ls champ 12 pour le repère de décharge. Ecrire les données dans les champs 15a à 15c à Dartir du mot sélectionné. . Commentaires: Le mot le moins récemment emmagasiné et associé au dispositif est sélectionné. Le contenu du chamo 15a est maintenant sur la ligne 18. Les champs 15b et 15c sont maintenant disponibles dans les champs 25b et 25c du registre entrée/sortie de la mémoire 20. Cycle 2 mémoire de contrôle 20: Recherche sur les champs 25b et 25c dans la table de décalage. Lecture des champs 25a et 25o. . Mémoire de données 10: aucuns opération. Cycle 1 (suite) COPV bad original 13 2135151 . Commentaires: Les données ont été décalées d'un hamp sur la droite, comme le montre la figure. Le champ 15b du mot sélectionné est maintenant disponible à oartir du champ 25a sur la ligne 18, 5 Cycle 3 Comme pour le cycle 2. Le chamo 15c est maintenant disponi ble sur la ligne 16. Cycle 4 Mémoire de contrôle 20: Recherche sur le charro 22 en utilisant la clé de comotage de décharge. Lecture du comotage de décharge et écriture de celui-ci dans les champs 25a à 25c. 10 . Mémoire de Données 10: aucune opération. Cycle 5 Mémoire de contrôle 20: En utilisant la table d'incrémentation de comotage 32, incrémenter le contenu des champs 25a à 25c. . Mémoire de données 10: Recherche du numéro du dispositif 15 et du reoère de décharge, lecture du numéro de séquence du dispositif tampon et écriture de ce dernier dans le chamo 14. . Commentaires : Le comptage de décharge incrémenté se trouve dans les champs 25a à 25c. Le numéro de séquence du dispositif 20 tampon du^ot qui vient juste d'être déchargé est disponible dans le champ 24. Cycle 6 Mémoire de contrôle 20: Maintenir le comptage de décharge dans les champs 25a à 25c. Incrémenter le numéro de séquence du dispositif tampon en utilisant la table de séquence 30. 25 . Mémoire de Données 10: Sélection du numéro de dispositif et du repère de décharge. Ecriture du comptage de décharge incrémenté dans les champs 15a et 15c et de la valsur 100 dans le champ 12. . Commentaires : le numéro de séquence du dispositif tampon 30 incrémenté est disponible dans le champ 14. Le mot à partir duquel les données viennent justes d'être déchargées, se trouve maintenant sur la liste disponible. Cycle 7 Mémoire de contrôle 20: en utilisant la clé de comptage de décharge dans le champ 22, écriture du comptage de décharge 35 incrémenté dans le registre 34. . Mémoire de données: Sélection du numéro du dispositif et du numéro de séquence du dispositif tampon. Ecriture du repère de décharge dans le champ 12 du mot sélectionné. Ainsi, sept cycles sont nécessaires pour une séquence de décharge 40 type de trois multiplets de données. Il est possible qu'un mot puisse avoir copy 72 11404 14 2135151 à la fois des repères de charge et de décharge. Ceci a lieu lorsque le mot et le dernier mot restant dans un groupe de mots associés à un dispositif donné. Dans ce cas, la séquence de décharge est légèrement modifiée, quoique non raccourcie, en ce sens qu'il n'est pas nécessaire d'incrémenter le 5 numéro de séquence du dispositif tampon. La détection de cette possibilité se fait en recherchant un repère de charge et, si celui-ci est trouvé,en le lisant ec vue de commande externe durant cycle 1 de la mémoire de données. Ceci permet un branchement sur la routine de microprogramme approprié. Charge d'un mot du dispositif tampon Cle numéro du dispositif est 10 disponible sur la ligne 17). Cycle 1 Mémoire de contrôle 20: Lecture du comptage de charge à partir du registre 33. . Mémoire de données 10: recherche du numéro de dispositif et du repère de charge. Lecture du numéro de séquence du 15 dispositif tampon et du reoère de charge. . Commentaires: le repère de charge est obtenu pour déterminer le registre de mots suivant sur la liste disponible. La recherche se fait pour le dernier mot chargé dans le dispositif tampon afin de déterminer le numéro de séquence qui doit 20 être attribué au mot chargé. S'il n'est pas trouvé de repère de charge, il n'existe pas de dispositif tampon pour le dispositif et la commande externe se branche sur cette indication pour une routine légèrement modifiée. Cycle 2 Mémoire de contrôle 20: En utilisant le comptage de charge, 25 rechercher le comptage de décharge. . Mémoire de données 10: Recherche* du numéro de séquence du dispositif tampon en combinaison au numéro du dispositif et du repère de décharge. . Commentaires : Si le comptage de charge retrouve le comptage 30 de décharge, il est bien connu que la mémoire de données est pleine car le comptage de charge est égal au comptage de décharge. La mémoire ne peut pas être vide car il est supposé qu'un repère de charge a été trouvé durant le cycle préalable. De façon semblable, si le numéro de séquence du 35 dispositif tampon est trouvé en combinaison à un repère de décharge, le dispositif tampon attribué au dispositif est plein. Dans l'un ou l'autre cas, la séquence est arrêtée. Une légère attente est habituellement suffisante pour effacer l'une ou l'autre des conditions. 72 11404 15 2135151 Cycls 3 Mémoire de contrôle 20 : Incrémenter le comptage de charge en utilisant la table 32. Incrémenter le numéro de séquence en utilisant la table 30. . Ménoire de Données 10: Recherche du numéro du dispositif 5 du repère de charge. Ecriture de 000 dans le champ 12. . Commentaires : Les incréments dans la mémoire de comptage peuvent avoir lieu simultanément, étant donné qu'ils utilisent dans la mémoire des champs différents mais les mimes opérations de mémoire Recherche, Suivante, Lecture. Dans la mémoire 10 de données, le repère de charge a été enlevé du dernier mot chargé dans le dispositif tampon du dispositif. Cycle 4 Mémoire de contrôle 20: Ecriture du comptage de charge incrémen té dans le registre 33. . Mémoire de Données 10: Sélection du comptage de charge incrémen 15 té et du repère de liste disponible [champ 12= 100) afin de déterminer le registre de mots suivant sur la liste disponiblde Ecriture dans ce registre du numéro de séquence du dispositif tampon 1 dans le champ 14, de l'identification du dispositif dans le champ 13 et de la valeur 010 dans le champ 12. 20 Cycle 5 (Il est supposé que les données sont disponibles sur la / ligne 18). . Mémoire de contrôle 20: Décaler les données de la ligne 18 au moyen du champ 25a et de la table de décalage sur le champ 25b. 25 . Mémoire de Données 10: Aucune opération. Cycle 6 (Il est supposé que les nouvelles données sont disponibles sur la ligne 18) . Mémoire de contrôle 20: Décaler les données de la ligne 18 au moyen du champ 25a et de la table de décalage sur le 30 champ 25b. Au même moment, décaler les données dans le chamD 25b sur le champ 25c. . Mémoire de données 10: Aucune opération. . Commentaires: Les données dans les champs 25b et 25c sont 3 5 également disponibles dans les champs 15b et 15c. Cycle 7 (Il est supposé que les nouvelles données sont disponibles sur la ligne 18). . Mémoire de contrôle 20: Aucune opération. Mémoire de données 10: Recherche du numéro du dispositif 40 et du repère de charge. Ecriture des données extraites des 72 11404 16 2135151 champs 15a à 15c dans le registre de mots. La figure 5 représente le système de la figure 2 adapté pour permettre l'attribution de nouveaux dispositifs tampons aux dispositifs lorsqu'un premier dispositif tampon a été rempli. Pour les mêmes caractéristiques, 5 il est fait usage de références semblables sur les figures 2 et 5. Afin de rendre la description plus aisée, un dispositif tampon rempli va être appelé bloc de données. Comme dans le système de la figure 2, huit registres de mots représentent le nombre maximal attribué à un dispositif tampon si bien qu'un bloc de données comprend huit registres de mots. Pour fixer les 10 idées, le système tampon à décrire connecte une unité CPU à plusieurs terminaux de télécommunication discriminés par différents identificateurs. Les données circulant des terminaux au CPU sont des données d'entrée, tandis que les données circulant du CPU aux terminaux sont des données de sortie. Les données sont transférées entre l'unité CPU et le système tampon en tant 15 que blocs de données et non pas en tant que mots distincts, tandis que les données sont transférées entre les terminaux et le système tampon en tant que mots distincts. A l'entrée, les données provenant des terminaux sont assemblées dans des dispositifs tampon, un dispositif tampon pour chaque terminal actif, 20 comme pour le système de la figure 2. Lorsqu'un dispositif tampon est plein, son état est changé pour devenir alors un dispositif tampon d'interface d'Bntrée et devient un bloc de données. Ceci implique simplement le changement des valeurs de certains bits d'état associés aux données. Le bloc de données reçoit un numéro de séquence de bloc et une requête est ajoutée à la liste 25 de requêtes d'entrée. Les blocs sont transférés sur l'unité CPU, normalement suivant l'ordre de la demande, bien qu'il sera décrit un mode de priorité optionnel. Lorsqu'un bloc a été transféré, les registres de mots sont renvoyés sur la liste disponible. A la sortie, en réponse à une demande de sortie sur une liste de reouêtes 30 de sortie, un bloc de données est transféré sur le système tampon ainsi que l'identification du terminal auquel il est destiné. La demande de sortie est enlevée de la liste de requête et chaque mot de données dans le bloc, maintenant un dispositif tarroon de sortie, est transféré sur le terminal; le registre de mots est renvoyé sur la liste disponible. 35 La différence importante entre les systèmes des figures 2 et 5 réside dans l'extension du champ de commande 35, représenté sur la figure 5, de la mémoire de données. Le champ 35 comprend maintenant 5 bits. Les deux registres d'extrême droite sont les repères de charge et de décharge déjà décrits. Les trois bits restants indiquent les différents états des registres 40 de mots avec lesquels ils sont associés: 72 11404 17 2135151 10 000 indique que les données appartiennent à un dispositif tampon d'interface d'entrée. 001 indique que les données appartiennent à un dispositif tampon d'interface de sortie. 010 ou 011 indique que les données appartiennent à un dispositif tampon incomplet. 100 indique que le registre de mots détient les données relatives à la liste de requête d'entrée. 101 indique que le registre de mots déteint les données relatives à la iste de requêtes de sortie. 110 ou 111 indiquent que le registre de mots appartient à la liste disponible. Le champ correspondant au champ 35 dans la mémoire de comptage 20 est le champ 36. ^ Outre la fait de détenir les données, la mémoire de données 10 a pour fonction de maintenir la liste de requêtes d'entrée et la liste de requêtes de sortie 30. La mémoire de contrôle 20, outre le fait de détenir la table d'incrémentation de séquence 30 (les détails ne sont pas représentés), et la table d'incrémentation de comptage 32, (représentée comme forme réduite 20 de la table 32 de la figyre 2), détfent également une paire de comptages d'entrée 39, une paire de comptages de sortie 40 et une paire de comptages de charge, décharge 41. Cette dernière paire est utilisée de la même manière que les paires de charge et de décharge décrites en regard de la figure 2. Les autres paires de comptage comprennent chacune un comptage de charge 25 et de décharge. Il se trouve également dans la mémoire de comptage 20, une table de décalage 42 utilisée pour décaler les données entre le champ de données 25b et le champ identificateur 23. En considérant de façon plus détaillée l'entrée de données, lorsqu'il est détecté un dispositif tampon d'entrée complet (les numéros de séauence 30 sont égaux et le repère de décharge est présent), un mot supplémentaire (outre le mot requis pour les données) est extrait de la liste disponible utilisant le comptage de charge de la paire 41. L'identificateur de terminal dans le champ 13 du dispositif tampon est décalé au moyen de la table 42 dans le champ 15b. Simultanément, le comptage de charge d'entrée de la 35 paire 39 est lu pour le champ 23 de la mémoire de comptage. Le comptage de charge d'entrée est écrit dans le chamo 13, l'identificateur de terminal, dans le champ 15b et 1 00 00 dans le chamo de commande 35 de la mémoire de données, construisant ainsi un mot semblable au mot 37. Finalement, dans la mémoire de données, le comptage de charge d'entrée est écrit dans 40 le champ 13 de tous les mots du dispositif tampon de données plein, ainsi 72 11404 18 2135151 10 que 000 dans les trois colonnes de gauche du champ 35. Ceci change le dispositif tampon d'entrée plein en un bloc de données. L'opération est réalisée en incrémentant le comptage de charge d'entrée dans la mémoire de comptage. La charge d'un autre élément de données à partir du terminal du bloc de données associé se fait de la façon décrite pour le système de la figure 2 utilisant le comptage de charge de la paire de connptage 41 pour sélectionner un registre de mots sur la liste disponible, afin d'ouvrir un nouveau dispositif tampon pour le terminal. Les trois bits gauches du champ de commande 35 vont être fixés à 010 ou 011. La figure 5 représente un exemple d'un bloc de données d'entrée 43. Il est supposé que ce bloc est le premier bloc et, ainsi, détient-il un identificateur 0000 0000. Il est associé au bloc un mot de requête d'entrée 37 qui détient l'identificateur de bloc et, dans le champ 25b, l'identificateur du terminal d'où proviennent les données. Pour sélectionner un bloc de données, ^ la commande externe lit le comptage de décharge d'entrée de la paire de comptage 39 et le compare au comptage de charge d'entrée. S'ils sont égaux, un bloc n'est pas présent dans la mémoire de données. S'ils sont inégaux, on procède à une recherche pour le mot de requête avec un identificateur égal au comptage de décharge d'entrée. Ceci fournit l'identificateur de 20 terminal à la commande externe. Ensuite, les mots du blocs sont successivement déchargés delà façon décrite en regard de la figure 2, en utilisant le comptage de décharge d'entrée comme identificateur. L'opération se termine avec l'incrémentation du comptage de décharge d'entrée. La décharge des blocs de données est un procédé semi-continu, la commande externe testant de façon répétée les comptages d'entrée pour vérifier si un bloc doit être déchargé. Une variation du processus ci-dessus consiste à utiliser une partie du champ de données du dernier mot d'un bloc de données pour maintenir l'identificateur de terminal. Ceci épargne un mot à partir de la liste disponible mais signifie qu'un bloc de données contient légèrement moins de données. La sortie, c'est-à-dire, le transfert des données de l'unité CPU au terminal, est semblable à l'entrée. De la façon classique, l'unité CPU dit au terminal qu'il a des données prêtes pour le transfert. Le terminal présente L'identificateur de terminal au système tampon par la ligne 17, et une requête de sortie, telle qu'un mot 38, est ajoutée à la liste en sélectionnant un registre de mots à partir de la liste disponible utilisant le comptage de charge, en lisant le comptage de charge de sortie de la paire de comotage 40 et en le plaçant dans le champ d'identificateur 13 tout en décalant l'identificateur de terminal sur le champ 15b, et en écrivant le mot ainsi formé dans le registre extrait de la liste disponible. Les bits d'extrême gauche du champ 35 du mot de requête sont 101. Finalement, le comptage 30 35 40 72 11404 19 2135151 de charge de sortie est incrémenté. En un temos donné quelconque, il peut y avoir plusieurs mots de requête de ce type dans la mémoire de données, ordonnés suivant leur numéro de comptage de charge de sortie. La commande externe, comme pour les requêtes d'ent-5 rée, essaie constamment de libérer la liste de requêtes de sortie. Ceci est fait en lisant le comptage de décharge de sortie de la mémoire de comptage. Si le comptage de décharge de sortie n'est pas égal au comptage de charge de sortie, il sélectionne, au moyen du comntage de décharge de sortie, le mot de requête de sortie dans la mémoire de données afin d'obtenir l'iden-10 tificateur de terminal. En utilisant cet identificateur, l'unité CPU transfère le bloc de données au système tampon, comme cela est décrit pour la figure 2. L'identificateur de terminal est utilisé dans le champ 13. Finalement, le mot de requête est renvoyé sur la liste disponible. S'il n'y a pas de bloc de données pour le même terminal déjà dans la mémoire de données, 15 les données peuvent alors être transférées au terminal par la séquence de décharge prélablement décrite, après changement des bits d'extrême gauche du champ 35 en 010. S'il y a déjà un bloc de données dans la mémoire de données, ces bits sont 001, et les données dans le bloc ne sont pas encore disponibles pour le terminal. 20 La liste de reqSâtes d'entrée peut être modifiée pour tenir compte / des transferts de données dont la priorité diffère. Pour chaque valeur de priorité, il est fournie une paire de comptages d'entrée respective, les différentes paires étant discriminées par des bits d'ordre supérieur différents. Les paires de comptages d'entrée sont examinées et traitées dans 25 l'ordre de priorité en commençant par la plus grande priorité. Ainsi, le transfert de blocs de données d'entrée a lieu jusqu'à ce que le comptage de charge d'entrée de plus grande priorité soit égal au comptage de décharge d'entrée de plus grande priorité; sur ce, la paire de comptages de plus grande priorité suivante est examinée. La priorité pourrait être automatique-30 ment attribuée conformément à la source de données cas dans lequel l'identificateur de terminal pourrait contenir des bits de grande priorité ou à son contenu en données, cas dans lequel certains mots pourraient être reconnus comme donnant priorité au message. Des modifications aux modes de réalisation pourront facilement être 35 apportées par l'homme de l'art. Par exemple, la mémoire de contrôle pourrait être supprimée, les numéros de séquence et les comptages étant maintenus dans des registres et incrémentés par un additionneur d'unité 1. L'adaptation de dispositifs tampon au mode de fonctionnement premier entré, premier sorti, est facilement effectuée en sélectionnant le mot avec le marqueur de charge 40 pour la décharge, et en transférant le marqueur de charge sur le mot avec 72 11404 20 2135151 le numéro de séquence suivant d'ordre inférieur. Les principaux avantages d'un système d'emmagasinage de données conforme au mode de réalisation préféré résident dans la facilité avec laquelle ce système peut être fabriqué, tout particulièrement dans les circuits monolithique étant dcnné que la structure d'une mémoire est très régulière et qu'elle peut être réalisée avec des types de petits blocs de circuits intégrés très peu différents, et dans la facilité avec laquelle le système peut être adapté à différentes applications. Le nombre maximal de mots dans un dispositif tampon est laissé au choix du microprogrammateur du système et n'est pas déterminé par l'équipement. Il est envisagé que, avec une commande très peu compliquée, différents dispqsitifs tampon de dimension maximale pourraient être attribués à différents dispositifs. Dans un second mode de réalisation, les propriétés sont facultatives et peuvent être facilement modifiées à la lumière de l'expérience. En bref, la présente invention fournit un système d'emmagasinage de données qui est économique quant à son espacement d'emmagasinage, qui offre un fonctionnement souple et qui est de construction relativement simple. Bien que l'on ait décrit dans ce oui précède et représenté sur les dessins les caractéristiques essentielles de l'invention appliquées à un mede de réalisation préféré de celle-ci, il est évident que l'homme de l'art peut y apporter toutes modifications de forme ou de détail qu'il juge utiles, sans pour autant sortir du cadre de ladite invention. /rj BAD ORIGINAL 72 11404 21 2135151 REVENDICATIONS 1.- Système d'emmagasinage de données du type comprenant une première mémoire associative comprenant elle-même plusieurs registres associatifs Dour l'emmagasinage d'éléments de données, caractérisé en ce que les registres qui ne sont cas utilisés pour l'emmagasinage des éléments de données sont identifiés par des nombres séquentiels appartenant à une séquence . numérique cyclique dont la longueur est égale au nombre de registres dans la première mémoire associative, un nombre différent étant emmagasiné dans chaque registre qui n'emmagasine pas d'élément de données, et en ce qu'il comorend un mpyen pour emmagasiner dans un registre à partir duquel est extrait un élément de données, avant que ne soit extrait tout autre élément de données de la mémoire associative, le nombre faisant suite, dans la séquence cyclique, au dernier nombre séquentiel. 2.- Système selon la revendication 1, caractérisé en ce qu'il comprend un premier registre pour emmagasiner un nombre relié au nombre de la séquence cyclioue qui doit être emmagasiné dans la prochain registre associatif à partir duquel un élément de données est extrait, un second registre pour emmagasiner un nombre relié au plus petit nombre de la séquence cpclique emmagasiné dans un registre associatif ne contenant pas d'élément de données, et un moyen pour incrémenter les nombres dans les premier et deuxième registres. 3.- Système selon la revendication 2, caractérisé en ce qu'il comprend une seconde mémoire associative comprenant les premier et deuxième registres en tant que registres associatifs de mots, et en ce que le moyen pour incrémenter les nombres comprend une table d'incrémentation dans la seconde mémoire associative, de telle sorte aue l'incrémentation est réalisée par consultation du contenu de la table d'incrémentation. 4.- Système selon l'une quelconque des revendications précédentes, caractérisé en ce aue les éléments de données sont associés avec des dispositifs de traitement de données, et en ce que chaque élément de données est emmagasiné dans un registre associatif avec un indicateur du dispositif avec lequel cet élément est associé, et avec un nombre séauentiel qui apoartient à une séauence cyclique de nombres, les nombres de la séquence indiquant l'ordre dans lequel les éléments de données associés avec le même dispositif sont chargés dans le système. copy 72 11404 22 2135151 5.- Système selon la revendication 4, caractérisé en ce qu'un des éléments de données emmagasinés associé avec un dispositif à un marqueur de décharge indiquant que l'élément de données est le procbbin élément de données associé avec le dispositif à être déchargé à partir du système. § 6.- Système selon la revendication,5, caractérisé en ce qu'il comprend un moyen mis en oeuvre en déchargeant un élément de données à partir du système, pour placer le marqueur de charge dans le registre associatif emmagasinant l'élément de données chargé avec le nombre séquentiel de la deuxième séquence cyclique suivant le nombre séquentiel de l'élément de 10 données qui vient d'être déchargé et associé avec le même dispositif. 7.- Système selon l'une quelconque des revendications 4 à 6, caractérisé en ce qu'un des éléments de données associés avec un dispositif à un marqueur de charge indiquant que l'élément dB données a été le dernier élément de données associé avec ce dispoitif à être chargé dans le système. 15 8.- Système selon la revendication 7, caractérisé en ce qu'il comprend un moyen mis en oeuvre en chargeant un nouvel élément de données associé avec un dispositif, pour charger une indication de charge dans le même registre que l'élément de données, avec le nombre séquentiel de la deuxième séquence cyclique suivant le nombre séquentiel de l'élément de données associé avec 20 ce dispositif et ayant le marqueur de charge, et pour effacer le.marqueur de charge de ce dernier élément de données. 9.- Système selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend un moyen pour détecter quand un bloc d'éléments de données comprenant un nombre donné d'éléments de données associés avec 25 le même dispositif, etfc dlisposé dans le système, et un moyen pour associé un nombre de blocs avec chaque élément de données d'un bloc, les nombres de bloc commdndant l'ordre dans lequel les blocs sont déchargés du système. 10»- Système selon la revendication 9, caractérisé en ce qu'il utilise plusieurs ensembles de nombres de bloc, chaque ensemble ayant une priorité 30 différente, les blocs étant déchargés du système dans l'ordre de priorité de l'ensemble et dans l'ordre des nombres de bloc dans une priorité donnée.