IP Library Granted Patent US 10,284,230
Granted Patent B2
US 10,284,230 · App. 15/351,620 · Granted May 7, 2019

Linked storage system and host system error correcting code

Inventor: Satoshi Yamamoto (San Jose, CA)
Assignee: Western Digital Technologies, Inc.
H03M13/2906G06F11/1012
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,284,230
App. No.
15/351,620
Granted
May 7, 2019
Kind
B2
Abstract

Systems, methods, and software are provided herein for error correction in writing and reading data to and from a data storage device. In one implementation, an encoder matrix is used to generate, for a data set, first error correcting code (ECC) parity data on a host system, and second ECC parity data for tracks on data storage device coupled to the host system. Once generated, the data storage device will store the data set and the first and second ECC parity data on storage media for the device. When a read is required, the storage device will provide a first version of the data set with the first and second ECC parity data to the host system, permitting the host system to use the parity data to generate a corrected version of the data set.

Claims (50)

1. A computing apparatus comprising:

one or more non-transitory computer readable storage media;

a processing system operatively coupled with the one or more non-transitory computer readable storage media; and

program instructions stored on the one or more non-transitory computer readable storage media to operate a host system to manage storage of data sets that, when read and executed by the processing system, direct the processing system to at least:

in response to a read request, receive, from a data storage device, a first version of a data set, first error correcting code (ECC) parity data for the data set generated by the host system using an encoder matrix, and second ECC parity data for the data set generated by the data storage device using the encoder matrix for tracks of storage media on the data storage device;

generate a second version of the data set with one or more sector errors corrected from the first version of the data set by applying the first ECC parity data and the second ECC parity data to the first version of the data set in conjunction with the encoder matrix.

2. The computing apparatus of claim 1 wherein the program instructions further direct the processing system to:

in response to a write request for the data set, generate the first ECC parity data for the data set using the encoder matrix; and

transfer the data set and the first ECC parity data to the data storage device for storage by the data storage device.

3. The computing apparatus of claim 1 wherein the encoder matrix comprises a Cauchy Matrix.

4. The computing apparatus of claim 1 wherein the tracks correspond to storage locations for the data set.

5. The computing apparatus of claim 4 wherein each track of the tracks stores one or more sectors of the data set or the first ECC parity data.

6. The computing apparatus of claim 1 wherein the first version of the data set comprises errors uncorrectable using the second ECC parity data.

7. The computing apparatus of claim 1 wherein the program instructions further direct the processing system to receive, from the data storage device, an indication identifying at least one remaining sector with errors in the first version of the data set.

8. A computing system to manage data parity for data sets, the computing system comprising:

a data storage device; and

a host processing system communicatively coupled to the data storage device and configured to:

in response to a read request, receive, from a data storage device, a first version of a data set, first error correcting code (ECC) parity data for the data set generated by the host system using an encoder matrix, and second ECC parity data for the data set generated by the data storage device using the encoder matrix for tracks of storage media on the data storage device using the encoder matrix; and

generate a second version of the data set with one or more sector errors corrected from the first version of the data set by applying the first ECC parity data and the second ECC parity data to the first version of the data set in conjunction with the encoder matrix.

9. The computing system of claim 8 wherein the host processing system is further configured to:

in response to a write request for the data set, generate the first ECC parity data for the data set; and

transfer the data set and the first ECC parity data to the data storage device for storage by the data storage device.

10. The computing system of claim 9 wherein the data storage device is configured to:

receive the data set and the first ECC parity data;

generate the second ECC parity data for the data set; and

store the data set, the first ECC parity data, and the second ECC parity data.

11. The computing system of claim 10 wherein the data storage device configured to store the data set, the first ECC parity data, and the second ECC parity data is configured to store the data set, the first ECC parity data, and the second ECC parity data to shingled magnetic recording media of the data storage device.

12. The computing system of claim 8 wherein the matrix comprises a Cauchy Matrix.

13. The computing system of claim 8 wherein the tracks correspond to storage locations for the data set.

14. The computing system of claim 13 wherein each track of the tracks stores one or more sectors of the data set or the first ECC parity data.

15. The computing system of claim 8 wherein the first version of the data set comprises errors uncorrectable using the second ECC parity data.

16. The computing system of claim 8 wherein the host processing system is further configured to receive, from the data storage device, an indication identifying at least one remaining sector with errors in the first version of the data set.

17. A computing apparatus comprising:

one or more non-transitory computer readable storage media;

a processing system operatively coupled with the one or more non-transitory computer readable storage media; and

program instructions stored on the one or more non-transitory computer readable storage media to operate a data storage device to manage storage of data sets that, when read and executed by the processing system, direct the processing system to at least:

in response to receiving a read request for a data set stored on a storage media of a data storage device, apply second error correcting code (ECC) parity data to the data set, wherein the second ECC parity data is generated by the data storage device for tracks on the data storage device using an encoder matrix;

determine whether the second ECC parity data corrected all sectors in the data set; and

when the second ECC parity data does not correct all sectors in the data set, transfer the data set, at least a portion of the second ECC parity data, and first ECC parity data to a host system, wherein the first ECC parity data was generated by the host system using the encoder matrix.

18. The computing apparatus of claim 17 wherein the program instructions further direct the processing system to, if the second ECC parity data did correct all sectors in the data set, transfer at least the data set to the host system.

19. The computing apparatus of claim 17 wherein the encoder matrix comprises a Cauchy Matrix.

20. The computing apparatus of claim 17 wherein the storage device comprises a hard disk drive.

21. A system comprising:

a means for identifying a read request for a data set stored on storage media of a data storage device;

a means for, in response to the read request, applying second parity data to the data set, wherein the second parity data is generated by the data storage device for tracks on the data storage device using an encoder matrix;

a means for determining whether the second parity data corrected all sectors in the data set; and

a means for, if the second parity data did not correct all sectors in the data set, transferring the data set, at least a portion of the second parity data, and first parity data to a host system, wherein the first parity data was generated by the host system using the encoder matrix.

22. The system of claim 21 further comprising:

a means for receiving, from the data storage device, the data set, the first parity data, and at least the portion of the second parity data;

a means for processing the data set using the first parity data, at least the portion of the second parity data, and the encoder matrix to generate a second version of the data set with one or more sector errors corrected from the data set.

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 - 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 →
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 Nov 15, 2016
From: YAMAMOTO, SATOSHI
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 040323/0786 →
Continuity (1)
Related Publication 20180137006A1 · May 17, 2018