Patent US1366612A successfully refreshed from Google Patents.
Patent US5247634A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5247634A Expired / Lapsed US ⏱️ 0.0 years remaining

Method of managing memory allocation by association of memory blocks with a tree structure

Assignee: HP Inc
•
Filing: 1990-03-20
•
Granted: 1993-09-21
•
Expires: 2010-03-20
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A memory resource is managed by allocation of memory blocks within a larger free memory block to reduce fragmentation and provide efficient methods for consolidation of previously allocated memory blocks into larger free memory blocks.

Inventors

  • 👤 Robert C. Cline
  • 👤 Daniel Garfinkel

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 21:37
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/0207; G06F12/0223; G06F12/023; Y; Y10; Y10S; Y10S707/00; Y10S707/99951; Y10S707/99956

Claims Analysis

Total Claims: 25
Claim 1
Independent Claim 112 words
A method of associating free and allocated memory blocks within an at least three dimensional computer memory, the method comprising: allocating a first memory block of said computer memory and partitioning the remaining portion of said computer memory into a plurality of free memory blocks; and associating said first memory block and said plurality of free memory blocks with a tree structure where a root element represents said first memory block and leaf element descendants of said root element represent said plurality of free memory blocks, and where said root element is marked as representing an allocated memory block and each leaf element descendant is marked as representing a free memory block.
Claim 2
Independent Claim 112 words
A method of associating free and allocated memory blocks within an at least three dimensional computer memory, the method comprising: allocating a first memory block of said computer memory and partitioning the remaining portion of said computer memory into a plurality of free memory blocks; and associating said first memory block and said plurality of free memory blocks with a tree structure where a root element represents said first memory block and leaf element descendants of said root element represent said plurality of free memory blocks, and where said root element is marked as representing an allocated memory block and each leaf element descendant is marked as representing a free memory block.
Claim 3
Dependent Claim 145 words
The method according to claim 1 further comprising the steps: allocating a second memory block from a given memory block selected from said plurality of free memory blocks and represented by a given leaf element of said tree structure, and partitioning the remaining portion of said given memory block into a second plurality of free memory blocks; associating said second memory block and said second plurality of free memory blocks with a subtree structure wherein said second memory block is represented by a root element of said subtree structure marked as representing an allocated memory block, and wherein said second plurality of free memory blocks are represented by leaf element descendants of said subtree root element, each of said last mentioned leaf elements being marked as representing a free memory block; and substituting said subtree structure for said given leaf element in said tree structure.
Claim 4
Dependent Claim 129 words
The method according to claim 2 further comprising the steps: deallocating an identified, allocated memory block of said computer memory by locating a corresponding element of said tree structure and marking said corresponding tree structure element as representing a free memory block; inspecting descendants of said located corresponding tree structure element to determine whether all descendants of said located corresponding tree structure element are leaf elements; and, if all descendants of said located corresponding tree structure element are leaf elements, removing from said tree structure a subtree structure having said located corresponding tree structure element as its root element and replacing said last mentioned subtree structure with a first new leaf element marked as representing a free memory block corresponding to memory represented by said last mentioned subtree structure.
Claim 5
Dependent Claim 88 words
The method according to claim 3 further comprising the steps: inspecting, within said tree structure, siblings of said first new leaf element to determine whether all such siblings are leaf elements; and, if all such siblings are leaf elements, removing from said tree structure a subtree structure having as its root element the parent of said first new leaf element and of said siblings and replacing therefor a second new leaf element marked as representing available memory corresponding to the memory represented by said last mentioned subtree structure.
Claim 6
Dependent Claim 50 words
The method according to claim 1 wherein said step of allocating a first memory block of said computer memory and partitioning the remaining portion of said computer memory comprises the step of selectively partitioning such remaining portion to maximize selected dimensions of ones of said plurality of free memory blocks.
Claim 7
Dependent Claim 31 words
The method according to claim 5 wherein said remaining portions are partitioned to maximize selected dimensions of said plurality of free memory blocks relative to the dimensions of said computer memory.
Claim 8
Dependent Claim 196 words
The method according to claim 6 wherein said computer memory is memory having dimensions Xs, Ys and Zs, and said step of selectively partitioning comprises the steps: receiving an allocation request for a block of memory having dimensions Xa, Ya and Za, each of the dimensions Xa, Ya, and Za being less than or equal to the corresponding one of the dimensions Xs, Ys, and Zs; partitioning said computer memory into three contiguous major blocks each having a first two of its X, Y and Z dimensions equal to corresponding dimensions of said computer memory, a first major block having a remaining one of its X, Y and Z dimensions equal to the corresponding one of dimensions Xa, Ya and Za; partitioning the first major block into five minor blocks, the first minor block having X, Y and Z dimensions equal to Xa, Ya and Za, respectively, the second and third minor blocks having one of said first two dimensions equal to the corresponding one of dimensions Xs, Ys and Zs, the fourth and fifth minor blocks occupying the remainder of said computer memory; and allocating the first minor block in response to said allocation request.
Claim 9
Dependent Claim 21 words
The method according to claim 1 wherein at least one of said plurality of memory blocks is a null memory block.
Claim 10
Independent Claim 133 words
A method of associating free and allocated memory blocks within an at least three dimensional computer memory, the method comprising: allocating a first memory block of said computer memory and partitioning the remaining portion of said computer memory into a plurality of free memory blocks; and associating said first memory block and said plurality of free memory blocks with a tree structure wherein said computer memory is represented by a root element of said tree structure, and wherein said allocated memory blocks and said plurality of free memory blocks are represented by leaf element descendants of said root element, the leaf element descendant corresponding to said allocated memory block being marked as representing allocated memory, the leaf element descendants corresponding to said plurality of free memory blocks being marked as representing free memory.
Claim 11
Independent Claim 133 words
A method of associating free and allocated memory blocks within an at least three dimensional computer memory, the method comprising: allocating a first memory block of said computer memory and partitioning the remaining portion of said computer memory into a plurality of free memory blocks; and associating said first memory block and said plurality of free memory blocks with a tree structure wherein said computer memory is represented by a root element of said tree structure, and wherein said allocated memory blocks and said plurality of free memory blocks are represented by leaf element descendants of said root element, the leaf element descendant corresponding to said allocated memory block being marked as representing allocated memory, the leaf element descendants corresponding to said plurality of free memory blocks being marked as representing free memory.
Claim 12
Dependent Claim 121 words
The method according to claim 9 further comprising the steps: allocating a second memory block from a given memory block selected from said plurality of free memory blocks and represented by a given leaf element of said tree structure marked as representing free memory, and partitioning the remaining portion of said given memory block into a second plurality of free memory blocks; associating said second memory block and said second plurality of free memory blocks with corresponding tree structure leaf elements attached as descendant to said given leaf element, the leaf element representing said second memory block being marked as representing an allocated memory block, the leaf elements representing said second plurality of memory blocks being marked as representing free memory.
Claim 13
Dependent Claim 92 words
The method according to claim 10 further comprising the steps: deallocating an identified, allocated memory block of said computer memory by locating a corresponding tree structure leaf element and marking said corresponding tree structure element as representing free memory; inspecting, within said tree structure, siblings of said leaf element representing said identified memory block to determine whether all such siblings represent free memory space; and, if all such siblings represent free memory space, removing all such siblings from said tree structure and marking the parent tree structure element as representing free memory.
Claim 14
Dependent Claim 50 words
The method according to claim 9 wherein said step of allocating a first memory block of said computer memory and partitioning the remaining portion of said computer memory comprises the step of selectively partitioning such remaining portion to maximize selected dimensions of ones of said plurality of free memory blocks.
Claim 15
Dependent Claim 34 words
The method according to claim 12 wherein said remaining portions are partitioned to maximize selected dimensions of said plurality of free memory blocks relative to dimensions Xs, Ys and Zs of said computer memory.
Claim 16
Dependent Claim 203 words
The method according to claim 13 wherein said computer memory is a memory having dimensions Xs, Ys and Zs, and said step of selectively partitioning comprises the steps: receiving an allocation request for a block of memory having dimensions Xa, Ya and Za, each of the dimensions Xa, Ya, and Za being less than or equal to the corresponding one of the dimensions Xs, Ys, and Zs; partitioning said computer memory into three contiguous major blocks each having a first two of its X, Y and Z dimensions equal to corresponding dimensions of said computer memory, a first major block having a remaining one of its X, Y and Z dimensions equal to the corresponding one of dimensions Xa, Ya and Za; partitioning the first major block into five minor blocks, the first minor block having X, Y and Z dimensions equal to Xa, Ya and Za, respectively, the second and third minor blocks having one of said first two dimensions equal to the corresponding one of dimensions Xs, Ys and Zs, the fourth and fifth minor blocks occupying the remainder of said computer memory of dimensions Xs, Ys and Zs; and allocating the first minor block in response to said allocation request.
Claim 17
Dependent Claim 21 words
The method according to claim 9 wherein at least one of said plurality of memory blocks is a null memory block.
Claim 18
Independent Claim 197 words
A method of allocation within a three dimensional block of free memory space having dimensions Xs, Ys and Zs, the method comprising: receiving an allocation request for a block of memory having dimensions Xa, Ya and Za, each of the dimensions Xa, Ya, and Za being less than or equal to the corresponding one of the dimensions Xs, Ys, and Zs; partitioning said computer memory into three contiguous major blocks each having a first two of its X, Y and Z dimensions equal to corresponding dimensions of said computer memory, a first major block having a remaining one of its X, Y and Z dimensions equal to the corresponding one of dimensions Xa, Ya and Za; partitioning the first major block into five minor blocks, the first minor block having X, Y and Z dimensions equal to Xa, Ya and Za, respectively, the second and third minor blocks having one of said first two dimensions equal to the corresponding one of dimensions Xs, Ys and Zs, the fourth and fifth minor blocks occupying the remainder of said computer memory of dimensions Xs, Ys and Zs; and allocating the first minor block in response to said allocation request.
Claim 19
Independent Claim 197 words
A method of allocation within a three dimensional block of free memory space having dimensions Xs, Ys and Zs, the method comprising: receiving an allocation request for a block of memory having dimensions Xa, Ya and Za, each of the dimensions Xa, Ya, and Za being less than or equal to the corresponding one of the dimensions Xs, Ys, and Zs; partitioning said computer memory into three contiguous major blocks each having a first two of its X, Y and Z dimensions equal to corresponding dimensions of said computer memory, a first major block having a remaining one of its X, Y and Z dimensions equal to the corresponding one of dimensions Xa, Ya and Za; partitioning the first major block into five minor blocks, the first minor block having X, Y and Z dimensions equal to Xa, Ya and Za, respectively, the second and third minor blocks having one of said first two dimensions equal to the corresponding one of dimensions Xs, Ys and Zs, the fourth and fifth minor blocks occupying the remainder of said computer memory of dimensions Xs, Ys and Zs; and allocating the first minor block in response to said allocation request.
Claim 20
Dependent Claim 64 words
The method according to claim 16 further comprising the step of associating said blocks, said associating step comprising representing the first minor block as a root element of a tree structure and representing each of the second and third major blocks and each of the second, third, fourth and fifth minor blocks with leaf elements, said leaf elements being descendants of said root element.
Claim 21
Dependent Claim 25 words
The method according to claim 17 wherein said leaf elements are siblings within said tree structure, each being a direct descendent of said root element.
Claim 22
Dependent Claim 51 words
The method according to claim 16 further comprising the step of associating said blocks, said associating step comprising representing said free memory space as a root element of a tree structure and attaching leaf element descendants thereto each representing one of said second and third major blocks and said minor blocks.
Claim 23
Dependent Claim 25 words
The method according to claim 19 wherein said leaf elements are siblings within said tree structure, each being a direct descendant of said root element.
Claim 24
Dependent Claim 35 words
The method according to claim 20 further comprising the step of marking the leaf element corresponding to said allocated memory block as representing allocated memory, and marking the remaining leaf elements as representing free memory.
Claim 25
Dependent Claim 20 words
The method according to claim 16 wherein at least one of said major and minor blocks is a null block.

References Cited (Backward Citations)

US4468728A Cited
US4511964A Cited
US4855903A Cited
US4725742A Cited
US4845678A Cited
US5025367A Cited
US4992962A Cited
US5119317A Cited
US5109336A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1996-09-20 1997-03-22 1997-09-21 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2000-09-20 2001-03-22 2001-09-21 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2004-09-20 2005-03-22 2005-09-21 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag