IP Library Granted Patent US 10,936,415
Granted Patent B2
US 10,936,415 · App. 16/455,857 · Granted Mar 2, 2021

Error correction scheme in flash memory

Inventors: Chris Yip (San Jose, CA); Piyush Sagdeo (San Jose, CA); Gautam Dusija (San Jose, CA); Vidhu Gupta (San Jose, CA)
Assignee: Western Digital Technologies, Inc.
G06F11/1068G06F11/1048G06F11/1096G06F11/1666G06F12/0246G06F13/1668G06F2212/1036G06F2212/403G06F2212/7205
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,936,415
App. No.
16/455,857
Granted
Mar 2, 2021
Kind
B2
Abstract

An error correction scheme in flash memory. Methods include extending a lifetime of a memory block, including: receiving an indication that an error occurred during a write operation at a first location in a memory block, the first location associated with a faulty page of the memory block; and performing a modified exclusive OR (XOR) scheme on the memory block by: performing a de-XOR operation that generates recovery data of the faulty page; storing the recovery data in a location different from the faulty page of memory; marking the faulty page for exclusion in future de-XOR operations; and performing a parity calculation that generates an updated parity value that includes all pages of the memory block that have been programmed except for the faulty page.

Claims (46)

1. A method of extending a lifetime of a memory block, comprising:

receiving an indication that an error occurred during a write operation at a first location in a memory block, the first location associated with a faulty page of the memory block;

performing a modified exclusive OR (XOR) scheme on the memory block by:

performing a de-XOR operation that generates recovery data of the faulty page;

storing the recovery data in a location different from the faulty page of memory;

marking the faulty page for exclusion in future de-XOR operations; and

performing a parity calculation that generates an updated parity value that includes all pages of the memory block that have been programmed except for the faulty page;

receiving a second indication that an additional error occurred during a different write operation to the memory block, wherein the additional error is associated with a second faulty page; and

performing the modified XOR scheme an additional time on the memory block by:

performing an additional de-XOR operation starting with a first valid page of the memory block, wherein the additional de-XOR operation generates a second recovery data;

determining the second faulty page is located at the end of the memory block, in response to determining the second faulty page is located at the end of the memory block,

moving the second recovery data from the memory block; and

marking the memory block for garbage collection.

2. The method claim 1 , wherein marking the faulty page for exclusion further comprises, updating status data in a bit map, wherein the status data is associated with a status of the faulty page, wherein the bit map is located in a header of a parity page.

3. The method of claim 2 , wherein performing the de-XOR operation, further comprises starting with a first valid page of the memory block.

4. The method of claim 1 , wherein performing the modified XOR scheme an additional time further comprises, prior to performing the additional de-XOR operation,

reading a header of a parity page; and

determining, based on information in the header that the faulty page is excluded from the modified XOR scheme.

5. The method of claim 1 , wherein a result of excluding the faulty page is a subsequent de-XOR operation is performed using two non-adjacent pages.

6. The method of claim 1 , further comprising:

tracking a number of pages excluded from the modified XOR scheme, wherein the pages are marked invalid; and

retiring the memory block in response to determining the number of pages is above a threshold amount.

7. A memory controller, comprising:

a first terminal configured to couple to a memory array,

the memory controller configured to:

receive an indication that an error occurred during a write operation at a first location in a memory block, the first location associated with a faulty page of the memory block;

perform a modified exclusive OR (XOR) scheme at a first time on the memory block, wherein the memory controller is further configured to:

perform a de-XOR operation starting with a page of the memory block that is valid, wherein the de-XOR operation generates recovery data of the faulty page;

store the recovery data in a location different from the faulty page;

mark the faulty page for exclusion in future de-XOR operations; and

perform a parity calculation that generates an updated parity value that includes all pages of the memory block that have been programmed except for the faulty page;

receive a second indication that an additional error occurred during a different write operation to the memory block, wherein the additional error is associated with a second faulty page; and

perform the modified XOR scheme at a second time on the memory block, wherein the memory controller is further configured to:

perform an additional de-XOR operation that starts with a page of the memory block, wherein the additional de-OXR operation generates second recovery data;

determine the second faulty page of memory is located at the end of the memory block; in response to determining the second faulty page is located at the end of the memory block,

move the second recovery data from the memory block; and

mark the memory block for garbage collection.

8. The memory controller of claim 7 , wherein marking the faulty page for exclusion further comprises, updating status data in a bit map, wherein the status data is associated with a status of the faulty page, wherein the bit map is located in a header of a parity page.

9. The memory controller claim 7 , wherein when the memory controller performs the modified XOR scheme at a second time, the memory controller is further configured to, prior to performing the additional de-XOR operation,

read a header of a parity page; and

determine, based on information in the header that the faulty page is excluded from the modified XOR scheme.

10. The memory controller of claim 7 , wherein a result of excluding the faulty page is a subsequent de-XOR operation is performed using two non-adjacent pages.

11. The memory controller of claim 7 , further configured to:

track a number of pages excluded from the modified XOR scheme, wherein the pages are marked invalid; and

retire the memory block in response to determining the number of pages is above a threshold amount.

12. The memory controller of claim 11 , wherein the memory controller is configured to retire the memory block by marking the memory block for garbage collection.

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 - 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 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 Jul 23, 2019
From: YIP, CHRIS; SAGDEO, PIYUSH; DUSIJA, GAUTAM; GUPTA, VIDHU
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 049832/0322 →