IP Library Granted Patent US 8,959,284
Granted Patent B1
US 8,959,284 · App. 12/824,959 · Granted Feb 17, 2015

Disk drive steering write data to write cache based on workload

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,959,284
App. No.
12/824,959
Granted
Feb 17, 2015
Kind
B1
Abstract

A disk drive is disclosed comprising a non-volatile write cache and a head actuated over a disk. A plurality of write commands are received from a host, wherein each write command comprises write data. A workload for a non-cache area of the disk is determined, and when the workload for the non-cache area of the disk is less than a threshold independent of a workload for the write cache, substantially all of the write data is stored in the non-cache area of the disk. When the workload for the non-cache area of the disk is greater than the threshold independent of the workload for the write cache, a first percentage of the write data is stored in the non-volatile write cache and a second percentage of the write data is stored in the non-cache area of the disk, wherein the first percentage is proportional to the workload for the non-cache area of the disk.

Claims (58)

1. A disk drive comprising:

a non-volatile write cache;

a disk;

a head actuated over the disk; and

control circuitry operable to:

receive a plurality of write commands from a host, wherein each write command comprises write data;

determine a workload for a non-cache area of the disk independent of a sequentiality of the write commands;

when the workload for the non-cache area of the disk is less than a threshold independent of a workload for the write cache, store substantially all of the write data in the non-cache area of the disk; and

when the workload for the non-cache area of the disk is greater than the threshold independent of the workload for the write cache, store a first percentage of the write data in the non-volatile write cache and a second percentage of the write data in the non-cache area of the disk, wherein the first percentage is proportional to the workload for the non-cache area of the disk.

2. The disk drive as recited in claim 1 , wherein the non-volatile write cache comprises a non-volatile semiconductor memory.

3. The disk drive as recited in claim 1 , wherein the non-volatile write cache comprises part of the disk.

4. The disk drive as recited in claim 1 , wherein the control circuitry is further operable to:

store the plurality of write commands in a command queue; and

determine the workload for the non-cache area of the disk based on a number of commands stored in the command queue.

5. The disk drive as recited in claim 1 , wherein the control circuitry is further operable to determine the workload based on a frequency of the write commands received from the host.

6. The disk drive as recited in claim 1 , wherein the control circuitry is further operable to:

store the plurality of write commands in a disk command queue; and

determine the workload based on a rotational position optimization (RPO) algorithm for selecting the write commands from the disk command queue based at least on a radial location of the head.

7. The disk drive as recited in claim 1 , wherein the control circuitry is further operable to:

maintain a plurality of access patterns of the write commands received from the host; and

determine the workload based on the access patterns.

8. The disk drive as recited in claim 1 , wherein the control circuitry is further operable to:

receive a command load message from the host; and

determine the workload based on the command load message.

9. The disk drive as recited in claim 1 , wherein the first and second percentages are further based on an amount of free space in the non-volatile write cache.

10. The disk drive as recited in claim 1 , wherein the first and second percentages are further based on a percentage of life remaining for the non-volatile write cache.

11. The disk drive as recited in claim 1 , wherein the control circuitry is further operable to flush the write data from the non-volatile write cache to the non-cache area of the disk during an idle mode.

12. The disk drive as recited in claim 1 , wherein the control circuitry is further operable to:

execute the write commands based on a rotational position optimization (RPO) algorithm for the disk; and

select the write data to be stored in the non-volatile write cache in response to the RPO algorithm.

13. The disk drive as recited in claim 1 , wherein the control circuitry is further operable to select the write data to be stored in the non-volatile write cache in response to a time-out limit assigned to each write command.

14. A method of operating a disk drive, the disk drive comprising a head actuated over a disk and a non-volatile write cache, the method comprising:

receiving a plurality of write commands from a host, wherein each write command comprises write data;

determining a workload for a non-cache area of the disk independent of a sequentiality of the write commands;

when the workload for the non-cache area of the disk is less than a threshold independent of a workload for the write cache, store substantially all of the write data in the non-cache area of the disk; and

when the workload for the non-cache area of the disk is greater than the threshold independent of the workload for the write cache, storing a first percentage of the write data in the non-volatile write cache and a second percentage of the write data in the non-cache area of the disk, wherein the first percentage is proportional to the workload for the non-cache area of the disk.

15. The method as recited in claim 14 , wherein the non-volatile write cache comprises a non-volatile semiconductor memory.

16. The method as recited in claim 14 , wherein the non-volatile write cache comprises part of the disk.

17. The method as recited in claim 14 , further comprising:

storing the plurality of write commands in a command queue; and

determining the workload for the non-cache area of the disk based on a number of commands stored in the command queue.

18. The method as recited in claim 14 , further comprising determining the workload based on a frequency of the write commands received from the host.

19. The method as recited in claim 14 , further comprising:

storing the plurality of write commands in a disk command queue; and

determining the workload based on a rotational position optimization (RPO) algorithm for selecting the write commands from the disk command queue based at least on a radial location of the head.

20. The method as recited in claim 14 , further comprising:

maintaining a plurality of access patterns of the write commands received from the host; and

determining the workload based on the access patterns.

21. The method as recited in claim 14 , further comprising:

receiving a command load message from the host; and

determining the workload based on the command load message.

22. The method as recited in claim 14 , wherein the first and second percentages are further based on an amount of free space in the non-volatile write cache.

23. The method as recited in claim 14 , wherein the first and second percentages are further based on a percentage of life remaining for the non-volatile write cache.

24. The method as recited in claim 14 , further comprising flushing the write data from the non-volatile write cache to the non-cache area of the disk during an idle mode.

25. The method as recited in claim 14 , further comprising:

executing the write commands based on a rotational position optimization (RPO) algorithm for the disk; and

selecting the write data to be stored in the non-volatile write cache in response to the RPO algorithm.

26. The method as recited in claim 14 , further comprising selecting the write data to be stored in the non-volatile write cache in response to a time-out limit assigned to each write command.

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 →