IP Library Granted Patent US 10,339,000
Granted Patent B2
US 10,339,000 · App. 15/264,279 · Granted Jul 2, 2019

Storage system and method for reducing XOR recovery time by excluding invalid data from XOR parity

Inventors: Nian Niles Yang (Mountain View, CA); Grishma Shah (Milpitas, CA); Philip Reusswig (Mountain View, CA)
Assignee: SanDisk Technologies LLC
G06F11/1068G11C29/52H03M13/13H03M13/373H03M13/3761G06F3/0626G06F3/0652G06F11/1004G06F11/1008G06F11/1032G06F11/1056G06F12/023G06F12/0238G06F12/0246G06F12/0253G06F2212/70G06F2212/702G06F2212/7205H03M13/2906H03M13/2918H03M13/2942
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,339,000
App. No.
15/264,279
Granted
Jul 2, 2019
Kind
B2
Abstract

A storage system and method for reducing XOR recovery time are provided. In one embodiment, a storage system is provides comprising a memory and a controller. The controller is configured to generate a first exclusive-or (XOR) parity for pages of data written to the memory; after the first XOR parity has been generated, determine that there is at least one page of invalid data in the pages of data written to the memory; and generate a second XOR parity for the pages of data that excludes the at least one page of invalid data, wherein the second XOR parity is generated by performing an XOR operation using the first XOR parity and the at least one page of invalid data as inputs. Other embodiments are possible, and each of the embodiments can be used alone or together in combination.

Claims (51)

1. A storage system comprising:

a memory; and

a controller in communication with the memory, wherein the controller is configured to:

generate a first exclusive-or (XOR) parity for pages of data written to the memory, wherein the pages of data are protected by a data protection scheme;

after the first XOR parity has been generated, determine whether a percentage of errors for the pages is above a threshold;

based on a determination that the percentage of errors for the pages is below the threshold:

determine that the data protection scheme cannot correct at least one error in a page; and

use the first XOR parity to recover the page that contains the error;

based on a determination that the percentage of errors for the pages is above the threshold:

generate a second XOR parity for the pages of data that excludes the at least one page of invalid data, wherein the second XOR parity is generated by performing an XOR operation using the first XOR parity and the at least one page of invalid data as inputs;

determine that the data protection scheme cannot correct an error in a page; and

use the second XOR parity to recover the page that contains the error, wherein using the second XOR parity to recover the page that contains the error is faster than using the first XOR parity to recover the page that contains the error.

2. The storage system of claim 1 , wherein the controller is further configured to store the first XOR parity in a first location in the memory and is also further configured to store the second XOR parity in a second location in the memory.

3. The storage system of claim 2 , wherein the controller is further configured to update an address map table to associate the pages of data with the second XOR parity stored in the second location in the memory instead of the first XOR parity stored in the first location in the memory.

4. The storage system of claim 1 , wherein the first XOR parity is generated for a block of pages.

5. The storage system of claim 1 , wherein the first XOR parity is generated for a plurality of blocks of pages.

6. The storage system of claim 1 , wherein the memory comprises a three-dimensional memory.

7. The storage system of claim 1 , wherein the storage system is embedded in a host.

8. The storage system of claim 1 , wherein the storage system is removably connected to a host.

9. The storage system of claim 1 , wherein the data protection scheme comprises error correction code.

10. A method comprising:

performing the following in a storage system comprising a memory:

creating first parity information for units of data written to the memory by performing a cumulative exclusive-or (XOR) operation on the units of data as they are written to memory, wherein the units of data are protected by a data protection scheme;

based on a determination that a percentage of units of data that are obsolete is below a threshold:

determining that the data protection scheme cannot correct an error in a unit of data; and

using the first parity information to recover the unit of data that contains the error;

based on a determination that the percentage of units of data that are obsolete is above the threshold:

creating second parity information by removing the at least one unit of obsolete data from the parity information by performing an XOR operation using the parity information and the at least one unit of obsolete data as inputs;

determining that the data protection scheme cannot correct an error in a unit of data; and

using the second parity information to recover the unit of data that contains the error, wherein using the second parity information to recover the unit of data is faster than using the first parity information to recover the unit of data.

11. The method of claim 10 further comprising storing the second parity information and updating a storage structure so that the units of data are associated with the second parity information.

12. The method of claim 10 , wherein a unit of data is a page, and wherein the first parity information is created for at least one block of pages.

13. The method of claim 10 , wherein the memory comprises a three-dimensional memory.

14. The method of claim 10 , wherein the storage system is embedded in a host.

15. The method of claim 10 , wherein the storage system is removably connected to a host.

16. The method of claim 10 , wherein the data protection scheme comprises error connection code.

17. A storage system comprising:

a memory;

means for generating a first exclusive-or (XOR) parity for pages of data written to the memory, wherein the pages of data are protected by a data protection scheme;

means for after the first XOR parity has been generated, determining whether a percentage of errors for the pages is above a threshold;

based on a determination that the percentage of errors in the pages is below the threshold:

means for determining that the data protection scheme cannot correct an error in a page; and

means for using the first XOR parity to recover the page that contains the error;

based on a determination that the percentage of errors in the pages is above the threshold:

means for generating a second XOR parity for the pages of data that excludes the at least one page of invalid data, wherein the second XOR parity is generated by performing an XOR operation using the first XOR parity and the at least one page of invalid data as inputs;

means for determining that the data protection scheme cannot correct an error in a page; and

means for using the second XOR parity to recover the page that contains the error, wherein using the second XOR parity to recover the page that contains the error is faster than using the first XOR parity to recover the page that contains the error.

18. The storage system of claim 17 , wherein the memory comprises a three-dimensional memory.

19. The storage system of claim 17 , wherein the storage system is embedded in a host.

20. The storage system of claim 17 , wherein the storage system is removably connected to a host.

21. The storage system of claim 17 , wherein the data protection scheme comprises error correction code.

Assignments (4)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2016
From: YANG, NIAN NILES; SHAH, GRISHMA; REUSSWIG, PHILIP
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 039722/0015 →
Continuity (1)
Related Publication 20180074891A1 · Mar 15, 2018
Cited By (1)
US 12,399,638