Brevet FR2533736A1 — publié le 19840330

La présente invention se rapporte au domaine des mé- moires d'ordinateur et des unités servant à gérer le conte- nu de telles mémoires. Dans la plupart des ordinateurs, une unité de traite- ment centrale (UTC) communique directement à la fois avec un bus d'adresse et avec un bus de données Ces bus sont couplés à une mémoire principale (ou à des systèmes de mémoire principale) et également à de nombreux autres élé- ments, tels que des interfaces d'entrée/sortie, des pro- cesseurs spécialisés, des unités à accès direct à la mémoire, etc La mémoire de l'ordinateur principal est souvent l é- lément le plus onéreux de l'ordinateur,en particulier si on compare son prix à celui des unités centrales des mini-. ordinateurs actuellement disponibles dans le commerce, telles que les unités 8080, 8086, 6800 et 68000 Ainsi, il est im- portant d'utiliser efficacement la mémoire principale de l'or- dinateur. Des unités de gestion de mémoire-(UGM) ont été utilisées dans la technique antérieure pour assurer une utilisation ef- ficace de la mémoire principale de l'ordinateur Ces unités remplissent des fonctions d'aménagement, telles que la réor- ganisation des données en mémoire, etc Fréquemment, une unité UGM comporte une mémoire qui contient une base de translation des données Les bits les plus significatifs de l'adresse logique fournie par l'unité de traitement sont utilisés pour adresser la mémoire de l'unité UG Mo Ces bits, du point de vue de l'unité de traitement, par exemple, déter- minent un segment de la mémoire principale Le numéro de segment choisi par l'unité de traitement est remplacé par un nouveau numéro extrait de la mémoire de l'unité UGM et il se produit ainsi une translation de l'adresse logique fournie par l'unité de traitement à l'adresse physique uti- lisée pour accéder à la mémoire principale. Une autre fonction exécutée par les unités de gestion de mémoire consiste à contrôler les adresses fournies par l'unité de traitement afin de vérifier qu'elles sont com- prises à l'intérieur de certaines limites Un nombre limite mis en mémoire dans la mémoire de l'unité UGM est comparé à des bits d'ordres inférieurs de l'adresse logique (par exemple, le décalage de page) pour assurer que le décalage de page est compris à l'intérieur d'un intervalle d'adresses prédéterminé du numéro de segment choisi Ceci empêche, à titre d'exemple, la lecture par inadvertance de "données" dans des emplacements de mémoire ou des données n'ont pas été placées. La présente invention constitue un développement des unités de gestion de mémoire (UGM) de la technique antérieure qui fournissent une base de translation et assurent une vé- rification de l'intervalle d'adresses Comme on le verra, la mémoire de l'unité UGM est développée dans une direction pour mettre en mémoire des signaux représentant la nature des informations mises en mémoire dans la mémoire principale. Ces signaux sont utilisés pour commander l'accès à la mémoire principale et, à titre d'illustration, ils empêchent l'écri- ture accidentelle dans les programmes et l'accès de l'utili- sateur aux systèmes d'exploitation La mémoire de l'unité UGM est également développée dans une autre direction de fa- çon à assurer une gestion de la mémoire avec chevauchement. Ceci permet à différents processus (programme et données) d'être exécutés par l'ordinateur sans reprogrammation de la mémoire de l'unité UGM. La présente invention a ainsi pour objet une unité de gestion de mémoire (UGM) conçue pour être utilisée avec un ordinateur qui comprend une unité de traitement centrale (UTC) et une mémoire principale L'unité UGM comprend une base de translation et, lorsqu'elle reçoit des premiers si- gnaux d'adresse de l'unité de traitement, elle fournit des seconds signaux d'adresse pour accéder à-la mémoire L'unité UGM comprend également des moyens de mémoire pour recevoir et enregistrer des signaux représentatifs des types d'infor- mations mis en mémoire dans des emplacements de la mémoire principale Des moyens d'accès sont prévus pour accéder à ces signaux enregistrés lorsque l'on accède aux emplacements cor- respondants dans la mémoire principale Les signaux des moyens de mémoire sont couples à la mémoire principale O par exemple O pour limiter l'accès à certains types de données contenus dans la mémoire principaletels que les systèmes d'exploitation Les signaux peuvent être également utili= sés pour ne premettre que la lecture des programmes et pour permettre l'écriture et la lecture des données Dans le mode de réalisation actuellement préféré, les moyens de mémoire font partie intégrante de la mémoire de l'unité UG Ho La mé- moire de I UGM a quatre fois la capacité qui serait néces- saire pour fournir les nombres de base de translation et les nombres limites pour l'ensemble de la mémoire principaleo Comme on le décrira O cette capacité supplémentaire permet de réaliser un type de"commutation de groupes O " et permet ainsi- de faire exécuter différents processus par l'ordinateur sans qu'il soit nécessaire de reprogrammer la mémoire de l Uunité UG Mo D'autres caractéristiques de l'Uinvention apparaitront à la lecture de la description qui va suivre et à l'examen des dessins annexes dans lesquels: la Fig 1 est un schéma=bloc général qui représenite une unité de traitement centrales (UTC) O une unité de gestion de sûémoire (UGM) et une mémoire principale et leurs intercon- nexions dans un ordinateur; la Fig 2 est un schéma qui montre l'organisation des données enregistrées dans la mémoire de 1 'unité UGH de la présente invention D la Fig 3 est un schémaobloc de l'unité UGM de l'inven- tion; et la Figo 4 est un schéma-bloc utilisé pour décrire les différents contextes employés pour le fonctionnement de l'unité UGM et l'organisation résultante des informations mises en mémoire dans la mémoire principale de l'ordinateuro On décrira ci-après une unité de gestion de mémoire óUGM) conçue pour dtre utilisée dans un ordinateur numérique qui comprend une unité de traitement centrale (UTC} et une mémoire principaleo Dans la description qui va suivre on don- nera de nombreux détails spécifiques O tels que les dimen- sions spécifiques des mémoires, des numéros de pièce, etc afin de permettre une pleine compréhension de laprésente invention Cependant, il apparaîtra à l'évidence aux spécia- listes de la technique que ces détails spécifiques ne sont pas nécessaires pour la mise en oeuvre de la présente inven- tion Dans d'autres cas, on ne décrira pas en détail des structures et circuits bien connus afin de ne pas obscurcir l'invention par des détails inutiles. Sur la Fig 1 à laquelle on se référera tout d'abord, on a représenté l'interconnexion entre une unité UGM, une unité UTC et une mémoire principale Cette Interconnexion est approximativement la même que dans la technique anté- rieure L'ordinateur de la Fig 1 comporte un bus de don- nées bidirectionnel 16 qui communique avec l'unité UTC 10, avec la mémoire principale 14 et avec l'unité UGM 12 Un bus d'adresse 18 reçoit des signaux d'adresse de l'unité UTC 10 et transmet une partie de ces adresses à l'unité UGM 12 et une partie à la mémoire principale 14 D'autres signaux de commande sont transmis entre l'unité de traitement 10 et l'unité UGM 12 comme représenté par les lignes 35 et 37 et entre l'unité UGM, 12 et la mémoire principale 14 comme re- présenté par la ligne 57. L'unité UGM 12 est programwlli par l'unité UTC 10 par l'intermédiaire du bus de données 16 Des adresses sont transmises sur le bus 18 à l'unité UGM 12 par l'unité de traitement 10 pour permettre le chargement de l'unité UGM 12. Dans le mode de réalisation actuellement préféré, l'u- nité de traitement 10 est un processeur 68000 Dans le cas o elle est constituée par ce processeur, l'unité de traite- ment 10 fournit des adresses de 24 bits (En fait le bit le moins significatif n'est pas physiquement présent en tant que tel mais est codé dans d'autres signaux; cependant, aux fins de la présente description,on admettra que c'est un bit d'adresse ordinaire) En outre, on admettra également, aux fins de la description, que les 7 bits les-plus significatifs de chaque adresse logique produite par l'unité de traitement d terminent un segment dans la mémoire, que les 8 bits moins significatifs suivants indiquent un décalage de page et que les 9 bits les moins significatifs indiquent un décalage. Dans le mode de réalisation actuellement préféré, le segment et le décalage de page de chaque adresse sont trans- mis à l'unité UGM 12 L'unité UGM fournit une base de trans- lation en remplaçant le numéro de segment fourni par l'unité de traitement 10 par un numéro de segment enregistré dans l'unité UGM 12 Plus précisément, le numéro de segment trans- mis par l'unité de traitement 10 adresse une mémoire contenue dans l'unité UGM 12 et cette mémoire fournit une base de seg- ment utilisée pour adresser la mémoire principale 14 La par- tie de décalage de page de l'adresse transmise par l'unité de traitement est contrôlée pour déterminer si le décalage de page est compris à l'intérieur d'un intervalle prédéter- miné du segment Ceci, par exemple, empêcherait la lecture et l'interprétation comme données d'une zone ne contenant que des zéros provenant d'un espace inutilisé de la mémoire principale La base de segment fournie par l'unité UGM et le décalage de page sont ajoutés puis transmis à la mémoire principale 14 sur les bus 18 a et 18 b de la Fig 1 Les 9 bits les moins significatifs sont transmis directement de l'unité de traitement à la mémoire principale par le bus 18 c. Comme représenté sur la Fig 3 à laquelle on se référe- ra maintenant, le mode de réalisation actuellement préféré de l'unité de gestion de mémoire comporte une mémoire 20 d'unité UGM Cette mémoire est une mémoire à accès sélectif fabriquée à partir des dispositifs de mémoire à accès sélec- tif PJ 4 statiques à MDS disponibles dans le commrce Dans le mode de réalisation pratique actuel, trois RAM du type connu sous le n 2148 sont utilisées pour former la mémoire ce qui donne à cette dernière une capacité totale de 12 kbits ( 12 x 1024 = 12 288 bits) On décrira ultérieurement en plus de détails l'organisation de la mémoire de l'unité UGM, en particulier en se référant à la Fig 2. L'adresse transmise par l'unité de traitement est repré- sentée comme étant une adresse de 24 bits (adresse logique) indiquée dans la partie supérieure de la Fig 3 Les 7 bits les plus significatifs de l'adresse sont transmis à la mé- moire 20 de l'unité UGM par le bus 18 a et sont utilisés pour adresser la mémoire de l'unité UGM Les bits les plus signi- f icatif S suivants (bus 18 b) sont transmis à un additionneur 27 et les 9 bits les moins significatifs (décalage) sont transmis par le bus 18 c à un registre 28 Les données de sortie de la mémoire 20 de l'unité UGM sont constituées de deux mots de 12 bits chacun (transmis sur des bus 22 et 23). Ces mots sont transmis par l'intermédiaire d'un multiplexeur à un bus à 12 bits 30 L'un des mots de 12 bits de la mé- moire 20 constitue la base de segment fournie par la base de translation enregistrée Le second mot de 12 bits comporte 8 bits pour le contrôle de la limite du décalage de page et 4 bits supplémentaires qui remplissent des fonctions qui re- présentent une partie de la présente invention. (Dans le mode de réalisation actuellement préféré, le multiplexeur 25 n'existe pas physiquement mais les données de sortie de la mémoire 20 sont multiplexées par répartition dans le temps Cependant, aux fins de l'explication, il est plus facile d'utiliser le multiplexeur 25). Le multiplexeur 25 est également utilisé pour charger des informations provenant du bus 16 dans la mémoire 20 Le signal transmis sur la ligne 47 provenant du circuit logique 40 de contrôle d'accès commande l'accès à la mémoire 20 comme le font les signaux des lignes 35 Le signal de la ligne 37 commande le multiplexage des données soit au bus 22 soit au bus 23. Le bus 30 de 12 bits partant du multiplexeur 25 abou- tie à l'additionneur 27 Cet additionneur reçoit également les 8 bits présents sur le bus 18 b Comme on le décrira, l'addi- tionneur 27 est utilisé pour déterminer si le décalage de page est compris à l'intérieur d'un intervalle prédéterminé du segment choisi L'additionneur 27 combine également la translation (base de segment) fournie par la mémoire 20 de l'unité UGM avec le décalage de page pour fournir les 12 bits les plus significatifs de l'adresse physique Ces 12 bits avec les 9 bits provenant du bus 18 c sont transmis au registre 28 pour former une adresse de 21 bits qui est trans- mise à la mémoire principale 14 o t Le registre 28 n'existe pas-dans le mode de réalisation actuellement prêféré, mais il a été représenté aux fins de 1 explication o Les 4 bits de contrôle d'accès sont transmis par le multiplexeur 25 sur les lignes 45 au circuit logique 40 de contrôle d'accèso Dans ce circuit 9 les signaux sont'décodés pour assurer la commande de la mémoire principale et d'autres commandes de la manière suivante Un bit commande le type d'accès à la mémoire principale (i 1 =lecture seule, O = lecture/ écriture)o Le second bit commande l'accès E/S {( 1 =E/S, O = pas d'accès E/S) Le troisième bit commande l'accès à la mémoire principale ( 1 = accès à la mémoire 9 O = pas d'accès à la mé- moire principale) Le quatrième bit commande la formation de piles ( 1 =segment de pile-contrôle l'absence d'un dépassement de capacité, 0 = segment normal-contrôle la présence d'un dé- passement de capacité) Le circuit logique 40 de contrôle d'accès a été représenté sur la Fig O 3 relié à la commande de la mémoire principale par la ligne 57 de façon à commander l'accès à la mémoire et le type d'accès permis (à savoir lec- ture ou lecture/écriturej Le circuit logique 40 est relié àl'ad- ditionneur 27 par les lignes de dépassement de capacité et de report en entrée et à la mémoire 20 par la ligne 47 pour conditionner l'accès à la mémoire 20 La configuration de bits de commande d'accès spécifique utilisée dans le mode de réalisation actuellement préféré est représentée ci-dessous. Bits de commande d'accès MEM ES LS PILE BITS ESPACE D'ADRESSES ET ACCES 0 1 O O Mémoire Principale-Lecture seule- Pile 0 1 O 1 Mémoire Principale-Lecture seule O 1 1 O Mémoiré Principale-Lecture/écriture- Pile 0 1 1 1 Mémoire Principale-Lecture/écriture MEM ES LS PILE BITS ESPACE D'ADRESSES ET ACCES 1 O O 1 Espace E/S 1 1 O O Page invalide (segment non présent) 1 1 1 1 Espace E/S Spécial Autre configuration non autorisée (résultat imprévi- sible) On supposera tout d'abord que la mémoire 20 a été pro- grammée par l'unité de traitement Aux fins d'une explica- tion à un premier niveau, on ignorera la fonction des deux 2 bits transmis sur les lignes 35 Lorsque l'unité de trai- tement adresse la mémoire principale, les 7 bits les plus significatifs adressent la mémoire 20 de l'unité UGM Les 12 bits de segment de données de translation sont transmis par le bus 22 et le bus 30 à l'additionneur 27 Ils sont combinés avec le décalage de page (bus 18 b) et l'adresse résultante est combinée avec les 9 bits du décalage contenu dans le registre 28 pour fournir l'adresse physique finale. Cette padtie de l'unité UGM fonctionne d'une manière très proche de celle des unités UGM de la technique antérieure. Ainsi, les données de base de segment de translation peuvent être programmées dans la mémoire (en ignorant les lignes 35) d'une manière bien connue dans la technique antérieure. Les 12 bits qui forment les données de limite et d'ac- cès sont transmis par le bus 23 au multiplexeur 25 Les 8 bits des données de limite sont transmis à l'additionneur 27. Les 4 bits des données d'accès sont transmis au circuit lo- gique 40 par Ies lignes 45, comme précédemment décrit Les données de limite,dans le mode de réalisation actuellement préféré, sont mises en mémoire sous la forme de leur complu- ment à 1 dans la mémoire 20 dans le cas d'un segment qui ne constitue pas une pile Pour les segments de pile, la li- mite mise en mémoire est la"longueur moins un'" (par exemple un segment de deux pages sera mis en mémoire sous la forme 0000 0001 dans la mémoire 20) Lorsque ces données de limite sont ajoutées au décalage de page dans l'additionneur 27, le résultat de cette addition détermine si le décalage de page est ou non compris dans l'intervalle prédéterminé du segment Ceci constitue un perfectionnement par rapport au contrôle de la technique antérieure qui nécessite l'exécu- tion d'étapes logiques supplémentaires. Exemple d'un segment ne constituant pas une pile Sur la Fig 4 à laquelle on se référera brièvementon a montré une représentation schématique de la mémoire princi- pale 14 de l'ordinateur Supposons que des données sont mises en mémoire aux emplacements 50 Supposons également que le décalage de page le plus élevé ( 1111 1111) pour les données s'étende jusqu'à l'emplacement 52 et qu'à l'intérieur de ce segment les données s'étendent jusqu'à un décalage de page de 1110 0000 (ligne 51)o Pour ce décalage de page, le complement à 1 de 1110 0000 O( 0001 1111) est mis en mémoire dans la mémoire 20 de la Fige 3 Si ce segment est adresssé et si l'on suppose que l'adresse de décalage de page est 1111 1111 (c'est-à-dire dans l'espace libre de la mémoire), l'additionneur 27 ajoute 1111 1111 au nombre mis en mémoire qui est 0001 1111 Un dépassement de capacité est indiqué par l'additionneur 27 et cette condition de dépassement de capacité est détectée par le circuit logique 40 de la Fig 3. Pour cet exemple, un dépassement de capacité indique que le décalage de page n'est pas à l'intérieur de l'intervalle du segment et un signal est transmis sur la ligne 57 pour indi- quer que l'adresse est erronée Le circuit logique 40 au moyen de la ligne 57 empêche l'accès à la mémoire principale et/ou provoque la production d'un signal d'erreur, Nous référant à nouveau à la Fig O 4, on supposera qu'un programme est mis en mémoire aux emplacements 53 et que le décalage de page le plus élevé ( 1111 1111) pour le programme 53 s'étend jusqu'à l'emplacement 50 qui se trouve à l'exté- rieur du programme effectif qui se termine à l'emplacement 54 Si le décalage de page pour l'emplacement 54 est 0011 0000, le nombre 1100 1111 est mis en mémoire dans la mémoire 20 de la Fig 3 pour le segment qui commence à l'emplacement Si le segment est adressé et si le décalage de page est 0000 0001 (le programme est adressé) l'additionneur 27 ajoute 1100 1111 et 0000 0001 Dans ce cas, il ne se produit pas de dépassement de capacité et aucun signal n'est trans- mis au circuit logique 40, c'est-à-dire que l'accès est per- mis On notera que si le décalage de page est de 0100 0000 (hors de l'intervalle), il se produit un dépassement de capa- cité lorsque ce'nombre est ajouté au nombre 1100 1111 mis en mémoire Ce dépassement de capacité indique au circuit lo- gique 40 que le décalage de page n'est pas compris dans l'intervalle du segment et l'accès de la mémoire est inva- lidé. Exemple de segment de pile Pour certains langages de programmation (par exemple, le Pascal),l'emploi de piles (en mémoire) est très désirable. On peut former des piles en déplaçant les données vers le haut dans la mémoire quoiqu'une telle opération prenne beau- coup de temps Avec le système que l'on décrira ci-après, des piles peuvent croitre vers le bas dans la mémoire au moyen d'une procédure de contrÈle de limite différente. Supposons un segment de pile d'une page Le nombre li- mite mis en mémoire dans la mémoire 20 sous forme du complé- ment à 1 du décalage de page ( 1111 1111 '0000 0000) qui est égal à la dimension du segment moins 1 ( 0000 0001 > 0000 0000). Les bits de contr 6 le d'accès provoquent l'application par le circuit logique 40 d'un report en entrée de 1 Si le décalage de page est 1111 1111, il se produit un dépassement de capa- cité Ce dépassement de capacité est détecté par le circuit logique 40 et interprété comme une condition valide (à l'inté- rieur de l'intervalle du segment) Si le décalage de page était de 1111 1110 (pile ayant cr excessivement),aucun dépas- sement de capacité ne se produirait et ceci serait interprété comme une adresse en dehors de l'intervalle du segment. De la même manière, si la pile est un segment de deux pages, le nombre 0000 0001 est mis en mémoire dans la mémoire Dans ce cas également, le report en entrée est mis égal à 1 Un décalage de page de 1111 1110 provoquera un dépasse- ment de capacité indiquant une adresse comprise dans l'inter- valle du segment tandis que pour un décalage de page de 253373 é il 1111 1100,il ne se produira pas de dépassement de capacité ce qui indiquera une adresse située en dehors de l'inter- valle du segment . Exemple de la Figure 4 Nous nous référerons à nouveau à la Fig 4 et nous sup- poserons qu'un processus (programme et données) est contenu dans la mémoire principale 14 entre les emplacements O et 500 k B ( 1 k B = 1024 multiplets)o Les trois bits d'accès res- tant dans la mémoire 20 correspondant aux adresses de seg- ment pour les emplacements 0-500 k B sont utilisés pour four- nir une commande spéciale, comme mentionnéo Par exemple,-pour les segments qui ne contiennent que le programmeg seule la lecture de la mémoire est autorisée Ceci empêche naturelle- ment l'écriture accidentelle dans le programme L 'écriture et la lecture peuvent être toutes deux permises dans les seg- ments qui contiennent des donnéeso Ceci est indiqué à la droite du programme 59 et des données 60 sur la Fig 4 o La mémoire 20 est programmée (c'est-o=dire au moyen des bits de contrô 181 e d'accès) pour empêcher la lecture de cer- tains segments de la mémoire principale sauf dans certains modes (par exemple, dans le mode superviseur) o Ceci est ef- fectué, par exemple, pour empêcher un utilisateur de lire puis de copier un système d'gexploitationo Nous réf 6 rant briè- vement à la -Figo 4, lorsque le programme 59 est en cours - d'exécution, aucun accès à la mémoire 20 n'est permis étant donné qu'un tel accès pourrait provoquer une modification accidentelle de la base de translationg des données de li- mite ou des données d'accès Ainsig les quatre bits de con- trôle d'accès assurent la protection du programme mis en mé- moire dans la mémoire principale et ils limitent également l'accès à certaines informations enregistrées dans la mémoireo Dans une application typique, un système d'exploitation est chargé, à partir d'un disque, dans la mémoire principaleo Une fois qu'il a été chargé dans la mémoire principale, l'unité de traitement peut accéder au système d'exploitation dans les modessuperviseurse cependant, l'utilisateur ne peut pas avoir accès au système d'exploitation et, par conséquent, il ne peut pas le copier. Conformément à la présente invention, la mémoire 20 a quatre fois la capacité qui serait effectivement nécessaire pour fournir une base de translation et des données de li mite et d'accès pour la mémoire principale Les signaux - transmis par l'unité de traitement sur les lignes 35 per- mettent le choix de chacun des secteurs de la mémoire 20. Chacun de ces secteurs ou quadrants est appelé un "contexte" ( Sur la Fig 2 à laquelle on se référera, on a représen- té la mémoire 20 de l'unité UGM comme étant divisée en quatre secteurs séparés k savoir les secteurs 20 a (contexte 0) 20 b (contexte 1) 20 c (con texe 2) et 20 d (contexte 3). Chacun des contextes l 2 et 3 est organisé en un agencement de 256 x 12 bits ( 128 x 12 bits pour la base de translation et 128 x 12 bits pour les données de limite et d'accès) Le con- texte O est choisi par lgunité de traitement lorsqu'elle est dans le mode superviseur et ce contexte contient les données de gestion qui se rapportent au système d'ezploitation On doit noter que chaque contexte est capable de mettre en mé- mxoire des informations qui couvrent la totalité de la m- moire principale et qu'ainsi il y a trois mémoires d'unité UGM qui se chevauchent pour les processus d'utilisateur. L'intérat que présente tlemïploi de ces mémoires qui se chevaucheht est plus particulièrement visible sur la Fig 4. La mémoire principale 14 est representée comme étant program- mée avec trois processus Pli P 2 et P 3 Le processus 1 est mis en mémoire entre O et 500 k E, le processus 2 entre 600 k B et 1 MB et le processus 3 entre 192 k M et 15 2 Bo Les don- nées qui se rapportent au système d'exploitation sont mises en mémoire entre 1 98 _B et 2:B on supposera tout d'abord que le système d'exploitation est chargé dans la mémoire dans laquelle il est enregistré entre 13 MB et 2 fo Une base de translation appropriée est mise en mémoire dans la mémoire 20 de façon qu'au cours des modes superviseurs,les adresses 0- k B choisissent automatiquement les adresses de 1,8 MB à 2 MB dans la mémoire principale En outre, les limites appro- priées sont chargées dans la mémoire 20 pour assurer que pendant le mode superviseur, l'espace libre de la mémoire principale ne soit pas accédé Pendant le mode superviseur (contexte 0),comme indiqué sur la Fig 4 sous l'en-tête "contexte 0 ", un accès complet à la mémoire de l'unité UGM et à la mémoire principale (sauf en ce qui concerne les bits de contrôle d'accès qui empêchent l'écriture dans le * système d'exploitation enregistré dans la mémoire princi- pale, protégeant de ce fait la mémoire des dommages dûs à une erreur de programme) Etant donné que la mémoire de l'u- nité UGM est accessible à ce moment, elle peut être program- mée par l'intermédiaire du bus 16, comme indiqué sur la Fig. 3 et comme précédemment décrit. Supposons que le contexte 1 doive être utilisé pour le programme 59 et les données 60; un secteur de la mémoire 20 de l'unité UGM correspondant au contexte l est alors pro- grammé pour indiquer l'emplacement du programme 59 et des données 60 Les bits d'accès et de limite sont alors mis comme indiqué sous l'en-tête "contexte 1 " Ainsi, lorsque le contexte 1 est choisi, le programme 59 peut (seulement) être lu et la lecture et l'écriture des données 60 est permise. Aucun accès aux autres emplacements de la mémoire principale n'est possible et il n'est pas non plus permis d'écrire dans la mémoire de l'unité UGM. Un second processus peut-être enregistré dans la mémoire. Le système d'exploitation connait l'emplacement du premier processus et il peut programmer un autre secteur de la mé- moire 20 pour le processus 2 La base de translation est pro- grammée de-telle sorte quelorsque l'unité de traitement adresse des emplacements correspondant à 0-400 k B, les adresses des emplacements 600 k B à 1 MB sont transmises à la mémoire principale Comme indiqué sur la Fig 4 sous l'en-tête "contexte 21 ", les bits d'accès sont programmés de façon à permettre l'écriture et la lecture des données 50 et seulement la lecture du programme 53 En outre, aucun accès (d'écriture) à la mémoire de l'unité UGM n'est permis et un accès N est également pas permis aux autresemplace- ments de la mémoire principale De la même manière, un troi- sième processus peut être mis en mémoire dans la mémoire principale pour le contexte 3, comme indiqué sur la Fig 4. L'avantage que présente l'agencement de la Fig 4 est que trois processus séparés sont mis en mémoire dans la mé- moire principale et que chaque processus peut être facile- ment choisi par l'intermédiaire de la mémoire de l'unité UGM,c'est-à-dire en choisissant le contexte 1, le contexte 2 ou le contexte 3 Un contexte séparé (contexte 0) est ré- servé comme point de départ pour le système d'exploitation dans le mode de réalisation actuellement préféré, comme dé- crit ci-dessus Ceci permet d'exécuter trois programmes dif- férents sans aucune reprogrammation de la mémoire de l'unité UGM Cette souplesse d'utilisation est obtenue du fait de la capacité de gestion de mémoire avec chevauchement de la mémoire de l'unité UGM. Ainsi, on a décrit une unité de gestion de mémoire per- fectionnée qui permet d'exécuter plusieurs programmes sans reprogrammer la mémoire de l'unité UGM de l'ordinateur L'u- nité perfectionnée limite également l'accès à certains types de données et empêche-l'écriture accidentelle dans le pro- gramme. VENDICATIONS 1 Une unité de gestion de mémoire (UGM) pour un ordinateur qui comporte une unité de traitement centrale'(UTC> une mé- moire principale et une unité de gestion de mémoire qui re- Goît des premières adresses de l'unité de traitement et qui fournit des secondes adresses pour accéder à la mémoire principale, cette unité de gestion ( 12} tant caractérisée en ce qu Sel 1 e comprends des moyens de mémoire ( 20) pour rece- voir et enregistrer des signaux représentatifs des types d'informations mis en mémoire dans des emplacements de la mémoire principale ( 14), lesdits moyens de mémoire étant couplés à l unité de traitement ( 10 pour recevoir au moins une partie des premières adresses" des moyens d'accès pour accéder aux signaux enregistrés dans lesdits moyens de mé- moire j 20 > lorsque 1 on accède à deà emplacements correspon- dants de la mémoire principale par les secondes adresses" des moyens de couplage D 40 a 57) pour coupler les signaux repré- sentatifs des types d'informations mis-en mémoire dans la mémoire principale à la mémoire principale afin de limiter l Paccès à certains desdits types d'informationse de telle sorte que l'acecès de 1 lutilisat eur à certains types d'infor- mations contenues% dans la mémoire principaletels que les systèmes d Dexploitationest limitéo 2 L'unité de gestion de mémoire selon la revendication 1, caractérisée en ce que les-moyens de mémoire et moyens d'ac- cès comprennent une mémoire à accès sélectifmmoire de lau- nité de gestion qui contient également la base de transla- tion de l'unité de gestion de mémoire. 3 Lunité de gestion de mémoire selon la revendication 2, caractérisée en ce que les moyens de couplage (f 40, 57) ne permettent également que la lecture d'autres types d'infor- mationso 4 L'unité de gestion de mémoire selon la revendication 3, caractérisée en ce que les moyens de couplage ( 40, 57 D per- mettent également aussi bien l Pécriture que la lecture d 5 en- core d'autres types a'informations O L'unité de gestion de mémoire selon la revendication 2, caractérisée en ce que la msmoire ( 20) de l'unité de gestion de mémoire { 12) met également en mémoire des nombres limites. 6 L'unité de gestion de mêmoire selon la revendication 5, caractérisée en ce que la mémoire ( 20) de l'unité de gestion de mémoire comporte plusieurs secteurs de méoire ou contextes, chacun pour recevoir les premières adresses et pour fournir dessecondesadresses différentes en fonction de celui des contextes qui est choisi de telle sorte que les contel;tes fournissent une gestion de mémoire 1 chevauchement. 1 o 7 Une unité de gestion de mémoire principale d'ordinateur conçue pour recevoir des premières adresses de l'unité de traitement centrale (UTC) de U'ordinateur et pour fournir des secondes adresses pour accéder à la mémoire pricnipale de l'ordinateur, cette unité de gestion ( 12) étant caracté- risée en ce qu'elle comprends des moyens de mémoire ( 20) pour recevoir et enregistrer des signaux représentati Es des types d'informations mis en mémoire dans des emplacements de la mé- moire principale ( 14), lesdits moyens de mémoire étant cou- plés à l'unité de traitement; 1 O) pour recevoir au moins une partie des premières adresses O des moyens d'accès pour accé- der aux signaux enregistrés dans lesdits moyens de mémoire ( 20) lorsque des emplacements correspondants de la mémoire principale sont accédés par les secondes adresses; des moyens de couplage ( 40 57 D pour coupler les signaux repré- sentatifs des types d'informations mis en mémoire dans la mé- moire principale à la mémoire principale afin de limiter l'accès de l'utilisateur aux processus mis en mémoire dans ladite mémoire principale, de telle sorte que l'accès de l'utilisateur à certains types d'informations contenus dans la mémoire principale-tels que les programmes,est limité. 8 Unité de gestion de mémoire principale selon la revendi- cation 7, caractérisée en ce que les moyens de mémoire et moyens d'accès comprennent une mémoire à accès sélectif, mnémire de l'unité de gestion, qui contient également la base de translation de l'unité de gestion de mémoire. 9 Unité de gestion de mémoire principale selon la revendi- cation 8, caractérisde en ce que les moyens de couplage ( 40, 57) ne permettent que la lecture des programmes mis en mé- moire dans la mémoire principale ( 14)o Unité de gestion de mémoire principale selon la revendi- cation 9, caractérisée en ce que les moyens de couplage ( 40, 57) permettent la lecture et l'écriture de données mises en mémoire dans la mémoire principale ( 14) 11 Unité de gestion de mémoire principale selon la reven- dication 10, caractérisée en ce que les moyens de couplage ( 40, 57) interdisent l'accès de l'utilisateur au système d'exploitation mis en mémoire dans la mémoire principale. 12 Unité de gestion de mémoire principale selon la reven- dication 8, caractérisée en ce que la mémoire ( 20) de l'u- nité de gestion de mémoire principale met en mémoire des nombres limites. 13 Unité de gestion de mémoire principale selon la reven- dication 8, caractérisée en ce que la mémoire ( 20) de l'uni- té de gestion de mémoire comporte plusieurs secteurs de mé- moire ou contextes, chacun pour recevoir les premières adresses et pour fournir des secondes adresses différentes en fonction de celui des contextes qui est utilisé de telle sorte que les contextes fournissent une gestion de mémoire à chevauchement. 14 Une unité de gestion de mémoire principale (UGM) pour un système d'ordinateur qui comprend une unité de traitement centrale (UTC) et une mémoire principale ( 14), cette unité de gestion étant caractérisée en ce qu'elle comporte: une mé- moire ( 20) d'unité de gestion de mémoire comprenant plusieurs secteurs ou contextes; des moyens de commande( 35) pour choisir les secteurs de la mémoire d'unité de gestion de mémoire, les moyens de commande étant couplés à l'unité de traitement ( 10); chacun des secteurs de la mémoire d'unité de gestion de mémoire étant conçu pour recevoir des premières adresses de l'unité de traitement et pour fournir des secondes adresses différentes pour accéder à la mémoire principale de sorte que les secteurs de mémoire de l'unité de gestion de mémoire assurent une gestion de la mémoire principale avec chevauchement de telle sorte que l'unité de gestion de mémoire ( 12) fournit une base de translation pour plusieurs processus mis en mémoire dans la mémoire principale sans qu'il soit nécessaire de reprogrammer l'unité de gestion de mémoire. Unité de gestion de mémoire selon la revendication 14, caractérisée en ce que l'un des secteurs de la mémoire de traitement est dans le mode superviseur. 16 Unité de gestion de mémoire selon la revendication 14, caractérisée en ce que les secteurs de la mémoire ( 20) d'u- nité de gestion de mémoire mettent en mémoire des nombres li- mites pour permettre de déterminer si certaines adresses de la mémoire principale sont ou non comprises à l'intérieur d'un intervalle prédéterminé. 17 Unité de gestion de mémoire selon la revendication 10, caractérisée en ce qu'elle comporte un additionneur ( 27) cou- plé pour recevoir les nombres limites des secteurs de la mé- moire ( 20) d'unité de gestion de mémoire et en ce que les nombres limites sont mis en mémoire sous une forme binaire complémentaire dans les secteurs de mémoire d'unité de ges- tion de mémoire pour les segments qui ne forment pas des piles de telle sorte que,lorsque ces nombres sont combinés avec la partie d'adresse correspondante par l'additionneur, le dépassement de capacité ou l'absence *d'un tel dépassement indique si ladite adresse est comprise à l'intérieur de l'in- tervalle prédéterminé. 18 Unité de gestion de mémoire selon la revendication 17, caractérisée en ce que les nombres limites pour les segments de pile sont égaux à la dimension du segment moins un. 19 Unité de gestion de mémoire selon la revendication 14, caractérisée en ce que la mémoire ( 20) d'unité de gestion comprend des moyens de mémoire pour enregistrer des signaux représentatifs des types d'informations contenus dans la mémoire principale ( 14). Unité de gestion de mémoire selon la revendication 19, caractérisée en ce que les signaux mis en mémoire sont utili- sés pour commander l'accès à la mémoire principale ( 14).