IP Library Granted Patent US 10,114,744
Granted Patent B2
US 10,114,744 · App. 15/495,900 · Granted Oct 30, 2018

Memory unit assignment and selection for internal memory operations in data storage systems

Inventors: Kamyar Souri (Irvine, CA); Andrew J. Tomlin (San Jose, CA); Dmitry S. Obukhov (San Jose, CA); Jing Booth (San Jose, CA); Mei-Man L. Syu (Fremont, CA)
Assignee: Western Digital Technologies, Inc.
G06F12/0246G06F12/0253G06F2212/1016G06F2212/1036G06F2212/7205G06F2212/7211
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,114,744
App. No.
15/495,900
Granted
Oct 30, 2018
Kind
B2
Abstract

Disclosed embodiments are directed to systems and methods for assigning and selecting memory units for internal memory operations in data storage systems. The embodiments can improve the efficiency of garbage collection operations by directing dynamic data into memory units with a relatively lower P/E count, directing static and system data into memory units with a relatively higher P/E count, and not mixing static and dynamic data by packing static data into separate memory units from dynamic data. In one embodiment, after completion of garbage collection of blocks, the blocks are each assigned to one of a cool down list and an available memory unit list based on a size limit of the cool down list and a number of program-erase (P/E) operations performed on each block. The blocks are subsequently selected from the lists for write operations according to whether write data includes static or dynamic data.

Claims (61)

1. A data storage system comprising:

a non-volatile solid-state memory array comprising a plurality of memory units; and

a controller configured to:

during a garbage collection operation, garbage collect the plurality of memory units, based at least on ages of respective data stored in the plurality of memory units; and

write, in connection with the garbage collection operation, the respective data of the plurality of memory units to one or more available memory units selected from at least one of multiple memory unit availability lists based on the ages of the respective data;

classify data of a first source memory unit designated to be garbage collected into one of a predetermined number of data classifications;

determine that a first destination memory unit storing data of a same data classification as the classified data has reached its capacity; and

suspend, based on determining that the first destination memory unit reached its capacity, the garbage collection operation and performing a wear-leveling operation.

2. The data storage system of claim 1 , wherein the controller is further configured to:

determine that a second destination memory unit designated to store at least a portion of the classified data includes data of a different data classification than the classified data; and

responsive to determining that the second destination memory unit includes data of the different data classification, select a different source memory unit having data of the different data classification,

wherein the wear-leveling operation comprises moving the data of the different data classification from the different source memory unit to the second destination memory unit.

3. The data storage system of claim 2 , wherein the data of the first source memory unit is classified into one of the predetermined number of data classifications based on the age of the data.

4. The data storage system of claim 3 , wherein the classified data is classified as dynamic data based on the age of the classified data being below a data-type threshold, and wherein the data of the different data classification is classified as static data based on the age of the data being above the data-type threshold.

5. The data storage system of claim 1 , wherein the controller is further configured to:

assign each of the garbage collected memory units to one of the multiple memory unit availability lists based on a number of program-erase cycles associated with each garbage collected memory unit and a respective capacity of the selected one or more available memory lists.

6. The data storage system of claim 1 , wherein each of the multiple memory unit availability lists is associated with one of a plurality of list classifications, and the controller is further configured to:

classify data to be written to one or more available memory units into one of a plurality of data classifications based on whether the data to be written is host system data, garbage collection data, or system data of the data storage system;

select one of the multiple memory unit availability lists based on the classification of the classified data and a range of program-erase cycles associated with memory units in the selected one of the multiple memory unit availability lists; and

write the classified data to an available memory unit from the selected one of the multiple memory unit availability lists.

7. The data storage system of claim 1 , wherein the respective data includes first data associated with a higher data age above a data-type threshold, and second data associated with a lower data age below the data-type threshold, and the controller is further configured to:

write the first data to one or more memory units selected from a first list of the multiple memory unit availability lists associated with a higher program/erase (P/E) count above a hot-cold threshold; and

write the second data to one or more memory units selected from a second list of the multiple memory unit availability lists associated with a lower P/E count below the hot-cold threshold.

8. The data storage system of claim 7 , wherein the first data is garbage collected data and the second data is host data received from a host system.

9. A machine-implemented method, comprising:

performing a garbage collection operation in a data storage system, including garbage collecting a plurality of memory units based at least on ages of respective data stored in the plurality of memory units; and

writing, in connection with the garbage collection operation, respective data of the plurality of memory units to one or more available memory units selected from at least one of multiple memory unit availability lists based on the ages of the respective data;

classifying data of a first source memory unit designated to be garbage collected into one of a predetermined number of data classifications;

determining that a first destination memory unit storing data of a same data classification as the classified data has reached its capacity; and

suspending, based on determining that the first destination memory unit reached its capacity, the garbage collection operation and performing a wear-leveling operation.

10. The machine-implemented method of claim 9 , further comprising:

determining that a second destination memory unit designated to store at least a portion of the classified data includes data of a different data classification than the classified data; and

responsive to determining that the second destination memory unit includes data of the different data classification, selecting a different source memory unit having data of the different data classification,

wherein the wear-leveling operation comprises moving the data of the different data classification from the different source memory unit to the second destination memory unit.

11. The machine-implemented method of claim 10 , wherein the data of the first source memory unit is classified into one of the predetermined number of data classifications based on the age of the data.

12. The machine-implemented method of claim 11 , further comprising:

wherein the classified data is classified as dynamic data based on the age of the classified data being below a data-type threshold, and wherein the data of the different data classification is classified as static data based on the age of the data being above the data-type threshold.

13. The machine-implemented method of claim 9 , further comprising:

assigning each of the garbage collected memory units to one of the multiple memory unit availability lists based on a number of program-erase cycles associated with each garbage collected memory unit and a respective capacity of the selected one or more available memory lists.

14. The machine-implemented method of claim 9 , wherein each of the multiple memory unit availability lists is associated with one of a plurality of list classifications, the method further comprising:

classify data to be written to one or more available memory units into one of a plurality of data classifications based on whether the data to be written is host system data, garbage collection data, or system data of the data storage system;

selecting one of the multiple memory unit availability lists based on the classification of the classified data and a range of program-erase cycles associated with memory units in the selected one of the multiple memory unit availability lists;

writing the classified data to an available memory unit from the selected one of the multiple memory unit availability lists.

15. The machine-implemented method of claim 9 , wherein the respective data includes first data associated with a higher data age above a data-type threshold, and second data associated with a lower data age below the data-type threshold, the method further comprising:

write the first data to one or more memory units selected from a first list of the multiple memory unit availability lists associated with a higher program/erase (P/E) count above a hot-cold threshold; and

write the second data to one or more memory units selected from a second list of the multiple memory unit availability lists associated with a lower P/E count below the hot-cold threshold.

16. The machine-implemented method of claim 15 , wherein the first data is garbage collected data and the second data is host data received from a host system.

17. A data storage device, comprising:

means for performing a garbage collection operation, including means for garbage collecting a plurality of memory units based at least on ages of respective data stored in the plurality of memory units;

means for writing respective data of the plurality of memory units to one or more available memory units selected from at least one of multiple memory unit availability lists based on the ages of the respective data;

means for classifying data of a first source memory unit designated to be garbage collected into one of a predetermined number of data classifications;

means for determining that a first destination memory unit storing data of a same data classification as the classified data has reached its capacity; and

means for suspending the garbage collection operation and performing a wear-leveling operation, based on determining that the first destination memory unit reached its capacity.

18. The data storage device of claim 17 ,

wherein the data of the first source memory unit is classified into one of the predetermined number of data classifications based on the age of the classified data.

19. The data storage device of claim 18 , further comprising:

means for determining that a second destination memory unit designated to store at least a portion of the classified data includes data of a different data classification than the classified data; and

means for selecting, responsive to determining that the second destination memory unit includes data of the different data classification, a different source memory unit having data of the different data classification,

wherein the wear-leveling operation comprises moving the data of the different data classification from the different source memory unit to the second destination memory unit.

20. The data storage device of claim 17 , further comprising:

means for assigning each of the garbage collected memory units to one of the multiple memory unit availability lists based on a number of program-erase cycles associated with each garbage collected memory unit and a respective capacity of the selected one or more available memory lists.

Assignments (10)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
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 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2018
From: SOURI, KAMYAR; TOMLIN, ANDREW J.; OBUKHOV, DMITRY S.; BOOTH, JING; SYU, MEI-MAN L.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 047074/0172 →
Continuity (4)
Continuation 14028377 · Sep 16, 2013
Provisional Application 61824137 · May 16, 2013
Provisional Application 61824001 · May 16, 2013
Related Publication 20170357571A1 · Dec 14, 2017