# US 2017/0286288 A1 · Method and System for Blending Data Reclamation and Data Integrity Garbage Collection

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

- Number: US 2017/0286288 A1
- Document ID: US20170286288A1
- Status: Published application
- Kind: A1
- Application number: 15/422,418
- Filed: 2017-02-01
- Published: 2017-10-05
- Earliest claimed: 2016-03-30
- Assignees: SanDisk Technologies LLC
- Applicants: SanDisk Technologies LLC
- Inventors: James M. Higgins; Ryan R. Jones
- Web page: https://patentgrep.com/patent/US20170286288A1

## CPC

- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0616: {in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]}
- G06F 3/0652: {Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- G06F 11/1048: {using arrangements adapted for a specific error detection or correction feature}
- G06F 2201/81: Threshold
- G06F 2212/1036: Life time enhancement
- G06F 2212/2022: Flash memory
- G06F 2212/7205: Cleaning, compaction, garbage collection, erase control
- G06F 2212/7211: Wear leveling
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The various implementations described herein include systems, methods and/or devices used for garbage collection in memory system. The method includes: (1) determining occurrences of triggering events including data reclamation events, urgent data integrity recycling events, and scheduled data integrity recycling events, and (2) recycling, in response to each of a plurality of triggering events, data in a predefined quantity of memory units from a source memory portion to a target memory portion of the memory system. A respective data reclamation event corresponds to the occurrence of host data write operations in accordance with a target reclamation to host write ratio. A respective urgent data integrity recycling event occurs when a memory portion satisfies predefined urgent read disturb criteria. A respective scheduled data integrity recycling event occurs at a rate corresponding to a projected quantity of memory units to be recycled by the memory system over a period of time.

## Claims

### Claim 1

A method of recycling data in a non-volatile memory system, comprising:
determining occurrences of triggering events, wherein the triggering events include: data reclamation events, urgent data integrity recycling events, and scheduled data integrity recycling events, wherein the data reclamation events include events that each corresponds to the occurrence of one or more host data write operations in accordance with a target reclamation to host write ratio, a respective urgent data integrity recycling event occurs when a respective memory portion of the non-volatile memory system satisfies predefined urgent read disturb criteria, and the scheduled data integrity recycling events include events that occur at a rate corresponding to a projected quantity of memory units for which data integrity recycling is to be performed by the non-volatile memory system over a period of time; and
in response to each of a plurality of triggering events, recycling data in a predefined quantity of memory units from a source memory portion to a target memory portion of the non-volatile memory system.

### Claim 2 (depends on 1)

The method of claim 1, wherein each of the urgent data integrity recycling events and the scheduled data integrity recycling events occurs when a trigger timeout period expires, and wherein the trigger timeout period is set to distinct values in response to different predefined data integrity recycling conditions of the non-volatile memory system.

### Claim 3 (depends on 2)

The method of claim 2, further comprising: resetting a timer to restart the trigger timeout period, in response to recycling data from a respective source memory portion to a respective target memory portion of the non-volatile memory system.

### Claim 4 (depends on 1)

The method of claim 1, wherein the trigger timeout period is set to a predefined minimum timeout value in response to detecting that a memory portion satisfies the predefined urgent read disturb criteria.

### Claim 5 (depends on 1)

The method of claim 1, further comprising, at predefined times, determining a primary trigger timeout period in accordance with the projected quantity of memory units for which data integrity recycling is to be performed by the non-volatile memory system over the period of time.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
providing one or more collections of memory portions each including one or more memory portions based on time attributes associated with the respective memory portions, wherein the one or more collections of memory portions are ordered based on the time attributes of the respective memory portions included in the respective collections of memory portions; and
at a predefined time period, selecting the source memory portion from respective memory portions of a first set of collections of memory portions for data integrity recycling, wherein the first set of collections is determined based on expiration times of the respective collections.

### Claim 7 (depends on 1)

The method of claim 1, wherein a respective scheduled data integrity recycling event corresponds to a determination that one or more respective memory portions of the non-volatile memory system satisfies predefined non-urgent read disturb criteria.

### Claim 8 (depends on 7)

The method of claim 7, further comprising selecting the source memory portion from a list of memory portions of the non-volatile memory system that satisfies the predefined non-urgent read disturb criteria.

### Claim 9 (depends on 1)

The method of claim 1, wherein a respective scheduled data integrity recycling event corresponds to a determination that one or more respective memory portions of the non-volatile memory system satisfy predefined fault criteria.

### Claim 10 (depends on 9)

The method of claim 9, further comprising selecting the source memory portion from a list of memory portions of the non-volatile memory system that satisfies the predefined fault criteria.

### Claim 11 (depends on 1)

The method of claim 1, further comprising, in response to determining occurrences of a first type of non-urgent recycling events and a second type of the non-urgent recycling events, wherein a determination of occurrence of a non-urgent recycling event corresponds to a respective scheduled data integrity recycling event:
calculating a first timeout period for the first type of the non-urgent recycling event, and a second timeout period for the second type of the non-urgent recycling event;
calculating a hybrid timeout period in accordance with the first timeout period and the second timeout period;
selecting a source memory portion based on a predetermined priority between the first type of the non-urgent recycling event and the second type of the non-urgent recycling event; and
recycling data from the source memory portion to the target memory portion of the non-volatile memory system in accordance with the calculated hybrid timeout period.

### Claim 12 (depends on 1)

The method of claim 1, further comprising selecting the target memory portion in accordance with wear leveling criteria.

### Claim 13 (depends on 1)

The method of claim 1, further comprising: storing, for each memory portion, one or more attributes selected from the set consisting of: a time attribute, one or more read disturb counts or status values, a fault attribute, a number of memory units having valid data, a number of memory units having invalid data, and a wear leveling attribute.

### Claim 14 (depends on 1)

The method of claim 1, further comprising:
calculating a first quantity, corresponding to a projected quantity of memory units to be recycled within a prior predefined period;
determining a second quantity, corresponding to a quantity of memory units recycled in the prior predefined period;
determining an adjustment factor based on the first quantity and second quantity;
adjusting the trigger timeout period value in accordance with the adjustment factor.

### Claim 15 (depends on 1)

The method of claim 1, further comprising:
detecting an occurrence of a critical data reclamation event or an urgent data integrity recycling event;
in accordance with detecting a critical data reclamation event, prioritizing recycling data from a source memory portion selected in accordance with data reclamation criteria over recycling data corresponding to the scheduled data integrity recycling events; and
in accordance with detecting a urgent data integrity recycling event, prioritizing recycling data from a source memory portion selected from a list of memory portions of the non-volatile memory system that satisfy predefined urgent read disturb criteria over recycling data corresponding to the scheduled data integrity recycling events.

### Claim 16

A non-volatile memory system, comprising:
non-volatile memory;
one or more processors; and
memory storing one or more programs that, when executed by the one or more processors, cause the non-volatile memory system to perform operations comprising:
determining occurrences of triggering events, wherein the triggering events include: data reclamation events, urgent data integrity recycling events, and scheduled data integrity recycling events, wherein the data reclamation events include events that each corresponds to the occurrence of one or more host data write operations in accordance with a target reclamation to host write ratio, a respective urgent data integrity recycling event occurs when a respective memory portion of the non-volatile memory system satisfies predefined urgent read disturb criteria, and the scheduled data integrity recycling events include events that occur at a rate corresponding to a projected quantity of memory units for which data integrity recycling is to be performed by the non-volatile memory system over a period of time; and
in response to each of a plurality of triggering events, recycling data in a predefined quantity of memory units from a source memory portion to a target memory portion of the non-volatile memory system.

### Claim 17 (depends on 16)

The non-volatile memory system of claim 16, wherein each of the urgent data integrity recycling events and the scheduled data integrity recycling events occurs when a trigger timeout period expires, and wherein the trigger timeout period is set to distinct values in response to different predefined data integrity recycling conditions of the non-volatile memory system.

### Claim 18 (depends on 16)

The non-volatile memory system of claim 16, wherein the one or more programs further include instructions that, when executed by the one or more processors, cause the non-volatile memory system to further perform operations comprising: resetting a timer to restart the trigger timeout period, in response to recycling data from a respective source memory portion to a respective target memory portion of the non-volatile memory system.

### Claim 19 (depends on 16)

The non-volatile memory system of claim 16, wherein the trigger timeout period is set to a predefined minimum timeout value in response to detecting that a memory portion satisfies the predefined urgent read disturb criteria.

### Claim 20

A non-transitory computer readable storage medium, storing one or more programs configured for execution by one or more processors of a non-volatile memory system, the one or more programs including instructions that when executed by the one or more processors cause the non-volatile memory system to perform operations comprising:
determining occurrences of triggering events, wherein the triggering events include: data reclamation events, urgent data integrity recycling events, and scheduled data integrity recycling events, wherein the data reclamation events include events that each corresponds to the occurrence of one or more host data write operations in accordance with a target reclamation to host write ratio, a respective urgent data integrity recycling event occurs when a respective memory portion of the non-volatile memory system satisfies predefined urgent read disturb criteria, and the scheduled data integrity recycling events include events that occur at a rate corresponding to a projected quantity of memory units for which data integrity recycling is to be performed by the non-volatile memory system over a period of time; and
in response to each of a plurality of triggering events, recycling data in a predefined quantity of memory units from a source memory portion to a target memory portion of the non-volatile memory system.
