FR2767938A1 - Memory allocation method in multiprocessor computer system - Google Patents
Memory allocation method in multiprocessor computer system Download PDFInfo
- Publication number
- FR2767938A1 FR2767938A1 FR9711025A FR9711025A FR2767938A1 FR 2767938 A1 FR2767938 A1 FR 2767938A1 FR 9711025 A FR9711025 A FR 9711025A FR 9711025 A FR9711025 A FR 9711025A FR 2767938 A1 FR2767938 A1 FR 2767938A1
- Authority
- FR
- France
- Prior art keywords
- memory
- allocation
- applix
- rule
- rules
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 149
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000006870 function Effects 0.000 claims abstract description 6
- 230000010365 information processing Effects 0.000 claims description 15
- 238000013507 mapping Methods 0.000 claims description 9
- 230000003936 working memory Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000005452 bending Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1072—Decentralised address translation, e.g. in distributed shared memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
1 27679381 2767938
PROCEDE D'ALLOCATION DE MEMOIRE DANS UN SYSTEME DE MEMORY ALLOCATION METHOD IN A SYSTEM OF
TRAITEMENT DE L'INFORMATION MULTIPROCESSEUR MULTIPROCESSOR INFORMATION PROCESSING
La présente invention concerne un procédé d'allocation de mémoire dans un système de traitement de l'information multiprocesseur, plus particulièrement un procédé d'allocation d'une mémoire à accès non uniforme. Dans le cadre de l'invention, le terme "non uniforme" s'entend dans un sens temporel, comme il va l'être montré. De même, le terme "une mémoire" s'entend dans un sens général.10 Il peut signifier une mémoire distribuée, une hiérarchie de mémoire (par exemple comprenant des bancs de mémoires à temps The present invention relates to a memory allocation method in a multiprocessor information processing system, more particularly to a memory allocation method with non-uniform access. In the context of the invention, the term "non-uniform" is understood in a temporal sense, as will be shown. Similarly, the term "a memory" is understood in a general sense.10 It can mean a distributed memory, a memory hierarchy (for example comprising banks of memories in time
d'accès différents), ou un ensemble de mémoires de types différents. access points), or a set of memories of different types.
Comme il est bien connu dans le domaine informatique, As is well known in the IT field,
il est possible d'augmenter la puissance d'une machine en augmentant le nombre de processeurs dont elle est composée. it is possible to increase the power of a machine by increasing the number of processors of which it is composed.
Un type de machine connu sous le nom "SMP" (de l'anglo-saxon "Symetrical MultiProcessor" ou multiprocesseur Symétrique) permet aux différents processeurs d'une même machine d'accéder de façon symétrique à sa mémoire au moyen d'un bus système. Ce sont des machines avec mémoire à accès uniforme A type of machine known as "SMP" (from the Anglo-Saxon "Symetrical MultiProcessor" or multiprocessor Symmetric) allows different processors of the same machine to access its memory symmetrically by means of a bus system. These are machines with uniform access memory
dans la mesure o le temps d'accès à la mémoire est sensiblement le même pour toutes les données accédées. insofar as the access time to the memory is substantially the same for all the data accessed.
Pour cette raison, l'architecture est dite "UMA" (de For this reason, the architecture is called "UMA" (from
l'anglo-saxon "Uniform Memory Access" ou accès uniforme à la mémoire). the Anglo-Saxon "Uniform Memory Access".
La figure 1 annexée à la présente description illustre schématiquement un exemple d'architecture du type Figure 1 appended to this description schematically illustrates an example of architecture of the type
"UMA"."AMU".
Le système de traitement de l'information 1, que l'on appellera ci- après module "SMP", comprend un certain nombre d'unités centrales ou processeurs ou encore "CPU" selon la The information processing system 1, which will hereinafter be called the "SMP" module, comprises a certain number of central units or processors or even "CPU" depending on the
2 27679382 2767938
terminologie anglo-saxonne. On a représenté quatre unités Anglo-Saxon terminology. We have represented four units
centrales dans l'exemple de la figure 1: 10 à 13. On associe à ces unités centrales 10 à 13, une mémoire centrale 14 accessible par tous. in the example of FIG. 1: 10 to 13. These central units 10 to 13 are associated with a central memory 14 accessible by all.
Puisque tous les accès s'effectuent à l'intérieur du module 1, c'est-àdire en local, et si l'espace mémoire total disponible présente une homogénéité quant au temps d'accès (ce qui constitue l'hypothèse de départ, puisqu'il s'agit d'une architecture "UMA"), le temps d'accès reste sensiblement le même, quelle que soit l'unité centrale 10 à Since all the accesses are made inside module 1, that is to say locally, and if the total available memory space presents a homogeneity as for the access time (which constitutes the starting hypothesis, since it is a "UMA" architecture), the access time remains substantially the same, whatever the central unit 10 to
13, qui effectue une requête.13, which makes a request.
Bien que, sur la figure 1, il ait été représenté quatre unités centrales 10 à 13, il doit être clair que ce nombre est tout à fait arbitraire. Il peut être augmenté ou15 diminué. Cependant, la courbe de performances de telles machines ne croît pas de façon linéaire en fonction du nombre de processeurs. Un nombre élevé de processeurs fait que le système consomme plus de temps pour des problèmes d'accessibilité à ses ressources qu'il n'en dispose pour20 exécuter des applications. Ceci a pour conséquence d'infléchir considérablement la courbe de performances Although, in FIG. 1, four central units 10 to 13 have been represented, it should be clear that this number is entirely arbitrary. It can be increased or decreased. However, the performance curve of such machines does not increase linearly as a function of the number of processors. A high number of processors means that the system consumes more time for problems of accessibility to its resources than it has to run applications. This has the consequence of considerably bending the performance curve
lorsque le nombre de processeurs dépasse une valeur optimale souvent estimée à quatre environ. L'état de la technique propose différentes solutions à ce problème. when the number of processors exceeds an optimal value often estimated at around four. The state of the art offers various solutions to this problem.
Une solution connue consiste à regrouper en grappes plusieurs machines de façon à les faire communiquer entre elles au moyen d'un réseau. Chaque machine possède un nombre optimal de processeurs, par exemple quatre, et son propre système d'exploitation. Elle établit une communication avec30 une autre machine toutes les fois qu'elle effectue un traitement sur des données détenues à jour par cette autre machine. Le temps nécessaire à ces communications et la nécessité de travailler sur des données cohérentes posent des problèmes de latence pour des applications volumineuses35 telles que, par exemple, les applications réparties qui A known solution consists in grouping several machines into clusters so as to make them communicate with each other by means of a network. Each machine has an optimal number of processors, for example four, and its own operating system. It establishes communication with another machine whenever it processes data held up to date by this other machine. The time required for these communications and the need to work on consistent data pose latency problems for large applications35 such as, for example, distributed applications which
3 27679383 2767938
demandent de nombreuses communications. La latence est la require many communications. Latency is there
durée qui sépare l'instant d'émission d'une requête d'accès à la mémoire et l'instant auquel la réponse à cette requête est reçue. duration which separates the instant of transmission of a memory access request and the instant at which the response to this request is received.
Une autre solution connue est celle des machines à architecture de type dit "NUMA" (de l'anglo-saxon "Non Uniform Memory Access"). Ce sont des machines avec mémoire à accès non uniforme, dans la mesure o le temps d'accès à la mémoire varie selon la localisation des données accédées. Une10 machine de type "NUMA" est constituée de plusieurs modules, chaque module comprenant un nombre optimal de processeurs et une partie physique de la mémoire totale de la machine. Une telle machine est à accès mémoire non uniforme car un module accède généralement plus facilement et plus rapidement à une15 partie physique de la mémoire qu'il ne partage pas avec un autre module qu'à une partie qu'il partage. Bien que chaque module possède un bus système privé reliant ses processeurs et sa mémoire physique, un système d'exploitation commun à tous les modules permet de considérer l'ensemble des bus20 systèmes privés comme un seul et unique bus système de la machine. Un adressage logique affecte un lieu de résidence à un emplacement de mémoire physique déterminé d'un module. Pour un processeur considéré, on distingue les accès à une partie de mémoire locale, située physiquement sur le même25 module que le processeur, et les accès à une partie de mémoire distante, située physiquement sur un ou plusieurs Another known solution is that of machines with a so-called "NUMA" type architecture (from the Anglo-Saxon "Non Uniform Memory Access"). These are machines with non-uniform access memory, insofar as the access time to the memory varies according to the location of the data accessed. A machine of the "NUMA" type consists of several modules, each module comprising an optimal number of processors and a physical part of the total memory of the machine. Such a machine has non-uniform memory access because a module generally has easier and faster access to a physical part of the memory which it does not share with another module than to a part which it shares. Although each module has a private system bus connecting its processors and its physical memory, an operating system common to all the modules makes it possible to consider all the private system buses20 as a single system bus of the machine. Logical addressing assigns a place of residence to a determined physical memory location of a module. For a processor considered, a distinction is made between accesses to a part of local memory, physically located on the same module as the processor, and accesses to a part of remote memory, physically located on one or more
autres modules que celui o est situé le processeur. other modules than the one where the processor is located.
La figure 2 annexée à la présente description Figure 2 appended to this description
illustre schématiquement un exemple d'architecture de ce type, c'est-àdire une architecture "NUMA". Pour simplifier le dessin, on a supposé que le système de traitement de l'information 1' comprend seulement deux modules, Ma et Mb, du type "SMP" précité, et que les deux modules étaient identiques. Il doit cependant être bien compris que le système de traitement de l'information 1' peut comporter un schematically illustrates an example of architecture of this type, that is to say an architecture "NUMA". To simplify the drawing, it has been assumed that the information processing system 1 ′ comprises only two modules, Ma and Mb, of the aforementioned "SMP" type, and that the two modules are identical. It should however be clearly understood that the information processing system 1 ′ may include a
4 27679384 2767938
plus grand nombre de modules et que les modules Ma et Mb, greater number of modules and than the Ma and Mb modules,
peuvent être différents (notamment en ce qui concerne le nombre d'unités centrales). may be different (particularly with regard to the number of central processing units).
Le module Ma comprend donc quatre unités centrales 10a à 13a, et une mémoire centrale 14a. De même, le module Mb comprend quatre unités centrales 10b à 13b, et une mémoire centrale 14b. Les deux mémoires 14a et 14b, (et de façon plus générale les n mémoires centrales) communiquent entre elles à l'aide de ce qui est appelé un "lien" 2, généralement via des10 antémémoires (dites memory cache en anglais) dites éloignées a et 15b, respectivement. Le lien 2 ne se résume pas à de simples liaisons physiques mais comprend des circuits The module Ma therefore comprises four central units 10a to 13a, and a central memory 14a. Similarly, the module Mb includes four central units 10b to 13b, and a central memory 14b. The two memories 14a and 14b, (and more generally the n central memories) communicate with each other using what is called a "link" 2, generally via cache memories (called memory cache in English) said to be distant a and 15b, respectively. Link 2 is not just about physical links but includes circuits
électroniques divers classiques (circuits de commande, d'interface, etc.), qu'il est inutile de décrire plus avant. various conventional electronics (control circuits, interfaces, etc.), which it is unnecessary to describe further.
On comprend aisément que, dans une telle architecture, si une application s'exécute dans le module Ma, par exemple, le temps d'accès à la mémoire "proche" 14a (accès en local) est, a priori, inférieur au temps d'accès à la mémoire "éloignée" 14b située dans le module Mb, ce quelle que soit l'unité centrale 10a à 13a, concernée. Il est notamment nécessaire de passer par le lien 2, lorsque les It is easy to understand that, in such an architecture, if an application is executed in the module Ma, for example, the access time to the "near" memory 14a (local access) is, a priori, less than the time d access to the “remote” memory 14b located in the module Mb, whatever the central unit 10a to 13a, concerned. It is particularly necessary to go through link 2, when the
données sont physiquement stockées dans un autre module, ce qui augmente sensiblement le temps de transfert. data is physically stored in another module, which significantly increases the transfer time.
Dans les systèmes de traitement de l'information In information processing systems
modernes, l'allocation de la mémoire pour une application donnée s'effectue sur la base d'un espace mémoire virtuel. Modern memory allocation for a given application is based on virtual memory space.
Cette allocation est placée sous la commande du système d'exploitation ou "OS" (de l'anglo-saxon "Operating System"). On effectue ensuite une correspondance dynamique entre30 l'espace mémoire virtuel et la mémoire physique. Pour ce faire, on utilise classiquement des tables de correspondance d'adresses. On parle de "mapping" dynamique, selon l'expression anglo-saxonne couramment utilisée. Différents types de configurations de mémoires ont été proposés: organisation par régions ou par segments. Pour fixer les This allocation is placed under the control of the operating system or "OS" (from the Anglo-Saxon "Operating System"). We then perform a dynamic correspondence between the virtual memory space and the physical memory. To do this, address correspondence tables are conventionally used. We speak of dynamic "mapping", according to the Anglo-Saxon expression commonly used. Different types of memory configurations have been proposed: organization by regions or by segments. To fix the
27679382767938
idées, dans ce qui suit, sans en limiter en quoi que ce soit ideas, in what follows, without limiting anything
la portée de l'invention, on se placera dans le cas d'une configuration du type "segment". the scope of the invention, we will place ourselves in the case of a configuration of the "segment" type.
De façon plus précise, dans l'art connu, la correspondance dynamique précitée ou "mapping" s'effectue selon des règles communes à toutes les applications quels qu'en soient leurs types, sans tenir compte de la localisation de la mémoire physique. De façon pratique, si un processus veut accéder à une adresse virtuelle et qu'aucune10 entrée dans la table de correspondance d'adresses n'est trouvée, il y a génération d'une exception qui se formalise par la détection d'un défaut de page. Le terme "page" peut être défini de façon plus générale comme étant une "plage d'adresses contiguës". Cependant, pour des raisons de simplification, le terme "page" sera utilisé dans ce qui suit. Un dispositif appelé gestionnaire attribue alors de la More precisely, in the known art, the aforementioned dynamic correspondence or "mapping" is carried out according to rules common to all the applications whatever their types, without taking into account the location of the physical memory. In practice, if a process wants to access a virtual address and no entry in the address correspondence table is found, an exception is generated which is formalized by the detection of a fault in page. The term "page" can be defined more generally as a "range of contiguous addresses". However, for reasons of simplification, the term "page" will be used in the following. A device called manager then allocates
mémoire physique suite à cette détection, ce selon les règles communes précitées. Cette méthode d'allocation simple est tout à fait adaptée pour les machines classiques "SMP" du20 type "UMA" précité, puisque le temps moyen d'accès à la mémoire est uniforme. physical memory following this detection, according to the aforementioned common rules. This simple allocation method is entirely suitable for conventional "SMP" machines of the aforementioned "UMA" type, since the average time of access to the memory is uniform.
Par contre, lorsqu'il s'agit d'une architecture du type "NUMA", telle que décrite en regard de la figure 2, pour laquelle le temps d'accès n'est plus uniforme, le besoin se25 fait sentir de disposer d'un procédé d'allocation de mémoire qui minimise l'impact négatif sur les performances du système. Dans l'art connu, des procédés ont été proposés en ce sens. A titre d'exemple, on a proposé de modifier les règles d'allocation de mémoire en vue d'obtenir une optimisation, mais les règles une fois modifiées restent identiques pour toutes les applications. En outre, ce procédé présente des inconvénients supplémentaires. Les règles modifiées peuvent s'avérer avantageuses pour une application donnée, mais35 inappropriées, voire dangereuses pour une autre. On a On the other hand, when it is an architecture of the "NUMA" type, as described with reference to FIG. 2, for which the access time is no longer uniform, the need arises for having 'a memory allocation process that minimizes the negative impact on system performance. In the known art, methods have been proposed in this sense. As an example, it has been proposed to modify the memory allocation rules in order to obtain an optimization, but the rules once modified remain identical for all the applications. In addition, this method has additional drawbacks. The modified rules may prove advantageous for one application, but35 inappropriate, even dangerous for another. We have
6 27679386 2767938
également proposé des "API" particuliers (de l'anglo-saxon "Application programmable Interface" ou interface programmable pour application) adaptées pour définir un algorithme particulier associé à une application donnée, en5 vue d'effectuer la correspondance ("mapping") entre l'espace mémoire virtuel et la mémoire physique, mais il est alors nécessaire de modifier, à la fois, les applications correspondantes et la partie résidente du système d'exploitation ("kernel"). Cette méthode ne peut donc pas10 s'appliquer, notamment, aux programmes existants. En tout also proposed specific "APIs" (from the Anglo-Saxon "Application Programmable Interface" or programmable interface for application) adapted to define a particular algorithm associated with a given application, in order to carry out the correspondence ("mapping") between virtual memory space and physical memory, but it is then necessary to modify both the corresponding applications and the resident part of the operating system ("kernel"). This method cannot therefore be applied10, in particular, to existing programs. In all
état de cause, elle manque de souplesse et son efficacité est limitée. However, it lacks flexibility and its effectiveness is limited.
L'invention se fixe donc pour objet un procédé d'allocation de mémoire pour un système de traitement de l'information à accès non uniforme de la mémoire centrale, notamment du type "NUMA" précité, qui vise à répondre aux The subject of the invention is therefore a method of allocating memory for an information processing system with non-uniform access to the central memory, in particular of the aforementioned "NUMA" type, which aims to respond to the
besoins qui se font sentir pour cette architecture particulière et qui ne présentent pas les inconvénients des procédés de l'art connu. En particulier, il n'est pas20 nécessaire de modifier les applications existantes. needs which are felt for this particular architecture and which do not have the drawbacks of the processes of the known art. In particular, there is no need to modify existing applications.
Pour ce faire, l'allocation de mémoire s'effectue en fonction du profil propre à chaque application, c'est-à-dire To do this, memory allocation is made according to the profile specific to each application, that is to say
en mettant en oeuvre un jeu de règles d'allocation tenant compte de ce profil. by implementing a set of allocation rules taking this profile into account.
Dans un mode de réalisation préféré, l'allocation de mémoire s'effectue en outre en tenant compte du type de In a preferred embodiment, the memory allocation is also carried out taking into account the type of
défaut de page. En effet, lors de son exécution, une application se subdivise en différents objets tels que du texte, des données, de la mémoire partagée, etc., qui30 utilisent l'espace global de mémoire du système différemment. page fault. Indeed, during its execution, an application is subdivided into different objects such as text, data, shared memory, etc., which use the global memory space of the system differently.
L'invention permet donc d'optimiser également les accès The invention therefore also makes it possible to optimize access
mémoire en fonction de ce paramètre. memory according to this parameter.
L'invention a donc pour objet un procédé d'allocation d'emplacements de mémoire physique par mise en correspondance The subject of the invention is therefore a method of allocating physical memory locations by mapping
7 27679387 2767938
avec au moins une plage d'adresses contiguës de mémoire dans un espace d'adressage virtuel associée à une application logicielle déterminée, l'application étant en cours d'exécution dans un système de traitement de l'information5 comprenant une unité de mémoire à accès non uniforme et utilisant plusieurs types de mémoire virtuelle, ladite mise en correspondance s'effectuant par scrutation d'une table de correspondance d'adresses, caractérisé en ce qu'il comprend une étape consistant à lier ladite application logicielle10 déterminée à des règles d'allocation de mémoire choisies parmi un jeu de règles prédéfinies, et en ce que, lorsque ladite table de correspondance d'adresses ne comporte pas d'entrée pour une plage d'adresses contiguës de mémoire d'adresse virtuelle associée à ladite application logicielle15 déterminée, il comprend une étape de génération d'une exception et une étape subséquente d'allocation d'un with at least one range of contiguous memory addresses in a virtual address space associated with a given software application, the application being running in an information processing system5 comprising an access memory unit non-uniform and using several types of virtual memory, said matching being effected by scanning an address correspondence table, characterized in that it comprises a step consisting in linking said determined software application10 to rules for memory allocation chosen from a set of predefined rules, and in that, when said address correspondence table does not include an entry for a range of contiguous addresses of virtual address memory associated with said determined software application15, it includes a step of generating an exception and a subsequent step of allocating a
emplacement de mémoire physique selon une desdites règles d'allocation de mémoire, le choix de la règle étant assujetti a un profil desdits types de mémoire virtuelle utilisés par20 l'application logicielle déterminée. location of physical memory according to one of said memory allocation rules, the choice of the rule being subject to a profile of said types of virtual memory used by the determined software application.
L'invention sera mieux comprise et d'autres caractéristiques et avantages apparaîtront à la lecture de la The invention will be better understood and other characteristics and advantages will appear on reading the
description qui suit en référence aux figures annexées, parmi lesquelles: description which follows with reference to the appended figures, among which:
- la figure 1 illustre schématiquement une architecture de système de traitement de l'information à accès de mémoire uniforme dite "UMA"; - la figure 2 illustre schématiquement une architecture de système de traitement de l'information à accès de mémoire non uniforme dite "NUMA"; les figures 3a et 3b illustrent schématiquement les accès à la mémoire pour deux exemples d'applications logicielles; - la figure 4 illustre un exemple de subdivision d'une application logicielle; - la figure 5 illustre schématiquement l'allocation d'un emplacement de mémoire selon l'art connu, lors de la génération d'un défaut de page; - et les figures 6a et 6b illustrent schématiquement l'allocation d'un emplacement de mémoire selon l'invention, lors de la génération d'un défaut de page. Pour fixer les idées, sans en limiter en quoi que ce soit la portée, on se placera dans le contexte d'un système - Figure 1 schematically illustrates an information processing system architecture with uniform memory access called "UMA"; - Figure 2 schematically illustrates an information processing system architecture with non-uniform memory access called "NUMA"; FIGS. 3a and 3b schematically illustrate the accesses to the memory for two examples of software applications; - Figure 4 illustrates an example of subdivision of a software application; - Figure 5 schematically illustrates the allocation of a memory location according to the known art, when generating a page fault; - And Figures 6a and 6b schematically illustrate the allocation of a memory location according to the invention, when generating a page fault. To fix ideas, without limiting their scope in any way, we will place ourselves in the context of a system
de traitement de l'information dont le système d'exploitation10 est du type "UNIX" (marque déposée) ou similaire, sauf mention contraire. information processing whose operating system10 is of the "UNIX" (registered trademark) or similar type, unless otherwise stated.
Pour les applications fonctionnant sous cet environnement, l'espace d'adressage virtuel peut être divisé en différents types et notamment les types suivants: - le texte ou le texte programme (code exécutable) - les données initialisées; - les données modifiées; - les "stacks" ou piles; le "heap", c'est-à-dire l'allocation dynamique (tables, etc.); - la mémoire partagée; For applications operating in this environment, the virtual address space can be divided into different types and in particular the following types: - text or program text (executable code) - initialized data; - the modified data; - "stacks" or batteries; "heap", that is to say dynamic allocation (tables, etc.); - shared memory;
- les bibliothèques partagées.- shared libraries.
Lors du déroulement d'une application, celle-ci utilise les différents types de mémoire du système également During the course of an application, it uses the different types of system memory also
de façon différente. L'ensemble des types de mémoire virtuelle utilisés définit un profil propre à l'application. In a different way. The set of virtual memory types used defines an application-specific profile.
En outre, une application ou une nouvelle instance de la même application peut s'exécuter dans l'un ou l'autre des modules Ma ou Mb, du système de la figure 2. Ce qui est vrai pour une30 même application, l'est encore plus pour deux applications de profils différents. In addition, an application or a new instance of the same application can run in either of the modules Ma or Mb, of the system of FIG. 2. What is true for the same application, is even more for two applications with different profiles.
9 27679389 2767938
Les figures 3a et 3b illustrent schématiquement deux types d'applications, à savoir une "mini-base de données" Figures 3a and 3b schematically illustrate two types of applications, namely a "mini-database"
("minidatabase") et une base de données plus traditionnelle. ("minidatabase") and a more traditional database.
On a représenté sur ces deux figures la mémoire globale du système par la référence unique Mem. Dans le premier cas, illustré par la figure 3a, lors d'une période d'initialisation, les accès sont cantonnés à un espace d'adressage représenté symboliquement par la zone Zini, située arbitrairement sur la gauche de la figure 3a.10 Puis, les accès s'effectuent dans un espace d'adressage, symbolisé par une zone Zf, également d'étendue restreinte et These two figures show the overall memory of the system by the unique reference Mem. In the first case, illustrated by FIG. 3a, during an initialization period, the accesses are confined to an address space symbolically represented by the Zini zone, located arbitrarily on the left of FIG. 3a.10 Then, the accesses are made in an address space, symbolized by a zone Zf, also of restricted extent and
supposée connexe à la zone Zini, dans l'exemple décrit sur la figure 3a. Les emplacements de mémoire physique, pour cette application particulière, peuvent donc être cantonnés dans un15 seul module, et plus précisément en local. assumed to be related to the Zini zone, in the example described in FIG. 3a. The physical memory locations, for this particular application, can therefore be confined in a single module, and more precisely locally.
Ce n'est généralement pas le cas pour une base de données classique, comme illustré par la figure 3b. Les accès This is generally not the case for a conventional database, as illustrated in Figure 3b. The accesses
peuvent s'étendre à tout l'espace mémoire, comme le symbolisent les flèches représentées sur la figure 3b. Il20 s'ensuit que les emplacements de la mémoire physique occupée sont généralement distribués sur deux modules ou plus. can extend to the entire memory space, as symbolized by the arrows shown in Figure 3b. It follows that the locations of the occupied physical memory are generally distributed over two or more modules.
En outre, comme il a été indiqué, pour une même application, l'espace mémoire virtuel se subdivise en différents types de segments: texte, données, etc. A titre d'exemple non limitatif, lorsqu'une application donnée Appli s'exécute, ses différents composants sont partitionnés en segments d'espace virtuels: Texte T, Données Da (de différents types), piles St, mémoire partagée Shm, fichiers Fi, etc., comme illustré par la figure 4.30 Classiquement, un dispositif gestionnaire H, (ou "handler" selon la terminologie anglo- saxonne couramment utilisée), In addition, as indicated, for the same application, the virtual memory space is subdivided into different types of segments: text, data, etc. By way of nonlimiting example, when a given application Appli is executed, its various components are partitioned into virtual space segments: Text T, Data Da (of different types), Stacks, shared memory Shm, Fi files , etc., as illustrated in FIG. 4.30 Conventionally, a manager device H, (or "handler" according to the English terminology commonly used),
attribue à ces segments de mémoire virtuels des emplacements dans la mémoire physique globale Mem du système. allocates to these virtual memory segments locations in the global physical memory Mem of the system.
On va maintenant décrire le mécanisme d'allocation de mémoire physique sur détection d'un défaut de page. We will now describe the physical memory allocation mechanism on detection of a page fault.
On a indiqué précédemment qu'une application en cours d'exécution utilise les différents type de mémoire de façon également différente. De même, une application qui se déroule initialement dans un module donné (par exemple figure 2: Ma) It was previously indicated that a running application uses the different types of memory equally. Similarly, an application that runs initially in a given module (for example Figure 2: Ma)
peut se continuer dans un autre (par exemple figure 2: Mb), ou une instance supplémentaire de cette application peut se créer et s'exécuter dans un module différent. can continue in another one (for example figure 2: Mb), or an additional instance of this application can be created and run in a different module.
Si on suppose qu'un applicatif tente d'effectuer une instruction particulière, par exemple une instruction de chargement, ou "lload", à une adresse virtuelle déterminée, par exemple l'adresse arbitraire "10x 2000", l'unité centrale (par exemple figure 2: 10a) dans laquelle se déroule le If it is assumed that an application is trying to carry out a particular instruction, for example a loading instruction, or "lload", at a determined virtual address, for example the arbitrary address "10x 2000", the central processing unit (for example figure 2: 10a) in which the
processus en cours décode l'instruction et une table de correspondance d'adresses (non représentée) va être scrutée. current process decodes the instruction and an address mapping table (not shown) will be scanned.
Si l'entrée recherchée ne s'y trouve pas, il y a émission d'une exception qui se traduit par un défaut de page détecté par le gestionnaire H. Il est donc nécessaire, dans ces20 circonstances, d'attribuer un emplacement de mémoire physique pour l'adresse virtuelle "10x 2000" ci-dessus. If the entry sought is not found there, an exception is thrown which results in a page fault detected by the H manager. It is therefore necessary, in these circumstances, to allocate a memory location physical for the virtual address "10x 2000" above.
Dans l'art connu, il n'existe qu'un seul type d'allocation. En d'autres termes, les règles utilisées sont uniques quel que soit le profil propre à l'application et le25 type de segment. Le gestionnaire H affecte donc un emplacement de mémoire physique conformément aux règles d'allocation utilisées par le système. Par exemple, conformément à ces règles, l'allocation s'effectue systématiquement dans la mémoire physique locale, c'est-à- 30 dire dans la mémoire 14a, si le processus se déroulait dans le module Ma sous la conduite d'une des unités centrales 10a à 13a. Cette règle peut s'avérer intéressante pour un segment de type texte, mais non optimisée pour d'autres types de segments. In the known art, there is only one type of allocation. In other words, the rules used are unique regardless of the profile specific to the application and the type of segment. The manager H therefore assigns a physical memory location in accordance with the allocation rules used by the system. For example, in accordance with these rules, the allocation is systematically carried out in the local physical memory, that is to say in the memory 14a, if the process took place in the module Ma under the supervision of one of the central processing units 10a to 13a. This rule can be interesting for a text type segment, but not optimized for other types of segments.
11 276793811 2767938
Le mécanisme ci-dessus est illustré par la figure 5. L'applicatif Appli génère un défaut de page Fp et le The above mechanism is illustrated in Figure 5. The Appli application generates an Fp page fault and the
gestionnaire H attribue un emplacement de la mémoire physique Mem (dont les partitions, Zl à Zn, ont été symbolisées par5 des traits en pointillé sur la figure 5), selon des règles prédéfinies. manager H assigns a location of the physical memory Mem (whose partitions, Zl to Zn, have been symbolized by 5 dashed lines in FIG. 5), according to predefined rules.
Comme il a été indiqué également, ces règles peuvent As noted above, these rules may
être modifiées, mais elles restent les mêmes pour toutes les applications et tous les types de segments. be modified, but they remain the same for all applications and all types of segments.
Tout au contraire, selon l'invention, l'allocation de la mémoire physique Mem va être réalisée conformément à un On the contrary, according to the invention, the allocation of the physical memory Mem will be carried out in accordance with a
jeu de règles qui tiennent compte, d'une part, du profil propre à l'application, et d'autre part, dans un mode de réalisation préféré, du type de défaut de page. set of rules which take into account, on the one hand, the profile specific to the application, and on the other hand, in a preferred embodiment, the type of page fault.
Les figures 6a et 6b illustrent le mécanisme d'allocation de la mémoire physique selon l'invention. Figures 6a and 6b illustrate the allocation mechanism of the physical memory according to the invention.
Selon une caractéristique principale du procédé selon l'invention, on lie chaque application à un jeu de règles d'allocation prédéfinies. Pour ce faire, il est nécessaire20 d'associer chaque application Applix (x étant un indice arbitraire) à un profil particulier. Cette association s'effectue sous la conduite du système d'exploitation, ou "OS", qui le mémorise. La figure 6a illustre schématiquement le mécanisme de l'association. On a représenté, sur cette figure 6a, une application particulière Applix. Comme il a été indiqué, cette application Applix utilise divers types de mémoire: texte, données, etc. Sur la figure 6a, on a représenté six types de mémoire que l'on a référencé tyMl à tyM6. On lie chaque type de mémoire, tyMl à tyM6, à une règle30 d'allocation, parmi un jeu de règles prédéfinies que l'on précisera ci-après. Ces règles ont été référencées R1 à R6, étant entendu qu'il ne s'agit pas forcément d'un jeu de règles disjointes. En d'autres termes, à titre d'exemple, les règles R2 et R3 pourraient être identiques, même si les types According to a main characteristic of the method according to the invention, each application is linked to a set of predefined allocation rules. To do this, it is necessary20 to associate each Applix application (x being an arbitrary index) with a particular profile. This association is carried out under the guidance of the operating system, or "OS", which stores it. Figure 6a schematically illustrates the mechanism of the association. This FIG. 6a shows a particular Applix application. As mentioned, this Applix application uses various types of memory: text, data, etc. In FIG. 6a, six types of memory have been represented which have been referenced tyM1 to tyM6. Each type of memory, tyM1 to tyM6, is linked to an allocation rule30, from a set of predefined rules which will be specified below. These rules have been referenced R1 to R6, it being understood that this is not necessarily a set of disjoint rules. In other words, for example, the rules R2 and R3 could be identical, even if the types
12 276793812 2767938
de mémoire tyM2 et tyM3 sont eux distincts. Le profil memory tyM2 and tyM3 are separate. The profile
d'allocation de mémoire Pax qui vient d'être défini est lié par une association Ax à une application particulière Applix. Le profil Pax est donc une table à deux entrées: types de5 mémoire tyMi et règles Rj choisies parmi un jeu de règles prédéfinies, i et j étant des indices arbitraires. memory allocation Pax which has just been defined is linked by an Ax association to a particular Applix application. The Pax profile is therefore a table with two entries: types of memory tyMi and rules Rj chosen from a set of predefined rules, i and j being arbitrary indices.
De façon générale, on peut définir une fonction association comme suit: In general, an association function can be defined as follows:
Association_pa(Applix, Pax).Association_pa (Applix, Pax).
Le profil d'allocation de mémoire lié à une application donnée peut être défini à l'initialisation de The memory allocation profile linked to a given application can be defined when initializing
l'exécution de cette application ou, de façon dynamique, redéfini à tout moment pendant l'exécution, ce qui augmente la souplesse du procédé. the execution of this application or, dynamically, redefined at any time during execution, which increases the flexibility of the process.
Sur la figure 6b, les règles d'allocation prédéfinies ont été repérées sous la référence générale Rg. Lors de l'apparition d'une exception qui se traduit par un défaut de page, Fp, c'est-à-dire lorsque la table de correspondance d'adresses ne contient pas d'entrée pour une adresse20 virtuelle, le gestionnaire H recherche le profil Pax propre à l'application Applix tel qu'il vient d'être défini. Il détermine aussi, dans un mode de réalisation préféré, le type de défaut de page Fp. A partir de ces deux paramètres, il attribue des emplacements en mémoire physique, Zl à Zn, soit25 locaux (dans le même module), soit distants (dans un autre module), soit encore répartis sur l'ensemble de la mémoire Mem. Cette répartition, dépendant du profil Pax de l'application Applix et du type de défaut de page Fp, est symbolisée, sur la figure 6b, par des flèches multiples30 (contrairement à la flèche unique du procédé selon l'art In FIG. 6b, the predefined allocation rules have been identified under the general reference Rg. When an exception occurs which results in a page fault, Fp, that is to say when the address correspondence table does not contain any entry for a virtual address, the manager H searches the Pax profile specific to the Applix application as it has just been defined. It also determines, in a preferred embodiment, the type of page fault Fp. From these two parameters, it allocates locations in physical memory, Zl to Zn, either 25 local (in the same module), or remote (in another module), or even distributed over the whole of the memory Mem. This distribution, depending on the Pax profile of the Applix application and the type of page fault Fp, is symbolized, in FIG. 6b, by multiple arrows30 (unlike the single arrow of the method according to the art
connu représenté sur la figure 5). known shown in Figure 5).
La fonction d'adressage Fad peut donc se formaliser de la façon suivante: The Fad addressing function can therefore be formalized as follows:
Fad = F(Pax, Type Fp).Fad = F (Pax, Type Fp).
13 276793813 2767938
Le choix de la règle à appliquer pour l'allocation de mémoire est donc le résultat de la combinaison de deux paramètres. De façon plus précise, une application donnée Applix spécifie quelles règles d'allocation elle requière pour chaque type de segment de mémoire virtuel, parmi un jeu de The choice of the rule to apply for memory allocation is therefore the result of the combination of two parameters. More precisely, a given Applix application specifies which allocation rules it requires for each type of virtual memory segment, from among a set of
règles prédéfinies. A titre d'exemple, les types de segments suivants sont couramment utilisés: segments "clients", segments de "mapping", segments "permanents", segments de10 "mémoire de travail" et segments de "bibliothèques partagées". predefined rules. For example, the following types of segments are commonly used: "customer" segments, "mapping" segments, "permanent" segments, "working memory" segments and "shared library" segments.
Pour fixer les idées et sans que cela soit limitatif en quoi que ce soit de la portée de l'invention, on peut définir le jeu de règles suivant, que l'on repère par les15 codes précisés ci-dessous: - "P STRIPE": allocation en bandes parmi tout l'espace mémoire physique formant la ressource d'une application donnée, réparties dans la mémoire locale (même module) ou distante (modules différents); - "PLOCAL": la mémoire physique allouée est dans le même module que l'unité centrale ayant provoqué le défaut de page; - "P RANDOM": l'allocation de mémoire physique s'effectue au hasard parmi l'espace mémoire possible, à l'aide d'une fonction stochastique; - "P NONE" ou "PDEFAULT": il n'y a pas de règle d'allocation de mémoire physique spécifique, on utilise alors To fix the ideas and without this being limiting in any way of the scope of the invention, the following set of rules can be defined, which are identified by the codes specified below: - "P STRIPE" : allocation in bands among all the physical memory space forming the resource of a given application, distributed in the local memory (same module) or remote (different modules); - "PLOCAL": the allocated physical memory is in the same module as the central unit which caused the page fault; - "P RANDOM": the allocation of physical memory is carried out at random among the possible memory space, using a stochastic function; - "P NONE" or "PDEFAULT": there is no specific physical memory allocation rule, we then use
des règles par défaut propres au système. system-specific default rules.
A titre d'exemple, l'allocation du type "P_STRIPE", définie ci-dessus, convient a priori pour des segments de type "mémoire partagée", alors que l'allocation de type "P LOCAL" convient a priori pour des segments du type By way of example, the allocation of the "P_STRIPE" type, defined above, is suitable a priori for segments of the "shared memory" type, while the allocation of the "P LOCAL" type is suitable a priori for segments like
"mémoire de travail"."working memory".
14 276793814 2767938
Si l'on se reporte de nouveau à la figure 6a, et si l'on suppose que les types de mémoires utilisés par une application particulière Applix sont les suivants: "texte", "données", "heap", "mémoire partagée", "stack" et "bibliothèque partagée", le profil d'allocation de mémoire associé à l'application Applix sera décrit, par exemple, par If we refer again to Figure 6a, and if we suppose that the types of memories used by a particular Applix application are the following: "text", "data", "heap", "shared memory" , "stack" and "shared library", the memory allocation profile associated with the Applix application will be described, for example, by
la "TABLE I" placée en fin de la présente description. "TABLE I" placed at the end of this description.
Le procédé selon l'invention permet ainsi d'optimiser au mieux les allocations de mémoires physiques aux besoins réels des applications, plus précisément des profils particuliers des applications. Les performances du système de traitement de l'information s'en trouvent améliorées, car les temps d'accès à la ressource mémoire sont optimisés, pour le moins si l'on raisonne en temps moyens d'accès. Un autre15 avantage est la possibilité de lier une application quelconque au jeu de règles d'allocation de mémoire The method according to the invention thus makes it possible to optimize the allocation of physical memories to the real needs of the applications, more precisely the particular profiles of the applications. The performance of the information processing system is improved, because the access times to the memory resource are optimized, at least if we reason in terms of average access times. Another advantage is the possibility of linking any application to the memory allocation rule set.
prédéfinies sans qu'il soit nécessaire de la modifier ou de la recompiler, comme ce serait le cas si on utilisait une nouvelle "API", ainsi qu'il a été indiqué. predefined without the need to modify or recompile it, as would be the case if we used a new "API", as indicated.
En outre, le procédé présente une grande souplesse. Il permet notamment de fonctionner selon l'art connu. Par exemple, si des règles d'allocation ne sont pas spécifiées ou requises par une application donnée, les règles par défaut peuvent être utilisées ("PNONE" ou "P_DEFAULT"). D'autre25 part, une application "fille" peut "hériter" des règles d'allocation de mémoire associée à l'application "mère" qui In addition, the process has great flexibility. It allows in particular to operate according to the known art. For example, if allocation rules are not specified or required by a given application, the default rules can be used ("PNONE" or "P_DEFAULT"). On the other hand, a "daughter" application can "inherit" the memory allocation rules associated with the "mother" application which
l'a créée. Il peut en être de même d'une instance supplémentaire d'une application, qui se déroule par exemple dans un module différent. created it. It can be the same for an additional instance of an application, which takes place for example in a different module.
A la lecture de ce qui précède, on constate aisément On reading the above, we can easily see
que l'invention atteint bien les buts qu'elle s'est fixés. that the invention does achieve the goals it has set for itself.
Elle permet notamment d'adapter au mieux l'utilisation de l'espace mémoire aux besoins réels des applications, c'est-à-dire en tenant compte de leurs profils In particular, it makes it possible to best adapt the use of memory space to the real needs of applications, that is to say taking into account their profiles.
27679382767938
spécifiques et des différents types de mémoire qu'elles utilisent. Il doit être clair cependant que l'invention n'est pas limitée aux seuls exemples de réalisations explicitement décrits. Notamment, le procédé ne saurait se limiter au seul jeu de règles prédéfinies d'allocation de mémoire explicité specific types of memory they use. It should be clear, however, that the invention is not limited to only the examples of embodiments explicitly described. In particular, the method cannot be limited to the sole set of predefined memory allocation rules explained.
dans la description.in the description.
Il doit être clair aussi que, bien que particulièrement adaptée pour des architectures multiprocesseurs de type "NUMA" précité, on ne saurait cantonner l'invention à ce seul type d'applications. Le It should also be clear that, although particularly suitable for multiprocessor architectures of the aforementioned "NUMA" type, the invention cannot be confined to this single type of application. The
procédé de l'invention s'applique avantageusement à tout système de traitement de l'information dont les accès à la mémoire physique ne s'effectuent pas de façon uniforme, que15 cette mémoire soit distribuée ou non entre plusieurs machines ou modules. The method of the invention advantageously applies to any information processing system whose accesses to the physical memory are not carried out uniformly, whether this memory is distributed or not between several machines or modules.
Enfin, bien que particulièrement adapté à un système d'exploitation du type "UNIX" ou similaire, il est clair que Finally, although particularly suitable for an operating system of the "UNIX" type or similar, it is clear that
l'on ne peut cantonner le procédé de l'invention à ce seul20 environnement. the process of the invention cannot be confined to this environment alone.
16 276793816 2767938
TABLE ITABLE I
Types de mémoire Règles texte "P STRIPE" données "P LOCAL" "heap" "P LOCAL" mémoire partagée "PSTRIPE" "stack" "P LOCAL" bibliothèque partagée "PRANDOM" Memory types Text rules "P STRIPE" data "P LOCAL" "heap" "P LOCAL" shared memory "PSTRIPE" "stack" "P LOCAL" shared library "PRANDOM"
17 276793817 2767938
Claims (7)
Priority Applications (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9711025A FR2767938B1 (en) | 1997-09-04 | 1997-09-04 | MEMORY ALLOCATION METHOD IN A MULTIPROCESSOR INFORMATION PROCESSING SYSTEM |
FR9808058A FR2767939B1 (en) | 1997-09-04 | 1998-06-25 | MEMORY ALLOCATION METHOD IN A MULTIPROCESSOR INFORMATION PROCESSING SYSTEM |
AU90793/98A AU9079398A (en) | 1997-09-04 | 1998-08-26 | Method for allocating memory in a multiprocessor data processing system |
PCT/FR1998/001855 WO1999012099A1 (en) | 1997-09-04 | 1998-08-26 | Method for allocating memory in a multiprocessor data processing system |
BR9806150-0A BR9806150A (en) | 1997-09-04 | 1998-08-26 | Process for allocating memory in a multiprocessor data processing system |
CN98801271A CN1237252A (en) | 1997-09-04 | 1998-08-26 | Method for allocating memory in multiprocessor data processing system |
JP11516373A JP2000506659A (en) | 1997-09-04 | 1998-08-26 | Method of allocating memory in a multiprocessor data processing system |
EP98942788A EP0935781A1 (en) | 1997-09-04 | 1998-08-26 | Method for allocating memory in a multiprocessor data processing system |
US09/145,642 US6272612B1 (en) | 1997-09-04 | 1998-09-02 | Process for allocating memory in a multiprocessor data processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9711025A FR2767938B1 (en) | 1997-09-04 | 1997-09-04 | MEMORY ALLOCATION METHOD IN A MULTIPROCESSOR INFORMATION PROCESSING SYSTEM |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2767938A1 true FR2767938A1 (en) | 1999-03-05 |
FR2767938B1 FR2767938B1 (en) | 2001-08-24 |
Family
ID=9510770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR9711025A Expired - Fee Related FR2767938B1 (en) | 1997-09-04 | 1997-09-04 | MEMORY ALLOCATION METHOD IN A MULTIPROCESSOR INFORMATION PROCESSING SYSTEM |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2767938B1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0750255A2 (en) * | 1995-06-23 | 1996-12-27 | Data General Corporation | Operating system for a non-uniform memory access multiprocessor system |
-
1997
- 1997-09-04 FR FR9711025A patent/FR2767938B1/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0750255A2 (en) * | 1995-06-23 | 1996-12-27 | Data General Corporation | Operating system for a non-uniform memory access multiprocessor system |
Non-Patent Citations (3)
Title |
---|
JAYASHREE RAMANATHAN ET AL: "CRITICAL FACTORS IN NUMA MEMORY MANAGEMENT *", INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUTING SYSTEMS, ARLINGTON, TEXAS, MAY 20 - 24, 1991, no. CONF. 11, 20 May 1991 (1991-05-20), INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, pages 500 - 507, XP000221890 * |
KRUEGER K ET AL: "TOOLS FOR THE DEVELOPMENT OF APPLICATION-SPECIFIC VIRTUAL MEMORY MANAGEMENT", ACM SIGPLAN NOTICES, vol. 28, no. 10, 1 October 1993 (1993-10-01), pages 48 - 64, XP000411717 * |
LAROWE JR R P ET AL: "PAGE PLACEMENT POLICIES FOR NUMA MULTIPROCESSORS", JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, vol. 11, no. 2, 1 February 1991 (1991-02-01), pages 112 - 129, XP000201935 * |
Also Published As
Publication number | Publication date |
---|---|
FR2767938B1 (en) | 2001-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2767939A1 (en) | MEMORY ALLOCATION METHOD IN A MULTIPROCESSOR INFORMATION PROCESSING SYSTEM | |
FR2910985A1 (en) | Client physical address translating apparatus i.e. bare platform hardware, for partitioning information processing system e.g. personal computer, has logics translating two addresses to other addresses in partitions, respectively | |
EP2259181A1 (en) | Methods and systems for providing a level of access to a computing device | |
WO2010111151A2 (en) | Virtual non-uniform memory architecture for virtual machines | |
EP2350836A1 (en) | Device for managing data buffers in a memory space divided into a plurality of memory elements | |
US20190384638A1 (en) | Method, device and computer program product for data processing | |
EP0604310B1 (en) | Information system and method for cache memory management | |
FR2786288A1 (en) | Resource allocation in computer systems with multiple resources | |
Ghazimirsaeed et al. | Communication‐aware message matching in MPI | |
FR2683061A1 (en) | MEMORY SEGMENTATION SYSTEM. | |
EP0251861B1 (en) | Memory management unit | |
FR2767938A1 (en) | Memory allocation method in multiprocessor computer system | |
Mohapatra | Authentication of sub-numa clustering effect on intel skylake for memory latency and bandwidth | |
EP1344137A1 (en) | Method and device for making secure data processing | |
FR2609195A1 (en) | METHOD FOR MANAGING ANEMEMOIRES ASSOCIATED WITH PROCESSORS IN A SINGLE-BUS MULTIPROCESSOR ARCHITECTURE AND DATA PROCESSING SYSTEM OPERATING IN SUCH A METHOD | |
CN116450966A (en) | Cache access method and device, equipment and storage medium | |
US7299467B2 (en) | Method and system for minimizing memory access latency in a computer system | |
FR3048525A1 (en) | MEMORY MANAGEMENT METHOD WITHIN A SET OF INFORMATION PROCESSING DEVICES | |
EP2666092A1 (en) | Multi-core system and method of data consistency | |
FR3129499A1 (en) | Dynamic management of a memory firewall | |
EP1155389B1 (en) | Device for secure access to a chip card applications | |
FR2952731A1 (en) | METHOD AND DEVICE FOR OPTIMIZING THE EXECUTION OF SOFTWARE APPLICATIONS IN A MULTIPROCESSOR ARCHITECTURE COMPRISING SEVERAL INPUT / OUTPUT CONTROLLERS AND SECONDARY CALCULATION UNITS | |
EP1585028A1 (en) | Method and apparatus for computing addresses of a program stored in segmented memory | |
EP2652624B1 (en) | Method, computer program, and device for managing memory access in a numa multiprocessor architecture | |
EP3256948B1 (en) | Method of executing a request to exchange data between first and second disjoint physical addressing spaces of chip or card circuits |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20160531 |