IP Library › Granted Patent US 12,572,420
Granted Patent B2
US 12,572,420 · App. 18/444,523 · Granted Mar 10, 2026

Data protection supplemental to data recovery

Inventors: Joseph M. McCrate (Boise, ID); Marco Sforzin (Cernusco Sul Naviglio, IT); Paolo Amato (Treviglio, IT); Brian M. Twait (Meridian, ID)
Assignee: Micron Technology, Inc.
G06F11/1076G06F11/1004G06F11/1016
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 12,572,420
App. No.
18/444,523
Granted
Mar 10, 2026
Kind
B2
Abstract

A redundant array of independent disks (RAID) protection can be provided along with other types of error correction code (ECC) schemes that can correct residual bit errors. The bit errors correctable by the ECC schemes not only include those errors that have been existing in input data used for the RAID process, but also those bit errors may have been propagated due to the existing errors.

Claims (51)

1 . A method, comprising:

receiving a read command to access a first user data block (UDB) stored in one or more first memory units;

responsive to receiving the read command:

performing, using a parity data block comprising data recovery information and read from a second one or more memory units, a respective data recovery operation on each of a plurality of subsets corresponding to the first UDB, wherein each subset of the plurality of subsets corresponds to a respective memory unit of the one or more first memory units;

performing, to correct one or more bit errors remaining in at least two subsets of the plurality of subsets, a respective error correction operation on each one of a plurality of first results of the plurality of respective data recovery operations using auxiliary data read from one or more third memory units, wherein the auxiliary data further comprises error correction information and error detection information;

performing a respective error detection operation on each one of a plurality of second results of the plurality of respective error correction operation using the error detection information; and

providing, as a response to the read command, a notification indicating that none of the plurality of second results is indicated as not including one or more bit errors.

2 . The method of claim 1 , wherein:

the auxiliary data further comprises error detection information; and

the method further comprises performing, prior to performing the data recovery operation, an error detection operation on the first UDB using the error detection information to indicate whether the first UDB includes the one or more bit errors.

3 . The method of claim 1 , further comprising performing the plurality of respective data recovery operations in parallel.

4 . The method of claim 1 , further comprising providing, as a response to the read command, one of the plurality of second results that is indicated as not including one or more bit errors.

5 . An apparatus, comprising:

a plurality of memory units; and

a controller communicatively coupled to the plurality of memory units respectively via a plurality of channels, the controller configured to:

receive a read command to access a first user data block (UDB) stored in one or more first memory units of the plurality of memory units;

in response to receipt of the read command:

read, from the one or more first memory units, subsets of a plurality of subsets and respectively corresponding to a plurality of UDBs, wherein the plurality of UDBs includes the first UDB and corresponding to a redundant array of independent disks (RAID);

read, from one or more second memory units, one or more subsets of the plurality of subsets and corresponding to auxiliary data that comprises error correction information;

read, from one or more third memory units, one or more subsets of the plurality of subsets and corresponding to a parity data block (PDB) comprising data recovery information;

perform, using the data recovery information of the PDB and in response to the plurality of subsets being indicated as containing one or more bit errors, a data recovery operation on at least one subset of a plurality of subsets of the first UDB to recover the at least one subset; and

perform, using the error correction information, a double-error-correction (DEC) operation on the plurality of subsets as the error correction operation to correct:

a single bit error in a first subset of the plurality of subsets used for the data recovery operation; and

a single bit error in a second subset of the plurality of subsets that is mirrored by the single bit error in the first subset, wherein the second subset is a subset recovered via the data recovery operation.

6 . The apparatus of claim 5 , wherein the controller is configured to perform the data recovery operation on each subset of the plurality of subsets regardless of whether each subset includes one or more bit errors or not.

7 . The apparatus of claim 5 , wherein:

the auxiliary data further comprises error detection information; and

the controller is configured to:

perform an error detection operation on a codeword comprising a plurality of UDBs corresponding to a RAID stripe, wherein the plurality of UDBs includes the first UDB; and

perform the data recovery operation in response to the error detection operation indicating one or more bit errors in codeword.

8 . The apparatus of claim 7 , wherein the error detection information corresponds to cyclic redundancy check (CRC) data.

9 . The apparatus of claim 5 , wherein:

the auxiliary data further comprises error detection information; and

the controller is further configured to perform an error detection operation on the plurality of UDBs subsequent to the data recovery operation and to determine if the UDB still contains one or more bit errors.

10 . The apparatus of claim 5 , wherein the data recovery information corresponds to redundant array of independent disks (RAID) parity data.

11 . An apparatus, comprising:

a plurality of memory units configured to store one or more user data blocks (UDBs); and

a controller communicatively coupled to the plurality of memory units respectively via a plurality of channels, the controller configured to:

receive data corresponding to a first UDB as part of a write command to write the first UDB to one or more first memory units of the plurality of memory units;

generate error correction information based on the first UDB, wherein the error correction information is to correct one or more bit errors within the first UDB;

write, via one or more data input/output (DQ) pins, the first UDB to the one or more first memory units; and

write, via one or more data mask inversion (DMI) pins, the error correction information to a second memory unit of the plurality of memory units.

12 . The apparatus of claim 11 , wherein:

the first UDB corresponds to a particular redundant array of independent disks (RAID) stripe, the particular RAID stripe comprising the first UDB, a second UDB, and the error correction information; and

the controller is further configured to generate RAID parity data based on data corresponding to the particular RAID stripe.

13 . The apparatus of claim 12 , wherein the controller is configured to generate the error correction information based on the first UDB and the second UDB.

14 . The apparatus of claim 13 , wherein the controller is configured to:

receive a read command to access the first UDB from the one or more first memory units;

perform a data recovery operation on each subset of a plurality of subsets corresponding to the particular RAID stripe using the RAID parity data, wherein the plurality of subsets corresponds to data read respectively from the one or more first memory units and the second memory unit; and

perform, to correct one or more bit errors on at least two subsets of the plurality of subsets, an error correction operation on each subset of the plurality of subsets using the error correction information.

15 . The apparatus of claim 14 , wherein the controller is configured to perform, to recover a subset of the plurality of subsets, one or more XOR operations among other subsets of the plurality of subsets.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2024
From: MCCRATE, JOSEPH M.; SFORZIN, MARCO; AMATO, PAOLO; TWAIT, BRIAN M.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 066549/0589 →
Continuity (2)
Provisional Application 63450899 · Mar 8, 2023
Related Publication 20240303159A1 · Sep 12, 2024
References Cited (17)
US 11687273B2 · Confalonieri · 2023 [cited by applicant]
US 12222807B2 · Wu · 2025 [cited by examiner]
US 20030217300A1 · Fukumori et al. · 2003 [cited by applicant]
US 20070150790A1 · Gross · 2007 [cited by examiner]
US 20090141544A1 · Sakimura · 2009 [cited by examiner]
US 20120117418A1 · Gilbert · 2012 [cited by examiner]
US 20150067443A1 · Bao · 2015 [cited by examiner]
US 20160117221A1 · Nair et al. · 2016 [cited by applicant]
US 20200104257A1 · Lee et al. · 2020 [cited by applicant]
US 20200278908A1 · Schaefer · 2020 [cited by examiner]
US 20230393940A1 · Del Gatto · 2023 [cited by applicant]
US 20240004751A1 · Sforzin · 2024 [cited by applicant]
US 20240004759A1 · Sforzin · 2024 [cited by applicant]
US 20240004807A1 · Amato · 2024 [cited by applicant]
US 20240005010A1 · Sforzin · 2024 [cited by applicant]
US 20240007265A1 · Amato · 2024 [cited by applicant]
Wikipedia's Cyclic Redundancy Check Historical version published Mar. 7, 2023 https://en.wikipedia.org/w/index.php?title=Cyclic_redundancy_check&oldid=1143342277 (Year: 2023). [cited by examiner]