IP Library › Granted Patent US 10,310,971
Granted Patent B2
US 10,310,971 · App. 15/651,862 · Granted Jun 4, 2019

Method and apparatus for processing memory page in memory

Inventors: Duo Liu (Chongqing, CN); Zili Shao (Chongqing, CN); Linbo Long (Chongqing, CN)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
G06F12/0246G06F12/02G06F12/023G06F12/0253G06F12/122G06F2212/1036G06F2212/251G06F2212/7208
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,310,971
App. No.
15/651,862
Granted
Jun 4, 2019
Kind
B2
Abstract

A method for processing a memory page in memory, where the memory page in the memory includes an idle single-level cell (SLC) memory page, an active SLC memory page, an inactive SLC memory page, and a multi-level cell (MLC) memory page, and when a quantity of idle SLC memory pages of any virtual machine (VM) is less than a specified threshold, the processing method includes converting one idle SLC memory page to two MLC memory pages, copying data in two inactive SLC memory pages to the two converted MLC memory pages, and releasing storage space of the two inactive SLC memory pages to obtain two idle SLC memory pages.

Claims (38)

1. A method for processing a memory page in memory, wherein the memory page in the memory comprises an idle single-level cell (SLC) memory page, an active SLC memory page, an inactive SLC memory page, and a multi-level cell (MLC) memory page, wherein the idle SLC memory page has no data, wherein data stored in the active SLC memory page is data accessed within a specified time period, wherein data stored in the inactive SLC memory page and the MLC memory page is data not accessed within the specified time period, and wherein the processing method comprises:

converting one idle SLC memory page to two MLC memory pages when a quantity of idle SLC memory pages in any virtual machine (VM) is less than a specified threshold;

copying data in two inactive SLC memory pages to the two converted MLC memory pages; and

releasing storage space of the two inactive SLC memory pages to obtain two idle SLC memory pages.

2. The method according to claim 1 , wherein a higher memory access frequency or higher memory usage indicates a shorter specified time period, or wherein the higher memory access frequency and the higher memory usage indicate the shorter specified time period.

3. The method according to claim 1 , wherein a smaller specified threshold indicates higher memory access performance and a higher probability of generating a page fault.

4. The method according to claim 1 , wherein after determining that the quantity of idle SLC memory pages in the any VM is less than the specified threshold and when a quantity of current inactive SLC memory pages is less than 2, the method further comprises:

writing the data in the two MLC memory pages back to an external storage; and

converting the two MLC memory pages to one idle SLC memory page.

5. The method according to claim 4 , wherein after determining that the quantity of idle SLC memory pages in the any VM is less than the specified threshold, the method further comprises obtaining an idle memory page of another VM for the any VM when the quantity of current inactive SLC memory pages is less than 2 and a quantity of current MLC memory pages is less than 2.

6. The method according to claim 1 , further comprising:

allocating an idle SLC memory page for a memory allocation request after the memory allocation request is received; and

re-identifying the idle SLC memory page as an active SLC memory page.

7. The method according to claim 6 , wherein re-identifying the idle SLC memory page as the active SLC memory page comprises transferring an address of the idle SLC memory page from an established idle SLC memory page linked list to an established active SLC memory page linked list.

8. The method according to claim 1 , further comprising re-identifying an inactive SLC memory page as an active SLC memory page after an access request for the inactive SLC memory page is received.

9. The method according to claim 8 , wherein re-identifying the inactive SLC memory page as the active SLC memory page comprises transferring an address of the inactive SLC memory page from an established inactive SLC memory page linked list to an established active SLC memory page linked list.

10. The method according to claim 1 , further comprising re-identifying an active SLC memory page as an inactive SLC memory page when no access request for the active SLC memory page is received within the specified time period.

11. The method according to claim 10 , wherein re-identifying the active SLC memory page as the inactive SLC memory page comprises transferring an address of the active SLC memory page from an established active SLC memory page linked list to an established inactive SLC memory page linked list.

12. An apparatus for processing a memory page in memory, wherein the memory page in the memory comprises an idle single-level cell (SLC) memory page, an active SLC memory page, an inactive SLC memory page, and a multi-level cell (MLC) memory page, wherein the idle SLC memory page has no data, wherein data stored in the active SLC memory page is data accessed within a specified time period, wherein data stored in the inactive SLC memory page and the MLC memory page is data not accessed within the specified time period, and wherein the apparatus comprises:

a storage comprising instructions; and

a processor coupled to the storage, wherein the instructions cause the processor to be configured to:

convert one idle SLC memory page to two MLC memory pages when a quantity of idle SLC memory pages in any virtual machine (VM) is less than a specified threshold;

copy data in two inactive SLC memory pages to the two converted MLC memory pages; and

release storage space of the two inactive SLC memory pages to obtain two idle SLC memory pages.

13. The apparatus according to claim 12 , wherein a higher memory access frequency or higher memory usage indicates a shorter specified time period, or wherein the higher memory access frequency and the higher memory usage indicate the shorter specified time period.

14. The apparatus according to claim 12 , wherein a smaller specified threshold indicates higher memory access performance and a higher probability of generating a page fault.

15. The apparatus according to claim 14 , wherein after determining that the quantity of idle SLC memory pages in the any VM is less than the specified threshold, and when a quantity of current inactive SLC memory pages is less than 2, the instructions further cause the processor to be configured to:

write the data in the two MLC memory pages back to an external storage; and

convert the two MLC memory pages to one idle SLC memory page.

16. The apparatus according to claim 15 , wherein after determining the quantity of idle SLC memory pages in the any VM is less than the specified threshold, and when the quantity of current inactive SLC memory pages is less than 2 and a quantity of current MLC memory pages is less than 2, the instructions further cause the processor to be configured to obtain an idle memory page of another VM for the any VM.

17. The apparatus according to claim 12 , wherein the instructions further cause the processor to be configured to:

allocate an idle SLC memory page for a memory allocation request after the memory allocation request is received; and

re-identify the idle SLC memory page as an active SLC memory page.

18. The apparatus according to claim 17 , wherein the instructions further cause the processor to be configured to transfer an address of the idle SLC memory page from an established idle SLC memory page linked list to an established active SLC memory page linked list.

19. The apparatus according to claim 12 , wherein the instructions further cause the processor to be configured to re-identify an inactive SLC memory page as an active SLC memory page after an access request for the inactive SLC memory page is received.

20. The apparatus according to claim 19 , wherein the instructions further cause the processor to be configured to transfer an address of the inactive SLC memory page from an established inactive SLC memory page linked list to an established active SLC memory page linked list.

21. The apparatus according to claim 12 , wherein when no access request for an active SLC memory page is received within the specified time period, the instructions further cause the processor to be configured to re-identify the active SLC memory page as an inactive SLC memory page.

22. The apparatus according to claim 21 , wherein the instructions further cause the processor to be configured to transfer an address of the active SLC memory page from an established active SLC memory page linked list to an established inactive SLC memory page linked list.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2017
From: LIU, DUO; SHAO, ZILI; LONG, LINBO
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 043256/0700 →
Priority Claims (1)
CN 2015 1 0021433 · Jan 15, 2015 · national
Continuity (2)
Continuation PCTCN2015090765 · Sep 25, 2015
Related Publication 20170315931A1 · Nov 2, 2017