FR 2315744 A1 19770121 FR 7520222 A 19750627 L'invention se rapporte aux ordinateurs à mémoire virtuelle, clest- -dire à ceux qui utilisent une technique d'extension de la mémoire centrale sur des mémoires secondaires, pour rendre transparents à l'utilisateur tous les transferts de données entre mémoire centrale et mémoires secondaires. Ainsi, l'utilisateur a toujours l'illusion de travailler en mémoire centrale. En général, dans cette technique, la mémoire secondaire est divisée en zones fixes appelées "pages". A un instant donné, un certain nombre de ces pages sont en mémoire centrale. Quand une "adresse mémoire virtuelle" est demandée, le dispositif a pour rôle de convertir cette adresse en "adresse mémoire réelle", ce qui implique éventuellement des Opérations d'entrees-sorties. Dans la plupart des cas, la taille de la mémoire virtuel- le est égale à la taille de la mémoire secondaire utilisée pour son fonctionnement, ce qui signifie que chaque page virtuelle a son équivalent réel. L'invention s'applique à une mémoire virtuelle d'un type particulier, dans laquelle les pages ne représentent qu'une très petite fraction de l'espace virtuel, celui-ci étant quasi illimité (par exemple 6 x 230 mots de 16 bits pour une taille de page de 256 mots) et n'étant matérialisé, en mémoire réelle, que très partiellement, la mémoire centrale et les mémoires secondaires (disques par exemple) ne contenant, a chaque instant, que l'information correspondant à la place effectivement occupée dans l'espace virtuel. L'intérêt de ce type de mémoire virtuelle consiste en ce qu'elle permet, pour chaque objet, de taille variable, d'allouer une place fixe. Cette méthode s'applique, en particulier, à la gestion de bases de données, ou à la réalisation d'une mémoire associative de très grande dimension. Sa mise en oeuvre n'a été envisagée, dans l'art antérieur, qu'au moyen de programmes ou de micro-programmes, ce qui présente 1' inconvénient de nécessiter un nombre d'instructions important et un temps d'accès notable à l'information dont on connaît l'adresse virtuelle. Comme on le verra dans la suite, les pages sont divisées en sous-pages et les sous-pages qui présentent la même adresse réelle sont chaînées entre elles. Dans le cas où la sous-page à laquelle on veut accéder et le chaînage qui permet de l'atteindre se trouvent en mémoire centrale, aucun acces aux mémoires périphériques n'étant nécessaires, il serait souhaitable de rente le temps d'accès comparable au temps d'accès habituel à la mémoire centrale, afin que les performances d'un programme soient peu dégradées par l'utilisation de la mémoire virtuelle L'invention propose d'attendre ce résultat au moyen d'un dispositif matériel d'accès à la mémoire centrale, qui soit capable, a partir d'une adresse virtuelle, de trouver l'adresse réelle correspondante et, en cas d'échec, de signaler la nature de cet échec (défaut de page ou de sous-page) pour que le "software" du mécanisme de mémoire virtuelle puisse prendre le relais. Suivant l'invention. ce résultat est obtenu au moyen d'un dispositif de recherche, dans une mémoire réelle, de l'information correspondant à une adresse virtuelle définie par une pluralité de bits comportant au moins trois champs de longueurs variables, dont le premier est un indicatif d'un pli de l'espace virtuel, le second une adresse de page et le troisième une adresse de sous-page, la structure de cette adresse virtuelle étant précisée par une information de format comportant un numéro d'espace virtuel, le nombre total de plis et le nombre de sous-pages contenues dans une page, à chaque information vraie contenue à une adresse de sous-page de mémoire réelle, étant associée une information de contrôle comportant également trois champs de bits de longueur variable, le premier étant l'indicatif du pli qui contient une sous-page virtuelle, le second et le troisième l'adresse de page et de sous-pages réelles contenant l'information vraie suivante d'un anneau de champ nage, caractérisé, en combinaison, par un circuit de découpage qui sépare ces trois champs et les range en tenant compte de leurs poids faibles, par une mémoire associative reliée au circuit de découpage et relevant le second champ, ladite mémoire associative comportant des unités de stockage des adresses des pages chargées dans la mémoire réelle et des moyens de fournir l'une de ces adresses lorsqu'il y a confidence entre ledit second champ et l'une desdites adresses, un circuit de calcul d'une adresse de sous-page dans la mémoire réelle reliée . la mémoire associative et au troi sième champ de sortie du circuit de découpage, des moyens effectuant une lecture de la mémoire réelle à l'adresse de sous-page calculée et des moyens de comparer les premiers champs de l'information de contrôle contenue à l'adresse lue dans la mémoire réelle à celui de l'adresse virtuelle, de signaler la réussite ou l'échec de cette comparaison et, en cas d'échec, de ré-introduire ladite information de contrôle dans le circuit de découpage. Les diverses particularités, ainsi que les avantages de l'invention apparaitront clairement a la lumière de la description ci-après. Au dessin annexé La figure 1 est un schéma de principe d'un dispositif de recherche conforme au mode d'exécution préféré de l'invention ; La figure 2 est destinée a faire comprendre comment s' effectue la projection d'un espace virtuel sur un espace réel ; La figure 3 représente l'organisation de la zone de mémoire centrale de l'ordinateur qui est affectée a la mémoire virtuelle ; La figure 4 représente un mode d'exécution préféré de l'opérateur de découpage que comporte le dispositif de recherche ; et Les figures 5 et 6 représentent un mode d'exécution préféré de deux multiplexeurs qui font partie du circuit de découpage. A la figure 1, on a représenté un mécanisme "hardware" de mémoire virtuelle (HMV) comportant les organes suivants interface IBG avec le bus général BG de l'unité de traitement UT interface IBM avec le bus de mémoire BM de l'ordinateur Bus interne BI en liaison avec ces deux interfaces et avec Opérateur de découpage DECOUP, et opérateurs auxiliaires m DECOUP et COMP (comparateur) Registre-compteur NUMC par l'intermédiaire duquel on réalise l adressage de la mémoire réelle MR la table de recherche Table de recherche TR Circuit de calcul PAMV de la projection de l'adresse virtuelle AMV en mémoire centrale Compteur de branchement BR, à trois états stables 0, 1 et 2. Il se bloque lorsqu'il est arrivé a l'état 2. On indiquera son rôle dans la suite Circuit TD : contient une logique qui établit l'ordre de lance ment du signal de commande de mise en route TD et un circuit de temporisation qui délivre le signal TD Bloc RS : il élabore et mémorise les résultats obtenus par HMV et contient les circuits logiques et les mémoires nécessaires a cet effet. Avant de décrire ces différents organes et d'expliquer leur fonctionnement, l'on exposera tout d'abord le principe général de fonctionnement de la mémoire virtuelle dans laquelle HMV est destiné à s'incorporer. On se référera tout d'abord à la figure 2, qui représente la projection d'un espace virtuel sur un (les termes "espace" et "memoire"ont la même significaespace réel.(tion dans ce qui suit.) On a fait correspondre, à toutes les adresse virtuelles telles que V&alpha;, Vss, V# qui ont le même "H-code" (lequel est par exemple l'adresse virtuelle V modulo la taille de l'espace réel), une même adresse réelle R. On peut alors écrire V = IND + R avec IND = H -1 (V), numéro du "pli" de l'espace virtuel qui contient le point V, ou résultat du découpage de V sur nv - nr bits et R = H (V) adresse réelle de la projection ; c'est le résultat du découpage de V sur les nr bits de poids faible. On va maintenant expliquer ce qu'on appelle le "chaînage". A la figure 2, on voit qu'il y a collision entre les adresses Y, V,,et V# qui correspondent a la même adresse réelle R Pour résoudre ce problème, on effectue un "chaînage" entre ces trois points : Vz , le premier stocké en mémoire réelle, est rangé en Rs , mais Vss et V# sont rangés plus loin dans des places libres RA, Rr et une information de contrôle, IC, est écrite à l'adresse réelle ou l'on a stocké une adresse virtuelle AMV, à côté de l'in formation vraie (AMV). IC = H 1 (IC) + H (IC) Autrement dit, IC contient le numéro du pli (soit pour Vs ) et l'adresse réelle où se trouve stocke l'élément suivant du chaînage (soit R ). R, Rss et R# constituent un anneau, dont R de chaîne, Rs et R r étant des "squatters". Chaque élément de 1' anneau "pointe" le suivant et un élément seul se pointe lui-même. Une procédure comportant notamment le rechaînage d'un squatter i effacé dans un anneau entre les éléments i - 1 et i + 1 qui l'encadrent, assure que la tête de chaîne reste toujours a sa place. On va maintenant décrire l'organisation des mémoires réelles et virtuelles. Pour des-raisons d'optimisation, la projection de l'es pace virtuel sur l'espace réel se fait par blocs de mots appelés "sous-pages" ayant chacuns une information de contrôle appelée mot d'en-tête d'une sous-page (NE5P). Pour réaliser un traitenent sur une information stockée dans la mémoire virtuelle, le contenu de la moire réelle (par exemple disque) à l'adresse concernée doit être transféré dans la mémoire centrale MC du calculateur. L'accès disque se fera par groupe de sous-pages consécutives, appelés pages. La gestion de MC se fait par cadres. Un cadre est le support d'une page à un moment donné. Plusieurs espaces virtuels peuvent être projetés sur la mémoire réelle, elle-même composée de plusieurs espaces réels. La mémoire centrale est partagée par les espaces virtuels et la taille d'une page est fixe pour une machine donnée. A titre d'exemple, la mémoire virtuelle MV comprendra 230 sous-pages et la mémoire centrale aura affecté au maximum 64 cadres pour le traitement en W. Les mots des mémoires ont par exemple 15 bits. Le mot d'en-tête d'une soudage comporte deux bits de contrôle S et O suivis de 30 bits IN + CAP + CASP, avec : INDR : numéro du pli qui contient la sous-page virtuelle projetée CAP : adresse de la page réelle qui contient l'élément suivant du chaînage CASP : numéro dans CAP, de la sous-page qui contient l'élément suivant du chatnage. Les bits de contrôle permettent de distinguer Si, dans l'espace réel, la sous-page est libre (S = O = o), seule (S = o, 0 = 1), en tête de chaîne (S =.1, 0= o) ou squatter (S = O = Le mot d'en-tête est stockée dans 2 mots consécutifs de la mémoire réelle. La sous-page contient m mots, dont le mot d'en-tête, suivi des mots contenant une information vraie. xx L'adresse virtuelle d'une sous-page est également exprimé sur 32 bits, (informations IND, AP, ASP), mais les 2 premiers n'ont pas de signification. IND : numéro du pli qui contient AMV AP t adresse, dans le pli IND, de la page qui contient la sous page visée ASP : numéro, dans AP, de la sous-page visée Les 30 bits qui suivent les deux premiers dans un mot d'en-tête ou une adresse virtuelle de sous-page, se répartissent en trois champs : NRDIND, BP et NRBS NRBP étant le nombre de bits nécessaires pour exprimer le nombre total de pages contenues dans la mémoire réelle et NRBS le nombre des bits qui expriment le nombre de sous-pages dans une page. Les paramètres NRBP et NRBS sont des constantes pour un espace donné.Ils ment varier en passant d'un espace à un autre et dans l'exemple considéré NRBP varie de 4 à 15 bits (16 à 32768 pages), NRBS de 0 à 5 bits (n à 32 sousrpages par page). Conte NRBIND nombre des bits necesraires pour exprimer le rapport entre la taille TV de la mémoire virtuelle et la taille TR de la mémoire réelle, c'est-à-dire le nombre total de plis) = 33 ^ NRBP - NRBS. NRBIt variera de 10 à 26 bits. Si l'on définit C5NRPjS o 5 - NRBS et #NRBIND = NRBIND - 10, il en résulte que C 5 NE BS rax = 5, donc s'exprime sur 3 bits et que #NRBIND max = 16 donc s'exprime sur 5 bits. La structure d'une adresse virtuelle est précisée à l'aide d'une information auxiliaire de 11 bits, appelée FORMAT, qui contient successivement: ESP : numéro de l'espace virtuel concerné, exprime sur 3 bits C 5 NPBS . exprime, comme on l'a vu, sur 3 bits #NRBIND exprimé, comme on l'a vu, sur 5 bits L'utilisation de la mémoire virtuelle que l'on vient de définir implique l'exécution de deux instructions, à savoir Lecture d'un mot appartenant à une sous-page de la mémoire virtuelle Ecriture Dans l'exécution de ces instructions, si la sous-page à laquelle on veut accéder n'est pas en mémoire centrale, ou si, alors qu'elle est en mémoire centrale, le chaînage qui permet de l'atteindre passe par une sous-page qui n'est pas en mémoire centrale, il est nécessaire de faire un accès disque. Dans ces deux cas, l'exécution des opérations sera commandée, de façon connue en soi, par des programmes et des micro-programmes. Par contre, si la sous-page et le chaînage qui permet de l'atteindre sont en mémoire centrale, c'est le HMV qui effec tuera la recherche de l'adresse en mémoire centrale (PAMV), qui correspond à AMV. On va expliquer brièvement, avant d'entrer dans le détail des circuits, comment HMV effectue cette recherche, sans intervention de l'unité de traitement. UT indique d'abord à HMV 11 adresse en hÇC où est rangée cette ANS, HMV lit AMV et 11 opérateur de découpage effectue, de la manière qui sera décrite plus loin, le découpage de AMV en trois chamois et, par un DECOUP0, la mémorisation initiale : mII\D, mAP et mASP, de ces trois champs. mAP est alors appliqué à la table de recherche TR, qui indique, comme on le verra dans la suite, si la page recherchée est ou non en mémoire centrale. Dans la négative, TR fournit un signal "défaut de page" DEFP et lé travail de HMV est alors terminé.Ce sont les programmes du mécanisme de mémoire virtuelle qui effectuent alors, de façon connue en soi, 11 apport de la page manquante en MC. HMV recommence ensuite son fonctionnement depuis le début (découoage). Lorsque mAP se trouve en MC, TR fournit le numéro du cadre correspondant NUMC au circuit de calcul de PADV. Pour faciliter la compréhension de ce calcul, on se réfèrera à la figure 3 qui représente l'organisation de la zone de MC affectée à la mémoire virtuelle. Le début de cette zone est délimité par l'adresse ABASE. L'adresse PAIV, qui représente à un moment donné la projection d'une adresse virtuelle en mémoire centrale, peut être calculée, dans cette configuration, avec la relation : PAMV = ABASE + NUMC x TP + ASP x (TP/2NRBS) où TP représente la taille d'une page, TPl2MRB5 la taille dune sous-page, ASP est fourni par l'opérateur D~COUP et NUMC par la table de recherche. Les multiplications qui apparaissent dans cette formule peuvent être réduites à des opérations de décalage si TP est une puissance de 2. Comme on le verra, ASP x TP/2NRBS = =#RASP est fourni par le circuit de découpage. Ayant ainsi l'adresse PAMV d'un mot d'en-tête MESP de sous-page, HMV lit ce mot d'en-tete en hC et l'interprète. Il est évident que, si la sous-page ainsi pointée est libre ou squatter, ctest que la sous-page virtuelle cherchée n'a pas été écrite ; le travail de HMV prend alors fin. Si la sous-page cherchée est seule ou tête de chaîne, 1sopérateur COMPARATEUR effectue les comparaisons 9 mIND = INDR (mAP, mASP) 2 (CAP, CASP). Dans le cas d'une sous-page seule, si mIN = INDR, on a la sous-page cherchée ; (mAP, mASP) = (CAP, cASP) signifie la fin de chaîne, Dans le cas d'une tête de channe, si mIND = INDR, il s'agit de la sous-page cherchée. Lorsque la sous-page cherchée (seule, ou tête de chaîne) a été trouvée, son adresse en mémoire centrale (PAMV), qui a été calculée par le circuit de calcul, est fournie à 1'UT à l'aide d'un micro-programme, de manière connue en soi. Dans le cas où mIND f INDR (tête de chaîne), HMV parcourt l'anneau de chaînage. A cet effet, HMV exécute une nouvelle consultation de la table de recherche, à partir du CAP de N & SP. Si la page contenant la sous-page suivante de l'anneau, définie par CAP, se trouve en mémoire centrale, TR fournit le numéro du cadre qui la contient; le circuit de calcul calcule 1'adresse en mémoire centrale du mot d'en-tête de cette sous-page suivante. Ce mot d'en-tête est à son tour découpé par le circuit de découpage et le INDR correspondant est comparé à mID., tandis que le couple (CAP, CASP) correspondant est comparé au couple (mAP, mASP). Si un mIND &num; INDR et (mAP, mASP) &num; (CAP, CASP), une nouvelle chante est parcourue par H&commat;V, c'est-à-dire que HMV effectue, comme précédemment, une nouvelle consultation de la table de recherche, un nouveau calcul de l'adresse, en mémoire centrale, du mot d'en-tête de la sous-page suivante, un découpage de ce nouveau mot dsen-tete et une comparaison. Si mIND # IND, mais (mAP, mASP) = (CAP, CASP), cela signifie que HMV a parcouru toute la chatne, et que la sous-page cherchée n'existe pas (fin de chaîne). Si mINE) = IND, (mAP, mASP) étant ou non égal au couple (CAP, CASP), c'est que la sous-page cherchée a été trouvée. On a vu que, dans ce cas, l' adresse en mémoire centrale de cette souspage est fournie à l'unité de traitement par un micro-programme appro prié. En conclusion, le HMV fournit, dans certains-cas dont on seuL montrer qu'ils constituent finalement une proportion majeure des cas réels d'exploitation, l'adresse en-memoire centrale qui correspond à une MCV donnée. En cas d'échec, Htîtj signale la nature de cet échec pour que les programmes de la mémoire virtuelle puissent prendre le relais. Pour l'écriture d'une information à une adresse virtuelle donnée, il faut d'abord effectuer une lecture à cette adresse A;v, ce à quoi coopèrera le HMV dans les mimes conditions que ci-dessus. Si la sous-page pointée par At-J est libre, on va y écrire l'information à introduire, qui se trouvera Dlacée en tête de carne, Si la sous-page pointée est une tête de chane, lorsque le Processus de lecture aboutit à la sous-page chantée cherchée, l'on y écrira l'information. Si le processus de lecture échoue (fin de chaÎne), l'on écrit l'information à l'adresse réelle libre qui suit le dernier squatter de l'anneau. Si le mot d'en-tête défini oar (AP, ASP) définit une Sous-nage squatter, l'on écrira 11 information dans cette sous-page et le squatter sera transféré à une autre adresse libre. Lors de l'initialisation de la mémoire virtuelle, tous les mots de la mémoire réelle, y compris les mots d1en-tête, doivent être effacés. Il est inutile de décrire plus en détail ces processus, dans lesquels les programmes interviennent de manière connue, et qui ne font pas partie de l'objet de l'invention. On va maintenant décrire des exemples préférés d'exécution des organes essentiels du HMV. La table de recherche est une mémoire associative, de préférence réalisée conformément à la demande de brevet français n0 75.12621 déposée le 23/4/75 par la Demanderesse, pour mémoire associative réalisée à partir de mémoires d'accès aléatoire On rappellera brièvement qu'une telle mémoire associative est composée d'une mémoire principale et de mémoires auxiliaires (par exemple 3), comportant chacune 64 mots de 18 bits. La mémoire orincipale contient les adresses des cadres de la mémoire centrale. Chaque adresse est un mot comprenant ESP INT (numéro de l'espace réel qui contient la page MR charqée dans le cadre considéré i : s'exprime sur 3 bits, ce qui correspond à 7 espaces réels, ESP INT = O signifiant, par convention, que le contenu du cadre i est effacé), suivi de AP INT (adresse de la page MR chargée dans le cadre i : s'exprime sur 15 bits unique NRBPmax - 15). TR recherche, parmi les 64 mots, un mot pour lequel RAP = API. T et dont ESPINT correspond au numéro de l'espace réel de la page définie par AMV0 En cas de réussite, le registre-compteur de TA fournit NUMC. En cas d'échec, le signal ECHEC signifie "défaut de page". La table de recherche reçoit l'adresse de page RAP de ltopérateur DECOUP, le numéro ESP de l'espace virtuel et un numéro de cadre NUMCEXT du bus interne, et une commande de mise en route TD. Elle élabore des signaux 'réussite" ou chacun (DEFP) qui dé clenchent les opérations ultérieures à sa consultation0 Enfin, elle envoie le numéro de cadre (NUMC) vers le bloc PAMV, en vue du calcul de PAMV. A titre d'exemple, la recherche peut s'effectuer en moyenne en 200 ns. Un mode d'exécution préféré de l'opérateur de découpage est illustré par la figure 4. L#opérateur de découpage DECOUP est un circuit original qui réalise le partage d'une Information de 30 bits (adresse virtuelle fi ou mot d'en-tête de sous-page MESP) en trois champs de bits, de dimension précisez à l'aide du FORMAT, dans le but d' obtenir le numéro du pli, l'adresse de la page et l'adresse de la sous-page. DECOUP (AMV) = (IND, AP, ASP) DECOUP (MESP) = (INDR, CAP, CASP). L'opérateur DECOUP réalise également le rangement des informations DECOUP(AMV) et DECOUP(MESP) à l'aide de trois opérateurs de rangement R. RIND, de taille 26 bits (égale à MRBINDmax) RAP, de taille 15 bits (égale à NRBPmax) RASP de taille 5 bits (égale à NEBSmax). L'opérateur DECOUP et les opérateurs auxiliaires mémorisent le découpage : mDECOUP (AMV) et la comparaison mDECOUP(AMV = DECOUP(MESP), pour élaborer des signaux : IDIND (identité des numéros de plis- entre le mot d'en-tête et l'information vraie), IDAPASP (identité des couples adresse de page et de sous-page pour le mot d'en-tête et l'information vraie). On a déjà expliqué le rôle de cette comparaison. Enfin, l'opérateur DECOUP réalise le décalage combinatoire du (RASP) vers la gauche, de C 5 NRBS bits, en vue du calcul de PAMV : (RASP) décalé --- (#RASP). L'information ANRBIND(O à 16 bits) est appliquée à un décodeur 1 à cinq entrées (numérotées O à 4) et seize sorties (nu érodes de O à 15). A titre d'exemple, il s'agit du modèle 74154 commercialisé par la Société Texas Instruments. Les sorties du décodeur 1 sont respectivement reliées aux entrées, numérotées 1 à 15, de quinze portes ET, dont cinq seulement, numérotées 2 à 6, ont été figurées. Plus précisément, les sorties O et 1 du décodeur sont reliées aux entrées de la porte 2, tandis que les portes suivantes sont reliées, d'une part chacune à la sortie de la précédente, dtautre part aux sorties respectives 2 à 15 du décodeur. Ces liaisons ont été figurées de manière simplifiée pour ne pas surcharger le dessin. On a indiqué, sur les entrées des portes reliées aux sorties du décodeur, le symbole LTM IND qui exprime, par le premier bit à O, la limite du champ de bits IND compté à partir du 9e bit de AMV. A titre d'exemple, si #NRB IND = 4, c'est-à-dire si IND comporte 14 bits, c'est le Se bit de LIM IND qui est à 0. Si l'on considère maintenant l'entrée de la porte 2 reliée à la sortie O du décodeur, et l'ensemble des sorties.1 à 15 des sortes 2 à 6, on obtient une information OSQUE qui, dans l'exemple considéré, sera 1111 000 000 000 00, puisque les portes transmettent O à partir de la cinquième. Seize inverseurs, dont deux seulement, numérotés 7 et 8 ont été représentés, sont respectivement reliés aux bornes MASQUE (numérotées O à 15). On obtient ainsi le complément MASQUE. Le premier champ de bits RItQD à séparer doit comporter, dans l'exemple considéré, les bits O à 13 de waJ, suivis de douze 0. On l'obtient en séparant les bits O à 9 de AMV (qui existent toujours dans IND, puisque sa taille minimum est 10 bits) et en réalisant l'intersection entre les bits 10 à 25 de AMV et l'information MASQUE. Dans l'exemple considéré, cette intersection fournira les bits 10 à 13 de AhS, suivis de douze 0. A cet effet, les 10 premiers bits de AMV sont directement transmis (par l'intermédiaire d'amplificateurs non figurés) sur les sorties O à 9 d'un circuit qui comprend par ailleurs seize portes ET, dont trois seulement, numérotées 9-10-11, ont été figurées. Ces portes reçoivent, sur une entrée, les bits respectifs 10 à 25 de AMV et, sur l'autre entrée, les bits respectifs 0 à 15 de VASQUE. L'ensemble des sorties O à 25 du circuit constitue le champ RING. A titre d'exemple, l'on supposera que C 5 NEBS = 2, ce qui signifie que NRBS = 3 bits, il en résulte alors, puisque AhlV comporte 30 bits, que AP comporte 13 bits. Le second champ de bits RAP à séparer doit comporter, dans l'exemple considéré, deux zéros suivis de 13 bits de AMV , tandis que le champ RAS doit comporter deux zéros suivis de 3 bits de AMVo La séparation s1 effectue de la manière suivante s En un premier temps, on réalise l'intersection entre les bits 10 à 25 de AMV et les bits O à 15 de MASQUE (au moyen de seize portes ET, dont deux seulement, numérotées 12 et 13, ont été figurées). On obtient ainsi une information désignée /AP, laquelle, dans 11 exemple considéré, comportera quatre zéros, suivis des bits 14 à 25 de AMV. En un second temps, on juxtapose, comme le montre la figure, /AP aux bits 26 à 29 de XflV, ce qui donne évidemment l'ensemble du champ (AP, ASP), puisque la présence de 4 zéros dans ASQUE signifie que les bits 10 à 13 de AMV font partie du champ IND. Toutefois, les 16 bits du champ AP, ASP sont précédés de 4 zéros. En un troisième temps, l'on sépare le champ RAP en prélevant les bits de AP, ASP à partir du C 5 NRBSième. Dans l'exem- ple considéré, cela revient à dire que Ipon prélève le troisième et le quatrième zéros, suivis des bits AMV14..26. Ce prélèvement est effectué à l'aide d'un multiplexeur 15 à vingt entrées (respectivement reliées aux 20 bits du champ (A?, ASP) et quinze sorties. Ce multiplexeur reçoit, sur ses entrées d'adresse AD, l'adresse C5NRBS = 2, qui signifie qu'il doit ignorer les deux premiers bits de (AP, ASP) et mettre en sortie les quinze bits qui suivent (dont les deux premiers sont des zéros, et les autres AMV14~26!. On décrira plus loin un mode d'exécution préféré d'un tel multiplexeur. Pour séparer le champ RASP et obtenir e RASP (c'est-àdire RASP décalé de C5NRBS bits vers la gauche), nécessaire, comme on l'a indiqué, au calcul de PAMV, on utilise un ensemble de multiplexeurs dont un mode d'exécution préféré est représenté à la figure 5. Dans l'exemple considéré, comme RASP est composé des cinq bits O - O - AMV27 - AMV28 et Au 29 #RASP sera composé de #RASP0 = AMV27 ; #RASP1 = et #RASP2 = AMV29. IJn premier multiplexeur Mi, adressé par C5NRBS, reçoit sur cinq de ses huit entrées AMV25, AMV26, AMV27, AMV28 et AMV29 reseectivement. Ses trois autres entrées sont reliées à la masse. Il fournit donc, sur sa sortie unique non reliée à la masse 29, AMV27 = #RASP0. Un second multiplexeur M2, adressé par C5NRBS, reçoit, sur ses quatre entrées, AMV26, AMV27, AMV28 et AMV29 respectivement. Il fournit donc, sur sa sortie unique, AMV28 = RASP10 Un troisième multiplexeur iY, adressé par C5NRBS, reçoit sur trois de ses quatre entrées (la quatrième étant à la masse), AMV27, AMV28 et AMV29 respectivement. I1 fournit donc, sur sa sortie unique, AMV29 = #RASP0. Un quatrième multiplexeur M4, également adressé par C5NRBS, reçoit. sur ses deux entrées, AMV28 et AMV29. Son entrée de validation G est reliée à la sortie d'un multiplexeur M13, dont les deux entrées reçoivent les deux premiers bits respectifs de C5NRBS. Comme le 2e bit de C5tEBS est, dans l'exemple considéré, égal à 1, la sortie de M13 est à 10 Il en résulte que l'entrée de validation G = 1, si bien que la sortie de M4 est mise à O. I1 en est de même pour la sortie des multiplexeurs , M6 et M7. Ms a deux entrées dont l'une à la masse, l'autre recevant AMV29 ; M6 a deux entrées dont l'une à la masse, l'autre recevant AMV25 et e a deux entrées, recevant chacune AMV26. On peut montrer que, dans tous les cas, M4 et M5 fournissent 0, M6 et M7 fournissant respective- ment RASP0 et RASP1. Le multiplexeur M9 a trois entrées reliées à la sortie de m10, et une quatrième entrée à la masse. Le multiplexeur Mlo a une entrée reliée à AMV27 et l'autre à la masse. Il fournit donc AMV27 sur sa sortie, si bien que M9 fournit AMV27 = RASP 2. De même, le multiplexeur M11 ayant une entrée à la masse, l'autre reliée à AMV28, fournit RASP3 = AMV28. Le multiplexeur M12 a une entrée à la masse, l'autre reliée à C5NRBS2 = O. Il fournit donc 0, qui est appliqué sur les entrées de validation G des multiplexeurs M8 et M9. Le multiplexeur M8 a quatre entrées reliées à AMv29, Si bien qu'il fournit AMV29 = RASP à sa sortie. Finalement, RASP et jRASP sont fournis sur les lignes Indiquées symboliquement Dar un trait unique au schéma. Les blocs des fiqures 5a-5b sont avantageusement cons- titués chacun par un multiplexaur commercialise par la Société Texas Instruments, à savoir : - pour le bloc M1, multiplexeur du modèle 74 LS 151 - pour chacun des blocs (M2, M3) et (M8, M9); modèle 74 L5 153 - pour checun des blocs (M1, M5, M6, M7) et (M10, M11, M12, M13) modèle 74 LS 157. A la figure 6, on a représenté un mode d'exécution préféré du multiplexeur 15 de la figura 4 et de son circuit d'entrée qui fournit AP, ASP à partir do /AP et AMV26-29. Le multiplexeur 15 comprend 15 multiplexeurs, numérotés M14 à M28, ayant chacun 8 entrées et une sortie et par exemple du modèle 74 151 commercialisé par la Société Texas Instruments. Deux des entrées de chaque multiplexeur sont à la masse. M14 reçoit les bits 10 à 15 de /AP, M15 les bits 11 à 16, M16 les bits 12 à 17, M17 les bits 13 à 18, M18 les bits 14 à 19, M19 les bits 15 à 20, M20 les bits 16 à 21 M21 les bits 17 à 2S, b M22 les bits 18 à 23, M23 les bits 19 à 24, M24 4 les bits 20 à 25, M25 les bits 21 à 25, M26 les bits 22 à 25, M27 les bits 23 à 25 et N8 les bits 24-25. Par ailleurs, M25 reçoit le bit 26 de AMV, M26 les bits 26-27, M27 les bits 26 à 28, et M29 les bits 26 à 29. Tous ces multiplexeurs sont adressés par C5NRBS.Il en résulte que, dans l'exemple considéré, M14 transmet à sa sortie AMV12, M15 transmet AMV12.. ; M21 transmet AMV22, M25 transmet AMV23 ... et M28 transmet Les autres blocs de HMV représentés à la figure 1 ne seront décrits que brièvement, leur réalisation étant à la portée de l'homme de 11 art. L'interface 1BG est un ensemble logique composé de portes et de bascules. I1 gère les échanges d'information entre UT et HMV et entre BG et BI et élabore les commandes spécifiques nécessaires pour l'exécution des différentes fonctions de HMV. IBG, en tenant compte de l*'évolution du traitement, réalisé notamment par les autres blocs de HMV, élabore la réponse RES et mémorise les fonctions que H?CV doit exécuter. IBG réalise, quand cela est nécessaire, l'autoblocage de HMV et peut réaliser un échange d'informations avec UT pendant que HMV exécute un traitement quelconque. L'interface IBM est un ensemble logique composé de portes qui gère les échanges directs d'information entre HMV et la mé moire centrale MC, engendre l'accès cyclique en lecture ou en écriture en mémoire centrale, assure le transfert, dans BI, des informations lues en MC, l'écriture en MC de résultats du découpage d'une information effectuée par le bloc DECOUP, l'écriture d'une adresse en mémoire centrale AMC dans le registre CAM-compteur d'adresses en mémoire centrale, et l'incrémentation de 1 de ce registre-compteur. Le bus interne BI mémorise et distribue, aux blocs appropriés de HMV, les informations reçues par BG ou BM, a savoir A BASE - FORMAT - AMV. L'information NUMCEXT est mémorisée au niveau de TR. Le bus interne BI recueille, et mémorise au besoin, tous les résultats du travail de HMV (sauf celui du bloc DECOUP) pour les transmettre vers UT. Il s'agit notamment de NUMC, RESUL (résultant de la recherche d'une sous-page), PAMV, APINT et MOD. PAMV comporte un circuit additionneur classique de 16 bits, et un bouchon (c'est-à-dire un ensemble de liaisons facilement modifiables qui s'enfichent dans un connecteur), a l'aide duquel on réalise le décalage de NUMC en tenant compte de la taille de page. Il va de soi que des modifications pourront être apportees aux circuits décrits, sans s'écarter de l'esprit de l'invention. REVENDICATIONS 1. Dispositif de recherche, dans une mémoire réelle, de l'information correspondant à une adresse virtuelle de finie par une pluralité de bits comportant au moins trois champs de longueurs variables, dont le premier est un indicatif d'un pli de l'espace virtuel, le second une adresse de page et le troisième une adresse de sous-page, la structure de cette adresse virtuelle étant pré~ cisée par une information de format comportant un numéro d'espace virtuel, le nombre total de plis et le nombre de sous-pages contenues dans une page, à chaque information vraie contenue à une adresse de sous-page de mémoire réelle, étant associée une information de controle comportant également trois champs de bits de longueur variable, le premier étant l'indicatif du pli qui contient une sous-page virtuelle, le second et le troisième l'adresse de page et de sous-pages réelles contenant l'information vraie suivante d'un anneau de carnage, caractérisé, , en combinaison, par un circuit de découpage qui sépare ces trois champs et les range en tenant compte de leurs poids faibles, par une mémoire associative reliée au circuit de découpage et recevant le second champ, ladite mémoire associative comportant des unités de stockage des adresses des pages chargées dans la mémoire réelle et des moyens de fournir l'une de ces adresses lorsqu'il y a coincidence entre ledit second champ et l'une desdites adresses, un circuit de calcul d'une adresse de sous-page dans la mémoire réelle reliée à â la mémoire associative et au troisième champ de sortie du circuit de découpage, des moyens effectuant une lecture de la mémoire réelle à l'adresse de sous-page calculée et des moyens de comparer les premiers champs de l'information de controle contenue à l'adresse lue dans la mémoire réelle à-celui de l'adresse virtuelle, de signaler la réussite ou l'échec de cette comparaison et, en cas d'échec, de ré-introduire ladite information de controle dans le circuit de découpage. 2. Dispositif selon la revendication 1, caractérisé en ce que ledit circuit de découpage comprend un décodeur apte à recevoir sur ses entrées ltexcédent, par rapport à un minimum, du nombre des bits nécessaires pour exprimer le nombre de plis et à faire passer à O celles de ses sorties dont le rang correspond audit excédent, des organes logiques aptes à effectuer des intersections successives entre les sorties du décodeur, pour produire une information MASQUE comportant un nombre de Z1" égal audit excèdent, suivi de zéros et produire l'informatior complémentaire MASQUE, des moyens de juxtapcser les premiers bits de l'adresse virtuelle considérée, en nombre correspondant au nombre de bits nécessaire pour exprimer le nombre minimal de plis, suivis des bits fournis par l'intersection entre l'information MASQUE et les bits suivants de l'adresse virtuelle considérée pour former le champ de bits correspondant au nombre de plis, des moyens d'effectuer ltintersection entre ltinformation MASQUE et lesdits bits suivants de adresse virtuelle considérée et des moyens de juxtaposer l'information résultant de cette dernière intersection avec les derniers bits, non encore utilisés, de ltadresse virtuelle considérée, pour former un champ de bits intermédiaire, des moyens de séparer le champ de bits correspondant â l'adresse de pages, en prélevant, par décalage réalisé avec des organes multiplexeurs, les bits dudit champ intermédiaire, à partir d'un rang défini par lvexcédent, par rapport à un maximum, du nombre des bits nécessaires pour exprimer le nombre de sous-pages contenues dans une page et des moyens logiques, réalisés avec des organes multiplexeurs, pour sélectionner, de la droite vers la gauche, à partir du rang défini par l'excédent, par rapport à un maximum, du nombre des bits nécessaires pour exprimer le nombre de sous-pages contenues dans une page, parmi les derniers bits de ladite pluralité, le champ de bits correspondant à l'adresse d'une sous-page, les autres bits étant mis à zéro. 3 Dispositif selon la revendication i ou 2, caractérisé en ce que ledit circuit de découpage-comporte des moyens de foTirnir, audit circuit de calcul d'une adresse de sous-page dans la mémoire reelle, le produit du numéro dans la page, de la sous-page visée, par la taille de sous-page, produit effectué par une opé- ration de décalage, la taille de page étant une puissance de 2. 4. Dispositif suivant la revendication 3, caractérisé en ce que ledit produit est obtenu par décalage vers la gauche, au moyen de multiplexeurs, d'un nombre de bits égal à l'excédent1 par rapport à un maximum, du nombre des bits nécessaires pour exprimer le nombre de sous-pages contenues dans une page, du champ de bits correspondant à l'adresse de la sous-page considérée.