Flash memory device and system with randomizing for suppressing errors
First Claim
1. A device for storing data, comprising:
- (a) a nonvolatile memory; and
(b) a controller, of said nonvolatile memory, operative;
(i) to randomize original data to be stored in said memory while preserving a size of said original data, thereby providing randomized data,(ii) to store said randomized data in said memory, and(iii) in response to a request for said original data by an entity external to the device;
(A) to retrieve said randomized data from said memory,(B) to derandomize said retrieved randomized data, thereby providing retrieved data substantially identical to said original data, and(C) to export said retrieved data to said entity without authenticating said entity.
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.
196 Citations
62 Claims
-
1. A device for storing data, comprising:
-
(a) a nonvolatile memory; and (b) a controller, of said nonvolatile memory, operative; (i) to randomize original data to be stored in said memory while preserving a size of said original data, thereby providing randomized data, (ii) to store said randomized data in said memory, and (iii) in response to a request for said original data by an entity external to the device; (A) to retrieve said randomized data from said memory, (B) to derandomize said retrieved randomized data, thereby providing retrieved data substantially identical to said original data, and (C) to export said retrieved data to said entity without authenticating said entity. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A device for storing data, comprising:
-
(a) a memory that includes; (i) an array of nonvolatile memory cells, and (ii) circuitry operative; (A) to randomize original data that are to be stored in said memory cells while preserving a size of said original data, thereby providing randomized data, (B) to store said randomized data in at least a portion of said memory cells, (C) to retrieve said randomized data from said at least portion of said memory cells, and (D) to derandomize said retrieved randomized data, thereby providing retrieved data substantially identical to said original data; and (b) a controller operative; (i) in response to a request for said original data from an entity external to the device, to export said retrieved data to said entity without authenticating said entity. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 39)
-
-
36. A system for storing data, comprising:
-
(a) a first nonvolatile memory; (b) a second nonvolatile memory wherein is stored a driver for said first nonvolatile memory, said driver including; (i) code for randomizing original data to be stored in said first nonvolatile memory while preserving a size of said original data, thereby providing randomized data, (ii) code for storing said randomized data in said first nonvolatile memory, and (iii) code for responding to a request for said original data by; (A) retrieving said randomized data from said first nonvolatile memory, (B) derandomizing said retrieved randomized data, thereby providing retrieved data substantially identical to said original data, and (C) exporting said retrieved data without authenticating said request; and (c) a processor for executing said code of said driver. - View Dependent Claims (37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53)
-
-
54. A computer-readable storage medium having computer-readable code embedded thereon, the computer-readable code being driver code for a memory device, the computer-readable code comprising:
-
(a) program code for randomizing original data to be stored in a memory of the memory device while preserving a size of the original data, thereby providing randomized data; (b) program code for storing said randomized data in said memory; and (c) program code for responding to a request for said original data by; (i) retrieving said randomized data from said memory, (ii) derandomizing said retrieved randomized data, thereby providing retrieved data substantially identical to said original data, and (iii) exporting said retrieved data without authenticating said request.
-
-
55. A device for storing data, comprising:
-
(a) a nonvolatile memory having a sufficient number of memory cells to store original data by programming said memory cells to a set of corresponding states of said memory cells; and (b) a controller, of said nonvolatile memory, operative; (i) to map said original data into a set of states of all said memory cells that is randomized relative to said set of corresponding states, (ii) to instruct said memory to program said memory cells to said randomized set of states, and (iii) in response to a request for said original data by an entity external to the device; (A) to read said memory cells, thereby providing retrieved randomized data, (B) to derandomize said retrieved randomized data, thereby providing retrieved data substantially identical to said original data, and (C) to export said retrieved data to said entity without authenticating said entity. - View Dependent Claims (56)
-
-
57. A device for storing data, comprising:
-
(a) a memory that includes; (i) a sufficient number of memory cells to store original data by programming said memory cells to a set of corresponding states of said memory cells, and (ii) circuitry operative; (A) to map said original data into a set of states of all said memory cells that is randomized relative to said set of corresponding states, (B) to program said memory cells to said randomized set of states, (C) to read said memory cells, thereby providing retrieved randomized data, and (D) to derandomize said retrieved randomized data, thereby providing retrieved data substantially identical to said original data; and (b) a controller operative, in response to a request for said original data from an entity external to the device, to export said retrieved data to said entity without authenticating said entity. - View Dependent Claims (58)
-
-
59. A system for storing data, comprising:
-
(a) a first nonvolatile memory having a sufficient number of memory cells to store original data by programming said memory cells to a set of corresponding states of said memory cells; (b) a second nonvolatile memory wherein is stored a driver for said first nonvolatile memory, said driver including; (i) code for mapping said original data into a set of states of all said memory cells that is randomized relative to said set of corresponding states, (ii) code for instructing said first nonvolatile memory to program said memory cells to said randomized set of states, and (iii) code for responding to a request for said original data by; (A) instructing said first nonvolatile memory device to read said memory cells, thereby providing retrieved randomized data, (B) derandomizing said retrieved randomized data, thereby providing retrieved data substantially identical to said original data, and (C) exporting said retrieved data without authenticating said request; and (c) a processor for executing said code of said driver. - View Dependent Claims (60)
-
-
61. A computer-readable storage medium having computer-readable code embedded thereon, the computer-readable code being driver code for a memory device that includes a sufficient number of memory cells to store original data by programming the memory cells to a set of corresponding states of the memory cells, the computer-readable code comprising:
-
(a) program code for mapping the original data into a set of states of all the memory cells that is randomized relative to the set of corresponding states; (b) program code for instructing the memory device to program the memory cells to said randomized set of states; and (c) program code for responding to a request for the original data by; (i) instructing the memory device to read the memory cells, thereby providing retrieved randomized data, (ii) derandomizing said retrieved randomized data, thereby providing retrieved data substantially identical to the original data, and (iii) exporting said retrieved data without authenticating said request. - View Dependent Claims (62)
-
Specification