Flash memory device and system with randomizing for suppressing errors
First Claim
1. A device for storing data, the device comprising:
- a nonvolatile memory; and
a controller, the controller operative to;
randomize original data to be stored in the non-volatile memory while preserving a size of the original data, providing randomized data;
apply error correction encoding to the randomized data, providing encoded randomized data;
store the encoded randomized data in the non-volatile memory; and
in response to a request for the original data by an entity external to the device;
retrieve the encoded randomized data from the non-volatile memory;
apply error correction decoding to the retrieved encoded randomized data, providing decoded randomized data;
derandomize the decoded randomized data, providing retrieved data that is substantially identical to the original data; and
export the retrieved data to the entity without authenticating the entity;
wherein the controller is operative to randomize the original data by summing the original data, modulo 2, with a fixed random bit sequence; and
wherein the controller is operative to derandomize the decoded randomized data by summing the decoded randomized data, modulo 2, with the fixed random bit sequence.
3 Assignments
0 Petitions
Accused Products
Abstract
A device for storing data includes a nonvolatile memory and a controller and/or circuitry that randomize original data to be stored in the memory while preserving the size of the original data, that store the original data in the memory, and that, in response to a request for the original data, retrieve, derandomize and export the original data without authenticating the requesting entity. A system for storing data includes a first nonvolatile memory and a processor that similarly stores data in the first nonvolatile memory by executing driver code stored in a second nonvolatile memory. ECC encoding is applied either before or after randomizing; correspondingly, ECC decoding is applied either after or before derandomizing.
65 Citations
31 Claims
-
1. A device for storing data, the device comprising:
-
a nonvolatile memory; and a controller, the controller operative to; randomize original data to be stored in the non-volatile memory while preserving a size of the original data, providing randomized data; apply error correction encoding to the randomized data, providing encoded randomized data; store the encoded randomized data in the non-volatile memory; and in response to a request for the original data by an entity external to the device; retrieve the encoded randomized data from the non-volatile memory; apply error correction decoding to the retrieved encoded randomized data, providing decoded randomized data; derandomize the decoded randomized data, providing retrieved data that is substantially identical to the original data; and export the retrieved data to the entity without authenticating the entity; wherein the controller is operative to randomize the original data by summing the original data, modulo 2, with a fixed random bit sequence; and wherein the controller is operative to derandomize the decoded randomized data by summing the decoded randomized data, modulo 2, with the fixed random bit sequence.
-
-
2. A device for storing data, the device comprising:
-
a nonvolatile memory; and a controller, the controller operative to; randomize original data to be stored in the non-volatile memory while preserving a size of the original data, providing randomized data; apply error correction encoding to the randomized data, providing encoded randomized data; store the encoded randomized data in the non-volatile memory; and in response to a request for the original data by an entity external to the device; retrieve the encoded randomized data from the non-volatile memory; apply error correction decoding to the retrieved encoded randomized data providing decoded randomized data; derandomize the decoded randomized data, providing retrieved data that is substantially identical to the original data; and export the retrieved data to the entity without authenticating the entity; wherein the controller is operative to randomize the original data by summing the original data, modulo 2, with a pseudorandom bit sequence; wherein the controller is operative to generate the pseudorandom bit sequence using a linear feedback shift register; and wherein the controller is operative to derandomize the decoded randomized data by summing the decoded randomized data, modulo 2, with the pseudorandom bit sequence. - View Dependent Claims (3, 4, 5, 6, 7)
-
-
8. A device for storing data, the device comprising:
-
a nonvolatile memory; and a controller, the controller operative to; randomize original data to be stored in the non-volatile memory while preserving a size of the original data, providing randomized data; apply error correction encoding to the randomized data, providing encoded randomized data; store the encoded randomized data in the non-volatile memory; and in response to a request for the original data by an entity external to the device; retrieve the encoded randomized data from the non-volatile memory; apply error correction decoding to the retrieved encoded randomized data, providing decoded randomized data; derandomize the decoded randomized data, providing retrieved data that is substantially identical to the original data; and export the retrieved data to the entity without authenticating the entity; wherein the controller is operative to randomize the original data by scrambling the original data; and wherein the controller is operative to derandomize the decoded randomized data by descrambling the decoded randomized data. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A system for storing data, the system comprising:
-
a first nonvolatile memory; a second nonvolatile memory wherein is stored a driver for the first nonvolatile memory, the driver including; code for randomizing original data to be stored in the first nonvolatile memory while preserving a size of the original data, providing randomized data; code for applying error correction encoding to the randomized data, providing encoded randomized data; code for storing the encoded randomized data in the first nonvolatile memory; and code for responding to a request for the original data by; retrieving the encoded randomized data from the first nonvolatile memory; applying error correction decoding to the retrieved encoded randomized data, providing decoded randomized data; derandomizing the decoded randomized data, providing retrieved data substantially identical to the original data; and exporting the retrieved data without authenticating the request; and a processor for executing the code of the driver. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A computer-readable storage medium having computer-readable code embedded thereon, the computer-readable code being driver code for a memory device, wherein the computer-readable code, when executed by a processor, causes the processor to:
-
randomize original data to be stored in a memory of the memory device while preserving a size of the original data, randomizing including summing the original data, modulo 2, with a pseudorandom bit sequence generated using a linear feedback shift register, providing randomized data; apply error code correction encoding to the randomized data, providing encoded randomized data; store the encoded randomized data in the memory; and respond to a request for the original data by; retrieving the encoded randomized data from the memory; applying error correction decoding to the retrieved encoded randomized data, providing decoded randomized data; derandomizing the decoded randomized data, providing retrieved data substantially identical to the original data; and exporting the decoded data without authenticating the request.
-
-
31. A computer-readable storage medium having computer-readable code embedded thereon, the computer-readable code being driver code for a memory device, wherein the computer-readable code, when executed by a processor, causes the processor to:
-
randomize original data to be stored in a memory of the memory device while preserving a size of the original data, including summing the original data, modulo 2, with a fixed, random bit sequence, providing randomized data; apply error code correction encoding to the randomized data, providing encoded randomized data; store the encoded randomized data in the memory; and respond to a request for the original data by; retrieving the encoded randomized data from the memory; applying error correction decoding to the retrieved encoded randomized data, providing decoded randomized data; derandomizing the decoded randomized data, providing retrieved data substantially identical to the original data; and exporting the retrieved data without authenticating the request.
-
Specification