IP Library Granted Patent US 10,872,012
Granted Patent B2
US 10,872,012 · App. 16/243,070 · Granted Dec 22, 2020

XOR recovery schemes utilizing external memory

Inventors: Karthik Subramanian (Bangalore, IN); Vinay Vijendra Kumar Lakshmi (Bangalore, IN); Manohar Srinivasiah (Bangalore, IN)
Assignee: Western Digital Technologies, Inc.
G06F11/1068G06F11/1004G11C29/52
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,872,012
App. No.
16/243,070
Granted
Dec 22, 2020
Kind
B2
Abstract

A storage device includes a storage controller, non-volatile memory, volatile memory and a communication interface configured to connect to external volatile memory of a host system. The storage controller is configured to receive data from the host system for storing in the non-volatile memory, buffer the data in the volatile memory, obtain parity data corresponding to the buffered data from an external volatile memory within the host system, compute XOR parity data for the buffered data based on the parity data and the buffered data, store the computed XOR parity data on the external volatile memory, and write the data from the host to the non-volatile memory.

Claims (63)

1. A storage device comprising:

a communication interface configured to connect to a host system;

non-volatile memory;

volatile memory; and

a storage controller associated with the non-volatile memory, the storage controller configured to:

receive data from the host system for storing in the non-volatile memory;

buffer the data in the volatile memory;

obtain parity data corresponding to the buffered data from an external volatile memory within the host system;

compute XOR parity data for the buffered data based on the parity data and the buffered data;

transfer the computed XOR parity data from the storage device to the host system via the communication interface;

store the computed XOR parity data on the external volatile memory; and

write the data from the host system to the non-volatile memory.

2. The storage device of claim 1 , wherein the storage device caches the computed XOR parity data only in the external volatile memory and not in internal XOR random access memory (XRAM).

3. The storage device of claim 2 , wherein the storage device does not comprise XRAM.

4. The storage device of claim 1 , wherein the storage device is a solid state drive.

5. The storage device of claim 1 , wherein computing the XOR parity data comprises:

computing a first set of XOR parity data for each same numbered plane page of each plane and die; and

computing a second set of XOR parity data for all pages from a particular plane.

6. The storage device of claim 1 , wherein the storage controller comprises:

a first XOR engine configured to cache parity data on the external volatile memory; and

a second XOR engine configured to cache parity data on the external volatile memory.

7. The storage device of claim 6 , wherein the first XOR engine and the second XOR engine are configured to operate in parallel.

8. The storage device of claim 7 , wherein the first XOR engine and the second XOR engine obtain parity data from the external volatile memory in parallel.

9. The storage device of claim 8 , wherein:

the first XOR engine performs an XOR calculation in a first dimension; and

the second XOR engine performs an XOR calculation in a second dimension.

10. The storage device of claim 1 , wherein the storage controller is further configured to:

determine a firmware tag, a cyclic redundancy check (CRC), and an error correction code (ECC) for the computed XOR parity data stored in the external volatile memory; and

store the firmware tag, CRC, and ECC in the external volatile memory in a separate buffer from the computed XOR parity data.

11. A method of storing parity data on volatile memory external to a storage device, the method comprising:

receiving, via a communication interface, data from a host system for storing in non-volatile memory of the storage device;

buffering the data in internal volatile memory of the storage device;

obtaining parity data corresponding to the buffered data from an external volatile memory within the host system;

computing XOR parity data for the buffered data based on the parity data and the buffered data;

transferring the computed XOR parity data from the storage device to the host system via the communication interface;

storing the computed XOR parity data on the external volatile memory; and

writing the data from the host system to the non-volatile memory.

12. The method of claim 11 , wherein the storage device caches the computed XOR parity data only in the external volatile memory and not in internal XOR random access memory (XRAM).

13. The method of claim 12 , wherein the storage device does not comprise XRAM.

14. The method of claim 11 , wherein the storage device is a solid state drive.

15. The method of claim 11 , wherein computing the XOR parity data comprises:

computing a first set of XOR parity data for each same numbered plane page of each plane and die; and

computing a second set of XOR parity data for all pages from a particular plane.

16. The method of claim 11 , further comprising:

performing a first XOR calculation with a first XOR engine of the storage device in a first dimension; and

performing a second XOR calculation with a second XOR engine of the storage device in a second dimension.

17. The method of claim 16 , wherein the first XOR calculation and the second XOR calculation are performed in parallel.

18. The method of claim 17 , wherein the first XOR engine and the second XOR engine are configured to obtain parity data from the external volatile memory in parallel.

19. The method of claim 11 , further comprising:

determining a firmware tag, a cyclic redundancy check (CRC), and an error correction code (ECC) for the computed XOR parity data stored in the external volatile memory; and

storing the firmware tag, CRC, and ECC in the external volatile memory in a separate buffer from the computed XOR parity data.

20. A storage device comprising:

a communication means configured to connect to a host system;

non-volatile memory means;

volatile memory means; and

processing means associated with the non-volatile memory means, the processing means configured to:

receive data from the host system for storing in the non-volatile memory means;

buffer the data in the volatile memory means;

obtain parity data corresponding to the buffered data from an external volatile memory within the host system;

compute XOR parity data for the buffered data based on the parity data and the buffered data;

transfer the computed XOR parity data from the storage device to the host system via the communication means;

store the computed XOR parity data on the external volatile memory; and

write the data from the host system to the non-volatile memory means.

Assignments (5)
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 Jan 10, 2019
From: SUBRAMANIAN, KARTHIK; KUMAR LAKSHMI, VINAY VIJENDRA; SRINIVASIAH, MANOHAR
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 047957/0121 →
Continuity (1)
Related Publication 20200218605A1 · Jul 9, 2020
Cited By (3)
US 12,399,779 US 12,468,453 US 12,517,677