Efficient cache management
First Claim
1. A method of managing memory of a computing device, the method comprising:
- providing a first memory in the computing device, wherein;
at least an unused portion of the first memory can be used as a non-cache memory; and
the first memory can be allocated as a cache memory or as a free memory for use by one or more computing device components, the cache memory being part of the unused portion of the first memory;
allocating a first segment of the first memory as a segment of the cache memory in response to a first cache miss; and
dynamically increasing the size of the cache memory within the unused portion of the first memory, by allocating additional segments of the first memory as additional segments of the cache memory in response to subsequent cache misses,wherein the cache memory appears as unused memory to the one or more computing device components, so that the dynamically increasing the size of the cache memory does not decrease an amount of the first memory available to the one or more computing device components.
2 Assignments
0 Petitions
Accused Products
Abstract
A method of managing memory of a computing device includes providing a first memory that can be allocated as cache memory or that can be used by a computing device component. A first memory segment can be allocated as cache memory in response to a cache miss. Cache size can be dynamically increased by allocating additional first memory segments as cache memory in response to subsequent cache misses. Cache memory size can be dynamically decreased by reallocating first memory cache segments for use by computing device components. The cache memory can be a cache for a second memory accessible to the computing device. The computing device can be a mobile device. The first memory can be an embedded memory and the second memory can comprise embedded, removable or external memory, or any combination thereof. The maximum size of the cache memory scales with the size of the first memory.
27 Citations
19 Claims
-
1. A method of managing memory of a computing device, the method comprising:
-
providing a first memory in the computing device, wherein; at least an unused portion of the first memory can be used as a non-cache memory; and the first memory can be allocated as a cache memory or as a free memory for use by one or more computing device components, the cache memory being part of the unused portion of the first memory; allocating a first segment of the first memory as a segment of the cache memory in response to a first cache miss; and dynamically increasing the size of the cache memory within the unused portion of the first memory, by allocating additional segments of the first memory as additional segments of the cache memory in response to subsequent cache misses, wherein the cache memory appears as unused memory to the one or more computing device components, so that the dynamically increasing the size of the cache memory does not decrease an amount of the first memory available to the one or more computing device components. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computing device, comprising:
-
a first memory that is dynamically allocable and reallocable as a cache memory within an unused portion of the first memory or for use by one or more computing device components as a non-cache memory; and a memory manager that; allocates a first segment of the first memory as a segment of the cache memory in response to a first cache miss; and dynamically increases the size of the cache memory by allocating additional segments of the first memory as additional segments of the cache memory in response to subsequent cache misses, wherein the cache memory appears as unused memory to the one or more computing device components, so that dynamically increasing the size of the cache memory by the memory manager does not decrease an amount of the first memory available to the one or more computing device components. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. One or more computer-readable storage media storing computer-executable instructions for causing a computing device to perform a method, the method comprising:
-
providing a first memory in the computing device, wherein at least a portion of the first memory can be used as a non-cache memory, and the first memory can be allocated as a cache memory within an unused portion of the first memory or for use by one or more computing device components; receiving a first second memory read or write request from the one or more computing device components; allocating a first segment of the first memory as a segment of the cache memory in response to a first cache miss resulting from the first second memory read or write request; receiving subsequent second memory read or write requests from the one or more computing device components; dynamically increasing the size of the cache memory by allocating additional segments of the first memory as additional segments of the cache memory in response to subsequent cache misses resulting from the subsequent second memory read or write requests; receiving a memory allocation request from one of the one or more computing device components; and allocating a portion of the first memory previously allocated as segments of the cache memory for use by the one of the one or more computing device components, wherein the cache memory appears as unused memory to the one or more computing device components, so that the dynamically increasing the size of the cache memory does not decrease an amount of the first memory available to the one or more computing device components.
-
Specification