WO1999012099A1 - Procede d'allocation de memoire dans un systeme de traitement de l'information multiprocesseur - Google Patents
Procede d'allocation de memoire dans un systeme de traitement de l'information multiprocesseur Download PDFInfo
- Publication number
- WO1999012099A1 WO1999012099A1 PCT/FR1998/001855 FR9801855W WO9912099A1 WO 1999012099 A1 WO1999012099 A1 WO 1999012099A1 FR 9801855 W FR9801855 W FR 9801855W WO 9912099 A1 WO9912099 A1 WO 9912099A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- memory
- virtual
- address
- segment
- rule
- Prior art date
Links
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
Definitions
- 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.
- non-uniform is understood in a temporal sense, as will be shown.
- memory has a general meaning. It can mean a distributed memory, a memory hierarchy (for example comprising memory banks with different access times), or a set of memories of different types.
- SMP System etrical MultiProcessor
- symmetrical multiprocessor allows different processors of the same machine to access its memory symmetrically by means of a system bus. These are machines with uniform access memory insofar as the memory access time is substantially the same for all the data accessed.
- 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” according to the English terminology.
- central units have been shown in the example of FIG. 1: 10 to 13. These central units 10 to 13 are associated with a central memory 14 accessible to all.
- 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 a communication with another machine whenever it performs processing on data held up to date by this other machine.
- the time required for these communications and the need to work on coherent data pose latency problems for large applications such as, for example, distributed applications which require numerous communications. Latency is the time between the instant of transmission of a memory access request and the instant at which the response to this request is received.
- NUMA Non Uniform Memory Access
- a "NUMA” type machine 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.
- 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 of the private system buses as a single system bus of the machine.
- Logical addressing assigns a place of residence to a determined physical memory location of a module.
- 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 modules other than that where the processor.
- Figure 2 appended to this description schematically illustrates an example of architecture of this type, that is to say an architecture "NUMA".
- the information processing system comprises only two modules, M a 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 comprise a greater number of modules and that the modules M a and Mb, may be different (in particular as regards the number of central units) .
- the module M a therefore comprises four central units 10 a to 13 a / and a central memory 14 a .
- the module Mb comprises four central units 10jb to 13b, and a central memory 14 £,.
- the two memories 14 a and 14 & (and more generally the n main memories) communicate with each other using what is called a "link" 2, usually via so-called remote caches 15a and 15d, respectively.
- the link 2 is not limited to simple physical links, but includes various conventional electronic circuits (control circuits, interface, etc.), which it is unnecessary to describe further.
- 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.
- an exception is generated which is formalized by the detection of a fault in page, according to the terminology "UNIX" (registered trademark).
- the term "page” can be defined more generally as a "range of contiguous addresses”. A page is a subdivision of a segment. However, for reasons of simplification, the term “page” will be used in the following.
- a device called manager allocates physical memory, according to the aforementioned common rules.
- 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 meet the needs which arise. feel for this architecture particular and which does not have the drawbacks of the processes of the known art.
- memory allocation is carried out according to the profile specific to each application, that is to say by implementing a set of allocation rules taking account of this profile between which, for each fault page detected, a search is automatically carried out which determines which should be executed for the allocation of physical memory.
- the allocation of physical memory is also carried out, taking into account the type of 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. The invention therefore also makes it possible to optimize the memory accesses as a function of this parameter.
- the "virtual ranges" thus defined can have variable lengths.
- a specific memory allocation policy is selectively associated with each of the virtual ranges or "ranges". This technical characteristic makes it possible to further optimize memory allocations in the event of page fault detection, at the cost of
- the manager responsible for finding the rule to be executed examines a table in order to determine whether there is a specific allocation policy associated with this virtual range. If this specific policy does not exist, the policy governing the superior hierarchical unit that constitutes the segment is adopted. Otherwise, a memory allocation rule is derived from this specific policy.
- the same segment can comprise one or more virtual ranges, or "ranges", each associated with a specific memory allocation policy, at the same time as one or more other virtual ranges obeying the general policy. of the segment, even of the system, and of the rules which result from it.
- list structures are used to determine which memory allocation rule it is necessary to use, each element of the list corresponding to a range of contiguous addresses, delimited by the start and end addresses. from the virtual beach.
- an item in the list is a memory location storing the memory allocation rules that apply to a given virtual range. The different elements of the list are scanned, sequentially, to determine which rules should be applied.
- the segments are subdivided into N subspaces of contiguous virtual addresses, all of the same length.
- a table called a "hash”, is also provided, also comprising N entries. These N entries are associated with as many individual list structures. The length of individual list structures is not fixed. It depends on the number of virtual ranges associated with this entry.
- the address manager H knows the address which caused the page fault. It is therefore easy for him to determine the number of the corresponding entry in the table.
- the "hash" table consists of N memory locations, each location storing at least one piece of information on the fact that there is a virtual range associated with this entry and which requires the use of a specific memory allocation policy.
- a page fault when a page fault is detected, its entry in the table is read and as soon as there is a pointer characteristic of the presence of a specific allocation policy, it follows, without any additional step , determining that of the aforementioned virtual ranges of the segment which is associated with this page fault. For segments that do not include virtual ranges associated with a specific policy, the policy to be applied is that of the segment as a whole. On the other hand, for virtual ranges requiring specific memory allocation policies, it is necessary to scan one or more elements of a list structure associated with a particular entry in the table.
- the subject of the invention is therefore a method of allocating physical memory locations by mapping to at least one range of contiguous memory addresses in a virtual address space associated with a specific software application, the application being executed in an information processing system comprising a memory unit with non-uniform access and using several types of virtual memory, said mapping being effected by scanning an address correspondence table , characterized in that it comprises at least one step consisting in linking said determined software application to memory allocation rules chosen from a set of predefined rules, and in that, when said address correspondence table does not include no entry for a range of contiguous addresses in the virtual address memory associated with said determined software application, it comprises takes a step of generating an exception and a subsequent step of allocating a physical memory location according to one of said memory allocation rules, the choice of the rule being subject to the profile of said types of virtual memory used by the software application determined.
- FIG. 1 schematically illustrates an architecture of an information processing system with uniform memory access called "UMA”
- FIG. 2 schematically illustrates an architecture of a system for processing information with non-uniform memory access called "NUMA”;
- FIG. 4 illustrates an example of subdivision of a software application
- FIG. 5 schematically illustrates the allocation of a memory location according to the known art, when generating a page fault
- Figures 6a and 6b schematically illustrate the allocation of a memory location according to the invention, when generating a page fault
- - Figures 7a and 7b illustrate an additional embodiment of the method according to the invention
- FIG. 8 schematically illustrates a practical example of implementation of the variants of the method according to
- FIG. 9 schematically illustrates a practical example of implementation of the additional embodiment of the method according to the invention, according to a first variant
- - And Figures 10a to 10c schematically illustrate a practical example of implementation of the additional embodiment of the method according to the invention, according to a second variant.
- the virtual address space can be divided into different types, including the following types:
- an application or a new instance of the same application can be executed in one or the other of the two modules M a or Mb of the system of FIG. 2. This is true for the same application, the is even more for two applications with different profiles.
- FIGS 3a and 3b schematically illustrate two types of applications, namely a "mini-database” (“minidatabase”) and a more traditional database.
- the accesses are confined to an address space symbolically represented by the Zini zone, located arbitrarily on the left of FIG. 3a. Then, the accesses are made in an address space, symbolized by a zone Zf, also of restricted extent and supposed to be connected to the zone Zini, in the example of figure 3a.
- the physical memory locations for this particular application, can therefore be confined in a single module, and more precisely locally.
- the virtual memory space is subdivided into different types of segments: text, data, etc.
- a manager device H or "handler” according to the English terminology commonly used, allocates to these virtual memory segments locations in the global physical memory Mem of the system.
- the rules used are unique regardless of the profile of 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 14 a if the process took place in the module M a under the supervision of one of the central units 10 a to 13 a .
- This rule can be interesting for a text type segment, but not optimized for other types of segments.
- the above mechanism is illustrated in FIG. 5.
- the application Appli generates a page fault Fp and the manager H assigns a location of the physical memory Mem (whose partitions, Z to Z n , have been symbolized by lines dotted in Figure 5), according to predefined rules. As noted above, these rules can be changed, but they remain the same for all applications and all types of segments.
- the allocation of the physical memory Mem will be carried out in accordance with a set of rules which takes into account, on the one hand, the profile of the application, and on the other hand , in a preferred embodiment, of the page fault type.
- FIGS 6a and 6b illustrate the allocation mechanism of the physical memory according to the invention.
- each application is linked to a set of predefined allocation rules. To do this, it is necessary to associate each application Appli ⁇ (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.
- FIG. 6a a particular application Appli ⁇ . As mentioned, this Appli ⁇ application uses various types of memory: text, data, etc.
- FIG. 6a six types of memory have been represented, which have been referenced tyM to tyM ⁇ .
- Each type of memory, tyM ⁇ to tyMç is linked to an allocation rule, among a set of predefined rules which will be specified below.
- These rules have been referenced J? ⁇ to Re, it being understood that this is not necessarily a set of disjoint rules.
- the rules R2 and R3 could be identical, even if the memory types tyM2 and tyM3 are themselves distinct.
- the memory allocation profile Pa x which has just been defined is linked by an association Ax to a particular application Appli x .
- the Pa x profile is therefore a table with two inputs: memory types tyM ⁇ and rules Rj chosen from a set of predefined rules, i and being arbitrary indices.
- association function can be defined as follows:
- the memory allocation profile linked to a given application can be defined at the initialization of the execution of this application or, dynamically, redefined at any time during the execution, which increases the flexibility of the process.
- the manager H searches the Pa x profile of the Appli ⁇ - 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, Z to Z--. , either 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 profile Pa x of the application Appli ⁇ and the type of page fault Fp, is symbolized, in FIG. 6b, by multiple arrows (unlike the single arrow of the method according to the known art represented in the figure 5).
- the addressing function F a can therefore be formalized as follows:
- a given application Appli ⁇ specifies which allocation rules it requires for each type of virtual memory segment, from a set of predefined rules.
- segments are commonly used: “client” segments, “mapping” segments, “permanent” segments, “working memory” segments and “shared library” segments.
- 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 distant (different modules), according to a method called “round robin” ;
- the allocation of the type P_STRIPE ", defined above, is suitable a priori for segments of the" shared memory "type, while the allocation of the type” P_LOCAL “is suitable a priori for segments of the type "working memory”.
- the method according to the invention thus makes it possible to optimize the allocation of physical memories as much as possible according to the real needs of the applications, more precisely the particular profiles of the applications.
- the performance of the information processing system is thereby improved, since the access times to the memory resource are also optimized, at least if we reason in terms of average access times.
- Another advantage is the possibility of linking any application to the set of predefined memory allocation rules without having to modify or recompile it, as would be the case if we used a new "API", as well that it was indicated.
- the process has great flexibility. It allows in particular to be able to operate according to known art. For example, if allocation rules are not specified or required by a given application, default rules from the system can be used ("P_DEFAULT"). On the other hand, a “daughter” application can "inherit” the memory allocation rules associated with the "mother” application that created it. It can be the same for an additional instance of an application, which takes place for example in a different module.
- the method of the invention offers a significant improvement over the known art, and in particular better performance and great flexibility.
- the virtual address space of current multiprocessor information processing systems can be extremely large.
- a single segment represents for example 256 MB, or 2 pages.
- These virtual subspaces even if they belong to a common segment, can be used in different ways by the various applications to which they are linked. It also follows that, for at least certain types of applications, the implementation of single rules for the whole of one or more segments that they use may not prove to be entirely optimized.
- a given application Appli ⁇ is executed in one of the processors of the module M a , for example the processor 10 a .
- This application notably manipulates a segment of the virtual address space of the system 1 ", arbitrarily referenced Sg x .
- This segment Sgx is illustrated diagrammatically in FIG. 7b.
- the virtual range Ra2 is assigned to the aforementioned application Appli et and, more precisely, it relates to an array whose capacity is 50 MB for example.
- This table relates to a buffer memory, of the same capacity, located in one of the physical memories of the 1 "system.
- the virtual ranges, or “ranges”, are selectively associated with specific rules.
- each virtual range is associated with additional information defining a specific physical memory allocation policy.
- this policy is optional.
- the method in the variant which has just been described, makes it possible to optimize the allocation of physical memory as best as possible on detection of a page fault. As in the previous variants, it requires a modification of the operating system, but also slight modifications of the applications that use it.
- policy [address, size (for example 50 MB), policy (for example P_FIXE), module (for example N ° 3)]
- the method is particularly advantageous for applications which manipulate data on the same virtual space.
- applications of the so-called "driver” type, and in particular disk and network “drivers”, that is to say peripheral or network management programs.
- These applications call on “data” type segments in which there are buffers, memory ranges for which the application has the possibility of defining specific policies, through an instruction which can be will call "System policy”.
- the profile Pa x generally comprises several types of memories. If we consider a given segment, its type is described by a record Sgcy in the table of segments Scb. This type refers to an element of the profile Pa x , which is in turn described, according to the invention, by additional data MPy, recorded in the table Scjb.
- FIG. 8 therefore illustrates the main interactions between a given application Appli ⁇ and the table of segments Scb.
- the additional data for each game includes several fields: the "prange” pointer field which specifies whether or not there is a specific policy to take into account in the segment, a field that the we will call “policy _type” which specifies the type of rule to apply ("P_FIXE", etc.) and a field which we will call “module” which specifies the module number, at least for certain types of rules (for example if the rule is "P_FIXE").
- policy _type which specifies the type of rule to apply
- module which specifies the module number, at least for certain types of rules (for example if the rule is "P_FIXE").
- a list structure is adopted to organize the additional data sets, as illustrated diagrammatically in FIG. 9.
- the addressed segment that caused the page fault includes z virtual ranges.
- the first memory position of the list structure, in the table Scb includes data relating to the segment in its entirety, and in particular the global memory allocation policy for this segment. For an unmodified application, only this memory position exists.
- the address in the segment that caused a page fault is known.
- the H manager provides this address as well as the segment concerned, which will be called idx and pno, respectively. These data are used to address the Scb table.
- the comparison of this pno address with the different bounds, low and high, of each list element, Ra_ to R z, (addresses "pno_start” and "pno_end"), makes it possible to determine whether it is necessary to apply a memory allocation policy specific to the virtual range concerned, and, if so, what type of policy should be applied (“policy _t pe”), and possibly which module number is concerned (“module”), depending on the type specified by the "policy _type” field.
- This additional data is initialized when creating a segment, depending on the profile of the application concerned. They can then be modified by the application dynamically, through the aforementioned instruction of type "system policy”.
- the global policy to be applied to the segment is of the "P_L0CAL" type, and therefore a module number is unnecessary, since the allocation is made in the module where the page fault occurred;
- the manager H receives, in response to its request, data indicating a type "P_STRIPE" and a module number 3 , or M c in the example of FIG. 7a. This module number must be incremented (or more generally modified), since it is a rotating allocation by bands.
- the determination of a specific allocation policy is carried out according to the diagram in FIGS. 10a to 10c.
- the segments for example the Sgy segment, being there an arbitrary index, are subdivided into N sub-segments of fixed lengths.
- a segment representing 256 MB of virtual memory it is advantageously subdivided into 256 sub-segments of 1 MB each, referenced SS to SSjj in FIG. 10b, which is advantageous since it s 'acts with a power of 2.
- the hash table Th (FIG. 10a) also includes N entries corresponding to N memory sub-segments. Each of the entries stores the memory allocation policy specific to the sub-segments, SS ⁇ to SSIJ. Each of the memory locations of the table Th is associated with an individual list structure. More precisely, this list structure exists if, and only if, the sub-segment concerned comprises at least one zone belonging to a virtual memory range, or "range", to which a specific memory allocation policy must be applied. .
- the entry e2 of the hash table Th is associated with a list structure comprising two elements, I ⁇ -ai2 and LRa22, storing the characteristics of the two specific policies, in the manner which was previously described.
- the entries ei, ⁇ 3, es and ee and e ⁇ correspond to sub-segments of (same rank) which do not include virtual ranges associated with specific policies.
- the entries ⁇ 4 and e ⁇ correspond to sub-segments comprising virtual ranges associated with specific memory allocation policies. It can be seen that the number of elements in each individual list, that is to say associated with an entry, is variable. Indeed, as has been indicated, virtual ranges, or "ranges", do not have a fixed length. In the example illustrated in FIG.
- the list structure associated with the entry ⁇ 2 comprises two elements, LRa ⁇ 2 and LRa22
- the list structure associated with the entry ⁇ 4 comprises an element, LRa ⁇ .
- the list structure associated with the entry e ⁇ has three elements, LRa ⁇ to
- the manager H When a page fault is detected, the manager H knows the virtual address which caused this page fault in a given segment, for example the segment of index idx and the pno address which makes it possible to find the rank of the sub -segment, for example the SS2 sub-segment •
- the corresponding entry of the table Th is read. There is a high probability that the policy to be applied can be determined directly at this stage, by reading the information set recorded in the table Th. If this is not the case, only the elements of the list associated with a determined entry, corresponding to the sub-segment having caused the page fault are read, that is to say the elements associated with the entry N ° 2 in this case. These elements are, in each case limited in number, because they only cover a sub-segment, that is to say only 1 MB in the example described. As indicated, in the preferred application, under the "UNIX" environment, the minimum granularity of a virtual range, or "range”, is that of the page. The maximum number of ranges per sub-segment is therefore, at most, limited to the number of pages included in a sub-segment (256 in the example).
- Virtual ranges are not fixed lengths. Certain ranges could then be "straddled" over two or more consecutive sub-segments. This is the case of a range extending over 50 MB for example, if a sub-segment has a length of 1 MB.
- This problem can be solved by considering that the ranges can themselves be subdivided into sub-ranges, or "sub-ranges". This method is not penalizing because, at the time of their creation, the execution time is not critical, when detecting a page fault, it is however necessary that the allocation of a location of physical memory is very fast.
- the entries p and p + 1 of the "hash" table Th are both initialized, through the above-mentioned instruction of the "system policy" type, when the virtual address range is created.
- the entries p and p + 1 of the "hash” table Th are both initialized, through the above-mentioned instruction of the "system policy" type, when the virtual address range is created.
- only one entry from the "hash” table Th is used. This is the one associated with this page fault, that is to say the one corresponding to a sub-segment (pno address).
- the list items associated with these entries, LRa ⁇ p, etc., and LRa ⁇ (p + l), etc., respectively, are scanned to determine the memory allocation policy to be applied for l address that caused the aforementioned page fault.
- multiple entries corresponding to several sub-segments and a single entry are used when a given virtual range is entirely included in a sub-segment, that is to say in a virtual subspace of 1 MO, in the example described.
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)
- Multi Processors (AREA)
Abstract
Description
Claims
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
BR9806150-0A BR9806150A (pt) | 1997-09-04 | 1998-08-26 | Processo para alocar memória em um sistema de processamento de dados multiprocessador |
JP11516373A JP2000506659A (ja) | 1997-09-04 | 1998-08-26 | マルチプロセッサデータ処理システム内でメモリを割り当てる方法 |
AU90793/98A AU9079398A (en) | 1997-09-04 | 1998-08-26 | Method for allocating memory in a multiprocessor data processing system |
EP98942788A EP0935781A1 (fr) | 1997-09-04 | 1998-08-26 | Procede d'allocation de memoire dans un systeme de traitement de l'information multiprocesseur |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR97/11025 | 1997-09-04 | ||
FR9711025A FR2767938B1 (fr) | 1997-09-04 | 1997-09-04 | Procede d'allocation de memoire dans un systeme de traitement de l'information multiprocesseur |
FR9808058A FR2767939B1 (fr) | 1997-09-04 | 1998-06-25 | Procede d'allocation de memoire dans un systeme de traitement de l'information multiprocesseur |
FR98/08058 | 1998-06-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1999012099A1 true WO1999012099A1 (fr) | 1999-03-11 |
Family
ID=26233786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/FR1998/001855 WO1999012099A1 (fr) | 1997-09-04 | 1998-08-26 | Procede d'allocation de memoire dans un systeme de traitement de l'information multiprocesseur |
Country Status (8)
Country | Link |
---|---|
US (1) | US6272612B1 (fr) |
EP (1) | EP0935781A1 (fr) |
JP (1) | JP2000506659A (fr) |
CN (1) | CN1237252A (fr) |
AU (1) | AU9079398A (fr) |
BR (1) | BR9806150A (fr) |
FR (1) | FR2767939B1 (fr) |
WO (1) | WO1999012099A1 (fr) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2337614A (en) * | 1998-02-12 | 1999-11-24 | Bull Sa | Method for controlling memory access on a machine with non-uniform memory access and machine for implementing such a method |
EP1244028A2 (fr) | 2001-03-20 | 2002-09-25 | Sap Ag | Méthode, produit logiciel et ordinateur permettant à une seule base de donnée de supporter de multiples systèmes d'application |
Families Citing this family (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020032844A1 (en) * | 2000-07-26 | 2002-03-14 | West Karlon K. | Distributed shared memory management |
US6742105B1 (en) * | 2000-12-22 | 2004-05-25 | Silicon Access Networks | Method and system for range matching |
US6871219B2 (en) | 2001-03-07 | 2005-03-22 | Sun Microsystems, Inc. | Dynamic memory placement policies for NUMA architecture |
US7117488B1 (en) * | 2001-10-31 | 2006-10-03 | The Regents Of The University Of California | Safe computer code formats and methods for generating safe computer code |
US20030110205A1 (en) * | 2001-12-07 | 2003-06-12 | Leith Johnson | Virtualized resources in a partitionable server |
IL147073A0 (en) * | 2001-12-10 | 2002-08-14 | Monosphere Ltd | Method for managing the storage resources attached to a data network |
AU2002343180A1 (en) * | 2001-12-14 | 2003-06-30 | Koninklijke Philips Electronics N.V. | Data processing system having multiple processors |
US7433948B2 (en) * | 2002-01-23 | 2008-10-07 | Cisco Technology, Inc. | Methods and apparatus for implementing virtualization of storage within a storage area network |
US6823498B2 (en) * | 2002-01-09 | 2004-11-23 | International Business Machines Corporation | Masterless building block binding to partitions |
US7579771B2 (en) * | 2002-04-23 | 2009-08-25 | Semiconductor Energy Laboratory Co., Ltd. | Light emitting device and method of manufacturing the same |
US7786496B2 (en) | 2002-04-24 | 2010-08-31 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device and method of manufacturing same |
JP2003317971A (ja) | 2002-04-26 | 2003-11-07 | Semiconductor Energy Lab Co Ltd | 発光装置およびその作製方法 |
US7897979B2 (en) * | 2002-06-07 | 2011-03-01 | Semiconductor Energy Laboratory Co., Ltd. | Light emitting device and manufacturing method thereof |
AU2003240116A1 (en) * | 2002-06-20 | 2004-01-06 | British Telecommunications Public Limited Company | Distributed computer |
JP4216008B2 (ja) * | 2002-06-27 | 2009-01-28 | 株式会社半導体エネルギー研究所 | 発光装置およびその作製方法、ならびに前記発光装置を有するビデオカメラ、デジタルカメラ、ゴーグル型ディスプレイ、カーナビゲーション、パーソナルコンピュータ、dvdプレーヤー、電子遊技機器、または携帯情報端末 |
US6986016B2 (en) * | 2002-09-30 | 2006-01-10 | International Business Machines Corporation | Contiguous physical memory allocation |
CN101982950B (zh) * | 2002-10-04 | 2013-03-27 | 思达伦特网络有限责任公司 | 管理用于ip联网的资源 |
JP4373086B2 (ja) | 2002-12-27 | 2009-11-25 | 株式会社半導体エネルギー研究所 | 発光装置 |
GB0230331D0 (en) * | 2002-12-31 | 2003-02-05 | British Telecomm | Method and apparatus for operating a computer network |
JP2006525607A (ja) * | 2003-04-30 | 2006-11-09 | シリコン・グラフィックス・インコーポレイテッド | コンピュータシステムにおいてアドレス変換を実行するシステム及び方法 |
US7114040B2 (en) * | 2004-03-02 | 2006-09-26 | Hewlett-Packard Development Company, L.P. | Default locality selection for memory objects based on determining the type of a particular memory object |
US7426622B2 (en) * | 2004-03-10 | 2008-09-16 | Hewlett-Packard Development Company, L.P. | Rapid locality selection for efficient memory allocation |
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 |
JP2005332145A (ja) * | 2004-05-19 | 2005-12-02 | Nec Electronics Corp | データ転送制御回路及びデータ転送方法 |
GB0412655D0 (en) * | 2004-06-07 | 2004-07-07 | British Telecomm | Distributed storage network |
US20060031672A1 (en) * | 2004-08-03 | 2006-02-09 | Soltis Donald C Jr | Resource protection in a computer system with direct hardware resource access |
US7930539B2 (en) * | 2004-08-03 | 2011-04-19 | Hewlett-Packard Development Company, L.P. | Computer system resource access control |
CN101963829A (zh) * | 2004-12-31 | 2011-02-02 | 钟巨航 | 支持多个子系统的数据处理系统主板 |
US7447869B2 (en) * | 2005-04-07 | 2008-11-04 | Ati Technologies, Inc. | Method and apparatus for fragment processing in a virtual memory system |
US7996585B2 (en) * | 2005-09-09 | 2011-08-09 | International Business Machines Corporation | Method and system for state tracking and recovery in multiprocessing computing systems |
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 |
TWI348652B (en) * | 2005-10-17 | 2011-09-11 | Via Tech Inc | Driver assisted asynchronous command processing |
US7693884B2 (en) * | 2006-01-02 | 2010-04-06 | International Business Machines Corporation | Managing storage systems based on policy-specific proability |
US7599973B2 (en) * | 2006-01-12 | 2009-10-06 | Sun Microsystems, Inc. | Method and apparatus for decreasing object copying by a generational, copying garbage collector |
WO2007092615A2 (fr) | 2006-02-09 | 2007-08-16 | Monosphere Inc. | Planification de la capacite de stockage |
US7562186B2 (en) * | 2006-04-11 | 2009-07-14 | Data Domain, Inc. | Efficient data storage using resemblance of data segments |
US7949824B2 (en) * | 2006-04-11 | 2011-05-24 | Emc Corporation | Efficient data storage using two level delta resemblance |
US7844652B2 (en) * | 2006-04-11 | 2010-11-30 | Emc Corporation | Efficient computation of sketches |
US20080005528A1 (en) * | 2006-06-30 | 2008-01-03 | Morris Robert P | Methods, Systems, and Computer Program Products for Using a Structured Data Storage System to Provide Access to Addressable Entities in Virtual Address Space |
US20080005728A1 (en) * | 2006-06-30 | 2008-01-03 | Robert Paul Morris | Methods, systems, and computer program products for enabling cross language access to an addressable entity in an execution environment |
US20080127220A1 (en) * | 2006-06-30 | 2008-05-29 | Robert Paul Morris | Methods, systems, and computer program products for creating an input-value-specific loadable instance of an application |
US20080005752A1 (en) * | 2006-06-30 | 2008-01-03 | Robert Paul Morris | Methods, systems, and computer program products for generating application processes by linking applications |
US20080005719A1 (en) * | 2006-06-30 | 2008-01-03 | Morris Robert P | Methods, systems, and computer program products for providing a program execution environment |
US20080005529A1 (en) * | 2006-06-30 | 2008-01-03 | Morris Robert P | Methods, Systems, and Computer Program Products for Providing Access to Addressable Entities Using a Non-Sequential Virtual Address Space |
US20080005727A1 (en) * | 2006-06-30 | 2008-01-03 | Robert Paul Morris | Methods, systems, and computer program products for enabling cross language access to an addressable entity |
US7734890B2 (en) * | 2006-10-06 | 2010-06-08 | Okralabs Llc | Method and system for using a distributable virtual address space |
US20080221974A1 (en) * | 2007-02-22 | 2008-09-11 | Alexander Gilgur | Lazy Evaluation of Bulk Forecasts |
US8768895B2 (en) * | 2007-04-11 | 2014-07-01 | Emc Corporation | Subsegmenting for efficient storage, resemblance determination, and transmission |
US20080320282A1 (en) * | 2007-06-22 | 2008-12-25 | Morris Robert P | Method And Systems For Providing Transaction Support For Executable Program Components |
US20080320459A1 (en) * | 2007-06-22 | 2008-12-25 | Morris Robert P | Method And Systems For Providing Concurrency Control For Addressable Entities |
US9102962B2 (en) * | 2007-10-16 | 2015-08-11 | Shiu Nan Chen | Production method for solid cultured active mushroom mycelium and fruit-body metabolites (AMFM) products thereof |
JP5401903B2 (ja) * | 2008-10-03 | 2014-01-29 | 富士通株式会社 | 故障情報監視装置及び故障情報監視方法 |
CN101729272B (zh) * | 2008-10-27 | 2013-01-23 | 华为技术有限公司 | 内容分发方法、系统、设备及媒体服务器 |
CN102474531B (zh) * | 2009-09-17 | 2015-08-12 | 国际商业机器公司 | 地址服务器 |
US9817700B2 (en) * | 2011-04-26 | 2017-11-14 | International Business Machines Corporation | Dynamic data partitioning for optimal resource utilization in a parallel data processing system |
GB2500707B (en) | 2012-03-30 | 2014-09-17 | Cognovo Ltd | Multiprocessor system, apparatus and methods |
US9495718B2 (en) * | 2012-06-08 | 2016-11-15 | Advanced Micro Devices, Inc. | System and method for providing low latency to applications using heterogeneous processors |
US9483263B2 (en) * | 2013-03-26 | 2016-11-01 | Via Technologies, Inc. | Uncore microcode ROM |
WO2017016616A1 (fr) * | 2015-07-30 | 2017-02-02 | Hewlett-Packard Development Company, L.P. | Procédé et système de contrôle d'accès mémoire |
CN106250241A (zh) * | 2016-08-02 | 2016-12-21 | 合肥奇也信息科技有限公司 | 一种多方向分配数据处理系统资源到应用程序的方法 |
US11422750B2 (en) | 2017-09-27 | 2022-08-23 | Intel Corporation | Computer program product, system, and method to manage access to storage resources from multiple applications |
US10983832B2 (en) | 2019-02-14 | 2021-04-20 | International Business Machines Corporation | Managing heterogeneous memory resource within a computing system |
US11567803B2 (en) * | 2019-11-04 | 2023-01-31 | Rambus Inc. | Inter-server memory pooling |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0750255A2 (fr) * | 1995-06-23 | 1996-12-27 | Data General Corporation | Système d'exploitation pour un système multiprocesseur à accès mémoire non-uniforme |
-
1998
- 1998-06-25 FR FR9808058A patent/FR2767939B1/fr not_active Expired - Fee Related
- 1998-08-26 AU AU90793/98A patent/AU9079398A/en not_active Abandoned
- 1998-08-26 WO PCT/FR1998/001855 patent/WO1999012099A1/fr not_active Application Discontinuation
- 1998-08-26 JP JP11516373A patent/JP2000506659A/ja active Pending
- 1998-08-26 BR BR9806150-0A patent/BR9806150A/pt not_active IP Right Cessation
- 1998-08-26 CN CN98801271A patent/CN1237252A/zh active Pending
- 1998-08-26 EP EP98942788A patent/EP0935781A1/fr not_active Withdrawn
- 1998-09-02 US US09/145,642 patent/US6272612B1/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0750255A2 (fr) * | 1995-06-23 | 1996-12-27 | Data General Corporation | Système d'exploitation pour un système multiprocesseur à accès mémoire non-uniforme |
Non-Patent Citations (4)
Title |
---|
"PIPELINE ARTICLE 19970206 PERFORMANCE TUNING FOR NONUNIFORM MEMORY ARCHITECTURE", MIS À JOUR 4 JUIN 1997, Accessible par Internet: <URL: http://heron.cc.ukans.edu/pipeline-articles/pipeline-numa.html> 3 décembre 1998, XP002086738 * |
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 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2337614A (en) * | 1998-02-12 | 1999-11-24 | Bull Sa | Method for controlling memory access on a machine with non-uniform memory access and machine for implementing such a method |
GB2337614B (en) * | 1998-02-12 | 2002-08-14 | Bull Sa | Method for controlling memory access on a machine with non-uniform memory access and machine for implementing such a method |
US6473848B2 (en) | 1998-02-12 | 2002-10-29 | Bull, S.A. | Method for controlling memory access on a machine with non-uniform memory access and machine for implementing such a method |
EP1244028A2 (fr) | 2001-03-20 | 2002-09-25 | Sap Ag | Méthode, produit logiciel et ordinateur permettant à une seule base de donnée de supporter de multiples systèmes d'application |
EP1244028A3 (fr) * | 2001-03-20 | 2006-07-05 | Sap Ag | Méthode, produit logiciel et ordinateur permettant à une seule base de donnée de supporter de multiples systèmes d'application |
US7392236B2 (en) | 2001-03-20 | 2008-06-24 | Sap Ag | Method, computer program product and computer system for a single database system to support multiple application systems |
Also Published As
Publication number | Publication date |
---|---|
US6272612B1 (en) | 2001-08-07 |
BR9806150A (pt) | 1999-10-26 |
JP2000506659A (ja) | 2000-05-30 |
FR2767939B1 (fr) | 2001-11-02 |
CN1237252A (zh) | 1999-12-01 |
FR2767939A1 (fr) | 1999-03-05 |
AU9079398A (en) | 1999-03-22 |
EP0935781A1 (fr) | 1999-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0935781A1 (fr) | Procede d'allocation de memoire dans un systeme de traitement de l'information multiprocesseur | |
EP1043658B1 (fr) | Procédé d'amélioration des performances d'un système multiprocesseur comprenant une file d'attente de travaux et architecture de système pour la mise en oeuvre du procédé | |
EP1909169B1 (fr) | Système et procédé de stockage de masse | |
EP3586221B1 (fr) | Procédé, équipement et système de gestion du système de fichiers | |
US8606791B2 (en) | Concurrently accessed hash table | |
US6804761B1 (en) | Memory allocation system and method | |
EP0466265A1 (fr) | Dispositif de contrôle pour une mémoire tampon à partitionnement reconfigurable | |
FR2937755A1 (fr) | Dispositif pour gerer des tampons de donnees dans un espace memoire reparti sur une pluralite d'elements de memoire | |
US5765192A (en) | Method and computer program product to reuse directory search handles | |
US20130091326A1 (en) | System for providing user data storage environment using network-based file system in n-screen environment | |
EP0604310B1 (fr) | Procédé de gestion d'une mémoire tampon, et système informatique l'incorporant | |
US11409670B2 (en) | Managing lock coordinator rebalance in distributed file systems | |
EP2726985B1 (fr) | Dispositif et procede de synchronisation de taches executees en parallele sur une plateforme comprenant plusieurs unites de calcul | |
EP0251861B1 (fr) | Unité de gestion de mémoire | |
EP3506110B1 (fr) | Accès multiples à un fichier de données stocké dans un système de stockage de données associé à un espace mémoire tampon | |
EP2802992A1 (fr) | Systeme et procede de gestion de correspondance entre une memoire cache et une memoire principale | |
WO2012097944A1 (fr) | Systeme multi-cœurs et procede de coherence de donnees | |
FR3074939A1 (fr) | Procede de gestion du systeme de fichiers d'un terminal informatique | |
FR2986346A1 (fr) | Procede d'utilisation d'une memoire partagee | |
EP3239851B1 (fr) | Gestion de l'accès a des données dans un système de stockage | |
FR2767938A1 (fr) | Procede d'allocation de memoire dans un systeme de traitement de l'information multiprocesseur | |
FR2787901A1 (fr) | Organisation memoire par zones physiques | |
US20240106626A1 (en) | Execution of homomorphically encrypted code using dynamically selected blocks | |
EP2652624B1 (fr) | Procede, programme d'ordinateur et dispositif de gestion d'acces memoire dans une architecture multiprocesseurs de type numa | |
US11507611B2 (en) | Personalizing unstructured data according to user permissions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 98801271.5 Country of ref document: CN |
|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AU BR CN JP KR |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1998942788 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 1999 516373 Country of ref document: JP Kind code of ref document: A |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWP | Wipo information: published in national office |
Ref document number: 1998942788 Country of ref document: EP |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 1998942788 Country of ref document: EP |