One-time programming in reprogrammable memory
First Claim
1. A storage device comprising:
- a plurality of electrically erasable memory elements configured to store data, wherein each memory element is programmable a number of write cycles before reaching a write failure state; and
a controller coupled to the plurality of memory elements, wherein the controller comprises;
a receiver configured to receive an instruction to drive a selected memory element to the write failure state;
a write engine configured to perform a predetermined number of write operations to write a data value to the selected memory element that is an opposite of an initial data value stored in the selected memory element to switch the storage device out of a debug mode and to initiate a write operation to attempt to write a test data value to the selected memory element, wherein the data value comprises a non-zero sequence of at least three bits, and wherein the test data value is different from the data value; and
a comparator configured to generate a comparison result of a comparison of a stored data value of the selected memory element to the test data value, wherein the comparison result is indicative of whether the test data value is stored in the selected memory element, and wherein the write engine is further configured to perform a final set of additional write operations to attempt to write the data value to the selected memory element in response to a determination that the stored data value is not equal to the test data value.
10 Assignments
0 Petitions
Accused Products
Abstract
A portion of a reprogrammable storage device is used to implement permanent data storage. The storage device includes a plurality of electrically erasable memory elements and a controller. The plurality of electrically erasable memory elements are configured to store data. Each memory element is programmable a number of write cycles before reaching a write failure state. The controller is coupled to the plurality of memory elements. The controller includes a receiver and a write engine. The receiver receives an instruction to drive a selected memory element to the write failure state. The write engine repeatedly writes a data value, in a plurality of write operations, to the selected memory element until the write failure state of the selected memory element is established.
10 Citations
15 Claims
-
1. A storage device comprising:
-
a plurality of electrically erasable memory elements configured to store data, wherein each memory element is programmable a number of write cycles before reaching a write failure state; and a controller coupled to the plurality of memory elements, wherein the controller comprises; a receiver configured to receive an instruction to drive a selected memory element to the write failure state; a write engine configured to perform a predetermined number of write operations to write a data value to the selected memory element that is an opposite of an initial data value stored in the selected memory element to switch the storage device out of a debug mode and to initiate a write operation to attempt to write a test data value to the selected memory element, wherein the data value comprises a non-zero sequence of at least three bits, and wherein the test data value is different from the data value; and a comparator configured to generate a comparison result of a comparison of a stored data value of the selected memory element to the test data value, wherein the comparison result is indicative of whether the test data value is stored in the selected memory element, and wherein the write engine is further configured to perform a final set of additional write operations to attempt to write the data value to the selected memory element in response to a determination that the stored data value is not equal to the test data value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method comprising:
-
receiving an instruction to drive a selected block of memory elements to a write failure state to permanently store a data value; performing a predetermined number of write operations to write a data value to the selected block of memory elements that is an opposite of an initial data value stored in the selected memory element to switch the storage device out of a debug mode, wherein the data value comprises a non-zero sequence of at least three bits; initiating a write operation to attempt to write a test data value to the selected block of memory elements, wherein the test data value is different from the data value; generating a comparison result of a comparison of a stored data value of the selected block of memory elements to the test data value, wherein the comparison result is indicative of whether the test data value is stored in the selected block of memory elements; and performing a final set of additional write operations to attempt to write the data value to the selected block of memory elements in response to a determination that the stored data value is not equal to the test data value. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A system comprising:
-
a plurality of rewritable memory elements within a memory device, wherein at least some of the memory elements are designated for use in a state in which the designated memory elements cannot be rewritten; and a controller coupled to the plurality of memory elements, wherein the controller comprises; a read engine to read a stored data value from a block within the designated memory elements; a write engine configured to perform a predetermined number of a write operations to write a data value to the block within the designated memory elements that is an opposite of an initial data value stored in the selected memory element to switch the storage device out of a debug mode and to initiate a write operation to attempt to write a test data value to the block within the designated memory elements, wherein the data value comprises a non-zero sequence of at least three bits, and wherein the test data value is different from the data value; and a comparator configured to generate a comparison result of a comparison of a stored data value of the block within the designated memory elements to the test data value, wherein the comparison result is indicative of whether the test data value is stored in the block within the designated memory elements, and wherein the write engine is further configured to perform a final set of additional write operations to attempt to write the data value to the block within the designated memory elements in response to a determination that the stored data value is not equal to the test data value. - View Dependent Claims (15)
-
Specification