IP Library › Granted Patent US 10,235,056
Granted Patent B2
US 10,235,056 · App. 14/498,331 · Granted Mar 19, 2019

Storage device health diagnosis

Inventor: Haining Liu (Irvine, CA)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F3/0616G06F3/064G06F3/0629G06F3/0653G06F3/0688G06F12/0246G06F2212/1016G06F2212/1032G06F2212/7205G06F2212/7208G06F2212/7211
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,235,056
App. No.
14/498,331
Granted
Mar 19, 2019
Kind
B2
Abstract

A storage device may include a plurality of memory devices logically divided into a plurality of blocks and a controller. In some examples, the controller may be configured to determine a respective fullness percentage for each respective block of the plurality of blocks; determine the smallest fullness percentage for the plurality of respective fullness percentages; and responsive to determining that the smallest fullness percentage exceeds a predetermined threshold value, perform an action related to health of the storage device.

Claims (57)

1. A storage device comprising:

a plurality of memory devices logically divided into a plurality of blocks; and

a controller configured to:

determine a respective fullness percentage for each respective block of the plurality of blocks, wherein the fullness percentage indicates valid data stored in the respective block compared to a total capacity of the respective block;

determine the smallest fullness percentage for the plurality of respective fullness percentages; and

responsive to determining that the smallest fullness percentage is greater than a predetermined threshold value, perform an action related to health of the storage device,

wherein the predetermined threshold value equals (W−1)/W, wherein W=(1+p)/2*p, wherein p=(T−D)/D, and wherein T is the total number of blocks of the storage device and D is the number of blocks accessible to a host device of the storage device for writing data to the storage device.

2. The storage device of claim 1 , wherein the controller is configured to perform the action related to the health of the storage device by at least modifying an operating parameter of the controller.

3. The storage device of claim 2 , wherein the controller is configured to modify the operating parameter of the controller by at least setting the storage device to a read-only state.

4. The storage device of claim 1 , wherein the controller is configured to perform the action related to the health of the storage device by at least outputting an indication to a host device that causes the host device to modify at least one operating parameter.

5. The storage device of claim 1 , wherein the controller is configured to, for each respective garbage collection operation of a plurality of garbage collection operations:

determine a respective fullness percentage for each block of the plurality of blocks of the storage device;

determine the respective smallest fullness percentage for the plurality of respective fullness percentages associated with the respective garbage collection operation;

determine an average smallest fullness percentage based on the respective smallest fullness percentages; and

compare the average smallest fullness percentage to the predetermined threshold value.

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

determine an average smallest fullness percentage based on the smallest fullness percentage and respective smallest fullness percentages for each of a plurality of previously performed garbage collection operations, and

responsive to determining that the average smallest fullness percentage exceeds the predetermined threshold value, perform the action related to health of the storage device.

7. The storage device of claim 1 , wherein the storage device comprises a solid state drive (SSD).

8. The storage device of claim 1 , wherein the fullness percentage increases over time as a number of free blocks in the plurality of blocks decreases.

9. A method comprising:

determining, by a controller of a storage device, a respective fullness percentage for each respective block of a plurality of blocks of the storage device, wherein the fullness percentage indicates valid data stored in the respective block compared to a total capacity of the respective block;

determining, by the controller, the smallest fullness percentage for the plurality of respective fullness percentages; and

responsive to determining that the smallest fullness percentage is greater than a predetermined threshold value, performing, by the controller, an action related to health of the storage device,

wherein the predetermined threshold value equals (W−1)/W, wherein W=(1+p)/2*p, wherein p=(T−D)/D, and wherein T is the total number of blocks of the storage device and D is the number of blocks accessible to a host device of the storage device for writing data to the storage device.

10. The method of claim 9 , wherein performing the action related to the health of the storage device comprises modifying an operating parameter of the controller.

11. The method of claim 10 , wherein modifying the operating parameter of the controller comprises setting the storage device to a read-only state.

12. The method of claim 9 , wherein performing the action related to the health of the storage device comprises outputting an indication to a host device that causes the host device to modify at least one operating parameter.

13. The method of claim 9 , further comprising, for each respective garbage collection operation of a plurality of garbage collection operations:

determining, by the controller, a respective fullness percentage for each block of the plurality of blocks of the storage device;

determining, by the controller, the respective smallest fullness percentage for the plurality of respective fullness percentages associated with the respective garbage collection operation;

determining, by the controller, an average smallest fullness percentage based on the respective smallest fullness percentages; and

comparing, by the controller, the average smallest fullness percentage to the predetermined threshold value.

14. The method of claim 9 , further comprising:

determining, by the controller, an average smallest fullness percentage based on the smallest fullness percentage and respective smallest fullness percentages for each of a plurality of previously performed garbage collection operations, and

wherein responsive to determining that the smallest fullness percentage is greater than the predetermined threshold value, performing the action related to health of the storage device comprises responsive to determining that the average smallest fullness percentage exceeds the predetermined threshold value, performing the action related to health of the storage device.

15. A non-transitory computer-readable storage medium comprising instructions that, when executed, configure one or more processors of a storage device to:

determine a respective fullness percentage for each respective block of a plurality of blocks of the storage device, wherein the fullness percentage indicates valid data stored in the respective block compared to a total capacity of the respective block;

determine the smallest fullness percentage for the plurality of respective fullness percentages; and

responsive to determining that the smallest fullness percentage is greater than a predetermined threshold value, perform an action related to health of the storage device,

wherein the predetermined threshold value equals (W−1)/W, wherein W=(1+p)/2*p, wherein p=(T−D)/D, and wherein T is the total number of blocks of the storage device and D is the number of blocks accessible to a host device of the storage device for writing data to the storage device.

16. The non-transitory computer-readable storage medium of claim 15 , further comprising instructions that, when executed, configure one or more processors of the storage device to:

determine an average smallest fullness percentage based on the smallest fullness percentage and respective smallest fullness percentages for each of a plurality of previously performed garbage collection operations, and

wherein the instructions that, when executed, configure the one or more processors of the storage device to, responsive to determining that the smallest fullness percentage is greater than the predetermined threshold value, perform the action related to health of the storage device comprise instructions that, when executed, configure the one or more processors of the storage device to, responsive to determining that the average smallest fullness percentage exceeds the predetermined threshold value, performing the action related to health of the storage device.

17. The non-transitory computer-readable storage medium of claim 15 , further comprising instructions that, when executed, configure one or more processors of the storage device to:

determine a respective fullness percentage for each block of the plurality of blocks of the storage device;

determine the respective smallest fullness percentage for the plurality of respective fullness percentages associated with a respective garbage collection operation;

determine an average smallest fullness percentage based on the respective smallest fullness percentages; and

compare the average smallest fullness percentage to the predetermined threshold value.

18. A system comprising:

means for determining a respective fullness percentage for each respective block of a plurality of blocks of the storage device, wherein the fullness percentage indicates valid data stored in the respective block compared to a total capacity of the respective block;

means for determining the smallest fullness percentage for the plurality of respective fullness percentages; and

means for performing, responsive to determining that the smallest fullness percentage is greater than a predetermined threshold value, an action related to health of the storage device,

wherein the predetermined threshold value equals (W−1)/W, wherein W=(1+p)/2*p, wherein p=(T−D)/D, and wherein T is the total number of blocks of the storage device and D is the number of blocks accessible to a host device of the storage device for writing data to the storage device.

19. The system of claim 18 , further comprising:

means for determining an average smallest fullness percentage based on the smallest fullness percentage and respective smallest fullness percentages for each of a plurality of previously performed garbage collection operations,

wherein the means for performing comprises means for performing, responsive to determining that the average smallest fullness percentage exceeds the predetermined threshold value, the action related to health of the storage device.

Assignments (6)
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 Dec 6, 2016
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 040829/0516 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2014
From: LIU, HAINING
To: HGST NETHERLANDS B.V.
Reel/Frame 033830/0315 →
Continuity (1)
Related Publication 20160092120A1 · Mar 31, 2016