IP Library Granted Patent US 11,914,886
Granted Patent B2
US 11,914,886 · App. 17/172,362 · Granted Feb 27, 2024

Nonvolatile memory with on-chip encoding for foggy-fine programming

Inventors: Sergey Anatolievich Gorobets (Edinburgh, GB); Jack Frayer (Boulder Creek, CA)
Assignee: Western Digital Technologies, Inc.
G06F3/0655G06F3/0619G06F3/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 11,914,886
App. No.
17/172,362
Granted
Feb 27, 2024
Kind
B2
Abstract

A non-volatile storage apparatus includes a plurality of non-volatile memory cells formed on a memory die, each non-volatile memory cell configured to hold a plurality of bits of data, and a control circuit formed on the memory die. The control circuit is configured to calculate parity data for data to be stored in the memory cells and program the memory cells to first distributions. The control circuit is also configured to read memory cells in the first distributions, recover the data from results of reading the memory cells in the first distributions combined with the parity data, and further program the memory cells from the first distributions to second distributions to store the data.

Claims (34)

1. A non-volatile storage apparatus, comprising:

an MLC page including a plurality of non-volatile memory cells formed on a memory die, each non-volatile memory cell configured to hold a plurality of bits of data; and

a control circuit positioned on the memory die, the control circuit configured to calculate parity data for a plurality of logical pages of data to be stored in the plurality of non-volatile memory cells, program the plurality of non-volatile memory cells to first distributions in a foggy program operation, read the plurality of non-volatile memory cells in the first distributions to obtain an initial copy of the plurality of logical pages of data in a foggy read operation, latch the initial copy into a plurality of latches on the memory die, combine the parity data and the initial copy in a plurality of logic operations including a plurality of AND operations applied between bits obtained from reading an individual non-volatile memory cell and a corresponding parity data bit to generate a plurality of logic outputs, correct the initial copy according to the plurality of logic outputs by flipping selected bits of the initial copy while the selected bits remain in respective latches of the plurality of latches to generate a recovered copy in the plurality of latches of the plurality of logical pages of data, and further program the plurality of non-volatile memory cells from the first distributions to second distributions to store the recovered copy by programming the recovered copy from the plurality of latches in a fine programming operation.

2. The non-volatile storage apparatus of claim 1 , wherein the control circuit is further configured to program the parity data in additional non-volatile memory cells formed on the memory die, each additional non-volatile memory cell configured to hold one bit of data.

3. The non-volatile storage apparatus of claim 2 , wherein the control circuit is further configured to read the parity data from the additional non-volatile memory cells and send the parity data for Error Correction Code (ECC) decoding.

4. The non-volatile storage apparatus of claim 1 , wherein the control circuit is further configured to send the parity data for storage in volatile memory on a control die that is connected to the memory die and receive the parity data from the volatile memory.

5. The non-volatile storage apparatus of claim 1 , wherein the plurality of non-volatile memory cells are located along a first word line of a NAND structure of the memory die, the control circuit further configured to program at least a second word line of the NAND structure between programming the plurality of non-volatile memory cells to the first distributions and further programming the plurality of non-volatile memory cells from the first distributions to the second distributions.

6. The non-volatile storage apparatus of claim 1 , wherein the first distributions consist of sixteen first distributions representing four bits of data and the control circuit is further configured to read the plurality of non-volatile memory cells in the first distributions using fourteen read voltages, each read voltage located at a middle of a respective first distribution other than a lowest first distribution and a highest first distribution.

7. The non-volatile storage apparatus of claim 1 , wherein the control circuit is configured to program the plurality of non-volatile memory cells according to a Gray code such that neighboring distributions are assigned digital values that differ by one and only one bit.

8. The non-volatile storage apparatus of claim 1 , wherein the control circuit is configured to program the plurality of non-volatile memory cells to the first distributions in a foggy program operation such that the first distributions are overlapping and program the plurality of non-volatile memory cells from the first distributions to the second distributions in a fine programming such that the second distributions are narrower than the first distributions and have less overlap than the first distributions.

9. The non-volatile storage apparatus of claim 1 , wherein the plurality of logical pages of data include four logical pages of data to be stored in the plurality of non-volatile memory cells, and wherein the control circuit is configured to calculate one logical page of parity data for the four logical pages of data, write the logical page of parity data in additional non-volatile memory cells formed on the memory die or send the logical page of parity data for storage outside the memory die, and subsequently read the logical page of parity data from the additional non-volatile memory cells or receive the logical page of parity data from outside the memory die for recovery of the four logical pages of data.

10. A method comprising:

receiving, by a memory die, a plurality of logical pages of data to be stored in a page of Multi-Level Cell (MLC) memory;

calculating, by circuits of the memory die, parity data for the plurality of logical pages of data;

programming the plurality of logical pages of data in the page of MLC memory in a foggy program operation such that memory cells of the page of MLC memory are programmed to first distributions;

reading the page of MLC memory while the memory cells are programmed to the first distributions in a foggy read operation to obtain, in data latches of the memory die, an initial copy of the plurality of logical pages of data;

performing, by logic circuits of the memory die, a plurality of AND operations on the initial copy of the plurality of logical pages of data and the parity data, wherein the plurality of AND operations are applied between bits obtained from reading an individual memory cell in the MLC memory and a corresponding parity data bit;

flipping selected bits of the initial copy of the plurality of logical pages of data while each selected bit remains in a respective data latch of the data latches according to results of the plurality of AND operations to obtain, in the data latches, a recovered copy of the plurality of logical pages of data; and

further programming the page of MLC memory from the first distributions to second distributions in a fine programming operation, the second distributions representing the recovered copy of the plurality of logical pages of data obtained according to the results of the plurality of AND operations.

11. The method of claim 10 , wherein calculating the parity data for the plurality of logical pages of data includes calculating one parity bit for each memory cell of the page of MLC memory.

12. The method of claim 10 wherein performing the plurality of AND operations includes performing AND operations on four bits obtained from reading an individual memory cell and the corresponding parity data bit.

13. The method of claim 10 further comprising storing the parity data in the memory die in additional memory cells that are configured as Single Level Cell (SLC) cells.

14. The method of claim 13 further comprising reading the parity data from the SLC cells and performing Error Correction Code (ECC) decoding of the parity data prior to obtaining the recovered copy of the plurality of logical pages of data.

15. The method of claim 10 further comprising sending the parity data from the memory die to be stored in a volatile memory and subsequently receiving the parity data from the volatile memory for the obtaining the recovered copy of the plurality of logical pages of data.

16. The method of claim 10 further comprising, subsequent to the foggy programming operation and prior to the foggy read operation, programming at least one other page of the MLC memory.

17. The method of claim 10 , wherein the plurality of logical pages of data consists of four logical pages of data and each memory cell of the page of Multi-Level Cell (MLC) memory is configured to store four bits using sixteen data states.

18. The method of claim 10 , wherein reading the page of MLC memory while the memory cells are in the first distributions includes using read levels at midpoints of the first distributions.

19. A non-volatile storage apparatus, comprising:

a memory die including a page of MLC memory cells including a plurality of non-volatile memory cells and further including:

means for calculating parity data for a plurality of logical pages of data to be stored in the plurality of non-volatile memory cells;

means for programming the plurality of non-volatile memory cells to first distributions in a foggy programming operation;

means for reading the plurality of non-volatile memory cells in the first distributions into latches on the memory die to obtain an initial copy of the plurality of logical pages of data in the latches in a foggy read operation; and

means for recovering the plurality of logical pages of data by performing a plurality of AND operations on the initial copy in the latches in combination with the parity data, wherein the plurality of AND operations are applied between bits obtained from reading an individual memory cell in the MLC memory cells and a corresponding parity data bit, flipping selected bits of the initial copy data while each selected bit remains in a respective latch according to outputs of the plurality of AND operations to obtain, in the latches, a recovered copy of the plurality of logical pages, and further programing the plurality of non-volatile memory cells from the first distributions to second distributions in a fine programming operation to store the recovered copy from the latches without sending the initial copy or the recovered copy from the memory die.

20. The non-volatile storage apparatus of claim 19 further comprising a memory controller die connected to the memory die, the memory controller die including means for Error Correction Code (ECC) decoding the parity data and sending decoded parity data to the means for recovering the plurality of logical pages of data.

Assignments (10)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
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 →
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 - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
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 →
RELEASE OF SECURITY INTEREST AT REEL 056285 FRAME 0292 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0001 →
SECURITY INTEREST Recorded May 19, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 056285/0292 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2021
From: GOROBETS, SERGEY ANATOLIEVICH; FRAYER, JACK
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 055213/0769 →
Continuity (2)
Provisional Application 63086732 · Oct 2, 2020
Related Publication 20220107751A1 · Apr 7, 2022