IP Library Granted Patent US 11,914,471
Granted Patent B1
US 11,914,471 · App. 17/823,365 · Granted Feb 27, 2024

Block failure protection for zone memory system

Inventor: Sanjay Subbarao (Irvine, CA)
Assignee: Micron Technology, Inc.
G06F11/1068G06F11/0793G06F11/1435
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 11,914,471
App. No.
17/823,365
Granted
Feb 27, 2024
Kind
B1
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 (64)

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:

receiving a request to write a set of user data to a select non-parity zone of the plurality of zones;

writing the set of user data to the select non-parity zone in response to the request;

updating a write cursor of the select non-parity zone based on the writing of the set of user data;

determining whether the write cursor of the select non-parity zone 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.

2. 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.

3. The system of claim 2 , 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.

4. 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.

5. 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.

6. 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.

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

8. 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.

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

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

11. 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:

writing a set of user data to a select non-parity zone 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;

updating a write cursor of the select non-parity zone based on the writing of the set of user data;

determining whether the write cursor of the select non-parity zone 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.

12. The at least one non-transitory machine-readable storage medium of claim 11 , 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.

13. The at least one non-transitory machine-readable storage medium of claim 12 , 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.

14. The at least one non-transitory machine-readable storage medium of claim 11 , 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.

15. The at least one non-transitory machine-readable storage medium of claim 11 , 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.

16. The at least one non-transitory machine-readable storage medium of claim 11 , 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.

17. The at least one non-transitory machine-readable storage medium of claim 11 , 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.

18. The at least one non-transitory machine-readable storage medium of claim 11 , 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.

19. The at least one non-transitory machine-readable storage medium of claim 11 , wherein the select non-parity zone comprises one or more quad-level cell (QLC) blocks.

20. A method comprising:

writing a set of user data to a select non-parity zone 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;

updating a write cursor of the select non-parity zone based on the writing of the set of user data;

determining whether the write cursor of the select non-parity zone 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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2023
From: SUBBARAO, SANJAY
To: MICRON TECHNOLOGY, INC.
Reel/Frame 064539/0587 →
Cited By (1)
US 12,216,541