Claims Analysis
Total Claims: 21
Claim 1
Independent Claim
117 words
A method for dynamic memory allocation in a computer system, comprising: receiving a first request for dynamic allocation of a first memory block including a first number of bytes; allocating said first memory block at a first address succeeding a second address corresponding to a last byte of a previously allocated memory block having said first number of bytes; allocating said first memory block at a third address if said previously allocated memory block has a second number of bytes not equal to said first number of bytes; and reserving a second memory block beginning at said third address and including a third number of bytes equal to a predetermined multiple of said first number of bytes.
Claim 2
Independent Claim
117 words
A method for dynamic memory allocation in a computer system, comprising: receiving a first request for dynamic allocation of a first memory block including a first number of bytes; allocating said first memory block at a first address succeeding a second address corresponding to a last byte of a previously allocated memory block having said first number of bytes; allocating said first memory block at a third address if said previously allocated memory block has a second number of bytes not equal to said first number of bytes; and reserving a second memory block beginning at said third address and including a third number of bytes equal to a predetermined multiple of said first number of bytes.
Claim 3
Dependent Claim
30 words
The method as recited in claim 1 wherein said reserving comprises storing said third address, said first number of bytes, and said third number of bytes in a reserve list.
Claim 4
Dependent Claim
22 words
The method as recited in claim 2 further comprising receiving a second request for a dynamic allocation of a third memory block.
Claim 5
Dependent Claim
42 words
The method as recited in claim 3 further comprising allocating said third memory block at a fourth address succeeding a fifth address corresponding to a last byte of said first block if said third memory block has said first number of bytes.
Claim 6
Dependent Claim
43 words
The method as recited in claim 3 further comprising allocating said third memory block at a sixth address outside of said second memory block if said third memory block has a fourth number of bytes not equal to said first number of bytes.
Claim 7
Dependent Claim
24 words
The method as recited in claim 2 further comprising deallocating said first memory block upon receiving a deallocation request for said first memory block.
Claim 8
Dependent Claim
24 words
The method as recited in claim 6 further comprising releasing a reservation for said second memory block upon said deallocating said first memory block.
Claim 9
Dependent Claim
34 words
The method as recited in claim 7 further comprising deleting said third address, said first number of bytes, and said third number of bytes from said reserve list upon deallocating said first memory block.
Claim 10
Dependent Claim
28 words
The method as recited in claim 1 further comprising maintaining an allocation size cache indicating which addresses were previously allocated for memory blocks having different numbers of bytes.
Claim 11
Dependent Claim
35 words
The method as recited in claim 1 further comprising comparing said first number of bytes to said different numbers of bytes to determine if said previously allocated memory block has said first number of bytes.
Claim 12
Dependent Claim
118 words
A computer storage medium configured to store a dynamic memory management routine which, in response to a first request for a dynamic allocation of a first memory block having a first number of bytes: allocates said first memory block at a first address contiguous to a second memory block having said first number of bytes; allocates said first memory block at a second address discontiguous to said second memory block if said second memory block has a second number of bytes not equal to said first number of bytes; and reserves a third memory block beginning at said second address and having a third number of bytes equal to a predetermined multiple of said first number of bytes.
Claim 13
Dependent Claim
118 words
A computer storage medium configured to store a dynamic memory management routine which, in response to a first request for a dynamic allocation of a first memory block having a first number of bytes: allocates said first memory block at a first address contiguous to a second memory block having said first number of bytes; allocates said first memory block at a second address discontiguous to said second memory block if said second memory block has a second number of bytes not equal to said first number of bytes; and reserves a third memory block beginning at said second address and having a third number of bytes equal to a predetermined multiple of said first number of bytes.
Claim 14
Dependent Claim
35 words
The computer storage medium as recited in claim 11, wherein said dynamic memory management routine reserves said third memory block by storing said second address and said third number of bytes in a reserve list.
Claim 15
Dependent Claim
26 words
The computer storage medium as recited in claim 12, wherein said dynamic memory management routine further stores said first number of bytes in said reserve list.
Claim 16
Dependent Claim
30 words
The computer storage medium as recited in claim 11, wherein said dynamic memory management routine records a third address corresponding to said second memory block in an allocation size cache.
Claim 17
Dependent Claim
24 words
The computer storage medium as recited in claim 14, wherein said dynamic memory management routine records said first address in said allocation size cache.
Claim 18
Dependent Claim
134 words
A computer storage medium configured to store a dynamic memory management routine which, in response to a first request for a dynamic allocation of a first memory block having a first number of bytes: allocates said first memory block at a first address contiguous to a second memory block having said first number of bytes; allocates said first memory block at a second address discontiguous to said second memory block if said second memory block has a second number of bytes not equal to said first number of bytes; records a third address corresponding to said second memory block in an allocation size cache; records said first address in said allocation size cache; and overwrites said third address in said allocation size cache if said second memory block has said first number of bytes.
Claim 19
Dependent Claim
134 words
A computer storage medium configured to store a dynamic memory management routine which, in response to a first request for a dynamic allocation of a first memory block having a first number of bytes: allocates said first memory block at a first address contiguous to a second memory block having said first number of bytes; allocates said first memory block at a second address discontiguous to said second memory block if said second memory block has a second number of bytes not equal to said first number of bytes; records a third address corresponding to said second memory block in an allocation size cache; records said first address in said allocation size cache; and overwrites said third address in said allocation size cache if said second memory block has said first number of bytes.
Claim 20
Dependent Claim
41 words
The computer storage medium as recited in claim 15, wherein said dynamic memory management routine stores said first address in addition to said third address within said allocation size cache if said second memory block has said second number of bytes.
Claim 21
Dependent Claim
52 words
The computer storage medium as recited in claim 15, wherein said dynamic memory management routine further records a number of bytes corresponding to each address in said allocation size cache, whereby said dynamic memory management routine determines if said first memory block and said second memory block comprise equal numbers of bytes.