Brevet FR2554259A1 — publié le 19850503

1. La présente invention concerne un procédé permet- tant de changer dynamiquement la formation d'adresses dans la mémoire d'un système de traitement de données. Par suite du développement récent, remarquable, de la technologie des matériels, il est maintenant pos- sible d'utiliser des mémoires de plus grande capacité dans les systèmes informatiques, et la demande pour de telles mémoires s'accélère de plus en plus dans le marché. Mais, lorsqu'on augmente la capacité de la mémoire d'un systè- me informatique, la possibilité d'adresser la mémoire doit également être augmentée, ce qui nécessite une modi- fication de la visibilité du logiciel. Il en résulte qu'il devient impossible d'utiliser des programmes, des- tinés à des systèmes informatiques classiques, dans des systèmes de traitement de données étendus comportant des dispositifs d'adressage de mémoire de grande capacité, et les conséquences sont graves. Dans le but d'éviter ce problème dans un système information capable de changer la formation des adresses, on a proposé jusqu'ici un procédé qui confère au matériel 2. une nouvelle fonction en plus des fonctions usuelles d'exécution des programmes existants et détermine la fonc- tion à utiliser au moment de l'élévation du système.La demande de brevet des Etats-Unis d'Amérique n 265.122/1981 (demande préliminaire de brevet japonais n 57-3284) décrit un système de commande d'adresse, o la zone d'adresse d'une instruction est divisée en une première zone et une seconde zone ayant une adresse de déplacement indicatrice d'un déplacement à partir de l'adresse de base, et la possibili- té d'adressage est étendue par addition à l'adresse de dé- placement d'adresses de remise en place de l'index et du segment désigné par la première zone. Selon ce procédé, dès que le système est élevé, seul le programme correspon- dant à la fonction prescrite peut être utilisé. Mais, compte tenu de la structure des programmes, il est courant qu'un programme nouvellement développé utilise le program- me originel existant comme sous-programme. Par conséquent, c'est un sérieux inconvénient qu'un programme développé correspondant à une nouvelle fonction puisse utiliser comme sous-programme le programme qui peut être exécuté seule- ment dans la fonction originelle existante. Un objet de la présente invention est d'éliminer l'inconvénient venant d'être mentionné et de prévoir un procédé de changement dynamique de la formation d'adresses, capable d'exécuter simultanément des programmes correspon- dant à des plans d'adressage différents dans la mémoire d'un système informatique. Un autre objet de la présente invention est un procédé permettant de changer dynamiquement la formation d'adresses,capable d'étendre les possibilités d'adressage de la mémoire sans influencer de manière importante le logiciel dans la mémoire d'un système informatique. Selon l'invention, on prévoit un procédé permet- tant de changer dynamiquement la formation d'adresses dans une mémoire d'un système informatique comportant un regis- tre de descripteur de segment destiné à maintenir des mots descripteurs de segment pour prescrire des segments conte- nant des mots d'instruction et des données stockés dans la mémoire munie d'adresses de mémoire, un registre d'adres- se pour désigner des adresses des données, et un compteur d'instruction pour désigner des adresses des mots d'instruc- tion. Le procédé comprendune première étape pour stocker les mots descripteurs de segment dans: le registre du des- cripteur de segment, une seconde étape pour commander par le registre du descripteur de segment le nombre de bits effectifs du registre d'adresse et du registre d'instruc- tion, une troisième étape pour former une adresse d'un mot d'instruction en ajoutant le contenu du registre de descripteur de segment et le contenu des bits effectifs du compteur d'instruction, et une quatrième étape pour for- mer une adresse d'une donnée en ajoutant le contenu du re- gistre de descripteur de segment, le contenu des bits effec- tifs du registre d'adresse et l'adresse dans le mot d'ins- truction. La présente invention sera bien comprise lors de la description suivante faite en liaison avec les dessins ci-joints dans lesquels: La figure 1 représente un exemple de système information auquel la présente invention peut s'appliquer; La figure 2 représente la relation entre seg- ments et un registre de descripteur de segment; La figure 3 représente un exemple d'un format de mot d'instruction utilisé dans la présente invention; Les figures 4 et 5 sont des schémas sous forme de blocs de circuits donnés à titre d'exemple qui sont uti- lisés dans la présente invention; Les figures 6,7, 8, 9, 10 et 11 sont des diagram- mes permettant d'expliquer un mode de réalisation de la présente invention. Un mode de réalisation préféré de la présente invention sera maintenant expliqué en détail en liaison avec les dessins d'accompagnement. 4. En liaison avec la figure 1, un système informa- tique auquel un mode-de réalisation de la présente inven- tion s'applique comprend une unité de mémoire 1, une uni- té arithmétique 2, une unité de commande d'entrée/sortie 3 et des unités d'entrée/sortie 4, 5 et 6. L'unité de mémoire 1 stocke des mots d'instruc- tion et des données nécessaires à l'exécution d'un program- me. L'unité arithmétique 2 extrait de l'unité de mé- moire les mots d'instruction et de données et execute le programme. L'unité de commande d'entrée/sortie 3 commande le transfert des données entre l'unité de mémoire 1 et chacune des unités d'entrée/sortie 4, 5 et 6. La figure 2 représente la relation entre des segments dans l'unité de mémoire 1 et un registre de des- cripteur de segment comportant un registre de descripteur de segment d'instruction 30 et un registre de descripteur de segment de donnée 40, inclus dans l'unité arithmétique 2. Un segment d'instruction 20 contenant des mots d'ins- truction est prescrit par des mots du descripteur de seg- ment, et les mots du descripteur de segment sont maintenus dans le registre 30 du descripteur de segment d'instruc- tion qui est constitué d'une zone limite 31, d'une zone de signalisation 32, d'un drapeau 33 de désignation d'adresse étendue et d'une zone de base 34. Le contenu de la zone de base 34 ayant 36 bits désigne l'adresse de base du segment d'instruction 20 par le mot de l'unité. Le contenu de la zone limite 31 désigne l'amplitude du segment d'instruc- tion 20 par le mot de l'unité. Le contenu de la zone de signalisation 32 donne au segment d'instruction 20 des pro- priétés telles que la permission d'exécution et la permis- sion d'écriture. Le contenu du drapeau 33 de désignation d'adresse étendue désigne des schémas de formation d'adresse pour l'unité de mémoire 1. Le contenu d'un segment de données 21 contenant des données est prescrit par des D. mots du descripteur de segment qui sont maintenus dans le registre 40 du descripteur de segment de donnée. Le regis- tre 40 est constitué d'une zone limite 41, d'une zone de signalisation 42, d'un drapeau 43 désignant une adresse étendue et une zone de base 44. Le contenu de la zone de base 44 ayant 36 bits désigne l'adresse de base du segment de donnée 21 par le mot de l'unité. Le contenu de la zone limite 41 désigne l'amplitude du segment de donnée 21 par le mot de l'unité. Le contenu de la zone de signalisa- tion 42 donne au segment de donnée 21 des propriétés tel- les que la permission de lecture et d'écriture. Le drapeau 43 désignant l'adresse étendue dans le registre 40 n'a pas de signification et est ignoré. En conformité avec une instruction,le registre 30 et le registre 40 sont chargés s15 avec un mot descripteur de segment dans l'unité de mémoi- re 1. La figure 3 représente un exemple de registre d'irztruction utilisé dans la présente invention pour le maintien de mots d'instruction. Un registre d'instruction 50 est constitué d'une zone d'adresse 51, d'un code d'ins- truction 52, d'un drapeau 53 désignant un registre de des- cripteur de segment de donnée et une zone 54 désignant un registre d'adresse. La zone d'adresse 51 comportant 18 bits désigne des adresses pour la donnée dans l'unité de mémoire 2L- 1 par le mot de l'unité. Le code d'instruction 52 désigne le traitement d'instructions. Le drapeau 53 indique si le registre 30 de descripteur de segment d'instruction doit être utilisé ou si le registre 40 de descripteur de seg- ment de donnée doit l'être lors de l'extraction de donnée de l'unité de mémoire 1. La zone 54 désignant le registre d'adresse désigne un registre d'adresse 61 parmi une plura- lité de registres d'adresse utilisés pour la formation d'adresses pour des données dans l'unité de mémoire 1. La figure 4 représente un circuit utilisé pour la formation d'adresses pour les mots d'instruction. Le con- tenu d'un compteur d'instruction 60 désignant des adresses 6. pour les mots d'instruction à exécuter et le contenu de la zone de base 34 dans le registre 30 de descripteur de segment d'instruction sont ajoutés par un addition- neur 80 de manière à former des adresses pour des mots d'instruction, opération pendant laquelle le nombre de bits effectifs du compteur d'instruction 60 est désigné ar un circuit de sélection 120 commandé par le drapeau 33 de désignation d'adresse étendue du registre 30. La figure 5 représente un circuit utilisé pour îc la formation d'adresses pour des données. Tout d'abord, le contenu de la zone d'adresse 51 dans un registre d'ins- truction 50 et le contenu d'un registre d'adresse 61 sont ajoutés par un additionneur 90. Alors, le résultat de cet- te addition et le contenu de la zone de base 34 du registre 30 ou de la zone de base 44 du registre 40 sont addition- nés par un additionneur 110 de manière à former des adres- ses pour des données. Le choix de la zone de base 34 oude la zone de base 44 est déterminé par un circuit de sélec- tion 100 commandé par le drapeau 53 désignant le registre de descripteur de segment de données du registre d'instruc- tion 50. Le nombre des bits effectifs du registre d'adres- se 61 est désigné par un circuit de sélection 130 commandé par le drapeau 33 désignant l'adresse étendue du regis- tre 30. Un procédé de formation d'adresses dans l'unité de mémoire 1 avec l'utilisation de la construction repré- sentée en figures 1, 2, 3, 4 et 5 sera maintenant expli- qué en liaison avec les figures 6, 7, 8, 9, 10 et 11. La figure 6 représente un procédé de formation d'adresses pour des mots d'instruction dans le cas o le drapeau 33 de désignation d'adresse étendue du registre 30 est "0". L'état "0" du drapeau 33 du registre 30 sera appelé ci-après mode d'adresse non-étendue et l'état "1" du drapeau 33 mode d'adresse étendue. Dans le cas du mo- de d'adresse non-étendue, seuls les 18 bits inférieurs 7. (bits 18 à 35) des 36 bits du compteur d'instruction 60 désignant des adresses pour les mots d'instruction à exécu- ter deviennent effectifs, et le contenu des 18 bits infé- rieurs du compteur d'instruction 60 et le contenu de la zone de base 34 ayant 36 bits du registre 30 sont ajoutés pour former des adresses pour des mots d'instruction. La figure 7 représente un procédé de formation d'adresse pour des données dans le mode d'adresse non éten- due sous un mode de segment d'instruction. Un procédé de formation d'adresse pour des données dépend de l'état du drapeau 53 désignant le registre de descripteur de segment de donnée du registre d'instruction 50 (l'état "0" du dra- peau 53 du registre d'instruction 50 sera appelé ci-après mode de segment d'instruction et l'état "1" de ce drapeau 53 mode de segment de donnée). Des données sont extraites du segment d'instruction 20. Dans le mode d'adresse non-éten- due, seuls les 18 bits inférieurs (bits 18 à 35) des 36 bits du registre d'adresse 61 désigné par la zone 54 du registre d'instruction 50 deviennent effectifs. Par consé- quent, dans le mode d'adresse non-étendue sous le mode de segment d'instruction, le contenu de la zone d'adresse 51 du registre d'instruction 50,le contenu des 18 bits infé- rieurs du registre d'adresse 61 et le contenu de la zone de base 34 ayant 36 bits du registre 30 sont additionnés pour former des adresses pour des données. La figure 8 représente un procédé de formation d'adresse pour des données dans le mode d'adresse non- étendue sous un mode de segment de donnée. Les données pour l'exécution d'instruction sont extraites du segment de donnée. Le contenu de la zone d'adresse 51 ayant 18 bits du registre d'instruction 50,le contenu des 18 bits infé- rieurs du registre d'adresse 61 et le contenu de la zone de base 44 ayant 36 bits du registre 40 sont additionnés pour former les adresses pour des données. La figure 9 représente un procédé de formation 8. d'adresses pour des mots d'instruction dans le mode d'adresse étendue, Dans ce mode, les 36. bits du compteur d'instruction 60 désignant des adresses pour les mots d'instruction à. exécuter deviennent effectifs, et des adresses pour des mots d'instruction sont formées par addition du contenu des 36 bits du compteur d'instruc- tion 60 et du contenu de la zone de base 34 à 36 bits du registre 30. La figure 10 représente un procédé de formation d'adresses pour des données dans le mode d'adresse éten- due sous un mode de segment d'instruction. Dans ce mode, les 36 bits du registre d'adresses 61 désignés par la zo- ne 64 de désignation de registre d'adresse du registre d'instruction 50 deviennent effectifs. Il en résulte que, dans le mode d'adresses étendue sous le mode de segment d'instruction, le contenu de la zone d'adresse 51 à 18 bits du registre d'instruction 50,1e contenu des 36 bits du re- gistre d'adresse 61 et le contenu de la zone de base 34 à 36 bits du registre 30 de descripteur de segment d'instruc- tion sont ajoutés pour former des adresses pour des don- nées. La figure 11 représente un procédé de formation d'adresses pour des données dans le mode d'adresse éten- due sous le mode de segment de donnée. Dans ce cas, le contenu de la zone d'adresse 51 à 18 bits du registre d'instruction 50,1e contenu des 36 bits du registre d'adres- se 61 et le contenu de la zone de base 34 à 36 bits du registre 30 sont ajoutés pour former des adresses pour des données, Comme on peut le voir d'après l'explication précé- dente selon le mode de réalisation préféré de la présente invention,des. adresses d'instruction et des adresses de donnée, respectivement, atteignant 256 kilo mots (218 hits) ou 64 giga mots (236 bits) peuvent être formées en comman- dant les registres du système de traitement de données. 54259 9. De plus,bien que il n'en soit pas fait mention en ce oui concerne le mode de réalisation préféré précé- dent, il est évidemment faisable de considérer les adres- ses formées comme des adresses imaginaires et de les transformer en réelles adresses par le procédé consistant transférer des blocs d'information entre mémoire prin- cipale et mémoires tampons. En outre, le mode de réalisa- tion décrit ci-dessus n'est donné qu'à titre d'exemple et il est également clair que l'application de la présente 0 invention n'est pas limité au cas spécifique traité ci-des- sus conmme mode de réalisation préféré. Ainsi, la présente invention a pour résultat que la formation d'adresses dans une mémoire peut être modi- fiée dynamiquement en changeant les plans d'adressage sous la commande de registres pouvant être instaurés par les instructions du logiciel. La présente invention n'est pas limitée aux exemples de réalisation qui viennent d'être décrits, elle est au contraire susceptible de modifications et de varian- tes qui apparaîtront à l'homme de l'art. 255r4259 10. REVENDICATIONS 1 - Procédé de changement dynamique de la for- mation d'adresses dans une mémoire (1) d'un système de traitement de données comportant un registre de descrip- teur de segment (3C) destiné à maintenir des mots de descripteur de segment pour prescrire des segments conte- nant des mots d'instruction et des données stockées dans la mémoire (1) équipée d'adresses de mémoire, un regis- tre d'adresse (61) pour désigner des adresses pour des données stockées dans la mémoire, et un compteur d'ins- truction (60) pour désigner des adresses des mots d'ins- truction stockés dans la mémoire, ce procédé comprenant une première étape pour stocker les mots de descripteur de segment dans le registre de descripteur de segment (30), une seconde étape pour commander le nombre de bits effectifs du registre d'adresse (61) et du compteur d'ins- truction (60) en conformité avec l'information du registre de descripteur de segment, une troisième étape pour dési- gner une adresse d'un mot d'instruction dans la mémoire (1) devant être exécuté par addition du contenu du regis- tre de descripteur de segment (30), et une quatrième éta- pe pour désigner une adresse d'une donnée dans la mémoire par addition du contenu du registre de descripteur de segment (30) du contenu des bits effectifs du registre d'adresse (61) et de l'adresse du mot d'instruction. 2 - Procédé de changement dynamique de la for- mation d'adresses pour des mots d'instruction et des données dans une mémoire (1) d'un système de traitement de données comportant un registre de descripteur de segment d'instruction (30) destiné à maintenir des mots de descrip- teur de segment afin de prescrire des segments contenant des mots d'instruction ou des données stockées dans la mémoire ayant des adresses de mémoire, un registre de descripteur de segment de donnée (40) destiné à mainte- nir des mots de descripteur de segment pour prescrire des 11. segments contenant des données,un registre d'adresse pour désigner des adresses pour des données dans la mé- moire, et un compteur d'instruction (60) pour désigner des adresses pour des mots d'instruction dans la mémoire, ce procédé comprenant une première étape pour stocker dans le registre de descripteur de segment d'instruction (30) les mots de descripteur de segment pour prescrire les segments contenant des mots d'instruction,une seconde étape pour stocker dans le registre de descripteur de segment de donnée (40) les mots de descripteur de segment pour pres- crire les segments contenant des données une troisième étape pour commander le nombre de bits effectifs du regis- tre d'adresse (61) -et d'un compteur d'instruction (60) en conformité avec l'information du: registre de descripteur de segment d'instruction (30), une quatrième étape pour désigner une adresse d'un mot d'instruction dans la mémoi- re à exécuter par addition du contenu du registre de des- cripteur de segment d'instruction (30) et du contenu des bits effectifs du compteur d'instruction, une cinquième étape pour désigner une adresse d'une donnée dans la mé- moire par addition du contenu du registre de descripteur de segment de donnée (40), du contenu des bits effectifs du registre d'adresse et de l'adresse du mot d'instruc- tion.