IP Library Granted Patent US 10,748,606
Granted Patent B2
US 10,748,606 · App. 16/221,332 · Granted Aug 18, 2020

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 10,748,606
App. No.
16/221,332
Granted
Aug 18, 2020
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 (45)

1. A method implemented using one or more controllers for a memory device, the method comprising:

encoding data based on a first encoding operation to generate an encoded set of data;

performing, during a first stage, a first programming operation to write the encoded set of data to the memory device;

encoding, using a second encoding operation based on the data, to generate a second set of encoded data, wherein an amount of the second set of encoded data is less than an amount of the encoded set of data;

storing the second set of encoded data to a cache;

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

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

encoding the second decoded set of data to generate a third set of encoded data; and

performing, during a second stage, a second programming operation to write the third set of encoded data to the memory device.

2. The method of claim 1 , wherein the second set of encoded data comprises a second encoding of the encoded set of data, and the third set of encoded data comprises the same data as the encoded set of data.

3. The method of claim 1 , wherein the second set of encoded data comprises an encoding of the data, the data being received from a host.

4. The method of claim 1 , wherein the first programming operation comprises a foggy programming operation, and the first decoding operation comprises a foggy decoding operation.

5. The method of claim 1 , wherein the second programming operation comprises a fine programming operation, the second decoding operation comprises an error-correcting code (ECC) decoding operation.

6. The method of claim 1 , wherein encoding data based on the first encoding operation further comprises:

receiving host data from a host device;

generating, using an error-correcting code (ECC) encoding scheme, a set of encoded pages based on the host data; and

sending the set of encoded pages to a foggy encoder for performing the second encoding operation.

7. The method of claim 1 , wherein encoding, using the second encoding operation based on the data, to generate the second set of encoded data further comprises:

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.

8. The method of claim 1 , wherein the first encoding operation comprises an error-correcting code (ECC) encoding, and the second encoding operation comprises an XOR operation.

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

10. The method of claim 1 , further comprising:

performing a second read operation to read the third set of encoded data from the memory device.

11. A system comprising:

a plurality of flash memory devices; and

a controller configured to:

encode data based on a first encoding operation to generate an encoded set of data;

perform, during a first stage, a first programming operation to write the encoded set of data to at least one of the flash memory devices;

encode, using a second encoding operation based on the data, to generate a second set of encoded data, wherein an amount of the second set of encoded data is less than an amount of the encoded set of data;

store the second set of encoded data to a cache;

perform a first decoding operation, based on the second set of encoded data from the cache and the encoded set of data from the at least one of the flash memory devices, to generate a decoded set of data;

perform a second decoding operation, based on the decoded set of data, to generate a second decoded set of data;

encode the second decoded set of data to generate a third set of encoded data; and

perform, during a second stage, a second programming operation to write the third set of encoded data to the at least one of the flash memory devices.

12. The system of claim 11 , wherein the second set of encoded data stored in the cache comprises additional parity bits for a particular error-correcting code (ECC) code, and the third set of encoded data comprises the same data as the encoded set of data.

13. The system of claim 11 , wherein the second set of encoded data comprises an encoding of the data, the data being received from a host.

14. The system of claim 11 , wherein the first programming operation comprises a foggy programming operation, and the first decoding operation comprises a foggy decoding operation.

15. The system of claim 11 , wherein the second programming operation comprises a fine programming operation, and the second decoding operation comprises an error-correcting code (ECC) decoding operation.

16. The system of claim 11 , wherein the controller is further configured to:

receive host data from a host device;

generate, using an error-correcting code (ECC) encoding scheme, a set of encoded pages based on the host data; and

send the set of encoded pages to foggy encoder for performing a foggy encoding operation.

17. The system of claim 11 , wherein the controller is further configured to:

generate an additional page of data based on an XOR operation of a number of bits of data in each cell of the at least one of the flash memory devices.

18. The system of claim 11 , wherein the encoded set of data comprises four pages of data, and the second set of encoded data comprises one page of data, and the decoded set of data comprises four pages of 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 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2019
From: BARNDT, RICHARD DAVID; RUB, BERNARDO; EL GAMAL, MOSTAFA
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 048223/0263 →