×

Process for allocating memory in a multiprocessor data processing system

  • US 6,272,612 B1
  • Filed: 09/02/1998
  • Issued: 08/07/2001
  • Est. Priority Date: 09/04/1997
  • Status: Expired due to Fees
First Claim
Patent Images

1. A process for allocating physical main memory locations by mapping with at least one range of contiguous memory addresses in a virtual address space, associated with a given software application (Applix), the application (Applix) being run in a data processing system (11, 1n) comprising a non-uniform access memory unit (Mem) and using a plurality of virtual memories (tyM1-tyM6), said mapping being carried out by scanning an address correspondence table, and without modifying at least one of said software applications running in said data processing system, characterized in that said process comprises:

  • linking said given software application (Applix) to memory allocation rules (Rg) chosen from a set of predefined rules;

    generating an exception (Fp) and allocating a physical main memory location (Z1-Zn) according to one of said memory allocation rules (Rg), when said address correspondence table does not comprise an entry for a contiguous memory address range of a virtual address associated with said given software application (Applix), the choice of the rule being subject to a profile (Pax) of said virtual memories (tyM1-tyM6) used by the given software application (Applix);

    wherein said ranges of contiguous virtual memory addresses are subdivided into a plurality of categories causing distinct exception types (Fp), and said process further comprising determining said distinct exception type (Fp), said memory allocation rule being a function of the combination of said profile and said exception type (Fp);

    wherein said virtual address space is organized into segments (Sgx, Sgy) associated with said memory allocation rules (Rg);

    wherein said segments are subdivided into virtual address ranges (Ra1-Ra5), each being allocated to at least one of said applications (Applix), and comprising providing a first digital datum, specifying whether there is at least one virtual address range (Ra1-Ra5) with which a specific memory allocation rule is associated, and in at least one second digital datum specifying the nature of said memory allocation rule and providing a third digital datum comprised of an optional number addressing one of said modules (Ma-Mc);

    wherein said second digital datum specifies at least one of the following rules;

    a first rule allocating a memory location exclusively in said local memory unit;

    a second rule allocating a memory location by distribution, in slices, in said local memory unit and said remote memory units;

    a third rule allocating a pre-established fixed memory location in said local memory unit or said remote memory units, and a fourth default rule, allocating a memory location according to a global memory allocation policy of said data processing system, said fourth rule being the type of one of said first through third rules;

    wherein said memory allocation policy records comprise two supplementary fields, a first field storing a digital datum specifying the lower address boundary, in a given segment (Sgx, Sgy), of said virtual address range (Ra1-Ra5), and a second field storing a digital datum specifying the upper address boundary of this virtual address range, and said process further comprises the following phases;

    a preliminary phase comprised of creating, at the request of said applications, for each segment comprising at least one virtual range associated with a specific memory allocation policy, a list structure comprising a number of cascaded elements (LRa1-LRaz) equal to the number of said virtual address ranges (Ra1-Ra5) comprised in said segment (Sgx, Sgy), each element storing said memory allocation policy records as well as said first and second supplementary address fields, and being associated with one of the virtual address ranges (Ra1-Ra5);

    a subsequent phase, upon the generation of an exception (Fp) at an address comprised in a given segment (Sgx, Sgy) comprising at least the following steps;

    a/ successive steps comprised of reading the digital data stored in said elements of the cascaded list structure (LRa1-LRaz);

    b/ for each of the list elements, a step comprised of comparing said address having caused the exception (Fp) with said lower and upper address boundaries, and c/ in case of a positive comparison, a step for reading said second and third digital datum, in order to generate a physical memory allocation instruction in accordance with said rule, and carried out in the module (Ma-Mc) whose number has optionally been specified as a function of this rule, or in the absence of a rule specified by said second digital datum, to allocate a physical memory location in accordance with the memory allocation rules governing the segment (Sgx, Sgy) that includes the virtual address range (Ra1-Ra5).

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×