Brevet FR2005547A1 — publié le 19691212

La présente invention concerne des systèmes de mémorisation pour ordinateurs. Les systènes de @énorisation classiqu@s comprenent une ou plusieurs né@oires qui sont a@@essables à des fins de lecture et d'écriture par des adresses sous forme nu@erique qui définissent les emplacements d'i@fornation dans la ménoire. Depuis peu, on dispose d'un autre type de m6moire appelé mémoire "associatove". Une mémoire associative présente plusieurs conducteurs dont chacun est divisé en une partie associative et une partie réservée à la valeur. A des fins de lecture, une série de chiffres présentés à la némoire est comparée en parallèle avec le contenu Ces parties associatives de tous les conducteurs, et si le c@ntenu Ge 1' une quelconque des parties associatives est équivalent à la configuration de chiffres pré- sentée, alors le contenu de la partie réservée à la valeur de ce conducteur est selectionné et lu.Si le contenu d'aucune des parties associatives n'est identique à la configuration présen te des chiffres, alors un signal de non équivalence est engen- lré. Ainsi, on se rend compte que pour utiliser une émoire associative, il n'est pas nécessaire de connaître les emplace- @ents physiques des mots numériques enregistrés dans les parties réservées aux valeurs, et que la sélection du contenu d'une cor- tie particuli8re réservée à la valeur se fait en se reférant une série de chiffres qui peut être différente d'une adresse définis sent un emplacement physique, Une m6moire associative est ainsi, pour de nombreuses applications, plus conmode qu'une mémoire classique. nais son prix est beaucoup plus levé, et la présente invention a .Our but de fournir un systene de némorisation dans lequel on obtiont un grand nonbre des avantages d'une mémoire associative à un prix qui n'est as excessif. Suivant l'invention, un système de mémorisation pour ordinateur comprend une mémoire principale qui peut être adressée en y présentant les adresses définissant des emplacements dans la nénoire, une me@oire associative, un moyen pour présenter une série de chiffres représentant la partie d'adresse d'un not d'instruction aux parties associative de la mémoire associative, afin de sélectionner un mot unmérique voulu dans les parties réservées aux valeurs lors de l'obtention d'une équivalence, et un @oyen pourvant être @ctionné en l'absence d'une équivalence pour utiliser la serie de chiffres presentee pour adresser la mémoire principale. Pour nettre en oeuvre l'invention, on peut préveir un moyen pour @odifier la serie de chiffres @@6sentée à la mémoire asso- ciative en ces de non equivalence, et pour adresser ensuite la mémoire @rincip@le avec la serie @odifiée des chiffres. Ceci @permet aux chiffres qui sont initialement presentés à la mémoire associative d'êtrc diffrérents de l'adresse de l'information voulue. Pour faciliter encore la tâche du programmeur, la selection de l'information necessaire peut être faite, à des fins de programmation, par une serie de chiffres appelée "nom" (N) qui définit une variable dans un comtext local. C'est-a-dire que le nom ne doit être unique que dans un programme particulier (R) ou ensemble de variables. Un registre situé la périphérie de la zé,loire associative est prévu pour e@magasiner la valeur R d'un programme et lorsque l'ordinateur set prévu pour une opération a instructions @ultiples, un autre registre est prévu pour la valeur P de l'instruction courante.Les contenus de ees registres sont ench@înes avec @ pour définir une série spéciale de chiffres PRN qui est ap@liquée à la mémoire associative. Les parties associatives de la @emoire associative peuvent être divisées en deux douaines, qui peuvent se chevaucher, et l'accès a la @énoire peut se faire par l'un ou l'autre des donaines, en pernettant ainsi de désigner l'information soit par "non", soit par "alresse". Lorsqu'en fait appel au "nom" d'une variable pour sa sélection, le @oyen de @olification de la séric des chiffres compre nant le non, afin d'@btenir l'adresse de l'infermation vouluc en cas de non équivfalence dans la mémoire associative, paut comprendre un additionneur dans loquel la série de chiffres initialement presentée, ou se @@rtei H corrcspo@@ant au nom, est additionnée avec une s@rie de chi@@@res désignée ar@base de non qui représente l'adr@sse du pr@@ier no@ dans un grogra@@e. La serie de chiffres ainsi obtenue, après ench@înenent avec les chiffres P dennant le nu@@ro d'instructien, lorsque cela est approprié, cons- titue alers l'adresse de l'infor@ation voulue. Les grands systè@@s de @é@orisation @euvent être physiquement divisés en différentes régiens appelées chacune "page" , et chaque page contient un "bloc" d'i@fornation. Les blocs peuvent être décalés d'une page à l'autre conformément aux conditions nornales régnant dans ltordinateur. Dans ces grands systfenes, l'adresse obtenue par le stade de nodification décrit plus haut se rapporte à un bloc, et par suite, elle ne désigne pas un emplacement physique de la memoire. Une telle adresse peut être désignée par conséquent par adresse virtuelle. Pour obtenir le numéro de la page a partir du numéro d'un bloc dans l'adresse virtuelle, on prévoit un autre stade. Dans ce but, on prévoit une autre ménoire associative dans laquelle les parties associatives contiennent les nurleros des blocs, et les parties réservées aux vc.leurs contiennent les nuiaros associés des pages et la tartie (B) réservée au bloc de l'adresse virtuelle est présentée à la ménoire pour obtenir le numéro de la page voulue qui est introduit damas l'adresse virtuelle pour donner l'adresse réelle. Afin de mieux comprendre la présente invention, on va se référer maintenant au dessin annexé dont la figure unique représente, sous forme schématique, un système de m6morisation selon l'invention. En se référant à la figure on a représenté un système de mémorisation comprenant une mémoire principale 1 et une mémoire associative 2. A la mémoire associative sont associes trois registres rapides, à savoir un registre 3 d'instructions, un registre 4 de progrannes, et un registre 5 de basesde non. Le registre 3 d'instructions contient le numéro P des instructions courantes qui y est chargé lors du changement des instructions par un appareillage de surveillance des instructions.. Le registre 4 de programmes contient le numéro R du programme courant, et il est chargé lors d'un changement du progranne par une phase d'instruction. Le registre 5 de base de non est également réglé lors duu changement du programne par une phase d'instruction, et contient l'adresse virtuelle du premier nom du progranne courant. Cette adresse conprend un grou0pe de chiffres SBL qui sont les nun6ros du segment (S), du bloc (B) et de la ligne (L) de cette adresse dans l'instruction courante. Le nun6re de segmebnt, S, définit une zone logique dans une instructionl Le nunéro de blec, B, concerne un bloc dans un segment, et le numéro de ligne L concerne une ligne d'un bloc. Dans le cas d'un système de némorisation qui n' est pas suffisamment grand pour garantir une telle subdivision, le contenu du registre de bases de nom présente un moins grand nombrede bits. La mémoire 2, qui est une mémoire associative, comprend plusieurs lignes dont chacune est divisée en une partie associative et une Lartic réservée a la valeur. La partie associative de chaque ligne p;résente des moyens pour contenir les groupes de chiffras PRIBBL. La m6moire est agencée de façon que l'association puisse se produire an cas d'équivalence de l'un ou l'autre de deux groupes de chiffres conteus dans la partie associative, chacun d'eux couvrant un demaine particulier, les deux domaines en question etant PRN et PSBL. Pour lira dans la mémoire 2, le 'non" N de l'information nécdessaire, lorsqu'il s'agit d'un programme courant correspondant à la valeur du numero enregistré contenu dans lo registre 4 de programnes, est tout ce qu'il faut pour adresser la mémoire. Les valeurs courantes de P et de R dans les registres 3 et 4 sont alors enchaînées avec N pour donner PRN,qui est présenté à la m6moire 2 peur selectionner la valeur de la variable voulue. En cas de non équivalence, alors N est ajouté au contenu du registre 5 de bases de nom et la so@@e ainsi obtenue est enchaînée avec la contenu du registre 3 pour donner PSBL, l'adresse virtuelle de l'infernation nécessaire. i le "nom" de l'infornation qui est nécessaire ne se trouve pas dans un progranme courant, alors la série des chiffres RN, où R désigne @aintenant un progranne qui n'est pas courant, est nécessaire pour accédr à la n6moire. La valeur P de l'information courante conteue dans le registre 3 est enchaînée avec RN pour donner PRN, qui est presenté à la mémoire pour sélectionner la variable voulue comne ci-dessus. en cas de non 6quivalence, alors R est utilise dans l'adresse POOR pour selectionner la base de nom dr progranne R (toutes les bases de nom sont onrgstrées au début de l'espace d'adresse virtuelle de chaque instruction) qui est alors ajoutée à X, et le résultat est nchaîne avec P pour donner l'adressa PSBL de l'information veulue. Un autre moyen de selection de l'infornation vo@lue consiste a utiliser 1 série Jas chiffres SBL qui fait partie de l'adresse virtuelle, laracue ces chiffres sot disponibles. P est enchaîné avec SBL, et des chiffres PSBL, qui constituent maintenant l'adresse virtuelle complete, sont alors présentés 7 la mémoire 2. En ces d'équivalence dans le donaine approprié, alors la partie réservée à la valeur de la ligne sélectionnée est lue. En cas de non équivalence, alors on utilise FSBL comme adresse virtuelle de l'information voulue dans la nénoire prin- cipale. Dans tous les exenples ci-dessus, l'état de non équivalence produit une série de chiffres qui représentent l'adresse de l'information voulue dans la nénoire principale. @ependant, comme expliqué plus haut, l'adresse ainsi obtenue peut ne pas être l'adresse physique, mais peut etro une adresse virtuelle. Pour exécuter la phase consistant à obtenir adresse physique à partir dune adresse virtuelle, on utilise un organe directeur de blocs 6. L'organe direeteur 6 comprend une mémoire associative dont les parties associatives contiennent des séries de chiffres PSB et dont les parties réservées aux valeurs contiennent les nunéros des pages associés. L'adresse virtuelle PSBL est alors divisée en deux parties, la partie PSB étant présentée à l'organe directeur de blocs 6, et la partie L étant utilise sans nodification pour sélectionner la ligne associée de la @émoire principale. Le signal de sortie provenant de l'organe directeur 6, lors de la présentation des chiffres PSB à ce dernier, correspond à un nunére de page qui est utilise conjointement aux chiffres L déja disponibles pour accéder directenent 7 la nénoire princijpale 1. Après avoir obtenu l'infornation voulue à partir de la @é- moire principale, il peut être souhaitable de l'introduire dans la n6moire associative 2 en vu@ d'une utilisation ultérieure. Lorsque l'infernation a été denandée par le nom N, alors tous les chiffres PRBSBL sont disponibles et peuvent être chargés dans la partie associative d'une ligne de la @è@oire, @ais pour une variable qui a été denandée @@@ son adresse SBL, alors le donaine RN de la ligne dans lequel clle a ét6 introduite est vierge. Après l'extraction de l'infornation de Pa nénoire associative, lorsqu'elle n'est plus n6cessaire dune façon générale et qu'elle doit être introduite dans la @é@oire pri@cipale, son adresse virtuelle PSEL est in@edi@tonent disponible pour obtenir un enpladcement physique dans lequel elle @@ut être introduite dans la mémeire principale. Bien que dans l'exemple ci-dessus, on ait décrit un systène de mémorisation en association avec une opération à instructions nultiples, opn se rend conpte que l'invention est applicable à une opération à une saule instru@tion, auquel cas, 1 registre 3 d'insturctions et les noyens destinèsd à contenir la série de chiffres P dans les diverses nemoires ne sont pas nécessaire. REVENDICATIONS 1. Systène de n6norisation pour ordinateur, caractérisé en ce qu'il conprend une némoire principale (1) adressable en lui présentant des adressas définissant des emplacements dans la mémoire et une mémoire associative (2), un moyen pour présenter une série de chiffres représentant la partie adresse d'un mot d'instruction aux parties associatives de la neloire associative, afin de sélectionner un nat nunérique voulu dans les parties réservées aux valeurs en cas d'équivalence, et un moyen pouvant être actionné en l'absence d'une équivalence pour utiliser la séria présentée dos chiffras pour adresser la mé- noire principale. 2. Systéne selon la rovendication 1, caractérisé on ce qu'on prévoit des moyens pour modifier la séria des chiffres présentée à la nénoire associative on cas de non equivalence et pour adresser ensuite la n6nonre principale avec la série nodifiée des chiffres. 3. Systène selon l'une ou l'autre des revendications pre- cédentes, caractérise en ce qu'il est prévu un ou plusieurs registres (3 ou 4) à la péripherie de la nénoire associative, dans lesquels sont emnagasinés des groupes de chiffres représentant des instructions ou progrannes, ainsi que des noyens pour en- chaîner les chiffres contenus dans lesdits registres avec des chiffres définissent un variable dans un contexte local, de fa çon à obtenir une série de chiffras pour la présenter à la né- moire associative. 4. Systène selon l'une quelconque des revendications pre cédentes, caractérisé ail ce que las parties associatives de la nénoire associative sont divisées en plusieurs doiieines et an ce que l'accès à l @énoire peut se faire par l'un quelconque des domaines. 5. Système selon les revendications 3 et 4. caractérise an ce que l'un des donaines de la nénoire associative contient des adresses convenant pour être utilisees pour adresser la nénoire principale, et un autre des domaines de la nénoire associative contient des chiffres définissent une variable dans un contexte local.