Data scrambling in memory devices
First Claim
Patent Images
1. A method for data storage, comprising:
- encoding data for storage in a memory device with an Error Correction Code (ECC);
encoding a given scrambling seed with the ECC;
scrambling the encoded data dependent upon the encoded scrambling seed;
determining a statistical distribution of the scrambled encoded data;
computing a measure of randomness of the scrambled encoded data dependent upon the determined statistical distribution; and
modifying a scrambling configuration of the scrambled encoded data dependent upon the computed measure of randomness;
storing the encoded data having the modified scrambling configuration in the memory device;
wherein scrambling the encoded data comprises;
encoding two or more candidate scrambling seeds with the ECC;
scrambling the encoded data with each of the two or more encoded candidate scrambling seeds, to create a respective two or more scrambled encoded data;
wherein computing the measure of randomness comprises computing a respective level of randomness for each of the respective two or more scrambled encoded data; and
wherein modifying the scrambling configuration comprises selecting one of the respective two or more scrambled encoded data dependent upon the respective levels of randomness.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for data storage includes scrambling data for storage in a memory device using a given scrambling seed. A statistical distribution of the scrambled data is assessed, and a measure of randomness of the statistical distribution is computed. A scrambling configuration of the data is modified responsively to the measure of randomness, and the data having the modified scrambling configuration is stored in the memory device.
205 Citations
22 Claims
-
1. A method for data storage, comprising:
- encoding data for storage in a memory device with an Error Correction Code (ECC);
encoding a given scrambling seed with the ECC;
scrambling the encoded data dependent upon the encoded scrambling seed;
determining a statistical distribution of the scrambled encoded data;
computing a measure of randomness of the scrambled encoded data dependent upon the determined statistical distribution; and
modifying a scrambling configuration of the scrambled encoded data dependent upon the computed measure of randomness;
storing the encoded data having the modified scrambling configuration in the memory device;
wherein scrambling the encoded data comprises;
encoding two or more candidate scrambling seeds with the ECC;
scrambling the encoded data with each of the two or more encoded candidate scrambling seeds, to create a respective two or more scrambled encoded data;
wherein computing the measure of randomness comprises computing a respective level of randomness for each of the respective two or more scrambled encoded data; and
wherein modifying the scrambling configuration comprises selecting one of the respective two or more scrambled encoded data dependent upon the respective levels of randomness. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
- encoding data for storage in a memory device with an Error Correction Code (ECC);
-
10. Apparatus for data storage, comprising:
- an interface, which is configured to communicate with a memory device; and
a processor, which is configured to;
encode data for storage in the memory device with an Error Correction Code (ECC);
encode a scrambling seed with the ECC;
scramble the encoded data for storage in the memory device dependent upon the encoded scrambling seed;
determine a statistical distribution of the scrambled encoded data;
compute a measure of randomness of the scrambled encoded data dependent upon the determined statistical distribution;
modify, a scrambling configuration of the scrambled encoded data dependent upon the computed measure of randomness of the scrambled data;
store the scrambled encoded data having the modified scrambling configuration in the memory device. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
- an interface, which is configured to communicate with a memory device; and
-
19. A computer-accessible non-transitory storage medium having program instructions stored therein that, in response to execution by a computer system, cause the computer system to perform operations including:
- receiving, from a host, data to be stored in a memory device;
encoding the received data with an Error Correction Code (ECC);
initializing a scrambling seed;
encoding the scrambling seed with the ECC;
scrambling the encoded data dependent upon the encoded scrambling seed;
determining a statistical distribution of the scrambled encoded data;
computing a measure of randomness of the scrambled encoded data dependent upon the statistical distribution;
modifying the encoded scrambling seed dependent upon the computed measure of randomness;
re-scrambling the encoded data dependent upon the modified encoded scrambling seed; and
storing the re-scrambled encoded data into the memory device;
wherein scrambling the encoded data comprises;
encoding two or more candidate scrambling seeds with the ECC;
scrambling the encoded data with each of the two or more encoded candidate scrambling seeds, to create a respective two or more scrambled encoded data;
wherein computing the measure of randomness comprises computing a respective level of randomness for each of the respective two or more scrambled encoded data; and
wherein modifying the scrambling configuration comprises selecting one of the respective two or more scrambled encoded data dependent upon the respective levels of randomness. - View Dependent Claims (20, 21, 22)
- receiving, from a host, data to be stored in a memory device;
Specification