FR 2515404 A1 19830429 FR 8120247 A 19811028 La présente invention concerne un ensemble de gestion de la mémoire d'un processeur ou d'un micropro- cesseur Elle s'applique à la gestion des mémoires de processeurs ou de microprocesseurs de types variés, à partir du concept connu de segmentation et pagination. On sait que les processeurs et plus particu lièrement les microprocesseurs, atteignent actuelle- ment des performances de traitement très élevées Ces performances résultent principalement des progrès technologiques mais également de l'évolution des ensem- bles qui permettent de gérer les mémoires qui attei- gnent des capacités très élevées, pour un encombrement réduit. On sait qu'un ensemble de gestion de la mé- moire d'un processeur ou d'un microprocesseur est un interface qui est situé entre ce processeur et la ou les mémoires physiques qui lui sont associées, cet en- semble gérant l'adressage de la mémoire Ces ensembles de gestion de mémoire existent déjà dans les proces- seurs de forte puissance, mais ils nécessitent une quantité très importante de composants logiques. Pour un microprocesseur ou microordinateur auquel est associée une mémoire de faible capacité ( 64 K octets par exemple) on n'utilise pas, en général d'ensemble de gestion de mémoire En effet, dans les microprocesseurs ou micro-ordinateurs, l'espace adres- sable est très faible et le code d'instruction n'est pas prévu pour être indépendant de l'implantation des données en mémoire. Par contre, pour les microprocesseurs les plus récents qui sont associés à des mémoires présen- tant une capacité très importante (entre 1 et 16 Mega- octets), une gestion des adresses en mémoire est sou- haitable Cette gestion devient tout à fait indispensa- ble lorsque plusieurs processeurs ou microprocesseurs sont connectés entre eux de manière à former un système multiprocesseur; dans ce cas les ensembles de gestion de mémoires permettent notamment de protéger les accès dans les zones de mémoire respectives de ces proces- seurs. Les ensembles existants de gestion de mémoire permettent essentiellement une allocation dynamique des mémoires pendant l'exécution des programmes, la protection contre certains types d'accès (écriture ou lecture), la détection des erreurs pendant l'adressage, et l'utilisation des zones de mémoire communes par dif- férents utilisateurs, sans perturbation du fonctionne- ment du processeur Ces ensembles utilisent différentes techniques de gestion: la segmentation, la pagination ou une technique qui combine les deux techniques précé- dentes La pagination utilise les espaces mémoire de même taille appeléspages, alors que la segmentation utilise des espaces de mémoire de tailles différentes appelés segments, un segment pouvant être contenu dans une page, ou recouvrir plusieurs pages. Dans la technique de pagination, l'espace mé- moire vu par l'utilisateur et le système d'exploitation est un espace linéaire pour lequel l'accès à la mémoire se fait par un seul nombre logique Dans la segmenta- tion, l'accès à la mémoire exige une paire de nombres (numéro du segment, et décalages ou offset) L'avantage principal de la pagination résulte de la facilité d'al- location des pages dans les mémoires puisque toutes ces pages ont toutes la même taille; cette technique pré- sente cependant un inconvénient important, puisqu'elle nécessite une protection des différents espaces de la mémoire utilisateur,à cause du caractère linéaire de l'espace mémoire La segmentation n'offre pas les mêmes difficultés de protection d'espaces mémoires, mais elle a par contre pour inconvénient, de compliquer l'implan- tation des segments dans l'espace mémoire. Les techniques qui combinent à la fois la pa- gination et la segmentation présentent les avantages et inconvénients des deux autres techniques Cependant quelle que soit la technique de gestion utilisée, les ensembles de gestion connus sont spécifiques du type de processeur et de microprocesseur utilisé Il en résulte qu'il est pratiquement impossible d'utiliser un ensem- ble de gestion de mémoire fourni par un constructeur, avec un processeur ou un microprocesseur fourni par un autre constructeur. La présente invention a pour but de remédier à ces inconvénients et notamment de réaliser un ensem- ble de gestion de la mémoire d'un processeur ou d'un microprocesseur, indépendant du type de ce processeur ou de microprocesseur utilisé Elle a aussi pour but d'éviter les inconvénients liés aux techniques de pagi- nation ou de segmentation et notamment de permettre: une séparation de l'espace réservé aux opérations d'entrée-sortie et de l'espace mémoire utilisateur, dans l'ensemble de gestion lui-même, sans qu'il soit nécessaire, comme avec les ensembles de gestion exis- tants, de diviser l'espace adressable de la mémoire commune par deux, une séparation de l'espace local-commun dans l'ensem- ble de gestion lui-même En effet, les ensembles de gestion connus sont conçus pour des structures clas- siques monoprocesseur et une implantation dynamique dans l'espace local n'est possible qu'en réservant un espace fixe pour toutes les mémoires locales Ceci entraîne une complication importante pour la program- mation ainsi qu'une limitation de l'espace adressa- ble Dans ces ensembles de gestion connus, il est donc nécessaire de réserver quelques e b pour l'es- pace local, l'utilisation d'un grand nombre de registres de seg- mentation alors que dans les ensembles de gestion connus, le nombre de registres de segmentation est limité De plus, lorsque ces ensembles commandent des mémoires associatives, la complexité de la gestion ne permet pas d'utiliser un grand nombre de registres de segmentation Ceci entraîne une reprogrammation très fréquente des ensembles de gestion ou une utilisation de plusieurs ensembles de gestion en cascade. D'une façon générale, les ensembles de ges- tion qui peuvent remédier partiellement aux inconvé- nients qui viennent d'être mentionnés, sont réalisés avec un nombre très important de boîtiers de circuits intégrés La répartition des segments et la flexibilité d'adressage ne sont pas utilisées par la programmation car les algorithmes de gestion de mémoire sont trop complexes et, pour parvenir à cette flexibilité, il est nécessaire de compliquer le matériel de façon très im- portante (additionneurs pour les adressages), ce qui limite la performance des ensembles de gestion, en par- ticulier à cause des additionneurs qui leur font perdre leur rapidité. L'invention a donc aussi pour but, grâce à une technologie appropriée, de proposer un ensemble de gestion qui présente un nombre raisonnable de circuits et qui permet de gérer un nombre important de registres de segmentation Ces différents buts sont atteints en combinant de manière particulière la pagination et la segmentation, cette combinaison permettant d'éviter dans l'invention l'utilisation d'additionneurs et com- parateurs qui, dans les ensembles connus de gestion, entraînent des opérations complexes. L'invention a pour objet un ensemble de ges- tion de la mémoire physique d'un processeur, comprenant une table de registres descripteurs de segments, reliée au processeur et à des moyens pour transformer une adresse virtuelle fournie par le processeur en une adresse physique pour permettre l'exécution d'une tâ- che, à partir de segments et de pages réels contenus en mémoire physique, cette adresse virtuelle contenant au moins un numéro de page virtuelle, la valeur binaire d'un index de pointage du premier registre descripteur d'un segment physique en mémoire correspondant à une tâche à exécuter, et la valeur du décalage du début du segment physique, par rapport au début de la page réel- le correspondance, caractérisé en ce qu'il comprend en outre un registre de base qui est chargé, pour chaque adresse virtuelle, par l'adresse de base du premier re- gistre descripteur correspondant à la tâche à exécuter, cette adresse de base étant fournie par le processeur, la table de registres descripteurs présentant des en- trées qui sont reliées aux sorties d'un additionneur logique qui reçoit d'une part la valeur binaire de l'adresse de base du premier registre descripteur et, d'autre part, la valeur binaire de l'index correspon- dant à ce registre, les sorties de l'additionneur poin- tant l'une des entrées de la table de registres des- cripteurs. Selon une autre caractéristique, l'ensemble de gestion comprend en outre un registre de contrôle chargé par le superviseur, par des valeurs binaires in- diquant le nombre maximum de registres descripteurs mis en jeu dans l'exécution de ladite tâche, et un compara- teur relié au processeur et au registre de contrôle, pour comparer les valeurs binaires contenues dans le registre de contrôle et les valeurs binaires de l'in- dex, ce comparateur appliquant un signal d'erreur au processeur lorsque la valeur de l'index est supérieure au nombre de registres descripteurs mis en jeu dans l'exécution de la tâche. Selon une autre caractéristique, chaque re- gistre descripteur contenant des valeurs binaires rela- tives au moins à l'adresse de base du segment physique, à la base de la page dans laquelle est contenu le début de ce segment, ainsi que des valeurs binaires représen- tant la taille du segment physique, l'ensemble de ges- tion comprend en outre des moyens pour vérifier que le numéro de page virtuelle n'excède pas la taille du segment à exécuter. Selon une autre caractéristique, l'ensemble de gestion comprend en outre des moyens pour former l'adresse physique de la page dans laquelle se trouve le début du segment physique, à partir du numéro de page virtuelle et de la valeur de la base de la page. Selon une autre caractéristique, les moyens pour vérifier que le numéro de page virtuelle n'excède pas la taille du segment, sont constitués par une por- te n ET". Selon une autre caractéristique, les moyens pour former le numéro de la page dans laquelle se trou- ve le segment à exécuter, sont constitués par une por- te "OU". Selon une autre caractéristique, l'addition- neur logique est une porte "OU". Les caractéristiques et avantages de l'in- vention ressortiront mieux de la description qui va suivre, donnée en référence aux dessins annexés dans lesquels: la figure 1 représente les différents for- mats d'adresse et de registres qui interviennent dans l'ensemble de l'invention, la figure 2 représente schématiquement un ensemble de gestion de mémoire conforme à l'invention. La figure 1 représente en (a) le format de l'adresse virtuelle fournie par le processeur, pour 4 i adresser une mémoire physique, grâce à l'ensemble de gestion de l'invention, qui sera décrit plus loin en détail Ce format d'adresse virtuelle comprend des élé- ments binaires VP qui désignent le numéro de la page virtuelle dans laquelle se trouve un segment contenant des instructions ou des données auxquelles le proces- seur désire accéder pour exécuter une tâche détermi- née; les éléments binaires VI correspondent à la va- leur d'un index de pointage d'un registre descripteur de segments contenant toutes les informations nécessai- res pour accéder en mémoire physique, à un-segment phy- sique d'exécution de la tâche donnée Le format d'adresse virtuelle comprend aussi des éléments binai- res Po concernant le décalage du début du segment phy- sique, par rapport au début de la page réelle ou physi- que dans laquelle il est situé. Enfin, le format d'adresse virtuelle peut également comprendre des éléments binaires U-S et I-D relatifs au type 'de segment auquel le processeur désire accéder en mémoire physique L'élément binaire U-S in- dique s'il s'agit d'un segment qui intéresse l'utilisa- teur ou le superviseur du processeur, tandis que l'élé- ment binaire I-D indique s'il s'agit d'un segment d'instructions ou d'un segment de données, en mémoire physique Sur cette figure, les chiffres représentent les nombres d'éléments binaires mis en oeuvre dans le format d'adresse virtuelle décrit plus haut Il est bien évident que ces nombres pourraient être diffé- rents. La figure 1 représente en (b), le format de l'un des registres descripteurs de segments intervenant dans l'ensemble de gestion de l'invention Ce registre descripteur de segment comprend des éléments binaires DPB relatifs à l'adresse de base de la page dans la- quelle se trouve le début du segment physique ou réel recherché en mémoire physique; il contient aussi des éléments binaires DSB relatifs à l'adresse de base du segment dans cette page réelle, et des éléments binai- res DAM relatifs à la taille du segment auquel le pro- cesseur désire accéder Ce registre comprend également des éléments binaires CTL de contrôle, qui permettent au processeur de vérifier si pour le segment considéré, le processeur doit bien fonctionner en mode local ou en mode global, ou s'il s'agit bien d'un segment concer- nant des opérations d'entrée-sortie. La figure 1 représente en (c) le format du registre d'adresse réelle dans lequel l'ensemble de gestion de l'invention va ranger les éléments binaires relatifs à l'adresse physique du segment auquel le pro- cesseur désire accéder en mémoire Ce registre contient tout d'abord la valeur binaire PO du décalage du début de segment par rapport au début de la page physique dans laquelle il est situé; ce registre contient éga- lement des éléments binaires PB relatifs à l'adresse de base du segment dans la page réelle ou physique Enfin, il contient des éléments binaires PP relatifs au numéro de page physique dans laquelle se trouve le début du segment recherché Comme sur les figures précédentes, les chiffres indiquent les nombres d'éléments binaires mis en jeu dans le registre. Comme on le verra plus loin en détail, les registres descripteurs de segments forment une table en mémoire; dans un mode de réalisation particulier, cet- te table est constituée par 1024 registres comportant chacun 24 éléments binaires, et elle présente 256 en- trées. La figure 2 représente schématiquement un en- semble conforme à l'invention, permettant la gestion de la mémoire physique PM d'un processeur P Cette gestion permet d'accéder à des instructions ou des données con- tenues en mémoire physique, lorsque cette mémoire est divisée en segments et en pages réels; chaque segment peut soit être contenu dans une page réelle, soit con- tenir plusieurs de ces pages Cet accès se fait à par- tir d'une adresse virtuelle fournie par le processeur et dont le format a été donné à la figure la L'ense- mble de gestion comprend une table T de registres des- cripteurs de segments et des moyens qui seront décrits plus loin pour transformer une adresse virtuelle four- nie par le processeur P, en une adresse physique d'un segment permettant l'exécution d'une tâche L'ensemble de gestion comprend aussi un registre de base BA qui est chargé, pour chaque adresse virtuelle, par l'adres- se de base du premier registre descripteur correspon- dant à la tâche à exécuter Cette adresse de base est fournie par le superviseur du processeur P La table T de registres descripteurs présente des entrées qui sont reliées aux sorties d'un additionneur logique O Ul qui reçoit, d'une part la valeur binaire de l'adresse de base du registre descripteur contenue dans le registre BA et, d'autre part, la valeur binaire de l'index VI de ce registre par rapport à l'adresse de base De cette manière, l'addition de l'index VI avec l'adresse de ba- se du registre descripteur, contenue dans le registre BA, permet de pointer l'une des entrées de la table Tt en regard de laquelle se trouve le registre descripteur du segment concernant la tâche à exécuter, ou de poin- ter le premier des registres descripteurs des segments concernant cette tâche. L'ensemble de gestion comprend aussi un re- gistre de contrôle NBR, chargé par le superviseur du processeur P, par des valeurs binaires indiquant le nombre maximum de registres descripteurs mis en jeu dans la table T, pour l'exécution de la tâche considé- rée Les sorties de ce registre de contrôle sont re- liées aux entrées d'un comparateur COMP qui reçoit d'autre part, sur d'autres entrées, les valeurs binai- res de l'index VI relatif au premier registre descrip- teur de segment de la tâche à exécuter Le comparateur P fournit un signal d'erreur ER au processeur P, lors- que la valeur de l'index VI est supérieure au nombre de registres descripteurs mis en jeu dans l'exécution de la tâche En effet, il est probable dans ce cas, que la valeur de l'index contenu dans l'adresse virtuelle fournie par le processeur, est erronée. Le pointage du registre descripteur de seg- ments concernant la tâche à exécuter, étant effectué, l'ensemble de gestion, qui sera décrit plus loin en détail, va fonctionner de la manière suivante: les éléments binaires PO de poids faible de l'adresse vir- tuelle (EB 9-0) passent sans être modifiés, dans un re- gistre d'adresse réelle RAR de la mémoire physique PM, qui peut ainsi être adressée grâce à des moyens connus (non représentés) Les éléments binaires DSB contenus dans le registre descripteur de segment et qui indi- quent l'adresse de base du segment réel, passent direc- tement dans le registre d'adresse réel RAR, sans être modifiés Ces éléments binaires de poids fort, sont dé- signés par PB sur cette figure et sur la figure lc. Avant d'obtenir le numéro de page physique ou réelle PP, dans lequel se trouve le début du segment réel à adresser, on vérifie, grâce à des moyens constitués par une porte ET 1, que l'adresse virtuelle VP de la page dans laquelle se trouve le début du segment à adresser, n'excède pas la taille DAM du segment, cette taille étant formée par les éléments binaires contenus dans le registre descripteur décrit plus haut La porte E Tl permet en fait d'effectuer l'opération logique VP DAM qui doit être égale à O si le numéro de page virtuelle n'excède pas la taille du segment à exécuter En effet, il si l'adresse virtuelle dépasse la taille du segment à exécuter, c'est qu'une erreur s'est produite dans le pointage du registre descripteur Dans ce cas, la va- leur binaire O fournie par la porte ET est appliquée au processeur pour indiquer cette erreur. Après cette vérification, le numéro de page réelle PP dans laquelle se trouve le début du segment à adresser est formé par une porte logique OU 2, à partir du numéro de base de page physique DPB et du numéro de page virtuelle VP En fait, la porte O U 2 réalise l'opé- ration PP=VP+DPB Le registre'd'adresse réelle RAR con- tient alors toutes les informations nécessaires à l'adressage du segment réel en mémoire physique PM En effet, il contient l'adresse de base PB du segment réel, le numéro de page physique PP dans lequel se trouve le début de ce segment et le décalage PO du début de ce segment par rapport au début de la page physique. Les opérations qui viennent d'être décrites et qui permettent, d'une part de vérifier que le numéro de page virtuelle est inférieur à la taille du segment réel à adresser et, d'autre part, de calculer le numéro de page réelle à partir du numéro de page virtuelle et de l'adresse de base de cette page réelle, s'effectuent très rapidement grâce à des portes logiques; ces por- tes remplacent des opérateurs effectuant des opérations complexes dans des ensembles de gestion connus Ces en- sembles connus utilisent en effet des additionneurs ou des comparateurs qui rendent ces opérations compli- quées. On va maintenant donner un exemple de gestion d'adresse effectuée dans l'ensemble de l'invention. On suppose que le processeur fournit l'adres- se virtuelle suivante, dans une base hexadécimale: VI=segment 3-VP=page 10, (OAH)-PO (décalage)= 257, ainsi que les éléments binaires utilisateur U et don- née D. On suppose que le registre descripteur de segment, pour le segment 3 "utilisateur" et "donnée' contient les éléments binaires suivants: DSB 1, DAM= 30 H, DPB= 20 H, exprimés dans une base hexadécimale. L'adresse physique après traduction est la suivante: P Bl, PP= 2 AH, PO= 257. On peut constater que l'adresse virtuelle a été acceptée car le résultat de l'opération: VP DAM= 30 Hx OAH=O. Le numéro de page réelle PP est obtenu en effectuant la somme VP+DPB=OAH+ 20 H= 2 AH dans une base hexadécimale. Dans l'ensemble de gestion qui vient d'être décrit, il est possible d'étendre la taille maximale des segments descripteurs; dans un exemple de réalisa- tion qui n'est pas représenté ici, la taille de ces segments descripteurs est de 32 e b Cette extension de la dimension des segments descripteurs permet d'ajouter des éléments binaires de contrôle supplémentaires, et notamment, des éléments binaires de contrôle de parité. L'invention permet bien d'atteindre les buts mentionnés plus haut et notamment, de réaliser un en- semble de gestion utilisant un très faible nombre de composants Ces composants logiques sont tous intégra- bles facilement sous boîtier Cet ensemble permet éga- lement de gérer séparément les espaces entrée-sortie et les espaces local-commun Enfin, elle offre la possibi- lité de gérer des registres de segmentation dont le nombre est très important ( 1024) et qui présentent des segments de longueur importante (entre 1 K octet et 16 M octets) Les segments superviseur-utilisateur peu- vent être séparés physiquement, de même que les seg- ments instructions et données Il en résulte une pro- tection efficace des espaces mémoire, tandis que la présence d'un additionneur logique diminue de manière très importante le temps de réponse de cet ensemble, par rapport aux ensembles de gestion connus (I l O O ns). Il est bien évident que dans l'ensemble de gestion qui vient d'être décrit, les moyens utilisés auraient pu être remplacés par des moyens équivalents sans sortir du cadre de l'invention. REVENDICATIONS 1 Ensemble de gestion de la mémoire physique d'un processeur, comprenant une table (T) de registres descripteurs de segments, reliée au processeur (P) et à des moyens pour transformer une adresse virtuelle four- nie par le processeur en une adresse physique pour per- mettre l'exécution d'une tâche, à partir de segments et de pages réels contenus en mémoire physique (PM), cette adresse virtuelle contenant au moins un numéro de page virtuelle (VP), la valeur binaire d'un index de pointage (VI) du premier registre descripteur d'un segment phy- sique en mémoire correspondant à une tâche à exécuter, et la valeur du décalage (PO) du début du segment physi- que, par rapport au début de la page réelle correspondan- te, caractérisé en ce qu'il comprend en outre un registre de base (BA) qui est chargé, pour chaque adresse virtuel- le, par l'adresse de base du premier registre descripteur correspondant à la tâche à exécuter, cette adresse de base étant fournie par le processeur (P), la table (T) de registres descripteurs présentant des entrées qui sont reliées aux sorties d'un additionneur logique (OU 1) qui reçoit d'une part la valeur binaire de l'adresse de base du premier registre descripteur et, d'autre part, la valeur binaire de l'index (VI) correspondant à ce registre, les sorties de l'additionneur pointant l'une des entrées de la table (T) de registres descripteurs. 2 Ensemble de gestion selon la revendication 1, caractérisé en ce qu'il comprend en outre un registre de contrôle (NBR) chargé par le superviseur, par des valeurs binaires indiquant le nombre maximum de registres descrip- teurs mis en jeu dans l'exécution de ladite tâche,et un comparateur (COMP) relié au processeur (P)et au registre de contrôle (NBR),pour comparer les valeurs binaires con- tenues dans le registre de contrôle (NBR) et les va- B 7323 C/DC 2515404 leurs binaires de l'index (VI), ce comparateur appli- quant un signal d'erreur (ER) au processeur (P) lorsque la valeur de l'index (VI) est supérieure au nombre de registres descripteurs mis en jeu dans l'exécution de la tâche. 3 Ensemble de gestion selon l'une quelconque des revendications i et 2, caractérisé en ce que chaque registre descripteur contenant des valeurs binaires re- latives au moins à l'adresse de base (DSB) du segment physique, à la base de la page (DPB) dans laquelle est contenu le début de ce segment, ainsi que des valeurs binaires représentant la taille (DAM) du segment physi- que, l'ensemble de gestion comprend en outre des moyens (ET) pour vérifier que le numéro de page virtuelle (VP) n'excède pas la taille (DAM) du segment à exécuter. 4 Ensemble de gestion selon la revendica- tion 3, caractérisé en ce qu'il comprend en outre des moyens (OU 2) pour former l'adresse physique (PP) de la page dans laquelle se trouve le début du segment physi- que, à partir du numéro de page virtuelle (VP) et de la valeur de la base de la page (DPB). Ensemble de gestion selon la revendica- tion 3, caractérisé en ce que les moyens pour vérifier que le numéro de page virtuelle (VP) n'excède pas la taille (DAM) du segment, sont constitués par une por- te "ET". 6 Ensemble de gestion selon la revendica- tion 4, caractérisé en ce que les moyens pour former le numéro (PP) de la page dans laquelle se trouve le seg- ment à exécuter, sont constitués par une porte "OU". 7 Ensemble de gestion selon la revendica- tion 1, caractérisé en ce que l'additionneur logique est une porte "OU".