IP Library Granted Patent US 11,687,409
Granted Patent B1
US 11,687,409 · App. 17/563,533 · Granted Jun 27, 2023

Data storage device and method for data protection using XOR parity

Inventors: Varun Sharma (Vaishali Ghaziabad, IN); Vishal Sharma (Bangalore, IN); Arun Thandapani (Bangalore, IN)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F11/1068G06F3/0619G06F3/0659G06F3/0679G06F11/0772G06F11/1435
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,687,409
App. No.
17/563,533
Granted
Jun 27, 2023
Kind
B1
Abstract

A data storage device includes a non-volatile memory and a data storage controller. The data storage controller is configured to generate first XOR parities based on first data of a first metablock of the non-volatile memory and store the first XOR parities in a second metablock of the non-volatile memory. The data storage controller is also configured to generate second XOR parities corresponding to second data of the second metablock. The second data includes two or more XOR parities of the first XOR parities. The data storage controller is further configured to store the second parities in a reserved portion of the first metablock.

Claims (49)

1. A data storage device comprising:

a non-volatile memory; and

a data storage controller coupled to the non-volatile memory and configured to:

generate a first plurality of XOR parities based on first data of a first metablock of the non-volatile memory;

store the first plurality of XOR parities in a second metablock of the non-volatile memory;

generate a second plurality of XOR parities based on second data of the second metablock, wherein the second data includes two or more XOR parities of the first plurality of XOR parities;

store the second plurality of XOR parities in a reserved portion of the first metablock;

detect a failure in the first metablock resulting in data loss; and

recover lost data of the first metablock using the second plurality of XOR parities.

2. The data storage device of claim 1 , wherein the first data is stored in a metapage of the first metablock.

3. The data storage device of claim 1 , wherein the second data is stored in a plurality of memory cells of the second metablock separated by a predetermined number of memory cells.

4. The data storage device of claim 1 , wherein the data storage controller is further configured to write data from a host device to the first metablock excluding the reserved portion of the first metablock.

5. The data storage device of claim 4 , wherein the data storage controller is further configured to:

erase the first plurality of XOR parities from the second metablock after the second plurality of XOR parities are stored in the first metablock; and

write additional host data to the second metablock.

6. The data storage device of claim 1 , wherein, to detect the failure in the first metablock resulting in the data loss, the data storage controller is configured to detect a program failure of the first metablock, and

recover the lost data of the first metablock using the first plurality of XOR parities.

7. The data storage device of claim 1 , wherein, to detect the failure in the first metablock resulting in the data loss, the data storage controller is configured to detect a silent read failure of the first metablock.

8. A method for protecting data in a data storage device from failures, the method comprising:

generating, using a data storage controller of the data storage device, a first plurality of XOR parities based on first data of a first metablock of a non-volatile memory of the data storage device;

storing, using the data storage controller, the first plurality of XOR parities in a second metablock of the non-volatile memory;

generating, using the data storage controller, a second plurality of XOR parities based on second data of the second metablock, wherein the second data includes two or more XOR parities of the first plurality of XOR parities;

storing, using the data storage controller, the second plurality of XOR parities in a reserved portion of the first metablock;

detecting, using the data storage controller, a failure in the first metablock resulting in data loss; and

recovering, using the data storage controller, lost data of the first metablock using the second plurality of XOR parities.

9. The method of claim 8 , wherein the first data is stored in a metapage of the first metablock.

10. The method of claim 8 , wherein the second data is stored in a plurality of memory cells of the second metablock separated by a predetermined number of memory cells.

11. The method of claim 8 , further comprising writing data from a host device to the first metablock excluding the reserved portion of the first metablock.

12. The method of claim 11 , further comprising:

erasing the first plurality of XOR parities from the second metablock after the second plurality of XOR parities are stored in the first metablock; and

writing additional host data to the second metablock.

13. The method of claim 8 , wherein detecting the failure in the first metablock resulting in the data loss further includes detecting a program failure of the first metablock, the method further comprising:

recovering the lost data of the first metablock using the first plurality of XOR parities.

14. The method of claim 8 , wherein detecting the failure in the first metablock resulting in the data loss further includes detecting a silent read failure of the first metablock.

15. An apparatus comprising:

means for generating a first plurality of XOR parities based on first data of a first metablock of a non-volatile memory;

means for storing the first plurality of XOR parities in a second metablock of the non-volatile memory;

means for generating a second plurality of XOR parities based on second data of the second metablock, wherein the second data includes two or more XOR parities of the first plurality of XOR parities;

means for storing the second plurality of XOR parities in a reserved portion of the first metablock; and

means for detecting a failure in the first metablock resulting in data loss; and

means for recovering lost data of the first metablock using the second plurality of XOR parities.

16. The apparatus of claim 15 , wherein the first data is stored in a metapage of the first metablock, and wherein the second data is stored in a plurality of memory cells of the second metablock separated by a predetermined number of memory cells.

17. The apparatus of claim 15 , further comprising means for writing data from a host device to the first metablock excluding the reserved portion of the first metablock.

18. The apparatus of claim 17 , further comprising:

means for erasing the first plurality of XOR parities from the second metablock after the second plurality of XOR parities are stored in the first metablock; and

means for writing additional host data to the second metablock.

19. The apparatus of claim 15 , wherein means for detecting the failure in the first metablock resulting in the data loss further includes means for detecting a program failure of the first metablock, and wherein the apparatus further comprising:

means for recovering the lost data of the first metablock using the first plurality of XOR parities.

20. The apparatus of claim 15 , wherein means for detecting the failure in the first metablock resulting in the data loss further includes means for detecting a silent read failure of the first metablock.

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 - 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2021
From: SHARMA, VARUN; SHARMA, VISHAL; THANDAPANI, ARUN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058491/0024 →