Free memory manager scheme and cache
AssigneeRedback Networks Inc.
InventorsRanjit J. Rozario, Ravikrishna Cherukuri
Life of this patent
Estimating the term…
Abstract
Free memory can be managed by creating a free list having entries with address of free memory location. A portion of this free list can then be cached in a cache that includes an upper threshold and a lower threshold. Additionally, a plurality of free lists are created for a plurality of memory banks in a plurality of memory channels. A free list is created for each memory bank in each memory channel. Entries from these free lists are written to a global cache. The entries written to the global cache are distributed between the memory channels and memory banks.
Claims28
A method of managing free memory, said method comprising:
- creating a free list having entries with addresses of free memory locations;
- and
- caching a portion of said free list in a cache having entries with addresses of free memory locations, wherein said cache includes a first threshold and a second threshold, wherein said entries in said cache include valid entries and modified entries, and wherein said caching step further comprises:
- reading a block of entries from said free list to said cache when the number of valid entries in said cache reaches said first threshold:
- and
- writing a block of entries from said cache to said free list when the number of modified entries in said cache reaches said second threshold.
A method of managing free memory in a memory system having a plurality of memory banks in a plurality of memory channels, said method comprising:
- creating a plurality of free lists having entries with addresses of free memory locations, wherein a free list is created for each memory bank in each memory channel;
- and
- writing entries from said free lists to a global cache, wherein said entries are written to said global cache are distributed between memory channels and memory banks,further comprising:
- writing entries from a first free list to said global cache, wherein said first free list is associated with a first memory bank in a first memory channel;
- writing entries from a second free list to said global cache, wherein said second free lint is associated with a second memory bank in a second memory channel;
- writing entries from a third free lint to said global cache, wherein said third free list is associated with a third memory bank in said first memory channel;
- and
- writing entries from a fourth free list to said global cache, wherein said fourth free list is associated with a fourth memory bank in said second memory channel.
A method of managing free memory, said method comprising:
- creating a free list having entries with addresses of free memory locations;
- caching a portion of said free list in a cache having an upper threshold and a lower threshold;
- reading a block of entries from said free to said cache when the number of valid entries in said cache reaches said lower threshold;
- and
- writing a block of entries from said cache to said free list when the number of modified entries in said cache reaches said upper threshold.
A method of managing free memory, said method comprising:
- creating a plurality of free lists having entries with addresses of free memory locations, wherein said free lists are associated with a plurality of memory banks in a plurality of memory channels;
- writing entries from said free lists to a plurality of caches;
- and
- writing entries from said caches to a global cache, wherein said entries written to said global cache are distributed between said memory channels and said memory banks, further comprising:
- writing entries from a first free list to said global cache, wherein said first free list is associated with a first memory bank in a first memory channel;
- and
- writing entries from a second free list to said global cache, wherein said second free list is associated with a second memory bank in a second memory channel.
A system for managing free memory comprising:
- a free list having entries with addresses of free memory locations;
- and
- a cache configured to receive a portion of said free list, wherein said cache includes a first threshold and a second threshold, wherein said cache includes valid entries and modified entries, wherein said cache is configured to read a block of entries from said free list to said cache when the number of valid entries in said cache reaches said first threshold, and wherein said cache is configured to write a block of entries said free list when the number of modified entries in said cache reaches said second threshold.
Dependencies are inferred from the claim text.