Data scrambling in memory devices
AssigneeApple Inc.
InventorsNaftali Sommer, Micha Anholt, Oren Golov, Uri Perlmutter, Shai Winter
Life of this patent
Estimating the term…
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.
Claims22
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.
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.
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.
Dependencies are inferred from the claim text.