IP Library Granted Patent US 9,471,486
Granted Patent B2
US 9,471,486 · App. 14/324,259 · Granted Oct 18, 2016

Reducing disturbances in memory cells

Inventor: Menahem Lasser (Kohav-Yair, IL)
Assignee: SANDISK TECHNOLOGIES LLC
G06F12/0246G11C16/3427G06F2212/7204G11C2029/0411
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,471,486
App. No.
14/324,259
Granted
Oct 18, 2016
Kind
B2
Abstract

Methods for reducing program disturb in non-volatile memories are described. In some embodiments, a non-volatile storage system may acquire a first set of intermediate data to be written to a plurality of memory cells, determine a current set of intermediate data written in the plurality of memory cells, determine whether to invert the first set of intermediate data based on the current set of intermediate data, invert the first set of intermediate data, and write the inverted first set of intermediate data to the plurality of memory cells. The memory cells that are already at the correct state may be skipped over and not programmed, thereby improving programming speed and reducing the cumulative voltage stress applied to unselected memory cells.

Claims (47)

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

acquiring a set of user-level data to be stored in a plurality of memory cells;

acquiring a first set of intermediate data derived from the set of user-level data;

determining a number of memory cells that will change state if the first set of intermediate data was written to the plurality of memory cells;

determining a second number of memory cells that would be placed into a first state if the first set of intermediate data was written to the plurality of memory cells;

determining a mapping between physical states of a memory cell and data values represented by the physical states based on the number of memory cells that will change state if the first set of intermediate data was written to the plurality of memory cells and on the second number of memory cells that would be placed into the first state; and

storing the set of user-level data in the plurality of memory cells according to the mapping.

2. The method of claim 1 , wherein:

the determining the number of memory cells that will change state if the first set of intermediate data was written to the plurality of memory cells includes reading a current set of intermediate data written in the plurality of memory cells and comparing the current set of intermediate data with the first set of intermediate data.

3. The method of claim 1 , wherein:

the storing the set of user-level data in the plurality of memory cells according to the mapping includes inverting the first set of intermediate data and writing the inverted first set of intermediate data to the plurality of memory cells.

4. The method of claim 1 , wherein:

the storing the set of user-level data in the plurality of memory cells according to the mapping includes inverting the first set of intermediate data if the number of memory cells that will change state if the first set of intermediate data was written to the plurality of memory cells is greater than half of the plurality of memory cells.

5. The method of claim 1 , wherein:

each memory cell of the plurality of memory cells comprises a multi-level memory cell.

6. A non-volatile storage system, comprising:

a plurality of memory cells; and

one or more managing circuits in communication with the plurality of memory cells, the one or more managing circuits configured to acquire a set of user-level data to be stored in the plurality of memory cells and acquire a first set of intermediate data derived from the set of user-level data, the one or more managing circuits configured to determine a number of memory cells that will change state if the first set of intermediate data was written to the plurality of memory cells and determine a second number of memory cells that would be placed into a first state if the first set of intermediate data was written to the plurality of memory cells, the one or more managing circuits configured to determine a mapping between physical states of a memory cell and data values represented by the physical states based on the number of memory cells that will change state if the first set of intermediate data was written to the plurality of memory cells and on the second number of memory cells that would be placed into the first state, the one or more managing circuits configured to cause the set of user-level data to be stored in the plurality of memory cells according to the mapping.

7. The non-volatile storage system of claim 6 , wherein:

the one or more managing circuits configured to read a current set of intermediate data written in the plurality of memory cells and determine the number of memory cells that will change state based on a comparison of the current set of intermediate data and the first set of intermediate data.

8. The non-volatile storage system of claim 6 , wherein:

the one or more managing circuits configured to invert the first set of intermediate data and write the inverted first set of intermediate data to the plurality of memory cells.

9. The non-volatile storage system of claim 6 , wherein:

the one or more managing circuits configured to invert the first set of intermediate data if the number of memory cells that will change state if the first set of intermediate data was written to the plurality of memory cells is greater than half of the plurality of memory cells.

10. A method for operating a non-volatile storage system, comprising:

acquiring a first set of intermediate data to be written to a plurality of memory cells;

determining a number of memory cells that will change state if the first set of intermediate data was written to the plurality of memory cells;

determining a first transformation to apply to the first set of intermediate data based on the number of memory cells that will change state if the first set of intermediate data was written to the plurality of memory cells;

determining a second number of memory cells that would be placed into a first state if the first set of intermediate data was written to the plurality of memory cells, the determining a first transformation includes determining the first transformation based on the number of memory cells that will change state if the first set of intermediate data was written to the plurality of memory cells and on the second number of memory cells that would be placed into the first state;

generating a second set of intermediate data by applying the first transformation to the first set of intermediate data; and

writing the second set of intermediate data to the plurality of memory cells.

11. The method of claim 10 , wherein:

the first transformation includes inverting the first set of intermediate data.

12. The method of claim 10 , wherein:

the first transformation comprises inverting the first set of intermediate data if the number of memory cells that will change state if the first set of intermediate data was written to the plurality of memory cells is greater than half of the plurality of memory cells.

13. The method of claim 10 , wherein:

the determining a number of memory cells that will change state includes determining a current set of intermediate data written in the plurality of memory cells and comparing the current set of intermediate data with the first set of intermediate data.

14. The method of claim 10 , wherein:

the first state corresponds with a lowest resistance state for a memory cell.

15. The method of claim 10 , wherein:

the determining a first transformation includes determining a first average state change distance given that the first set of intermediate data is written to the plurality of memory cells, determining a second average state change distance given that an inverted version of the first set of intermediate data is written to the plurality of memory cells, and determining the first transformation based on the first average state change distance and the second average state change distance.

16. The method of claim 15 , wherein:

the first transformation comprises inverting the first set of intermediate data if the second average state change distance is less than the first average state change distance.

17. The method of claim 10 , wherein:

each memory cell of the plurality of memory cells comprises a multi-level memory cell.

18. The method of claim 10 , wherein:

the non-volatile storage system includes a non-volatile memory including the plurality of memory cells, the non-volatile memory is monolithically formed in one or more physical levels of memory cells having active areas disposed above a silicon substrate.

Assignments (7)
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 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0807 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT LISTED PATENT NUMBER 8853569 TO THE CORRECT PATENT NUMBER 8883569 PREVIOUSLY RECORDED ON REEL 038300 FRAME 0665. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 25, 2016
From: SANDISK 3D LLC
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 038520/0552 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2016
From: SANDISK 3D LLC.
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 038300/0665 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2014
From: LASSER, MENAHEM
To: SANDISK 3D LLC
Reel/Frame 033373/0442 →
Continuity (1)
Related Publication 20160005495A1 · Jan 7, 2016