IP Library › Granted Patent US 11,935,609
Granted Patent B2
US 11,935,609 · App. 17/743,287 · Granted Mar 19, 2024

Linked XOR flash data protection scheme

Inventors: Oleg Kragel (San Jose, CA); Vijay Sivasankaran (Dublin, CA); Man Lung Mui (San Jose, CA); Sahil Sharma (San Jose, CA)
Assignee: Western Digital Technologies, Inc.
G11C29/42G11C7/1039G11C29/1201H03K19/21G11C2029/1202
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,935,609
App. No.
17/743,287
Filed
May 12, 2022
Granted
Mar 19, 2024
Kind
B2
Examiner
DINH, SON T
Art Unit
2824
USPC
365/185.09
Abstract

Embodiments described herein provide a linked XOR flash data protection scheme for data storage devices. In particular, the embodiments described herein provide a data storage controller with a memory space efficient XOR-based flash data protection/recovery algorithm with minimal flash block space overhead and support of recovery from full plane failure with neighbor planes disturb (NPD) in a single word line. Additionally, the embodiments described herein provide a reduced flash block space dedicated for XOR parity buffers storage by a factor of a number of planes per die without losing the capability to recover from NPD.

Claims (87)

1. A data storage device, comprising:

a memory including a plurality of wordlines;

a data storage controller including data storage controller memory with a linked XOR flash data protection scheme, the data storage controller coupled to the memory; and

a bus for transferring data between the data storage controller and a host device in communication with the data storage controller,

wherein, when executing the linked XOR flash data protection scheme, the data storage controller is configured to:

generate a first full XOR parity buffer based on first flash data associated with a first one or more XOR parity bin groups and across a first one or more of the plurality of wordlines, and

generate a first reduced XOR parity buffer based on the first full XOR parity buffer and second flash data associated with a second one or more XOR parity bin groups and across a second one or more of the plurality of wordlines,

wherein the first reduced XOR parity buffer is smaller in size than the first full XOR parity buffer.

2. The data storage device of claim 1 , wherein, when executing the linked XOR flash data protection scheme, the data storage controller is further configured to:

generate a plurality of reduced XOR parity buffers, each reduced XOR parity buffer of the plurality of reduced XOR parity buffers is based on the first full XOR parity buffer, the first reduced XOR parity buffer, and third flash data associated with a third one or more XOR parity bin groups and across a third one or more of the plurality of wordlines, and

generate a second full XOR parity buffer based on the first full XOR parity buffer, the first reduced XOR parity buffer, the plurality of reduced XOR parity buffers, and fourth flash data associated with a fourth one or more XOR parity bin groups and across a fourth one or more of the plurality of wordlines.

3. The data storage device of claim 2 , wherein, when executing the linked XOR flash data protection scheme, the data storage controller is further configured to:

control the memory to store the first full XOR parity buffer in one of the first one or more of the plurality of wordlines,

control the memory to store the first reduced XOR parity buffer in one of the second one or more of the plurality of wordlines,

control the memory to store the plurality of reduced XOR parity buffers in one of the third one or more of the plurality of wordlines, and

control the memory to store the second full XOR parity buffer in one of the fourth one or more of the plurality of wordlines.

4. The data storage device of claim 3 , wherein the one of the first one or more of the plurality of wordlines is a first wordline, wherein the one of the second one or more of the plurality of wordlines is a second wordline, wherein the one of the fourth one or more of the plurality of wordlines is a last wordline, and wherein the one of the third one or more of the plurality of wordlines is a wordline between the second wordline and the last wordline.

5. The data storage device of claim 1 , wherein, when executing the linked XOR flash data protection scheme, the data storage controller is further configured to:

generate a plurality of reduced XOR parity buffers, each reduced XOR parity buffer of the plurality of reduced XOR parity buffers is based on the first full XOR parity buffer, the first reduced XOR parity buffer, and third flash data associated with a third one or more XOR parity bin groups and across a third one or more of the plurality of wordlines,

generate a second full XOR parity buffer based on the first full XOR parity buffer, the first reduced XOR parity buffer, the plurality of reduced XOR parity buffers, and fourth flash data associated with a fourth one or more XOR parity bin groups and across a fourth one or more of the plurality of wordlines,

generate a second plurality of reduced XOR parity buffers, each reduced XOR parity buffer of the second plurality of reduced XOR parity buffers is based on the second full XOR parity buffer and fifth flash data associated with a fifth one or more XOR parity bin groups and across a fifth one or more of the plurality of wordlines, and

generate a third full XOR parity buffer based on the second full XOR parity buffer, the second plurality of reduced XOR parity buffers, and sixth flash data associated with a sixth one or more XOR parity bin groups and across a sixth one or more of the plurality of wordlines.

6. The data storage device of claim 5 , wherein, when executing the linked XOR flash data protection scheme, the data storage controller is further configured to:

control the memory to store the first full XOR parity buffer in one of the first one or more of the plurality of wordlines,

control the memory to store the first reduced XOR parity buffer in one of the second one or more of the plurality of wordlines,

control the memory to store the plurality of reduced XOR parity buffers in one of the third one or more of the plurality of wordlines,

control the memory to store the second full XOR parity buffer in one of the fourth one or more of the plurality of wordlines,

control the memory to store the second plurality of reduced XOR parity buffers in one of the fifth one or more of the plurality of wordlines, and

control the memory to store the third full XOR parity buffer in one of the sixth one or more of the plurality of wordlines.

7. The data storage device of claim 3 , wherein the one of the first one or more of the plurality of wordlines is a first wordline, wherein the one of the second one or more of the plurality of wordlines is a second wordline, wherein the one of the fourth one or more of the plurality of wordlines is a middle wordline between the first wordline and a last wordline of the plurality of wordlines, wherein the one of the third one or more of the plurality of wordlines is each wordline between the second wordline and the middle wordline, wherein the one of the sixth one or more of the plurality of wordlines is the last wordline, and wherein the one of the fifth one or more of the plurality of wordlines is a wordline between the middle wordline and the last wordline.

8. The data storage device of claim 1 , wherein, when executing the linked XOR flash data protection scheme, the data storage controller is further configured to:

generate a plurality of linked XOR parity buffers including a plurality of full XOR parity buffers including the first full XOR parity buffer and a plurality of reduced XOR parity buffers including the first reduced XOR parity buffer,

control a memory to store the plurality of linked XOR parity buffers,

determine whether a defect in flash data of the memory is limited to a scope of a single XOR zone bin with respect to one of the plurality of reduced XOR parity buffers, and

responsive to determining that the defect is limited to the scope of the single XOR zone bin, subtracting a re-accumulation of full XOR parity buffers in one or more uncorrupted planes and reduced XOR parity buffers in a corrupted plane from the one of the plurality of reduced XOR parity buffers, and

correct the defect with the subtraction of the re-accumulation of the full XOR parity buffers in the one or more uncorrupted planes and the reduced XOR parity buffers in the corrupted plane from the one of the plurality of reduced XOR parity buffers.

9. The data storage device of claim 1 , wherein, when executing the linked XOR flash data protection scheme, the data storage controller is further configured to:

generate a plurality of linked XOR parity buffers including a plurality of full XOR parity buffers including the first full XOR parity buffer and a plurality of reduced XOR parity buffers including the first reduced XOR parity buffer,

control a memory to store the plurality of linked XOR parity buffers,

determine whether a defect in flash data of the memory is a die page failure, and

responsive to determining that the defect is the die page failure, ascending accumulation of linked XOR parity buffers starting from a closest final full XOR parity buffer to a closest reduced XOR parity buffer affected with the die page failure, and

correct the defect based on the ascending accumulation of the linked XOR parity buffers.

10. A method comprising:

generating, with a data storage controller, a first full XOR parity buffer based on first flash data associated with a first one or more XOR parity bin groups and across a first one or more of a plurality of wordlines of a memory; and

generating, with the data storage controller, a first reduced XOR parity buffer based on the first full XOR parity buffer and second flash data associated with a second one or more XOR parity bin groups and across a second one or more of the plurality of wordlines,

wherein the first reduced XOR parity buffer is smaller in size than the first full XOR parity buffer.

11. The method of claim 10 , further comprising:

generating a plurality of reduced XOR parity buffers, each reduced XOR parity buffer of the plurality of reduced XOR parity buffers is based on the first full XOR parity buffer, the first reduced XOR parity buffer, and third flash data associated with a third one or more XOR parity bin groups and across a third one or more of the plurality of wordlines; and

generating a second full XOR parity buffer based on the first full XOR parity buffer, the first reduced XOR parity buffer, the plurality of reduced XOR parity buffers, and fourth flash data associated with a fourth one or more XOR parity bin groups and across a fourth one or more of the plurality of wordlines.

12. The method of claim 11 , further comprising:

controlling a memory to store the first full XOR parity buffer in one of the first one or more of the plurality of wordlines;

controlling the memory to store the first reduced XOR parity buffer in one of the second one or more of the plurality of wordlines;

controlling the memory to store the plurality of reduced XOR parity buffers in one of the third one or more of the plurality of wordlines; and

controlling the memory to store the second full XOR parity buffer in one of the fourth one or more of the plurality of wordlines.

13. The method of claim 12 , wherein the one of the first one or more of the plurality of wordlines is a first wordline, wherein the one of the second one or more of the plurality of wordlines is a second wordline, wherein the one of the fourth one or more of the plurality of wordlines is a last wordline, and wherein the one of the third one or more of the plurality of wordlines is a wordline between the second wordline and the last wordline.

14. The method of claim 10 , further comprising:

generating a plurality of reduced XOR parity buffers, each reduced XOR parity buffer of the plurality of reduced XOR parity buffers is based on the first full XOR parity buffer, the first reduced XOR parity buffer, and third flash data associated with a third one or more XOR parity bin groups and across a third one or more of the plurality of wordlines;

generating a second full XOR parity buffer based on the first full XOR parity buffer, the first reduced XOR parity buffer, the plurality of reduced XOR parity buffers, and fourth flash data associated with a fourth one or more XOR parity bin groups and across a fourth one or more of the plurality of wordlines;

generating a second plurality of reduced XOR parity buffers, each reduced XOR parity buffer of the second plurality of reduced XOR parity buffers is based on the second full XOR parity buffer and fifth flash data associated with a fifth one or more XOR parity bin groups and across a fifth one or more of the plurality of wordlines; and

generating a third full XOR parity buffer based on the second full XOR parity buffer, the second plurality of reduced XOR parity buffers, and sixth flash data associated with a sixth one or more XOR parity bin groups and across a sixth one or more of the plurality of wordlines.

15. The method of claim 14 , further comprising:

controlling a memory to store the first full XOR parity buffer in one of the first one or more of the plurality of wordlines;

controlling the memory to store the first reduced XOR parity buffer in one of the second one or more of the plurality of wordlines;

controlling the memory to store the plurality of reduced XOR parity buffers in one of the third one or more of the plurality of wordlines;

controlling the memory to store the second full XOR parity buffer in one of the fourth one or more of the plurality of wordlines;

controlling the memory to store the second plurality of reduced XOR parity buffers in one of the fifth one or more of the plurality of wordlines; and

controlling the memory to store the third full XOR parity buffer in one of the sixth one or more of the plurality of wordlines.

16. The method of claim 12 , wherein the one of the first one or more of the plurality of wordlines is a first wordline, wherein the one of the second one or more of the plurality of wordlines is a second wordline, wherein the one of the fourth one or more of the plurality of wordlines is a middle wordline between the first wordline and a last wordline of the plurality of wordlines, wherein the one of the third one or more of the plurality of wordlines is each wordline between the second wordline and the middle wordline, wherein the one of the sixth one or more of the plurality of wordlines is the last wordline, and wherein the one of the fifth one or more of the plurality of wordlines is a wordline between the middle wordline and the last wordline.

17. The method of claim 10 , further comprising:

generating a plurality of linked XOR parity buffers including a plurality of full XOR parity buffers including the first full XOR parity buffer and a plurality of reduced XOR parity buffers including the first reduced XOR parity buffer;

controlling a memory to store the plurality of linked XOR parity buffers;

determining whether a defect in flash data of the memory is limited to a scope of a single XOR zone bin with respect to one of the plurality of reduced XOR parity buffers; and

responsive to determining that the defect is limited to the scope of the single XOR zone bin, subtracting a re-accumulation of full XOR parity buffers in one or more uncorrupted planes and reduced XOR parity buffers in a corrupted plane from the one of the plurality of reduced XOR parity buffers; and

correcting the defect with the subtraction of the re-accumulation of the full XOR parity buffers in the one or more uncorrupted planes and the reduced XOR parity buffers in the corrupted plane from the one of the plurality of reduced XOR parity buffers.

18. The method of claim 10 , wherein, when executing the linked XOR flash data protection scheme, the data storage controller is further configured to:

generating a plurality of linked XOR parity buffers including a plurality of full XOR parity buffers including the first full XOR parity buffer and a plurality of reduced XOR parity buffers including the first reduced XOR parity buffer;

controlling a memory to store the plurality of linked XOR parity buffers;

determining whether a defect in flash data of the memory is a die page failure; and

responsive to determining that the defect is the die page failure, performing ascending accumulation of linked XOR parity buffers starting from a closest final full XOR parity buffer to a closest reduced XOR parity buffer affected with the die page failure; and

correcting the defect based on the ascending accumulation of the linked XOR parity buffers.

19. An apparatus comprising:

means for generating a first full XOR parity buffer based on first flash data associated with a first one or more XOR parity bin groups and across a first one or more of a plurality of wordlines; and

means for generating a first reduced XOR parity buffer based on the first full XOR parity buffer and second flash data associated with a second one or more XOR parity bin groups and across a second one or more of the plurality of wordlines,

wherein the first reduced XOR parity buffer is smaller in size than the first full XOR parity buffer.

20. The apparatus of claim 19 , further comprising:

means for generating a plurality of reduced XOR parity buffers, each reduced XOR parity buffer of the plurality of reduced XOR parity buffers is based on the first full XOR parity buffer, the first reduced XOR parity buffer, and third flash data associated with a third one or more XOR parity bin groups and across a third one or more of the plurality of wordlines; and

means for generating a second full XOR parity buffer based on the first full XOR parity buffer, the first reduced XOR parity buffer, the plurality of reduced XOR parity buffers, and fourth flash data associated with a fourth one or more XOR parity bin groups and across a fourth one or more of the plurality of wordlines.

Assignments (8)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2022
From: KRAGEL, OLEG; SIVASANKARAN, VIJAY; MUI, MAN LUNG; SHARMA, SAHIL
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 060381/0267 →
Continuity (1)
Related Publication 20230368857A1 · Nov 16, 2023