IP Library Granted Patent US 11,087,836
Granted Patent B2
US 11,087,836 · App. 17/127,290 · Granted Aug 10, 2021

Multi-state programming for memory devices

Inventors: Richard David Barndt (San Diego, CA); Bernardo Rub (Sudbury, MA); Mostafa El Gamal (Worcester, MA)
Assignee: Western Digital Technologies, Inc.
G11C11/5628G06F3/0679G06F11/1072G11C16/08G11C16/10G11C29/781G11C29/802G11C2211/5623
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,087,836
App. No.
17/127,290
Granted
Aug 10, 2021
Kind
B2
Abstract

Storage device programming methods, systems and media are described. A method may include encoding data to generate an encoded set of data. A first programming operation may write the encoded set of data to a memory device. The method includes encoding, using a second encoding operation based on the data, to generate a second set of encoded data. The second set of encoded data is stored to a cache. A first decoding operation is performed, based on the second set of encoded data and the encoded set of data, to generate a decoded set of data. A second decoding operation is performed to generate a second decoded set of data. The second decoded set of data is encoded to generate a third set of encoded data. The method includes performing a second programming operation to write the third set of encoded data to the memory device.

Claims (56)

1. A method for programming a memory device, comprising:

executing a first encoding operation to generate a first set of encoded data;

performing a first programming operation to store the first set of encoded data into the memory device;

executing, based on the first set of encoded data, a second encoding operation to generate a second set of encoded data;

executing one or more decoding operations based on the first set of encoded data stored in the memory device and the second set of encoded data, to generate a set of decoded data;

executing, based on the set of decoded data, an encoding operation to generate a third set of encoded data; and

performing a second programming operation to store the third set of encoded data to the same memory device.

2. The method of claim 1 , wherein an amount of the second set of encoded data is less than an amount of the first set of encoded data.

3. The method of claim 1 , comprising:

prior to executing the one or more decoding operations, storing the second set of encoded data to a memory.

4. The method of claim 3 , wherein the memory is different from the memory device.

5. The method of claim 1 , wherein executing the one or more decoding operations comprises:

performing a first decoding operation, based on the first set of encoded data from the memory device and the second set of encoded data, to generate a first set of decoded data; and

performing a second decoding operation, based on the first set of decoded data, to generate the set of decoded data.

6. The method of claim 3 , wherein the second set of encoded data stored in the memory comprises additional parity bits for an error-correcting code, and the third set of encoded data comprises the same data as the first set of encoded data.

7. The method of claim 1 , wherein the first programming operation comprises a foggy programming operation, and wherein the second programming operation comprises a fine programming operation.

8. The method of claim 1 , wherein the one or more decoding operations comprise a foggy decoding operation and an error-correcting code decoding operation.

9. The method of claim 1 , comprising:

generating an additional page of data based on an XOR operation of a number of bits of data in each cell of the memory device.

10. The method of claim 1 , wherein the first set of encoded data comprises four pages of data, and the second set of encoded data comprises one page of data, and the set of decoded data comprises four pages of data.

11. The method of claim 1 , comprising:

receiving host data from a host device,

wherein executing the first encoding operation comprises generating, using an error-correcting code encoding scheme, the first set of encoded data based on the host data, and

wherein executing the second encoding operation comprises providing the first set of encoded data to a foggy encoder for performing a foggy encoding operation to generate the second set of encoded data.

12. A system, comprising:

a memory device; and

one or more controllers configured to cause:

executing a first encoding operation to generate a first set of encoded data;

performing a first programming operation to store the first set of encoded data into the memory device;

executing, based on the first set of encoded data, a second encoding operation to generate a second set of encoded data;

executing one or more decoding operations based on the first set of encoded data stored in the memory device and the second set of encoded data, to generate a set of decoded data;

executing, based on the set of decoded data, an encoding operation to generate a third set of encoded data; and

performing a second programming operation to store the third set of encoded data to the memory device.

13. The system of claim 12 , wherein an amount of the second set of encoded data is less than an amount of the first set of encoded data.

14. The system of claim 12 , wherein the one or more controllers are configured to cause:

prior to executing the one or more decoding operations, storing the second set of encoded data to a memory.

15. The system of claim 14 , wherein the memory is different from the memory device.

16. The system of claim 12 , wherein executing the one or more decoding operations comprises:

performing a first decoding operation, based on the first set of encoded data from the memory device and the second set of encoded data, to generate a first set of decoded data; and

performing a second decoding operation, based on the first set of decoded data, to generate the set of decoded data.

17. The system of claim 12 , wherein the one or more controllers are configured to cause:

receiving host data from a host device,

wherein executing the first encoding operation comprises generating, using an error-correcting code encoding scheme, the first set of encoded data based on the host data, and

wherein executing the second encoding operation comprises providing the first set of encoded data to a foggy encoder for performing a foggy encoding operation to generate the second set of encoded data.

18. An apparatus, comprising:

means for executing a first encoding operation to generate a first set of encoded data;

means for performing a first programming operation to store the first set of encoded data into a memory device;

means for executing, based on the first set of encoded data, a second encoding operation to generate a second set of encoded data;

means for executing one or more decoding operations based on the first set of encoded data stored in the memory device and the second set of encoded data, to generate a set of decoded data;

means for executing, based on the set of decoded data, an encoding operation to generate a third set of encoded data; and

means for performing a second programming operation to store the third set of encoded data to the memory device.

19. The apparatus of claim 18 , wherein an amount of the second set of encoded data is less than an amount of the first set of encoded data.

20. The apparatus of claim 19 , comprising:

means for receiving host data from a host device,

wherein the means for executing the first encoding operation comprises means for generating, using an error-correcting code encoding scheme, the first set of encoded data based on the host data, and

wherein the means for executing the second encoding operation comprises means for executing a foggy encoding operation to generate the second set of encoded data.

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 055404 FRAME 0942 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058966/0407 →
SECURITY INTEREST Recorded Feb 24, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 055404/0942 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2021
From: BARNDT, RICHARD DAVID; RUB, BERNARDO; EL GAMAL, MOSTAFA
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 054966/0405 →
Continuity (3)
Continuation 16936320 · Jul 22, 2020
Continuation 16221332 · Dec 14, 2018
Related Publication 20210104275A1 · Apr 8, 2021