Nonvolatile memory with self recovery
First Claim
Patent Images
1. A method of securely storing data in a nonvolatile memory array comprising:
- transforming a portion of data according to a first transformation to obtain first transformed data;
storing the first transformed data in a first portion of the memory array;
transforming the portion of data according to a second transformation to obtain second transformed data;
storing the second transformed data in a second portion of the memory array while the first transformed data is stored in the first portion of the memory array, to provide redundant storage of the portion of data;
subsequently, in response to attempting to read the first transformed data from the first portion of the memory array and determining that the first transformed data is uncorrectable by error correction code, reading the second transformed data from the second portion of the memory array andusing the second transformed data to recover the portion of data and subsequently transforming the portion of data according to a third transformation to obtain third transformed data, storing the third transformed data in a third portion of the memory array and erasing the stored first transformed data.
3 Assignments
0 Petitions
Accused Products
Abstract
A nonvolatile memory array includes two or more devices, each device containing data that is scrambled using a different scrambling scheme. When the same data is provided and stored in both devices, different data patterns occur in each device, so that if one of the patterns causes data pattern induced errors, the original data can be recreated from another copy that does not share the same data pattern.
84 Citations
14 Claims
-
1. A method of securely storing data in a nonvolatile memory array comprising:
-
transforming a portion of data according to a first transformation to obtain first transformed data; storing the first transformed data in a first portion of the memory array; transforming the portion of data according to a second transformation to obtain second transformed data; storing the second transformed data in a second portion of the memory array while the first transformed data is stored in the first portion of the memory array, to provide redundant storage of the portion of data; subsequently, in response to attempting to read the first transformed data from the first portion of the memory array and determining that the first transformed data is uncorrectable by error correction code, reading the second transformed data from the second portion of the memory array and using the second transformed data to recover the portion of data and subsequently transforming the portion of data according to a third transformation to obtain third transformed data, storing the third transformed data in a third portion of the memory array and erasing the stored first transformed data. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A nonvolatile memory system comprising:
-
a memory array; a memory controller configured to perform the following operations; transforming a portion of data according to a first transformation to obtain first transformed data storing the first transformed data in a first portion of the memory array; transforming the portion of data according to a second transformation to obtain second transformed data; storing the second transformed data in a second portion of the memory array while the first transformed data is stored in the first portion of the memory array, to provide redundant storage of the portion of data subsequently, in response to attempting to read the first transformed data from the first portion of the memory array and determining that the first transformed data is uncorrectable by error correction code, reading the second transformed data from the second portion of the memory array and using the second transformed data to recover the portion of data and subsequently transforming the portion of data according to a third transformation to obtain third transformed data, storing the third transformed data in a third portion of the memory array and erasing the stored first transformed data. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
Specification