IP Library Granted Patent US 10,409,720
Granted Patent B2
US 10,409,720 · App. 15/954,171 · Granted Sep 10, 2019

System and method of direct write and mapping of data in a non-volatile memory having multiple sub-drives

Inventors: Sergey Anatolievich Gorobets (Edinburgh, GB); Liam Michael Parker (Edinburgh, GB)
Assignee: Western Digital Technologies, Inc.
G06F12/0253G06F3/0613G06F3/0652G06F3/0688G06F12/0246G06F12/10G06F2212/1044G06F2212/2022G06F2212/7201G06F2212/7205
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,409,720
App. No.
15/954,171
Granted
Sep 10, 2019
Kind
B2
Abstract

A system and method is disclosed for managing data in a non-volatile memory. The system may include a non-volatile memory having multiple non-volatile memory sub-drives. A controller of the memory system is configured to route incoming host data to a desired sub-drive, keep data within the same sub-drive as its source during a garbage collection operation, and re-map data between sub-drives, separate from any garbage collection operation, when a sub-drive overflows its designated amount logical address space. The method may include initial data sorting of host writes into sub-drives based on any number of hot/cold sorting functions. In one implementation, the initial host write data sorting may be based on a host list of recently written blocks for each sub-drive and a second write to a logical address encompassed by the list may trigger routing the host write to a hotter sub-drive than the current sub-drive.

Claims (49)

1. A method for managing data in a memory system having a controller in communication with a non-volatile memory having a plurality of sub-drives, the method comprising the controller:

receiving a host data write at the memory system;

directing the host data write to one of the plurality of sub-drives based on a first sorting technique;

initiating a garbage collection operation in a particular sub-drive in response to a detected garbage collection trigger;

moving valid data during the garbage collection operation from a source superblock in the particular sub-drive only to a relocation superblock in the particular sub-drive such that the valid data remains in the particular sub-drive;

determining whether a proportion of a total logical address space of the non-volatile memory currently associated with one of the plurality of sub-drives exceeds a predetermined threshold; and

when the proportion exceeds the predetermined threshold for the one of the plurality of sub-drives, re-mapping a superblock from the one of the plurality of sub-drives to another of the plurality of sub-drives, based on a current data temperature of the superblock, independently of any garbage collection operation.

2. The method of claim 1 , wherein re-mapping the superblock comprises selecting a coldest superblock of a sub-drive containing more valid data than the total logical address space of the non-volatile memory currently associated with the sub-drive and re-mapping the coldest superblock to a next colder sub-drive of the non-volatile memory.

3. The method of claim 1 , wherein the detected garbage collection trigger comprises a number of shared free blocks for the plurality of sub-drives falling below a predetermined threshold.

4. The method of claim 3 , wherein moving valid data during the garbage collection operation from the source superblock further comprises:

first selecting a sub-drive from which to select the source superblock based on an analysis of write amplification for an entirety of the non-volatile memory for a current workload.

5. The method of claim 4 , wherein selecting the sub-drive from which to select the source superblock comprises selecting the sub-drive based on a calculated target overprovisioning of each of the plurality of sub-drives.

6. The method of claim 4 , further comprising selecting the source superblock for the selected sub-drive based on an amount of valid data in the source superblock.

7. The method of claim 1 , further comprising selecting, as the particular sub-drive for initiating the garbage collection operation, a sub-drive having a greatest amount of overprovisioning over a target overprovisioning level, wherein the target overprovisioning level differs for each of the plurality of sub-drives and is based on a respective portion of the total logical address space of the non-volatile memory currently associated with each of the plurality of sub-drives and a total host write workload attributed to each of the plurality of sub-drives.

8. A non-volatile memory system comprising:

a non-volatile memory having a plurality of sub-drives;

a controller in communication with the plurality of sub-drives, the controller configured to:

sort data associated with a host write command, as the data associated with the host write command is received from a host, into one of the plurality of sub-drives based on a determined data temperature of the data associated with the host write command; and

sort data already stored in a first sub-drive of the plurality of sub-drives into a different sub-drive of the plurality of sub-drives by logically remapping a portion of the data already stored in the first sub-drive, without rewriting the portion of the data into a different physical location, independently of any garbage collection operation in the first sub-drive.

9. The non-volatile memory system of claim 8 , wherein the controller is further configured to only relocate valid data during a garbage collection operation within a same sub-drive.

10. The non-volatile memory system of claim 8 , wherein the controller is further configured to:

select one of the plurality of sub-drives as the first sub-drive from which to logically remap the portion of the data in response to an amount of valid data in the one of the plurality of sub-drives exceeding a predetermined amount of logical address space assigned to the one of the plurality of sub-drives.

11. The non-volatile memory system of claim 8 , wherein:

the portion of the data already stored in the first sub-drive comprises a superblock of the first sub-drive;

the different sub-drive comprises a next colder sub-drive of the plurality of sub-drives, wherein the next colder sub-drive comprises a sub-drive associated with data having a data temperature less than a data temperature of data associated with the first sub-drive; and

to remap the portion of the data already stored in the first sub-drive, the controller is further configured to select a coldest superblock of the first sub-drive and logically remap the coldest superblock to the different sub-drive.

12. The non-volatile memory system of claim 8 , wherein:

the portion of the data already stored in the first sub-drive comprises a superblock of the first sub-drive;

the different sub-drive comprises a next hotter sub-drive of the plurality of sub-drives, wherein the next hotter sub-drive comprises a sub-drive associated with data having a data temperature greater than a data temperature of data associated with the first sub-drive; and

to remap the portion of the data already stored in the first sub-drive, the controller is further configured to select a hottest superblock of the first sub-drive and logically remap the hottest superblock to the different sub-drive.

13. The non-volatile memory system of claim 8 , further comprising:

a free block pool, the free block pool comprising a plurality of superblocks in the non-volatile memory assignable to any of the plurality of sub-drives for data storage; and

wherein the controller is further configured to:

initiate a garbage collection operation in one of the plurality of sub-drives in response to detecting that an amount of superblocks in the free block pool has fallen below a predetermined minimum threshold; and

select a source superblock for the garbage collection operation from a sub-drive having an amount of overprovisioning that is greater than a target overprovisioning for the sub-drive.

14. A method for managing data in a memory system having a controller in communication with a non-volatile memory having a plurality of sub-drives, the method comprising the controller:

receiving a host data write at the memory system;

directing the host data write to one of the plurality of sub-drives based on a first sorting technique;

determining whether an amount of valid data in one of the plurality of sub-drives exceeds a predetermined amount of a logical address space for the one of the plurality of sub-drives; and

when the amount of valid data in the one of the plurality of sub-drives exceeds the predetermined amount, re-mapping a superblock from the one of the plurality of sub-drives to another of the plurality of sub-drives, without rewriting any data from the superblock to another physical location, based on a current data temperature of the superblock.

15. The method of claim 14 , wherein re-mapping the superblock comprises selecting a coldest superblock of a sub-drive containing more valid data than a total logical address space of the non-volatile memory currently associated with the sub-drive and re-mapping the coldest superblock to a next colder sub-drive of the plurality of sub-drives in the non-volatile memory.

16. The method of claim 14 , wherein re-mapping the superblock from the one of the plurality of sub-drives to another of the plurality of sub-drives comprises:

remapping the superblock to a next colder sub-drive of the plurality of sub-drives, wherein the next colder sub-drive comprises a sub-drive associated with data having a data temperature less than a data temperature of data associated with the one of the plurality of sub-drives.

17. The method of claim 16 , further comprising selecting a coldest superblock of the one of the plurality of sub-drives and logically remapping the coldest superblock to the next colder sub-drive.

18. The method of claim 14 , wherein re-mapping the superblock from the one of the plurality of sub-drives to another of the plurality of sub-drives comprises:

remapping the superblock to a next hotter sub-drive, the next hotter sub-drive comprising a sub-drive associated with data having a data temperature greater than a data temperature of data associated with the one of the plurality of sub-drives.

19. The method of claim 18 , further comprising selecting a hottest superblock of the one of the plurality of sub-drives and logically remapping the hottest superblock to the next hotter sub-drive.

20. The method of claim 14 , wherein directing the host data write to one of the plurality of sub-drives based on a first sorting technique comprises:

writing the host data, the host data associated with logical block addresses, to a next hotter sub-drive relative to last sub-drive that previous data associated with the logical block addresses was written to.

Assignments (11)
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 - 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 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 Aug 1, 2019
From: GOROBETS, SERGEY ANATOLIEVICH; PARKER, LIAM MICHAEL
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 049936/0509 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2018
From: GOROBETS, SERGEY ANATOLIEVICH; PARKER, LIAM MICHAEL
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045561/0130 →
Continuity (2)
Provisional Application 62518513 · Jun 12, 2017
Related Publication 20180357160A1 · Dec 13, 2018
Cited By (1)
US 12,493,425