# US 11,907,536 B2 · Data dispersion-based memory management

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

- Number: US 11,907,536 B2
- Document ID: US11907536B2
- Status: Granted
- Kind: B2
- Application number: 18/093,069
- Filed: 2023-01-04
- Published: 2023-05-11
- Granted: 2024-02-20
- Earliest claimed: 2020-08-31
- Assignees: Micron Technology, Inc.
- Applicants: Micron Technology, Inc.
- Inventors: Ashutosh Malshe; Vamsi Pavan Rayaprolu; Kishore K. Muchherla
- Web page: https://patentgrep.com/patent/US11907536B2

## CPC

- G06F 3/0608: {Saving storage space on storage systems}
- G06F 3/064: {Management of blocks}
- G06F 3/0646: {Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems}
- G06F 3/0652: {Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket}
- G06F 3/0653: {Monitoring storage devices or systems}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method includes determining a respective number of and respective locations of valid data portions of a plurality of blocks of NAND memory cells, based on the respective locations of the valid data portions, determining respective dispersions of the valid data portions within the plurality of blocks of NAND memory cells, based at least on the respective dispersions, selecting a block of NAND memory cells from the plurality of blocks of NAND memory cells, and performing a folding operation on the selected block.

## Claims

### Claim 1

A non-transitory computer-readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to:
determine candidate memory blocks based on respective valid translation counts (VTC) of a plurality of memory blocks;
determine respective dispersions of valid data portions in pages in each candidate memory block;
select a candidate memory block from the candidate blocks of NAND memory cells; and
perform a folding operation on the selected candidate memory block.

### Claim 2 (depends on 1)

The medium of claim 1, wherein the selected candidate memory block has the lowest respective dispersion of the valid data portions.

### Claim 3 (depends on 1)

The medium of claim 1, further comprising selection of the candidate memory block based at least on the respective dispersions of the valid data portions in the pages of each respective candidate memory block.

### Claim 4 (depends on 1)

The medium of claim 1, wherein performing the folding operation further comprises performing a media scan operation invoking a portion of but not all of the selected candidate memory blocks.

### Claim 5 (depends on 1)

The medium of claim 1, wherein performing the folding operation further comprises performing a media scan operation invoking individual block stripes of the selected candidate memory block.

### Claim 6

An apparatus, comprising:
a plurality of memory blocks; and
a controller coupled to the plurality of memory blocks, wherein the controller is configured to:
determine a respective number of and respective locations of valid translation units in the plurality of memory blocks;
based on the respective number of the valid translation units, determine respective valid translation unit counts (VTC) of the plurality of memory blocks;
determine candidate memory blocks based on the respective VTC;
determine respective dispersions of the valid translation units in pages in each candidate memory block;
select a candidate memory block; and
perform a folding operation on a portion of the selected candidate block.

### Claim 7 (depends on 6)

The apparatus of claim 6, wherein the plurality of memory blocks further comprise a plurality of interleaved memory blocks.

### Claim 8 (depends on 7)

The apparatus of claim 7, wherein the plurality of interleaved memory blocks further comprise a plurality of interleaved NAND memory blocks.

### Claim 9 (depends on 8)

The apparatus of claim 8, wherein each of the interleaved NAND memory blocks are deployed across a plurality of memory dice having a plurality of planes and a plurality of pages.

### Claim 10 (depends on 9)

The apparatus of claim 9, wherein the controller is configured to determine the respective dispersion by determination of a respective number of the plurality of pages having at least one of the respective number of valid translation units.

### Claim 11 (depends on 10)

The apparatus of claim 10, wherein the controller is configured to perform the folding operation exclusively on the respective number of pages having the at least one of the respective number of valid translation units.

### Claim 12 (depends on 6)

The apparatus of claim 6, wherein the selected candidate memory block has the lowest respective dispersion of valid translation unit counts.

### Claim 13

A system, comprising:
a plurality of blocks of non-volatile memory cells; and
a controller coupled to the plurality of blocks, wherein the controller is configured to:
determine a respective valid translation unit count (VTC) of a subset of the memory blocks is less than a validity threshold;
designate the subset as candidate memory blocks;
determine respective dispersions of valid translation units in pages of each of the candidate memory blocks;
select a candidate memory block based on the respective dispersions of the translation units; and
perform a folding operation on the selected candidate memory block.

### Claim 14 (depends on 13)

The system of claim 13, wherein the controller is further configured to determine respective valid translation unit count (VTC) of each memory block by performance of a media scan operation of each memory block.

### Claim 15 (depends on 13)

The system of claim 13, wherein the controller is further to select the candidate memory blocks based on a type of media management operation to be performed on the candidate memory block.

### Claim 16 (depends on 15)

The system of claim 15, wherein the media management operation is a background garbage collection operation.

### Claim 17 (depends on 15)

The system of claim 15, wherein the media management operation is a foreground garbage collection operation.

### Claim 18 (depends on 13)

The system of claim 13, wherein the candidate memory blocks comprise a first candidate memory block and a second candidate memory block, wherein the first candidate memory block has a first VTC that is within +/−20 percent of a second VTC of the second candidate memory blocks.

### Claim 19 (depends on 18)

The system of claim 18, wherein the controller is configured to select the candidate memory block by determination of whether the first candidate memory block or the second candidate memory block has a lower dispersion of valid translation units.

### Claim 20 (depends on 19)

The system of claim 19, wherein the controller, in response to determination of whether the first candidate memory block or the second candidate memory block has the lower dispersion of valid translation units, is configured to select the first candidate memory block or the second candidate memory block with the lower dispersion of valid translation units.
