# US 2021/0240614 A1 · System and Method of Direct Write and Mapping of Data in a Non-Volatile Memory Having Multiple Sub-Drives

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0240614 A1
- Document ID: US20210240614A1
- Status: Published application
- Kind: A1
- Application number: 17/235,816
- Filed: 2021-04-20
- Published: 2021-08-05
- Earliest claimed: 2017-06-12
- Assignees: Western Digital Technologies, Inc.
- Applicants: Western Digital Technologies, Inc.
- Inventors: Sergey Anatolievich GOROBETS; Liam Michael PARKER
- Web page: https://patentgrep.com/patent/US20210240614A1

## CPC

- G06F 12/0253: {Garbage collection, i.e. reclamation of unreferenced memory}
- G06F 3/0613: {in relation to throughput}
- G06F 3/0616: {in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]}
- G06F 3/064: {Management of blocks}
- G06F 3/0652: {Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket}
- G06F 3/0665: {at area level, e.g. provisioning of virtual or logical volumes}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 12/10: Address translation
- G06F 2212/1044: Space efficiency improvement
- G06F 2212/2022: Flash memory
- G06F 2212/7201: Logical to physical mapping or translation of blocks or pages
- G06F 2212/7204: Capacity control, e.g. partitioning, end-of-life degradation
- G06F 2212/7205: Cleaning, compaction, garbage collection, erase control
- G06F 2212/7208: Multiple device management, e.g. distributing data over multiple flash devices
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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

### Claim 1

A storage system, comprising:
storage memory having sub-drives, the sub-drives comprising a first sub-drive and a second sub-drive;
one or more controllers configured to cause:
providing an identification of one or more recently written superblocks for the first sub-drive;
receiving a first data; and
when the first data invalidates a logical block address associated with the one or more recently written superblocks for the first sub-drive:
writing the first data into the second sub-drive that is next hotter than the first sub-drive; and
refraining from writing the first data into an open block in the first sub-drive.

### Claim 2 (depends on 1)

The storage system of claim 1, wherein the one or more controllers are configured to cause:
when the first data does not invalidate the logical block address associated with the one or more recently written superblocks for the first sub-drive, writing the first data into the open block in the first sub-drive,
wherein the first sub-drive includes a block corresponding to the logical block address.

### Claim 3 (depends on 2)

The storage system of claim 2,
wherein providing the identification of the one or more recently written superblocks for the first sub-drive comprises providing the identification for only a predetermined number of the one or more recently written superblocks for the first sub-drive, and
wherein the one or more controllers are configured to cause:
updating the identification of the one or more recently written superblocks for the first sub-drive when the first data is written into the open block of the first sub-drive; and
when a quantity of the one or more recently written superblocks exceeds the predetermined number, removing an identification of an oldest recently written superblock for the first sub-drive from the identification of the one or more recently written superblocks for the first sub-drive.

### Claim 4 (depends on 1)

The storage system of claim 1, wherein the one or more controllers are configured to cause:
moving data previously stored in the first sub-drive into a different sub-drive of the storage memory by re-mapping at least a portion of the data previously stored in the first sub-drive, without rewriting the at least a portion of the data previously stored in the first sub-drive, into a different physical location of the storage memory.

### Claim 5 (depends on 4)

The storage system of claim 4, wherein moving the data previously stored in the first sub-drive comprises moving the data previously stored in the first sub-drive into the different sub-drive of the storage memory, independently of any garbage collection operation in the first sub-drive.

### Claim 6 (depends on 4)

The storage system of claim 4, wherein:
the at least a portion of the data previously 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 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
re-mapping the at least a portion of the data previously stored in the first sub-drive comprises selecting a coldest superblock of the first sub-drive and re-mapping the coldest superblock to the different sub-drive.

### Claim 7 (depends on 4)

The storage system of claim 4, wherein:
the at least a portion of the data previously 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 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
re-mapping the at least a portion of the data previously stored in the first sub-drive comprises selecting a hottest superblock of the first sub-drive and re-mapping the hottest superblock to the different sub-drive.

### Claim 8 (depends on 1)

The storage system of claim 1, comprising:
an open block group, comprising superblocks assignable to any of the sub-drives for data storage,
wherein the one or more controllers are configured to cause:
initiating a garbage collection operation in one of the sub-drives in response to detecting that an amount of the superblocks in the open block group is below a predetermined minimum threshold; and
selecting 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.

### Claim 9 (depends on 1)

The storage system of claim 1, wherein the one or more controllers are configured to cause: when valid data is relocated during a garbage collection operation, relocating the valid data only within a same sub-drive of the storage memory.

### Claim 10 (depends on 1)

The storage system of claim 1, wherein the one or more controllers are configured to cause:
re-mapping at least a portion of data stored in the first sub-drive when an amount of valid data in the first sub-drive exceeds a predetermined amount of logical address space assigned to the first sub-drive.

### Claim 11

A method for a storage system, the method comprising:
providing an identification of one or more recently written superblocks for a first sub-drive of storage memory;
receiving a first data; and
when the first data invalidates a logical block address associated with the one or more recently written superblocks for the first sub-drive:
writing the first data into a second sub-drive that is next hotter than the first sub-drive; and
refraining from writing the first data into an open block in the first sub-drive.

### Claim 12 (depends on 11)

The method of claim 11, comprising:
when the first data does not invalidate the logical block address associated with the one or more recently written superblocks for the first sub-drive, writing the first data into the open block in the first sub-drive,
wherein the first sub-drive includes a block corresponding to the logical block address.

### Claim 13 (depends on 11)

The method of claim 11, comprising:
moving data previously stored in the first sub-drive into a different sub-drive of the storage memory by re-mapping at least a portion of the data previously stored in the first sub-drive, without rewriting the at least a portion of the data previously stored in the first sub-drive, into a different physical location of the storage memory.

### Claim 14 (depends on 13)

The method of claim 13, wherein moving the data previously stored in the first sub-drive comprises moving the data previously stored in the first sub-drive into the different sub-drive of the storage memory, independently of any garbage collection operation in the first sub-drive.

### Claim 15 (depends on 11)

The method of claim 11, wherein:
the storage memory comprises an open block group, the open block group comprising superblocks assignable to any of sub-drives of the storage memory; and
the method comprises:
initiating a garbage collection operation in one of the sub-drives in response to detecting that an amount of the superblocks in the open block group is below a predetermined minimum threshold; and
selecting a source superblock for the garbage collection operation from a sub-drive of the storage memory having an amount of overprovisioning that is greater than a target overprovisioning for the sub-drive.

### Claim 16 (depends on 11)

The method of claim 11, comprising:
when valid data is relocated during a garbage collection operation, relocating the valid data only within a same sub-drive of the storage memory.

### Claim 17 (depends on 11)

The method of claim 11, comprising:
re-mapping at least a portion of data stored in the first sub-drive when an amount of valid data in the first sub-drive exceeds a predetermined amount of logical address space assigned to the first sub-drive.

### Claim 18

An apparatus, comprising:
means for providing an identification of one or more recently written superblocks for a first sub-drive of storage memory;
means for receiving a first data; and
when the first data invalidates a logical block address associated with the one or more recently written superblocks for the first sub-drive:
means for writing the first data into a second sub-drive that is next hotter than the first sub-drive; and
means for refraining from writing the first data into an open block in the first sub-drive.

### Claim 19 (depends on 18)

The apparatus of claim 18, comprising:
when the first data does not invalidate the logical block address associated with the one or more recently written superblocks for the first sub-drive, means for writing the first data into the open block in the first sub-drive,
wherein the first sub-drive includes a block corresponding to the logical block address.

### Claim 20 (depends on 18)

The apparatus of claim 18, comprising:
means for moving data previously stored in the first sub-drive into a different sub-drive of the storage memory,
wherein the means for moving comprises means for re-mapping at least a portion of the data previously stored in the first sub-drive, without rewriting the at least a portion of the data previously stored in the first sub-drive, into a different physical location of the storage memory.
