Methods and apparatus for multiple memory maps and multiple page caches in tiered memory
First Claim
Patent Images
1. A method, comprising:
- for an application host with one or more DRAM storage devices and one or more storage class memory (SCM) storage devices configured to communicate with one or more storage arrays via network;
wherein the one or more storage array comprises at least one SCM storage device,creating a virtual memory address space including dynamically allocated memory, memory mapped files, and disk backed memory, wherein the virtual memory address space is backed by the one or more DRAM and SCM physical storage devices;
allocating a plurality of user regions in a block device of the one or more SCM storage devices or the storage array, wherein the plurality of user regions is defined in metadata comprising one or more of user region name, location, size, and/or state information;
accessing a first memory tier constructed by memory mapping a first number of user regions into the virtual address space; and
accessing a second memory tier constructed by memory mapping a second number of user regions into the virtual address space,wherein page caches are mapped to the first number of user regions and the second number of user regions, wherein at least one of the page caches is shared with multiple ones of the user regions in the first memory tier and the user regions in the second memory tier; and
wherein each memory mapped user region in the tiered memory is fronted by a DRAM page cache to which an application issues loads and stores, and data are moved between the tiered memory and DRAM page caches on an on-demand page basis.
3 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus for computer systems having first and second memory tier having regions, physical memory having page caches that are shareable with multiple ones of the regions in the first memory tier and the regions in the second memory tier, and virtual memory having mmaps of ones of the regions in the first memory tier and ones of the regions in the second memory tier, wherein the mmaps are associated with multiple ones of the pages caches.
-
Citations
20 Claims
-
1. A method, comprising:
-
for an application host with one or more DRAM storage devices and one or more storage class memory (SCM) storage devices configured to communicate with one or more storage arrays via network;
wherein the one or more storage array comprises at least one SCM storage device,creating a virtual memory address space including dynamically allocated memory, memory mapped files, and disk backed memory, wherein the virtual memory address space is backed by the one or more DRAM and SCM physical storage devices; allocating a plurality of user regions in a block device of the one or more SCM storage devices or the storage array, wherein the plurality of user regions is defined in metadata comprising one or more of user region name, location, size, and/or state information; accessing a first memory tier constructed by memory mapping a first number of user regions into the virtual address space; and accessing a second memory tier constructed by memory mapping a second number of user regions into the virtual address space, wherein page caches are mapped to the first number of user regions and the second number of user regions, wherein at least one of the page caches is shared with multiple ones of the user regions in the first memory tier and the user regions in the second memory tier; and
wherein each memory mapped user region in the tiered memory is fronted by a DRAM page cache to which an application issues loads and stores, and data are moved between the tiered memory and DRAM page caches on an on-demand page basis. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer system, comprising:
-
an application host, with one or more DRAM storage devices and one or more storage class memory (SCM) storage devices, is configured to communicate with one or more storage arrays via network;
wherein the one or more storage array comprises at least one SCM storage device;a virtual memory address space including dynamically allocated memory, memory mapped files, and disk backed memory, wherein the virtual memory address space is backed by the one or more DRAM and SCM physical storage devices; a plurality of user regions allocated in a block device of the one or more SCM storage devices or the storage array, wherein the plurality of user regions is defined in metadata comprising one or more of user region name, location, size, and/or state information; a first memory tier is constructed by memory mapping a first number of user regions into the virtual address space; and a second memory tier is constructed by memory mapping of a second number of user regions into the virtual address space; wherein page caches are mapped to the first number of user regions and the second number of user regions and at least one of the page caches is shared with multiple ones of the user regions in the first memory tier and the user regions in the second memory tier; and
wherein each memory mapped user region in the tiered memory is fronted by a DRAM page cache to which an application issues loads and stores, and data are moved between the tiered memory and DRAM page caches on an on-demand page basis. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
15. An article, comprising:
- a non-transitory computer readable medium having stored instructions that enable a machine to;
for a system having an application host with one or more DRAM storage devices and one or more storage class memory (SCM) storage devices configured to communicate with one or more storage arrays via network;
wherein the one or more storage array comprises at least one SCM storage device,create a virtual memory address space including dynamically allocated memory, memory mapped files, and disk backed memory, wherein the virtual memory address space is backed by the one or more DRAM and SCM physical storage devices; allocate a plurality of user regions in a block device of the one or more SCM storage devices or the storage array, wherein the plurality of user regions is defined in metadata comprising one or more of user region name, location, size, and/or state information; access a first memory tier constructed by memory mapping a first number of user regions into the virtual address space; and access a second memory tier constructed by memory mapping a second number of user regions allocated into the virtual address space, wherein page caches are mapped to the first number of user regions and the second number of user regions and at least one of the page caches is shared with multiple ones of the user regions in the first memory tier and the user regions in the second memory tier; and
wherein each memory mapped user region in the tiered memory is fronted by a DRAM page cache to which an application issues loads and stores, and data are moved between the tiered memory and DRAM page caches on an on-demand page basis. - View Dependent Claims (16, 17, 18, 19, 20)
- a non-transitory computer readable medium having stored instructions that enable a machine to;
Specification