FR2652926A1 - METHOD FOR OPERATING THE MEMORY IN A VIRTUAL ADDRESSING TYPE COMPUTER SYSTEM AND DEVICE FOR IMPLEMENTING SAID METHOD. - Google Patents

METHOD FOR OPERATING THE MEMORY IN A VIRTUAL ADDRESSING TYPE COMPUTER SYSTEM AND DEVICE FOR IMPLEMENTING SAID METHOD. Download PDF

Info

Publication number
FR2652926A1
FR2652926A1 FR8913110A FR8913110A FR2652926A1 FR 2652926 A1 FR2652926 A1 FR 2652926A1 FR 8913110 A FR8913110 A FR 8913110A FR 8913110 A FR8913110 A FR 8913110A FR 2652926 A1 FR2652926 A1 FR 2652926A1
Authority
FR
France
Prior art keywords
address
addressing
memory
descriptor
procedure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR8913110A
Other languages
French (fr)
Other versions
FR2652926B1 (en
Inventor
Michel Dorotte
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull SA
Original Assignee
Bull SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to FR8913110A priority Critical patent/FR2652926B1/en
Application filed by Bull SA filed Critical Bull SA
Priority to ES90402663T priority patent/ES2093639T3/en
Priority to AT90402663T priority patent/ATE142035T1/en
Priority to DE69028269T priority patent/DE69028269T2/en
Priority to EP90402663A priority patent/EP0421845B1/en
Priority to US07/592,036 priority patent/US5129070A/en
Priority to JP2269291A priority patent/JPH067377B2/en
Publication of FR2652926A1 publication Critical patent/FR2652926A1/en
Application granted granted Critical
Publication of FR2652926B1 publication Critical patent/FR2652926B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0886Variable-length word access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation

Abstract

The method and apparatus for using the memory in an information processing system of the virtual addressing type is characterized in that a first memory domain DX is organized around a logical address of NX bits in size. In the memory domain DX, a plurality of address spaces EAX of identical structure is defined and relative addressing of a size NL less than NX is allowed. One of the address spaces EAX (hereinafter the current address space EAC) is assigned temporarily and interchangeably to a second memory domain DL organized around an address that is NL bits in size.

Description

L'invention concerne un procédé d'exploitation de la mémoire dans unThe invention relates to a method for exploiting memory in a

système informatique de type à adressage virtuel et un dispositif pour la mise en oeuvre dudit procédé. Le concept connu d'adressage virtuel (ou mémoire virtuelle) permet d'offrir au système et à ses utilisateurs une capacité mémoire logique bien supérieure à celle de la mémoire physique. En association avec le concept de segmentation également connu qui permet de diviser la mémoire virtuelle en zones (appelés segments) indépendantes les unes des autres, l'adressage virtuel s'est révélé particulièrement bien adapté à la multi  virtual address type computer system and apparatus for carrying out said method. The known concept of virtual addressing (or virtual memory) makes it possible to offer the system and its users a logical memory capacity much greater than that of the physical memory. In combination with the concept of segmentation also known that divides the virtual memory zones (called segments) independent of each other, virtual addressing has proved particularly well suited to the multi

programmation et au multitraitement.  programming and multiprocessing.

L'augmentation régulière et significative de la capacité des composants physiques constituant la mémoire d'un système informatique (les mémoires vives dynamiques DRAM de 1 Mo sont actuellement disponibles sur le marché) nécessite une augmentation correspondante des mémoires virtuelles. Toutefois les concepteurs de système d'exploitation pour systèmes informatiques se trouvent confrontés à divers problèmes liés à l'adressage, parmi lesquels: -la dimension du format d'adressage devient insuffisante  The steady and significant increase in the capacity of the physical components constituting the memory of a computer system (1 MB DRAM dynamic random access memories are currently available on the market) requires a corresponding increase in virtual memories. However, operating systems designers for computer systems are confronted with various problems related to addressing, among which: the size of the addressing format becomes insufficient

et doit être étendue.and must be extended.

-le nouveau système d'exploitation à adressage étendu doit être compatible avec l'ancien pour permettre, tout du moins pendant une période de transition assez longue, l'exécution des programmes utilisateurs existants conçus  -the new extended addressing operating system must be compatible with the old one to allow, at least for a fairly long transition period, the execution of the existing user programs designed

selon l'ancien système d'exploitation.  according to the old operating system.

L'invention a pour objectif un procédé d'exploitation de mémoire virtuelle à grande capacité qui répond à l'exigence de compatibilité avec beaucoup de souplesse  The object of the invention is a high-capacity virtual memory operation method which satisfies the compatibility requirement with a great deal of flexibility.

pour les utilisateurs.for users.

Plus particulièrement l'invention propose un procédé d'exploitation de la mémoire dans un système informatique du type à adressage virtuel, caractérisé en ce que: -on organise un premier domaine mémoire DX autour d'un adressage de dimension NX bits, -on définit dans le domaine mémoire DX une pluralité d'espaces d'adressage EAX de structure identique et admettant un adressage relatif de dimension NL bits inférieure à NX, -on affecte de façon temporaire et interchangeable un des espaces d'adressage EAX (ci-après appelé espace courant EAC) à un second domaine mémoire DL organisé autour d'un  More particularly, the invention proposes a method for exploiting the memory in a computer system of the virtual addressing type, characterized in that: -on organizes a first memory domain DX around a NX bit size addressing, -on defines in the memory domain DX a plurality of address spaces EAX of identical structure and admitting a relative addressing of dimension NL bits less than NX, -on temporarily and interchangeably assigns one of the address spaces EAX (hereinafter called current space EAC) to a second memory domain DL organized around a

adressage de dimension NL bits.NL bit size addressing.

Dans un premier mode de mise en oeuvre de procédé selon l'invention, un format d'adressage FX1 de dimension NX permet d'accéder aux espaces EAX par extension d'un format d'adressage relatif FL de dimension NL au moyen d'une zone complémentaire contenant au moins un champ destiné à  In a first mode of implementation of the method according to the invention, an address format FX1 of dimension NX makes it possible to access the EAX spaces by extension of a relative addressing format FL of dimension NL by means of a complementary zone containing at least one field intended for

recevoir l'identificateur de l'espace EAX correspondant.  receive the identifier of the corresponding EAX space.

Ainsi par l'affectation temporaire d'un des espaces d'adressage interchangeables EAX au domaine DL et le reformatage particulier des adressages selon les deux dimensions d'adresses disponibles NL et NX (par exemple 32 et 64 bits) la nouvelle organisation de la mémoire offre la possibilité d'utiliser concurremment les deux dimensions d'adresses. L'organisation de la mémoire virtuelle selon l'invention apparaît ainsi comme bien supérieure à une simple extension linéaire de mémoire qui n'offre pas la possibilité pour les programmes existants de profiter de cette extension. Selon un autre mode de mise en oeuvre du procédé conforme à l'invention le domaine mémoire DL comporte un espace d'adressage permanent EAPCB de structure identique à celle des espaces d'adressage EAX, l'espace EAPCB étant repérable dans le domaine DX par un identificateur de  Thus by the temporary assignment of one of the EAX interchangeable address spaces to the DL domain and the particular reformatting of the addresses according to the two available address sizes NL and NX (for example 32 and 64 bits) the new organization of the memory offers the possibility of using both address dimensions concurrently. The organization of the virtual memory according to the invention thus appears to be much greater than a simple linear extension of memory which does not offer the possibility for existing programs to take advantage of this extension. According to another embodiment of the method in accordance with the invention, the memory domain DL comprises a permanent address space EAPCB of identical structure to that of the address spaces EAX, the space EAPCB being detectable in the domain DX by an identifier of

valeur égale à zéro.value equal to zero.

Avantageusement les espaces d'adressage sont du type segmenté, de façon optionnelle à plusieurs dimensions  Advantageously, the address spaces are of the segmented type, optionally in several dimensions

et/ou partageables par plusieurs processus.  and / or sharable by several processes.

Selon encore un autre mode de mise en oeuvre du procédé selon l'invention, on définit dans le domaine mémoire DX, une pluralité de segments accessibles à partir d'un second  According to yet another embodiment of the method according to the invention, a plurality of segments accessible from a second are defined in the memory domain DX.

format d'adressage FX2 de dimension NX.  FX2 addressing format of NX dimension.

La mise en oeuvre du procédé selon l'invention montre toute sa souplesse au niveau de l'exécution des processus par le système informatique. Plus particulièrement, selon encore une autre variante de l'invention: -on choisit pour les espaces d'adressage de dimension NL, les espaces EAX et éventuellement l'espace EAPCB, des descripteurs de procédure PD de structure de base identique, -on définit des descripteurs de changement d'espace d'adressage (ci-après appelés CASD) de structure de base identique à celle des descripteurs de procédure PD, -on organise à partir d'un processus exécutable dans un espace d'adressage donné, l'appel d'une procédure exécutable dans un autre espace d'adressage par  The implementation of the method according to the invention shows all its flexibility in the execution of the processes by the computer system. More particularly, according to yet another variant of the invention: for the address spaces of dimension NL, the spaces EAX and possibly the space EAPCB, PD procedure descriptors of identical basic structure are chosen, -on defines address space descriptors (hereinafter referred to as CASDs) of the same basic structure as the PD procedure descriptors, -on organized from an executable process in a given address space, the call an executable procedure in another address space by

l'intermédiaire d'un descripteur de type CASD.  through a CASD type descriptor.

Avantageusement les descripteurs de type CASD comportent un champ destiné à recevoir l'identificateur de l'espace d'adressage contenant la procédure appelée et le pointeur de la procédure appelée dans le nouvel espace d'adressage. Ainsi un programme existant conçu selon le mode d'adressage de dimension limitée DL est susceptible par le jeu des appels de procédures dans d'autres espaces d'adressage de profiter pleinement des nouvelles capacités du système. Il est par ailleurs possible pour ces anciens programmes d'être contenus en entier y compris le code  Advantageously, the CASD descriptors comprise a field intended to receive the identifier of the address space containing the called procedure and the pointer of the called procedure in the new address space. Thus an existing program designed according to the limited-size addressing mode DL is likely by the set of procedure calls in other address spaces to take full advantage of the new capabilities of the system. It is also possible for these old programs to be contained in full including the code

dans les nouveaux espaces d'adressage.  in the new address spaces.

L'invention concerne également un système informatique comportant les moyens matériels et logiciels pour mettre en oeuvre le procédé présenté ci-avant dans toutes ses variantes. Plus précisément le système informatique comporte un sous-système central structuré autour d'un ou plusieurs processeurs centraux (CPU) et d'une mémoire  The invention also relates to a computer system comprising the hardware and software means for implementing the method presented above in all its variants. More precisely, the computer system comprises a central subsystem structured around one or more central processors (CPU) and a memory

centrale, chaque processeur comprenant des moyens micro-  each processor comprising micro-means

programmés pour effectuer la gestion de la mémoire centrale et de contrôleurs d'entrée/sortie IOC vers des sous-systèmes périphériques, notamment du type mémoire de masse de capacité suffisante pour l'adressage virtuel et des moyens logiciels, notamment un ensemble de programmes regroupés sous le nom de système d'exploitation, pour permettre en association avec les  programmed to perform the management of the central memory and IOC input / output controllers to peripheral subsystems, in particular of the mass memory type of sufficient capacity for virtual addressing and software means, in particular a set of grouped programs under the name of operating system, to allow in association with the

moyens micro-programmés la mise en oeuvre de l'invention.  micro-programmed means the implementation of the invention.

L'invention est maintenant décrite en se référant aux dessins ci-annexés dans lesquels: - la figure 1 est un schéma d'un système informatique mettant en oeuvre le procédé selon l'invention, - la figure 2 est une représentation schématique de la segmentation de la mémoire virtuelle selon l'invention, - la figure 3 est une représentation schématique de l'organisation des domaines mémoire en 32 et 64 bits selon l'invention, la figure 4 est une représentation du format FX2 d'un premier descripteur de données 4GB/ITS64 de dimension 64 bits conforme à l'invention, - la figure 5 est une représentation schématique du développement d'adressage à partir du descripteur illustré sur la figure 4, -la figure 6 est une représentation schématique du format FXl d'un autre descripteur de données 64K/4MB/ITS64 de dimension 64 bits conforme à l'invention, - la figure 7 est une représentation schématique d'un développement d'adressage à partir du descripteur illustré sur la figure 6, - la figure 8 est une représentation schématique du format FL du descripteur de données 64K/4MB/ITS32 de dimension 32 bits utilisé dans la mise en oeuvre de l'invention, - la figure 9 est un rprésentation schématique du format du registre CSR conforme à l'invention, - la figure 10 est une représentation schématique du format d'un descripteur d'adresse absolue en mémoire physique AA64 de dimension 64 bits conforme à l'invention, - la figure 11 (figures 11(1) et 11(2)) est une représentation schématique d'un bloc de contrôle de processus PCB conforme à l'invention, - la figure 12 est une représentation schématique d'un élément de pile conforme à l'invention, la figure 13 est une représentation schématique d'un descripteur de procédure PD32 utilisé en Mode 32 et en Mode 32/64, - la figure 14 est une représentation schématique d'un descripteur de procédure CASD utilisé en cas de changement d'espace d'adressage, - la figure 15 est une représentation schématique d'un descripteur de procédure PD64 utilisé en Mode 64, - la figure 16 est une représentation schématique d'un format particulier du registre compteur d'instructions IC utilisé dans l'invention, - la figure 17 est une représentation schématique du mécanisme de base d'un appel de procédure du type à descripteur de procédure et utilisé dans le cadre de l'invention, - et les figures 18,19 et 20 sont des représentations schématiques du mécanisme de changement dynamique de mode d'exécution de processus, selon les cas N 1, 2 et 3  The invention is now described with reference to the accompanying drawings in which: - Figure 1 is a diagram of a computer system implementing the method according to the invention, - Figure 2 is a schematic representation of the segmentation. of the virtual memory according to the invention, - Figure 3 is a schematic representation of the organization of 32 and 64 bit memory domains according to the invention, Figure 4 is a representation of the FX2 format of a first data descriptor FIG. 5 is a diagrammatic representation of the addressing development from the descriptor illustrated in FIG. 4, Another 64-bit / 4MB / ITS64 64-bit data descriptor according to the invention, FIG. 7 is a schematic representation of an addressing development from the descriptor illustrated in FIG. FIG. 8 is a schematic representation of the FL format of the 32-bit 64K / 4MB / ITS32 data descriptor used in the implementation of the invention; FIG. 9 is a diagrammatic representation of the format of the register; CSR according to the invention, - Figure 10 is a schematic representation of the format of an absolute address descriptor in physical memory AA64 64-bit dimension according to the invention, - Figure 11 (Figures 11 (1) and 11 (2)) is a diagrammatic representation of a PCB process control block according to the invention; FIG. 12 is a schematic representation of a stack element according to the invention, FIG. schematic of a PD32 procedure descriptor used in Mode 32 and in Mode 32/64; FIG. 14 is a schematic representation of a CASD procedure descriptor used in the event of a change of address space, FIG. 15 is a representation sch of a PD64 procedure descriptor used in Mode 64, - Figure 16 is a schematic representation of a particular format of the instruction counter register IC used in the invention; - Figure 17 is a schematic representation of the mechanism of basis of a procedural descriptor type procedure call and used in the context of the invention, - and FIGS. 18, 19 and 20 are schematic representations of the dynamic process mode change mechanism, according to cases N 1, 2 and 3

prévus dans l'invention.provided in the invention.

Par convention, dans la suite de l'exposé le sigle "**" désignera l'expression mathématique "exposant", par exemple 2**10=1024. De même le sigle "<>" designera  By convention, in the continuation of the exposition the initials "**" will designate the mathematical expression "exponent", for example 2 ** 10 = 1024. Similarly, the initials "<>" will designate

l'expression mathématique "différent de".  the mathematical expression "different from".

Dans le mode de réalisation de l'invention ici décrit à titre d'exemple non limitatif, le système informatique a été conçu pour rester compatible avec des systèmes existants supportant un adressage à 32 bits. Il en résulte que le système selon l'invention incorpore à des degrés divers certains éléments matériels et logiciels des systèmes courants. Pour ne pas surcharger l'exposé qui va suivre, celui-ci sera centré sur la présentation de l'invention proprement dite. Aussi le lecteur pourra se reporter pour plus de détails sur la documentation disponible et tout particulièrement sur le brevet US 4.385.352 concernant un dispositif de développement et de calcul d'adresse dans une mémoire segmentée, et sur le brevet US 4.297.743 concernant un mécanisme d'appel de  In the embodiment of the invention described here by way of non-limiting example, the computer system has been designed to remain compatible with existing systems supporting 32-bit addressing. As a result, the system according to the invention incorporates, to varying degrees, certain hardware and software elements of the current systems. In order not to overload the following presentation, it will focus on the presentation of the invention itself. Also the reader will be able to refer for more details on the available documentation and more particularly on the US Pat. No. 4,385,352 concerning a device for developing and calculating an address in a segmented memory, and on US Pat. No. 4,297,743 concerning a call mechanism

procédure et mécanisme de pile coopérant pour ordinateur.  procedure and cooperating stack mechanism for computer.

Par ailleurs il paraît opportun de rappeler à ce stade de l'exposé les quelques définitions suivantes: - Processus: un processus est défini comme une séquence ordonnée d'opérations définies par des instructions qui sont susceptibles d'être exécutées de façon asynchrone par le sous- système central. De ce fait plusieurs processus peuvent être actifs et partager des ressources fournies par le système mais, dans un processeur donné, un seul processus est en cours d'exécution à un instant donné. Un groupe de processus est un ensemble de processus associés nécessaires pour exécuter une étape de travail pour laquelle des ressources spécifiques ont été temporairement attribuées par le système. Chaque processus dispose en mémoire d'une zone appelée bloc contrôle de processus (PCB) dans laquelle peuvent être sauvegardées les informations nécessaires à l'exécution du processus par le  In addition, it seems appropriate to recall at this stage of the presentation the following few definitions: - Process: a process is defined as an ordered sequence of operations defined by instructions that are likely to be executed asynchronously by the sub - central system. As a result, several processes can be active and share resources provided by the system, but in a given processor, only one process is running at a given time. A process group is a set of associated processes required to execute a job step for which specific resources have been temporarily allocated by the system. Each process has in memory an area called process control block (PCB) in which the information needed to execute the process by the user can be saved.

système.system.

-Proceédure: une procédure est définie comme un ensemble identifiable d'instructions de programme convenablement  -Proceedure: A procedure is defined as an identifiable set of program instructions appropriately

liées pour être exécutées dans le cadre d'un processus.  linked to be executed as part of a process.

Pour passer d'une procédure à une autre ou utiliser les divers services du système d'exploitation (notamment lors de l'exploitation de programmes structurés de façon modulaire), on utilise un mécanisme particulier (détaillé en cours de l'exposé) dénommé appel de proceédure. Un des mérites de l'invention est d'avoir conservé à ce mécanisme d'appel (très appréciable pour le degré de performance du système) son efficacité malgré les deux dimensions d'adressage. -Espace d'adressage: zone de la mémoire attribuée à un processus et accessible par ce dernier. Le plus souvent les adresses utilisées par un processus sont des adresses logiques et non des adresses absolues dans la mémoire principale. - Segmentation de la mémoire principale:Pour répondre aux besoins de mémoire virtuelle d'un processus, l'espace d'adressage est attribué statiquement lors de la construction du processus ou dynamiquement durant la vie du processus par segments de dimensions variables en général non contigus. Le processus a ainsi accès à ses propres segments de mémoire, ou à des segments associés, par l'intermédiaire d'un système de descripteur de segments les décrivant. Ces descripteurs sont contenus  To switch from one procedure to another or use the various services of the operating system (especially when operating programs structured in a modular way), we use a particular mechanism (detailed during the presentation) called call of procedure. One of the merits of the invention is to have kept this call mechanism (very appreciable for the degree of performance of the system) its effectiveness despite the two addressing dimensions. Addressing space: area of the memory allocated to a process and accessible by the latter. Most often the addresses used by a process are logical addresses and not absolute addresses in the main memory. - Segmentation of the main memory: To meet the virtual memory needs of a process, the address space is assigned statically during the construction of the process or dynamically during the life of the process in segments of variable dimensions generally non-contiguous . The process thus has access to its own segments of memory, or associated segments, through a segment descriptor system describing them. These descriptors are contained

dans des tables gérées par le système d'exploitation.  in tables managed by the operating system.

Afin de minimiser la taille des tables en mémoire centrale, on a défini des niveaux de partage de segments codés de (0) à (3). Indépendamment des niveaux de partage, le système peut incorporer un système de degré de privilège entre processus, par exemple un système utilisant le concept d'anneaux décrit dans la demande de  In order to minimize the size of the tables in the main memory, segment sharing levels coded from (0) to (3) have been defined. Regardless of the sharing levels, the system may incorporate a system of privilege between processes, for example a system using the ring concept described in the application for

brevet US 4.177.510.U.S. Patent 4,177,510.

Si l'on considère la figure 1, le système informatique comporte deux sousensembles principaux, le sous-système central 100 comportant notamment la mémoire centrale MMU 102, et le sous-système de périphériques 104. Le sous- système central 100 est structuré autour des processeurs centraux CPU 106 reliés à des contrôleurs d'entrée/sortie IOC 108. Ces contrôleurs 108 communiquent par des canaux d'entrée/sortie I/O avec le sous-système de périphériques 104 au travers d'unités de contrôle de périphériques UCP , elles-mêmes reliées par des adaptateurs AD 112 aux périphériques PER 114 les plus divers, notamment des mémoires de masse (mémoires à disque), des terminaux actifs à écran et clavier, des imprimantes et des appareils de transmission de données. Le nombre de  Referring to FIG. 1, the computer system comprises two main subassemblies, the central subsystem 100 comprising in particular the central memory MMU 102 and the peripheral subsystem 104. The central subsystem 100 is structured around the central subsystems 104. CPU 106 central processors connected to IOC input / output controllers 108. These controllers 108 communicate through I / O input / output channels with the peripheral subsystem 104 through UCP peripheral control units, they themselves connected by AD 112 adapters to the most diverse PER 114 devices, including mass memories (disk memories), active screen and keyboard terminals, printers and data transmission devices. Number of

périphériques peut atteindre plusieurs centaines.  Peripherals can reach several hundred.

La mémoire centrale MMU 102 est constituée par un réseau de microplaquettes semiconductrices de type mémoire vive dynamique (DRAM) d'une capacité maximale totale de 1024 Gigaoctets (1024 GB). De façon optionnelle, on prévoit dans chaque processeur une antémémoire (non représentée) pour réduire les temps d'accès et de transfert des  The central memory MMU 102 is constituted by a network of dynamic random-access memory (DRAM) semiconductor chips with a total maximum capacity of 1024 gigabytes (1024 GB). Optionally, there is provided in each processor a cache (not shown) to reduce the access and transfer times of

informations le plus souvent traitées.  information most often processed.

DOMAINE D'ADRESSAGEDOMAIN OF ADDRESSING

Les figures 2 et 3 illustrent schématiquement  Figures 2 and 3 illustrate schematically

l'organisation de la mémoire virtuelle selon l'invention.  the organization of the virtual memory according to the invention.

La mémoire principale est organisée selon trois types de segments de taille croissante: - segments de 64 Kilooctets ou 2**16 octets (64 KB) segments de 4 Mégaoctets ou 2**22 octets (4 MB)  The main memory is organized into three types of segments of increasing size: - segments of 64 kilobytes or 2 ** 16 bytes (64 KB) segments of 4 megabytes or 2 ** 22 bytes (4 MB)

- segments de 4 Gigaoctets ou 2**32 octets (4 GB).  - segments of 4 gigabytes or 2 ** 32 bytes (4 GB).

Les segments des deux premiers types sont regroupés par lots, ci-après appelés espaces d'adressage 64K/4MB ou espaces EAX, d'une capacité totale de 256 Mégaoctets ou 2**28 octets et constitués de: 32 segments type 4 MB et  The segments of the first two types are grouped in batches, hereinafter called 64K / 4MB address spaces or EAX spaces, with a total capacity of 256 Megabytes or 2 ** 28 bytes and consisting of: 32 segments type 4 MB and

2040 segments type 64 KB.2040 segments type 64 KB.

Enfin les espaces d'adressage 64K/4MB et les segments du type 4GB sont regroupés entre 4 tranches d'une capacité unitaire de 68.000 Téraoctets (1 Téraoctet égalant 2**40 octets) et constituées de: 2**24 segments de type 4 GB et  Finally, the 64K / 4MB address spaces and the 4GB segments are grouped into 4 slots with a unit capacity of 68,000 Terabytes (1 Terabyte equaling 2 ** 40 bytes) and consisting of: 2 ** 24 segments of type 4 GB and

2**24 espaces d'adressage 64K/4MB.2 ** 24 64K / 4MB address space.

Les 4 tranches correspondent aux quatre niveaux de partage des segments, respectivement le niveau (0) ou "système", le niveau (1) ou "indéfini", le niveau (2) ou "groupe de  The 4 slices correspond to the four levels of division of the segments, respectively the level (0) or "system", the level (1) or "undefined", the level (2) or "group of

processus" et le niveau (3) ou "processus".  process "and level (3) or" process ".

La capacité totale de la mémoire virtuelle ainsi constituée est de 272. 000 Téraoctets, (capacité comprise entre 2**58 et 2**59 octets). Bien évidemment le domaine mémoire ainsi constitué DX demande un adressage logique de dimension NX compatible. La dimension NX peut être contenue dans un pointeur de 64 bits. De même les espaces d'adressage EAX de capacité mémoire limitée admettent un adressage logique relatif dont la dimension NL peut être  The total capacity of the virtual memory thus constituted is 272.000 terabytes, (capacity between 2 ** 58 and 2 ** 59 bytes). Obviously, the memory domain thus constituted DX requires logical addressing of compatible NX dimension. The NX dimension can be contained in a 64-bit pointer. Similarly EAX address spaces of limited memory capacity allow a relative logical addressing whose NL dimension can be

contenue dans un mot de 32 bits.contained in a 32-bit word.

Les espaces EAX sont identifiables par un numéro d'ordre ou d'une façon plus générale par un identificateur plus élaboré; par exemple dans le mode de réalisation de l'invention ici présenté, l'identicateur (illustré à la ll figure 9) est constitué principalement d'une zone indicative du niveau de partage des segments et d'un  EAX spaces are identifiable by a serial number or more generally by a more elaborate identifier; for example in the embodiment of the invention presented here, the identifier (illustrated in FIG. 9) consists mainly of a zone indicative of the level of division of the segments and a

numéro d'ordre dans la tranche mémoire correspondante.  order number in the corresponding memory slot.

Si l'on considère la figure 3, on remarque qu'à l'intérieur du domaine mémoire DX, on a défini un domaine mémoire DL comportant un des espaces d'adressage de type EAX de 64K/4MB affecté de façon temporaire et interchangeable à ce domaine DL qui admet une dimension d'adresse de 32 bits. Cet espace de type EAX affecté au domaine DL est appelé ci-après espace d'adressage courant EAC. Pour améliorer la compatibilité avec les programmes existants conçus sous adressage de 32 bits, un espace d'adressage permanent appelé espace EAPCB de structure identique à celle des espaces 64K/4MB est affecté au domaine mémoire DL. Dans le domaine DX cet espace EAPCB est repérable par son identificateur de valeur égale à zéro (tous les bits du champ réservé à l'identificateur présentent la valeur binaire zéro). Ainsi donc le domaine mémoire DL supportant un adressage de 32 bits a une  Referring to FIG. 3, it will be noted that within the memory domain DX, a memory domain DL has been defined comprising one of the 64K / 4MB EAX addressing spaces temporarily and interchangeably allocated to this DL domain which admits a 32-bit address dimension. This EAX type space assigned to the DL domain is hereinafter called current address space EAC. To improve compatibility with existing programs designed under 32-bit addressing, a permanent address space called EAPCB space with the same structure as the 64K / 4MB spaces is assigned to the DL memory domain. In the DX domain this EAPCB space is identifiable by its value identifier equal to zero (all bits of the identifier field are zero-valued). So the memory domain DL supporting a 32-bit addressing has a

capacité de 512 Mégaoctets.capacity of 512 megabytes.

Les figures 4 et 6 présentent les deux types de format des  Figures 4 and 6 show the two types of

descripteurs de données utilisant l'adressage de 64 bits.  data descriptors using 64-bit addressing.

D'une façon générale, ces formats sont structurés autour de mots de 32 bits (numérotés de 0 à 31 de gauche à droite) parfois accolés sous forme de mots doubles de 64 bits (les bits du second mot étant alors numérotés de 32 à 63 de gauche à droite). Ces formats sont susceptibles d'être utilisés aussi pour les données et pour les instructions. En ce qui concerne les données, celles-ci sont sous forme binaire mais sont susceptibles d'être interprétées comme binaires, décimales, flottantes ou alphanumériques. Les bits de données sont interprétés par groupes de quatre lorsque codés en décimal-codé-binaire, par groupes de huit pour des données alphanumériques, par groupes de 64 ou 128 bits pour les données flottantes, et par groupes de 1 à  In general, these formats are structured around 32-bit words (numbered from 0 to 31 from left to right) sometimes joined together in the form of double words of 64 bits (the bits of the second word then being numbered from 32 to 63 from left to right). These formats are likely to be used also for data and for instructions. Data are in binary form but can be interpreted as binary, decimal, floating or alphanumeric. Data bits are interpreted in groups of four when encoded in decimal-coded-binary, in groups of eight for alphanumeric data, in groups of 64 or 128 bits for floating data, and in groups of 1 to

64 pour des données binaires.64 for binary data.

Les emplacements d'octets en mémoire principale sont numérotés de façon consécutive en partant de zéro. Chaque numéro correspond à l'adresse physique de l'octet. Selon l'exemple décrit, un mot est formé de 32 bits, c'est à dire de 4 octets. Aussi, un groupe d'octets peut être aligné sur un demi-mot, un mot, un mot double ou un mot quadruple, si l'adresse de l'octet de gauche du groupe est respectivement un multiple de 2, 4, 8 ou 16. Dans ce cas, un groupe entier d'octets de données peut être extrait en bloc de la mémoire. L'emplacement des données dans la mémoire est obtenue à partir d'un descripteur (d'adresse) de données par un mécanisme de développement d'adresse  Byte locations in main memory are numbered consecutively from scratch. Each number corresponds to the physical address of the byte. According to the example described, a word is formed of 32 bits, that is to say of 4 bytes. Also, a group of bytes can be aligned on a half word, a word, a double word or a quad word, if the address of the left byte of the group is respectively a multiple of 2, 4, 8 or 16. In this case, an entire group of data bytes can be bulk extracted from the memory. The location of the data in the memory is obtained from a data (address) descriptor by an address development mechanism

détaillée ultérieurement.detailed later.

La figure 4 illustre le format FX2 d'un descripteur de données de 64 bits correspondant aux segments de plus grande taille, soit 4 Gigaoctets. Le descripteur dénommé 4GB/ITS64 comporte deux mots et se décompose comme suit: - un premier champ formé des deux premiers bits O et 1 et dénommé TAG contient la valeur binaire 01, - un deuxième champ formé des bits 2 et 3 et dénommé RING contient une valeur binaire représentative du niveau de privilège associé au pointeur lors des accès aux données du segment adressé (numéro d'anneau), - un troisième champ formé des bits 4 et 5 et dénommé XTAG contient une valeur binaire représentative du code-type du descripteur. Plus précisément, XTAG = 00 correspond à un adressage direct (le développement d'adresse conduit à l'objet recherché), XTAG = 01 correspond à un adressage absolu en mémoire physique et qui est obtenu par une concatenation des champs XSN et XSRA (cette opération sera décrite par la suite en référence à la figure 10), XTAG = 10 correspond à un adressage indirect (le développement d'adresse conduit à un autre descripteur de données de 64 bits lui-même conduisant directement ou indirectement à l'objet recherché), XTAG = 11 correspond à un défaut conduisant à une procédure spéciale d'exception, - un quatrième champ formé des bits 6 et 7 et dénommé SHR contient une valeur binaire représentative du niveau de partage, de (0) à (3), du segment adressé, c'est-à-dire de la tranche de mémoire dans laquelle se trouve ce segment, - un cinquième champ formé des bits 8 à 31 (24 bits) et dénommé XSN contient une valeur binaire représentative du numéro d'ordre du segment adressé dans la tranche mémoire correspondante, - un sixième champ formé des bits 32 à 63 (2ème mot) et dénommé XSRA contient une valeur binaire représentative du déplacement dans le segment (adresse relative) de l'objet  Figure 4 illustrates the FX2 format of a 64-bit data descriptor corresponding to the larger segments, ie 4 gigabytes. The descriptor called 4GB / ITS64 comprises two words and is broken down as follows: a first field formed of the first two bits O and 1 and called TAG contains the binary value 01, a second field formed of bits 2 and 3 and called RING contains a binary value representative of the privilege level associated with the pointer during access to the data of the addressed segment (ring number), - a third field formed of bits 4 and 5 and called XTAG contains a binary value representative of the standard code of the descriptor . More precisely, XTAG = 00 corresponds to a direct addressing (the address development leads to the sought object), XTAG = 01 corresponds to an absolute addressing in physical memory and which is obtained by a concatenation of the XSN and XSRA fields (this operation will be described later with reference to FIG. 10), XTAG = 10 corresponds to indirect addressing (the address development leads to another 64-bit data descriptor itself leading directly or indirectly to the object sought ), XTAG = 11 corresponds to a fault leading to a special exception procedure, - a fourth field formed of bits 6 and 7 and called SHR contains a binary value representative of the sharing level, from (0) to (3), of the addressed segment, that is to say of the memory slot in which this segment is located, - a fifth field formed of bits 8 to 31 (24 bits) and called XSN contains a binary value representative of the sequence number of segment addressed in the corresponding memory slot, - a sixth field formed of bits 32 to 63 (2nd word) and called XSRA contains a binary value representative of the displacement in the segment (relative address) of the object

auquel le processus recherche l'accès.  the process is seeking access.

Le développement d'adresse (illustré à la figure 5) de ce descripteur 4GB/ITS64 est effectué de la façon suivante à partir des données contenues dans des zones spécifiques du bloc mémoire PCB (bloc de contrôle de processus) correspondant au processus recherchant l'accès au segment de type 4GB adressé. A cet effet le bloc PCB illustré en partie à la figure 5 comporte 4 zones d'une longueur d'un mot double (2 mots de 32 bits) dénommées ASDW4 (pour SHR=0), ASDW5 (pour SHR=1), ASDW6 (pour SHR=2) et ASDW7 (pour SHR=3). Les zones ASDW4/7 (double mot d'espace d'adresse) ne sont réellement significatives que dans la mesure o le contenu du champ P (bit 32 ou bit de Présence) est égal à l'unité. Ce champ P indique la présence en mémoire de la structure recherchée, ici une table de descripteurs de segments dénommée XST. Dans le cas o ce bit de présence P égale zéro, une procédure d'exception est initialisée afin de charger en mémoire la  The address development (illustrated in FIG. 5) of this 4GB / ITS64 descriptor is carried out as follows from the data contained in specific areas of the PCB memory block (process control block) corresponding to the process searching for the access to the addressed 4GB segment. For this purpose, the PCB block illustrated in part in FIG. 5 comprises 4 zones of a length of a double word (2 words of 32 bits) called ASDW4 (for SHR = 0), ASDW5 (for SHR = 1), ASDW6 (for SHR = 2) and ASDW7 (for SHR = 3). The zones ASDW4 / 7 (double word of address space) are really significant only insofar as the content of the field P (bit 32 or Presence bit) is equal to unity. This field P indicates the presence in memory of the structure sought, here a segment descriptor table called XST. In the case where this presence bit P equals zero, an exception procedure is initialized in order to load into memory the

liste de descripteur recherchée.Descriptor list searched.

Les zones ASDW4/7 comportent deux autres champs, le premier nommé NBMAX (bits 8 à 31) définit le nombre d'entrées dans la table XST (maximum 2**24) et le second nommé XSTA (bits 33 à 63) est un pointeur qui définit l'adresse absolue en multiple de 16 de la première entrée de la table XST. Cette adresse absolue sera donc obtenue en ajoutant 4 zéros du côté des poids faibles à la valeur de XSTA. D'une façon générale, dans la suite de la  The fields ASDW4 / 7 comprise two other fields, the first one named NBMAX (bits 8 to 31) defines the number of entries in the table XST (maximum 2 ** 24) and the second named XSTA (bits 33 to 63) is a pointer that defines the absolute address in multiples of 16 of the first entry of the XST table. This absolute address will therefore be obtained by adding 4 zeros on the low-weight side to the value of XSTA. Generally speaking, in the following

description, le terme "entrée" désignera le premier octet  description, the term "input" will refer to the first octet

d'un élément d'une table, tandis que le terme "pointeur" désignera une valeur représentative de l'adresse absolue  of an element of a table, while the term "pointer" designates a value representative of the absolute address

d'une telle entrée. Le pointeur sera souvent un sous-  such an entrance. The pointer will often be a sub

multiple de l'adresse absolue.multiple of the absolute address.

Le contenu du champ XSN du descripteur 4GB/ITS64 est alors utilisé pour accéder dans la table XST au double  The content of the XSN field of the 4GB / ITS64 descriptor is then used to access twice the XST table.

descripteur de segment DSD.4 formé d'un mot quadruple.  DSD.4 segment descriptor formed of a quad word.

Outre le bit de présence P (bit 0) et les divers champs de protection, ce mot quadruple, correspondant à un double descripteur direct, comporte un pointeur d'adresse PTWAA (bits 32 à 63) donnant en multiple de 16 l'adresse absolue de la première entrée du tableau des mots de tables de pages PTWA, et un champ de dimension du segment (bits 64 à 87) dont la valeur augmentée d'une unité donne en multiple  In addition to the presence bit P (bit 0) and the various protection fields, this quadruple word, corresponding to a double direct descriptor, comprises a PTWAA address pointer (bits 32 to 63) giving in multiples of 16 the absolute address the first entry in the table of PTWA page table words, and a segment dimension field (bits 64 to 87) whose value increased by one unit gives multiple

de 4096 octets la dimension du segment.  4096 bytes the size of the segment.

Le contenu du champ XSRA du descripteur 4 GB/ITS64 est alors utilisé pour partie. En fait le champ XSRA est divisé en trois zones (voir figure 4), un sous-champ PTN (bits 32 à 41) correspondant au numéro de table de page PT, un sous-champ PTE (bits 42 à 51) correspondant au numéro d'entrée dans la table de pages du segment correspondant, et un sous-champ PRA (bits 52 à 63) correspondant à l'adresse relative de la structure recherchée dans la page dont la dimension est de 4  The content of the XSRA field of the 4 GB / ITS64 descriptor is then used in part. In fact, the field XSRA is divided into three zones (see FIG. 4), a PTN subfield (bits 32 to 41) corresponding to the page table number PT, a subfield PTE (bits 42 to 51) corresponding to the number in the page table of the corresponding segment, and a subfield PRA (bits 52 to 63) corresponding to the relative address of the structure sought in the page whose dimension is 4

Kiloctets soit 2**12 octets.Kilobytes is 2 ** 12 bytes.

Ainsi donc, le contenu du sous-champ PTN donne le numéro d'ordre de l'entrée dans le tableau des mots de tables de page PTWA (taille maximum MAX=2**10 entrées) et permet  Thus, the content of the PTN subfield gives the sequence number of the entry in the table of PTWA page table words (maximum size MAX = 2 ** 10 entries) and allows

d'accéder au mot (32 bits) de table de pages recherché.  to access the word (32 bits) of table of searched pages.

Ce dernier comporte outre le bit de présence P, l'adresse absolue PTA de la première entrée de la table de page PT recherchée (taille maximum MAX=2**10 entrées). Le contenu du sous-champ PTE donne le numéro d'ordre de l'entrée recherchée dans la table de page PT et permet d'accéder au descripteur de page et qui comporte outre le bit de présence P, l'adresse absolue du premier octet de la page. Ce mécanisme qui traduit une adresse virtuelle (aussi appelée adresse segmentée) en adresse réelle est généralement associé à un dispositif d'accélération utilisant une mémoire associative permettant de faire correspondre directement les adresses réelles aux adresses virtuelles lors d'utilisations ultérieures de ces adresses. La figure 6 illustre le format FX1 d'un autre descripteur de données de 64 bits correspondant aux segments incorporés dans les espaces 64K/4MB. Ce descripteur dénommé 64K/4MB/ITS64 comporte deux mots et se décompose comme suit: - le premier champ appelé TAG formé des bits 0 et 1 contient une valeur binaire représentative du code-type du descripteur. Plus particulièrement, TAG = 00 correspond à un adressage direct, TAG = 01 renvoie à un descripteur de type 4GB/ITS64, TAG = 10 correspond à un adressage indirect, TAG = 11l correspond à un défaut conduisant à une  The latter comprises in addition to the presence bit P, the absolute address PTA of the first entry of the searched page page PT (maximum size MAX = 2 ** 10 entries). The content of the subfield PTE gives the order number of the entry sought in the page table PT and provides access to the page descriptor and which comprises in addition to the presence bit P, the absolute address of the first byte of the page. This mechanism that translates a virtual address (also called segmented address) into real address is generally associated with an acceleration device using associative memory to directly match the real addresses to virtual addresses for subsequent uses of these addresses. Figure 6 illustrates the FX1 format of another 64-bit data descriptor corresponding to segments embedded in the 64K / 4MB spaces. This descriptor called 64K / 4MB / ITS64 comprises two words and is broken down as follows: the first field called TAG formed of bits 0 and 1 contains a binary value representative of the descriptor code. More particularly, TAG = 00 corresponds to direct addressing, TAG = 01 refers to a type descriptor of 4GB / ITS64 type, TAG = 10 corresponds to indirect addressing, TAG = 11l corresponds to a defect leading to a

procédure spéciale d'exception.special exception procedure.

- le deuxième champ formé des bits 2 et 3, et dénommé RING contient une valeur binaire représentative du niveau de privilège associé au pointeur lors des accès aux données du segment adressé (numéro d'anneau), - le troisième champ formé des bits 4 à 8 (4 bits) dénommé STN contient une valeur binaire représentative du numéro d'ordre d'une entrée dans le tableau des mots de tables de segments STWA, - les quatrième et cinquième champs dénommés STE et SRA représentatifs du numéro d'une entrée dans la table des segments ST et de l'adresse relative de l'objet recherché dans le segment considéré, présentent deux formats différents selon le type de segment adressé. L'adressage à un segment de type 4MB (STE est défini par les bits 8 et 9 et SRA par les bits 10 à 31) correspond à une valeur décimale de STN comprise entre 0 et 7. L'adressage à un segment de type 64KB (STE est défini par les bits 8 à 15 et SRA par les bits 16 à 31) correspond à une valeur  the second field formed of the bits 2 and 3, and denominated RING contains a binary value representative of the privilege level associated with the pointer during access to the data of the addressed segment (ring number), the third field formed of the bits 4 to 8 (4 bits) called STN contains a binary value representative of the sequence number of an entry in the word table of STWA segment tables, - the fourth and fifth fields called STE and SRA representative of the number of an entry in the ST segment table and the relative address of the searched object in the segment under consideration, have two different formats depending on the type of segment addressed. The addressing to a segment of type 4MB (STE is defined by bits 8 and 9 and SRA by bits 10 to 31) corresponds to a decimal value of STN between 0 and 7. The addressing to a segment of type 64KB (STE is defined by bits 8 to 15 and SRA by bits 16 to 31) corresponds to a value

décimale de STN comprise entre 8 et 15.  decimal of STN between 8 and 15.

Comme précédemment le champ SRA comporte deux sous-champs, le sous-champ PTE correspondant au numéro d'ordre de l'entrée dans la table des pages (longueur 10 ou 4 bits selon le type de segment) et le sous-champ PRA (bits 20 à 31) correspondant à l'adresse relative dans la page de  As before, the SRA field has two subfields, the subfield PTE corresponding to the order number of the entry in the page table (length 10 or 4 bits depending on the type of segment) and the subfield PRA ( bits 20 to 31) corresponding to the relative address in the page of

l'objet recherché.the object sought.

Le second mot du descripteur 64K/4MB/ITS64 comporte les sixième, septième et huitième champs: - le sixième champ (bits 32 à 37) contient la valeur binaire zéro, - le septième champ (bits 38 à 39) appelé SHR contient une valeur binaire représentative du niveau de partage du segment adressé, et le huitième champ (bits 40 à 63) appelé ASN contient le numéro d'ordre permettant l'identification de l'espace  The second word of the 64K / 4MB / ITS64 descriptor comprises the sixth, seventh and eighth fields: the sixth field (bits 32 to 37) contains the zero bit value; the seventh field (bits 38 to 39) called SHR contains a value binary representative of the shared level of the addressed segment, and the eighth field (bits 40 to 63) called ASN contains the serial number allowing the identification of the space

d'adresse EAX correspondant.corresponding EAX address.

Le développement d'adresse (illustré à la figure 7) de ce descripteur 64K/4MB/ITS64 est effectué de la façon suivante à partir des données contenues dans des zones spécifiques du bloc mémoire PCB correspondant. A cet effet le bloc PCB (illustré en partie à la figure 7) comporte 4 zones d'une longueur d'un mot double dénommées ASDWO (pour SHR=0), ASDW1 (pour SHR=1), ASDW2 (pour SHR=2) et ASDW3 (pour SHR=3). Comme précédemment les doubles mots d'espace d'adresse ASDW0/3 ne sont réellement significatifs que dans la mesure o le contenu du bit de présence P (bit 32) est égal à 1. Les zones ASDW0/3 comportent deux autres champs, le premier nommé NBMAX (bits 8 à 31) définit le nombre d'entrées, dans le tableau principal des mots de tables de segments XSTWA (maximum 2**24) et le second nommé XSTWAA (bits 33 à 63) est un pointeur qui définit l'adresse absolue en multiple de 16  The address development (illustrated in FIG. 7) of this 64K / 4MB / ITS64 descriptor is performed as follows from the data contained in specific areas of the corresponding PCB memory block. For this purpose the PCB block (illustrated in part in FIG. 7) comprises 4 zones of a length of a double word called ASDWO (for SHR = 0), ASDW1 (for SHR = 1), ASDW2 (for SHR = 2 ) and ASDW3 (for SHR = 3). As before, the ASDW0 / 3 address space double words are really significant only insofar as the content of the presence bit P (bit 32) is equal to 1. The ASDW0 / 3 zones comprise two other fields, the first named NBMAX (bits 8 to 31) defines the number of entries, in the main table of XSTWA segment table words (maximum 2 ** 24) and the second named XSTWAA (bits 33 to 63) is a pointer that defines the absolute address in multiples of 16

de la première entrée du tableau XSTWA.  of the first entry of the XSTWA table.

Le contenu du champ ASN du descripteur 64K/4MB/ITS64 est alors utilisé pour accéder au mot XSTW correspondant qui comporte, outre le bit de présence P, le champ STWAA (pointeur) représentatif de l'adresse absolue de la première entrée d'un tableau de mots de tables de segments STWA. Le champ STN du descripteur 64K/4MB/ITS64 permet alors d'accéder au mot contenant le champ STA (pointeur) qui définit l'adresse absolue en multiple de 16  The content of the ASN field of the descriptor 64K / 4MB / ITS64 is then used to access the corresponding word XSTW which comprises, in addition to the presence bit P, the STWAA field (pointer) representative of the absolute address of the first input of a table of STWA segment table words. The STN field of the 64K / 4MB / ITS64 descriptor then makes it possible to access the word containing the STA (pointer) field which defines the absolute address in multiples of 16

de la première entrée de la table de segment ST. Le contenu du champ STE du descripteur 64K/4MB/ITS64 est alors utilisé  of the first input of the ST segment table. The contents of the STE field of the descriptor 64K / 4MB / ITS64 are then used

pour accéder dans la table ST au double descripteur de segment DSD.2 formé d'un mot double. Outre le bit de présence P (bit 0) et les divers champs de protection, le mot double correspondant à un descripteur direct comporte un pointeur d'adresse PTA (bits 8 à 31) donnant en multiple de 16 l'adresse absolue de la première entrée de la table de pages correspondante PT et un champ de dimension SZ (bits 46 à 55) dont la valeur augmentée d'une unité donne en multiple de 4096 octets la dimension du segment. Le contenu du sous-champ PTE permet d'accéder dans la table PT au descripteur de page correspondant à la page recherchée et qui comporte outre le bit de présence P le pointeur PAGE de l'adresse absolue du premier octet de  to access in the ST table double DSD.2 segment descriptor consisting of a double word. In addition to the presence bit P (bit 0) and the various protection fields, the double word corresponding to a direct descriptor comprises a PTA address pointer (bits 8 to 31) giving in multiples of 16 the absolute address of the first input of the corresponding page table PT and a field of dimension SZ (bits 46 to 55) whose value increased by one unit gives in multiples of 4096 bytes the size of the segment. The content of the subfield PTE makes it possible to access in the table PT the page descriptor corresponding to the searched page and which comprises, in addition to the presence bit P, the pointer PAGE of the absolute address of the first byte of

la page recherchée.the searched page.

La figure 7 montre également sous la dénomination STWA(0.0), le tableau des mots de tables de segments correspondant à SHR=0 et ASN=0. L'accès à ce tableau particulier qui correspond à l'espace d'adressage EAPCB peut être réalisé directement avec gain de temps appréciable à partir d'une zone particulière du bloc PCB, dénommée mot d'espace-adresse ou ASW.0, de dimension égale à un mot et qui comporte le pointeur de l'adresse absolue de la première entrée du tableau STWA(0.0). Cette faculté est très intéressante au niveau de la compatibilité du système selon l'invention par rapport aux programmes déjà existants structurés sur des adresses de 32 bits selon le format FL donné à la figure 8. Il est ainsi possible de partager des données dans les deux domaines d'adressage à  FIG. 7 also shows, under the name STWA (0.0), the table of segment table words corresponding to SHR = 0 and ASN = 0. Access to this particular table which corresponds to the EAPCB address space can be achieved directly with appreciable time saving from a particular area of the PCB block, called space-address word or ASW.0, of dimension equal to one word and which contains the pointer of the absolute address of the first entry of the STWA table (0.0). This faculty is very interesting in terms of the compatibility of the system according to the invention with respect to existing programs structured on 32-bit addresses according to the format FL given in FIG. 8. It is thus possible to share data in both addressing domains to

32 bits (DL) et à 64 bits (DX).32 bits (DL) and 64 bits (DX).

Compte tenu de l'identité des structures utilisées dans le domaine DL à adressage 32 bits (espace EAPCB et espace EAC) avec les structures des espaces d'adressage EAX composés des lots de segments de types 64KB et 4MB, le format du descripteur de données en adressage de 32 bits dénommé 64K/4MB/ITS32 illustré à la figure 8 présente une structure identique à celui du premier mot du descripteur 64K/4MB/ITS64 illustré à la figure 6, étant entendu que les champs RING et EAR sont équivalents. Une adresse dans l'espace EAPCB est obtenue par TAG=00. Par contre TAG=01 conduit à une adresse dans l'espace d'adressage courant EAC identifiable parmi les espaces EAX. A cet effet un registre spécial CSR a été créé pour mémoriser la valeur de l'identificateur de l'espace EAC, c'est à dire de l'identificateur de celui des espaces EAX qui est alors affecté temporairement au domaine DL. Ce registre CSR dont le format est illustré à la figure 9 a pour dimension un mot et est identique à celui du deuxième mot du descripteur 64K/4MB/ITS64. I1 se compose de trois champs, le premier formé des bits O à 5 contenant chacun la valeur binaire 0, le second SHR, formé des bits 6 et 7, contient une valeur représentative du niveau de partage du segment adressé, et le troisième ASN formé des bits 8 à 31 contient l'identification (en fait le numéro d'ordre dans la tranche mémoire correspondante) du lot de segments  Given the identity of the structures used in the 32 bit address DL domain (EAPCB space and EAC space) with the EAX address space structures consisting of the 64KB and 4MB segment lots, the format of the data descriptor in 32-bit addressing referred to as 64K / 4MB / ITS32 shown in FIG. 8, has a structure identical to that of the first word of the 64K / 4MB / ITS64 descriptor illustrated in FIG. 6, it being understood that the RING and EAR fields are equivalent. An address in the EAPCB space is obtained by TAG = 00. On the other hand TAG = 01 leads to an address in the current address space EAC identifiable among the spaces EAX. For this purpose a special register CSR has been created to store the value of the identifier of the space EAC, that is to say of the identifier of the EAX spaces which is then temporarily assigned to the domain DL. This CSR register, the format of which is illustrated in FIG. 9, has the size of a word and is identical to that of the second word of the 64K / 4MB / ITS64 descriptor. I1 consists of three fields, the first formed of the bits O to 5 each containing the binary value 0, the second SHR formed of the bits 6 and 7, contains a value representative of the sharing level of the addressed segment, and the third ASN formed bits 8 to 31 contain the identification (actually the serial number in the corresponding memory slot) of the batch of segments

formant l'espace d'adressage EAX considéré.  forming the address space EAX considered.

La figure 10 illustre le format d'un descripteur de 64 bits AA64 permettant l'adressage absolu en mémoire physique. Ce format est dérivé du descripteur 4GB/ITS64 illustré à la figure 4 correspondant aux segments de type 4GB et dans lequel le champ XTAG=01. Le champ MBZ formé des bits 6 à 24 (incorporant le champ SHR non significatif dans ce cas) est mis à une valeur égale à zéro. Les huit premiers bits de poids fort de l'adresse absolue sont rangés dans le champ formé par les bits 24 à 31 tandis que les bits de poids faible de la même adresse absolue sont rangés dans le champ formé par le deuxième mot du descripteur soit les bits 32 à 63. Il en résulte que la capacité d'adressage absolu est de 2**40 octets soit 1024 Gigaoctets. L'adressage absolu à partir d'un descripteur de 32 bits n'est pas possible directement. Il est nécessaire au préalable d'effectuer une opération de changement de format pour passer à un format à 64 bits, opération qui  Figure 10 illustrates the format of an AA64 64-bit descriptor for absolute addressing in physical memory. This format is derived from the 4GB / ITS64 descriptor shown in Figure 4 corresponding to the 4GB type segments and in which the XTAG = 01 field. The MBZ field formed from bits 6 to 24 (incorporating the SHR field which is not significant in this case) is set to a value equal to zero. The first eight most significant bits of the absolute address are arranged in the field formed by the bits 24 to 31 while the least significant bits of the same absolute address are arranged in the field formed by the second word of the descriptor, ie the bits 32 to 63. As a result, the absolute addressing capacity is 2 ** 40 bytes or 1024 gigabytes. Absolute addressing from a 32-bit descriptor is not possible directly. It is necessary beforehand to perform a format change operation to switch to a 64-bit format, an operation that

sera décrite ultérieurement.will be described later.

MODES D'EXECUTION DES PROCESSUSMODES OF EXECUTION OF PROCESSES

Les différentes versions d'adressage mémoire qui ont été présentées sont utilisées pleinement dans les trois modes d'exécution de processus mis en place dans le système informatique dans le cadre de l'invention: - Le premier mode dit "Mode 32" utilise l'adressage 32 bits. - Le second mode dit "Mode 64" utilise l'adressage 64 bits. - Le troisième mode dit "Mode 32/64" utilise le double adressage pour certains segments et dans des conditions  The different versions of memory addressing that have been presented are used fully in the three process execution modes implemented in the computer system in the context of the invention: the first mode called "Mode 32" uses the 32-bit addressing. - The second mode called "Mode 64" uses 64-bit addressing. - The third mode called "Mode 32/64" uses double addressing for certain segments and under conditions

particulières détaillées ultérieurement.  details detailed later.

Le premier mode est dérivé de ce qui est utilisé par le demandeur dans son système dit "DPS7". En particulier le bloc de contrôle de processus PCB correspondant directement à ce Mode 32 présente sensiblement le même format que celui décrit dans le brevet US 4.297.743. On peut rappeler que le bloc PCB comporte les zones mémoire correspondantes aux 8 registres de base (32 bits par registre), 16 registres generaux (32 bits par registre), 4 registres de calcul scientifique (64 bits par registre), une zone de mémorisation ou sauvegarde du registre IC (compteur d'instructions) (32 bits), une zone de mémorisation du registre T (sommet de pile) (32 bits), une zone de mémorisation du registre STR (registre de statut) (8 bits). Toutefois l'adressage absolu n'est plus autorisé sur 32 bits mais peut être obtenu apres changement de mode du processus vers les Modes 64 ou 32/64. En effet le code-type TAG=01 est utilisé pour les  The first mode is derived from what is used by the applicant in his system called "DPS7". In particular the PCB process control block corresponding directly to this Mode 32 has substantially the same format as that described in US Patent 4,297,743. It can be recalled that the PCB block contains the memory areas corresponding to the 8 base registers (32 bits per register), 16 general registers (32 bits per register), 4 scientific calculation registers (64 bits per register), a storage zone or backup of the IC register (instruction counter) (32 bits), a storage area of the T register (stack vertex) (32 bits), a storage area of the register STR (status register) (8 bits). However, absolute addressing is no longer allowed on 32 bits but can be obtained after changing the mode of the process to Modes 64 or 32/64. Indeed the standard code TAG = 01 is used for

développements d'adresse virtuelle en Mode 32/64.  virtual address developments in 32/64 Mode.

Ainsi le premier mode d'exécution dit Mode 32 est capable de gérer des descripteurs ITS32, directs (TAG=00), indirects (TAG=10) et défaut (TAG=11), pour accéder aux seuls segments de l'espace EAPCB. De plus le processus a la possibilité de générer en mémoire de nouveaux pointeurs pour les autres modes et de transférer des données à partir ou vers les autres segments de la mémoire virtuelle  Thus the first mode of execution known as Mode 32 is capable of managing ITS32, direct (TAG = 00), indirect (TAG = 10) and defect (TAG = 11) descriptors, to access only segments of the EAPCB space. In addition the process has the possibility to generate in memory new pointers for the other modes and to transfer data from or to the other segments of the virtual memory

à l'aide d'une instruction particulière dénommée XMOVE.  using a special instruction called XMOVE.

Le mode d'exécution de processus dit Mode 64 est l'équivalent du Mode 32 mais adapté au nouveau domaine mémoire DX et à son adressage de 64 bits. La liste des instructions est voisine de celle correspondant au Mode 32 mais complétée de nouvelles instructions concernant: - le test d'activation du nouvel environnement 64 bits, - le test du mode d'exploitation courant, - l'opération XMOVE, - les instructions correspondant aux nouveaux descripteurs de page et de segments et à la gestion de  The mode 64 process mode is the equivalent of Mode 32 but adapted to the new DX memory domain and its 64-bit addressing. The list of instructions is close to that corresponding to Mode 32 but completed with new instructions concerning: - the activation test of the new 64-bit environment, - the test of the current operating mode, - the XMOVE operation, - the instructions corresponding to the new page and segment descriptors and the management of

tables d'allocations de mémoire.memory allocation tables.

Pour permettre l'exécution en Mode 64, le bloc de contrôle de processus PCB présente un nouveau format illustré figure 11 (figures 11(1) et 11(2)) et décrit rapidement ci-après. Par rapport à l'adresse de l'octet d'entrée au bloc PCB (octet de référence zéro), le bloc comporte des zones de mémoire réservées aux mesures des temps d'exécution du processus (adresses -60 à 0); les zones occupant les octets -60 à -17 étant optionnelles. On notera que les nombres placés à côté des emplacements de mémoire spécifient le déplacement en octets par rapport à l'emplacement de référence zéro du bloc de contrôle PCB. A partir de l'octet 0 jusqu'à l'octet 15 compris, quatre mots principaux de processus PMW.0 à PMW.3 sont mis en mémoire. Le mot PMW.0 occupe les octets 0 à 3 et présente quatre champs d'un octet chacun, un champ de capacité CAP, un champ de priorité PRI, un champ d'état d'exécution du processus EXE (par exemple "en attente", "prêt", etc.) et un champ d'exécution DEXT. Les détails concernant le contenu des quatre champs du mot PMW.0 sont donnés dans le  To enable execution in Mode 64, the PCB process control block has a new format shown in Fig. 11 (Figs. 11 (1) and 11 (2)) and briefly described below. With respect to the address of the input byte to the PCB block (zero reference byte), the block includes memory areas reserved for measuring the execution times of the process (addresses -60 to 0); zones occupying bytes -60 to -17 being optional. Note that the numbers next to the memory locations specify the displacement in bytes relative to the zero reference location of the PCB control block. From byte 0 up to and including byte 15, four main process words PMW.0 to PMW.3 are stored in memory. The word PMW.0 occupies bytes 0 to 3 and has four one-byte fields each, a CAP capability field, a PRI priority field, an EXE process execution status field (for example, "pending "," ready ", etc.) and a DEXT execution field. The details concerning the contents of the four fields of the word PMW.0 are given in the

brevet US 4.297.743.U.S. Patent 4,297,743.

Le mot principal de processus PMW.1 est mis en mémoire dans les octets 4 à 7. L'octet d'état STR permet la mise en mémoire du registre d'état STR du système. L'octet suivant (codé MBZ) est mis à zéro. Le champ suivant ES de deux bits indique le mode d'exécution du processus selon la valeur de son contenu: ES = 00 Mode 32 ES = 01 Mode 32/64 ES = 10 Mode 64 ES = 11 PCB illégal Le contenu du champ ES est susceptible d'être modifié par le logiciel avant l'exécution d'une instruction de démarrage de processus (START), permettant ainsi de changer le mode d'exécution du processus, ou à l'aide  The PMW.1 process main word is stored in bytes 4 to 7. The STR status byte stores the STR status register of the system. The next byte (MBZ encoded) is set to zero. The following two-bit ES field indicates the execution mode of the process according to the value of its contents: ES = 00 Mode 32 ES = 01 Mode 32/64 ES = 10 Mode 64 ES = 11 Illegal PCB The contents of the ES field is may be modified by the software before executing a START command, thereby changing the execution mode of the process, or using

d'instructions spécialisées.specialized instructions.

Le mot principal de processus PMW.2 est utilisé pour communiquer des informations complémentaires relatives à l'état du processus, tandis que le mot PMW.3 comporte deux champs significatifs, le champ DCN (bits O à 7) concernant les droits du processus à exécuter certaines instructions spécifiques et le champ CPSM (bits 16 à 31) concernant un  The main PMW.2 process word is used to communicate additional information about the process state, while the word PMW.3 has two significant fields, the DCN field (bits 0 to 7) concerning the rights of the process to execute certain specific instructions and the CPSM field (bits 16 to 31) concerning a

masque des processeurs autorisé à exécuter le processus.  mask processors allowed to execute the process.

Le bloc PCB comporte ensuite les deux mots d'espace-  The PCB block then comprises the two space words

adresse ASW.O/1 déjà présentés (fournissant l'adresse des tableaux décrivant les tables de segments STWA), puis un sous-bloc constitué des octets 24 à 51, significatif pour ES=00 ou 01 et constitué du mot d'exception EXW, du mot de pile SKW mémorisant le contenu du registre T de sommet de pile utilisé pour les appels de procédure, du mot ICW mémorisant le contenu du compteur d'instruction IC utilisé pour connaître l'adresse de l'instruction à exécuter, du mot CSW mémorisant le contenu du registre CSR utilisé pour connaître le numéro d'ordre ou l'identification de l'espace d'adressage courant EAC et pour terminer les trois mots de base de pile SBW.1 à SBW.3. Ces mots comportent les adresses segmentées respectives des premiers octets des segments de pile pour les anneaux (0),  address ASW.O / 1 already presented (providing the address of the tables describing the STWA segment tables), then a sub-block consisting of bytes 24 to 51, significant for ES = 00 or 01 and consisting of the exception word EXW , of the SKW stack word storing the contents of the stack top register T used for the procedure calls, of the ICW word storing the contents of the instruction counter IC used to know the address of the instruction to be executed, of the word CSW storing the contents of the register CSR used to know the sequence number or the identification of the current address space EAC and to terminate the three stack base words SBW.1 to SBW.3. These words include the respective segmented addresses of the first bytes of the stack segments for the rings (0),

(1) et (2).(1 and 2).

Les octets 52 à 83 correspondent à 8 mots d'une zone de mémorisation des registres de base ZMRB (non significatifs en mode ES=01 et ES=10). Ces registres de base présentent un format sur 32 bits analogue à celui décrit pour les  Bytes 52 to 83 correspond to 8 words of a storage area of the ZMRB basic registers (insignificant in ES = 01 mode and ES = 10). These basic registers have a 32-bit format similar to that described for

descripteur ITS32 en référence à la figure 8.  ITS32 descriptor with reference to FIG. 8.

Les octets 84 à 147 correspondent à 16 mots d'une zone de mémorisation des registres généraux ZMRG tandis que les octets 148 à 179 correspondent à 8 mots d'une zone de  Bytes 84 to 147 correspond to 16 words of a storage area of the general registers ZMRG whereas bytes 148 to 179 correspond to 8 words of a zone of

mémorisation des registres scientifiques ZMRS.  storage of ZMRS scientific registers.

Les octets 180 à 255 correspondent à un sous-bloc non significatif lorsque ES=00; le premier mot de ce sous-bloc comporte un premier champ BREM d'un octet utilisé pour la mémorisation du contenu d'un registre BREM (masque des registres de base étendus) utilisable en Mode 32/64, soit ES=01, et un second champ mis à zéro MBZ. Les octets 184 à 247 correspondent à la zone de mémorisation des registres de base étendus EXZMRB (8 doubles mots). Ces registres de base présentent des formats sur 64 bits analogues aux formats décrits pour les descripteurs ITS64 (TAG=01 et TAG<>01) en référence aux figures 4,6, et 10. Les octets 248 à 255 correspondent à un double mot principal de processus EXPMW.2. Les octets 256 à 303 ne sont significatifs qu'en Mode 64 (ES=10) et comportent un mot double EXICW mémorisant le contenu du compteur d'instruction étendu, un mot double EXSKW mémorisant le contenu du registre T étendu de sommet de pile, les trois  Bytes 180 to 255 correspond to a non-significant sub-block when ES = 00; the first word of this sub-block comprises a first field BREM of one byte used for the storage of the contents of a register BREM (mask of the extended basic registers) usable in Mode 32/64, ie ES = 01, and a second field set to zero MBZ. Bytes 184 through 247 correspond to the storage area of extended base registers EXZMRB (8 double words). These basic registers have 64-bit formats similar to the formats described for the ITS64 descriptors (TAG = 01 and TAG <> 01) with reference to FIGS. 4,6, and 10. The bytes 248 to 255 correspond to a main double word EXPMW.2 process. Bytes 256 to 303 are significant only in Mode 64 (ES = 10) and include an EXICW double word storing the contents of the extended instruction counter, an EXSKW double word storing the contents of the stack top extended T register. the three

mots doubles EXSCW.0 à EXSBW.2 et le mot double EXEXW.  double words EXSCW.0 to EXSBW.2 and the double word EXEXW.

Enfin le bloc PCB selon le nouveau format présente une zone de 8 mots de mémorisation de rapport d'exception ZMRE (octets 304 à 352), une zone (octets 336 à 367) de quatre doubles mots d'espace d'adressage ASDW.0 à ASDW.3 (voir figure 7) pour les segments de types 64K/4MB et une zone (octets 368 à 399) de quatre doubles mots d'espace d'adressage ASDW.4 à ASDW.7 pour les segments de type 4GB. Le mode d'exécution de processus dit Mode 32/64 a été conçu pour une meilleure utilisation des segments de type 64K/4MB et pour permettre des ponts entre les deux domaines mémoire DL et DX, en particulier permettre la  Finally, the PCB block according to the new format has a zone of 8 words of exception report storage ZMRE (bytes 304 to 352), a zone (bytes 336 to 367) of four double words of address space ASDW.0. to ASDW.3 (see FIG. 7) for the 64K / 4MB type segments and a zone (bytes 368 to 399) of four ASDW.7 address space double words to ASDW.7 for the 4GB type segments. The Mode 32/64 process execution mode has been designed for better use of 64K / 4MB segments and to allow bridges between the two DL and DX memory domains, in particular to enable

migration vers un adressage à 64 bits.  migration to 64-bit addressing.

Le Mode 32/64 utilise le contenu du registre BREM qui permet de mémoriser sur un octet la longueur des huit descripteurs ITS contenus dans les registres de base (1 bit BREMi par registre de base BRi, avec i compris entre 0 et 7). La valeur "0" du contenu du bit BREMi indique que le registre de base BRi correspondant contient un descripteur ITS d'un format de 32 bits tandis que la valeur "1" du bit BREMi indique que ce même registre de base BRi contient un descripteur ITS d'un format de 64 bits. Les instructions de rangement et de chargement du registre de base utilisent le contenu de registre BREM pour décider des conversions éventuelles (32->64) ou (64->32). Plus précisément, si BREMi=l, le registre de base BRi comporte une adresse virtuelle de 64 bits et le développement d'adresse est fait à partir du contenu des champs SHR, ASN, STN, STE et SRA. A l'inverse, si BREMi=0 le registre de base BRi comporte une adresse virtuelle de 32 bits. Si le code TAG contenu dans le registre BRi est différent de 01, alors le développement d'adresse est effectué sur 32 bits; dans le cas contraire (TAG de BRi =01), une extension dynamique de format d'adresse est réalisée en tenant compte du contenu des champs SHR et ASN du registre d'espace courant CSR (le champ TAG du nouveau descripteur  The 32/64 Mode uses the content of the BREM register which makes it possible to store in one byte the length of the eight ITS descriptors contained in the basic registers (1 bit BREMi per basic register BRi, with i ranging from 0 to 7). The value "0" of the contents of the bit BREMi indicates that the corresponding base register BRi contains an ITS descriptor of a format of 32 bits while the value "1" of the bit BREMi indicates that this same base register BRi contains a descriptor ITS in a 64-bit format. The basic register storage and download instructions use the BREM registry contents to decide which conversions (32-> 64) or (64-> 32) are possible. More specifically, if BREMi = 1, the basic register BRi comprises a 64-bit virtual address and the address development is done from the contents of the fields SHR, ASN, STN, STE and SRA. Conversely, if BREMi = 0, the basic register BRi comprises a 32-bit virtual address. If the TAG code contained in the register BRi is different from 01, then the address development is carried out on 32 bits; in the opposite case (TAG of BRi = 01), a dynamic extension of address format is carried out taking into account the contents of the SHR and ASN fields of the current space register CSR (the TAG field of the new descriptor

ITS 64 bits ainsi obtenu est automatiquement mis à 00).  ITS 64 bits thus obtained is automatically set to 00).

Par ailleurs certains développements d'adresse sont effectués à partir du contenu de registres de base BR présentant un code TAG=10. Deux cas sont possibles: - un code TAG=10 dans un registre de base BRi dont le BREMi=0 (adresse de 32 bits) correspond à un descripteur de données ITS32 de TAG=00, - un code TAG=10 dans un descripteur de données ITS accédé en mémoire et associé à un BREMi=0 doit être suffixé par le contenu du registre CSR lorsque le contenu du registre de base d'origine qui a servi au développement  In addition, certain address developments are made from the content of basic registers BR having a TAG code = 10. Two cases are possible: - a TAG code = 10 in a basic register BRi whose BREMi = 0 (32-bit address) corresponds to an ITS32 data descriptor of TAG = 00, - a TAG code = 10 in a descriptor of ITS data accessed in memory and associated with a BREMi = 0 must be suffixed by the contents of the CSR register when the contents of the original home registry that was used for the development

d'adresse présente un code TAG=01.address has a TAG code = 01.

Enfin, lorsque le code TAG d'un descripteur de données ITS déplacé en mémoire à partir d'un registre dont le BREMi=0 (adresse 32 bits) est différent de 10 (ou 11), alors ce descripteur est suffixé par le contenu du registre CSR si  Finally, when the TAG code of an ITS data descriptor moved in memory from a register whose BREMi = 0 (32-bit address) is different from 10 (or 11), then this descriptor is suffixed by the content of the CSR register if

son code TAG=01.its code TAG = 01.

Ainsi donc un processus exécuté selon le Mode 32/64 est  So a process running according to Mode 32/64 is

susceptible de traiter des adresses de 32 et de 64 bits.  capable of handling 32-bit and 64-bit addresses.

Pour permettre ces changements de formats d'adresse et de passer d'un environnement 32 bits à un environnement 64 bits, deux instructions particulières ont été créées: - l'instruction XLBD charge deux mots (8 octets) de l'adresse X dans le registre de base BRi et place la valeur 1 dans le BREMi, - l'instruction XSTB range le contenu du registre de base BRi dans deux mots (8 octets) à partir de l'adresse X après une extension du format de 32 à 64 bits si BREMi=0  To enable these address format changes and to move from a 32-bit environment to a 64-bit environment, two special instructions have been created: - The XLBD instruction loads two words (8 bytes) from the X address into the base register BRi and places the value 1 in the BREMi, - the instruction XSTB arranges the contents of the basic register BRi in two words (8 bytes) starting from the address X after an extension of the format from 32 to 64 bits if BREMi = 0

et si le code TAG=01.and if the code TAG = 01.

MECANISMES D'APPEL DE PROCEDUREPROCEDURE CALL MECHANISMS

D'une façon générale, les systèmes informatiques font une large utilisation des opérations dites d'appel de procédure par lesquelles un processus exécutant une procédure est en mesure d'appeler une autre procédure APE pour exécution, puis par retour à la procédure initiale APT de reprendre sa propre exécution. Ce concept d'appel de procédure est très avantageux pour l'exploitation de programmes modulaires. Le demandeur a décrit dans le brevet US 4.297.743 un procédé et un dispositif utilisant une structure mémoire de pile bien adaptée à ce type  In general, computer systems make extensive use of so-called procedure call operations whereby a process executing a procedure is able to call another APE procedure for execution and then return to the original APT procedure of resume his own execution. This concept of procedure call is very advantageous for the exploitation of modular programs. The Applicant has described in US Pat. No. 4,297,743 a method and a device using a stack memory structure well adapted to this type.

d'opération d'appel de procédure.procedure call operation.

Une pile est un segment de mémoire particulier constitué par des éléments contigus dont l'accès est réalisé par le système LIFO (dernier entré, premier sorti). Un élément de pile est créé à chaque appel de procédure et est utilisé pour mémoriser les informations permettant le retour vers le processus appelant. On obtient ainsi dans la pile un  A stack is a particular memory segment consisting of contiguous elements accessed by the LIFO system (last in, first out). A stack element is created at each procedure call and is used to store the information allowing the return to the calling process. We thus obtain in the stack a

état récapitulatif des appels.call summary status.

Dans le système d'exploitation, l'emplacement de l'élément de pile actif est conservé dans le registre de base BR0, tandis que l'emplacement suivant disponible est conservé  In the operating system, the location of the active stack element is kept in the base register BR0, while the next available location is kept

dans un registre spécial T, ou registre de sommet de pile.  in a special register T, or stack top register.

Par ailleurs la transmission de certains paramètres est effectuée par un registre de base choisi par le programmeur. Un appel de procédure débute par l'exécution d'une instruction PRSK (préparation de la pile) qui a pour effet de sauvegarder dans la pile le contenu du registre STR et de fournir à l'utilisateur-programmeur le pointeur d'une zone susceptible de recevoir les paramètres et dans laquelle seront chargées les informations à transmettre à la procédure appelée. L'appel de la procédure est alors complété par l'exécution de l'instruction ENT (entrée de la procédure) selon les étapes suivantes: - contrôle d'anneau (en cas de nécessité de changement d'anneau, une sous-procédure de "porte" est alors exécutée), sauvegarde du contenu registre du compteur d'instructions IC, - chargement du registre de base BR0 (pointage vers les paramètres), - détermination du point d'entrée de la procédure par un descripteur de procédure dont l'adresse est donnée dans l'instruction ENT, - chargement d'un pointeur désignant les données de liaison dans un registre de base déterminé, par exemple le registre BR7, - entrée dans la nouvelle procédure par le chargement du nouveau numéro d'anneau le cas échéant et l'adresse du point d'entrée dans le registre du compteur d'instructions IC. Une zone de l'élément de pile en cours, dite zone de travail ZT, est également à la disposition de la procédure appelée par la mise en mémoire de variables locales. Le retour est effectué par l'instruction EXIT (sortie de procédure), à partir du contenu des zones de mémorisation de la pile concernant les registres et le compteur  In addition, the transmission of certain parameters is performed by a basic register chosen by the programmer. A procedure call begins with the execution of a PRSK instruction (stack preparation) which has the effect of saving the contents of the STR register in the stack and providing the programmer-user with the pointer of a zone that is susceptible to to receive the parameters and in which will be loaded the information to be transmitted to the called procedure. The call of the procedure is then completed by the execution of the instruction ENT (entry of the procedure) according to the following steps: - ring control (in case of need of change of ring, a sub-procedure of "door" is then executed), saving of the contents of the register of the instruction counter IC, - loading of the basic register BR0 (pointing to the parameters), - determination of the entry point of the procedure by a procedure descriptor of which the address is given in the instruction ENT, - loading a pointer designating the link data in a given base register, for example the register BR7, - entering the new procedure by loading the new ring number the where appropriate and the address of the entry point in the IC instruction counter register. An area of the current stack element, called ZT work area, is also available to the called procedure by storing local variables. The return is made by the EXIT instruction (procedure output), from the contents of the storage areas of the stack concerning the registers and the counter

d'instructions IC.IC instructions.

Pour des raisons de sécurité, il est prévu une structure de pile par numéro d'anneau. Pour chaque pile le format particulier d'un élément dépendra du mode d'exécution du processus appelant. La figure 12 illustre schématiquement  For security reasons, there is provided a stack structure by ring number. For each stack the particular format of an element will depend on the execution mode of the calling process. Figure 12 illustrates schematically

le format d'un élément de pile utilisé dans le Mode 32/64.  the format of a stack element used in 32/64 Mode.

Si l'on considère la figure 12, l'élément de pile selon le Mode 32/64 est constitué sur une largeur de 32 bits de trois zones principales: la zone de travail ZT, la zone de sauvegarde ou de mémorisation d'information ZS (avant l'appel de la nouvelle procédure) et la zone de communication ZC (dans laquelle sont rangées les informations nécessaires pour l'exécution de la procédure appelée). Ces trois zones sont créées par l'instruction PRSK, le premier octet de la zone ZC est désigné par le  If we consider FIG. 12, the stack element according to the Mode 32/64 is constituted on a 32-bit width of three main zones: the work zone ZT, the zone for storing or saving information ZS (before the call of the new procedure) and the communication zone ZC (in which are stored the necessary information for the execution of the called procedure). These three areas are created by the PRSK instruction, the first byte of the ZC area is designated by the

registre de base BR0.basic register BR0.

Le premier mot de la zone ZS est constitué par le masque de zone de sauvegarde ou SAM, se présentant comme il suit: - un champ "format" de 4 bits, dans le cas présent, de contenu 0100, - une zone BR de 8 bits constituant un masque de désignation pour les 8 registres de base BR0 à BR7 (en vue de leur mise en mémoire), - une zone GR de 16 bits, constituant un masque de désignation pour les 16 registres généraux GR0 à GR15, - et une zone SR de 4 bits constituant un masque de  The first word of the zone ZS is constituted by the backup zone mask or SAM, which is as follows: a "format" field of 4 bits, in this case, of contents 0100, - a zone BR of 8 bits constituting a designation mask for the 8 basic registers BR0 to BR7 (with a view to their storage), - a 16-bit GR area constituting a designation mask for the 16 general registers GR0 to GR15, and a 4-bit SR area constituting a mask of

désignation pour 4 registres scientifiques SR0 à SR3.  designation for 4 scientific registers SR0 to SR3.

Le second mot est réservé à la sauvegarde du registre CSR tandis que le troisième mot est réservé à la sauvegarde du registre BREM. Vient ensuite la zone de sauvegarde des registres de base BRSA (2 mots par registre, avec une mise à zéro du deuxième mot lorsque BREMi=0), puis la zone de sauvegarde ORSA des autres registres. L'avant dernier mot est utilisé pour la sauvegarde du registre d'état STR (ler octet) et le numéro éventuel de l'extension mémoire partielle dans lequel la procédure en cours du processus appelant opérait. Enfin, le dernier mot PTV de la zone de sauvegarde ZS contient la valeur précédente du registre T, soit la valeur du registre T au commencement de  The second word is reserved for the backup of the CSR register while the third word is reserved for the backup of the BREM register. Then comes the backup zone of the BRSA basic registers (2 words per register, with a reset of the second word when BREMi = 0), then the ORSA save zone of the other registers. The last-to-last word is used for the backup of the STR status register (1 byte) and the possible number of the partial memory extension in which the current procedure of the calling process was operating. Finally, the last word PTV of the ZS save area contains the previous value of the register T, the value of the register T at the beginning of

l'instruction PRSK.the PRSK instruction.

La zone de communication ZC dont l'entrée est donnée par le pointeur contenu dans le registre de base BR0 débute par le mot PSA qui contient le pointeur du mot SAM. Vient ensuite le mot ICC qui contient l'adresse de l'instruction suivant l'instruction ENT. Par ailleurs le contenu du champ NBP (nombre d'octets de la zone des paramètres) de l'instruction PRSK est rangé dans le champ NBP de l'élément de pile. La zone de communication se termine par la zone des paramètres PARAM dont la fin est bordée par l'octet de sommet de pile T. Le registre T est mis à jour  The communication zone ZC whose input is given by the pointer contained in the basic register BR0 starts with the word PSA which contains the pointer of the word SAM. Next is the word ICC which contains the address of the instruction following the instruction ENT. In addition, the contents of the NBP field (number of bytes of the parameter area) of the PRSK instruction are stored in the NBP field of the stack element. The communication area ends with the PARAM parameter area whose end is bordered by the stack top byte T. The T-register is updated

après chaque création d'élément de pile.  after each stack element creation.

En cas d'exécution en Mode 32, le format de pile est voisin de celui précédemment décrit en référence à la figure 12, avec les modifications suivantes: - le contenu du champ "format" du mot SAM est mis à 0000, - les mots CSR et BREM sont éliminés, - la sauvegarde du contenu des registres de base est  When executed in Mode 32, the stack format is similar to that previously described with reference to FIG. 12, with the following modifications: the content of the "format" field of the word SAM is set to 0000, the words CSR and BREM are eliminated, - the backup of the contents of the basic registers is

effectuée sur un seul mot au lieu de deux.  performed on one word instead of two.

En cas d'exécution en Mode 64, le format de pile est voisin de celui précédemment décrit à propos du Mode 32/64 en référence à la figure 12, avec les modifications suivantes: - le contenu du champ "format" du mot SAM est mis à 1000, - les mots CSR et BREM sont éliminés, - les zones de sauvegarde des registres de base, les zones PTV, PSA et ICC ont pour dimension un mot double. Ainsi donc l'adresse du premier octet de la zone PARAM est obtenu par un déplacement de 20 octets, à partir de  When executed in Mode 64, the stack format is similar to that previously described about the 32/64 Mode with reference to FIG. 12, with the following modifications: the content of the "format" field of the word SAM is set to 1000, - the words CSR and BREM are eliminated, - the backup areas of the basic registers, the areas PTV, PSA and ICC have the dimension of a double word. Thus, the address of the first byte of the PARAM zone is obtained by a displacement of 20 bytes, starting from

l'adresse pointée par le contenu du registre BR0.  the address pointed by the content of the register BR0.

L'accès aux diverses procédures mises en oeuvre dans le cadre des mécanismes d'appel est réalisé par l'intermédiaire de descripteurs d'adresse de procédure appelés descripteurs de procédure PD. Bien entendu, les formats des descripteurs de procédure dépendent du mode  Access to the various procedures implemented as part of the call mechanisms is achieved through procedure address descriptors called PD procedure descriptors. Of course, the formats of the procedural descriptors depend on the mode

d'exécution du processus.execution of the process.

Si l'exécution est réalisée en Mode 32 ou en Mode 32/64, le format du descripteur de procédure, dénommé PD32, est conforme à celui illustré à la figure 13. Le premier mot M.0 comporte le champ TAG (bits 0 et 1), le champ EPRN (bits 3 et 4) équivalent au champ RING (numéro d'anneau) et au champ d'adresse segmentée (SEG, SRA) de la procédure appelée (bits 4 à 31) dans les cas o TAG<>0. Le champ SEG permet d'identifier un numéro de segment et a la même signification que l'ensemble des champs STN et STE des descripteurs des figures 6 et 8. De même le champ SRA définit le déplacement dans le segment défini par SEG. De façon optionnelle, un deuxième mot de 32 bits M.1 contient les paramètres d'extension EXPARAM. Plus précisemment: - pour TAG=00 (descripteur direct), le descripteur de procédure est limité à un mot et l'adresse segmentée correspond à celle du point d'entrée de la procédure; -pour TAG=01 (descripteur étendu), le descripteur comporte deux mots; l'adresse segmentée correspond à celle du point d'entrée de la procédure; par ailleurs le contenu du deuxième mot est chargé dans le registre de base BR7 lors de l'entrée de la procédure; - pour TAG=10 (descripteur CASD), le descripteur dénommé descripteur de changement d'espace d'adressage CASD  If the execution is carried out in Mode 32 or in Mode 32/64, the format of the procedure descriptor, denominated PD32, is in conformity with that illustrated in FIG. 13. The first word M.0 comprises the field TAG (bits 0 and 1), the EPRN field (bits 3 and 4) is equivalent to the RING field (ring number) and the segmented address field (SEG, SRA) of the called procedure (bits 4 to 31) in cases where TAG < > 0. The SEG field makes it possible to identify a segment number and has the same meaning as the set of STN and STE fields of the descriptors of FIGS. 6 and 8. Similarly, the SRA field defines the displacement in the segment defined by SEG. Optionally, a second 32-bit word M.1 contains the EXPARAM extension parameters. More precisely: - for TAG = 00 (direct descriptor), the procedure descriptor is limited to one word and the segmented address corresponds to that of the entry point of the procedure; for TAG = 01 (extended descriptor), the descriptor comprises two words; the segmented address corresponds to that of the entry point of the procedure; moreover, the content of the second word is loaded into the basic register BR7 during the entry of the procedure; for TAG = 10 (CASD descriptor), the descriptor called CASD address space change descriptor

présente le format illustré à la figure 14.  presents the format shown in Figure 14.

Le premier mot M.0 du descripteur CASD comporte outre le champ TAG fixé à 10, un champ NXM (bits 2 et 3) définissant le mode d'exécution de la procédure appelée et le champ PDA1 (SEG, SRA) (bits 4 à 31) de l'adresse segmentée du descripteur de la procédure appelée. Le deuxième mot M.1 comporte une zone de 6 bits mis à zéro et un champ additionnel PDA2 (SHR, ASN) (bits 38 à 63) de  The first word M.0 of the CASD descriptor comprises in addition to the TAG field set at 10, an NXM field (bits 2 and 3) defining the execution mode of the called procedure and the PDA1 (SEG, SRA) field (bits 4 to 31) of the segmented address of the descriptor of the called procedure. The second word M.1 comprises a zone of 6 bits set to zero and an additional field PDA2 (SHR, ASN) (bits 38 to 63) of

l'adresse segmentée du descripteur de procédure appelée.  the segmented address of the called procedure descriptor.

Si l'exécution est réalisée en Mode 64, le format du descripteur de procédure, dénommé PD64, est conforme à celui illustré à la figure 15. Le format présente au minimum deux mots (M.0 et M.1), et de façon optionnelle deux mots d'extension (M.2 et M.3). La structure des mots M.0 et M.1 est semblable à celle déjà décrite pour les descripteurs de données ITS64 en adressage 64 bits. De plus les mots M.2 et M.3 comportent des paramètres  If the execution is carried out in Mode 64, the format of the procedure descriptor, denominated PD64, is in conformity with that illustrated in FIG. 15. The format presents at least two words (M.0 and M.1), and so optional two extension words (M.2 and M.3). The structure of the words M.0 and M.1 is similar to that already described for the ITS64 data descriptors in 64-bit addressing. In addition, the words M.2 and M.3 include parameters

d'extension EXPARAM1/2.extension EXPARAM1 / 2.

- Pour TAG=00 ou (TAG=01 et XTAG=00) (descripteur direct) la dimension du descripteur est de deux mots et l'adresse  - For TAG = 00 or (TAG = 01 and XTAG = 00) (direct descriptor) the dimension of the descriptor is two words and the address

segmentée est celle du point d'entrée de la procédure.  Segmented is the entry point of the procedure.

- Pour TAG=10 ou (TAG=O1 et XTAG=10) (descripteur étendu), la dimension du descripteur est de quatre mots, l'adresse segmentée est celle du point d'entrée de la procédure et le contenu des mots M.2 et M.3 est chargé  - For TAG = 10 or (TAG = O1 and XTAG = 10) (extended descriptor), the dimension of the descriptor is four words, the segmented address is that of the entry point of the procedure and the content of the words M. 2 and M.3 is loaded

dans le registre de base BR7.in the basic register BR7.

- Pour TAG=11 ou (TAG=01 et XTAG<>(00 ou 10), il se produit un branchement vers des procédures d'exception  - For TAG = 11 or (TAG = 01 and XTAG <> (00 or 10), there is a connection to exceptional procedures

prévues par le système.provided by the system.

D'une façon générale, un descripteur de procédure incorporé dans un segment non protégé est susceptible d'être placé dans tout segment compatible avec l'adressage utilisé et le mode d'exécution du procédé: en Mode 32, le descripteur de procédure est placé dans un segment de l'espace 64K/4MB accessible par SHR et ASN égaux à zéro. Il peut également être placé dans tout segment des espaces 64K/4MB (EAX), s'il est référencé par l'intermédiaire d'un descripteur CASD lui même localisé dans un segment de l'espace 64K/4MB accessible par SHR et  In general, a procedure descriptor incorporated in an unprotected segment may be placed in any segment compatible with the addressing used and the method of execution of the method: in Mode 32, the procedure descriptor is placed in a 64K / 4MB space segment accessible by SHR and ASN equal to zero. It can also be placed in any segment of the 64K / 4MB (EAX) spaces, if it is referenced via a CASD descriptor itself located in a segment of the 64K / 4MB space accessible by SHR and

ASN égaux à zéro.ASN equals zero.

- en Mode 64, le descripteur de procédure peut être placé dans tout type de segment, pour autant que le processus soit autorisé à accéder à ce segment, - en Mode 32/64, le descripteur de procédure peut être placé dans tout segment du type 64K/4MB ou 4GB, s'il est  - in Mode 64, the procedure descriptor can be placed in any type of segment, as long as the process is authorized to access this segment, - in Mode 32/64, the procedure descriptor can be placed in any segment of the type 64K / 4MB or 4GB, if it is

référencé par une adresse virtuelle de 64 bits (BREMi=1).  referenced by a 64-bit virtual address (BREMi = 1).

Il peut être placé dans tout segment de type 64K/4MB s'il  It can be placed in any 64K / 4MB segment if it

est référencé par l'intermédiaire d'un descripteur CASD.  is referenced through a CASD descriptor.

Il peut être directement référençable si le segment 64K/4MB est accessible avec SHR et ASN égaux à zéro, ou  It can be directly referenced if the 64K / 4MB segment is accessible with SHR and ASN equal to zero, or

avec le contenu du registre CSR.with the contents of the CSR register.

Quel que soit le mode d'exécution, le mécanisme d'appel de procédure remplit les quatre fonctions principales suivantes: a) Vérification du droit d'accès, c'est-à-dire du droit de l'appelant (APT) à appeler l'appelé (APE) en fonction des valeurs d'anneaux respectifs, b) Détermination du nouveau numéro d'anneau, c) Mise à jour de la pile et des registres de pile,  Regardless of the mode of execution, the procedure call mechanism fulfills the following four main functions: a) Checking the access right, ie the caller's right (APT) to call the called party (APE) according to the respective ring values, b) Determination of the new ring number, c) Update of the battery and battery registers,

d) Branchement sur le point d'entrée de la procédure.  d) Connection to the entry point of the procedure.

En Mode 32 et en Mode 32/64, les mécanismes d'appel et de retour diffèrent légèrement selon la nécessité d'un changement automatique de mode d'exécution et/ou la présence d'un descripteur de procédure nonaccessible  In Mode 32 and Mode 32/64, the call and return mechanisms differ slightly depending on the need for an automatic change of mode of execution and / or the presence of a nonaccessible procedure descriptor

directement par une adresse virtuelle de 32 bits.  directly by a 32-bit virtual address.

Pour la suite de l'exposé, les définitions suivantes seront utilisées: Espace d'adressage PCB (EAPCB): Ensemble des segments directement accessible lorsque le processus est exécuté  For the rest of the presentation, the following definitions will be used: PCB Address Space (EAPCB): Set of segments directly accessible when the process is executed

en Mode 32.in Mode 32.

Espace d'adressage courant (EAC): Ensemble des segments appartenant à l'espace d'adressage EAX accessible par l'intermédiaire du contenu du registre CSR. En cas de mise à zéro du registre CSR, l'espace EAPCB et l'espace d'adressage courant EAC représentent le même ensemble de segments. Nouvel espace d'adressage (NEA): Ensemble des segments appartenant à l'espace d'adressage accessible par  Current Address Space (EAC): The set of segments belonging to the EAX address space accessible through the contents of the CSR register. If the CSR register is zeroed, the EAPCB space and the current EAC address space represent the same set of segments. New address space (NEA): Set of segments belonging to the address space accessible by

l'intermédiaire du second mot d'un descripteur CASD.  via the second word of a CASD descriptor.

Au cours de l'exécution d'un processus, l'invention prévoit trois cas de changement dynamique de mode d'exécution lors d'un appel de procédure et lors du retour correspondant. Ces cas dénommés DYN1, DYN2 et DYN3 sont respectivement décrits en référence aux figures 18,19 et 20. Auparavant il est opportun de présenter rapidement les  During the execution of a process, the invention provides three cases of dynamic change of execution mode during a procedure call and during the corresponding return. These cases called DYN1, DYN2 and DYN3 are respectively described with reference to FIGS. 18, 19 and 20. Previously, it is expedient to present the

divers formats du registre du compteur d'instructions IC.  various formats of the IC instruction counter register.

Plus particulièrement, la figure 16 illustre le format du registre IC correspondant au Mode 64 pour TAG=00. Dans ce cas, le format (constitué d'un mot double) est analogue à celui décrit pour les descripteurs 64K/4MB/ITS64 (illustré figure 6) avec équivalence entre le champ RING (montré à la figure 6) et le champ PRN (montré à la figure 16). Pour TAG=10, le format du registre IC est analogue à celui décrit pour les descripteurs 4GB/ITS64 (illustré figure 4). En Modes 32 et 32/64 le registre IC est constitué d'un seul mot dont le format est analogue àcelui décrit pour les descripteurs 64K/4MB/ITS32 (illustré figure 8) avec équivalence entre le champ EAR (montré à la figure 8) et le champ PRN du registre IC. En Mode 32 le champ TAG est toujours égal à 00. Par contre, en Mode 32/64 le champ TAG peut prendre la valeur 00 (le registre IC contient l'adresse virtuelle de la prochaine instruction à exécuter) ou la valeur 01 (le contenu du registre d'instruction doit être concaténé avec le contenu du registre CSR pour former l'adresse virtuelle de la  More particularly, FIG. 16 illustrates the format of the IC register corresponding to Mode 64 for TAG = 00. In this case, the format (consisting of a double word) is similar to that described for the 64K / 4MB / ITS64 descriptors (illustrated in FIG. 6) with equivalence between the RING field (shown in FIG. 6) and the PRN field (FIG. shown in Figure 16). For TAG = 10, the format of the IC register is similar to that described for the 4GB / ITS64 descriptors (shown in Figure 4). In Modes 32 and 32/64 the IC register consists of a single word whose format is similar to that described for the 64K / 4MB / ITS32 descriptors (illustrated in FIG. 8) with equivalence between the EAR field (shown in FIG. 8) and the PRN field of the IC register. In Mode 32 the TAG field is always equal to 00. On the other hand, in Mode 32/64 the TAG field can take the value 00 (the register IC contains the virtual address of the next instruction to be executed) or the value 01 (the instruction register content must be concatenated with the contents of the CSR register to form the virtual address of the

prochaine instruction à exécuter).  next statement to execute).

D'une façon générale, un mécanisme d'appel de procédure dans un espace d'adressage EA donné, à partir d'une procédure appelante APT vers une procédure appelée APE, et utilisant un descripteur de procédure PD s'effectue selon le schéma de base illustré à la figure 17. L'utilisation d'un descripteur de procédure dans un mécanisme d'appel permet de faire sans difficulté les contrôles de cohérence nécessaires à assurer l'intégrité du système. De plus une convention logicielle exploitant le mécanisme d'indirection permet d'avoir une résolution statique et dynamique très performante des références externes au programme à exécuter (cette indirection est repérée sur  In general, a procedure call mechanism in a given address space EA, from an APT calling procedure to a procedure called APE, and using a PD procedure descriptor is performed according to the schema of the procedure. Figure 17. The use of a procedure descriptor in a calling mechanism makes it easy to perform the consistency checks necessary to ensure the integrity of the system. Moreover a software convention exploiting the mechanism of indirection makes it possible to have a static and dynamic resolution very powerful external references to the program to be executed (this indirection is marked on

les figures 17 à 20 par l'astérisque suivant le code ENT).  Figures 17 to 20 by the asterisk following the code ENT).

Pour cela le compilateur regroupe les références à résoudre dans une table dénommée section d'édition de liens LKS. Les appels de procédure externes au code d'instructions CODE utilisent une indirection pour atteindre le descripteur PD de la procédure appelée APE. Les avantages de cette méthode sont nombreux: -Elle permet l'indépendance du code et des références  For this purpose, the compiler groups the references to be solved in a table called the LKS link editing section. The procedure calls external to the CODE instruction code use an indirection to reach the PD descriptor of the procedure called APE. The advantages of this method are numerous: -It allows the independence of the code and references

externes au programme.external to the program.

-Elle permet de l'édition de liens dynamique avec partage de code en utilisant des règles de recherches locales (chaque programme doit avoir une sous-section de liens privée). -Elle permet de l'édition de liens dynamique sur les machines avec mémoire-cache d'instructions sans vidage de  -It allows dynamic link publishing with code sharing using local search rules (each program must have a private link sub-section). -It allows dynamic link editing on machines with instruction cache memory without dump of

la mémoire-cache après résolution de la référence externe.  the cache memory after resolution of the external reference.

-Enfin, la résolution d'une référence externe n'est faite qu'une seule fois quelque soit le nombre d'utilisations  -Finally, the resolution of an external reference is made only once regardless of the number of uses

dans le code.in the code.

En première approximation le compilateur produit deux objets. Le premier contient le code-objet CODE (ensemble des instructions à exécuter) et le second une section d'édition des liens LKS qui contient un mot par référence externe à résoudre plus des constantes utilisées par le code. Par ailleurs une table annexe contient les noms symboliques des références externes (pour l'édition des liens statique ou dynamique). La section d'édition des liens LKS et le code CODE peuvent être regroupés dans un même segment pour des raisons d'économie de segment. De même plusieurs unités de compilation peuvent être aussi regroupées. A l'exécution, l'instruction ENT (ENTER) va chercher au déplacement X par rapport à la base BR7 soit directement un descripteur de procédure PD s'il n'y a pas d'indirection à ce niveau (cas illustré à la figure 17) soit un autre descripteur d'adresse s'il y a une indirection (par exemple dans les cas illustrés aux figures 18, 19 et 20). Le descripteur de procédure PD est lu après les contrôles d'accès (privilèges) pour obtenir l'adresse du point d'entrée dans la procédure appelée et  As a first approximation the compiler produces two objects. The first contains the CODE object-code (set of instructions to execute) and the second an LKS link-editing section that contains a word by external reference to resolve plus constants used by the code. In addition, an appendix table contains the symbolic names of the external references (for static or dynamic link editing). The LKS link editing section and the CODE code can be grouped into a single segment for segment saving reasons. Similarly, several compilation units can be grouped together. At execution, the instruction ENT (ENTER) will look for the displacement X with respect to the base BR7 or directly a descriptor of procedure PD if there is no indirection at this level (case illustrated in FIG. 17) or another descriptor of address if there is an indirection (for example in the cases illustrated in Figures 18, 19 and 20). The PD procedure descriptor is read after the access controls (privileges) to obtain the entry point address in the called procedure and

la valeur à ranger dans le registre de base BR7.  the value to be stored in the basic register BR7.

Ainsi donc, le mécanisme d'appel de procédure met en jeu les deux instructions PRSK et ENT. La première instruction PRSK prépare la zone de pile qui sert à la sauvegarde du contexte (ensemble des contenus instantanés des registres affectés au processus) et au passage des paramètres. Cette instruction a pour argument un masque SAM désignant les registres à sauvegarder, la taille de la zone des paramètres et le numéro du registre qui contiendra en fin d'instruction une adresse permettant de ranger les paramètres dans la zone réservée. La deuxième instruction ENT effectue le "transfert de contrôle", c'est-à-dire le passage à une nouvelle séquence de code d'instructions à exécuter. Le fait de séparer la préparation de l'appel de l'appel lui-même permet de libérer des registres pour  Thus, the procedure call mechanism involves both the PRSK and ENT instructions. The first PRSK instruction prepares the stack area that is used to save the context (set of instant contents of the registers assigned to the process) and passing parameters. This instruction has for argument a SAM mask designating the registers to be saved, the size of the parameters zone and the number of the register which will contain at the end of the instruction an address allowing to arrange the parameters in the reserved zone. The second instruction ENT performs the "control transfer", that is, the transition to a new instruction code sequence to be executed. Separating the preparation from the call of the call itself frees records for

effectuer la séquence de passage des paramètres.  perform the sequence of passage of the parameters.

Il est à remarquer que le registre pointant le contexte est le registre de base BR0 pour le contexte de la procédure appelante. C'est le registre cité dans l'instruction PRSK pour le nouveau contexte jusqu'à l'exécution de l'instruction d'appel ENT. Comme le registre de base BR0 est systématiquement sauvé, il est  It should be noted that the register pointing the context is the base register BR0 for the context of the calling procedure. This is the register cited in the PRSK statement for the new context until the execution of the ENT call statement. As the basic register BR0 is systematically saved, it is

possible de remonter la chaîne des appels.  possible to trace the chain of calls.

Au retour, l'instruction EXIT dépile le contexte et réinitialise les differents registres avec les valeurs sauvegardées.  On return, the EXIT statement unpacks the context and resets the different registers with the saved values.

Cas No 1 (DYN1): du Mode 32 au Mode 32/64.  Case No 1 (DYN1): from Mode 32 to Mode 32/64.

Le passage du mode 32 au mode 32/64 se fait simplement en insérant un descripteur de changement d'espace d'adresse  Switching from 32 to 32/64 mode simply by inserting an address space change descriptor

CASD sur le chemin d'accès au descripteur de procédure PD.  CASD on the path to the PD procedure descriptor.

Les deux mots du descripteur CASD forment une adresse sur 64 bits permettant de lire le descripteur de procédure PD. Comme la résolution des références externes est faite sous le contrôle du système d'exploitation sans modification du format de la table LKS ou du descripteur de procédure, l'insertion du descripteur CASD est totalement transparente aux anciens programmes. Le deuxième mot du descripteur CASD (de format identique à celui du registre CSR) indique quel est le nouvel espace d'adressage NEA qui sera activé comme espace EAC. Il n'est pas nécessaire que le code ou la section d'édition des liens de la procédure appelée soit dans l'espace EAC. Le fait de placer tout ou partie dans l'espace EAC dépend de l'usage que l'on veut faire des nouvelles possibiltés offertes par l'invention (extension de l'espace virtuel, adressage absolu, accès à  The two words of the CASD descriptor form a 64-bit address for reading the PD procedure descriptor. Since the resolution of the external references is done under the control of the operating system without changing the format of the LKS table or the procedure descriptor, the insertion of the CASD descriptor is completely transparent to the old programs. The second word of the CASD descriptor (same format as the CSR register) indicates which is the new NEA address space that will be activated as EAC space. The code or link editing section of the called procedure does not need to be in the EAC space. The fact of placing all or part of the space EAC depends on the use that one wants to make of the new possibilities offered by the invention (extension of the virtual space, absolute addressing, access to

l'espace DX).the DX space).

Ainsi donc, le changement dynamique survient lors d'une procédure d'appel (CALL), par exemple avec l'exécution d'une instruction ENT, dans le cas o le premier descripteur conduisant à la procédure appelée APE est de type CASD. Cet accès est réalisé de la façon illustrée à la figure 18. Le registre compteur d'instructions IC  Thus, the dynamic change occurs during a call procedure (CALL), for example with the execution of an instruction ENT, in the case where the first descriptor leading to the procedure called APE is of type CASD. This access is performed as shown in Figure 18. The IC instruction counter register

présente un format à 32 bits avec le champ TAG mis à 00.  has a 32-bit format with the TAG field set to 00.

Le registre IC pointe dans l'espace EAPCB l'adresse d'une entrée ENT dans la table de code d'instructions (table CODE). L'instruction ENT contient un champ d'adresse appelé syllabe d'adresse significative d'une indirection appelant le registre de base BR7 (voir le brevet US 4.385.352 et le brevet US 4.297.743). Le développement de la syllabe d'adresse en combinaison avec le contenu du registre de base BR7 pointe vers une entrée dans la table de liaison (table LKS) dont le contenu permet de pointer vers le descripteur de procédure réel PD du type PD32 localisé dans le nouvel espace d'adresse NEA. Le champ TAG du descripteur PD est mis à la valeur 01, significative d'un format de mot double, et les champs d'adressage segmenté du descripteur PD sont chargés du contenu des champs correspondants du descripteur CASD. Ainsi donc le système utilisera de façon classique le premier mot du descripteur PD pour déterminer dans la table CODE du nouvel espace d'adressage NEA l'entrée du code instruction de la procédure appelée APE et le deuxième mot du descripteur PD pour déterminer l'entrée correspondante dans la table de liaison LKS et trouver les informations  The IC register points in the EAPCB space to the address of an ENT entry in the instruction code table (CODE table). The instruction ENT contains an address field called an address significant syllable of an indirection calling the base register BR7 (see US Patent 4,385,352 and US Patent 4,297,743). The development of the address syllable in combination with the content of the basic register BR7 points to an entry in the link table (LKS table) whose content makes it possible to point to the real procedure descriptor PD of the PD32 type located in the new NEA address space. The TAG field of the PD descriptor is set to the value 01, significant of a double word format, and the segmented addressing fields of the PD descriptor are loaded with the content of the corresponding fields of the CASD descriptor. Thus, the system will conventionally use the first word of the descriptor PD to determine in the CODE table of the new address space NEA the input of the instruction code of the procedure called APE and the second word of the descriptor PD to determine the input in the LKS link table and find the information

nécessaires à l'exécution de la procédure appelée APE.  necessary to perform the procedure called APE.

De plus le champ TAG du registre IC est chargé dans le champ des bits 2 et 3 du premier mot du descripteur CASD qui devient alors un descripteur direct (TAG=00). Enfin le  In addition, the TAG field of the register IC is loaded into the field of bits 2 and 3 of the first word of the CASD descriptor which then becomes a direct descriptor (TAG = 00). Finally,

* mode d'exécution du processus passe en Mode 32/64 (ES=01).* Process execution mode goes into 32/64 Mode (ES = 01).

Lors de l'exécution d'une instruction de retour EXIT, le changement dynamique vers le Mode 32/64 interviendra avec le dépilage de la zone ZS si la procédure appelante APT était exécutable dans ce mode, c'est-à dire si le champ "format" (4 premiers bits) du mot SAM de l'élément de pile  When executing an EXIT return statement, the dynamic change to the 32/64 mode will occur with unstacking the ZS zone if the APT calling procedure was executable in this mode, ie if the field "format" (first 4 bits) of the SAM word of the stack element

correspondant est égal à 0100.corresponding is equal to 0100.

Cas N 2 (DYN2): du Mode 32/64 au Mode 32/64 (pseudo-  Case N 2 (DYN2): from 32/64 Mode to 32/64 Mode (pseudo

changement). Lorsqu'un processus est exécuté en Mode 32/64, le mécanisme de changement dynamique de mode est utilisé pour changer l'espace d'adressage courant EAC. Dans ce cas, le mécanisme de changement dynamique reste voisin de  change). When a process is run in 32/64 Mode, the dynamic mode change mechanism is used to change the current EAC address space. In this case, the dynamic change mechanism remains close to

celui précédemment décrit; il est illustré à la figure 19.  that previously described; it is illustrated in Figure 19.

Le descripteur CASD est utilisé pour pointer le descripteur de procédure PD dans le nouvel espace d'adressage. De plus, le champ TAG du registre IC est chargé dans le champ des bits 2 et 3 du premier mot du descripteur CASD. Enfin le registre CSR est chargé du contenu du second mot du descripteur CASD (le contenu précédent ayant été sauvegardé dans la pile). Bien entendu, le mode d'exécution du processus reste le Mode  The CASD descriptor is used to point the PD procedure descriptor in the new address space. In addition, the field TAG of the register IC is loaded into the field of bits 2 and 3 of the first word of the descriptor CASD. Finally, the CSR register is responsible for the content of the second word of the CASD descriptor (the previous content having been saved in the stack). Of course, the mode of execution of the process remains the Mode

32/64.32/64.

Cas No 3 (DYN3): du Mode 32/64 vers le Mode 32.  Case 3 (DYN3): from 32/64 Mode to 32 Mode.

Lorsqu'un processus est exécuté en Mode 32/64, le  When a process is run in 32/64 Mode, the

changement dynamique est autorisé par l'instruction ENT.  dynamic change is allowed by the ENT instruction.

Ce changement se produit lorsque le champ des bits 2 et 3 d'un descripteur CASD est égal à "10". Le mécanisme de changement dynamique correspondant est illustré à la  This change occurs when the field of bits 2 and 3 of a CASD descriptor is equal to "10". The corresponding dynamic change mechanism is illustrated in

figure 20.figure 20.

Ici encore, le descripteur CASD est utilisé pour extraire le descripteur de procédure PD. De plus le champ TAG du registre IC est mis à 00 et le registre CSR est chargé du contenu du second mot du descripteur CASD (le contenu précédent ayant été sauvegardé dans la pile). Enfin le  Here again, the CASD descriptor is used to extract the PD procedure descriptor. In addition, the TAG field of the register IC is set to 00 and the register CSR is loaded with the content of the second word of the descriptor CASD (the previous content having been saved in the stack). Finally,

mode d'exécution du processus passe en Mode 32.  Process execution mode changes to Mode 32.

Lors de l'exécution de l'instruction EXIT, le changement dynamique interviendra selon la valeur des 4 premiers bits  When executing the EXIT instruction, the dynamic change will occur according to the value of the first 4 bits

du mot SAM de la pile (0000=Mode 32 ou 0100=Mode 32/64).  the SAM word of the stack (0000 = Mode 32 or 0100 = Mode 32/64).

Ainsi donc le changement dynamique de mode d'exécution donne beaucoup de souplesse à l'utilisateur vis-à-vis des  Thus the dynamic change of execution mode gives a lot of flexibility to the user vis-à-vis

programmes existants écrits selon un format de 32 bits.  existing programs written in a 32-bit format.

Ces programmes sont susceptibles d'être localisés (y compris le code) dans le domaine mémoire 64 bits DX. Ils sont également susceptibles d'appeler des procédures et d'autres programmes et/ou sous-routines écrits selon un format de 64 bits et exécutables en Mode 32/64. Dans ce dernier mode d'exécution, les programmes sont capables de  These programs are likely to be localized (including code) in the 64-bit DX memory domain. They are also likely to call procedures and other programs and / or subroutines written in a 64-bit format and executable in 32/64 Mode. In this last mode of execution, programs are able to

gérer les deux types d'adressage 32 et 64 bits.  manage both types of 32 and 64 bit addressing.

L'invention n'est pas limitée au seul procédé ici décrit mais concerne également un système informatique comportant moyens matériels et logiciels pour mettre en oeuvre le procédé ci-avant présenté dans toutes ses variantes. Le système selon l'invention comporte le sous-système processeur 100 structuré autour d'un ou plusieurs processeurs centraux CPU 106 et d'une mémoire centrale  The invention is not limited to the only method described herein but also relates to a computer system comprising hardware and software means for implementing the above method presented in all its variants. The system according to the invention comprises the processor subsystem 100 structured around one or more CPU 106 central processors and a central memory

MMU 102, chaque processeur comprenant des moyens micro-  MMU 102, each processor comprising micro-means

programmés pour effectuer la gestion de la mémoire centrale 102 et de contrôleurs d'entrée/sortie IOC 108 vers le sous-système de périphériques 104, notamment vers des moyens de mémoire de masse de capacité suffisante pour l'adressage virtuel, et des moyens logiciels, notamment un ensemble de programmes regroupés sous le nom de système d'exploitation, pour permettre en association avec les moyens micro-programmés la mise en oeuvre du procédé selon l'invention. D'une façon pratique, les opérations spécifiques décrites dans le cadre de l'invention sont réalisées par logiciel et/ou micro-programmation et/ou  programmed to perform the management of the main memory 102 and IOC input / output controllers 108 to the peripheral subsystem 104, in particular to mass storage means of sufficient capacity for virtual addressing, and software means , in particular a set of programs grouped under the name of operating system, to allow in association with the micro-programmed means the implementation of the method according to the invention. In a practical way, the specific operations described in the context of the invention are carried out by software and / or micro-programming and / or

circuits logiques.logic circuits.

Claims (14)

REVENDICATIONS 1. Procédé d'exploitation de la mémoire dans un système informatique du type à adressage virtuel, caractérisé en ce que: - on organise un premier domaine mémoire DX autour d'un adressage logique de dimension NX bits, on définit dans le domaine mémoire DX une pluralité d'espaces d'adressage EAX de structure identique et admettant en adressage relatif de dimension NL inférieure àNX, - on affecte de façon temporaire et interchangeable un des espaces d'adressage EAX (ci-après appelé espace d'adressage courant EAC) à un second domaine mémoire DL  1. A method of operating the memory in a computer system of the virtual addressing type, characterized in that: - a first DX memory domain is organized around a logical addressing of NX bits dimension, defined in the DX memory domain a plurality of EAX addressing spaces of identical structure and allowing for relative addressing of dimension NL less than NX, - one temporarily and interchangeably affects one of the address spaces EAX (hereinafter called current address space EAC) to a second memory domain DL organisé autour d'un adressage de dimension NL bits.  organized around NL bit size addressing. 2. Procédé selon la revendication 1, caractérisé en ce que l'on construit un premier format d'adressage FX1 de dimension NX pour accéder aux espaces EAX par extension d'un format d'adressage relatif FL de dimension NL au moyen d'une zone complémentaire contenant au moins un champ destiné à recevoir l'identificateur de l'espace EAX correspondant.  2. Method according to claim 1, characterized in that a first FX1 addressing format of size NX is constructed to access the EAX spaces by extension of a relative address format FL of dimension NL by means of a complementary zone containing at least one field intended to receive the identifier of the corresponding EAX space. 3. Procédé selon la revendication 2, caractérisé en ce que l'on mémorise dans un registre réservé (registre CSR) la zone complémentaire contenant l'identificateur de l'espace3. Method according to claim 2, characterized in that is stored in a reserved register (CSR register) the complementary area containing the identifier of the space d'adressage courant EAC.current addressing EAC. 4. Procédé selon l'une des revendications précédentes,  4. Method according to one of the preceding claims, caractérisé en ce que le domaine mémoire DL comporte un espace d'adressage permanent EAPCB de structure identique à celle des espaces d'adressage EAX, l'espace EAPCB étant repérable dans le domaine DX par un identificateur de  characterized in that the memory domain DL comprises an EAPCB permanent address space of identical structure to that of the EAX address spaces, the EAPCB space being detectable in the DX domain by an identifier of valeur égale à zéro.value equal to zero. 5. Procédé selon l'une des revendications précédentes,  5. Method according to one of the preceding claims, caractérisé en ce que les espaces d'adressage sont du type segmenté, de façon optionnelle à plusieurs dimensions  characterized in that the address spaces are of the segmented type, optionally in several dimensions et/ou partageables par plusieurs processus.  and / or sharable by several processes. 6. Procédé selon l'une des revendications précédentes,  6. Method according to one of the preceding claims, caractérisé en ce que l'on définit dans le domaine mémoire DX, une pluralité de segments accessibles à partir d'un  characterized in that in the memory domain DX a plurality of accessible segments is defined from a autre format d'adressage FX2 de dimension NX.  another FX2 addressing format of NX dimension. 7. Procédé selon l'une des revendications précédentes,  7. Method according to one of the preceding claims, caractérisé en ce que les formats FX1 et FX2 incorporent une variante AA64 permettant l'adressage absolu direct an  characterized in that the FX1 and FX2 formats incorporate an AA64 variant allowing direct absolute addressing mémoire physique.physical memory. 8. Procédé selon l'une des revendications précédentes,  8. Method according to one of the preceding claims, caractérisé en ce que l'on définit un mode d'exécution des processus (Mode 32/64) supportant les deux dimensions  characterized in that a mode of execution of the processes (Mode 32/64) supporting the two dimensions is defined d'adressage NX et NL.NX and NL addressing. 9. Procédé selon la revendication 8, caractérisé en ce que l'on définit un autre mode d'exécution de processus (Mode 32) supportant la dimension d'adressage NL, les deux modes d'exécution de processus Mode 32 et Mode 32/64 étant commutables de l'un vers l'autre, soit automatiquement par  9. Method according to claim 8, characterized in that one defines another mode of execution of processes (Mode 32) supporting the dimension of addressing NL, the two modes of execution of processes Mode 32 and Mode 32 / 64 being switchable from one to the other, either automatically by changement dynamique soit par programmation.  Dynamic change is by programming. 10. Procédé selon l'une des revendications précédentes,  10. Method according to one of the preceding claims, caractérisé en ce que: - on choisit pour les espaces d'adressage de dimension NL, espaces EAX et le cas échéant l'espace EAPCB, des descripteurs de procédure PD de structure de base identique, - on définit des descripteurs de changement d'espace d'adressage (ci-après appelés CASD), de structure de base identique à celle des descripteurs de procédure PD, - on autorise, à partir d'un processus exécutable dans un espace d'adressage donné, l'appel d'une procédure APE exécutable dans un autre espace d'adressage, par  characterized in that: - for address spaces of NL dimension, EAX spaces and, where appropriate, the EAPCB space, PD procedure descriptors of identical basic structure are selected, - descriptors of space change are defined of addressing (hereinafter referred to as CASD), of basic structure identical to that of PD procedure descriptors, - it is possible, from an executable process in a given address space, to call a procedure APE executable in another address space, by l'intermédiaire d'un descripteur de type CASD.  through a CASD type descriptor. 11. Procédé selon la revendication 10, caractérisé en ce que les descripteurs de type CASD comportent un champ destiné à recevoir l'identificateur de l'espace d'adressage contenant la procédure appelée APE et le pointeur de la procédure appelée dans ce nouvel espace  11. Method according to claim 10, characterized in that the CASD type descriptors comprise a field intended to receive the identifier of the address space containing the procedure called APE and the pointer of the procedure called in this new space. d'adressage NEA.NEA addressing. 12. Procédé selon la revendication 9 prise en combinaison avec la revendication 11, caractérisé en ce que la commutation automatique est réalisée de façon dynamique sur un appel de procédure par identification dans un descripteur de procédure du code-type caractéristique d'un  The method according to claim 9 taken in combination with claim 11, characterized in that the automatic switching is performed dynamically on a procedure call by identifying in a procedure descriptor the typical code-type of a descripteur CASD.CASD descriptor. 13. Procédé selon l'une des revendications précédentes du  13. Method according to one of the preceding claims of type dans lequel un processus utilise pour l'exécution d'instructions élémentaires des registres d'adresses dénommés registres de base BR, caractérisé en ce que: - on définit deux jeux de registres de base de dimension NL et NX, on organise dans une zone mémoire BREM un masque dont le contenu de chaque bit BREMi est representatif de la dimension NL et NX de l'adresse chargée ou extraite du registre correspondant BRi, - on vérifie lors des mouvements d'adresse la compatibilité de l'adresse chargée ou extraite avec le contenu du bit de dimension BREMi correspondant et, le cas échéant, on procède à une réduction ou à une extension automatique d'adresse avec changement en conséquence du  type in which a process uses for the execution of basic instructions of the address registers called basic registers BR, characterized in that: - two sets of basic registers of dimension NL and NX are defined, one organizes in a zone memory BREM a mask whose content of each bit BREMi is representative of the NL and NX dimension of the address loaded or extracted from the corresponding register BRi, - it is verified during the address movements the compatibility of the address loaded or extracted with the content of the corresponding BREMi dimension bit and, if necessary, an automatic address reduction or extension is carried out with a change as a result of the bit de dimension BREMi correspondant.  corresponding BREMi dimension bit. 14. Système informatique pour mettre en oeuvre le procédé d'exploitation de la mémoire du type à adressage virtuel  14. Computer system for implementing the memory addressing method of the virtual addressing type selon l'une des revendications précédentes, caractérisé en  according to one of the preceding claims, characterized in ce que le système informatique comporte un sous-système processeur 100 structuré autour d'un ou plusieurs processeurs centraux CPU 106 et d'une mémoire centrale MMU  that the computer system comprises a processor subsystem 100 structured around one or more CPU 106 central processors and a central memory MMU 102, chaque processeur comprenant des moyens micro-  102, each processor comprising micro-means programmés pour effectuer la gestion de la mémoire centrale et de contrôleurs d'entrée/sortie IOC 108 vers le sous-système de périphériques 104, notamment vers des moyens de mémoire de masse de capacité suffisante pour l'adressage virtuel, et des moyens logiciels, notamment un ensemble de programmes regroupés sous le nom de système d'exploitation, pour permettre en association avec lesdits moyens micro-programmés la mise en oeuvre du  programmed to perform the management of the central memory and IOC input / output controllers 108 to the peripheral subsystem 104, in particular to mass memory means of sufficient capacity for virtual addressing, and software means, including a set of programs grouped under the name of operating system, to allow in association with said micro-programmed means the implementation of the procédé selon l'une des revendications précédentes.  Method according to one of the preceding claims.
FR8913110A 1989-10-06 1989-10-06 METHOD FOR OPERATING THE MEMORY IN A VIRTUAL ADDRESSING COMPUTER SYSTEM AND DEVICE FOR CARRYING OUT SAID METHOD. Expired - Fee Related FR2652926B1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
FR8913110A FR2652926B1 (en) 1989-10-06 1989-10-06 METHOD FOR OPERATING THE MEMORY IN A VIRTUAL ADDRESSING COMPUTER SYSTEM AND DEVICE FOR CARRYING OUT SAID METHOD.
AT90402663T ATE142035T1 (en) 1989-10-06 1990-09-27 VIRTUAL ADDRESSING METHOD FOR OPERATING A MEMORY IN A DATA PROCESSING SYSTEM AND DEVICE FOR EXECUTING SAID METHOD
DE69028269T DE69028269T2 (en) 1989-10-06 1990-09-27 Virtual addressing method for operating a memory in a data processing system and device for executing said method
EP90402663A EP0421845B1 (en) 1989-10-06 1990-09-27 Virtual addressing method to operate a memory in a computer system and device for carrying out said method
ES90402663T ES2093639T3 (en) 1989-10-06 1990-09-27 MEMORY EXPLOITATION PROCEDURE IN A COMPUTER SYSTEM OF THE VIRTUAL ADDRESSING TYPE AND DEVICE FOR CARRYING OUT SUCH A PROCEDURE.
US07/592,036 US5129070A (en) 1989-10-06 1990-10-03 Method of using the memory in an information processing system of the virtual addressing type, and apparatus for performing the method
JP2269291A JPH067377B2 (en) 1989-10-06 1990-10-06 Method of using memory in virtual addressing information processing system and apparatus for implementing this method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR8913110A FR2652926B1 (en) 1989-10-06 1989-10-06 METHOD FOR OPERATING THE MEMORY IN A VIRTUAL ADDRESSING COMPUTER SYSTEM AND DEVICE FOR CARRYING OUT SAID METHOD.

Publications (2)

Publication Number Publication Date
FR2652926A1 true FR2652926A1 (en) 1991-04-12
FR2652926B1 FR2652926B1 (en) 1994-07-08

Family

ID=9386179

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8913110A Expired - Fee Related FR2652926B1 (en) 1989-10-06 1989-10-06 METHOD FOR OPERATING THE MEMORY IN A VIRTUAL ADDRESSING COMPUTER SYSTEM AND DEVICE FOR CARRYING OUT SAID METHOD.

Country Status (7)

Country Link
US (1) US5129070A (en)
EP (1) EP0421845B1 (en)
JP (1) JPH067377B2 (en)
AT (1) ATE142035T1 (en)
DE (1) DE69028269T2 (en)
ES (1) ES2093639T3 (en)
FR (1) FR2652926B1 (en)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0492970B1 (en) * 1990-12-21 1995-08-02 Sun Microsystems, Inc. Method and apparatus for extending computer architecture from thirty-two to sixty-four bits
JPH0546447A (en) * 1991-08-08 1993-02-26 Hitachi Ltd Idle area retrieving method
US5826057A (en) * 1992-01-16 1998-10-20 Kabushiki Kaisha Toshiba Method for managing virtual address space at improved space utilization efficiency
JP3219826B2 (en) * 1992-02-21 2001-10-15 日本電気株式会社 Information processing device
US5295081A (en) * 1992-10-30 1994-03-15 International Business Machines Corporation Concurrent interactive wire editing
JPH06231047A (en) * 1993-02-05 1994-08-19 Fujitsu Ltd Address converting method and device
JPH06230977A (en) * 1993-02-05 1994-08-19 Nec Corp Language processor
CA2093451C (en) * 1993-04-06 2000-03-14 David M. Mooney Method and mechanism for calling 32-bit functions from 16-bit functions
US5487158A (en) * 1993-04-06 1996-01-23 International Business Machines Corporation Method and procedure call mechanism for calling 16-bit functions from 32-bit functions
US5956751A (en) * 1995-06-28 1999-09-21 Industrial Technology Research Institute Computer memory management system using physical segmentation space allocation
US5732404A (en) * 1996-03-29 1998-03-24 Unisys Corporation Flexible expansion of virtual memory addressing
US6167498A (en) * 1997-10-02 2000-12-26 Cirrus Logic, Inc. Circuits systems and methods for managing data requests between memory subsystems operating in response to multiple address formats
FR2787901B1 (en) 1998-12-28 2001-02-09 Bull Sa MEMORY ORGANIZATION BY PHYSICAL AREAS
US6449710B1 (en) * 1999-10-29 2002-09-10 Stmicroelectronics, Inc. Stitching parcels
US6898697B1 (en) * 2002-03-29 2005-05-24 Advanced Micro Devices, Inc. Efficient method for mode change detection and synchronization
US7397809B2 (en) * 2002-12-13 2008-07-08 Conexant Systems, Inc. Scheduling methods for combined unicast and multicast queuing
US7574419B2 (en) * 2004-05-13 2009-08-11 Oracle International Corporation Automatic tuning of undo retention
US8756200B2 (en) * 2004-05-14 2014-06-17 Oracle International Corporation Undo advisor
US7885939B2 (en) * 2005-10-11 2011-02-08 Oracle International Corporation Longest query duration for auto tuning undo retention
US7801932B2 (en) * 2005-10-11 2010-09-21 Oracle International Corporation Undo hints to speed up segment extension and tuning of undo retention
US20070143352A1 (en) * 2005-12-21 2007-06-21 International Business Machines Corporation Method and system for implementing database migration using a staged approach
US9201678B2 (en) 2010-11-29 2015-12-01 International Business Machines Corporation Placing a virtual machine on a target hypervisor
US9053053B2 (en) * 2010-11-29 2015-06-09 International Business Machines Corporation Efficiently determining identical pieces of memory used by virtual machines
US9323654B2 (en) * 2013-07-17 2016-04-26 Infineon Technologies Ag Memory access using address bit permutation
US9778945B2 (en) * 2015-02-10 2017-10-03 Red Hat Israel, Ltd. Providing mode-dependent virtual machine function code

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2046834A1 (en) * 1970-09-23 1972-03-30 Kernforschung Gmbh Ges Fuer Method for optimizing the utilization of the virtual memory of a computing machine
EP0208429A2 (en) * 1985-06-28 1987-01-14 Hewlett-Packard Company Method and apparatus for addressing a number of address spaces
EP0230354A2 (en) * 1986-01-16 1987-07-29 International Business Machines Corporation Enhanced handling of large virtual storage extents

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3820078A (en) * 1972-10-05 1974-06-25 Honeywell Inf Systems Multi-level storage system having a buffer store with variable mapping modes
FR2230258A5 (en) * 1973-05-16 1974-12-13 Honeywell Bull Soc Ind
FR2253425A5 (en) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
FR2258112A5 (en) * 1973-11-30 1975-08-08 Honeywell Bull Soc Ind
US4206503A (en) * 1978-01-10 1980-06-03 Honeywell Information Systems Inc. Multiple length address formation in a microprogrammed data processing system
US4363091A (en) * 1978-01-31 1982-12-07 Intel Corporation Extended address, single and multiple bit microprocessor
US4258419A (en) * 1978-12-29 1981-03-24 Bell Telephone Laboratories, Incorporated Data processing apparatus providing variable operand width operation
US4876639A (en) * 1983-09-20 1989-10-24 Mensch Jr William D Method and circuitry for causing sixteen bit microprocessor to execute eight bit op codes to produce either internal sixteen bit operation or internal eight bit operation in accordance with an emulation bit
JPS6086637A (en) * 1983-10-19 1985-05-16 Fujitsu Ltd Extended virtual storage control system
JPH0679288B2 (en) * 1987-07-21 1994-10-05 富士通株式会社 Extended virtual memory control method
US4970639A (en) * 1988-05-20 1990-11-13 International Business Machines Corporation Virtual machine architecture independent program loader

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2046834A1 (en) * 1970-09-23 1972-03-30 Kernforschung Gmbh Ges Fuer Method for optimizing the utilization of the virtual memory of a computing machine
EP0208429A2 (en) * 1985-06-28 1987-01-14 Hewlett-Packard Company Method and apparatus for addressing a number of address spaces
EP0230354A2 (en) * 1986-01-16 1987-07-29 International Business Machines Corporation Enhanced handling of large virtual storage extents

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ELECTRONICS INTERNATIONAL, vol. 55, no. 4, février 1982, pages 133-137, New York, US; P. HELLER et al.: "Memory protection moves onto 16-bit microprocessor chip" *

Also Published As

Publication number Publication date
US5129070A (en) 1992-07-07
DE69028269T2 (en) 1997-01-09
ES2093639T3 (en) 1997-01-01
EP0421845A1 (en) 1991-04-10
EP0421845B1 (en) 1996-08-28
DE69028269D1 (en) 1996-10-02
JPH067377B2 (en) 1994-01-26
FR2652926B1 (en) 1994-07-08
ATE142035T1 (en) 1996-09-15
JPH03126144A (en) 1991-05-29

Similar Documents

Publication Publication Date Title
EP0421845B1 (en) Virtual addressing method to operate a memory in a computer system and device for carrying out said method
CA2192049C (en) Process for manipulating data models used in software engineering
US10620926B2 (en) Linking optimized entry points for local-use-only function pointers
FR2767939A1 (en) MEMORY ALLOCATION METHOD IN A MULTIPROCESSOR INFORMATION PROCESSING SYSTEM
US10579353B2 (en) Loading optimized local entry points for local-use-only function pointers
JPH10198570A (en) Method and system for loading class in read only memory
FR2667171A1 (en) Portable support with easily programmable microcircuit and method of programming this microcircuit
FR2687812A1 (en) Information processing system
EP1290554B1 (en) Modular computer system and related method
WO2010046355A1 (en) Device for managing data buffers in a memory space divided into a plurality of memory elements
CN116700629B (en) Data processing method and device
US10353821B2 (en) System, method, and recording medium for common memory programming
FR2777672A1 (en) METHOD FOR ACCESSING THE PHYSICAL AND VIRTUAL ADDRESSING DIFFERENTLY IN THE SAME MEMORY AREA OF A DIGITAL PROCESSING MACHINE AND A MACHINE IMPLEMENTING THIS METHOD
EP3506110B1 (en) Multi-access to a data file stored in a data storage system related to a buffer memory
Scargall et al. Volatile use of persistent memory
CN113407296A (en) Container service management method and device
CN1180338C (en) Access of resource file in read only storage
EP2414931B1 (en) Method of managing the memory of a computerized system
US11615109B1 (en) Efficient deserialization from standardized data files
WO2006063911A1 (en) Method for positioning elementary data of a data structure in a storage unit
US20230131351A1 (en) Providing a dynamic random-access memory cache as second type memory per application process
KR100404907B1 (en) Memory management method and memory management apparatus for open geographical information system
CN117785728A (en) Data processing method and device
FR3091102A1 (en) METHOD FOR CUSTOMIZING AN ELECTRONIC ENTITY, AND ASSOCIATED ELECTRONIC ENTITY
CN116700841A (en) Method and device for calling native API (application program interface)

Legal Events

Date Code Title Description
ST Notification of lapse
ST Notification of lapse