Brevet FR2156445A1 — publié le 19730601

La présente invention concerne les mémoires d'informations binaires de grande capacît# et d'accès aléatoire destinées à être exploitées par des calculateurs et systèmes de traitement de l'information opérant par programmes d'instructions sur des roupies de chiffres binaires usuellement appelés des mots. Les longueurs de ces mots peuvent avantageusement ariser de travail à travail, de partie de travail à partie de travail et même de mot à mot. Chaque programme comporte une partie moniteur pour le chargement préala- ble à un travail de données de conditionnement de ce travail. On a déjà proposé divers systèmes de mémoire qui peuvent être dits "adaptables" en ce qu'ils sont propres à recevoir et délivrer des mots de longueurs différentes. Ils ont pour caractéristique commune qu'ils utilisent un certain nombre de longueurs de mots, chacune sous-multiple d'une longueur maximum et chacune égale à ou multiple d'une longueur minimum parfois dite "caractère". Si, par exemple, ce caractère est un octet, huit chiffres binaires ou bits, ces systèmes peuvent traiter des mots de longueurs égales à 8, 16, 24, 32, 40, 48, 56 64 bits, etc.. jusqu'à la longueur ma xintum que définit en fait la capacité du registre de liaison entre la mémoire et le calculateur ou le système de traitement de llin- formation.En certains de ces systèmes, on a déjà proposé de caractériser un mot en mémoire par sa longueur, exprimée en nombre de caractères, l'adresse de son premier caractère et, si de besoin un indice de cadrage, droite ou gauche, du mot dans un registre d'édition associé au registre dtécrtture-lecture de la mémoire par l'intermédiaire d'un réseau d'aiguillages pour les cadrages et masquages des codes dans les transferts entre ces registres. Le registre d'édition à une capacité égale à la longueur maximum de mot traitée par le calculateur ou le système qui exploite la mémoire, le plus souvent d'ailleurs identique à la capacité du degistre dlécriture-lecture. En un système de mémoire selon la présente invention, chaque mot est le code d'un sémantème défini par le programmateur dans son espace conceptuel par son numéro d'introduction dans le programme et le nombre de quantums qu'il comporte bien qu'inseccable en sa signification propre. Au codage, un quantum se traduit par un caractère machine d'un nombre de bits prédéterminé et constant. A titre d'exemples non limitatifs, les sémantèmes peuvent représenter des nombres, entiers ou flottants, des adresses, des caractères alphanumériques, des drapeaux, des instructions inseccables à leur exécution, et ainsi de suite, On conçoit que ces sémantèmes puissent être représentés par des codes à nombre de caractères, donc de bits, diversifiés. Le but de l'invention est de prévoir un système de mémoire adaptable en lequel les codes des sémantèmes, de longueurs individuelles distinctes, peuvent être directement rangés bout à bout et sans espaces morts entre eux dans une mémoire à longueur de li gne fixe multiple de la longueur des codes de quantums des sémantèmes et en lequel les adresses des contenants de ces codes dans la mémoire peuvent, tant pour le rangement que pour 1 extraction, être obtenues directement à partir des adresses logiques des sémantèmes, à savoir leurs numéros d'intervention dans le programme. Selon une caractéristique de l'invention, un système de mé moire adaptable satisfaisant au but ci-dessus incorpore des mot yens formant, à partir des données d'adresses logiques et des longueurs en quantums des codes de sémantèmes, les codes des adresses lieu,en mémoire à longueur de ligne fixe, des premiers caractères des codes des sémantèmes et les codes représentatifs des nombres de caractères de ces codes de sémantèmes, et appliquant ces codes d'adresses lieu et de nombres de caractères aux moyens d'écritureg respectivement de lecture, de la dite mémoire. Selon une autre caractéristique de l'invention, ces moyens incorporent une mémoire auxiliaire formant table de nature semiassociative au moins, chargée par la partie moniteur d'un programme en codes d'adresses logiques des sémantèmes exploités dans le travail défini par ce programme et organisée pour délivrer, à cha- que interrogation par adresse logique, à l'organisation de sélect tion et commande de transferts de la mémoire à longueur de ligne fixe, les codes utiles, à savoir l'adresse de la ligne et le cadrage en cette ligne du premier caractère du code de sémantème et le nombre de caractères qui compose ce dernier code, Ces caractéristiques, ainsi que d'autres encore venant en renforcer les effets, vont être exposées dans le détail en se reportant, à la figure unique jointe qui représente, à titre illustratif un exemple de système de mémoire adaptable établi en conformité de l'invention dont peuvent se déduire, sans plus, toutes variantes d'exécution pratique entrant dans le cadre de l'invention. En cette figure est représentée une mémoire (MB; dont la longueur de ligne est fixe et comporte un nombre M d'emplacements,ou contenants, de codes de caractères. Pour iriser les idées, on peut considérer que chaque caractère est representé par un code octet et qu'il y a 8 octets en une ligne de (MB) qui a donc une longueur de 64 bits. A cette mémoire est associé le registre usuel d'écrit ture-lectu#re REL, d'une capacité de o4 bits, soi t 5 caracteres et un registre d'édition de codes PEE > est associé L HL par tjn ré- seau d'aiguillage (RA) pour les cadrages et masquages dans les transferts entre ces registres.RED a lrie capacité fonction de la longueur maximale des mots traités dans le système qui exploite la mémoire (MB). Pour simplifier la représentation et l'exposé, on suppose que RED a méme capacité que REL bien qu'elle puisse autre plus importante si de besoin. Le réseau d'aiguillages (RA) opère sous la commande de signaux représentatifs, pour chaque transfert, d'un nombre de caractères et d'une valeur de cadrage, En (MA) est indiquée une mémoire auxiliaire formant table de nature semi-associative au moins.La longueur de ligne de (mua) peut avantageusement être la même que celle de (bE car ces deux mémoires peuvent alors ne constituer qu'une seule unité structurelle, On a indiqué en RAA un registre d'adresse pour (MA) et en RAB un registre d'adresse pour (MB). Ces registres peuvent être confondus si désiré lorsque (MA) et (MB) forment une telle unité. On a indiqué en RELA un registre d'écriture-lecture pour (MA) et similairement, ce registre peut si désiré être confondu avec REL. La fonction de (MA) est de permettre d'obtenir, à partir de tout code d'adresse logique entrant L#G, temporairement mémorisé dans le registre ~, l'adresse de lieu en (MB > du code de sémantème correspondant. L'adresse logique d'un sémantème est le numéro que le programmeur attribue au sémantème lorsqu'il l'introduit dans le programme. Le programmeur définit également alors le nombre de quantums Xi du sémantème de numéro Ai. Le code "machine" du sémantème comprend un nombre de caractères égal au nombre de quantums, chaque caractère étant formé d'un nombre défini et constant de bits. Pour que les codes de sémantèmes puissent être terits en facteurs:- une adresse de ligne, Fi, une adresse de premier carac tère en cette l1##ne, en fait un code de cadrage Gi de ce premier caractère en cette ligne et, bien entendu, le nombre de caractères Ni égal au nombre de quantums du sémantème. ITne adresse de lieu en (MB) d'un code de sémantème est donc définie par l'ensemble (Fi, Gi, Ni). Il semblerait donc que l'organisation de (MA) soit particulièrement simple:- chaque ligne de (MA) étant affectée à un séman tème comprendrait les codes Ai, Ni, Fi et Gi et (MA) serait organisée en mémoire ou table associative classique, dont toute adres se associative est constituée par le code arrivant en L K et tem- porairement memorisé en 0 sous la forme Ai.En variante, le code Ni peut ne pas être mémorisé en (MA) et appliqué en L#G en meme temps que le code Ai, il serait donc directement prélevé du registre p. En variante encore, le code arrivant en L~G étant (Ai,Ni) et Ni étant écrit en (MA), l'adresse associative est (Ai,Ni) mais Ni est prélevé pour action en (MB) soit de (MA) soit de ~. Le registre 0 peut etre confondu avec RAA. Une telle organisation de (MA) quoique simple et entrant dans le cadre de l'invention est cependant coûteuse puisqu'elle nécessite une ligne de (MA) par sémantème, ligne qui est de plus, en de nombreux cas, imparfaitement utilisée lorsque le nombre de bits de la suite (Ai,Ni,Fi,Gi) ou (Ai,Fi,Gi) est inférieur au nombre de bits de la ligne de mémoire. Selon une autre caractéristique de l'invention alors, chaque ligne de (MA) est affectée à la représentation des adresses (Ai,Ni) d'un groupe de p sémantèmes consécutifs en ce qu'elle contient le code du numéro du premier sémantème du groupe, soit Ai-l, par exemple cadré sur une extremité de la ligne, suivi des p codes de nombres de quantums des sémantèmes consécutifs du groupe, soit Ni-l à Ni-p~ La capacité de (MA) est ainsi réduite par un facteur p.La conversion en adresse de lieu en (MB) s'effectue extérieurement à la mémoire (MA) lors de la lecture du contenu d'une de ses lignes. Pour la sélection d'une ligne alors, le registre ~ reçoit le code L~Gi de l'adresse logique du sémantème concerne.Ce code est, dans un opérateur OP1, divisé par le nombre p. Le code quotient Q est appliqué sur le registre d'adresse RAS en tant que code de recherche associative qui provoquera le transfert du contenu d'une ligne de (MA), à la lecture, dans le registre RELA et, à l'écriture, chargement de (MA) par le moniteur d'un programme, le transfert du contenu de RELA dans la ligne de (MA) désignée par la recherche, contenu constitué par les codes Ni-l à Ni-p du groupe désigné par Ai-l. Le code R du reste de la division désigne le rang j du sémantème dans le groupe et sert à la sélection du code Ni-j à la lecture (j a une valeur de 1 à p, en lecture, et le code R est toujours nul à lté- criture).La conversion de Ai en (Fi, Gi) s'effectue par une organisation reliée au registre tRELA et dont la coiiception est basée sur la remarque suivante: Dans la mémoire des codes S des sémantèmes, (N1B > , ces codes sont ou doivent être rangés à la suite les uns des autres sans intervalles entre eux.L'adresse du premier caractère du code d'un sémantème Si étant connue en (AtB) ainsi que le nombre de caractères de ce code étant connus, l'adresse en (B) du premier caractè- re du sémantème suivant S(i/l) est égale à l'adresse du premier caractère du code du sémantème Si accrue du nombre de caractères de ce sémantème Si, Pour convertir un code d'adresse logique L@Gi en un code d'adresse de lieu en (MB) il suffit donc d'ajouter à la valeur du code Ai-l existant en RELA, la valeur de la somme du nombre de caractères des sémantèmes de rangs inférieurs à j dans le groupe défini par l'adresse de départ Ai-l et de présenter ce code modifié au convertisseur susdit de Ai en (Fi, Gi).L'exécution des additions demanderait pourtant un temps trop long et il est donc préférable de recourir à un décodeur-codeur DC de la partie (N) du registre RELA, opérant sous la commande de R pour délivrer, outre le code N-j sur une sortie N, un code représentant la somme des nombres de caractères de Ni-l à Ni(j-l) sur une sortie V. Un additionneur parallèle AD1 reçoit le code délivré par la liaison V et celui transféré de la partie (A) du registre RELA soit donc un code Aiz Le code sortant de AD1 est appliqué sur un opérateur OP2 qui le divise par le nombre M de caractères existant dans une ligne de (NE). Le quotient F représente l'adresse de la ligne Fi du premier caractère du sémantème et le reste G représente le cadrage de ce premier caractère dans la ligne Fi, c'est à dire, en fait, le numéro de ltemplacement du contenant de ce premier caractère en cette ligne. Le code F est appliqué sur le registre d'adresse RAB pour la sélec-tion de la ligne désignée en (MB) selon un processus classique en soi dans une organisation non autrement détaillée car inutile à la compréiiensioî de l'invention.La liaison entre la sortie F de ADI et le registre IIAB passe toutefois par une porte multiple (à autant de portes élénijitaires que de bits en parallèle sur la liaison) qui est passante en une phase opératoire dite Il se peut en effet que la sélection d'un emplacement de code de sémantème en (MB) nécessite au moins une seconde phase, soit selon une organisation qui sera exposée plus loin en un exemple non limitatif d'exécution, seconde phase en laquelle la valeur de F devra entre accrue d'une unité de plus faible poids. Revenant pour le moment à ltorgane DC, cet organe peut, à titre indicatif, avoir la configuration suivante:- il contient un décodeur du code R à p sorties individuellement activées selon la valeur de ce code;- il contient autant de portes multiples que de "caractères" de Ni-l à Ni-p respectivement commandées par ces p sorties de décodeur et ayant leurs sorties reliées en commun à la liaison multifilaire Nr;;- il centient (p-î) codeurs, le premier recevant le code Ni-l, le second les codes Ni-l et Ni-2, le troisième les codes Ni-l, Ni-2 et Ni-3, et ainsi de suite, le (p-l)ème recevant les codes de Ni-l à Ni-(p-l), les sorties de ces codeurs étant reliées à la liaison multifilaire V par des portes multiples respectivement placées sous la commande des sorties R=2 à R=p du décodeur susdit; - le premier codeur n'est en fait qu'un circuit de transfert du code Ni-l à la liaison , chacun des autres délivre à cette liaison un code représentant l'addition des codes qu' il reçoit et consiste, de fait, en une table à réponse immédiate éliminant le retard qui serait dû à un additionneur classique. Bien entendu, ces tables peuvent être structurellement groupées pour recevoir, en cette table de codage multiple, la totalité des codes de Ni-l à Ni(p-l) et délivrer les codes transposés comme dit à la liaison V par des portes multiples commandées par les sorties du décodeur de R activables pour les valeurs de 2 à p du code R. Les opérateurs-diviseurs OPI et OP2 peuvent également être réalisés sur le principe des tables de conversion de codes numériques. Lorsque p et M sont multiples de 2, ces opérateurs se réduisent à des registres dont le contenu est transféré en deux parties à leurs sorties "quotient" et "reste". Pour définir un emplacement de code de sémantème en mémoire (mu), on dispose donc, dans un système conforme à l'invention, de l'adresse F de la ligne de départ de cet emplacement, du code de cadrage G du premier caractère du code de sémantème en cette ligne et du nombre de caractères N de ce code, Pour plus de précision, le facteur G est un code de cadrage en mémoire et, dans le cas ou le code du sémantème chevauche d'une ligne de mémoire à la suivante, il est utile de définir un autre facteur de cadrage, soit C > se référant à lln cadrage en registre, dont on verra plus jloin la signification précise, On considère en prelnier lieu le cas d'un code de sém.lnteme S1 occupant, illustrativement, cinq caracteres d'une ligne de mé moire d'adresse Fl avec un cadrage en memoire G = I, En ce cas, N = 5 et le code est entièrement contenu dans la ligne Fl puisque N + G = 6 inférieur à M = 8 dans l'exemple considéré, ce que ve- rifie un comparateur COMP recevant le code d'addition en AD2 des valeurs N et G et recevant, en fait affichant en îui-m#me, la valeur X, nombre de caractères par ligne de (#1B)# Par l'intermédiaire d'une table, non figurée, recevant les codes N et G, le réseau d'aiguillages (RA) est alors commandé pour établir les liaisons indiquées en trait double entre les registres REL et RED au cours de la phase opératoire #0, la seule en un tel cas de code ne chevauchant pas d'une ligne de (MB) à la suivante, Le sens des flèches indique qu'il s'agit d'une opération de lecture avec ditiont du résultat en REL, recevant le contenu entier de la ligne FI, en RED, code seul du sémantème cadré à droite. Pour une opération d'écriture en (NB), ces mimes liaisons seraient établies mais de sens inversé entre RED et REL.Détailler le réseau (RA) est inutile:- ce réseau est constitué de liaisons bilatérales entre tout emplacement de caractère du registre REL et tout emplacement de caractère du registre RED et les portes multiples de ces liaisons (autant de portes par liaison que de bits par caractère) sont commandées par les sorties activées de la table à entrées (N, G) susdite, table de conversion de codes aboutissant à une activation sélective de ses sorties de décodage selon les configurations de codes appliqués sur ses entrées, d'une constitution classique en soi. On considère ensuite le cas d'un code de sémantème S2 qui chevauche sur deux lignes de ("B). Soit F2 l'adresse de la ligne contenant la partie S2-a du code de sémantème 52, par exemple les trois premiers caractères dlun code à cinq caractères, cadrage en mémoire G = 5 en cette ligne,et F3 l'adresse de la ligne suivante, en fait (F2+1) qui contient la seconde partie S2-b du code de sémantème S2, cadrée à droite en cette lile F3.En phase #0 tout se passe comme dans le cas précédent:- l'adresse F2 provenant de OP2 est appliquée sur le registre IIAB par la porte multiple t , le contenu de F2 est transféré en REL et, de là, en X en suite à l'établissement des trois liaisons indiquées en trait simple et repérées t . liaisons établies encore par l'application de N et G sur la table de commande susdite du réseau dtaiguillages (RA) en cette phase #0. Toutefois, le comparateur COMP délivre, en ce cas, un signal de déclenchement d'une seconde phase #1 enchaînant avec la phase go, Un additionneur AD3 a formé le code (F2+l), donc le code d'adresse F3 qui, en phase 19 est substitué en RAB au code adresse F2, d'où la substitution en REL du contenu de la ligne de (MB) d'adresse F3 au contenu antérieur de ce registre, En même temps le comparateur COMP délivre sur une sortie quantifiée le code de différence M -(G+N) qui donne le nombre de caractères de S2 en débordement sur la ligne F3.Par une porte passante en t1 ce code D est appliquée sur une seconde table de conversion, également non figurée, pour la commande du réseau (RA). En SC par ailleurs, et également en phase t19 est formé un code de différence entre les valeurs M et X, donc un code indiquant le nombre de caractères de S2 qui ont été transférés à RED et cadrés à droite en ce registre au cours de la phase Ces liaisons assurent le cadrage en RED des deux caractères de la partie S2-b du code de sémantème alors transférés de REL à RED. Donc, après la phase ol, le code du sémantème est correctement reconstitué en RED. REVENDICATIONS 1. - Système de mémoire d'informations binaires permettant 11emmagasinageFians une mémoire à longueur de lino fixe et sans espaces morts entre eux, de codes de sémantèmes à nombre de caractères diversifiés, chaque sémantème étant défini en données logiez ques par son numéro dtintroduetion dans le programme et son nombre de quantums, caractérisé en ce que, pour la sélection des contenants des codes de sémantèmes en cette mémoire, il incorpore des moyens formant, à partir des codes binaires de telles données logiques, les codes des adresses en mémoire des premiers caractères des codes de sémantèmes et les codes de leurs nombres de caractores. 2. - Système de mémoire selon la revendication 1, caractérisé en ce que ces moyens incorporent une mémoire auxiliaire chargée en données logiques par la partie moniteur d'un programme et organisée pour délivrer en réponse à toute recherche associative par donnée logique un code d'adresse de ligne de mémoire, un code de cadrage en cette ligne du premier caractère et un code de nombre de caractères du contenant en cette mémoire du code du sémantème correspondant à cette donnée logique. 3. - Système de mémoire selon la revendication 2, caractérisé en ce que chaque ligne de mémoire auxiliaire contient un code de numéro de départ d'un groupe de sémantèmes dont les codes de nombres de quantums suivent ce code de numéro, des moyens dérivent du code de donnée logique entrant un code de recherche associati ve et un code de rang d'un sémantème dans le groupe, et des moyens dérivent, des données lues en résultat de cette recherche associative et en fonction de ce code de rang de sémantème l'adresse en mémoire à longueur de ligne fixe du premier caractère du code du sémantème désigné par cette donnée logique et le code de nombre de caractères de ce code de sémantème en cette mémoire. 4. - Système de mémoire selon la revendication 3, caractérisé en ce que ces moyens de traitement du code de donnée logique entrant consistent en un opérateur divisant la valeur de ce code par le nombre de sémantè;:0es ciu troupe désigné en chaque ligne de mémoire auxiliaire, le cue quotient de cette division étant applique à cette moire comme code de recherche associative et ces moyens de traitement des données lues en réponse à cette recherche associative comportent des moyens pour former, sous la commande du code reste de cette division, un code d'addition des valeurs des codes de nombres de quantums des sémantèmes du groupe de rangs inférieurs à celui désigné par ce code reste de la division, additionner ce code d'addition au code de numéro de départ du groupe puis diviser le code résultant de cette dernière addition par le nombre de contenants de caractères en chaque ligne de la mémoire à longueur de ligne fixe, le code quotient de cette seconde division étant le code d'adresse de ligne du contenant du sémantème en cette mémoire et le code reste de cette seconde division étant le code de cadrage du premier caractère de ce contenant en cette ligne, ces moyens de traitement des données lues incorporant de plus des moyens pour diriger sur l'organisation de la mémoire à longueur de ligne fixe, par sélection commandée par la valeur du code reste de la première division, un code représentatif du nombre de caractères du contenant du code de sémantème, nombre égal à celui du nombre de quantums écrit en ce rang dans la dite mémoire auxiliaire. 5. - Système de mémoire selon la revendication 4, caractérisé en ce que, le nombre de sémantèmes en iout groupe de ligne de mémoire auxiliaire et le nombre de contenants de caractère en toute ligne de mémoire à longueur de ligne fixe étant des multiples de deux, ces diviseurs se réduisent à des aiguilleurs de parties distinctes des codes qu'ils reçoivent, 6. - Système de mémoire selon la revendication 4, caractérisé en ce que ces moyens de formation d'un code d'addition des valeurs de codes de nombres de quantums des sémantèmes du groupe de rangs inférieurs à celui désigné par le code reste de la division consistent en des tables de conversion de code recevant sélectivement à chaque lecture en mémoire auxiliaire des groupes de codes de nombres de quantums et ayant leurs sorties reliées à une entrée de l'additionneur recevant sur son autre entrée le code de numéro de départ du groupe à travers des portes commandées par les sorties d'un décodeur du code reste de la première division. 7. - Système de mémoire selon la revendication 4, caractérisé en ce qu'à la mémoire à longueur de ligne fixe est associé un registre d'écriture-lecture lui-même associé à un reistre d'édition par un réseau d'aiguillages permettant de relier tout contenant de caractère du registre d'écriture-lecture Èt tout contenant de caractère du registre d'édition et vice-versa et en ce que ledit réseau d'aiguillages est conditionné à chaque opération de sélec tion en fonction des codes de nombre de caractères du contenant de sémantème sélectionné CL de cadrage du premier caractère de ce contcnant dans la liane de mémoire en une phase opératoire de- clenchée par cette sélection. 8, - Système de mémoire selon la revendication 7, caractérisé en ce qu'en cette phase opératoire, des moyens forment respective- ment les codes des différences entre le code de cadrage et le nombre de contenants de caractère par ligne de mémoire, d'une part, et entre cette valeur de nombre de eontenallts de caractère par ligne et la somme des codes de cadrage et de nombre de caractères du contenant du sémantème, A'autre part, et des moyens répondent au signe négatif de cette dernière différence pour déclencher une seconde phase opératoire en laquelle le code d'adresse de ligne de mémoire est accru d'une unité sur sa valeur en première phase et le réseau d'aiguillages est conditionné par ces codes de dif- férences en substitution à ceux qui le conditionnaient au cours de la première phase opératoire. 9. - Système de mémoire selon la revendication 2, caractérisé en ce que la mémoire auxiliaire est établie de même longueur de ligne que la mémoire à longueur de li ne fixe des codes de sémantèmes et que ces mémoires sont réalisées en une seule unité structurelle.