← Back to Patent Explorer
US6286088B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Memory management system and method for relocating memory

Assignee: HP Inc
•
Filing: 1999-06-28
•
Granted: 2001-09-04
•
Expires: 2019-06-28
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A memory management system usable with a client is provided. The memory defines a memory space including at least one memory buffer, and the memory buffer is defined by a set of attributes including base address and size. The memory includes a fixed-simple memory allocation, having a link, and one of a relocatable simple memory allocation coupled with the link, a head of a complex memory allocation comprising multiple simple memory allocations, or a null simple memory allocation. A memory manager is coupled with the memory and is configured to manage specific instances of memory allocation usable by a client. A memory management interface is coupled with the memory manager and is configurable to enable a client to specify a request for a relocatable memory object. Processing circuitry is coupled with the memory and the memory management interface and is operative to detect a low memory condition. The memory manager is operative to relocate the memory object from one physical location in memory to another physical location in memory to generate a sufficiently large contiguous free memory block for the client so as to overcome the low memory condition. A method is also provided.

Inventors

  • 👤 Russell Campbell
  • 👤 David L. Lanning
  • 👤 Timothy P. Blair

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 02:07
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/0223; G06F12/023

Claims Analysis

Total Claims: 22
Claim 1
Independent Claim 287 words
A memory management system usable with a client, comprising: memory defining a memory space including at least one memory buffer, the memory buffer defined by a set of attributes including base address and size, the memory including a fixed-simple memory allocation, having a link, and one of: a. a relocatable simple memory allocation coupled with the link, b. a head of a complex memory allocation comprising multiple simple memory allocations, or c. a null simple memory allocation; a memory manager coupled with the memory and configured to manage specific instances of memory allocation usable by a client by implementing a generalized double indirection memory relocation model of datatypes; a memory management interface coupled with the memory manager and configurable to enable a client to specify a request for a relocatable memory object; processing circuitry coupled with the memory and the memory management interface and operative to detect a low memory condition; wherein the memory manager is operative to relocate the memory object from the one physical location in memory to another physical location in memory in generate a sufficiently large contiguous free memory block for the client so as to overcome the low memory condition; wherein the memory manager allocates a relocatable memory object via the double indirection memory relocation model comprising relocatable data-types as a four-tuple (x, y, z, f), such that: x gives the size of a header-structure that describes a data-section; y gives an offset to a data-pointer element of the header-structure; z gives an offset from a base of the data-section that the datapointer must address; and f gives an entry point for moving the one of the relocatable simple-allocation, the head of the complex memory allocation, and the null simple memory allocation.
Claim 2
Dependent Claim 287 words
A memory management system usable with a client, comprising: memory defining a memory space including at least one memory buffer, the memory buffer defined by a set of attributes including base address and size, the memory including a fixed-simple memory allocation, having a link, and one of: a. a relocatable simple memory allocation coupled with the link, b. a head of a complex memory allocation comprising multiple simple memory allocations, or c. a null simple memory allocation; a memory manager coupled with the memory and configured to manage specific instances of memory allocation usable by a client by implementing a generalized double indirection memory relocation model of datatypes; a memory management interface coupled with the memory manager and configurable to enable a client to specify a request for a relocatable memory object; processing circuitry coupled with the memory and the memory management interface and operative to detect a low memory condition; wherein the memory manager is operative to relocate the memory object from the one physical location in memory to another physical location in memory in generate a sufficiently large contiguous free memory block for the client so as to overcome the low memory condition; wherein the memory manager allocates a relocatable memory object via the double indirection memory relocation model comprising relocatable data-types as a four-tuple (x, y, z, f), such that: x gives the size of a header-structure that describes a data-section; y gives an offset to a data-pointer element of the header-structure; z gives an offset from a base of the data-section that the datapointer must address; and f gives an entry point for moving the one of the relocatable simple-allocation, the head of the complex memory allocation, and the null simple memory allocation.
Claim 3
Dependent Claim 18 words
The memory management system of claim 1 wherein the link of the fixed-simple memory allocation comprises a pointer.
Claim 4
Dependent Claim 16 words
The memory management system of claim 1 wherein the memory manager allocates a non-relocatable memory object.
Claim 5
Dependent Claim 35 words
The memory management system of claim 1 wherein the memory manager is configured to allocate a memory object, and wherein the memory manager is operative to assign and allocate a fit for the memory object.
Claim 6
Dependent Claim 42 words
The memory management system of claim 1 wherein the memory manager is configured to allocate memory objects, and wherein the memory manager is operative to move memory objects to different locations in memory in order to coalesce a free block of memory.
Claim 7
Dependent Claim 18 words
The memory management system of claim 1 wherein the memory manager is configured to identify relocatable memory objects.
Claim 8
Dependent Claim 20 words
The memory management system of claim 1 wherein the memory manager is operative to move the identified relocatable memory objects.
Claim 9
Dependent Claim 24 words
The memory management system of claim 1 further comprising a print engine, the memory manager operative to relocate memory objects to receive print jobs.
Claim 10
Independent Claim 164 words
A method for relocating memory, comprising: providing a memory; allocating a memory object, either relocatable or non-relocatable, using a generalized double indirection memory relocation model of data-types; requesting an allocation of memory; assigning a fit for the memory object, followed by allocating a fit for the memory object; determining of the allocation from free memory can be satisfied; and if the allocation from free memory can be satisfied, then moving memory objects to different places in memory to get a sufficiently big free block of memory; wherein allocating the relocatable memory object via the double indirection memory relocation model comprising relocatable data-types as a four-tuple (x, y, z, f), such that: x gives a size of a header-structure that describes a data-structure; z gives an offset from a base of the data-section that the datapointer must address; and f gives an entry point for moving the one of the relocatable simple-allocation, a head of a complex memory allocation, and a null simple memory allocation.
Claim 11
Independent Claim 164 words
A method for relocating memory, comprising: providing a memory; allocating a memory object, either relocatable or non-relocatable, using a generalized double indirection memory relocation model of data-types; requesting an allocation of memory; assigning a fit for the memory object, followed by allocating a fit for the memory object; determining of the allocation from free memory can be satisfied; and if the allocation from free memory can be satisfied, then moving memory objects to different places in memory to get a sufficiently big free block of memory; wherein allocating the relocatable memory object via the double indirection memory relocation model comprising relocatable data-types as a four-tuple (x, y, z, f), such that: x gives a size of a header-structure that describes a data-structure; z gives an offset from a base of the data-section that the datapointer must address; and f gives an entry point for moving the one of the relocatable simple-allocation, a head of a complex memory allocation, and a null simple memory allocation.
Claim 12
Dependent Claim 14 words
The method of claim 9 wherein the memory manager allocates a relocatable memory object.
Claim 13
Dependent Claim 14 words
The method of claim 9 wherein the memory manager allocates a non-relocatable memory object.
Claim 14
Dependent Claim 24 words
The method of claim 9 wherein the step of moving memory objects to different places in memory comprises coalescing a free block of memory.
Claim 15
Dependent Claim 21 words
The method of claim 9 wherein the steps of assigning a fit and allocating a fit cooperate to generate a fit.
Claim 16
Dependent Claim 21 words
The method of claim 9 wherein the step of moving memory objects comprises relocating memory objects to receive a print job.
Claim 17
Independent Claim 173 words
A method for relocating memory for relocating memory, comprising: allocating a memory object using a generalized double indirection memory relocation model of data-types; requesting an allocation of memory from the memory; generating a fit for the memory object within the requested allocation of memory; determining if the allocation of memory can be satisfied from the existing free memory; and if the allocation from free memory can be satisfied, then moving memory objects to different places in memory to coalesce a free block of memory; wherein allocating a relocatable memory object via the double indirection memory relocation model comprising relocatable data-types as a four-tuple (x, y, z, f), such that: x gives a size of a header-structure that describes a data-section; y gives an offset to a data-pointer element of the header-structure; z gives an offset from a base of the data-section that a datapointer must address; and f gives an entry point for moving the one of the relocatable simple-allocation, a head of a complex memory allocation, and a null simple memory allocation.
Claim 18
Independent Claim 173 words
A method for relocating memory for relocating memory, comprising: allocating a memory object using a generalized double indirection memory relocation model of data-types; requesting an allocation of memory from the memory; generating a fit for the memory object within the requested allocation of memory; determining if the allocation of memory can be satisfied from the existing free memory; and if the allocation from free memory can be satisfied, then moving memory objects to different places in memory to coalesce a free block of memory; wherein allocating a relocatable memory object via the double indirection memory relocation model comprising relocatable data-types as a four-tuple (x, y, z, f), such that: x gives a size of a header-structure that describes a data-section; y gives an offset to a data-pointer element of the header-structure; z gives an offset from a base of the data-section that a datapointer must address; and f gives an entry point for moving the one of the relocatable simple-allocation, a head of a complex memory allocation, and a null simple memory allocation.
Claim 19
Dependent Claim 21 words
The method of claim 15 wherein the coalesced free block of memory is sufficient to meet the requested allocation of memory.
Claim 20
Dependent Claim 12 words
The method of claim 15 wherein the allocated memory object is relocatable.
Claim 21
Dependent Claim 12 words
The method of claim 15 wherein the allocated memory object is non-relocatable.
Claim 22
Dependent Claim 32 words
The method of claim 15 wherein the step of generating a fit for the memory object comprises assigning a fit for the memory object, then allocating a fit for the memory object.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-09-03 2005-03-05 2005-09-04 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-09-03 2009-03-05 2009-09-04 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-09-03 2013-03-05 2013-09-04 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag