Nonvolatile memory with distributed XOR protection
AssigneeSanDisk Technologies LLC
InventorsMohith Kumar N, Sri Harsha Chintamaneni
Life of this patent
Estimating the term…
Abstract
An apparatus includes control circuits that are configured to connect to a plurality of nonvolatile memory cells. The control circuits are configured to determine that a first portion of user data from the plurality of memory cells that was found to be uncorrectable by ECC is unrecoverable by a first Exclusive OR (XOR) operation using first XOR data and a second portion of user data. The control circuits are further configured to, in response to the determination, recover the first portion of user data by a second XOR operation using second XOR data and a third portion of user data.
Claims19
An apparatus comprising:
- one or more control circuits configured to connect to a plurality of nonvolatile memory cells,
- the one or more control circuits are configured to:
- perform Error Correction Code (ECC) encoding of a plurality of portions of data to be stored in the plurality of memory cells and perform Exclusive OR (XOR) operations on the plurality of portions such that each portion is subject to at least two separate XOR operations that generate different XOR data and in response to determining that a first portion of user data from the plurality of nonvolatile memory cells that was found to be uncorrectable by ECC is unrecoverable by a first XOR operation using first XOR data and a second portion of user data, recover the first portion of user data by a second XOR operation using second XOR data that is different to the first XOR data and a third portion of user data that is different to the second portion of user data.
A method comprising:
- performing Error Correction Code (ECC) encoding of a plurality of portions of data to be stored in the plurality of memory cells;
- performing first Exclusive OR (XOR) operations on the plurality of portions of data such that each portion is XORed with at least one other portion to generate first XOR data;
- performing second XOR operations on the plurality of portions of data such that each portion is additionally XORed with a different at least one other portion to generate second XOR data that is different to the first XOR data;
- reading a first portion of user data from a plurality of nonvolatile memory cells;
- performing ECC decoding of the first portion of user data;
- determining that the first portion of user data is uncorrectable by ECC;
- identifying a second portion of user data stored in the plurality of nonvolatile memory cells and a first portion of XOR data that is an XOR product of the first and second portions of user data;
- determining that at least one of the second portion of user data or the first portion of XOR data is uncorrectable by ECC;
- in response to determining that at least one of the second portion of user data or the first portion of XOR data is uncorrectable by ECC, identifying a third portion of user data that is different to the second portion of user data and is stored in the plurality of nonvolatile memory cells and a second portion of XOR data that is an XOR product of the second and third portions of user data, the second portion of XOR data is different to the first portion of XOR data;
- and
- performing an XOR operation on the third portion of user data and the second portion of XOR data to generate a copy of the first portion of user data.
A data storage system comprising:
- a plurality of nonvolatile memory cells;
- and
- means for performing XOR operations on portions of data to be stored in the plurality of nonvolatile memory cells such that each portion of user data is XORed with at least a first portion of user data to generate first XOR data and with a second portion of user data that is different to the first portion of user data to generate second XOR data that is different to the first XOR data to provide at least two ways to generate a portion of user data from XOR data and other user data such that a portion of data that is uncorrectable by ECC and by a first XOR operation using the first portion of user data with the first XOR data is recoverable by a second XOR operation using the second portion of user data with the second XOR data.
Dependencies are inferred from the claim text.