IP Library › Granted Patent US 10,897,273
Granted Patent B2
US 10,897,273 · App. 16/020,853 · Granted Jan 19, 2021

System-level error correction coding allocation based on device population data integrity sharing

Inventors: Bernd Lamberts (San Jose, CA); Remmelt Pit (Menlo Park, CA); Timothy Lieber (Colorado Springs, CO); Robert M. Lester (Colorado Springs, CO); Zarko Popov (Mission Viejo, CA)
Assignee: Western Digital Technologies, Inc.
H03M13/356G06F3/068G06F3/0619G06F3/0659G06F11/1076
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,897,273
App. No.
16/020,853
Granted
Jan 19, 2021
Kind
B2
Abstract

A dynamic scalable error correction coding (ECC) scheme for a data storage system involves a system controller predicting a type and/or amount of ECC needed to reconstruct data to be stored on a particular data storage device(s) based on operational data integrity information accessed from the array of data storage devices. Thus, redundancy does not need to be allocated unless required. The devices may be logically grouped into subsets according to common characteristics, whereby the prediction made for a device in a subset may be based on the data integrity information from that subset, as well as from other relevant subsets.

Claims (61)

1. A method comprising:

a plurality of data storage devices constituent to a data storage system providing access to respective data integrity information corresponding to respective read signal integrity to a controller circuitry of the data storage system;

the controller circuitry determining, based at least in part on the data integrity information from at least a subset of the plurality of data storage devices, a type and/or amount of error correction coding (ECC) corresponding to prospective data to be stored on one or more of the plurality of data storage devices to inhibit read operation failures;

the controller circuitry computing ECC, according to the determined type and/or amount of ECC, for data from a write request; and

storing the data from the write request and storing the computed ECC for the data from the write request on one or more of the plurality of data storage devices.

2. The method of claim 1 , wherein the determining is performed in response to a write request from a client.

3. The method of claim 1 , wherein the determining is performed as a background process.

4. The method of claim 1 , further comprising:

in response to a data read request from a client, the controller circuitry requesting a read operation from one or more of the data storage devices on which the requested data is stored;

the one or more data storage devices returning to the controller circuitry the requested data and the corresponding ECC; and

the controller circuitry decoding the ECC.

5. The method of claim 1 , wherein:

the plurality of data storage devices are logically grouped into subsets according to one or more common characteristics; and

the determining the type and/or amount of ECC for a particular subset of data storage devices is based on the data integrity information from that particular subset.

6. The method of claim 1 , wherein:

the plurality of data storage devices are logically grouped into subsets according to one or more common characteristics; and

the determining the type and/or amount of ECC for a particular subset of data storage devices is based on the data integrity information from that particular subset and from one or more additional subsets of data storage devices.

7. The method of claim 1 , wherein the data integrity information from a data storage device characterizes signal integrity corresponding to that data storage device.

8. The method of claim 7 , wherein the data integrity information from a data storage device comprises a local iteration counter corresponding to at least a portion of a storage medium of that data storage device.

9. The method of claim 7 , wherein the data integrity information from a data storage device comprises a metric characterizing adjacent track interference corresponding to at least a portion of a storage medium of that data storage device.

10. The method of claim 1 , wherein the determining is further based on time criticality of the data to be stored on the one or more data storage devices.

11. The method of claim 1 , wherein the determining is further based on availability of other error correction coding corresponding to the data to be stored on the one or more data storage devices.

12. The method of claim 1 , wherein the determining is further based on ensuring operational availability of the data storage system during its specified life cycle.

13. The method of claim 1 , wherein:

the storing of the ECC is stored on an ECC track logically associated with a certain number of hard disk drive data sectors of a larger data sector grouping; and

the ECC track is a different track than a track on which corresponding data is stored.

14. The method of claim 1 , wherein the providing access to the respective data integrity information includes one or more of the plurality of data storage devices reporting respective data integrity information to the controller circuitry.

15. The method of claim 1 , wherein the providing access to the respective data integrity information includes the controller circuitry reading data integrity information stored on one or more of the plurality of data storage devices.

16. The method of claim 1 , wherein the storing includes storing the computed ECC on the data storage device on which the corresponding data is stored.

17. The method of claim 1 , wherein the storing includes storing the data on a first data storage device and storing the corresponding computed ECC on a different second data storage device.

18. A data storage system comprising:

a plurality of data storage devices; and

a system controller circuitry comprising memory and one or more processors and embodying one or more sequences of instructions which, when executed by the one or more processors, cause performance of:

accessing respective data fitness information corresponding to read signal integrity for data stored on at least a subset of the plurality of data storage devices;

determining, based at least in part on the accessed data fitness information, a type and/or amount of error correction coding (ECC) corresponding to prospective data to be stored on one or more of the plurality of data storage devices to inhibit read operation failures; and

in response to a data write command from a client:

computing ECC, according to the determined type and/or amount of ECC, for data from the write command, and

commanding writing the data from the write command and writing the computed ECC for the data from the write command onto one or more of the plurality of data storage devices.

19. The data storage system of claim 18 , wherein the one or more sequences of instructions, when executed by the one or more processors, cause further performance of:

in response to a data read request from the client, requesting a read operation from one or more of the data storage devices on which the requested data is stored;

receiving from the one or more data storage devices the requested data and the corresponding ECC; and

decoding the ECC.

20. The data storage system of claim 18 , wherein:

the one or more sequences of instructions, when executed by the one or more processors, cause further performance of logically grouping the plurality of data storage devices into subsets based on one or more common characteristics; and

the determining for a particular subset of data storage devices is based on the data fitness information from at least that particular subset.

21. The data storage system of claim 18 , wherein the data fitness information from a data storage device of the plurality of data storage devices characterizes a risk of data read errors corresponding to that data storage device.

22. The data storage system of claim 18 , wherein the plurality of data storage devices comprises at least two types of devices from a group consisting of rotating magnetic storage medium devices, solid state memory devices, and multi-medium devices.

23. The data storage system of claim 18 , wherein the determining is further based on ensuring operational availability of the data storage system during its warrantied life cycle.

24. A system comprising:

means for accessing respective data risk information corresponding to data stored on at least a subset of a plurality of data storage devices under the control of an electronic controller; and

means for predicting, based at least in part on the data risk information from at least a subset of the plurality of data storage devices providing access to the data risk information, whether additional error correction coding (ECC) is desired for prospective data to be stored on one or more of the plurality of data storage devices to inhibit read operation failures.

25. The system of claim 24 , further comprising:

means for computing the additional ECC in response to predicting that additional ECC is desired;

means for, in response to a data write command from a system client, commanding writing data from the write command and writing the additional ECC for the data from the write command onto one or more of the data storage devices;

means for requesting, in response to a data read request from the system client, a read operation from one or more of the data storage devices on which requested data is stored;

means for receiving from the one or more data storage devices the requested data and the corresponding additional ECC; and

means for decoding the additional ECC to reconstruct the requested data.

26. The system of claim 24 , further comprising:

means for requesting, in response to predicting that additional ECC is not desired and in response to a data read request from a system client, a read operation from one or more of the data storage devices on which the requested data is stored;

means for receiving from the one or more data storage devices the requested data and ECC already in place for protecting the data; and

means for decoding the ECC already in place to reconstruct the requested data.

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 Jun 27, 2018
From: LAMBERTS, BERND; PIT, REMMELT; LIEBER, TIMOTHY; LESTER, ROBERT M.; POPOV, ZARKO
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 046221/0631 →
Continuity (1)
Related Publication 20200007169A1 · Jan 2, 2020
Cited By (1)
US 12,481,429