FR 2337373 A1 19770729 FR 7540358 A 19751231 L'invention se rapporte à un dispositif diadressage de la mémoire d'une unité de traitement de l'information à partir de l'adresse syllabique de l'information. #n multitraitement de l'information il est nécessaire de prendre certaines précautions pour éviter l'émiettement de la mémoire centrale dO aux divers chargements et renvois des données et des programmes en mémoi re centrale ou en mémoires auxiliaires Chaque utilisateur dispose pour son programme d'une mémoirevirtuelle dtun seul tenant qui n'est pas limitée par la capacité de la mémoire centrale mais qui par contre se trouve limitée par la capacité diadressage de l'instrudion. Le programme écrit en mémoire virtuelle, est implanté dans lssmémoi- res auxiliaires et dans la mémoire principale sous le contrôle du système diexploitation . Seules les adresses en mémoires virtuelles sont connues de l'utilisateur Les techniques de pagination bien connues 1 permettent de ne pas avoir à charger en mémoire centrale les segments ou les ensembles de données d'un seul tenant .Seuls ne sont chargés en mémoire centrale que les fragments des mémoires virtuelles ou pages strictement indispensables au déroutement instantané desprogrammes des utilisateurs La correspondance entre les.pages de la mémoire virtuelle et le s pages des mémoires auxiliaires qui forment un ensemble hiérarchisé à plusieurs niveaux ou entre les pages de la mémoire virtuelle et celles de la mémoire centrale, est le fait du système diexploitation qui met à jour les t abl es correspondantes Les systèmes de pagination clas#siques connaissent deux sortes de di f ficultés , qui tiennent au fait que l'espace de la mémoire virtuelle de chaque utilisateur est limité par la capacité diadressage de l'instruction et au fait que le système d'exploitation doit effectuer des longuesrecherches plans les tables, pour obtenir la correspondance entre adresse virtuelle et adresse réelle Les systèmes de pagination liés au concept de la segmentation résolvent en partie ces difficultés . Généralement l'espace virtuel est part agé en deux niveaux , qui sont, le niveau des tables de segments et le niveau des tables de pages .La réintroduction du concept de segmentation donne à l'utilisateur la possibilité de manipuler de très grands fichiers sans avoir à se soucier de leur implantation dans la mémoire centrale ou dans les tnémoi- res auxiliaires . Par contre la transformation de l'adresse virtuelle en une adresse réelle est plus compliquée qu'en segmentation simple.Le système d'exploitation doit définir l'endroit où se trouve le segment et l'endroit ou se trouveules pages, généralement deux algorithmes différents sont nécessaires pour permettre ces localisations car la définition des différentes tables de segments- d'une part et pages diautre part amène à construire des structu res de tables différentes La pagination reste délicate lorsque le segment partagé se trouve en des endroits différents de la mémoire centrale où de la mémoire auxiliai - re Pour résoudre ces difficultés, l'invention a pour but une nouvelle technique de pagination dans un contexte de segmentation qui a les carac téristiques suivantes. Elle fait correspondre de façon biunivoque l'espace des segments et l'espace des pages en rendant ainsi plus aisée l'affectation de l'espace virtuel dans t'espace réel La page dans le dispositif de l'invention est un morceau de mémoire qui peut se trouver soit en mémoire interne soit en mémoire externe et qui ne peut être divisée . Elle constitue l'unité de mesure pour un segment le segment peut comporter un nombre entier de pages ou une page peut comporter un nombre entier de segments Selon l'invention un segment mis en pages est reconnu du système d'exploitation par une position de bit particulière de son descripteur de segment Le dispositif de calcul d'adresse selon l'invention fait correspondre de façon biunivoque l'adressage des tables de pages avec l'adressage des tables de segments .Ceci a pour principal avantage l'utilisation par le système d'exploitation d'un seul algorithme . Il constitue une structure i intégrée dans laquelle la réservation de l'espace réel se fait au meme instant au niveau des tables de pages et des tables de segments La figure 1 montre l'affectation des pages de la mémoire virtuelle de l'utilisateur dans l'espace réel Les figures 2A et 2s montrent le cheminement d'adresse pour obtenir une adresse réelle à l'intérieur d'une page de I'espace réel La figure 3 montre une architecture simplifiée diun calculateur numérique utilisée selon l'invention La figure 4 est une réalisation détaillée de IIATU La figure 1 montre l'affectation des pages de la mémoire virtuel le de l'utilisateur dans l'espace réel L'espace virtuel de l'utilisateur représenté par le rectangle 100 sur la figure représente un segment du programme utilisateur . Dans ltexem- ple de la figure, le segment a une longueur de 10K octets découpé en pages de 2 K octets chacune, les pages étant référencées dans le segment par les nombres 1,2,3,4,5. Le point B à gauche du rectangle 100 représente la base du segment .L'adresse diun octet dans le segment est référencée par rapport à la base du segment, sa distance est représentée par SRA , abréviation du terme anglo-saxon (segment relative address) L'adresse à l'intérieur d'une page dans l'espace virtuel est désignée par P R A la longueur d'une page dans l'exemple choisi est de 2K octets et sera adressée par un mot P R A de 11 bits L'adresse S R A peut donc se décomposer en un numéro de page PTE et en une adresse P RA à l'intérieur de la page . Sur la figure, la page i est référencée par PTE = 0 , la page 2 par PTE 2 1 etc .....s'il existait ième n pages dans le segment la n page serait adressée par PTE = n - 1.En cours de traitement le système d'exploitation peut s'intéresser à un morceau de programme s'étendant sur une ou plusieurs pages . Le passage d'une pa ge à la suivante s'effectue en incrémentant P T E diun e unité et en remettant PR A à zéro. Ce passage se fait automatiquement si l'adresse S RA est codée en binaire naturel .Ainsi pour l'élément A de la mémoire de la figure 1 qui couvre les 3 derniers octets de la page 3 et les 4 premiers octets de la page 4 , l'adresse du premier octet dans la page 3 est à une distance SRA =6141 de la base B du segment ou a une distance 211 - 3 = 2045 du début de la page 3 référencée par PTE = 2, adresse du dernier octet est à une distance SRA = 6148 delabase B du segment ou a une distance 22 = 4 du début de la page 4 référencée par PTE = 3 .Autrement dit SRA est la juxtaposition ou concaténation des 11 bits de PRA servant à adresser un octet à l'intérieur d'une page et des bits de PTE servant à référencer une page Pour un. mot SRA de 24 Bits, la juxtaposition SRA = (PTE ,PRA) implique si le mot PRA contient 11 bits, un mot PTE de 13 bits capable de désigner 213 = 8192 pages . La disposition des pages dans l'espace réel peut avoir n'importe quel ordre . La figure 1 fait apparaitre la correspondance des pages de l'espace virtuel dans l'espace réel . Ainsi la page 1 de l'espace virtuel se trouve placée entre la page appartenant à un autre segment qui peut appartenir au même programme de llutilisatéur ou un programme d'un utilisateur différent et entre la page 3 du même segment. La page 5 se trouve disposée entre les pages 1 et 3 . La page 2 se trouve à la suite de I a page 3. La page 4 est placée avant la page d'un autre segment diuti lisateur. Les flèches repérées par a, b, c, d, e montrent les correspondances respeci%ves des pages 1,2y3,4,5 entre les 2 espaces virtuel et réel . La corr#espondance des pages de l'espace virtuel, avec les pages de l'espace réel, est assurée par le système d exploitation et par un ensemble de tables qui est représenté par les figures 2A et 2B. La figure 2A représente de façon simplifiée le cheminement diadresse du dispositif de pagination selon l'invention Su r la figure l'élément 200 représente le bloc de contrôle de processus PCB qui est un espace de la mémoire principale servant de zone de stockage des informations nécessaires à l'exécution diurne tâche comprise à llinté- rieur d'une étapedkntravail que l'utilisateur veut effectuer . Le dispositif de l'invention prévoit 2 mots à l'intérieur du PCB qui sont désignés sur la figure ASW et VSW à l'intérieur des aires de mémorisation 205 et 208. Ces mots ont tous les deux la même taille Le mot ASW désigne une table de descripteur de tables de segments STWA alors que le mot VSW désigne une table de descripteurs de tabl es de pages . Les rectangles 201 et 203 représentent respectivement une table de descripteurSde tables de segments STWA et une table de descripteurs de table pages P T WA . Le rectangle 206 à l'intérieur de la table 201 représente un descripteur d'une table de segmentS le rectangle 209 à l'intérieur de la table 203 représente un descripteur d'une table de pages .L'adresse d'un descripteur de table de segments l'ihérieur de la table STWA 201 ainsi que l'adresse d'un descripteur de page à l'intérieur de la table PTWA 203 s'obtient par indexation du même nombre STN à l'adresse de base de chacune des deux tables . Ce no mbre STN commun à l'adressage des deux tables STWA et PTWA désigne ordinairement un numéro de table de segment dans le cas d'une segmentation simple . Les descripteurs 206 et 209 pointent ensuite respectivement vers les entrées d'une table de segment repérée par 202 et vers l'entrée diune table de pages repérée par 204 . Le descripteur de segment 207 est obtenu en ajoutant à la base de la table ST une adresse STE d'entrée à l'intérieur de latable .Le descripteur de page 210 est obtenu en ajoutant à la base de la page PT une adresse PTE d'entrée à l'intérieur de la table de pages . Le cheminement diadresse ainsi décrit fait apparaître la parfaite similitude entre les moyens d'adressage respectifs de segments et des pages, un seul algorithme de développement adresse est donc n ces saire La figure 2B montre de façon plus détaillée le cheminement d'adresse du dispositif selon l'invention L'élément 201 de la figure représente un registre dans lequel se trs ve placée l'adresse syllabique d'une instruction qui comprend un champ BR altarl.t du bit 13 au bit 1.5 et ta partieadresse allant du bit 17 au bit 31 repérée par la lettre D . Les 3 bits de la zone BR, sont décodés par le décodeur 202 relié au registre 201 par le bus 204 afin de sélectio nner un des 8 registres de base contenu dans le banc des registres 203.La capacité d'un registre de base est de 32 bits et il comprend 3 champs décomposés enwun champ STN 207 permettant de sélectionner un descripteur de tables de segment dans une table STWA et un descripteur de table de page dans une table PTWA un champ STE 208 permettant de s#lectionner un descripteur de segment dans une table de segment et un champ OFFSET 209 de 22 bits . Les cont enus de la zone D de l'adresse syllabique et de la zone OFFSET du registre de base sélectionné sont additionnés dans l'additionneur 212 relié d'une part aux bascules 10 à 31 du registre BR sélectionné par la liaison 211 et d'autre part aux bascules 17 à 31 du registre .201 par la liaison 205.Le résultat de l'addition est un mot binaire de 22 bits désigné par SRA représentant l'adresse ou relative dellinstructionte la donnée à l'intérieur du segment . Le rectangle 200 représente le bloc de contra le du processus dans lequel sont figurés les mots ASW -et VSW 214 et 216. Le mot ASW contient l'adresse d'une entrée de table STWA 221 désignée par le pointeur 219 . Le contenu de ASW est aussi additionné au contenu STN du registre de base sélectionné dans l'additionneur 220 pour donner l'adresse d'un descripteur de table de s egment STD 222 à l'intérieur de la table STWA. Ce descripteur contient l'adresse de début d'une table de segment ST 226 désignée par le pointeur 223 .Le contenu du mot STD est aussi ajouté au contenu STE du registre de base sélectionné dans l'additionneur 225 pour donner l'adresse diun descripteur de segment DS à l'intérieur de la table de segment ST. Le contenu du descripteur de segment DS contient un bit 227 désigné par PG et un champ 228 de 21 bits représentant la base du segment . Un additionneur 230 additionne.#l e contenu de la base du segment et de l'adresse relative à l'intérieur du segment pour donner l'adresse absolue de l'instruction ou de la donnée dans l'espace mémoire .Une entrée de liadditionneur 230 est reliée à la sortie de l'additionneur 212 par la liaison 213, l'autre entrée est reliée au champ de base du descripteur de segment par la liaison 229 et la sort i e est reliée à un registre 231 dans lequel est rangé le résultat de l'addition BASE + SRA constituant l'adresse absolue à l'intérieur du segment . Si l'adresse syllabique comprend une indexation Idole lecontenu K du champ IDX dans le registre 201 est ajouté au contenu du registre 231 représentant l'adresse absolue dans l'additionneur 232 pour donner l'adresse absolue du Kème Octet situé à une distance K de l'octet dés igné par SRA dans I e segment . Le résultat de cette addition est chargé dans le registre 233 ayant une capacité de 24 bits, le poids faible étant à droite du regi stre Les 11 premiers bits sont chargés dans le registre PRA 235 et les 13 suivants sont chargés dans le registre PTE 234. Le contenu du registre PRA correspond à l'adresse diun octet à l'intérieur d'une page ; la page étant désignée par la contenu du registre PTE.Les pages sont rangées dans la table des pages PT 243 appartenant au segment si le segment est lui-même pagé . La table de pages est désignée par un pointeur 241,obtenu à partir du contenu diun descripteur de table de pages 240 de la table des descri pteurs de pages PTWA 239.L'adresse physique de la table de pages PT 243 n'est accédée par le pointeur 241 que si celui-ci est autorisé par le conditionneur 250 commandé par le bit PG =1 du descripteur de segment L'adresse physique de la table PTWA 239 est obtenue par le contenu du mot VSW 216 trouvé dans le PCB 200. L'adresse physique du descripteur de la table de pages PTD 240 est obtenue par addition au contenu du mot VSW 216, au mot STN du registre de base sélectionné, dans l'additionneur 250 de façon identique à l'ob- tention de l'adresse du descripteur de table de segment STD 222. L'adresse de la page est trouvée à l'intérieur de la page PT 243 par addition du contenu du descripteur de table de pages PTD au contenu PTE du registre 234.Le résultat de l'addition désignant alors l'adresse du descripteur de page 244. Le contenu du descripteur de page 244 désigne l'adresse physique de la page 247 par le pointeur 245. L'adresse de l'octet à l'intérieur de la page 247est alors obtenue par le pointeur 238 à partir du contenu du registre PRA 235. La figure 3 montre une architecture simplifiée d'un calculateur nu mérique utilisée selon l'invention Le calculateur est organisé autour de deux bus ,un BUS A 348 pour l ladressage de la mémoire vive MMU 300, un BUS M 349 ou bus mémoire pour le transfert des mots lus ou écrits dans la mémoire MMU 300. Il comprend les principaux éléments suivants - une mémoire vive à lecture écriture appelée MMU 300 pour la mémorisation des programmes des utilisateurs, de certains micro-programmes de la machine et des données au fur et à mesure de l'exécution des programmes. - une unité de trans I ation d'adresse ATU 330 permettant dans certaines conditions ,d'obtenir instantanément à partir de l'adresse syllabique de l'instruction, l'adresse physique de la page contenant l'instruction. - une unité arithmétique et logique ALU322 permettant d'effectuer les 4 opérations arithmétiques d'addition > de soustraction, de multipli ca- tion ou de division ainsi que des opérations logiques telles que inter-section > union, complémentation, décalage à droite ou à gauche, du contenu de liaccumulateur, tests d'états du registre accumulateur ......... - un organe de commande OC 317 comprenant un séquenceur câblé ou microprogrammé pour générer les microcommandes nécessaires au fonct ion nement du calculateur - un registre dlinstruction I 324 - un banc de registre de travail 332 permettant la mémorisation tem- poraire diadresses ou de données au cours de l'exécution des programmes des utilisateurs - un banc de registres~306 contenant les registres de base nécessaires à llobtention des tables de segments adressées à partir du contenu de l'adresse syllabique de l'instruction du programme utilisateur - un registre BRN 309 contenant l'i:nformation lue dans le banc de registre 306 . La mémoire MMU 300 est reliée àun registre de sélection diadress es S 301 et à un registre de lecture écriture M 302 contenant la donnée lue ou écrite dans la mémoire MMU 301 . Un cycle de mémoire est commandé par l'entrée 2 recevant la microcommande DCM (Demande de cycle mémoire) venant de l'organe de commande OC 317 Une lecture mémoire est commandée par ltentrée 3 recevant la mi croco mmande LEC (lecture) venant de l'organe de commnande OC 317 . Une écriture est commandée par l'entrée 4 recevant la microcommande ECR (écriture ) venant de l'organe de commande OC 317 Lbrgane de sélection S 301 reçoit l'adresse de l'unité de translation d'adresse ATU 330 par l'intermédiaire de la porte 303 . L'entrée 2 de la porte 303 est reliée à la sortie 4 de ItATU 330 . L'entrée 1 de la porte 303 reçoit le signal ES2 de microcommande de transfert de l'adresse au travers de la porte 303 . La sortie 3 de la porte 303 est reliée à l'entrée 1 de l'or- gane de sélection S 301. La part i e adresse d'une instruction est traitée au travers d e l'unité de translation d'adresse ATU 330 . L'entrée 1 de l'ATU reçoit la partie adresse de 'instruction venant de la sortie 3 de la porte 328 validée sur son entréel parle lesignal ES1 de microcommande venant de l' organe de commande OC 317. L'entrée 2 de IIATU est reliée à une bascule d'état FPG 347 par l'entrée 4 de l'unité arithmétique logique par l'intmédiaire de la porte 329 recevant sur son entrée 1 le signal de microcommande de validation EPG L'entrée 3 de l'ATU communique avec la partie RSTN 310 du registre BRN 309 par l'intermédiairedelaporte331 recevant sur son entrée 1 lesi- gnal de microcommande de validation ESTN L'entrée 1 de l'unité arithmétique logique 322 peut recevoir un mot de données ou un mot d'adresse. Elle communique avec les sorties 3 des portes 316 et 320 .La porte 316 transfère un mot de données lorsqu'elle est validée par le signal de microcommande ENT1 sur son entrée 1, la porte 320 trans met un mot d'adresse lorsqu'elle est validée par le signal de microcommande ETAD sur son entrée 1. Les signaux ETAD et ENT1 sont transmis à partir de l'organe de commande OC 317 L'entrée 2 de llALU 323 peut recevoir un mot de données ou un mot de commande , elle communique avec la sortie 3 de la porte 319 dont I 'entrée 2 communique avec les sorties multiplexées du banc de registre 332 lor-sque l'entrée 1 est validée par le signal de microcommande ENT1 La sortie 4 de l'ALU transmet l'état de la bascule FPG .Les entrées 5,6,7,8. 9 reçoivent les signaux de microcommandes EACC (signal d'écriture dans l'accumulateur ) ADD (signal d'addition) , INC (signal dlin- crémentation, NOP ( signal ne rien effectuer) SUB (signal de soustraction), de commande OC 317. L'organe de commande OC 317 transmet les signaux de microcomman- de par sa sortie 2 à tous les éléments du calculateur, et interprète le code opération de l'instruction arrivant sur son entrée 1. L'entrée 1 de OC étant reliée à la partie 325 du registre d'instruction 1324 contenant le code opération de l'instruction Le registre d'instruction I 324 est un registre à une entrée et deux sorties L'entrée 1 du registrerest reliée à la sortie 3 de la porte 321, qui -est reliée sur son entrée 2 au bus M. L'instruction présente sur le BUS M est transmise au regiStre d'instruction par le signal de microcommande E appliqué sur l'entrée 1 de porte 321. La sortie 2 du registre I est reliée à l'entrée 1 de l'organe de commande 317, et à l'entrée 2 de la porte 308 qui est reliée par sa sortie 3 à l'entrée du registre SBR 307 de sélection des registres de base du banc de registre 306 .La sortie 2du registre Transmet le code opération de I 'instruction Le banc de registre de travail 332 se compose de 7 registres R0 à R 6 Les entrées des registres Ro à R6 sont multiplexées par les portes 333 à 339 . Les entrées 2 des portes 333 à 339 sont reliées à la sortie 3 de I lunité arithmétique logique ALU 322 , transmettant le contenu de l'accumulateur ACCU 323. Le transfert du contenu de l'accumulateur dans un des registres Ro à R6 est commandé par un des signaux de microcommande ERO à ER6 appliqués respectivement aux entrées des portes 333 à-339, et générés par la sortie 2 de l'organe de commande OC 317. Les sorties des registres Ro à R6 sont multiplexées par les portes 340 à 346 . Les sorties 3 des portes 340 å 346 communiquent avec - le BUS A 348 par l'entrée 2 de la porte 351, lorsqu'elle est com mandée sur son entrée 1, par le signal de microcommande SRN venant de la sortie 2 de l'organe de commande - le BUS M 349 par l'entrée 2 de la porte 318, lorsqu'elle est commandée sur son entrée 1 par le signa I de microcommande ELM venant de I a sortie 2 de ltorgane de commande - l'entrée 2 de l'unité arithmétique logique ALU 322, par la porte 319; lorsqu'elle est commandée sur son entrée 1 par le signal de microcommande EN1 venant de la sortie 2 de l'organe de commande OC 317 . Le banc de registre 306 se compose de 8 registres BRo à BR7 s électionnés par l'organe de sélection SBR 307 qui décode un champ du code opé raticide l'instruction syllabique > lorsque celui-ci est appliqué à l'entrée 2 de la porte 308 . Le transfert de ce champ dans l'organe de sélection est commandé par le signal de commande EBR appliqué sur l'entrée 1 delaporte 308 et venant de la sortie 2 de lorgane de commande OC 317 , l'écriture dans les registres s'effectue par l'entrée 2 qui communique avec le BUS M 349, au travers de la porte 305 commandée sur son entrée 1 par le signal EBRN venant de la sortie 2 de l'organe de commande OC 317 .La lecture des registres se fait après selection dans le registre BRN 309 composé de 3 éléments, un élément du registre RSTN 310 pour la mémorJsation du numéro de segment STN , un registre RSTE 311 pour la mémorisation du numéro d'en trée STE dans la table de segment, un registre ROFF 312 pour I a mémorisation de l'adresse de décalage de l'instruction .ou de la donnée par rapport à la base du segment . Les éléments de registre 310,311,3l2communiquent avec le BUS M au travers des portes 313,314,315 respectives lorsqu'elles sont commandées respectivement sur leur entrée 1 par les signaux de microcommandes SSTN, SSTE,SOFF, venant de la sortie 2 de l'organe de commande OC 317. Le développement d'adresse dans un espace pagé objet de l'invention se fait à l'aide des éléments du calculateur qui viennent dl8tre décr its et des microprogrammes implantés en mémoire morte de l'organe de commande. Les microinstructions inscrites en mémoire morte de l'organe de commande génèrent les signaux de microcommande qui viennent dl8tre décrits . En début de séquence on supposera que le pointeur ASW de la table STWA est contenu dans le registre R5 et que le pointeur VSW se trouve dans le registre R6. En fin dexécution diune instruction de programme, le registre R0 est mis à jour pour recevoir l'adresse de l'instruction suivante Le microprogramme pour le développement de l'adresse pagée est le suivant Adresse Mi croi nstruction Mi crocommandes Opération 0100 (S)) (Ro) SR0,SRN,ES1,ES2 Recherche de l'instruction charger R0 dans S 0101 (M M)# (S) LEZ, DOM Demande d'un cycle mémoi re et de lecture résultat dans M 0102 I Calcul de l'adresse de l'ins truction indiqué par l'ins truction contenue dan 0103 SBR SBR Sélection diun registre BR, Le contenu du registre sé lectionné est transféré dans BRN . 0104 ACC -R5+ACC SR5,ENT2 Faire ASW + STN = adres ADDA2,5TAD1 se de STD ES11 ES2 Ajouter le contenu de R5 à celui de l'accumulateur; placer le résultat dans S. 0106 M6S LEC, DCM Transférer l'adresse de STD dans M Demander un cycle mémoire de lecture 0107 ACC SRM, ENT Transférer le contenu de M dans ACC 0110 S ADDA1,STAD du descripteur de segment ES1, ES2 Ajouter au contenu de l'accumulateur le con tenu de RSTE et placer le résultat dans S 0111 M descripteur de segment dans M Demander un cycle de mé moire de lecture 0112 ACCtROFF SOFF, ENT Transférer le contenu du registre ROFF dans ACC 0113 R ADDA, ER1 Ajouter le contenu de AD au contenu de ACC et placer le résultat dans R1. 0114 ACC descrip-- teur de segment d ans ACC 0115 FRG dans le basculeur FPG 0116 ACC SR1,ENT2 BASE + SRA = adresse ADDA2 absolue Additionner le contenu registre de R1 au contenu du/ACC, du bit 8 sur une longueur de 24 , placer le résul tat dans ACC. 0117 I SRAD,ETAD Adresse absolue + K. ADDA1,ER1 Ajouter le contenu du registre 1DX au conte nu de liaccumulateur et placer le résultat dans R1. 0120 FPG = 1 BR 200 Faire un branchement à l'adresse 200 si FPG = 1 0121 , Recherche et traitement de l'opérande puis pré parer l'instruction sui vante 0200 ATU > ##RSTN ESTN Transférer STN dans un registre de l'ATU. 0201 ATU COM 1 BR300 Si COM = 1 l'adresse de la page est dans la mémoire associat ive de I' ATU Si COM = 0 passer à l'adresse suivante 0203 ACC ~ SSTN, ENT1 Transférer STN dans ACC 0204 S ADDA2,STAD de PTD ES1, Es2 Ajouter le contenu de R6 au contenu de AC C mettre le résultat dans S. 0205 M de PTD dans M . De mander un cycle de lec ture mémoire 0206 ACC#M SRM,ENT Transférer PTD dans ACC. 0207 S4EACC+R1 (11;12) SR1,ENT2 Ajouter au contenu de ADDA2 ACC lecontenu du re gistre R1, du bit 11 sur une longueur de 1 2 Faire PTD + PTE. 0210 M contenudePD d e I a mé moire à l'adresse PTD + PTE Faire une demande de cycle mémoire de lec ture. 0211 ACC(0:11)R1(0:11) SR1ENT2 Transférer les 1 1 pre miers bits de l'adres se absolue correspon dante à PRA dans les 11 premiers bits de ACC. 0212 ACC(11:12) ACC du bit 11 sur une longueur de 12 . 0213 S# ACC STAD, ES1, ES2 Transférer ACC dans S, 0214 M re désignée l e numéro de page et PRA l'a- dresse physique de l'instruction. 0215 Recherche et trait e ment de l'opérande puis prd- parer l'instruction s ui vante. Le microprogramme qui vient d'être décrit comprend à l'adresse 0202 une microinstruction de branchement si respectivement l'état de la bascule FPG, > le numéro STN et J'adresse syllabique sont déjà contenus dans la mémoire associative de l'unité de translation d'adresse ATU 330. La mémoire associative est mise à jour pour chaque nouvel ensemble de valeur PG,STN et AD qui correspond à un nouveau numéro de page .Si une page a déjà été référencée par l'ensemble PG,STN et AD lors d'un développement d'adresse précédent, son numéro est conservé dans la mémoi re associative de IIATU et toute nouvelle référence pour ce groupe de valeur à I a mémoire associative redonnera le mesne numéro de page, ceci évite naturellement de redérouler le microprogramme qui vient dfetre décrit La figure 4 donne un exemple de réalisation de l'unité de translati on adresse ATU 330 . Elle se compose d'une mémoire associative 400.La mémoire associative utilisée est composée de cellule de mémoire que l'on peut se procurer chez les fabricants de circuits intégrés, ce peut être par exemple la mémoire associative MC 1682 ou MC 1683 de Motorola ou la mémoire 4102 de Fairschild Lorsqu'unie nouvelle page a été référencée à laide du microprogramme précédemment décrit, son adresse est mémorisée dans la zone 403 de la mémoire associative en #me temps que les numéros STN et PTE qui la ont servi zréférencer STN est introduit #dans la zone 401 et PTE dans I a zone 402. Les numéros STN et PTE ainsi que l'adresse de la page sont introduits dans IIATU par le BUS A 348 de la figure 3.Le BUS A est relié dans IIATU aux entrées de trois portes 406 ,407 et 408. La porte 405 reçoit le numéro STN et est reliée à la sortie 2 du registre BRN 309 de la figure re 3 . La sortie 4 de la porte 405 est reliée à la zone 401 de la mémoire associative par la liaison 412 . La sortie 4 de la porte 406 est reliée à l'en- trée du registre 409 pour mémoriser les valeurs PTE et PRA. La partie PTE contenue dans la zone 411 du registre 409 est transférée dans I a zone 402 de la mémoire associative 400 par la liaison 413.La partie PRA contenue dans la zone 410 du registre 409 est transféréde par la liaison 414 dans le registre 419 pour permettre la juxtaposition/PRA et de l'adresse de la page donnant ainsi l'adresse réelle de l'instruction ou de la donnée dans la page L' adresse de la page est transférée de la zone 403 de la mémoire associative par la liaison 419 dans le registre 419 . La sortie du registre 4 19 est reliée à la mémoire MMU 300 de la figure 3 par la liaison 417. Le bit PG rentre au point 1 de llATU et est appliqué aux points 1 des portes 405 à 408 Lorsq'un segment est pagé le bit PG = 1 et autorise ainsi le transfert de STN, PTE, PRA et de l'adresse de la page dans la mémoire associative .Lorsque PG = 0 le segment n'est pas pagé et le transfert n'a pas lieu le bit PO = 0 est appliqué à l'entrée inverseuse de la porte 407 et l'adresse absolue transite alors par la liaison 415 au travers de llATU vers le regi stre de sélection S 301 de la figure 3. Lorsque le segment est pagé le transfert de STN et PTE est autorisé par le signal de la microfonction AMA1 appliqué sur les entrées 2 des portes 405 et 406 alors que le transfert de I la- dresse de la page est effectué par le signal de microfonction AMA2 appliqué sur la porte 408. Le dispositif qui vient dl8tre décrit a permis de montrer qu'il est possible à partir du même numéro désignant une table de segment d'obtenir l'adresse d'une tabledepages et de faire apparaître la similitude des algorithmes de développement d'adresse segmentée et de développement d 'ad resse pagée. Autre part la réalisation de l'unité de translation adresse de l'unité de translation d'adresse permet d'obtenir au niveau du traitement un gain de temps appréciable, il est en effet possible lorsqu'une page a été référencée de retrouver immédiatement sans faire appel à un microprogramme,liai dresse de la page La description qui vient autre donnée diun dispositif préféré de l lin- vention n la montré qu'un des aspects possibles de réalisation et il l es t bien évident que l'homme de l'art au fait des techniques de traitement de données ppurra apporter toutes les modifications qu'il jugera utiles sans sortir pour autant du cadre de l'invention REVENDICATIONS 1. Dispositif permettant d'accéder à une information compri s e dans la mémoire d'une unité de traitement de données à partir de Il'adresse esyll a- bique de l'information écrite dans l'espace virtuel de l'utilisateur > le dit espace virtuel étant partagé en segments et chaque segment étant partagé en pages, l'adresse réelle de l'information étant déterminée par l'adresse de la page et un déplacement à l'intérieur de la page, ledit dispositif étant caractérisé en ce qu'il comprend des moyens permettant d'accéder directement à l'adresse diune information contenue dans une page à partir du numéro de la table du segment correspondant à la page contenant l'information recherchée 2.Dispositif permettant d'accéder à une information comprise dans la mémoire d'une unité de traitement de données selon la revendication 1 caractérisé en ce que les dits moyens comprennent - des premiers moyens pour mémoriser le numéro de table de. set ment dans lequel se trouve ltinformation cherchée - des deuxièmes moyens reliés aux premiers moyens pour calculer l'adresse absolue de l'information recherchée à partir de l'adresse relative de l'adresse de la base du segment trouvée dans la table de segments à partir du bloc de contrôle de processus alloué à l'utilisateur - des troisièmes moyens reliés aux premiers moyens permettant à partir du bloc de contrôle de processus alloué à l'utilisateur et à partir du. numéro de table de segment de désigner l'adresse d'une table de pages - des quatrièmes moyens permettant à partir de l'adresse absolue de pointer à l'intérieur de la table des pages désignée par le troisième moyen l'adresse de la page - des cinquièmes moyens permettant à partir de l'adresse absolu ede pointer à l'intérieur de la page, désignée par le quatrième moyen I 'adres- se de ItirArmation recherchée 3 Dispositif permettant d'accéder à une information comprise dans la mémoire principale d'une unité de traitement de données selon lesrevendications t et 2 caractérisé par le fait qu'il comprend des sixièmes moyens permettant de trouver directement l'adresse réelle de l'information recherchée si la page contenant cette information a déjà été auparavant référencée ledit sixième moyen étant relié d'une part au registre d'instruction de l'unité de traitement et d'autre part au registre de sélection de la mémoire principale de l'unité de traitement 4. Dispositif permettant d'accéder à une information comprise dans la mémoire principale d'une unité de traitement de données selon les revendications 1, 2 et 3 caractérisé par le fait que le sixième moyen comprend une mémoire associative adressée par le numéro de table de segment, le numéro d'entrée de la table et délivrant sur sa sortie l'adresse de la page dans laquelle se trouve l'information, si les informations d'adressage sont déjà contenues dans ladite mémoire associative