IP Library Granted Patent US 8,788,778
Granted Patent B1
US 8,788,778 · App. 13/488,249 · Granted Jul 22, 2014

Garbage collection based on the inactivity level of stored data

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 8,788,778
App. No.
13/488,249
Granted
Jul 22, 2014
Kind
B1
Abstract

A data storage system implements garbage collection based on the inactivity level of stored data. In one embodiment, the inactivity level of data stored in regions of a data storage system is taken into account when prioritizing regions for garbage collection. Inactivity level of memory regions can be compared to an inactivity threshold. The threshold can be adjusted during operation of the data storage system. Garbage collection can be delayed until data stored in a particular region is unlikely to be updated. Write amplification associated with garbage collection is reduced, and improved performance is attained.

Claims (42)

1. A non-volatile data storage system, comprising:

a data storage module comprising a plurality of regions for storing data; and

a controller configured to:

compute a set of scores associated with a set of regions of the plurality of regions, each score based at least in part on a duration since last invalidation of data stored in a corresponding region; and

perform garbage collection of at least one region based at least partly on the set of scores, wherein garbage collection comprises copying valid data stored in the at least one region to another region.

2. The non-volatile data storage system of claim 1 , wherein each score is further based at least in part on an amount of valid data stored in the corresponding region.

3. The non-volatile data storage system of claim 1 , wherein the duration since last invalidation of data in a corresponding region corresponds at least in part to a rate of invalidating data stored in the region.

4. The non-volatile data storage system of claim 1 , wherein data stored in the region is invalidated in response to a host system command.

5. The non-volatile data storage system of claim 4 , wherein in response to receiving from the host system a write or program command associated with command data and a logical address corresponding to a first physical address in the data storage module, the controller is configured to invalidate data stored in the region by:

storing the command data in a second physical address in the data storage module and associating the logical address with the second physical address, wherein the second physical address is different from the first physical address.

6. The non-volatile data storage system of claim 1 , wherein the data storage module comprises a non-volatile memory array.

7. The non-volatile data storage system of claim 1 , wherein the data storage module comprises shingled magnetic storage.

8. The non-volatile data storage system of claim 1 , wherein the data storage module comprises a non-volatile memory array and magnetic storage.

9. In a non-volatile data storage system comprising a controller and a storage module that comprises a plurality of regions, a method of freeing at least some regions, the method comprising:

computing a set of scores associated with a set of regions of the plurality of regions, each score based at least in part on a duration since last invalidation of data stored in a corresponding region; and

performing garbage collection of at least one region based on the set of scores, wherein performing garbage collection comprises copying valid data stored in the at least one region to another region,

wherein the method is performed under the control of the controller.

10. The method of claim 9 , wherein each score is further based at least in part on an amount of valid data stored in the corresponding region.

11. The method of claim 9 , wherein the duration since last invalidation of data in a corresponding region corresponds at least in part to a rate of invalidating data stored in the region.

12. The method of claim 9 , wherein data stored in the region is invalidated in response to a host system command.

13. The method of claim 12 , further comprising:

in response to receiving from the host system a write or program command associated with command data and a logical address corresponding to a first physical address in the storage module, storing the command data in a second physical address in the storage module and associating the logical address with the second physical address,

wherein the second physical address is different from the first physical address.

14. The method of claim 9 , wherein the storage module comprises a non-volatile memory array.

15. The method of claim 9 , wherein the storage module comprises shingled magnetic storage.

16. The method of claim 9 , wherein the storage module comprises a non-volatile memory array and magnetic storage.

17. A non-volatile data storage system, comprising:

a data storage module comprising a plurality of regions for storing data; and

a controller configured to:

identify a region suitable for garbage collection; and

in response to determining that a duration since last invalidation of data stored in the region exceeds a threshold, perform garbage collection of the region, wherein garbage collection comprises copying valid data stored in the at least one region to another region.

18. The non-volatile data storage system of claim 17 , wherein the controller is further configured to adjust the threshold based at least in part on a number of regions that need to be garbage collected.

19. The non-volatile data storage system of claim 17 , wherein the controller is configured to identify a region suitable for garbage collection by determining whether at least some data stored in the region is invalid.

20. The non-volatile data storage system of claim 19 , wherein data stored in the region is invalidated in response to a host system write or program command.

21. In a non-volatile data storage system comprising a controller and a storage module that comprises a plurality of regions, a method of freeing at least some regions, the method comprising:

identifying a region suitable for being freed; and

in response to determining that a duration since last invalidation of data stored in the region exceeds a threshold, performing garbage collection of the region,

wherein garbage collection comprises copying valid data stored in the at least one region to another region, and

wherein the method is performed under the control of the controller.

22. The method of claim 21 , further comprising adjusting the threshold based at least in part on a number of regions that need to be freed.

23. The method of claim 21 , wherein identifying a region suitable for garbage collection comprises determining whether at least some data stored in the region is invalid.

24. The method of claim 23 , wherein data stored in the region is invalidated in response to a receiving a write or program command from a host system.

Assignments (12)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 038744 FRAME 0481 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0556 →
RELEASE OF SECURITY INTEREST Recorded Mar 5, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045501/0714 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038722/0229 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038744/0281 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038744/0481 →