IP Library Granted Patent US 8,054,684
Granted Patent B2
US 8,054,684 · App. 12/642,740 · Granted Nov 8, 2011

Non-volatile memory and method with atomic program sequence and write abort detection

Assignee: Sandisk Technologies Inc.
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 8,054,684
App. No.
12/642,740
Granted
Nov 8, 2011
Kind
B2
Abstract

A program operation in a non-volatile memory is segmented at predefined junctures into smaller segments for execution over different times. The predefined junctures are such that they allow unambiguous identification when restarting the operation in a next segment so that the operation can continue without having to restart from the very beginning of the operation. This is accomplished by requiring the programming sequence of each segment to be atomic, that is, to only terminate at a predetermined type of programming step. In a next segment, the terminating programming step is identified by detecting a predetermined pattern of ECC errors across a group of programmed wordlines.

Claims (49)

1. In a non-volatile memory having an array of memory cells organized into blocks wherein memory cells of each block are erasable together and are accessible by a plurality of word lines, a portion of the wordlines each having a page of cells programmable with multi-bits data by a set of programming passes of multiple types, a method of programming data into a block, comprising:

programming data into a block by programming to a group of wordlines in the block step by step; and

segmenting the programming into a plurality of program segments, each segment having the programming steps terminating on a terminating programming step with a designated type of programming pass among the set such that the terminating programming step is discoverable in a next segment; and

wherein there are three passes in the set of programming passes.

2. In a non-volatile memory having an array of memory cells organized into blocks wherein memory cells of each block are erasable together and are accessible by a plurality of word lines, a portion of the wordlines each having a page of cells programmable with multi-bits data by a set of programming passes of multiple types, a method of programming data into a block, comprising:

programming data into a block by programming to a group of wordlines in the block step by step; and

segmenting the programming into a plurality of program segments, each segment having the programming steps terminating on a terminating programming step with a designated type of programming pass among the set such that the terminating programming step is discoverable in a next segment; and

wherein said programming has each step at a different wordline among the group according to a predetermined, non-sequential order and operating a programming pass different from a previous step.

3. In a non-volatile memory having an array of memory cells organized into blocks wherein memory cells of each block are erasable together and are accessible by a plurality of word lines, a portion of the wordlines each having a page of cells programmable with multi-bits data by a set of programming passes of multiple types, a program operation on a block being segmented into a series of disjointed program segments, a method of identifying a last programming step in a last program segment, comprising:

providing error checking on data programmed to each group of memory cells on a wordline;

identifying a boundary between programmed and erased word lines in the block in a current program segment;

detecting among a group of programmed word lines from the boundary for a predetermined ECC signature indicating the last programming pass in a last program segment is of a designated type of programming pass and which word line it acted on; and

identifying the last programming step in the last program segment based on the designated type of programming pass and the word line acted on by the last programming pass.

4. The method as in claim 3 , wherein:

said identifying a boundary between programmed and erased word lines in the block comprises binary searching the block.

5. The method as in claim 3 , wherein:

the program operation comprises a series of programming steps that operates on the wordlines in the block according to a predetermined, non-sequential order.

6. The method as in claim 3 , wherein:

each wordline is programmable with three 1 bit per cell data pages.

7. A non-volatile memory, comprising:

an array of memory cells organized into blocks wherein memory cells of each block are erasable together and are accessible by a plurality of word lines

a portion of the wordlines each having a page of cells programmable with multi-bits data by a set of programming passes of multiple types;

a controller for operating a program operation, said program operation further comprising:

programming data into a block by programming to a group of wordlines in the block step by step; and

segmenting the programming into a plurality of program segments, each segment having the programming steps terminating on a terminating programming step with a designated type of programming pass among the set such that the terminating programming step is discoverable in a next segment; and

wherein there are three passes in the set of programming passes.

8. A non-volatile memory, comprising:

an array of memory cells organized into blocks wherein memory cells of each block are erasable together and are accessible by a plurality of word lines;

a portion of the wordlines each having a page of cells programmable with multi-bits data by a set of programming passes of multiple types;

a controller for operating a program operation, said program operation further comprising:

programming data into a block by programming to a group of wordlines in the block step by step; and

segmenting the programming into a plurality of program segments, each segment having the programming steps terminating on a terminating programming step with a designated type of programming pass among the set such that the terminating programming step is discoverable in a next segment; and

wherein said programming has each step at a different wordline among the group according to a predetermined, non-sequential order and operating a programming pass different from a previous step.

9. A non-volatile memory, comprising:

an array of memory cells organized into blocks wherein memory cells of each block are erasable together and are accessible by a plurality of word lines;

a portion of the wordlines each having a page of cells programmable with multi-bits data by a set of programming passes of multiple types;

a controller for:

controlling a program operation on a block, the program operation being segmented into a series of disjointed program segments;

providing error checking on data programmed to each group of memory cells on a wordline;

identifying a boundary between programmed and erased word lines in the block in a current program segment;

detecting among a group of programmed word lines from the boundary for a predetermined ECC signature indicating the last programming pass in a last program segment is of a designated type of programming pass and which word line it acted on; and

identifying the last programming step in the last program segment based on the designated type of programming pass and the word line acted on by the last programming pass.

10. The non-volatile memory as in claim 9 , wherein:

said identifying a boundary between programmed and erased word lines in the block comprises binary searching the block.

11. The non-volatile memory as in claim 9 , wherein:

the program operation comprises a series of programming steps that operates on the wordlines in the block according to a predetermined, non-sequential order.

12. The non-volatile memory as in claim 9 , wherein:

each wordline is programmable with three 1 bit per cell data pages.

13. The non-volatile memory as in any one of claims 7 - 12 , wherein the non-volatile memory is flash memory.

Assignments (3)
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0850 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2011
From: SANDISK CORPORATION
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 026294/0228 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2010
From: GOROBETS, SERGEY ANATOLIEVICH; DUSIJA, GAUTAM ASHOK
To: SANDISK CORPORATION
Reel/Frame 023925/0639 →
Continuity (1)
Related Publication 20110149651A1 · Jun 23, 2011