IP Library Granted Patent US 10,019,332
Granted Patent B1
US 10,019,332 · App. 15/456,237 · Granted Jul 10, 2018

Non-volatile memory with program failure recovery

Inventors: Rohit Sehgal (San Jose, CA); Nian Niles Yang (Mountain View, CA)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F11/2094G11C16/10G11C16/26G06F2201/85
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 10,019,332
App. No.
15/456,237
Granted
Jul 10, 2018
Kind
B1
Abstract

A non-volatile storage system is proposed with an efficient process for recovering from programming failures. In response to determining that a program fault occurred, and prior to completing the programming, the system programs data associated with the program fault to a back-up location. After programming the data associated with the program fault to the back-up location, the system continues programming including programming data that has not yet been subject of a programming process to the back-up location. After completing the programming process, the system moves already programmed data near the location of the program fault to the back-up location.

Claims (60)

1. A method of operating a non-volatile storage system, comprising:

performing burst programming for a non-volatile memory;

determining that a program fault occurred during the burst programming and prior to completing the burst programming;

programming data associated with the program fault to a back-up location in the non-volatile memory;

after programming data associated with the program fault to the back-up location, continuing the burst programming including programming data that has not yet been subject of a programming process to the back-up location; and

after programming data that has not yet been subject of a programming process to the back-up location, moving already programmed data in the non-volatile memory to the back-up location.

2. The method of claim 1 , wherein:

determining that the system is idle, the moving the already programmed data in the non-volatile memory to the back-up location is performed when the system is idle in response to determining that the system is idle.

3. The method of claim 1 , wherein:

the non-volatile memory system includes multiple memory die;

the performing burst programming comprises programming data to multiple word lines of each block of a set of target blocks on different memory die;

the determining that the program fault occurred comprises identifying a faulty memory die, faulty block and faulty word line for the program fault; and

the back-up location is a back-up block on the same faulty memory die as the faulty block.

4. The method of claim 1 , wherein:

the performing burst programming comprises performing full sequence programming for a jumbo block.

5. The method of claim 1 , wherein the moving already programmed data in the non-volatile memory to the back-up location comprises:

sensing the already programmed data, the already programmed data includes errors; and

re-programming the sensed already programmed data with the errors to the back-up location.

6. A non-volatile memory apparatus, comprising:

a plurality of memory cells arranged in blocks;

a plurality of word lines connected to the memory cells; and

a control circuit in communication with the plurality of memory cells and the plurality of word lines, the control circuit is configured to attempt to program data to first memory cells connected to a first word line of a first block and determine that the programming of the data to the first memory cells failed, the control circuit is configured to program the data to second memory cells connected to a particular word line of a second block in response to determining that the programming of the data to the first memory cells failed, the control circuit is configured to program additional data not yet programmed to third memory cells connected to an additional word line of the second block, the control circuit is configured to move old data that is already programmed from memory cells in the first block to memory cells in the second block after the programming additional data to the third memory cells.

7. The non-volatile memory apparatus of claim 6 , wherein:

the control circuit is configured to attempt to program data to first memory cells connected to the first word line of the first block as part of a burst write process that programs data to memory cells on multiple word lines of each block of a set of blocks; and

the control circuit is configured to complete the burst write process prior to moving old data from memory cells in the first block to memory cells in the second block.

8. The non-volatile memory apparatus of claim 6 , wherein:

the control circuit is configured to attempt to program data to first memory cells connected to the first word line of the first block as part of a burst write process that programs data to a set of blocks that form a jumbo block; and

the burst write process is successful for multiple blocks of the jumbo block and failed for the first block.

9. The non-volatile memory apparatus of claim 6 , wherein:

the control circuit is configured to maintain a linking table which indicates correlation between word lines of the first block and word lines of the second block, in the linking table the order of word lines of the first block are different than the order of word lines of the second block.

10. The non-volatile memory apparatus of claim 6 , wherein:

the control circuit is configured to maintain a linking table which indicates correlation between word lines of the first block and word lines of the second block, the linking table indicates where old data from memory cells in the first block are stored in the second block.

11. The non-volatile memory apparatus of claim 6 , wherein:

the control circuit is configured to maintain an indication of back-up blocks prior to attempting to program data to first memory cells connected to the first word line of the first block, the second block is one of the back-up blocks.

12. The non-volatile memory apparatus of claim 6 , wherein:

the control circuit is configured to determine whether the non-volatile memory apparatus is idle; and

the control circuit is configured to move the old data to the second block in response to determining that the memory die is idle.

13. The non-volatile memory apparatus of claim 6 , wherein:

the first block is on a memory die;

the control circuit is configured to determine whether the memory die is idle; and

the control circuit is configured to move the old data to the second block in response to determining that the memory die is idle.

14. The non-volatile memory apparatus of claim 6 , wherein:

the control circuit is configured to move old data from memory cells in the first block to memory cells in the second block by determining whether neighbor data in memory cells connected to a neighbor word line is corrupted and recovering the neighbor data from an XOR sum of data from multiple word lines of the first block if the neighbor data is corrupted.

15. The non-volatile memory apparatus of claim 6 , wherein:

the control circuit is configured to move old data from memory cells in the first block to memory cells in the second block by reading old data from the first block and programming the old data to the second block even if an ECC decoding error exists for the old data.

16. The non-volatile memory apparatus of claim 6 , wherein:

the plurality of memory cells are arranged on multiple dies;

the control circuit is configured to attempt to program data to first memory cells connected to the first word line of the first block as part of a burst write process that programs data to memory cells on multiple word lines of each die of the multiple dies; and

the first block and the second block are on a common die.

17. The non-volatile memory apparatus of claim 6 , wherein:

the plurality of memory cells are arranged in a three dimensional monolithic memory array.

18. A non-volatile memory apparatus, comprising:

a plurality of memory cells arranged in blocks;

a plurality of word lines connected to the memory cells; and

a control circuit in communication with the plurality of memory cells and the plurality of word lines, the control circuit is configured to attempt to program data to first memory cells connected to a first word line of a first block and determine that the programming of the data to the first memory cells failed, the control circuit is configured to program the data to second memory cells connected to a particular word line of a second block in response to determining that the programming of the data to the first memory cells failed, the control circuit is configured to program additional data to third memory cells connected to an additional word line of the second block, the control circuit is configured to move old data from memory cells in the first block to memory cells in the second block after the programming additional data to the third memory cells, the particular word line of the second block is the first word line of the second block to be programmed and is an edge word line, the first word line of the first block is not an edge word line, the control circuit is configured to move old data stored on an edge word line of the first block to a word line of the second block that is not an edge word line.

19. An apparatus, comprising:

a memory interface adapted to connect to multiple memory die; and

means for programming data via the memory interface across multiple word lines of each block of multiple blocks on multiple memory die such that in response to a program fault in a faulty block the programming of data continues using a back-up block for the faulty block to program data that was unsuccessfully programmed due to the program fault and to program additional data, and already programmed data in the faulty block is moved to the back-up block after the additional data is programmed to the back-up block.

20. The apparatus of claim 19 , wherein:

the means for programming determines that the apparatus is idle and moves the already programmed data in the faulty block to the back-up block when the apparatus is idle.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2017
From: SEHGAL, ROHIT; YANG, NIAN NILES
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 041545/0393 →
Cited By (2)
US 12,620,449 US 12,699,526