# US 12,216,541 B2 · Block failure protection for zone memory system

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

- Number: US 12,216,541 B2
- Document ID: US12216541B2
- Status: Granted
- Kind: B2
- Application number: 18/406,894
- Filed: 2024-01-08
- Published: 2024-05-09
- Granted: 2025-02-04
- Earliest claimed: 2022-08-30
- Assignees: Micron Technology, Inc.
- Applicants: Micron Technology, Inc.
- Inventors: Sanjay Subbarao
- Web page: https://patentgrep.com/patent/US12216541B2

## CPC

- G06F 11/1068: {in sector programmable memories, e.g. flash disk (G06F11/1072 takes precedence)}
- G06F 11/0793: {Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40)}
- G06F 11/1048: {using arrangements adapted for a specific error detection or correction feature}
- G06F 11/1435: {using file system or storage system metadata}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Various embodiments provide block failure protection for a memory sub-system that supports zones, such a memory sub-system that uses a RAIN (redundant array of independent NAND-type flash memory devices) technique for data error-correction. For some embodiments, non-parity zones of a memory sub-system that are filling up at a similar rate are matched together, a parity is generated for stored data from across the matching zones, and the generated parity is stored in a parity zone of the memory device.

## Claims

### Claim 1

A system comprising:
a memory device comprising a plurality of zones for storing data, each zone of the plurality of zones having a parity cursor and a write cursor, a parity cursor of an individual zone comprising a value that indicates how much space of the individual zone from a beginning of the individual zone is already parity protected, a write cursor of the individual zone comprising a value that indicates where data was last written to in the individual zone; and
a processing device, operatively coupled to the memory device, configured to perform operations comprising:
determining whether a write cursor of a select non-parity zone of the plurality of zones has a greater value than that of a parity cursor of the select non-parity zone; and
in response to the write cursor of the select non-parity zone having a greater value than that of the parity cursor of the select non-parity zone:
scanning at least a portion of the plurality of zones to find a predetermined number of non-parity zones that have parity cursors with a similar value and that respectively have an individual write cursor that is greater than an individual parity cursor;
generating error correction parity data for the predetermined number of non-parity zones based on the similar value of the parity cursors of the predetermined number of non-parity zones; and
storing the error correction parity data to a select parity zone of the plurality of zones.

### Claim 2 (depends on 1)

The system of claim 1, wherein the operations comprise:
writing a set of user data to the select non-parity zone; and
updating the write cursor of the select non-parity zone based on the writing of the set of user data.

### Claim 3 (depends on 1)

The system of claim 1, wherein a parity cursor of the select parity zone has the similar value of the parity cursors of the predetermined number of non-parity zones.

### Claim 4 (depends on 3)

The system of claim 3, wherein the operations comprise:
selecting the select parity zone, from a set of parity zones in the plurality of zones, based on a parity cursor of the select parity zone.

### Claim 5 (depends on 1)

The system of claim 1, wherein the generating of the error correction parity data for the predetermined number of non-parity zones based on the similar value of the parity cursors of the predetermined number of non-parity zones comprises:
performing an exclusive OR (XOR) operation on stored data, from the predetermined number of non-parity zones, at the parity cursors of the predetermined number of non-parity zones.

### Claim 6 (depends on 1)

The system of claim 1, wherein the storing of the error correction parity data to the select parity zone of the plurality of zones comprises:
updating metadata based on storage of the error correction parity data to the select parity zone, the metadata mapping a group of non-parity zones with a parity zone.

### Claim 7 (depends on 1)

The system of claim 1, wherein the operations comprise:
maintaining a plurality of bins having different bin numbers, each individual bin of the plurality of bins comprising:
a candidate set of non-parity zones that have a parity cursor with a value corresponding to a bin number of the individual bin and that respectively have a single write cursor that is greater than a single parity cursor; and
a candidate set of parity zones that have a parity cursor with a value corresponding to the bin number of the individual bin, the scanning of the at least a portion of the plurality of zones is based on the plurality of bins.

### Claim 8 (depends on 1)

The system of claim 1, wherein the predetermined number of non-parity zones is a first predetermined number of non-parity zones, wherein the similar value is a first similar value, wherein the error correction parity data is first error correction parity data, and wherein the operations comprise:
in response to the scanning of the at least a portion of the plurality of zones not finding the first predetermined number of non-parity zones:
scanning the at least a portion of the plurality of zones to find a second predetermined number of non-parity zones that have parity cursors with a second similar value and that respectively have an individual write cursor that is greater than a threshold value;
generating second error correction parity data for the second predetermined number of non-parity zones based on the second similar value of the parity cursors of the second predetermined number of non-parity zones; and
storing the second error correction parity data to an identified parity zone of the plurality of zones.

### Claim 9 (depends on 1)

The system of claim 1, wherein the plurality of zones comprises a sub-plurality of parity zones, each parity zone of the sub-plurality of parity zones comprising one or more single-level cell (SLC) blocks, the sub-plurality of parity zones comprising the select parity zone.

### Claim 10 (depends on 1)

The system of claim 1, wherein the select non-parity zone comprises one or more quad-level cell (QLC) blocks.

### Claim 11 (depends on 1)

The system of claim 1, wherein the plurality of zones is defined according to a Non-Volatile Memory Express specification.

### Claim 12

At least one non-transitory machine-readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to perform operations comprising:
determining whether a write cursor of a select non-parity zone has a greater value than that of a parity cursor of the select non-parity zone, the select non-parity zone being part of a plurality of zones of a memory device, each zone of the plurality of zones having a parity cursor and a write cursor, a parity cursor of an individual zone comprising a value that indicates how much space of the individual zone from a beginning of the individual zone is already parity protected, a write cursor of the individual zone comprising a value that indicates where data was last written to in the individual zone; and
in response to the write cursor of the select non-parity zone having a greater value than that of the parity cursor of the select non-parity zone:
scanning at least a portion of the plurality of zones to find a predetermined number of non-parity zones that have parity cursors with a similar value and that respectively have an individual write cursor that is greater than an individual parity cursor;
generating error correction parity data for the predetermined number of non-parity zones based on the similar value of the parity cursors of the predetermined number of non-parity zones; and
storing the error correction parity data to a select parity zone of the plurality of zones.

### Claim 13 (depends on 12)

The at least one non-transitory machine-readable storage medium of claim 12, wherein a parity cursor of the select parity zone has the similar value of the parity cursors of the predetermined number of non-parity zones.

### Claim 14 (depends on 13)

The at least one non-transitory machine-readable storage medium of claim 13, wherein the operations comprise:
selecting the select parity zone, from a set of parity zones in the plurality of zones, based on a parity cursor of the select parity zone.

### Claim 15 (depends on 12)

The at least one non-transitory machine-readable storage medium of claim 12, wherein the generating of the error correction parity data for the predetermined number of non-parity zones based on the similar value of the parity cursors of the predetermined number of non-parity zones comprises:
performing an exclusive OR (XOR) operation on stored data, from the predetermined number of non-parity zones, at the parity cursors of the predetermined number of non-parity zones.

### Claim 16 (depends on 12)

The at least one non-transitory machine-readable storage medium of claim 12, wherein the storing of the error correction parity data to the select parity zone of the plurality of zones comprises:
updating metadata based on storage of the error correction parity data to the select parity zone, the metadata mapping a group of non-parity zones with a parity zone.

### Claim 17 (depends on 12)

The at least one non-transitory machine-readable storage medium of claim 12, wherein the operations comprise:
maintaining a plurality of bins having different bin numbers, each individual bin of the plurality of bins comprising:
a candidate set of non-parity zones that have a parity cursor with a value corresponding to a bin number of the individual bin and that respectively have a single write cursor that is greater than a single parity cursor; and
a candidate set of parity zones that have a parity cursor with a value corresponding to the bin number of the individual bin, the scanning of the at least a portion of the plurality of zones is based on the plurality of bins.

### Claim 18 (depends on 12)

The at least one non-transitory machine-readable storage medium of claim 12, wherein the predetermined number of non-parity zones is a first predetermined number of non-parity zones, wherein the similar value is a first similar value, wherein the error correction parity data is first error correction parity data, and wherein the operations comprise:
in response to the scanning of the at least a portion of the plurality of zones not finding the first predetermined number of non-parity zones:
scanning the at least a portion of the plurality of zones to find a second predetermined number of non-parity zones that have parity cursors with a second similar value and that respectively have an individual write cursor that is greater than a threshold value;
generating second error correction parity data for the second predetermined number of non-parity zones based on the second similar value of the parity cursors of the second predetermined number of non-parity zones; and
storing the second error correction parity data to an identified parity zone of the plurality of zones.

### Claim 19 (depends on 12)

The at least one non-transitory machine-readable storage medium of claim 12, wherein the plurality of zones comprises a sub-plurality of parity zones, each parity zone of the sub-plurality of parity zones comprising one or more single-level cell (SLC) blocks, the sub-plurality of parity zones comprising the select parity zone.

### Claim 20

A method comprising:
determining whether a write cursor of a select non-parity zone has a greater value than that of a parity cursor of the select non-parity zone, the select non-parity zone being part of a plurality of zones of a memory device, each zone of the plurality of zones having a parity cursor and a write cursor, a parity cursor of an individual zone comprising a value that indicates how much space of the individual zone from a beginning of the individual zone is already parity protected, a write cursor of the individual zone comprising a value that indicates where data was last written to in the individual zone; and
in response to the write cursor of the select non-parity zone having a greater value than that of the parity cursor of the select non-parity zone:
scanning at least a portion of the plurality of zones to find a predetermined number of non-parity zones that have parity cursors with a similar value and that respectively have an individual write cursor that is greater than an individual parity cursor;
generating error correction parity data for the predetermined number of non-parity zones based on the similar value of the parity cursors of the predetermined number of non-parity zones; and
storing the error correction parity data to a select parity zone of the plurality of zones.
