Easily coalesced, sub-allocating, hierarchical, multi-bit bitmap-based memory manager
AssigneeMicrosoft Corporation
InventorsAlessandro Forin, Johannes Helander
Life of this patent
Estimating the term…
Loading patent…
AssigneeMicrosoft Corporation
InventorsAlessandro Forin, Johannes Helander
Estimating the term…
A hierarchical bitmap-based memory manager maintains a hierarchical bitmap having an entry for each memory block in a memory heap. Each bitmap entry contains a multi-bit value that represents an allocation state of the corresponding memory block. The memory manager manages allocation, deallocation, and reallocation of the memory blocks, and tracks the changes in allocation state via the hierarchical bitmap. Using a-two-bit value, the bitmap can represent at most four different allocation states of the corresponding memory block, including a “free” state, a “sub-allocated” state in which the corresponding memory block is itself an allocated set of smaller memory blocks, a “continue” state in which the corresponding memory block is allocated and part of, but not last in, a larger allocation of plural blocks, and a “last” state in which the corresponding memory block is allocated and last in an allocation of one or more memory blocks.
A core memory management system for multiple core memory blocks, core memory being directly addressable by a central processing unit (CPU) of a computer, the core memory management system comprising:
A core memory management system for multiple core memory blocks, core memory being directly addressable by a central processing unit (CPU) of a computer, the core memory management system comprising:
A core memory management system for multiple core memory blocks, core memory being directly addressable by a central processing unit (CPU) of a computer, the core memory management system comprising:
A computer-readable medium storing an operating system comprising a core memory management system for multiple core memory blocks, core memory being directly addressable by a central processing unit (CPU) of a computer, the core memory management system comprising:
A computer-readable medium storing an application program comprising a core memory management system for multiple core memory blocks, core memory being directly addressable by a central processing unit (CPU) of a computer, the core memory management system comprising:
A hierarchical bitmap memory manager for managing multiple core memory blocks, core memory being directly addressable by a central processing unit (CPU) of a computer, the hierarchical bitmap memory manager is configured to maintain a hierarchical bitmap with entries for directly corresponding ones of the core memory blocks, the hierarchical bitmap memory manager being configured to allocate different size core memory blocks by sub-allocating a single core memory block of one size into multiple smaller size blocks, the memory manager tracking the smaller size blocks with the hierarchical bitmap by having one entry designate the sub-allocated core memory block and additional entries for each of the smaller size blocks.
A computer-readable medium storing an operating system comprising a hierarchical bitmap memory manager for managing multiple core memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, the hierarchical bitmap memory manager is configured to maintain a hierarchical bitmap with entries for directly corresponding ones of the core memory blocks, the hierarchical bitmap memory manager being configured to allocate different size core memory blocks by sub-allocating a single core memory block of one size into multiple smaller size blocks, the memory manager tracking the smaller size blocks with the hierarchical bitmap by having one entry designate the sub-allocated core memory block and additional entries for each of the smaller size blocks.
An operating system embodied on a computer-readable medium, the operating system comprising a hierarchical bitmap memory manager for managing plural core memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, the memory manager being configured to allocate contiguous memory blocks for an allocation and to maintain a hierarchical bitmap having entries for directly corresponding ones of the core memory blocks, individual bitmap entries containing a multi-bit value that represents an allocation state of the corresponding core memory block.
An operating system embodied on a computer-readable medium, the operating system comprising a hierarchical bitmap memory manager configured to manage plural core memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, the memory manager maintaining a hierarchical bitmap having entries for directly corresponding ones of the core memory blocks, individual bitmap entries containing a multi-bit value that represents an allocation state of the corresponding core memory block;
An operating system embodied on a computer-readable medium, the operating system comprising a hierarchical bitmap memory manager being configured to manage plural core memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, the memory manager maintaining a hierarchical bitmap having entries for directly corresponding ones of the core memory blocks, individual bitmap entries containing a multi-bit value that represents an allocation state of the corresponding core memory block;
A hierarchical bitmap data structure embodied on a computer-readable medium for use with a memory manager that manages core memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, the manager being configured to allocate contiguous memory blocks for an allocation, the hierarchical bitmap data structure comprising a plurality of entries for directly corresponding ones of the core memory blocks, individual bitmap entries containing a multi-bit value that represents an allocation state of the corresponding core memory block.
A hierarchical bitmap data structure embodied on a computer-readable medium for use with a memory manager that manages core memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, the manager being configured to allocate contiguous memory blocks for an allocation, the hierarchical bitmap data structure comprising multiple partial bitmaps that is describe allocation states of directly corresponding sets of plural core memory blocks.
A method for managing core memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, comprising the following steps:
In a system for managing core memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, using a hierarchical bitmap, the hierarchical bitmap having entries for directly corresponding core memory blocks, individual bitmap entries containing a multi-bit value that represents an allocation state of the corresponding core memory block, a method for allocating free core memory blocks comprising the following steps:
In a system for managing core memory blocks in a memory using a hierarchical bitmap, the hierarchical bitmap having entries for directly corresponding core memory blocks, individual bitmap entries containing a multi-bit value that represents an allocation state of the corresponding core memory block, a method for deallocating a core memory block comprising the following steps:
In a system for managing core memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, using a hierarchical bitmap, the hierarchical bitmap having entries for directly corresponding core memory blocks, individual bitmap entries containing a multi-bit value that represents an allocation state of the corresponding core memory block, a method for reallocating to enlarge a previous allocation of contiguous core memory blocks, comprising the following steps:
In a system for managing core memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, using a hierarchical bitmap, the hierarchical bitmap having entries for directly corresponding core memory blocks, individual bitmap entries containing a multi-bit value that represents an allocation state of the corresponding core memory block, a method for reallocating to reduce a previous allocation of contiguous core memory blocks, comprising the following steps:
In a system for managing core memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, using a hierarchical bitmap, the hierarchical bitmap having entries for directly corresponding core memory blocks, the memory blocks being contiguous for an allocation requiring a plurality of memory blocks, individual bitmap entries containing a multi-bit value that represents an allocation state of the corresponding core memory block, a method comprising the following steps:
A memory management system for multiple memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, the memory management system comprising:
A memory management system for multiple memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, the memory management system comprising:
A memory management system for multiple memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, the memory management system comprising:
A computer-readable medium storing an operating system comprising a memory management system for multiple memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, the memory management system comprising:
A computer-readable medium storing an operating system comprising a memory management system for multiple memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, the memory management system comprising:
A computer-readable medium storing an operating system comprising a memory management system for multiple memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, the memory management system comprising:
A computer-readable medium storing an application program comprising a memory management system for multiple memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, the memory management system comprising:
A computer-readable medium storing an application program comprising a memory management system for multiple memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, the memory management system comprising:
A computer-readable medium storing an application program comprising a memory management system for multiple memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, the memory management system comprising:
A method for managing memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, the method comprising:
In a system for managing memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, using a hierarchical bitmap, the hierarchical bitmap having entries for directly corresponding memory blocks, each block having a starting location, individual bitmap entries containing a multi-bit value that represents an allocation state of the corresponding memory block, a method for deallocating a memory block comprising:
A memory management system for multiple memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, the memory management system comprising:
In a system for managing memory blocks of a core memory, the core memory being directly addressable by a central processing unit (CPU) of a computer, using a hierarchical bitmap, the hierarchical bitmap having entries for directly corresponding memory blocks, individual bitmap entries containing a multi-bit value that represents an allocation state of the corresponding memory block, a method for reallocating to enlarge a previous allocation of contiguous memory blocks, comprising:
Dependencies are inferred from the claim text.