Brevet FR2096380A1 — publié le 19720218

La présente invention a pour objet une nouvelle organisation de mémoire de grande capacité pour les systèmes de traitement d'informations codées se présentant, pour leur manipulation, sous la forme d'ensembles ordonnés, ou "blocs", d'éléments bi-5 naires, ou "bits". Un problème majeur dans l'organisation de telles mémoires de grande capacité, que leur exploitation dans les systèmes fassent ou non appel à une mémoire intermédiaire d'accès rapide et de capacité réduite, ou "tampon", est l'accessibilité des empla— 10 cements de mémorisation des blocs pour toutes opérations d'écriture et(ou) de lecture. La technologie des mémoires d'accès aléatoire, faisant usuellement appel aux tores magnétiques, ne permet pas, comme connu, d'arriver à un prix de revient au bit suffisamment faible étant donné les besoins en volume de mémoire des 15 systèmes modernes de traitement de l'information» Les technologies des mémoires d'accès semi—aléatoire, bien que permettant d'obtenir de très grands débits pour certaines d'entre elles tout au moins, présentent l'inconvénient d'avoir des temps d'accès relativement importants:- un demi—tour en moyenne pour les 20 mémoires de type électro-mécanique, telles que tambours et disques magpétiques; - une demi—période de circulation complète pour les registres à décalage ou circulants lorsque de tels registres sont bouclés sur eux-mêmes (un quart de période pour un registre bouclé en lequel l'infoimation peut être décalée dans 25 les deux sens). Les registres à décalage opèrent, comme connu, par avances par pas d'un contenu d'information qui y est emmagasiné de façon statique entre de telles avances» Tfii "pas" peut aussi bien, selon la commande, assurer le décalage de ce contenu d'une seule posi 70 01956 2 2096380 définition américaine "J|etal Gxide Semi-conductorsn rappelant que cette technologie fait appel à des circuits de type intégré constituant des groupements d'étages amplificateurs et logiques pouvant être, quand de besoin, interconnectés en une cascade de 5 bascules de mémorisation temporaire des bits d'information, formant registre à décalage en anneau, la commande de progression pouvant assurer le décalage des bits aussi bien en un sens que dans l'autre sur le "pourtour" d'un tel anneau. Un autre exemple, également non limitatif en soi, de technologie exploitable pour 10 la constitution de tels registres est celle connue sous la dénomination de "DuîPii", abréviation de la définition américaine "gomain transmission and propagation Logics" rappelant que cette technologie fait appel à des canaux magnétiques an isotropes le long desquels les bits d'information sont représentés par des 15 domain es distincts d'aimantation, magnétique du matériau aniso-trope de* canaux (qui peuvent être bouclés sur eux-mêmes, extérieurement ou par leur constitution géométrique propre); la commande d'avance du contenu d'information d'un tel registre assure l'avance concomitante des parois de ces domaines magnétiques, en 20 tm sens ou dans l'autre, le long des dits canaux» En l'un ou l'autre de ces exemples technologiques, l'encombrement d'un registre et, partant, d'un groupe de registres constituant une mémoire complète, est réduit vis à vis de celui des autres types de mémoire pour une même capacité en bits mémorisés et le prix 25 de revient du bit y est normalement bas (ce prix de revient étant estiaé, comme connu, en tenant compte non s eulement du coût des supports physiques des bits et des équipements d'écriture et de lecture associés, mais aussi des performances en temps pouir la manipulation de ces bits dans le système de traitement concerné)» 30 Un. but de l'invention est de tirer parti de l'existence de tels registres à décalage pour établir une nouvelle organisation, de mémoire de grande capacité qui, mettant à profit la structure statistique des programmes en tout système de traitement de l'information qui exploitera une telle mémoire, lui confère une ac-35 cessibilité apparente avoisinant celle des mémoires à accès de caractère aléatoire, cette organisation assurant de fait une 70 01956 3 2096360 optimisation de 1*accessibilité de ces registres à décalage pour la manipulation, des blocs précités au cours d'un travail effectué par le système# Un but plus particulier de l'invention est d'établir cette 5 organisation de mémoire telle que, l'information étant en fait "mouvante" dans la mémoire, les zones de travail les plus probables ie positionnent dynamiquement autour des postes de lecture/ écriture établis en csette mémoire* On connaît par ailleurs un type général d'organisation de 10 mémoire d'information, qui est dit "mémoire associative", qui consiste souvent dans la combinaison à taie structure de mémorisation par pages de l'information, d'une structure de table associative recevant à chaque rangement d'une page dans la structure de mémorisation, l'adresse de rangement qui permet par la suite 15 d'extraire la dite page de cette structure de mémorisation sur simple interrogation de la table associative par le système. Un autre but de l'invention est de tirer aussi parti de ce type général d'organisation de mémoire pour l'établissement final d'une organisation nouvelle conformé aux buts et avantages mentionnés 2.0 plus haut. Selon une caractéristique de l'invention, une organisation de mémoire de grande capacité et d'accessibilité moyenne optimisée comporte la combinaison a) d'une pluralité de sections de mémoire formant chacune 25 un registre à décalage de blocs, subdivisé en lignes d'emmagasinage de ces blocs dont l'un au moins comporte un repère d'adresse pouvant être exploité en adresse d'origine, chaque section étant constituée d.'autant de registres à décalage de bits qu'il y a de bits en toute ligne de bloc et ayant un nombre total de 30 positions au moins égal au nombre total de lignes de blcsts emma-gasinables dans la dite s ecifcion de mémoire, b) d'une pluralité correspondante de postes d'écriture et de lecture, associés par paires aux dites sections de mémoire en un emplacement au moins des registres de blocs qu'elles consti- 35 tuent, et, c) d'un dispositif répondant aux appels de mémoire, chaque appel comportant une adresse de section de mémoire et une 70 01956 4 2A96380 adresse de bloc en cette section, pour commander en la dite section de mémoire un décalage des lignes de blocs amenant le bloc désigné en regard du poste d'écriture et le lecture de la dite section de mémoire,» 5 Selon une autre caractéristique de l'invention, partie au moins d'un registre à décalage de blocs formant section, de mémoire peut être commandé en l'un ou l'autre sens de décalage de son contenu, et ce dispositif incorpore des moyens de décision du sens de décalage le plus favorable à l'exécution optimale de 10 l'opération désignée en un tel appel de mémoire. Selon une autre caractéristique encore de l'invention., les blocs d'information étant groupés par pages en chaque siection de mémoire, il est prévu autant de blocs comportant un repère d'adresse de page que de pages emmagasinai)!es dans cette sectiaaiL 15 de mémoire et ce dispositif incorpore des moyens pour pouvoir amener un bloc appelé en regard du poste d'écriture et de lecture et des moyens pour pouvoir amener un de tels blocs-repères de pages en regard de ce poste. Selon une autre caractéristique égalaient de l'intention, 20 ce dispositif incorpore line table associative, des moyens pour mémoriser en cette table toute adresse de bloc de section, de mémoire, autre qu'un bloc comportant un repère, en regard d'un poste d'écriture et de lecture en une section de mémoire, et des moyens pour commander la venue en regard d'un poste d'écriture et 25 de lecture d'un bloc comportant un tel repère à chaque éjection d'une adresse de position de bloc en une section de mémoire hor.s de la dite table associative. Ces caractéristiques, ainsi que d'autres enccce venant en renforcer les effets, vont être exposées dans le détail en se 30 reportant aux figures jointes, dans lesquelles:- La i?ig.l représente, à simple titre 11 lustratif, un exemple d'organisation de mémoire de grande capacité selon la présente invention; La ïig.2 définit une conformation possible des registres de 35 bloc dans une section de.mémoire faisant partie de l'organisation de la ilig„l; La Eig.3 définit, de façon similaire, une conformation copy 70 01956 5 2096380 possible des registres de "bloc pour une divisions, en pages de la section de mémoire; s" Les j?igs.4, 5 et 6 donnent des schémas figuratifs d'une section de mémoire circulaire "bidirectionnelle exploitable dans 5 l'organisation de la i'ig.l, les Zigs.5 et 6 concernant l'organisation en pages d'une telle section de mémoire; La Eig.T représente, à simple titre illustratif, un exemple d'organisation possible.du dispositif représenté par le blocs 16 sur la Eig.l; et, 10 Les Pigs.8 et 9 donnent des schémas figuratifs de sectionis de mémoire à bouclage unidirectionnel, également exploitables dans le cadre de l'organisation de la jTig.l» De ces exemples et de leur description peuvent se déduire, sans plus, toutes variantes d'exécution technologique et d'ex-15 ploitation pratique entrant dans le cadre de l'invention. En se reportant à la i'ig.l, une mémoire d'inf ormatiam de grande capacité jèl est constituée d'une pluralité de sections de mémoire, de SI à Sn, chacune formant registre à décalage de blocs. Chaque section de mémoire est équipée d'un pœste d'écri-20 ture et de lecture, PL-.PE, dont les sorties sont, par un aiquil-leux 30, regroupées sur les registres de lecture EL et d'écriture EE de cette mémoire Ëû A la mémoire est associée une table associative £A selon une organisation qui sera précisée plus moin. Chaque appel de mémoire, en provenance du système de trai-25 tement d'information non figuré, charge dans un registre d'adresse incidente AX, une adresse comportant;- en 1, une adresse de section de mémoire, en 2,3 un.e adresse de bloc; - au cas où chaque section de mémoire est organisée par pages, la partie 2 est l'adresse d'une page, la partie 3 est l'adresse du bloc dans la 30 page. C'est une sortie 31 du registre AX qui détermine, par commande de l'aiguilleur 30, celui des postes PL-PE qui sera relié aux registres de lecture EL et d'écriture Eiil de la mémoire i-x. A chaque appel de mémoire, un dispositif 16 entre en jeu pour la sélection, à travers un aiguilleur 1T placé sous la même comman-35 de du signal en 3X, de la section, de mémoire que concerne l'appel. ~ - copy 70 01956 6 2096380 En. "toute section de mémoire entrent en jeu deux variétés de "blocs. Cornue indiqué sur la Fig.2, chaque "bloc d'information ordinaire BBI peut comporter un "bit "bien défini IL, contenant un chiffre binaire caractéristique de cette affectation, par exemple 5 le chiffre binaire "1", Par contre un bloc-repère itBfi contient alors en. un. emplacement £. correspondant, le chiffre binaire "G*, lie façon générale, les "blocs repères EBE. sont essentiellement destinés à relayer la table associative ïA car cette table est prise, de façon, avantageuse en soi, d'un nombre de lignes nette— 10 ment inférieur au nombre de sections de mémoire ïsa Ils doivent donc donner, quand de besoin, la position de l'information dans la section de mémoire. Comme l'indique la i'ig.2 en 50, un certain. nombre de bits d'un bloc repère yftR est prévu paair pouvoir définir le rang, dans la section de mémoire, du bloc d*informais tion BBI qui le suit ou le précède immédiatement» lorsqu'on initial ise les blocs repères, on peut introduire dans les parties disponibles de tels blocs des informations "de service" telles par exemple que des clés, des mots de passe, etc.. pouvant si nécessaire être recopiées dans la table associative £A pour cer-20 taines exploitations de la mémoire qu'il est inutile de rappeler dans le détail ici:— par exemple mais non limitativement, ces données initiales pourront servir à varier le"formafdes informations, notamment le format des pages lorsque les sections de mémoire sont organisées en pages, par exemple de la façon indi-25 quée sur la J?ig.3« A titre illustratif, on a indiqué sur la jPig. 3 deux telles "pages* Po et Pl, comprenant chacune neuf blocs dont le médian est, en cet exemple, le bloc repère de page qui, ayant en son emplacement ii le chiffre binaire "0", contient en une autre partie, en 52 par exemple, le code de srang de la page 30 dans la section de mémoire et peut contenir en 53 le code du rang dm bloc d'information BBI qui le suit, ou ie précède dans la page. Ce code 53 n'est pas indispensable car il est invarient de page à page pour une dimension de page donnée et peut donc, en fait, être mémorisé une s.eule fois par dimension die page à un 35 autre endroit de l'organisation de mémoire, dans la table associative par exemple. On. peut noter d'ailleurs que la discrimination, entre blocs 70 01956 7 2G96380 £BI et blocs wrr par un bit spécialisé, bien que d'utilisation avantageuse, n'est pas impérative en soi0 La Eig.4 montre une représentation de s;ection. de mémoire œb comportant qu'une seule page de blocs, donc un seul bloc repère 5 indiquant alors, en 0, l'origine de la page. Lorsque la position de la page n'est pas mémorisée dans la table associative !1IA, sa position vis à vis de son poste d'écriture/lecture PL-PE est telle qu'indiquée sur le dessin, le bloc repère d'origine 0 se situant devant ce poste. Lorsque cette section de mémoire est sé-10 lectionnée, sur un appel de mémoire introduisant son adresse en 1 dans le registre d'adresse incidente AX, le contenu du bloc repère origine 0 apparaît donc dans le registre de lecture EL, fournissant par cette voie la position de 1'information dans la section de mémoire concernée. Sans tous les autres cas, la posi— 15 tion vis à vis du poste d'écriture/lecture PL-PE est, pour l'in-foimatioEn contenue dans la section de mémoire, présente dans la table associative TA et est donc fournie par cette dernière. La Eig.5 montre une section de mémoire comprenant, illus-trativement, huit pages de blocs, de Po à P7, chaque page com-20 portant un bloc—repère de page, de 0 à 7» avec le bloc repère de la page Jîo.2, P2, en face du poste PL-PÊ de la section de mémoire lorsque la position de la section n'est pas, ou n'est plus, dans la table associative îEÂ. Lorsque la position d'un bloc en cette page se trouve dans la table associative, le bloc BEI cor-25 respondant est devant ce poste PL-PB comme l'indique la Pig.6. Dans ces exemples des Eigs.4 et 5-6, les registres à décalage constituant les sections de mémoire sont d'un type qui peut être dit "circulaire1' car les registres sont effectivement bouclés sur eux-mêmes. De plus, pour la suite de la description, on 30 considère que l'informatiam. circulant pasr pas en ces registres peut être décalée dans l'un ou l'autre sens de parcours des boucles. En fait, ehaque registre à décalage de bloes formant -une section de mémoire S est constitué d'une pluralité de registres à décalage de bits, B.b, i'ig.l, en nombre égal au nombre de bits par 35 bloc fî£. Ces registres de bits &b sont commandés ensemble par section de mémoire S pour réaliser les décalages requis des blocs complets. Ces registres de bits groupés en sections de mémoire 70 01956 s 2096380 peuvent, si désiré, être groupés en sous-seetions, dont chacune peut, à la réalisation, être matérialisée dans un module physique distinct„ La table associative IfcA comprend un certain nombre de lignes 5 matérialisées par des registres aptes à contenir, en 11 une adresse de aection de mémoire, en 12-13 une adresse de bloc en cette sectiaai; la partie fort poids 12 de cette adresse de bloc constitue l'adresse de page du bloc dans la section de mémoire lorsque la dite section est organisée par pages de blocs. 10 Chaque fois que, sur un appel provenant du système de trai tement d'informations auquel est associée l'organisation de mémoire selon l'invention, un code d'adresse de mémoire est introduit dans le registre d'adresse incidente AX, l'adresse de section de mémoire S désignée par la partie 1 de ce registre doit 15 être comparée aux adresses de sections de mémoire présentes en 11 dans les registres de lignes de la table associative l'A, processus usuel en soi dans les mémoires de type associatif» Pour cela, un organe comparateur COMÏ reçoit par la liaison 33 le code d'adresse de section de mémoire appelée, en provenance du re-20 gistre AI et, par une liaison 32., les codes d'adresse de sections de mémoire existant dans les registres de lignes de la tabUfie associative T.A. Ce comparateur assure, de préférence, une comparaison simultanée du code provenant de AX et de tous le;s codes provenant des parties 11 des registres de lignes de ïA. Comme 25 cette table associative n'a, en fait, qu'on nombre relativement restreint de lignes, cette comparaison peut être séquentielle pourvu qu'elle soit effectuée à une vitesse suffisante, soit donc à l'intérieur d'un temps "logique" lui donnant l'apparence d'une comparaison simultanée vis à vis de la chronométrie du système 30 d'où émane l'appel de mémoire» Ce comparateur CuM?, qui peut être un organe existant habi- ' tuellement dans une organisation de table associative, est à deux sorties:- l'une DU? pour la réponse "négative", aucune égalité n'étant trouvée entre le code incident et l'un des codes en 35 table associative, l'autre E(x pour la réponse "positive", une égalité ayant été trouvée entre ce code incident et l'un des codes déjà mémorisés en table associative. Dans le premier cas, la 70 01956 9 2096380 liaison 40 débloque le circuit 8 de régie de la table associative ÏA, ce qui provoque l'entrée en un registre de la table associative du code complet se trouvant dans le registre d'adresse incidente AI par la liaison 35. Simultanément, comme connu, la 5 liaison 35 du circuit 8 à la table l'A (ce circuit pouvant également être incorporé de façon connue à la table associative), provoque le ré-arrangement désirable en cette table. Si, notamment, la table associative était "remplie", le code d'adresse incidente sera transféré à un registre déclaré effaçable par 10 l'organisation de la table associative,. L'organisation interne de la table délivre en SUT un signal de marquage "d'éjection* du contenu d'un registre, la suite de cette opération à décrire plus loin. Simultanément, la sortie DU? activée rend pasrsant un circuit-porte 23 pour acheminer dans l'organe 1b le contenu du 15 registre de lecture EL de la mémoire K, par la liaison 38. Ce contenu est celui du bloc en regard de PL dans la sectiaai de mémoire sélectionnée par le code d'adresse de section. incident appliqué par la liaison 31 sur l'aiguillage 3&» Comme vu plus haut ce code est forcément celui d'un bloc repère de la dite section 20 de mémoire puisque l'adresse de cette section ne figure pas dans la table associative. La liaison 3g a introduit en 16 le code d'adresse dia bloc contenu en 2-3 dans le registre d'adresse incidente AI. L'organisation et le fonctionnement de l'organe 16 seront exposés plus loin. 25 Dans le second cas, réponse "positive" du comparateur CGMP, la sortie EG commande l'introduction par 36, dans l'organe 16, du code d'adresse de bloc 12—13 contenu dans le registre de ligne de 3ZA pour lequel le comparateur a vérifié l'identité de ' l'adresse de section de mémoire avec celle de l'adresse inciden— 30 te. En même temps, la sortie EG activée débloque un circuit de transfert 44 appliquant le rang de ce registre de ligne au circuit de gestion S de la table associative ÏA pour que ce circuit assure la mise à jour et le ré-arrangement de la table. L'organe 16 a reçu ce même code de nouvelle adresse de bloc par la li-35 aison 39 à partir du registre AX. Dans l'un et l'autre cas, l'organe lb est donc en possession du. code de nouvelle adresse de bloc et du code de la position, du 70 01956 10 2D963B0 bloc situé en. regard du poste PL de la section, de mémoire sélectionnée par l'aiguillage 17 sous la commande du code de section, de mémoire transporté par la liaison 31* Cet organe 16 est donc en liaison avec la section de mémoire S à laquelle il doit com-5 mander un décalage d'un certain nombre de pas pour amener le "bloc désigné par l'adresse incidente en regard du pce te PL-PE de cette section de mémoire» L'organe 16 régit également le cas où, comme susdit, la table associative ttéjecte* le contenu d'un de ses registres. Si 10 rien n'était en effet prévu à cet égard, la position de l'information dans la section de mémoire correspondante serait perdue, rendant cette section inutilisable par la. suite. L'organe 16 agit alors pour amener un bloc-repère de la dite section de mémoire en regard de son poste PL-PE. Il est activé à cette fin 15 par le signal d'éjection &J", liaison 43, et reçoit par la liaison 34, l'adresse 12-L3 â-U bloc éliminé de la table associative alors que la liaison 42. s'est substituée à la liaison 31 pour commander le circuit d'aiguillage 17 .afin que la sortie de commande de décalage de l'organe 16 soit dirigée sur la section de 20 mémoire dont l'adresse figurait en 11 dans le registre qu'efface la table associative» Avant de décrire un exemple, ncni limitatif en soi., de 1'oa>-ganisation de 16 en relation avec la J?ig»7, les remarques suivantes doivent être présentées:- dans la majorité des cas pra-25 tiques, le système de traitement auquel est associée 1*organisation de mémoire en cours de description travaille, pour l'exécution de son programme, en des zones de travail relativement restreintes à chaque stade ou étape de ce programme. Chaque zone de travail en une section de mémoire se situera au cours de l'exé-30 cution du programme, autour du poste PL-PE de cette section de mémoire, en sorte qu'il suffira le plus souvent d'un très petit nombre de décalages pour atteindre à chaque appel iacident le bloc désigné par l'adresse définie en cet appel. La table associative étant remise à jour à chaque nouvel appel, la noaavellfi; 35 position est donc disponible pour la commande de sélection d'adresse suivante» îant qu'il en sera ainsi, les blcœs repères demeureront inutilisés et l'organe 16 ne devra tenir compte de 70 01956 2096380 leur présence qu'en ses commandes de décalage. Lorsque par contre, au cours du déroulement d'un programme, une section de mémoire sera "délaissée* un temps suffisant pour que la dernière adresse de travail en cette section de mémoire soit éjectée de 5 la table associative, il faudra comme dit prévoir l'organe 16 tel qu'il assure le retour de la dite section sur une positiam en laquelle un "bloc-repère se trouve en face du poste PL-PE. Lorsque chaque section de mémoire est organisée par pages, il est évident qu'on aura intérêt à "programmer* l'organe 16 pour 10 qu'il n'assure qu'une commande de décalage minimum, amenant le "bloc repère de la page anciennement traitée devant ledit poste PL-PE, ce qui sera fait en -un petit nombre de décalages également et, de plus, laissera la dite section de mémoire en une zone de travail qui a toute probabilité d'être à nouveau appelée 15 ultérieurement. En ce qui concerne la capacité à donner à la table associative, elle peut raisonnablement être prise de 64 registres de lignes dans le cas où les sections de mémoire ne contiennent chacune qu'une seule page, cas de la j?ig.4, ce chiffre étant in-20 diqué à seul titre illustratif. Bans le cas où les sections de mémoire sont organisées en pages, cette capacité peut être réduite et, par exemple et illustrâtivement encore, être ramenée à 8 registres de lignes. Lien entendu le choix final de la capacité de la table associative sera fait en tenant compte d'autres 25 facteurs également, tel notamment que le prix de revient au bit dans la technologie adoptée pour la réalisation de la mémoire. Le dispositif 16 de la tfig.l va maintenant être détaillé en tui exemple d'organisation concernant des sections de mémoire à huit pages de 9 blocs chacune, le bloc médian étamt un bloœ-30 repère. Cette organisation comprend un registre ï1 recevant l'adresse du bloc à positionner en regard du poste PL-PE de la section sélectionnée par la liaison 39 chaque fois que DIE ou EG-existe à la sortie correspondante de CUiaP, Pig.l. Gomme dit plus haut, l'opération de décalage en vue d'obtenir le bloc recherché 35 peut être suivie, en cas d'apparition du signal EJ", d'une autre opération de décalage, également sus-décrite. En ce dernier cas, il n'y a pas de changement de page possible et le choix de 70 01956 i2 2096380 l'adresse de page à inscrire dans le registre S peut être arbitraire:- ainsi, dans ce cas, la liaison 43 chargera dans j? le profil "000 100*, bit de poids fort de l'adresse de "bloc égale à 1 dans 1*organisation par pages sus-décrite0 5 L'organe 16 comporte d'autre part un compteur-décompteur CD recevant, dans le cas où le niveau EG- devient "vrai", par la liaison 36 et les circuits 76 et 77, l'adresse avant décalage du "bloc positionné en regard de PL-PE de la section: de mémoire S sélectionnée « Si au contraire, c'est le niveau DU? qui devient 10 "vrai", cette adresse est introduite dans CD par la liaison 38 et les circuits 75 et 76» Les circuits 77 et 75 somt des circuits "El", le circuit 76 est un circuit "OU", selcra. un symbolisme "bien connu et répété pour ce genre de circuits sur le schéma de la J?ig.7» Dans le cas d'une éjections., l'adresse est introduite 15 ea GD par la liaison 34 et comme en ce cas, il n'y a pas de changement de page possible, il faut prendre comme adresse de page, nom significative d'ailleurs en ce cas, la même que celles introduite en E, à savoir "000* dans l'exemple coinsidéré ici«Le profil d'adresse en CD est alors "000 xxx*, ce que réalise la 20 dite liaison 34» Ed. ce cas, l'amplitude du décalage sera au maximum d'une demi-pageo Un comparateur 80 reçoit par les liaisons 60 et 61 les contenus des compteurs ï et GD et émet, par la liaison 63 un signal "stop" chaque fois que ces deux contenus sont égaux» On suppose 25 que tous les signaux EG, EJ, DU1, SÏOP, deviennent "faux" sitôt le premier top d'horloge H appliqué sur CD» De façon générale, le nombre de bits contenus dans les registres E et CD est égal pour chacun d'eux au nombre de bits contenus dans la partie. 2—3 du registre d'adresse incidente AX, Eig.l, ce qui détermine le 30 nombre de bits à comparer en 80 o Les circuits 71 déterminent le meilleur sens du décalage à commander pour la section de mémoire sélectionnée , le sens dit "positif" et désigné par (+) étant par exemple celui des codes d'adresse croissanta0 Les circuits en 71 seront décrits plus 35 loin» L'organisation de la Eig„7 doit réaliser trois genres d'opérations selon les cas de présence des signaux DIE, E(r et EJ» 70 01956 13 2096380 Sons les trois cas, les opérations de décalage sont démarrées lorsque la sortie du circuit de réunion 94, recevant ces trois signaux, devient "vraie*. Selon que les circuits 71 décident que le sens de décalage doit être positif ou négatif dans la section 5 de mémoire Si sélectionnée, l'une ou l'autre des sorties 67 et 68 de ces circuits est activée et dirige le signal sortant en 69 du circuit 94 pour activer la "bascule (+) ou la bascule (-). Quand la basculé (+} est actionnée, elle active la liaison 73 qui valide le sens positif du décalage en Si que cette liaison 10 atteint à travers l'aiguillage 17 par lequel les impulsions d'horloge H commandent un tel décalage en Si. 1*activaticm de 73 active égalaient, à travers un circuit 91 alors passant, l'entrée de comptage (+) du compteur-décomp teur CD par 3ass mêmes impulsions d'horloge H, Quand la bascule (—) est actionnée, elle 15 active la liaison 74 qui valide le sens négatif du décalage en Si et ce décalage à'travers 1'aiguillage 17 également, L'acti-vation de 74 provoque aussi, à travers le circuit 92 alors passant, 1*activation de l'entrée de décomptage de GD pour le.s impulsions d'horloge. En. l'un et l'autre cas, le décalage se pour-20 suit jusqu'à ce que le circuit 80 constate l'identité des contenus en ï et CD et délivre le signal stop qui est transmis aux liaisons 100 et 101 à travers l'étage 93 passant quand les signaux EJ et DU? n'existent pas. la bascule (+) ou la bascule (-) est, selon le cas, remise au repos, ce qui arrête le décalage en 25 Si* Lorsque le signal EJ" ou le signal DIE est "vrai", il se peut qu'avant tout décalage les contenus de j? et CD soient égaux. Dans le cas où. DIE est vrai, CD contient un profil de cote "xxx 100" et F peut contenir l'adresse de bloc qui suit le bloc repè-30 re, qui est donc "xxx 100". Bien qu'il y ait égalité, il ne faut pas empêcher le décalage en Si DIE sur une entrée de ce circuit. Après le premier décalage, DIE 35 devient "faux" et le décalage s'arrête, le résultat désiré d'une avance d'un seul pas ayant été obtenu. Dans le cas, symétrique, 70 01956 14 2096380 où EJ existe, CD peut contenir un profil de code tel que "(KMI 100" qui est celui qui est toujours introduit dans ï? en un tel cas0 II faut dans ce cas que la section de mémoire avance d'un pas dans le sens négatif. L'application du signal EJ aux entrées 5 des circuits 93 et 92 assure ce décalage tout en empêchant CD de décompter, les circuits 71 délivrant alors en 68 le signal de commande de décalage négatif pour activer la bascule (-), donc la liaison 74» Après le premier décalage, EJ devient "faux* ce qui stoppe la commande de décalage en Si» 10 Dans une commande de décalage se pose le problème de la traversée d'un bloc repère car pour de telles- traversées, les bascules (+) et (-) doivent, selon le cas, commander le décalage mais le compteur-décompteur CD ne doit pas prendre en compte de tels "pas". Pour cela, chaque fois que la liaison 120 prélève 15 en CD le code "OU*, CD ayant alors en cette partie le contenu GD2—CD1—CDO et que la liaison 66 de sortie de la bascule (+) transporte un signal "vrai", le circuit 88 active, par le œdLrcuifc de réunion 108, la bascule 90 qui, par sa sortie 106 bloque le circuit de transfert 91 et désensibilise alors l'entrée de comp-20 tage de CD par la liaison 104» Le cas symétrique est celui où la liaison 120 transporte le code *100", c'est à dire le contenu CD2-CD1-CD0 dans CED» La bascule(-) étant activée, le circuit 89 actionne la bascule 90 à travers le c ircuit de réunion 1Q8 ce qui bloque le circuit 92 et, par suite, désensibilise par 105 25 l'entrée décomptage de CD* La bascule 90 est remise à zéro par l'impulsion d'horloge suivante. Les circuits de transfert 88 et 89 sont bloqués lorsqu'il existe le signal EJ, actionnant à cet effet une bascule 115 qui est remise à zéro, pour débloquer ces circuits, lorsque le niveau de la liaison 100 sortant de 93 30 redevient "vrai"» En effet, pour une opération de décalage faisant suite à une éjection,-la bascule 90 ne doit pas être actionnée car alors c'est un bloc repère qui est une adresse finale et Cd doit donc le prendre en compte. Les circuits 71 définissant le sens optimum du décalage 35 comprennent un circuit 82 signalant l'égalité des poids forts en j? et CD, donc ici l'égalité des contenus de ±"5 et CD5 et un 70 01956 15 2096380 opérateur 81 dont la sortie n'est "vraie" que lorsque le contenu de la partie E4 ïû de J? est plus grand que le contenu de la partie GD4 CDO de GD. Les sorties des circuits 81 et 82 sont dirigées sur les entrées d'un circuit 121 dont la sortie est ac— 5 tivée si les sorties de 81 et 82 sont simultanément soit ivraies" soit "fausses*. La sortie EJ de la jfig.l est appliquée sur un circuit "lion* 83 qui délivre donc EJ » Lorsque la sortie de 121 est "vraie* et qu'on n'est pas en condition d'éjection, le circuit 84 délivre à la liaison 67 à travers le circuit de réunion 10 86 le signal permettant d'assurer l'activation de la bascule (+) à travers le circuit de transfert 95» La liaison 68 reliée à la sortie d'un circuit "Son" 87 faisant suite au circuit 86 transporte alors un signal"faux"' empêchant l'actionnement de la "bascule (—). Si au contraire, les sorties de 81 et 82 diffèrent, 15 cette même chaîne active alors la liaison 68 pour la rendre "vraie* et le sens de décalage sera négatif:. Dans le cas d*une Éjection, EJ "vrai*, si GD2 est également *vrai", la sortie du circuit 85 devient"vraie" ce qui, par le circuit de réunion 86, sélectionne un sens de décalage positif par activaticn. de la li-20 aison 86; si GD2 est "faux, c'est la liaison 68 qui sera sélectionnée pour définir le sens négatif du décalage. Lorsque la table associative est prise avec un nombre de registres de lignes égal au nombre de sections de mémoire, le schéma de la i'ig.7 se simplifie de façon évidente par suppressi-25 on des parties relatives à EJ puisqu'il n'y a plus d'éjection de cette table. En un tel cas, de plus, on pourrait se passer de blocs-repères, en certains cas tout au moins, ce qui simplifierait encore l'organisation décrite. On a montré une différentiation des blocs d1 information BBI 30 èt des blocs repères BBR par le moyen d'un chiffre binaire particulier à une position B. de ces blocs. La liaison 38 transporte, entre autres, ce bit de particularisation et, si désiré, on peut en tirer parti en reliant le fil de cette liaison qui transporte ce bit à m» circuit inhibant alors l'action des liaisons 104 et 35 lu5 sur le compteur-dé compteur CD lorsque ce bit, indique qu'il s'agit d'un bloc repère. Cette disposition peut venir en addition au montage décrit pour "passer* les blocs repères, pour un 70 01956 16 2096380 accroissement de la sécurité de fonctionnement de l'organe 16, ou peut venir se substituer au montage particulier sus-décrit à une telle fin, pour une simplification de cet organe. L*organisation représentée sur la ilig.7 n'est évidemment 5 donnée qu' à simple titre illustratif. On peut résumer comme suit les conditions qui, dans le cas envisagé pour l'exemple ci-dessus, devraient être satisfaites par toute autre organisation de 16, entrant "bien entendu dans le cadre de 11invention:- Quand le comparateur CUl^ii1 de la Eig.l délivre un signal EG-, 10 l'adresse initiale dans dû désigne un bloc d'information!. EBI et l'adresse finale en i" désigne un autre bloc d'informatioEt EBI dans la même Election de mémoires- la co.mjDa.-nde du décalage doit s'opérer dans le sens optimum, défini par les circuits tels que 71, Eig.7, jusqu'à l'apparition du signal stop à la sortie de 80 1^> qui compare les codes en E (fixe) et en CD (évoluant avec le décalage), sans que CD subisse une avance aux "traversées" de blocs repères; Quand le comparateur C0MP de la Eig.l délivre un signal DIE, l'adresse initiale dans GD désigne un bloc repère KBB., ce code 20 ayant la configuration "xxx lOG* et l'adresse finale désigne un bloc d*infoimation EBI en E. Si le code en E est de la configuration "xxx luO", il faut que, sans ■ que le contenu de CD soit modifié, un décalage d'un pas s'opère malgré l'égalité au départ des codes en E et CD. Si le code en E est différent, soit donc de la 25 forme "xxx xxx", les opérations doivent avoir lieu de la même façon que pour le signal EGî, supra. Quand apparaît le signal d'éjection Eif, le code d'adresse finale en E désigne un registre de bloc repère HBR, configuration "000 100". Si le code d'adresse initiale en CD est identique, 30 il faut que, CD n'avançant pas, il se produise une commande de décalage d'un pas, dans le sens négatif, malgré cette égalité au départ. Si le code en CD est de la forme "000 xxx", différent de celui en E, il faut qu'un décalage s'opère, dans un sens défini par le contenu de GD2, jusqu'à ce que le bloc repère désiré soit 35 atteint, ce décalage devant être pris en compte par CD puisqu'il s'agit bien d'atteindre un bloc repère en partant d'un bloc d'information, le profil "000" en CD est arbitrairement choisi, copv 70 01956 17 20963B0 dans l'exemple donné, puisqu'il n'y a pas de pcs.sibilité de changement de page en un tel cas. un remarque que pour Dli1, le "bloc initial est ta;jours de type EBE et le bloc final de type EBI alors que pour EG-, le bloc 5 initial et le bloc final sont de types EBI et que, pour EJ, le bloc initial est de type eBI et le bloc final kBE. uïi bloc repère ne peut être ainsi atteint qu'à là suite d'un signal EJ. S'il s'avérait utile de pouvoir atteindre un bloc HBR en un autre cas il suffirait, après avoir atteint un bloc EBI voisin, d'assurer 10 une commande de décalage additionnel d'un seul pas, l'organe 16 étant modifié en conséquence. L'exemple d'organisation de mémoire qui vient d'être iécrit fait appel à des sections de mémoire en lesquelles les registres de bits sont bouclés sur eux-mêmes dans les deux sens et sont 15 commandables dans les deux sens de décalage. En fait, chaque section de mémoire constitue un registre à décalage de blocrs à la fois circulaire et bidirectionnel. Deux variantes d'organisation de sections de mémoire, également exploitables dans le cadre de l'invention, sont données 20 sur les i'igs.8 et 9. Elles font appel à la combinaison d'un registre à décalage de blocs bouclé sur lui-même mais dans un seul sens de circulation de l'information en ce bouclage et d'un registre non bouclé sur lui-même, qui peut donc être dit "linéaire". Ce dernier registre, B, est d'une capacité ce blocs réduite 25 "vis à vis du registre circulaire A. Les exemples des ïigs.8 et 9 se rapportent à une organisation par pages des sections de mémoire et, en ce cas, la capacité du registre linéaire B n'a besoin que d'être d'une page seulement. Sur ces exemples, le bouclage du registre circulaire est 30 montré externe, partant du poste de lecture ±L et atteignant un poste de réinscription G. Le registre linéaire est, selon la représentation donnée, physiquement solidaire du registre circulaire A. Ces conditions peuvent être modifiées sans sortir du cadre de l'invention, le registre B peut être physiquement dis-35 tinct du registre À et ne lui être relié que par voie externe. La i'ig.8 considère le cas où, dans la totalité des registres A et B, l'information peut être décalée dans les deux sens, . .- ; cgpv 70 01956 18 2096380 ce qu'indique la double flèche L. La Ji'ig.9 considère le cas où, au contraire, le registre A est, en. sa majeure partie, à sens de décalage unique selon la flèche G- et ne devient à dcable sens de décalage qu'au voisinage du poste PL-PE sur une fraction de sa 5 longueur, une page dans l'exemple considéré. La partiam à dazble sens de décalage de la structure A+J3 est donc d'une capacité de deux pages. En l'un et l'autre cas, la capacité totale en pages de la structure est prise supérieure d'une unité au nombre de pages effectif à y traiter. 10 En chacune des figures 8 et 9» on a montré la section de mémoire en cinq positions distinctes, de a) à e). La position a) est telle que le bloc—repère de la page û est centré sur le poste PL-PE ce qui implique, selon 1*enseignement de la description antérieure, qu'il s'agit d'un registre dont la position n'est 15 pas mémorisée dans la table associative. En reprenant l'exemple de la I'ig.3, on va considérer que chaque page comprend huit "blocs EBI et un bloc repère médian BBR. On prend pouïr exemple 3® cas où l'appel de mémoire demande que le bloc Ko.6 de la page Ho. 2 soit amené devant le poste PL-PE0 20 On se réfère à la Pig.8ï— la première commande de décalage est une remontée (sur le dessin) de la hauteur d'une demi-page, position b), la seconde commande est un décalage circulaire amenant le front de la page lïo.2 en regard du poste PE-PL, position c). La commande suivante est un décalage vers le bas (du dessin) 25 amenant le bloc Ho. 6 de la page Ho.2 en regard de PE-PL, position d). Cette position est celle mémorisée en table associative à partir du registre d'adresse incidente AT. Tous les appels ultérieurs concernant la page Ho.2 de la section de mémoire pourront être ainsi rapidement traités par l'organisation décrite. 30 Si, au bout d'un certain temps, après des changements de pages éventuels qui sont traités comme susdit, la section de mémoire est abandonnée et que la dernière adresse en cette section soit éjectée de la table associative, alors le bloc repère de la page concernée, ici la page Ho.2, est amené en regard du poste PL—PE» 35 position e) de la Zig.8. La j?ig.9 se différencie de la Eig.8 en ce que, en position, a) aussi bien qu'en position e), les demi-pages de réserve enca 70 01956 19 2096380 drent Xa page présente devant le poste PL—PE. Partant donc de la position a) où le "bloc repère de la page Mo.Q est calé sur la ligne PL-PE, la première commande est un décalage assurant la remontée d'une demi—page dans la partie H à double sens de déca-5 lage de la structure jusqu'à la position b), la seconde commande est une rotation amenant le front inférieur de la page Mo.2 en regard du poste PE-PL» position c) et la troisième commande amène le bloc ito.6 de la page Mo.2 en regard de ce pagate, position d). Lorsque, par la suite, le travail est abandonné en cette 10 section de mémoire, le bloc repère de la page 2 est amené en regard du pos-te PE-PL, position e). De telles variantes peuvent, de façon apparente, être exploitées dans l'organisation décrite, sous la réserve d'apporter à l'organe 16 les compléments utiles à la programmation des dé-15 calages en sections de mémoire, notamment pour la circulation préliminaire à la recherche à l'intérieur d'une page. Le temps d'accès moyen des blocs est légèrement supérieur à celui offert par les registres circulaires bidirectionnels mais la remarque concernant les probabilités de travail en des zones de travail 20 en petit nombre au cours d'une partie importante de l'exécution d'un programme par le système de traitement de l'information est tout aussi applicable à de telles variantes, ce qui rend acceptable cette légère augmentation des temps d'accès moyen. H peut être utile de rappler une méthode, parmi de très 25 nombreuses connues pour la gestion automatique d'une table associative:- soit £ le nombre de lignes de cette table, lignes de à ^k-l * A chaque appel de mémoire, les transferts s'effectuent dans la table associative de à L^, avec i prenant toutes les va- 30 leurs de n à 0 si, en cas d'une détection d'égalité d'adresses par le comparateur uûMP, c'est la ligne de rang n de la table dont le contenu a fourni cette décision d'égalité. Une fois ces transferts terminés, un transfert s'effectue depuis le contenu du registre d'adresse incidente Al dans le registre de la ligne 35 Lq de la table associative. Lorsque le comparateur ne détecte aucune égalité, n est arbitrairement pris par la gestion de la table comme étant égal à (K-l). A chaque transfert de L^^ à 70 01956 2Q96380 Jj. le contenu de est perdu puisqu'il est le dernier re gistre de ligne de la table associative» Ûe contenu est en fait utilisé comme sus-décrit dans 1* organisation, de mémcdlre selon la présente invention. Si à de tels transferts, le registre de rang (k—1) se trouve vide, 1*organe lo ne commande évidemment aucun décalage. 70 01956 21 2096380 aïTSSBIC AÏIOÏS . 1. — Organisation de mémoire de grande capacité et d'accessibilité moyenne optimisée pour systèmes de traitement de l'information travaillant pour l'exécution de programmes d1instructions sur des blocs représentant des ensembles ordonnés d'élé- 5 ment s binaires tels que des bits, caractérisée par la combinaison d'une pluralité de sections de mémoire formant chacune un registre à décalage de blocs comportant autant de registres à décalage de bits simultanément eommandables qu'il y a de bits en toute ligne de bloe et ayant un nombre total de positions au 10 moins égal au nombre total de lignes de blocs d'information em-magasinables dans la dite section de mémoire, d'une pluralité de postes d'écriture et de lecture associés par paires à ces sections de mémoire en un emplacement au moins des registres de blocs qu'elles constituent, et d'un dispositif, incorporant une table 15 associative d'adresses de blocs d'information âe sections de »é-moiretpour répondre à tout appel de mémoire comportant une adresse de section de mémoire et une adresse de bloc en cette section, en commandant en la dite section de mémoire un décalage des lignes de blocs amenant le bloc désigné en regard de la dite paire 20 de postes d'écriture et de lecture associée à la dite section de mémoire» 2."- Organisation de mémoire de grande capacité selon la revendication 1, caractérisée en ce qu'en chacune des dites sections de mémoire est établi au moins un bloc repère de contenu 25 distinctif par rapport à tout contenu de bloc d'information de la dite section de mémoire. 3. - Organisation de mémoire de grande capacité selon la revendication 2, caractérisée en ce que, chacune des sections de mémoire étant organisée par pages, il existe autant de blocs re- 30 pères que de pages emmagasinables en cette section de mémoire, chaque bloc repère comportant un code caractéristique de la page à laquelle il est affecté. 4. — Organisation de mémoire de grande capacité selcan la revendication 2, caractérisée en ce que la dite table associative 35 ne mémorisant aucune adresse de bloc repère de section de aéaoi- 70 01956 22 2096380 re, ce dispositif incorpore des moyens pour définir»à chaque: appel de mémoire, le nombre de pas dont doit être décalée 11 information dans la section de mémoire désignée par l'adresse de section de mémoire en cet appel que la dite table contienne ou. 5 non en un de ses registres le code de cette section, de mémoire» par comparaison de l'adresse de bloc incidente à l'adresse de bloc en ce registre de table associative dans le premier cas, par comparaison de l'adresse de bloc incidente et de l'adresse de bloc présente en regard du. poste de lecture de la section, de 10 mémoire dans le second cas, compte non tenu des blocs repères à traverser en cette opération de décalage. 5. - Organisation de mémoire de grande capacité selon la revendication 4» caractérisée en ce que, la dite table associative étant d'une capacité réduite vis à vis du nombre de sec-15 tions de mémoire, ce dispositif incorpore des moyens pour amener une section de mémoire désignée par une adresse de section en table associative alors rejetée de la dite table sur une p®-sition en laquelle un bloc repère vient en face du pa&te de lecture de la dite sectfcion de mémoire. 2.0 6. - Organisation de mémoire de grande capacité selon la revendication 1 caractérisée en ce que, chaque section, de mémoire étant, au moins partiellement, à deux sens possibles de décalage, ledit dispositif incorpore des moyens pour déterminer le sens optimum du décalage commandé sur appel de mémoire. 25 7» - Organisation de mémoire de grande capacité selon la revendication 6 et l'une des revendications 4 et 5, caractérisée en ce que, lorsque les adresses de bloc à comparer coïncident, le dispositif incorpore des moyens pour provoquer un décalage d'un seul pas dans la section de mémoire désignée par l'adresse 30 de section de mémoire.