Patent ID: 6286088
Filing Date: 2001-09-04
Classification: G06F

Abstract:
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, orc. 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.