IP Library › Granted Patent US 10,732,880
Granted Patent B2
US 10,732,880 · App. 15/868,787 · Granted Aug 4, 2020

Lazy memory deduplication

Inventors: Omid Azizi (Redwood City, CA); Amin Firoozshahian (Mountain View, CA); John Stevenson (Palo Alto, CA); Mahesh Maddury (Santa Clara, CA); Chandan Egbert (San Jose, CA); Henk Neefs (Palo Alto, CA)
Assignee: Intel Corporation
G06F3/0641G06F3/065G06F3/0607G06F3/0608G06F3/0653G06F12/0253G06F12/084G06F12/0811G06F12/0868G06F2212/283G06F2212/604G06F2212/702
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,732,880
App. No.
15/868,787
Filed
Jan 11, 2018
Granted
Aug 4, 2020
Kind
B2
Art Unit
2131
USPC
711/122
Abstract

Various systems and methods for computer memory management are described herein. A system for computer memory management includes a first memory device including a mapping table; a second memory device including a staging area; a third memory device including a dedup data region; and a controller operable to: receive a memory access request, the memory access request including an address and data; write the data to the staging area; and update the mapping table with the address.

Claims (56)

1. A system for computer memory management, the system comprising:

a first memory device including a mapping table;

a second memory device including a staging area;

a third memory device including a dedup data region; and

a controller operable to:

receive a memory access request, the memory access request including an address and data;

write the data to the staging area;

update the mapping table with the address;

monitor the staging area;

determine a utilization amount is over a first threshold and under a second threshold, the utilization amount representing an amount of used storage capacity of the staging area; and

enable a reclamation process to reclaim memory capacity from duplicated data based on the utilization amount while the utilization amount is over the first threshold, the reclamation process configured to deduplicate data in the staging area by moving duplicate data to the dedup data region in the third memory device.

2. The system of claim 1 , wherein the first and second memory device ar integrated in the same package.

3. The system of claim 1 , wherein to reclaim memory capacity, the controller is to:

scan the staging area to identify duplicate data;

write a copy of the duplicate data to the dedup data region at a destination address;

update the mapping table with the destination address for entries that pointed to the duplicate data; and

delete the duplicate data from the staging area.

4. The system of claim 1 , wherein to monitor the staging area, the controller is to determine that the utilization amount is under a first threshold, and

wherein to reclaim memory capacity, the controller is to disable the reclamation process while the utilization amount is under the first threshold.

5. The system of claim 4 , wherein the first threshold is 50% utilization of the staging area.

6. The system of claim 1 , wherein the second threshold is 100% utilization of the staging area.

7. The system of claim 1 , wherein to monitor the staging area, the controller is to determine that the utilization amount is at or over a second threshold, and

wherein to reclaim memory capacity, the controller is to enable the reclamation process while the utilization amount is at or over the second threshold, and

wherein the controller is to disable further writes to the staging area while the utilization amount is at or over the second threshold.

8. The system of claim 1 , wherein to configure the reclamation process, the controller is to use the utilization amount in a continuous function to configure a behavior of the reclamation process.

9. The system of claim 1 , wherein to reclaim memory capacity, the controller is to:

select, based on a temporal marker, addresses that refer to the staging area, the addresses stored in the mapping table; and

process the addresses in the reclamation process.

10. The system of claim 9 , wherein the temporal marker is a timestamp that was stored when the corresponding data was written to the staging area.

11. The system of claim 10 , wherein the timestamp is a 2-bit timestamp.

12. A method of computer memory management, the method comprising:

receiving a memory access request, the memory access request including an address and data;

writing the data to a staging area in a memory device, the staging area to store data temporarily before it is deduplicated;

updating a mapping table with the address, the mapping table stored in the memory device;

monitoring the staging area to determine a utilization amount, the utilization amount representing an amount of used storage capacity of the staging area; and

configuring a reclamation process based on the utilization amount, the reclamation process configured to deduplicate data in the staging area by moving duplicate data to a dedup data region in the memory device;

wherein monitoring the staging area comprises determining that the utilization amount is over a first threshold and under a second threshold, and

wherein configuring the reclamation process comprises enabling the reclamation process while the utilization amount is over the first threshold.

13. The method of claim 12 , wherein the reclamation process is used to scan the staging area to identify duplicate data, write a copy of the duplicate data to the dedup data region at a destination address, update the mapping table with the destination address for entries that pointed to the duplicate data, and delete the duplicate data from the staging area.

14. The method of claim 12 , wherein monitoring the staging area comprises determining that the utilization amount is under a first threshold, and

wherein configuring the reclamation process comprises disabling the reclamation process while the utilization amount is under the first threshold.

15. The method of claim 14 , wherein the first threshold is 50% utilization of the staging area.

16. The method of claim 12 , wherein monitoring the staging area comprises determining that the utilization amount is over a first threshold and under a second threshold, and

wherein configuring the reclamation process comprises enabling the reclamation process while the utilization amount is over the first threshold.

17. The method of claim 16 , wherein the second threshold is 100% utilization of the staging area.

18. The method of claim 12 , wherein monitoring the staging area comprises determining that the utilization amount is at or over a second threshold, and

wherein configuring the reclamation process comprises enabling the reclamation process while the utilization amount is at or over the second threshold, and

wherein the method further comprises disabling further writes to the staging area while the utilization amount is at or over the second threshold.

19. At least one non-transitory machine-readable medium including instructions for computer memory management, the instructions when executed by a machine, cause the machine to perform operations comprising:

receiving a memory access request, the memory access request including an address and data;

writing the data to a staging area in a memory device, the staging area to store data temporarily before it is deduplicated;

updating a mapping table with the address, the mapping table stored in the memory device;

monitoring the staging area to determine a utilization amount, the utilization amount representing an amount of used storage capacity of the staging area; and

configuring a reclamation process based on the utilization amount, the reclamation process configured to deduplicate data in the staging area by moving duplicate data to a dedup data region in the memory device;

wherein monitoring the staging area comprises determining that the utilization amount is over a first threshold and under a second threshold, and

wherein configuring the reclamation process comprises enabling the reclamation process while the utilization amount is over the first threshold.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2018
From: EGBERT, CHANDAN; FIROOZSHAHIAN, AMIN; MADDURY, MAHESH; STEVENSON, JOHN; NEEFS, HENK; AZIZI, OMID
To: INTEL CORPORATION
Reel/Frame 045242/0302 →
Continuity (1)
Related Publication 20190212935A1 · Jul 11, 2019