US11494311B2ActiveUtilityA1
Page table hooks to memory types
Est. expirySep 17, 2039(~13.2 yrs left)· nominal 20-yr term from priority
G06F 2212/657G06F 12/1027G06F 12/1009Y02D10/00G06F 2212/68G06F 12/1408G06F 12/10
88
PatentIndex Score
4
Cited by
79
References
19
Claims
Abstract
A computer system includes physical memory devices of different types that store randomly-accessible data in memory of the computer system. In one approach, access to memory in an address space is maintained by an operating system of the computer system. A virtual page is associated with a first memory type. A page table entry is generated to map a virtual address of the virtual page to a physical address in a first memory device of the first memory type. The page table entry is used by a memory management unit to store the virtual page at the physical address.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method comprising:
associating, by at least one processing device, a virtual page with a first memory type having a first latency;
generating a page table entry to map a virtual address of the virtual page to a physical address in a first memory device of the first memory type;
storing, using the page table entry, the virtual page at the physical address in the first memory device;
storing a first address range of the virtual page and the first latency in metadata;
monitoring a priority of an application, wherein the priority is based on data usage patterns by the application;
accessing the metadata to obtain the first address range and the first latency, and further to obtain a second address range and a corresponding second latency, the second latency being less than the first latency;
assigning the application to use the first address range after determining that the first latency is appropriate for the application; and
transferring data for the application from the first address range to the second address range through a multiplexer within a memory module containing the first and second address range after determining that the priority of the application has increased.
2. The method of claim 1 , further comprising:
updating the page table entry to map the virtual address of the virtual page to a physical address in a second memory device;
wherein the virtual page is transferred from the first memory device to the second memory device using the updated page table entry.
3. The method of claim 1 , wherein an operating system runs on the at least one processing device, and generating the page table entry is performed by the operating system in response to associating the virtual page with the first memory type.
4. The method of claim 1 , wherein associating the virtual page with the first memory type is performed in response to a request received by an operating system from an application.
5. The method of claim 4 , wherein the first memory type is provided with the request from the application.
6. The method of claim 1 , further comprising managing, by an operating system of a computing device, physical locations for virtual pages stored in memory devices, wherein the memory devices include the first memory device and a second memory device, and wherein a power or performance characteristic of the first memory device is less than a corresponding power or performance characteristic of the second memory device.
7. The method of claim 6 , wherein the first memory type is dynamic random access memory, and the second memory type is non-volatile random access memory or flash memory.
8. The method of claim 1 , further comprising:
updating, based on the monitoring, the page table entry to map the virtual address of the virtual page to a physical address in a second memory device.
9. The method of claim 1 , further comprising:
determining a context of operation associated with the at least one processing device;
selecting, based on the determined context, a second memory type; and
in response to selecting the second memory type, updating the page table entry to map the virtual address of the virtual page to a physical address in the second memory device.
10. The method of claim 1 , further comprising:
associating, by the at least one processing device, the virtual page with a second memory type; and
in response to associating the virtual page with the second memory type, updating mapping data in a translation lookaside buffer;
wherein the virtual page is transferred from the first memory device to the second memory device by a memory management unit based on accessing the updated mapping data in the translation lookaside buffer.
11. The method of claim 1 , wherein processes are executing on the at least one processing device, and the page table entry comprises a process identifier for a first process that uses the virtual page.
12. The method of claim 1 , wherein the page table entry comprises data regarding a pattern of usage by one or more applications running on the at least one processing device.
13. The method of claim 12 , wherein the data regarding the pattern of usage is at least one of a frequency of use or a time of last use.
14. A system comprising:
a first memory device of a first memory type having a first latency;
a second memory device of a second memory type having a second latency, wherein the second latency is less than the first latency;
a page table storing page table entries that map virtual addresses to physical addresses in memory devices of different memory types, the memory devices including the first memory device and the second memory device;
at least one processing device;
metadata storing the first latency, the second latency, a first address range of the virtual addresses corresponding to the first memory type, and a second address range of the virtual addresses corresponding to the second memory type, the metadata being accessible by the at least one processing device; and
memory containing instructions configured to instruct the at least one processing device to:
monitor priorities of a first and a second application, wherein the priorities are based on data usage patterns by the first and the second application;
access the metadata to obtain the first and the second address range and the first and the second latency;
after determining that a priority of the first application is lower than a priority of the second application, assign the first application to use the first address range and the second application to use the second address range; and
after determining that the priority of the first application has increased, transfer data for the first application from the first address range to the second address range through a multiplexer within a memory module including the first and second memory device.
15. The system of claim 14 , wherein the at least one processing device uses main memory having data stored on the memory devices, and wherein an association of the virtual page to the first memory type is determined in response to a request by the application for an allocation of the main memory.
16. The system of claim 14 , wherein the instructions are further configured to instruct the at least one processing device to:
determine that the first memory device corresponds to the first memory type;
store metadata that associates address ranges in main memory to physical addresses in the memory devices;
wherein determining that the first memory device corresponds to the first memory type is based on the stored metadata.
17. The system of claim 14 , wherein the instructions are further configured to instruct the at least one processing device to store, using the page table entry, the virtual page at the first physical address in the first memory device.
18. The system of claim 14 , further comprising a memory management unit and a translation lookaside buffer, wherein the instructions are further configured to instruct the at least one processing device to:
update mapping data in the translation lookaside buffer based on a change in memory type associated with the virtual page from the first memory type to the second memory type;
wherein the virtual page is transferred from the first memory device to the second memory device by the memory management unit based on the updated mapping data.
19. The system of claim 18 , wherein the virtual page is transferred from the first memory device to the second memory device further in response to a request by the application.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.