IP Library › Granted Patent US 9,823,860
Granted Patent B2
US 9,823,860 · App. 14/213,732 · Granted Nov 21, 2017

One-time programming in reprogrammable memory

Inventors: Marc Vauclair (Overijse, BE); Philippe Teuwen (Etterbeek, BE)
Assignee: NXP B.V.
G06F3/0619G06F3/0652G06F3/0679G11C7/1045G11C13/0069G11C16/22G11C17/165G06F2206/1014G11C11/005G11C13/0035G11C13/0059G11C2013/0083
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,823,860
App. No.
14/213,732
Filed
Mar 14, 2014
Granted
Nov 21, 2017
Kind
B2
Art Unit
2131
USPC
711/103
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.

Claims (43)

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.

2. The storage device of claim 1 , wherein the write engine is further configured to perform additional write operations to write the data value to the selected memory element in response to a determination that the stored data value equals the test data value.

3. The storage device of claim 2 , wherein the controller is further configured to control the write engine and the comparator to repeat:

the write operations to write the test data value;

the comparison; and

the additional write operations;

until the comparison result is indicative that the stored data value does not equal the test data value.

4. The storage device of claim 1 , wherein the write engine is further configured to:

perform a first sequence of the write operations to repeatedly write the data value to the selected memory element, wherein the first sequence of the write operations comprises a number of write operations equal to or greater than a first threshold number of write cycles; and

perform a second sequence of the write operations to write the data value to the selected memory element in response to a determination that the selected memory element can store a newly written data value.

5. The storage device of claim 4 , wherein the controller further comprises:

a read engine configured to read a stored data value from the selected memory element after each sequence of the write operations; and

wherein the write engine is further configured to repeat the second sequence of the write operations in response to a subsequent determination that the selected memory element can store another newly written data value.

6. The storage device of claim 5 , wherein the controller further comprises:

a data value generator to generate an arbitrary data value;

wherein the write engine is further configured to write the arbitrary data value to the selected memory element prior to the read engine reading the stored data value; and

a comparator configured to compare the stored data value of the selected memory element to the arbitrary data value to determine if the arbitrary data value is stored in the selected memory element.

7. The storage device of claim 1 , wherein the controller is further configured to manage a map of the plurality of memory elements, wherein the map designates blocks of the memory elements to drive to the write failure state for storage of fused data values that cannot be changed by subsequent write operations.

8. The storage device of claim 7 , wherein the controller further comprises an override engine, wherein the override engine prevents wear leveling procedures for the blocks of the memory elements designated in the map for storage of the fused data values.

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.

10. The method of claim 9 , wherein performing the plurality of repetitive write operations further comprises rewriting the data value to the selected block of memory elements until the write failure state is achieved for the selected block of memory elements.

11. The method of claim 9 , further comprising:

determining that the stored data value is equal to the test data value; and

performing an additional sequence of write operations to attempt to write the data value to the selected block of memory elements to achieve the write failure mode of the selected block of memory elements.

12. The method of claim 9 , further comprising reserving a portion of the plurality of electrically erasable memory elements for driving to the write failure state and storing data that cannot be changed by subsequent write operations.

13. The method of claim 9 , further comprising preventing application of wear leveling techniques to the selected block of memory elements.

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.

15. The system of claim 14 , wherein the controller is further configured to store a designation of the block within the designated memory elements as storing a fused data value that cannot be changed by a subsequent write operation.

Assignments (10)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2014
From: VAUCLAIR, MARC; TEUWEN, PHILIPPE
To: NXP B.V.
Reel/Frame 032446/0801 →
Continuity (1)
Related Publication 20150261458A1 · Sep 17, 2015