IP Library Granted Patent US 9,141,532
Granted Patent B2
US 9,141,532 · App. 13/727,150 · Granted Sep 22, 2015

Dynamic overprovisioning for data storage systems

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 9,141,532
App. No.
13/727,150
Granted
Sep 22, 2015
Kind
B2
Abstract

Disclosed embodiments are directed to systems and methods for dynamic overprovisioning for data storage systems. In one embodiment, a data storage system can reserve a portion of memory, such as non-volatile solid-state memory, for overprovisioning. Depending on various overprovisioning factors, recovered storage space due to compressing user data can be allocated for storing user data and/or overprovisioning. Utilizing the disclosed dynamic overprovisioning systems and methods can result is more efficient utilization of cache memory, reduction of write amplification, increase in a cache hit rate, and the like. Improved data storage system performance and increased endurance and longevity can thereby be attained.

Claims (58)

1. A data storage system comprising:

a non-volatile memory array comprising a user data portion and an overprovisioning portion, the user data portion configured to store user data;

a controller configured to dynamically adjust a capacity of the overprovisioning portion of the non-volatile memory array by:

compressing at least some user data stored in the user data portion;

determining an amount of recovered storage capacity due to the compression;

computing one or more overprovisioning parameters including a measure of an amount of non-redundant data stored in the non-volatile memory array, the non-redundant data comprising data that is not persistently stored in any memory of the data storage system other than the non-volatile memory array; and

allocating, based at least in part on the one or more overprovisioning parameters, the recovered storage capacity to at least one of a capacity of the user data portion and the capacity of the overprovisioning portion.

2. The data storage system of claim 1 , wherein the controller is configured to allocate the recovered storage capacity based at least in part on a combination of two or more of the one or more overprovisioning parameters.

3. The data storage system of claim 2 , wherein the controller is configured to determine a weighted average of the two or more overprovisioning parameters.

4. The data storage system of claim 1 , wherein the one or more overprovisioning parameters further include at least one of:

a user data compression rate;

the capacity of the overprovisioning portion;

a wear level of the non-volatile memory array;

a number of inoperative non-volatile memory array locations;

a ratio of an amount of data read from the non-volatile memory array to an amount of data written to the non-volatile memory array; and

a ratio of an amount of consecutive data written to the non-volatile memory array to an amount of non-consecutive data written to the non-volatile memory array.

5. The data storage system of claim 4 , wherein the controller is configured to allocate at least some of the recovered storage capacity to the capacity of the overprovisioning portion in response to at least one of:

an increase in the wear level of the non-volatile memory array as compared to a wear level threshold;

an increase in the ratio of the amount of data read from the non-volatile memory array to the amount of data written to the non-volatile memory array as compared to a read/write threshold; and

a decrease in the ratio of the amount of consecutive data written to the non-volatile memory array to the amount of non-consecutive data written to the non-volatile memory array as compared to a consecutive data written threshold.

6. The data storage system of claim 4 , wherein the controller is configured to allocate at least some of the recovered storage capacity to the capacity of the user data portion in response to at least one of:

an increase in the number of inoperative non-volatile memory locations as compared to an inoperative locations threshold;

a decrease in the user data compression rate as compared to a data compression threshold;

an increase in the capacity of the overprovisioning portion as compared to an overprovisioning threshold;

an increase in the ratio of the amount of consecutive data written to the non-volatile memory array to the amount of non-consecutive data written to the non-volatile memory array as compared to a consecutive data written threshold; and

an increase in the measure as compared to a non-redundant data threshold, the measure comprising a percentage of non-redundant data stored in the non-volatile memory array.

7. The data storage system of claim 1 , wherein the controller is configured to compress the at least some user data stored in the user data portion using lossless compression.

8. The data storage system of claim 1 , wherein the data storage system further comprises magnetic storage, and wherein the non-volatile memory array is configured as cache memory for the magnetic storage.

9. The data storage system of claim 8 , wherein the magnetic storage comprises shingled magnetic storage.

10. The data storage system of claim 1 , wherein the non-volatile memory array is configured as cache memory to a remote data storage.

11. In a data storage system comprising a non-volatile memory array comprising a user data portion and an overprovisioning portion, the user data portion configured to store user data, a method of dynamically adjusting a capacity of the overprovisioning portion, the method comprising:

compressing at least some user data stored in the user data portion;

determining an amount of recovered storage capacity due to the compression;

computing one or more overprovisioning parameters including a measure of an amount of non-redundant data stored in the non-volatile memory array, the non-redundant data comprising data that is not persistently stored in any memory of the data storage system other than the non-volatile memory array; and

allocating, based at least in part on the one or more overprovisioning parameters, the recovered storage capacity to at least one of a capacity of the user data portion and the capacity of the overprovisioning portion,

wherein the method is performed under control of a controller.

12. The method of claim 11 , wherein said allocating comprises allocating the recovered storage capacity based at least in part on a combination of each of the one or more overprovisioning parameters.

13. The method of claim 12 , wherein the combination comprises a weighted average of each of the one or more overprovisioning parameters.

14. The method of claim 11 , wherein the one or more overprovisioning parameters further include at least one of:

a user data compression rate;

the capacity of the overprovisioning portion;

a wear level of the non-volatile memory array;

a number of inoperative non-volatile memory array locations; and

a ratio of an amount of data read from the non-volatile memory array to an amount of data written to the non-volatile memory array, a ratio of an amount of consecutive data written to the non-volatile memory array to an amount of non-consecutive data written to the non-volatile memory array.

15. The method of claim 14 , wherein said allocating comprises allocating at least some of the recovered storage capacity to the capacity of the overprovisioning portion in response to at least two of:

an increase in the wear level of the non-volatile memory array as compared to a wear level threshold;

an increase in the ratio of the amount of data read from the non-volatile memory array to the amount of data written to the non-volatile memory array as compared to a read/write threshold; and

a decrease in the ratio of the amount of consecutive data written to the non-volatile memory array to the amount of non-consecutive data written to the non-volatile memory array as compared to a consecutive data written threshold.

16. The method of claim 14 , further comprising allocating at least some of the recovered storage capacity to the capacity of the user data portion in response to at least two of:

an increase in the number of inoperative non-volatile memory locations as compared to an inoperative locations threshold;

a decrease in the user data compression rate as compared to a data compression threshold;

an increase in the capacity of the overprovisioning portion as compared to an overprovisioning threshold;

an increase in the ratio of the amount of consecutive data written to the non-volatile memory array to the amount of non-consecutive data written to the non-volatile memory array as compared to a consecutive data written threshold; and

an increase in the measure as compared to a non-redundant data threshold, the measure comprising a percentage of non-redundant data stored in the non-volatile memory array.

17. The method of claim 11 , wherein said compressing the at least some user data stored in the user data portion comprises compressing using lossless compression.

18. The method of claim 11 , further comprises magnetic storage, and wherein the non-volatile memory array is configured as cache memory for the magnetic storage.

19. The method of claim 18 , wherein the magnetic storage comprises shingled magnetic storage module.

20. The method of claim 11 , wherein the non-volatile memory array is configured as cache memory to a remote data storage.

Assignments (8)
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 →
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2013
From: HORN, ROBERT L.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 029580/0910 →