Brevet FR2330115A1 — publié le 19770527

La présente invention concerne des mémoires de données, et plus particulièrement des systèmes de mémoire du type à automise-en-séquence ou à "rayon". Dans une mémoire traditionnelle, il existe un grand nombre d'emplacements, ayant chacun une adresse différente, et des données peuvent être stockées dans un emplacement quelconque en adressant cet emplacement. Les données mises en mémoire peuvent être récupérées en adressant à nouveau l'emplacement. Avec ce système, l'information dans un emplacement est entièrement indépendante de celle dans un autre emplacement quelconque. Fréquemment, l'information est sous la forme de mots ou enregistrements, habituellement de format fixe, ayant chacun une partie indicatif et une partie données, et il est préférable de stocker ceux-ci dans l'ordre d'indicatif, ou plus précisément de les stocker de sorte qu'ils puissent être récupérés dans l'ordre d'indicatif. Une façon de faire ceci est d'utiliser une mémoire associative, dans laquelle les enregistrements sont stockés dans des emplacements inconnus et sont récupérés en appelant chaque indicatif tour à tour. Ceci toutefois est coûteux, et suscite des difficultés si les indicatifs sont numériquement largement séparés. Une autre façon de faire ceci est d'utiliser une mémoire traditionnelle avec des moyens de programmation pour effectuer une recherche de mémoire chaque fois qu'un nouvel enregistrement doit y être enregistré, pour l'emplacement correct pour l'insérer; soit en déplaçant physiquement les enregistrements déjà en mémoire pour insérer le nouveau dans son emplacement correct, soit en réalisant une chalne d'adresses ajoutée sur les enregistrements de sorte que chaque enregistrement porte l'adresse du suivant.Ceci toutefois est lent, puisqu'une grande quantité de temps de fonctionnement sera habituellement nécessaire pour l'agencement correct des enregistrements. Par conséquent, il existe un besoin d'une mémoire qui puisse rapidement et facilement recevoir et rendre disponibles des enregistrements dans l'ordre d'indicatif, ou par appel d'in indicatif. le but de la présente invention est de proposer une telle mémoire. Par conséquent, la présente invention propose un système de stockage pour conserver des enregistrements consistant chacun en une partie indicatif et en une partie données, comportant un registre à décalage pour stocker les enregistrements et comprenant une fenêtre devant laquelle les enregistrements stockés peuvent être décalés de sorte que chacun tour à tour soit disponible, la fenêtre ayant un comparateur associé qui compare l'indicatif de l'enregistrement couramment disponible sur la fenêtre et un indicatif désiré, la sortie du comparateur commandant le transfert d'un enregstrement depuis la fenêtre ou dans la fenêtre, les enregistrements stockés sur l'un ou l'autre c8té de la fenêtre étant décalés de façon appropriée si un enregistrement doit être inséré dans ou supprimé du registre à décalage. Le registre à décalage peut être bidirectionnel, mais il est de préférence cyclique et unidirectionnel. Dans ce dernier cas, il peut y avoir plusieurs fenêtres, chacune avec son comparateur respectif, toutes alimentées par le même indicatif et partageant un canal commun d'entrée/sortie. Des moyens sont prévus pour conserver une trace du nombre d'enregistrements en mémorre dans le système, et où ces enregistrements se trouvent. Trois modes de réalisation de la présente invention seront à présent décrits à titre d'exemple en se référant aux dessins annexés. La Figure 1 est un schéma fonctionnel d'un système de mémoire linéaire. La Figure 2 est un schéma fonctionnel d'un système à format fixe cyclique. La Figure 3 est un schéma fonctionnel partiel d'un système à format variable cyclique. La Figure 4 est un diagramme simplifié d'une partie de l'ensemble de circuits de commande de décalage du système de la Figure 3. Le principe de la présente invention sera à présent expliqué en se référant au système représenté à la Figure 1. Ce système comporte un registre à décalage central court MSR, deux registres à décalage longs LSR et RSR connectés à la gauche et à la droite respectivement du registre à décalage central (tous ces registres étant bidirectionnels), un registre d'entrée/ sortie IOR, un comparateur 10, et unecircuiterie de commande 11. Le système fonctionne avec des mots de format fixe consistant en une partie indicatif K et une partie données D. Les deux registres LSR et RSR peuvent tous deux contenir un grand nombre de mots, et sont d'égale longueur tandis que les re gistres MSR et IOR peuvent contenir un seul mot chacun. Le but du système est de conserver des mots dans l'ordre de leurs indicatifs. Plus particulièrement, en fonctionnement,le système mettra en mémoire un certain nombre de mots dans l'ordre d'indicatif; si un nouveau mot doit être placé dans le système (instruction d'ECRITUt?E), il est inséré dans l'emplacement correct dans la séquence de mots déjà en mémoire, tandis que si un mot doit être lu tout en demeurant dans le système (instruction de LECTURE), ou être lu et être retiré du système (instruction d'EX#P#CTION), il est situé au moyen d'un indicatif qui est utilisé pour la recherche jusqu a ce qu'un mot mis en mémoire avec cet indicatif soit trouvé. La capacité maximale du système est égale au nombre de mots que l'un ou l'autre des registres LSR et RSR contiendra, et dans l'état de repos les mots sont conservés dans le registre RSR, à l'extrémité gauche de celui-ci, de sorte qu'il y aura un certain nombre d'espaces de mot vides à l'extrémité droite du registre RSR à moins que le système soit rempli. Un compteur de mot WC contient un comptage du nombre de mots dans le système, et un compteur de décalage SO contient un comptage de décalage dont la nature et le but apparaitront sous peu. Pour une instruction LECTURE, l'indicatif du mot à lire est placé dans la partie indicatif du registre IOR. Les registres RSR, ZZSR et LSR sont décalés vers la gauche ensemble, mot par mot, et lorsque chaque mot tour à tour occupe le registre MSR, son indicatif est comparé par le comparateur 10 avec l'indicatif dans le registre IOR. Chaque décalage de mot est compté par le compteur de de décalage SC, de sorte que le système a un enregistrement de combien les mots stockés ont été décalés. Lorsque le comparateur détecte des indicatifs égaux, le décalage s'arrête et la partie données du mot maintenant dans le registre lER, qui est le mot recherché, est transcrit dans la partie données du registre IOR. Les registres RSR, MSR et LSR sont à présent décalés vers la droite ensemble, mot par mot, chaque décalage de mot diminuant le comptage dans le compteur de décalage SC jusqu'à ce que ce comptage atteigne zéro, auquel point l'information en mémoire est ramenée dans sa position initiale, et le mot désiré a déjà été obtenu. Pour une instruction d'EX?RACUION, le système fonctionne comme pour l'instruction de LECTURE jusqu' à ce que le comparateur indique que le mot recherché se trouve dans le registre MSR et que sa partie données a été transférée au registre IOR. Les registres LSR et MSR sont ensuite décalés vers la droite d'un mot, tandis que le registre RSR n'est pas décalé, et le compteur de décalage SC et le compteur de mot WC sont diminués chacun de 1. Ceci se traduit par la perte du mot extrait à l'extrémité droite du registre SSR et par un rapprochement des mots dans le registre LSR de ceux dans le registre RSR en une séquence continue.Les trois registres LSR, MSR et RSR sont ensuite décalée vers la droite ensemble, comme pour une instruction de LECTURE, pour renvoyer les mots en mémoire à l'extrémité gauche du registre RSR. Pour une instruction d'ECRITURE, le mot à inscrire est placé dans le registre IOR, et les registres RSR, MSR et LSR sont décalés vers la gauche ensemble jusqu'à ce que le comparateur 10 indique des indicatifs égaux ou, si aucune égalité n'est trouvée, jusqu'à ce que l'indicatif dans le registre MSR dépasse I'indicatif dans le registre IOR. A ce point, les registres LSR et MSR sont décalés encore vers la gauche d'un mot, et le compteur de décalage SC et le compteur de WC augmentés chacun de 1. Ceci laisse le registre M?# > R vide, et le mot dans le registre IOR est transcrit dans celui-ci.Les registres LSRs MSR et RSR sont ensuite tous décalés vers la droite ensemble sous la commande du compteur de décalage SC pour ramener l'information en mémoire à sa position normale à l'extrémité gauche du registre RSR. Il découle de la description ci-dessus que le système met en mémoire des mots avec leurs indicatifs en succession, l'indicatif le plus bas étant sur la gauche. Les trois instructions de LECTURE, d'ECRIOURE et d1EXTRAC- ION telles que décrites ci-dessus peuvent en fait consister chacune en plusieurs variantes dans les formes plus développées du système. Ainsi si en accomplissant une instruction de~LEC?a- RE ou d'EERACXION, le comparateur 10 indique que l'indicatif dans le registre MSR est plus grand que celui dans le registre IOR, ceci signifie que le système ne contient aucun mot avec 11 indicatif recherché.Dans une variante de ces instructions, le système ne fera rien de plus; dans une autre variante, le systé- me lira ou extraira le mot dans le registre MSR, qui est le mot avec l'indicatif suivant au-dessus de celui recherché. On notera que le système comprend un trajet pour la partie indicatif du registre I^3R vers la partie indicatif du registre ICB, de sorte que l'indicatif du mot dans le registre .TSR peut être obtenu dans cet exemple. Il est également possible pour un mot d'être introduit dans le système pour avoir le même indicatif qu'un mot déjà dans le système. Dans une variante, l'instruction dtECRI7URE provoque la génération d'un signal si les indicatifs dans les registres DER et IOR sont trouvés être les mêmes; l'utilisateur peut alors, par exemple, désirer combiner le mot en mémoire avec le mot à mettre en mémoire, ou accomplir certaine autre action. Dans une autre variante, l'instruction d'ECRIgURE met simplement en mémoire le nouveau mot à c8té du mot existant avec le même indicatif. Puisqu'il est possible pour le système de contenir plus d'un mot avec un indicatif donné, il existe d'autres variantes d'instructions da LECTURE et d'EXTRACTION, dans lesquelles lorsqu'on trouve une égalité d'indicatifs, le mot ainsi trouvé est lu ou extrait et les registres RSR et M & R sont décalés d'un mot vers la gauche pour voir si le mot suivant a le même indicatif, la séquence se poursuivant jusqu a ce qu'une inégalité d'indicatif soit détectée. Pour cette variante d'instruction de LECTURE, le registre RSR sera bien sûr décalé vers la gauche avec les registres LSR et IER, tandis que pour une instruction d'EXTRAC- TION, le registre LSR ne sera pas décalé vers la gauche.Une autre variante d'instruction de LECTURE et d'EXTRACTION amènera des mots à être lus ou extraits en succession indépendamment de leurs indicatifs, jusqu a ce qu t une commande externe mette fin à l'opération. Ceci permettra à une série complète de mots d'être restituée en séquence. Le système de la Figure 1 tel que décrit souffre d'un inconvénient important du fait que le système n'est efficace qu'à 5~k de l'utilisation de sa capacité potentielle de mémoire, puisque l'information mise en mémoire totale doit toujours être capable d'être mise en mémoire dans seulement un des deux registres à décalage L'R et RSR. Cet inconvénient peut être surmonté en adoptant une forme en boucle fermée pour les registres à décalage, en réunissant ltextrémité gauche du registre LSR à l'extrémité droite du registre RSR, et en faisant les modifications appro priées à la circuiterie de commande 11. De plus, le système de la Figure 1 tel que décrit présente l'inconvénient que l'information mise en mémoire dans celui-ci est toujours décalée en retour vers le registre RSR à la fin d'une instruction, tandis que le décalage nécessaire pour l'instruction suivante sera habituellement moindre que ce décalage. Cet inconvénient peut être surmonté facilement en s'arrangeant pour que l'information demeure où elle est après qu'un mot a été lu, extrait ou inscrit, et, lorsque l'instruction suivante doit être accomplie, en déterminant à partir de l'indicatif du nouveau mot si un décalage quelconque est nécessaire et s'il I'est dans. quelle direction. Toutefois, pour des raisons pratiques, il est souhaitable d'utiliser des registres à décalage unidirectionnels plutôt que bidirectionnels. Lors de l'adoption d'une forme en boucle fermée pour les registres à décalage, par conséquent, il est souhaitable de retenir la caractéristique du système de la Figure 1 selon laquelle la recherche est toujours effectuée en décalant l'information en mémoire dans la même direction.Lors de l'achèvement d'une recherche et d'une lecture, d'une inscription ou d'une extraction d'un mot, l'information en mémoire sera décalée encore dans la même direction pour l'opération suivante. Il ressort de ceci que le temps d'accès moyen du système de la Figure 1 est proportionnel à la quantité d'information en mémoire, tandis que celui pour le système à boucle fermée ou cyclique sera constant et égal à celui du système de la Figure 1 lorsqu'il est plein. Si le système a une grande capacité, le temps d'accès sera par conséquent long. Celui-ci peut être réduit en divisant la boucle de registre à décalage en plusieurs sections égales, avec des points d'accès ou fenêtres entre eux, de sorte que des mots peuvent être lus à partir de ou insérés dans une fenêtre quelconque. Il est également évident qu'en prévoyant un registre à décalage d'une largeur d'un mot au lieu d'une largeur d'un bit, c'està-dire un nombre de registres à décalage fonctionnant en parallèle de sorte que tous les bits d'un mot soient disponibles ensemble, la vitesse du système sera augmentée en conséquence. Les fenêtres seront quelque peu plus compliquées, mais le coût principal du système réside dans les registres à décalage, et le coût de ceur-ci dépendra de la quantité d'information à mettre en mémoire et non si ils sont disposés en série, en série-parallèle ou en parallèle. Un système utilisant une disposition de registre à décalage en boucle fermée avec plusieurs fenêtres et avec fonctionnement en parallèle sera maintenant décrit en se référant à la Figure 2.ira partie principale du système est un jeu de huit registres à décalage SRO à SR7 (seulement SR3, SR4 et sR?: étant représentés sur la figure). Ceux-ci sont divisés en deux groupes, SRO à SR3 et SR4 à SR7. Chacun de ces registres à décalage est un registre parallèle, c'est-à-dire un jeu de registres à décalage individuels fonctionnant tous en parallèle, de sorte qu'un mot complet (données plus indicatif) peut être mis en mémoire dans une extrémité et un autre#mot complet apparait à l'autre extrémité à chaque décalage.Le décilage est unidirectionnel, comme indiqué sur la figure. Un registre d'entrée/sortie IOR est couplé à deux fenêtres PO et PI entre les deux groupes de registres à décalage. La par- tie indicatif du registre IOR alimente deux comparateurs distincts 20 et 21, qui sont également alimentés par les parties indicatif des mots apparaissant aux extrémités des deux blocs de registres à décalage respectivement, et la partie données du registre IOR est couplée aux fils véhiculant les parties données de mots mis en mémoire entre les deux blocs de registres 9 décalage. Le sys tème comprend également un ensemble de circuits de commande 11 et deux compteurs EC et TO, les compteurs de tête et de queue.En fonctionnement, le système met en mémoire une information sous la forme d'une séquence continue unique de mots quelque part dans la séquence de registres 8 décalage (la séquence de registres 8 décalage étant cyclique), et les compteurs HC et TO conservent les adresses de la tête et de la queue de la séquence de mots. Pour discuter le fonctionnement du système, il est commode d'analyser les instructions de programmation de LECTURE, d'ECRI TURE et d'EXERACTION dans les opérations de registres à décalage de RECHERCHE, d1 INSERTION et de SUPPRESSION. Une instruction quelconque est accomplie en commençant avec une opération de RECHERCHE jusqu'à ce que l'enregistrement désiré soit trouvé; une opération d' INSERTION ou de SUPPRESSION ou une transcription pure et simple à partir du registre à décalage vers le registre IOR Opeut ensuite suivre. Comme dans le système de la Figure 1, les enregistrements passent devant les fenêtres en ordre d'indicatif ascendant. Dans le système représenté à la Figure 2, l'opération RECHERCHE est, en général, effectuée en décalant la totalité de la séquence de mots mis en mémoire. Les deux comparateurs 20 et 21 aux fenêtres PO et Pi recherchent chacun une condition qui, par commodité, peut être appelée une comparaison "réussie". Plus précisément, chaque comparateur est agencé pour détecter lorsque l'indicatif de ltenregistrement couramment disponible dans la séquence mise en mémoire s'arrête étant moindre que l'indicatif désiré dans le registre IOR: ceci peut être une égalité vraie des deux indicatifs, ou ce peut être une modification d'indicatif dans la séquence mise en mémoire depuis moins que l'indicatif désiré direct jusqu a plus que l'indicatif désiré.Pour l'opération de RECHERCHE générale, chaque comparateur doit détecter un indicatif moindre que l'indicatif désiré avant qu'une oomparaison "réussie" puisse être obtenue; ceci pour éviter une comparaison réussie indiquée immédiatement si les indicatifs dans la séquence mise en mémoire passant devant une fenêtre sont beaucoup plus élevés que l'indicatif désiré. Lors d'une comparaison réussie effectuée par l'un ou l'autre des comparateurs 20 et 21, la fenêtre correspondante des fenêtres PO et Pi est sélectionnée. Le mot désiré est ensuite dans le dernier étage de l'un ou l'autre registre à décalage SR3 ou registre a décalage SR7. Si une instruction de LECTURE est effectuée, la partie données de ce mot est ensuite transcrite dans le registre IOR, achevant l'instruction. Si une instruction d'INSCRIPTION est effectuée, une opération d'INSERTION suit, l'extrémité de tête de la séquence de mots mise en mémoire étant décalée d'un mot et le nouveau mot étant inscrit dans le registre à décalage'SR4 ou SRO, selon la fenêtre qui a été sélectionnée.Si une instruction d'EXTRACTION est effectuée, une opération de SUPPRESSION suit, la partie données du dernier mot dans le registre à décalage SR3 ou SR7 étant transcrite dans le registre IOR et l'extrémité de fin de la séquence de mots mise en mémoire étant décalée d'un mot pour supprimer ce mot de la séquence. Chaque fois qu'un décalage de mot apparaît dans une opération de RECHERCHE, à la fois les compteurs HC et TC sont augmentés; le compteur HC est augmenté également pour une opération d'INSERTION, et le compteur FC pour une opération de SUPPRES- SION. Les comptages dans ces deux compteurs sont utilisés pour bloquer les comparateurs 20 et 21 lorsque la séquence de mots en mémoire ne comprend pas la dernière position de mot du registre SR7 et SR3 respectivement, de sorte que les comparateurs fonctionnent seulement lorsqu'ils regardent la séquence de mots en mémoire, et non lorsqu'ils regardent une partie vide de la boucle de registres à décalage. Les compteurs HC et TO commandent également le décalage des registres à décalage. Pour une opération de RECHERCHE, tous les registres à décalage sont décalés ensemble. Pour les opérations d'INSERTION et de SUPPRESSION, toutefois, une extrémité de la séquence de mots en mémoire doit être décalée tandis que l'autre extrémité demeure stationnaire. La façon précise dont ceci est obtenu dépend de l'opération effectuée et de la fenêtre sélectionnée. La sélection de registres à décalage en vue du décalage pour une opération d'INSERTION sera expliquée en détail; la sélection pour une opération de SUPPRESSION est tout à fait similaire. Pour une opération d'INSERTION, la tête de la séquence de mots en mémoire doit être décalée, et il est commode de dealer seulement ces registres à décalage contenant réellement une partie de l'extrémité de tête de la séquence. Pour ceci, les signaux x3, x2 et x1 en provenance des trois emplacements supérieurs du compteur HC (le signal x3 étant le bit le plus significatif) sont nécessaires; ainsi,les signaux x3 x2 x1 = 1 1 0 indiqueraient que la tête de la séquence de mots en mémoire était le registre SR6 (6 = 110 binaire). Les signaux PO et P1 , en provenance des comparateurs 20 et 21 et indiquant la sélection das fenêtres PO et P1 respectivement, sont également utilisés. Ensuite, les signaux de sélection pour les registres à décalage sont donnés par SR7 = x3 x2 x1 + P1x3 , SR6 = x3 x2+ P1x3 , SR5 = x3 (x2 + x1) + P1x3, SR4 = x3 + P1 SR3 x3, x2 xl + PO x3 SR2 = x3, x2 + PO x3 SR1 = x3 (x2 + xl) + O ffi 0 = + Po Ces signaux sont générés par un ensemble de circuits logique convenable dans l'ensemble de circuits de commande 11 et sont utilisés pour déclencher des impulsions de décalage pour les registres à décalage B7 à SRO respectivement. Une fonction finale est effectuée par les compteurs HC et TC. Leur différence est continuellement contrôlée pour conserver une trace du nombre total de mots en mémoire dans le système, pour s'assurer que le système n'est pas surchargé. Le nombre maximal de mots que le système peut conserver en mémoire est 7 fois le nombre de mots que l'un quelconque des registres à décalage SRO à SR7 peut stocker. ta raison de ceci est que la tête et la queue de la séquence de mots en mémoire ciojv#nt toujours être dans des registres à décalage différents, autrement les opérations d'INSERtION et de SUPPRESSION ne peuvent pas toujours être effectuées avec succès. Ainsi qu'on l'a décrit, il a été supposé que les registres à décalage sont "statiques", par exemple consistant en bascules traditionnelles. Il se peut qu'ils stockent l'information selon une forme évanescente plutôt que permanente, nécessitant des cycles de régénération périodiques. Ceux-ci peuvent ou non impliquer nécessairement un décalage de l'information; dans l'un ou l'autre cas, la technique la plus simple est de disposer une "horloge lente" pour interrompre le fonctionnement du système à des intervalles convenables pour effectuer un cycle de régénération, mais dans le cas où la régénération est obtenue par décalage, des cycles de régénération spéciaux sont seulement essentiels si l'information dans une partie du système n'a pas été déplacée pendant une période de régénération complète.Ainsi, si une opération de LECTURE ou de RECHERCHE est suivie par une autre à l'intérieur d'un cycle de régénération, la queue de la séquence de mots en mémoire aura été régénérée automatiquement. Des rythmeurs qui détectent Si la tête et la queue de la séquence de mots en mémoire ont besoin d'une régénération peuvent être utilisées pour insérer des cycles de régénération spéciaux en cas de besoin. les deux systèmes décrits jusqu'ici ont tous deux fonctionné avec des mots ou enregistrements de format fixe. Il est possible pour des enregistrements d'avoir un format variable, en particulier du fait que la partie données peut être de longueur variable. Un système similaire à celui de la Figure 2, mais avec des enregistrements de longueur variable et certaines autres différences, sera à présent décrit en se référant aux Figures 3 et 4. La Figure 3 est un schéma général du système, correspondant d'une manière générale à la Figure 2, mais avec seulement une fenêtre P1 représentée, l'autre ou les autres fenêtres étant exactement similaires à celle représentée. Le système fonctionne avec des registres à décalage parallèles, un nouveau multiplet étant mis en mémoire dans une extrémité d'un registre à décalage et un autre multiplet apparaissant à son autre extrémité à chaque décalage, et il est supposé que les enregistrements ont une partie indicatif de 3 multiplets suivie d'une partie données d'un nombre variable de multiplets.Le système est également agencé de sorte que plusieurs séquences complètement différentes ou chafnes d'enregistrements peuvent y être stockées, les chat- nes sont ohysiquement adjacentes, avec une unique section vide de l'anneau de registres à décalage existant entre les dernière et première chaînes. On se réfère à la Figure 3, l'information mise en mémoire pénètre par la fenêtre Pl depuis un registre à décalage SE3' et quitte la fenêtre dans un autre registre à décalage SR4'. Entre ces deux registres à décalage, il existe un registre à décalage fenêtre PSRl, de 3 multiplets de long car c'est la longueur d'un indicatif. Un registre d'indicatif désiré Rt, également de 3 multiplets de long, est commun à toutes les fenêtres, et alimente un comparateur 30 pour la fenêtre P1 représentée, le eom- parateur étant également alimenté à partir du registre à décalage SR3'. Associés aux registres à décalage se trouvent des registres à décalage de commande respectifs CSR3, POSR et CSR4. Chaque multiplet d'information en mémoire est accompagné d'une information de commande; celle-ci consiste en un bit, le bit de données/indicatif, qui est O ou 1 selon que le multiplet associé est une partie de données ou une partie d'un indicatif, et un numéro de chaîne qui est différent pour chaque chaste. Un numéro de chaîne zéro a une signification particulière en ce qu'il est utilisé pour indiquer que le multiplet correspondant est vide. En fonctionnement, une opération de RECHERCHE sera accomplie lorsque la première partie d'une instruction quelconque est effectuée. Le bit de données/indicatif apparaissant à l'extrémité du registre à décalage de contre CSR3 est appliqué à un second comparateur 31, le validant si le multiplet correspondant apparaissant sur le registre à décalage SR3' est une partie d'un indicatif. Lorsqu'il est validé, le comparateur 31 compare le numéro de chaîne apparaissant en provenance du registre à décalage CSR3 avec le numéro de chaîne mis en mémoire dans un registre de numéro de chaîne CR, positionné pour définir la chaîne désirée.Lors de la détection d'une égalité, le comparateur 31 valide le comparateur 30, qui effectue une comparaison d'indicatif entre l'indicatif apparaissant en provenance du registre à décalage SR5' et l'indicatif désiré dans le registre ER'. Cette comparaison prendra trois périodes de décalage. Si la comparaison est réussie, alors pour une instruction de LECTtP?RE ou d'EXTRACTION, l'enregistrement désiré sera pris multiplet par multiplet parmi les registres à décalage PSR1 et SR4'. Les bits de données/indicatif apparaissant à l'extrémité du registre CSR3 sont contrôlés durant ce processus, et lorsqu'un "1" apparaît, 3 décalages de multiplet de plus sont effectués pour obtenir les trois derniers multiplets de 11 enregistrement lu. Ceci se traduit, bien entendu, par l'obtention de ltenre- gistrement tout entier, y compris l'indicatif, ainsi qu'il peut être nécessaire si 11 indicatif dans le registre PSR1 est plus grand que l'indicatif dans le registre KR' ou si les enregistrements sont restitués en séquence d'indicatif. L'enregistrement suivant est ainsi laissé avec son indicatif déjà dans le registre PSR, et l'instruction suivante ne pourra pas tester cet indicatif; le reste de cet enregistrement devra être décalé par l'intermédiaire du registre PSR1 avant queue indicatif apparaisse en provenance du registre SR3' et puisse être comparé avec le nouvel indicatif désiré dans le registre KR'. Une modification peut bien entendu facilement être effectuée en prévoyant une boucle de rétroaction autour du registre PSR1, de sorte que l'indicatif dans celui-ci peut être remis en circulation pour une comparaison avec l'indicatif dans le registre Si la comparaison est réussie et une opération d' INSQRIP- UNION effectuée, alors le nouveau mot, indicatif et données, en provenance des registres KR' et DR', sera inséré dans le registre SR4'. De plus, le numéro de chaîne sera inséré dans le registre à décalage de commande CSR4', et le bit de données/ indicatif sera fixé à 1 pour les trois premiers décalages lorsque l'indicatif du nouveau mot est inscrit dans le registre à décalage SR4'. Le système de la Figure 3 utilise l'information dans les registres à décalage de commande pour déterminer le décalage correct pour la tête et l'extrémité de la séquence de chaînes d'information en mémoire. L'ensemble de circuit pour ceci est incluse dans l'ensemble de circuits de commande 11. Les parties concernées par le décalage de tête sont représentées en détail à la Figure 4; les parties concernées par le décalage de queue sont similaires, et ne seront pas décrites en détail. Comme dans le système de la Figure 2, l'ensemble de circuits de commande génère des signaux de décalage pour la RECHER CHUE, l'INSERTION et la SUPPRESSION: ces signaux de décalage sont appliqués à tous les registres à décalage pour la RECHERCHE, et le but de l'ensemble de circuits représenté à la Figure 4 est de sélectionner les registres appropriés pour les signaux de décalage à appliquer pour 1'INSERTION, pour laquelle la tête de la séquence des enregistrements en mémoire doit être décalée. Les signaux générés par 11 ensemble de circuits de la Figure 4 sont ainsi des signaux de sélection, plutôt que les signaux de décalage eux#meAmes; les signaux de sélection déclenchent les signaux de décalage par l'intermédiaire des registres à décalage pour une opération d'INSERTION. Les registres à décalage contenant 1'information en mémoire sont représentés par SR3', Su4', 3R5', etc.. et leurs registres à décalage de commande associés par CSRd, COR4, CSR5, etc. Chacun de ces registres à décalage fonctionne en bloc, du fait que toute information qui y est contenue se décale vers l'avant d'un multiplet lors de la réception d'une impulsion de décalage. Les registres à décalage de commande sont décalés en synclironis- me avec leurs registres à décalage de données associés. Le comparateur 30 dans la zone de fenêtre Pl délivre un signal sur le fil 41 lors d'une comparaison réussie. Ce signal est appliqué à une chaîne cyclique de circuits de déclenchement 40-3,40-4,40-5, etc., comme représenté. Si une comparaison réussie s'est produite sur la fenêtre PO, les registres SR4' et CSR4 seront toujours décalés pour un décalage de tête (opération d'INSERTION), et par suite le signal de sélection SH4 pour ceuxci est généré directement à partir de la ligne 41. les registres à décalage suivants SR5' et CSR5 doivent être décalés si et seulement si l'extrémité de sortie du registre SR4' n'est pas vide. Ceci est détecté par le circuit de déclenchement 40-4, qui permet au signal en provenance de la ligne 41 de passer à travers celui-ci si le numéro de chaîne apparaissant à l'extrémité du registre CSR4 n'est pas zéro.Un signal de décalage SH5 pour les registres SR5' et CSR5 sera ainsi généré si l'information doit leur être appliquée. La chaîne de circuits de déclenchement 40-3, 40-4, 40-5, etc.. génère de façon similaire des signaux de décalage, pour autant que cela soit nécessaire, autour de la boucle de registres à décalage, devant l'autre fenêtre PO si nécessaire. Le compteur de mots du système de la Figure 2 sera, bien entendu, remplacé par un compteur de multiplets BC dans le système de la Figure 3 et 4 pour empêcher une surcharge du système. En variante, une surcharge peut être détectée en déterminant si au moins deux registres à décalage ont des multiplets vides à leurs extrémités, c'est-à-dire s ils ont des numéros de chaîne zéro à leurs extrémités. Si seUlement un registre à décalage a un numéro de chaîne zéro à son extrémité, le système est plein. Cette technique se traduira, en moyenne, par des registres à décalage 1 S qui sont vides lorsque le système apparaît plein. Si un grand nombre de chaînes peut être logé dans le système, par exemple 64 chaînes, les registres à décalage de con trôle auront 7 bits de large, pour contenir le bit de données/ indicatif et le numéro de chaîne à 6 bits. Puisque le numéro de chaîne est seulement nécessaire pour le premier multiplet de chaque enregistrement, ceci signifie qu'il y a une redondance considérable dans les registres à décalage de commande. Cellesci peut être réduite de deux manières. Tout d'abord, les registres à décalage de commande peuvent être réduits à 2 bits de large, avec les numéros de chaîne mis en mémoire dans les registres à décalage principaux, en aaou- tant un numéro de chaîne à 1 multiplet sur le devant de chaque enregistrement. Le contenu de registre à décalage de contrôle indiquerait alors, pour chaque multiplet, quatre possibilités: vide, données, numéro de chaîne ou indicatif. Une indication de numéro de chaîne amènerait la comparaison du multiplet correspondant avec le numéro de chaîne dans le registre de numéro de chaîne, tandis que les autres indications pourraient être traitées comme dans le système de la Figure 3. En second lieu, au lieu d'utiliser des registres à décalage de commande, un jeu de compteurs pourrait être utilisé, consistant en un compteur de tête, en un compteur de queue et en un autre compteur pour chaque point d'interchaine, ctest-à- dire un total de un compteur de plus que le nombre de chaînes. COs compteurs de point d'interchaine pourraient être augmentés de la même manière que les compteurs de tête et de queue, et pourraient également être utilisés pour sélectionner les fenêtres appropriées durant une opération de RECHERCHE lorsque la chaîne recherchée passe devant ces fenêtres. Dans un sens, la partie vide du système peut être considérée comme une chaîne supplémentaire fictive, traitée dans une certaine mesure comme toutes les autres chaînes, mais inaccessible en ce qui concerne la lecture et l'écriture de données, l'étirement et le rétrécissement lorsque des données sont lues à partir de ou inscrites dans d'autres chaînes. REVENDICATIONS 1 - Système de mémoire pour stocker des enregistrements consistant chacun en une partie indicatif et une partie données, caractérisé par un registre à décalage pour stocker les enregistrements et comprenant une fenêtre devant laquelle les enregistrements en mémoire peuvent être décalés de sorte que chacun soit tour à tour disponible, la fenêtre ayant un comparateur associé qui compare l'indicatif de l'enregistrement couramment disponible sur la fenêtre avec un indicatif recherché, la sortie du comparateur commandant le transfert d'un enregistrement vers ou à partir du registre à décalage par l'intermédiaire de la fenêtre, les enregistrements conservés sur l'un ou l'autre coté de la fenêtre étant décalés de façon appropriée si un enregistrement doit être inséré dans ou supprimé du registre à décalage. 2 - Système de mémoire selon la revendication 1, caractérisé en ce que le registre à décalage est linéaire et bidirectionnel, la fenêtre se trouvant au milieu de celui-ci. 3 - Système de mémoire selon la revendication 2, caractérisé par un compteur de mots pour compter le nombre d'enregistrements en mémoire dans le système et un compteur de décala- ge pour indiquer l'emplacement des enregistrements en mémoire dans le registre à décalage par rapport aux extrémités du registre à décalage. 4 - Système de mémoire selon la revendication 1, caractérisé en ce que le registre à décalage est cyclique et unidirec tionnel 5 - Système de mémoire selon la revendication 4, caractérisé en ce que le registre à décalage comprend un ensemble de fenêtres ayant chacune un comparateur respectif, alimenté par un indicatif désiré commun et partageant un canal d'entrée/sortie commun pour un transfert d'-enregistrement. 6 - Système de mémoire selon l'une des revendications 4 et 5, caractérisé par un compteur de tête et un compteur de queue pour indiquer les positions dans le registre à décalage de la tête et de la queue des enregistrements en mémoire. 7 - Système de mémoire selon l'une quelconque des revendications 4 à 6, caractérisé en ce que les enregistrements sont de format fixe et le registre à décalage contient tous les bits d'un enregistrement en parallèle. 8 - Système de mémoire selon l'une quelconque des revendications 4 à 5, caractérisé en ce que le registre à décalage contient un ensemble de bits formant un multiplet en parallèle, chaque enregistrement consistant en une partie indicatif d'un nombre fixe de multiplets et une partie données de un ou plusieurs multiplets, et en ce que le registre à décalage (le registre à décalage principal) a,associé,un registre à décalage de commande dont chaque étage contient une information concernant la nature du multiplet contenu dans l'étage correspondant du registre à décalage principal. 9 - Système de mémoire selon la revendication 8, caractérisé en ce que le registre à décalage de commande contient, pour chaque enregistrement dans le registre à décalage princi- pal, un numéro de séquence de sorte qu'un ensemble de séquences distinctes d'enregistrements peut etre mis en mémoire dans le système.