Brevet FR2621719A1 — publié le 19890414

PROCEDE DE CONVERSION D'ADRESSE La présente invention se rapporte à un procédé de conversion d'adresse pour utilisation dans un processeur de données comportant une mémoire virtuelle. Du fait de l'importante expansion des appli- cations des ordinateurs numériques dans les stations de données, on en est arrivé à demander un important espace de mémoire. C'est pour ce motif qu'il existe des systèmes à mémoire virtuelle, largement utilisés, qui permettent l'expansion de l'espace de mémoire indépendamment de la dimension réelle de la mémoire principale. Dans un tel système, l'espace à adresses virtuelles est habituellement défini sur une base segment par segment ou page par page pour l'espace à adresses physiques, d'un appareil à mémoire réelle, qui est réalisé avec une mémoire principale, et les adresses qui sont dans ce système à adresses virtuelles sont désignées par l'utilisation d'adresses logiques. L'espace à adresses physiques de l'appareil à mémoire réelle mentioné ci-dessus est utilisé en petites subdivisions, dont chacune correspond à une page d'adresses logiques. Chaque page d'un espace à adresses virtuelles dont on a besoin lors de l'exécution du traitement est, prélevée dans une mémoire extérieure telle qu'une station disquette et elle est rangée dans l'une des petites subdivisions ' de l'espace à adresses fixes pour utilisation ultérieure. La commande de cette procédure se fait avec un programme de commande connu sous le nom de gestionnaire de mémoire virtuelle pour utiliser effi- cament l'espace physique limité. La conversion des adresses logiques en adresses physiques est faite par la section de conversion d'adresses de l'appareil de traitement des données par l'intermédiaire d'une structure de commande constituée d'une "table" des descripteurs de segments, des descripteurs de pages et analogues existants dans la mémoire principale. Un répertoire de conver- sion, tel qu'un répertoire de pages actives (TLB) permet d'accomplir à haute vitesse cette conversion d'adresses. Dans un appareil de traitement des données utilisant un tel système à mémoire virtuelle, un programme d'ordinateur (auquel on se réfère ci-dessous simplement sous le nom de "programme") écrit en langage machine exprime toutes les adresses en termes logiques uniquement. Toutefois, dans un programme privilégié, comme un système d'exploitation (OS), son expression en adresses physiques est fréquemment nécessaire du fait qu'il faut se référer à la struc- ture de commande mentionnée ci-dessus constituée d'une "fable" de descripteurs de segments, de descrip- teurs de segments, de descripteurs de pages et analogues et qu'il faut la mettre à jour. Les procédés utilisés pour un tel accès au moyen d'adresses physiques incluent ce qui suit. C'est ainsi que l'on bloque une pluralité de segments consécutifs, équivalents à la capacité de l'espace à adresses physiques, dans l'espace à adresse logiques pour que l'on puisse y accéder au moyen d'adresses physiques. En outre, on fait correspondre successivement des pages de chaque segment à des zones consécutives d'adresses physiques. Il en résulte que l'on fait correspondre l'espace à adresses physiques aux adresses logiques de segments spécifiques, et que l'on a ainsi rendu possible l'accès d'espaces consécutifs de mémoire (adresses 2U21719 physiques) par l'utilisation d'adresses logiques consécutives. Supposons que, par exemple, un premier segment et un second segment soient affectés à l'espace à adresses physiques pour que l'on puisse accéder au moyen d'une adresse physique, et que soit le premier, soit le second segment soit choisi par la première moitié ou par la dernière moitié de cette adresse physique. Il en résulte qu'une adresse d'un segment et une adresse relative à l'intérieur d'un segment sont synthétisées pour donner une adresse logique, au moyen de laquelle on peut accéder dans l'espace à adresses physiques et, à ce moment là, la conti- nuité est maintenue dans chaque segment. Si, en outre, on peut bloquer les deux segments spécifiques dans des régions consécutives de l'espace à adresses logiques, on peut obtenir en outre une continuité- et une identité entre une adresse logique et les adresses physiques. Toutefois, en même temps que l'augmentation significative du degré d'intégration des mémoires à semi-conducteurs dans les années- récentes, la capacité de l'espace à adresses physiques continue à croître. Une conséquence en est la difficulté de bloquer, dans l'espace à adresses logiques, une - capacité équivalente à celle de l'espace à adresses physiques, dans le but de pouvoir y accéder au moyen d'adresses physiques. Entre temps, International Business Machines, Inc., a proposé -un système utilisant un mode opé- ratoire pour accéder- à une - mémoire en utilisant des adresses logiques en tant qu'adresses physiques. Toutefois, lorsque l'accès au moyen d'adresses logiques et l'accès au moyen d'adresses physiques peuvent apparaitre simultanément dans un unique programme, la commutation du mode opératoire est chaque fois nécessaire, ce qui se traduit par l'incon- vénient d'une perte de temps système. L'un des buts de la présente invention est donc de proposer un procédé. de conversion d'adresses exempt des inconvénients décrits ci-dessus. Dans un procédé conforme à l'un des aspects de l'invention, on propose un procédé de conversion d'adresses qui comporte: une étape dedécision concernant le mode opératoire pour décider si, oui ou non, le mode opératoire, défini pour chaque processus, se trouve dans un état activé; une étape de décision concernant l'utilisation d'un registre, sensible à une décision affirmative à ladite étape précédente &e décision concernant le mode opératoire, pour décider si, oui ou non, on a utilisé un registre d'adresses comportant un numéro de référence spécifique, lors de la génération d'adresse, à ladite étaoe de génération d'adresse effective; une étape de conversion d'adresse, sensible à une décision négative à ladite étape de décision concernant l'utilisation d'un registre, pour convertir en une adresse physique une adresse effective générée àladite étapede génération d'adresse effective;une étape de traitement d'adresse physique, sensible et une décision affirmative à ladite étapede décision concernant l'utilisation d'un registre, pour traiter l'adresse effective générée à ladite étape de génération d'adresse effective en tant qu'adresse physique; etune tape d'accès en mémoire pour accéder dans une mémoire au moyen de l'adresse physique résultant de la conversion effectuée audit pas de conversion d'adresse ou au moyen de l'adresse provenantde ladite étare de traitement d'adresse physique. Les caractéristiques et avantages décrits ci-dessus, ainsi que d'autres, de la présente inven- tion ressortiront mieux de la description détaillée ci-dessous prise en liaison avec les dessins joints sur lesquels: - la figure 1 est un ordinogramme d'une réali- sation préférée de l'invention, et - les -figures 2 et 3 illustrent des conversions d'adreses obtenues par la réalisation préférée représentée sur la figure 1. Sur les dessins, les mêmes chiffres de référence désignent respectivement les mêmes éléments de struc- ture. Pour un processeur de données à laquelle la présente invention peut s'appliquer, l'unité d'exécu- tion de traitement est dénommée un processus et le programme source se divise en une pluralité de processus, permettant une exécution parallèle, qui sont exécutés en synchronisme l'un avec l'autre. Chaque processus possède, comme l'une de ses fonctions, une zone mémoire dans laquelle les valeurs enregistrées sur le processeur de- données doivent rester en attente lorsque ce processus particulier n'est pas en cours d'exécution sur le processeur. La pluralité de processus possèdent en commun un bloc de commande de processus (PCB) incluant le pointeur du- point de démarrage d'une structure de commande indiquant l'espace à adresses logiques de chaque processus. En se reportant aux figures 1 et 2, une réali- sation préférée de l'invention comporte une étape 1 d'accès à l'opérande pour accéder à un moyen 220 de. génération d'adresses effectives, en réponse au contenu du champ 201 de désignation de l'opérande d'une instruction présentant un opérande en cours d'exécution sur le processeur; une étape 2 de génération d'adresse effective pour ajouter le contenu d'un registre d'adresses 222 indiqué par le contenu d'un champ de désignation de registre d'adresses, qui se trouve dans ledit champ 201 de désignation d'opérande, pour ajouter aussi le contenu d'un registre d'index 223 indiqué par le contenu d'un champ de désignation de registre d'index, qui se trouve dans ledit champ 201 de désignation d'opérande, et pour ajouter aussi le décalage d'un champ de décalage 204 qui se trouve dans ledit champ 201 de désignation d'opérande, pour générer une adresse effective; et comporte également una étape 3 de décision concernant le mode opératoire pour décider si un mode opératoire 211 présent sur le bloc PCB 210 du processus en cours d'exécution sur ledit processeur se trouve dans un état activé "1" ou dans un état inactivé "0". Une caractéristique de la présente invention réside en une signification spécifique assignée à un numéro spécifique de registre d'adresses indiqué par le contenu du champ 202 de désignation de registre d'adresses. Supposons maintenant que no 5 soit un tel numéro spécifique du registre d'adresses dans la réalisation préférée de l'invention. Si c'est tout autre numéro de registre d'adresses que ce numéro spécifique5de registre d'adresses qui est indiqué, une adresse effective 225 générée sur la base du contenu du registre d'adresses 222 pour ce numéro non spécifique est traitée en tant qu'adresse logique ordinaire. 30. Par contre, si c'est le numéro spécifique 5 de registre d'adresses qui est indiqué, une adresse effective (325 sur la figure 3) générée sur la base du contenu de registres d'adreses 222 pour ce numéro spécifique est traitée en tant qu'adresse physique. La réalisation préférée de l'invention comporte en outre une étape 4 de décision concernant le numéro de registre pour décider, en réponse à l'état activé "1" du mode opératoire au pas 3 de décision concernant le mode opératoire si, oui ou non, le contenu du champ 202 de désignation de registre d'adresses d'un mot d'instruction 200 indique le numéro spécifique de registre d'adresses. S'il est décidé que le mode opératoire se trouve à l'état.inactivé à ladite étape 3 de décision, ou bien si le contenu du champ 202 de désignation de registre d'adresses du mot d'instruction 200 n'indique pas le numéro spécifique 5 de registre d'adresses à ldite étape 4 de décision, l'adresse effective est convertie en une adresse physique (pas 5). Dans ce cas, si le mode opératoire 211 sur le bloc PCB 210 se trouve à l'état "O', ou l'état inactive, il n'y aura- pas dépendance à l'égard du numéro de registre d'adresses indiqué par le champ 202 de désignation de registre d'adresses. Cette conversion d'adresse s'effectue de la façon suivante. En se reportant à la figure 2, l'adresse effective 225, comme toute adresse rangée dans le. registre d'adresses 222, est constituée de numéros de segments (STN et STE), d'un numéro de page (PTE). et d'un.e adresse relative à l'intérieur de la page (PRA). Une structure de commande 217 comporte le bloc PCB 210, une table (STWA) de mots de début de la table de segments, une table de segments (ST) et une table de pages (PT). Le fait d'accéder au moyen dfune adresse constituée d'un contenu prescrit (l'adresse de début de la table STWA) du bloc PCB 210 et d'un numéro de segment (STN) qu'on lui ajoute permet de lire, dans la table STWA 212; un contenu prescrit (l'adresse de début de la table de segments ST 213). Le fait d'accéder au moyen d'une adresse constituée de l'adresse de début de cette table de segments ST 213 et d'un numéro de segment (STE) qu'on lui ajoute permet de lire, dans la table de segments ST 213, un contenu prescrit (l'adresse de début de la table de pages PT 214). Le fait d'accéder au moyen d'une adresse constituée de l'adresse de début de cette table de pages PT 214 et d'un numéro de page' (PTE) qu'on lui ajoute permet de lire dans la table de *pages PT 214 l'adresse de début 215 d'une page prescrite qui se trouve dans un espace à adresses physiques. En ajoutant à cette adresse de début 215 une adresse relative intérieure à la page (PRA) de l'adresse effective 225, on obtient l'adresse physique désirée 216. Cette conversion d'adresse en une adresse physique par l'intermédiaire de la structure de commande 217 se fait au moyen de la section de conversion d'adresse (non représentée) du processeur de données. En se reportant maintenant à la figure 1, on accède à la mémoire au moyen de l'adresse physique 216 obtenue par la conversion d'adresse effectuée à l'étape 5 (étape 7). En se reportant maintenant aux deux figures 1 et 3, si le contenu du champ 202 de désignation d'adresse du mot d'instruction 200 indique le numéro spécifique 5 de registre d'adresses à l'àtape 4, cela prouve que l'adresse effective 325, générée par le moyen 320 de généation. d'adresse effective, est l'adresse physique désirée 316. Dans ce cas, par conséquent, on accède à la mémoire au moyen de l'adresse physique désirée 316 d'un espace à adresses physiques 350 sans que soit nécessaire la conversion d'adresse par l'utilisation de la structure de commande 317. L'une des caractéristiques de la présente invention est qu'elle propose un mode opératoire pour accéder au moyen d'une adresse effective générée par un registre d'adresses qui comporte un numéro de référence spécifique, ladite adresse effective étant utilisée telle qu'elle est, en tant qu'adresse physique. Cette caractéristique permet un accès facile au moyen des adresses physiques, ce qui est nécessaire dans des processus privilégiés. En outre, grâce à l'utilisation différenciée de numéros de registre d'adresses, l'invention permet la présence simultanée de l'accès ordinaire au moyen d'une adresse logique et de l'accès privilégié au moyen d'une adresse physique, ceci dans un unique processus, sans que cela mène à une perte de temps système résultant de la commutation. R E V E N D I C A T I 0 N Procédé de conversion d'adresse comportant: une étape (2) de génération d'adresse effective pour générer des adresses effectives en utilisant des registres d'adresses (222); *une étape (3) de décision concernant le mode opératoire pour décider si, oui ou non, le mode opératoire, défini pour chaque processus, se trouve dans un état activé; une étape (4) de décision concernant l'utilisation d'un registre, sensible à une décision affirmative àl'étape précédednte (3) de décision concernant le mode opératoire, pour décider si, oui ou non, on a utilisé un registre d'adresses comportant un numéro de référence spécifique, lors de la génération d'adresse, à ladite étape (2) de génération d'adresse effective; et une étape d'accès en mémoire, sensible à une décision affirmativeà l'étape précédente (4) de décision concernant l'utilisation d'un registre, pour accéder en mémoire au moyen d'une adresse effective générée à ladite étape (2) de génération d'adresse effective, ladite adresse effective étant utilisée en tant qu'adresse physique.