IP Library Granted Patent US 8,977,804
Granted Patent B1
US 8,977,804 · App. 13/301,567 · Granted Mar 10, 2015

Varying data redundancy in storage systems

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 8,977,804
App. No.
13/301,567
Granted
Mar 10, 2015
Kind
B1
Abstract

A disk drive is disclosed that varies its data redundancy policy for caching data in non-volatile solid-state memory as the memory degrades. As the non-volatile memory degrades, the redundancy of data stored in the non-volatile memory can be increased to counteract the effects of such degradation. Redundant data can be used to recover data stored in the non-volatile memory in case of a data corruption. Performance improvements and reduced costs of disk drives can thereby be attained.

Claims (54)

1. In a storage system comprising non-volatile memory, a method of caching data in the non-volatile memory, the method comprising:

configuring a write operation of data to the non-volatile memory, the configuring comprising:

determining a reliability measurement of the non-volatile memory;

comparing the reliability measurement with first and second thresholds, the first threshold indicating higher reliability of the non-volatile memory than the second threshold;

if the reliability measurement falls below the first threshold but does not fall below the second threshold, determining a parity level and setting a redundancy level to the parity level;

if the reliability measurement falls below the second threshold, determining a mirroring level and setting the redundancy level to the mirroring level;

writing data to the non-volatile memory using the set redundancy level; and

increasing at least one of the parity and mirroring level when the reliability measurement has been determined to decrease.

2. The method of claim 1 , wherein when the redundancy level is set to the mirroring level, writing data to the non-volatile memory further comprises writing a number of copies of data corresponding to the mirroring level.

3. The method of claim 1 , wherein when the redundancy level is set to the parity level, writing data to the non-volatile memory further comprises:

creating a plurality of parity data units corresponding to data, wherein a number of parity data units in the plurality corresponds to the parity level; and

writing data along with the plurality of parity data units to the non-volatile memory.

4. The method of claim 1 , wherein the reliability measurement corresponds at least in part to a remaining usable life of the non-volatile memory.

5. The method of claim 4 , wherein the remaining usable life corresponds at least in part to one of: a number of remaining program-erase cycles of the non-volatile memory and a number of read errors of the non-volatile memory.

6. The method of claim 4 , wherein:

the non-volatile memory comprises multi-level cell solid-state memory; and

the remaining usable life corresponds at least in part to an adjustment of a voltage threshold of the multi-level cell memory.

7. The method of claim 1 , wherein non-volatile memory comprises solid-state memory.

8. The method of claim 1 , wherein the writing further comprises:

determining whether a write operation has been initiated;

if the write operation has not been initiated, writing data to the non-volatile memory using the set redundancy level; and

if the write operation has been initiated, writing data to the non-volatile memory using a previous redundancy level.

9. The method of claim 1 , wherein writing data to the non-volatile memory comprises:

if a new data storage unit has been allocated for writing data to the non-volatile memory, writing data to the non-volatile memory using the new data storage unit, the new data storage unit formatted according to the set redundancy level; and

if the new data storage unit has not been allocated for writing data to the non-volatile memory, writing data to the non-volatile memory using a previously allocated data storage unit, the previously allocated data storage unit formatted according a previous redundancy level.

10. A storage system for storing data received from a host system, the system comprising:

a non-volatile solid state memory configured to store data received from the host system; and

a controller configured to:

determine a reliability measurement of the non-volatile memory;

adjust a redundancy level used for writing data to the non-volatile memory based at least partly on the reliability measurement, wherein the redundancy level is increased when the reliability measurement has been determined to decrease; and

write data to the non-volatile memory using the adjusted redundancy level.

11. The system of claim 10 , wherein the controller is configured to write data to the non-volatile memory by:

if a new data storage unit has been allocated for writing data to the non-volatile memory, writing data to the non-volatile memory using the new data storage unit, the new data storage unit formatted according to the set redundancy level; and

if the new data storage unit has not been allocated for writing data to the non-volatile memory, writing data to the non-volatile memory using a previously allocated data storage unit, the previously allocated data storage unit formatted according a previous redundancy level.

12. The system of claim 10 , wherein the controller is further configured to increase the redundancy level of data to be written to the non-volatile memory when the determined reliability measurement indicates a degradation of reliability.

13. The system of claim 10 , wherein the reliability measurement corresponds to at least one of: a number of remaining program-erase cycles of the non-volatile memory and a number of read errors of the non-volatile memory.

14. The system of claim 10 , wherein the reliability measurement corresponds to an adjustment of programming algorithm parameters.

15. The system of claim 10 , wherein the controller is further configured to:

compare the reliability measurement to a parity threshold; and

if the reliability measurement falls below the parity threshold, determine a parity level based at least in part on the reliability measurement and set the redundancy level to the determined parity level.

16. The system of claim 15 , wherein the controller is further configured to:

compare the reliability measurement to a mirroring threshold, wherein the parity threshold indicates higher reliability of the non-volatile solid state memory than the mirroring threshold; and

if the reliability measurement falls below the mirroring threshold, determine a mirroring level based at least in part on the reliability measurement and set the redundancy level to the determined mirroring level.

17. The system of claim 16 , wherein:

when the redundancy level is set to the mirroring level, the controller is further configured to write a number of copies of data to the non-volatile memory, the number of copies corresponding to the mirroring level; and

when the redundancy level is set to the parity level, the controller is further configured to:

create a plurality of parity data units corresponding to data, wherein the number of parity data units in the plurality of parity data units corresponds to the parity level; and

write data along with the plurality of parity data units to the non-volatile memory.

18. The system of claim 10 , further comprising a magnetic medium configured to store data received from the host, wherein the controller is further configured to write data to the magnetic medium when the reliability measurement falls below a minimum reliability threshold.

19. The system of claim 10 , wherein the controller is further configured to determine the reliability measurement by receiving reliability information from a signal processing subsystem.

20. The system of claim 19 , wherein the signal processing subsystem is part of a bridge device coupled to the non-volatile memory.

21. The system of claim 10 , wherein the controller is further configured to:

if a write operation has not been initiated, write data to the non-volatile memory using the adjusted redundancy level; and

if the write operation has been initiated, write data to the non-volatile memory using a previous redundancy level.

Assignments (7)
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 038744 FRAME 0481 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0556 →
RELEASE OF SECURITY INTEREST Recorded Mar 5, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045501/0714 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038722/0229 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038744/0281 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038744/0481 →