IP Library › Granted Patent US 12,153,801
Granted Patent B2
US 12,153,801 · App. 17/983,870 · Granted Nov 26, 2024

Non-volatile memory with optimized operation sequence

Inventors: Yihang Liu (Santa Clara, CA); Xiaochen Zhu (Milpitas, CA); Jie Liu (Milpitas, CA); Sarath Puthenthermadam (San Jose, CA); Jiahui Yuan (Fremont, CA); Feng Gao (Union City, CA)
Assignee: SanDisk Technologies LLC
G06F3/0619G06F3/064G06F3/0679
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 12,153,801
App. No.
17/983,870
Granted
Nov 26, 2024
Kind
B2
Abstract

A non-volatile memory system separately performs a memory operation for multiple sub-blocks of a block in order from previously determined slowest sub-block of the block to a previously determined faster sub-block of the block. As a slower sub-block is more likely to fail, this order of is more likely to identify a failure earlier in the process thereby saving time and reducing potential for a disturb. In some embodiments, the proposed order of operation can be used in conjunction with a programming process that concurrently programs blocks in multiple planes using completion of programming of a fastest plane to a data state as a trigger to test for program failure of other planes to the data state.

Claims (45)

1. A non-volatile storage apparatus, comprising:

a first group of non-volatile memory cells divided into portions of the first group, each portion of the first group can be independently programmed without programming other portions of the first group; and

a control circuit connected to the memory cells, the control circuit is configured to separately perform a programming operation for multiple portions of the first group in order from previously determined slowest programming portion of the first group to previously determined faster programming portions of the first group such that all selected memory cells of a respective portion of the first group being programmed complete programming or fail programming prior to the control circuit starting programming for a next portion of the first group.

2. The non-volatile storage apparatus of claim 1 , wherein: the first group is a block of non-volatile memory cells; the previously determined slowest programming portion of the first group is an outer sub-block; and a previously determined fastest programming portion of the first group is an inner sub-block.

3. The non-volatile storage apparatus of claim 1 , wherein:

the first group is a block of non-volatile memory cells arranged as NAND strings;

the portions of the first group are sub-blocks of the block;

each of the sub-blocks include a subset of the NAND strings such that each of the NAND strings is positioned in only one of the sub-blocks;

the previously determined slowest programming portion of the group is an outer sub-block; and

the previously determined faster programming portions of the group are inner sub-blocks.

4. The non-volatile storage apparatus of claim 1 , further comprising:

a memory structure, the memory structure comprises multiple planes, each plane comprising multiple groups of non-volatile memory cells divided into portions for each group, each portion of each group can be independently programmed without programming other portions of a same group, the control circuit is connected to the memory structure, the control circuit is configured to concurrently program memory cells in the multiple planes to a data state including using completion of programming of a fastest plane to the data state as a trigger to test for program failure of other planes to the data state, the test for program failure of other planes to the data state comprises determining if the memory cells of the other planes that are targeted for programming to the data state have successfully completed verification of programming for the data state within a predetermined number of doses of programming after completion of programming of the fastest plane to the data state, the control circuit is configured to concurrently program memory cells in the multiple planes to a data state by programming each portion of a group in each plane in order from previously determined slowest programming portion to previously determined faster programming portion and aborting the programming for the respective plane prior to completion of programming for all of the portions of the group in the respective plane in response to determining that any portion of the group in the respective plane failed programming based on the test for program failure.

5. The non-volatile storage apparatus of claim 1 , further comprising:

a memory structure, the memory structure comprises multiple planes, each plane comprising multiple blocks of non-volatile memory cells divided into sub-blocks, each sub-block of each block can be independently programmed without programming other sub-blocks of a same block, the control circuit is connected to the memory structure, the control circuit is configured to concurrently program memory cells in the multiple planes to a data state including using completion of programming of a fastest plane to the data state as a trigger to test for program failure of other planes to the data state, the test for program failure of other planes to the data state comprises determining if the memory cells of the other planes that are targeted for programming to the data state have successfully completed verification of programming for the data state within a predetermined number of doses of programming after completion of programming of the fastest plane to the data state, the control circuit is configured to concurrently program memory cells in the multiple planes to a data state by programming each sub-block of a block in each plane in order from previously determined slowest programming sub-block to previously determined fastest programming sub-block and aborting the programming for the respective plane prior to completion of programming for all of the sub-blocks of the block in the respective plane in response to determining that any sub-block of the block in the respective plane failed programming based on the test for program failure.

6. The non-volatile storage apparatus of claim 5 , wherein:

the doses of programming are voltage pulses.

7. The non-volatile storage apparatus of claim 5 , wherein:

the previously determined slowest programming sub-block is an outer sub-block; and

the previously determined fastest programming sub-block is an inner sub-block.

8. The non-volatile storage apparatus of claim 5 , wherein:

the previously determined slowest programming sub-block is a sub-block position for all blocks.

9. The non-volatile storage apparatus of claim 5 , wherein:

the previously determined slowest programming sub-block is determined separately for all blocks.

10. The non-volatile storage apparatus of claim 5 , wherein:

the control circuit is configured to retire from use for storing host data the block in the respective plane that failed programming based on the test for program failure.

11. The non-volatile storage apparatus of claim 5 , wherein:

the control circuit is configured to check a parameter that indicates the order from previously determined slowest programming sub-block to previously determined fastest programming sub-block.

12. The non-volatile storage apparatus of claim 1 , further comprising:

select lines connected to non-volatile memory cells in multiple portions of the first group and connected to the control circuit such that each portion of the first group can be individually selected by a different select line and a respective select line selects all memory cells of the respective portion.

13. A method for operating non-volatile memory cells of a memory structure, the memory structure is implemented as multiple planes of non-volatile memory cells, each plane comprises multiple blocks of non-volatile memory cells, each block comprises multiple sub-blocks, each sub-block comprises multiple non-volatile memory cells, the method comprising:

determining speed of programming for the multiple sub-blocks relative to each other;

configuring order of programming the multiple sub-blocks from slower programming sub-block of the multiple sub-blocks to faster programming sub-block of the multiple sub-blocks; and

concurrently programming memory cells in the multiple planes to a data state including programming data into multiple subs-blocks of blocks in the configured order of programming the multiple sub-blocks from slower programming sub-block to faster programming sub-block;

wherein the concurrently programming memory cells in the multiple planes to the data state includes using completion of programming of a fastest plane to the data state as a trigger to test for program failure of other planes to the data state, the test for program failure of other planes to the data state comprises determining if the memory cells of the other planes that are targeted for programming to the data state have successfully completed verification of programming for the data state within a predetermined number of doses of programming after completion of programming of the fastest plane to the data state;

wherein the concurrently programming memory cells in the multiple planes to the data state further includes aborting the programming for a respective plane prior to completion of programming for all of the sub-blocks of the block in the respective plane in response to determining that any sub-block of the block in the respective plane failed programming based on the test for program failure.

14. The method of claim 13 , wherein:

the determining speed of programming for the multiple sub-blocks relative to each other comprises testing memory die at die sort.

15. The method of claim 13 , wherein:

the configuring order of programming comprises setting a parameter for the non-volatile memory cells that indicates order of programming among sub-blocks for every block of the memory structure.

16. A non-volatile storage apparatus, comprising:

non-volatile memory cells arranged in a memory structure, the memory structure comprising multiple planes, each plane comprising multiple blocks, each block comprising multiple sub-blocks, each sub-block of a block can be independently programmed without programming other sub-blocks of the block; and

a control circuit connected to the memory structure, the control circuit is configured to concurrently program memory cells in the multiple planes to a data state including using completion of programming of a fastest plane to the data state as a trigger to test for program failure of other planes to the data state, the test for program failure of other planes to the data state comprises determining if the memory cells of the other planes that are targeted for programming to the data state have successfully completed verification of programming for the data state within a predetermined number of doses of programming after completion of programming of the fastest plane to the data state, the control circuit is configured to concurrently program memory cells in the multiple planes to the data state by programming each sub-block of a block in each plane in order from previously determined slowest programming sub-block to previously determined fastest programming sub-block and aborting the programming for the respective plane prior to completion of programming for all of the sub-blocks of the block in the respective plane in response to determining that any sub-block of the block in the respective plane failed programming based on the test for program failure.

17. The non-volatile storage apparatus of claim 16 , wherein:

the previously determined slowest programming sub-block is an outer sub-block; and

the previously determined fastest programming sub-block is an inner sub-block.

Assignments (4)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2022
From: LIU, YIHANG; ZHU, XIAOCHEN; LIU, JIE; PUTHENTHERMADAM, SARATH; YUAN, JIAHUI; GAO, FENG
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 061715/0084 →
Continuity (2)
Continuation In Part 17873617 · Jul 26, 2022
Related Publication 20240036740A1 · Feb 1, 2024