Caching mechanism for a virtual heap
First Claim
1. A method for managing a virtual heap in a virtual machine executing within a device, the method comprising:
- executing a process within the virtual machine;
providing the virtual heap for the process, wherein the virtual heap comprises a store heap comprising a first plurality of cache lines for storing objects for the process, and wherein the virtual heap further comprises an in-memory heap comprising a second plurality of cache lines for caching objects for access by the process during execution, and wherein the store heap and the in-memory heap are comprised in one memory address space, and wherein a cache line is the smallest addressable unit of memory within the memory address space comprising the store heap and the in-memory heap;
caching objects for the process executing within the virtual machine in the in-memory heap;
the process modifying a first one of the objects for the process in a first cache line in the in-memory heap; and
flushing the first cache line from the in-memory heap to the store heap subsequent to said modifying the first one of the objects.
0 Assignments
0 Petitions
Accused Products
Abstract
A caching mechanism for a virtual persistent heap. A feature of a virtual persistent heap is the method used to cache portions of the virtual persistent heap into the physical heap. The caching mechanism may be effective with small consumer and appliance devices that typically have a small amount of memory and that may be using flash devices as persistent storage. In the caching mechanism, the virtual persistent heap may be divided into cache lines. A cache line is the smallest amount of virtual persistent heap space that can be loaded or flushed at one time. Caching in and caching out operations are used to load cache lines into the heap or to flush dirty cache lines into the store. Different cache line sizes may be used for different regions of the heap. Translation between a virtual persistent heap address and the heap may be simplified by the caching mechanism.
-
Citations
28 Claims
-
1. A method for managing a virtual heap in a virtual machine executing within a device, the method comprising:
-
executing a process within the virtual machine;
providing the virtual heap for the process, wherein the virtual heap comprises a store heap comprising a first plurality of cache lines for storing objects for the process, and wherein the virtual heap further comprises an in-memory heap comprising a second plurality of cache lines for caching objects for access by the process during execution, and wherein the store heap and the in-memory heap are comprised in one memory address space, and wherein a cache line is the smallest addressable unit of memory within the memory address space comprising the store heap and the in-memory heap;
caching objects for the process executing within the virtual machine in the in-memory heap;
the process modifying a first one of the objects for the process in a first cache line in the in-memory heap; and
flushing the first cache line from the in-memory heap to the store heap subsequent to said modifying the first one of the objects. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system comprising:
-
a device configured to execute a virtual machine, wherein the virtual machine is configured to execute a process;
a first memory coupled to the device, wherein the first memory is configured to store a store heap for the process, and wherein the store heap is comprised within a virtual heap for the process, and wherein the store heap comprises a first plurality of cache lines for storing objects for the process;
a second memory coupled to the device, wherein the second memory is configured to store an in-memory heap for the process, and wherein the in-memory heap is comprised within the virtual heap, and wherein the in-memory heap comprises a second plurality of cache lines for caching objects for access by the process during execution;
wherein the store heap and the in-memory heap are comprised in one memory address space, and wherein a cache line is the smallest addressable unit of memory within the memory address space comprising the store heap and the in-memory heap;
wherein the device is further configured to execute a virtual machine virtual memory manager, wherein the virtual machine virtual memory manager is configured to;
cache objects for the process executing within the virtual machine in the in-memory heap;
wherein the process is configured to;
modify a first one of the objects for the process in a first cache line in the in-memory heap; and
wherein the virtual machine virtual memory manager is further configured to;
flush the first cache line from the in-memory heap to the store heap subsequent to said modifying the first one of the objects. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A carrier medium comprising programming instructions executable to manage a virtual heap on a virtual machine executing within a device, wherein the program instructions are executable to implement:
-
providing the virtual heap for a process executing within the virtual machine, wherein the virtual heap comprises a store heap comprising a first plurality of cache lines for storing objects for the process, and wherein the virtual heap further comprises an in-memory heap comprising a second plurality of cache lines for caching objects for access by the process during execution, and wherein the store heap and the in-memory heap are comprised in one memory address space, and wherein a cache line is the smallest addressable unit of memory within the memory address space comprising the store heap and the in-memory heap;
caching objects for the process executing within the virtual machine in the in-memory heap; and
flushing a first cache line from the in-memory heap to the store heap subsequent to the process modifying a first one of the objects for the process in the first cache line in the in-memory heap. - View Dependent Claims (23, 24, 25, 26, 27, 28)
-
Specification