PROCESSOR STORAGE MANAGEMENT SYSTEM

Abstract: The invention relates to a system for managing the physical store of a processor. This system comprises a table (T) of segment-descriptor registers, means for converting a virtual address into a physical address, the virtual address containing at least one virtual page number (VP), the binary value of a tracking index (VI) for the first descriptor register and the value of the offset (PO) of the start of the physical segment, relative to the start of the corresponding real page. This system is characterised in that it further comprises a base register (BA) loaded with the base address of the first descriptor register, the table (T) of descriptor registers having inputs which are connected to the outputs of a logic adder (OU1) which receives the binary value of the base address of the first descriptor register and the binary value of the index (VI) corresponding to this register, the outputs of the adder tracking one of the inputs of the table (T). Application to the management of memories by pagination and segmentation. <IMAGE>

Description: La présente invention concerne un ensemble de gestion de la mémoire d'un processeur ou d'un microprocesseur. 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 particulièrement les microprocesseurs, atteignent actuellement des performances de traitement très élevées. Ces performances résultent principalement des progrès technologiques mais également de l'évolution des ensembles qui permettent de gérer les mémoires qui atteignent 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 ensemble gérant l'adressage de la mémoire. Ces ensembles de gestion de mémoire existent déjà dans les processeurs 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 adressable 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ésentant une capacité très importante (entre 1 et 16 Megaoctets), une gestion des adresses en mémoire est souhaitable. 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 processeurs. 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 différents utilisateurs, sans perturbation du fonctionnement du processeur. Ces ensembles utilisent différentes techniques de gestion : la segmentation, la pagination ou une technique qui combine les deux techniques précé dents La pagination utilise les espaces mémoire de même taille appelés pages, 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 segmentation, 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'allocation 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'impkmr tation des segments dans l'espace mémoire. Les techniques qui combinent à la fois la pagination 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 ensemble 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 ensemble 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 pagination 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 gestion 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 importante (additionneurs pour les adressages), ce qui limite la performance des ensembles de gestion, en particulier à cause des additionneurs qui leur font perdre leur rapidité. L'invention a donc aussi pour but, grace à 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 comparateurs qui, dans les ensembles connus de gestion, entraînent des opérations complexes. L'invention a pour objet un ensemble de gestion 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éelle correspondante, 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 registre descripteur correspondant à la tâche à exécuter, cette adresse de base étant fournie par le processeur, la table de registres descripteurs présentant des entré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 correspondant à ce registre, les sorties de l'additionneur pointant l'une des entrées de la table de registres descripteurs. 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 indiquant le nombre maximum de registres descripteurs mis en jeu dans l'exécution de ladite tâche, et un comparateur 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'index, 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 registre descripteur contenant des valeurs binaires relatives 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ésentant la taille du segment physique, l'ensemble de gestion 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 porte "ET". Selon une autre caractéristique, les moyens pour former le numéro de la page dans laquelle se trouve le segment à exécuter, sont constitués par une porte "OU#. Selon une autre caractéristique, l'additionneur logique est une porte "OU". Les caractéristiques et avantages de l'invention 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 formats 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 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 processeur désire accéder pour exécuter une tâche déterminée ; les éléments binaires VI correspondent à la valeur d'un index de pointage d'un registre descripteur de segments contenant toutes les informations nécessaires pour accéder en mémoire physique, à un segment physique d'exécution de la tâche donnée. Le format d'adresse virtuelle comprend aussi des éléments binaires PO concernant le décalage du début du segment physique, par rapport au début de la page réelle ou physique 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 indique s'il s'agit d'un segment qui intéresse l'utilisateur 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 etre 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 1 invention. Ce registre descripteur de segment comprend des éléments binaires DPB relatifs à l'adresse de base de la page dans laquelle 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 binaires DAM relatifs à la taille du segment auquel le processeur 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 concernant 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 processeur 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 également 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, cette table est constituée par 1024 registres comportant chacun 24 éléments binaires, et elle présente 256 entrées. La figure 2 représente schématiquement un ensemble 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 contenir plusieurs de ces pages. Cet accès se fait à partir d'une adresse virtuelle fournie par le processeur et dont le format a été donné à la figure la. L'ensemble de gestion comprend une table T de registres descripteurs de segments et des moyens qui seront décrits plus loin pour transformer une adresse virtuelle fournie 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'adresse de base du premier registre descripteur correspondant à 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 OU1 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 base du registre descripteur, contenue dans le registre BA, permet de pointer l'une des entrées de la table T, en regard de laquelle se trouve le registre descripteur du segment concernant la tâche à exécuter, ou de pointer le premier des registres descripteurs des segments concernant cette tâche. L'ensemble de gestion comprend aussi un registre 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 binaires de l'index VI relatif au premier registre descripteur de segment de la tâche à exécuter. Le comparateur P fournit 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. 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 segments 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 virtuelle (EB9-0) passent sans être modifiés, dans un registre d'adresse réelle RAR de la mémoire physique PM, qui peut ainsi etre 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 indiquent l'adresse de base du segment réel, passent directement 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 ET1, 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 ET1 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, 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 valeur binaire 0 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 OU2, à partir du numéro de base de page physique DPB et du numéro de page virtuelle VP. En fait, la porte OU2 réalise l'opération PP=VP+DPB. Le registre d'adresse réelle RAR contient 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 portes remplacent des opérateurs effectuant des opérations complexes dans des ensembles de gestion connus. Ces ensembles connus utilisent en effet des additionneurs ou des comparateurs qui rendent ces opérations compliqué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'adresse 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 donnée D. On suppose que le registre descripteur de segment, pour le segment 3 "utilisateur" et "donnée" contient les éléments binaires suivants DSB1, DAM=30H, DPB=2011, exprimés dans une base hexadécimale. L'adresse physique après traduction est la suivante PB1, PP=2AH, PO=257. On peut constater que l'adresse virtuelle a été acceptée car le résultat de l'opération : VP.DAM=30HxOAH=0. Le numéro de page réelle PP est obtenu en effectuant la somme VP+DPB=OAH+2OH=2AH 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éalisation 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 ensemble de gestion utilisant un très faible nombre de composants. Ces composants logiques sont tous intégrables facilement sous boîtier. Cet ensemble permet également de gérer séparément les espaces entrée-sortie et les espaces local-commun. Enfin, elle offre la possibilité 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 1K octet et 16M octets). Les segments superviseur-utilisateur peuvent être séparés physiquement, de même que les segments instructions et données. Il en résulte une protection 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 (c100ns), 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.

Claims: 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 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 (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 physique en mémoire correspondant à une tâche à exécuter, et la valeur du décalage (PO} du début du segment physique, par rapport au début de la page réelle correspondante, caractérisé en ce qu'il comprend en outre un registre de base (BA) qui est chargé, pour chaque adresse virtuelle, 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 (OUI) 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 llad- ditionneur pointant l'une des entrées de la table (T) de registres descripteurs. 2. Ensemble de gestion 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 descripteurs mis en jeu dans l'exécution de ladite tâche, et un comparateur (COMPO relié au processeur (P) et au registre de contrôle (NBR), pour comparer les valeurs binaires contenues dans le registre de contrôle (NBR) et les va leurs binaires de l'index (VI), ce comparateur appliquant 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 1 et 2, caractérisé en ce que chaque registre descripteur contenant des valeurs binaires relatives 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 physique, 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 revendication 3, caractérisé en ce qu'il comprend en outre des moyens (OU2) pour former l'adresse physique (PP) de la page dans laquelle se trouve le début du segment physique, à partir du numéro de page virtuelle (VP) et de la valeur de la base de la page (DPB). 5. Ensemble de gestion selon la revendication 3, caractérisé en ce que les moyens pour vérifier que le numéro de page virtuelle (VP) n'n'excède pas la taille (DAM) du segment, sont constitués par une porte "ET". 6. Ensemble de gestion selon la revendication 4, caractérisé en ce que les moyens pour former le numéro (PP) de la page dans laquelle se trouve le segment à exécuter, sont constitués par une porte "OU". 7. Ensemble de gestion selon la revendication 1, caractérisé en ce que l'additionneur logique est une porte "OU".

Inventors: FINGER, ULRICH, LIGNERES, PIERRE, O'DONNELL, CIARAN
Applicants: ETAT FRANCAIS REPRESENTE PAR LE MINISTRE DES PTT (CENTRE NATIONAL D'ETUDES DES TELECOMMUNICATIONS), INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE
Application year: 1982
Main classification: G06F12
IPC codes: G06F12