IP Library Granted Patent US 9,141,531
Granted Patent B1
US 9,141,531 · App. 13/716,059 · Granted Sep 22, 2015

Data flush from cache to disk based on track limit

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 9,141,531
App. No.
13/716,059
Granted
Sep 22, 2015
Kind
B1
Abstract

A disk drive having a disk, a head actuated over the disk, a volatile semiconductor memory (VSM), a command queue, and control circuitry operable to receive a plurality of write commands from a host, store the plurality of write commands in the command queue, store write data for the plurality of write commands in the VSM, and flush, from the VSM to the disk, a portion of the write data corresponding to a predetermined number of tracks.

Claims (69)

1. A disk drive comprising:

a disk;

a head actuated over the disk;

a volatile semiconductor memory (VSM);

a command queue; and

control circuitry to:

receive a plurality of write commands from a host;

store the plurality of write commands in the command queue;

store write data for the plurality of write commands in the VSM; and

flush, from the VSM to the disk, a portion of the write data corresponding to a predetermined number of tracks, wherein the predetermined number of tracks comprises a limit on a number of tracks that are accessed when flushing the portion of the write data and wherein the predetermined number of tracks is based on a revolution time of the disk and one or more other performance measurements of the disk.

2. The disk drive according to claim 1 , wherein the predetermined number of tracks used by the control circuitry in performing the flushing is set such that a duration of the flushing does not exceed a predetermined maximum duration.

3. The disk drive according to claim 1 , wherein the control circuitry is further operable to perform the flushing using a rotational position optimization algorithm that selects sequential and near-sequential segment descriptors to flush.

4. The disk drive according to claim 1 , wherein the control circuitry is further to perform the storing the write data for the plurality of write commands by storing a plurality of segment descriptors.

5. The disk drive according to claim 4 , wherein the control circuitry is further to perform a flushing process by which the portion of the write data corresponding to the predetermined number of tracks is flushed, the flushing process comprising:

selecting a segment descriptor that is to be flushed from the plurality of segment descriptors;

marking the selected segment descriptor to be flushed from the VSM to the disk;

repeating the selecting the segment descriptor and the marking the selected segment descriptor to be flushed until segment descriptors referencing the portion of the write data corresponding to the predetermined number of tracks have been marked to be flushed from the VSM to the disk; and

flushing, from the VSM to the disk, the segment descriptors marked to be flushed.

6. The disk drive according to claim 5 , wherein the flushing process performed by the control circuitry further comprises:

storing a current track number corresponding to a number of the tracks on the disk to which the segment descriptors marked to be flushed will be flushed;

in the selecting the segment descriptor that is to be flushed, incrementing the current track number when a track to which the selected segment descriptor is to be flushed is changed from a track to which a previously selected segment descriptor is to be flushed; and

when the current track number exceeds the predetermined number of tracks,

performing the flushing, from the VSM to the disk, of the segment descriptors marked to be flushed.

7. The disk drive according to claim 6 , wherein the predetermined number of tracks used by the control circuitry in performing the flushing is set such that a duration of the flushing process does not exceed a predetermined maximum duration.

8. The disk drive according to claim 7 , wherein the predetermined number of tracks used by the control circuitry in performing the flushing is set based on revolutions per minute (RPM) of the disk.

9. The disk drive according to claim 6 , wherein the predetermined number of tracks used by the control circuitry in performing the flushing is 3.

10. The disk drive according to claim 9 , wherein the disk spins at 5400 revolutions per minute (RPM).

11. A method of flushing write data in a disk drive, the method comprising:

receiving a plurality of write commands from a host;

storing the plurality of write commands in a command queue;

storing the write data for the plurality of write commands in a volatile semiconductor memory (VSM); and

flushing, from the VSM to a disk, a portion of the write data corresponding to a predetermined number of tracks, wherein the predetermined number of tracks comprises a limit on a number of tracks that are accessed when flushing the portion of the write data and wherein the predetermined number of tracks is based on a revolution time of the disk and one or more other performance measurements of the disk.

12. The method according to claim 11 , wherein the predetermined number of tracks is set such that a duration of the flushing does not exceed a predetermined maximum duration.

13. The method according to claim 11 , wherein the flushing comprises using a rotational position optimization algorithm that selects sequential and near-sequential segment descriptors to flush.

14. The method according to claim 11 , wherein the storing the write data for the plurality of write commands comprises storing a plurality of segment descriptors.

15. The method according to claim 14 , wherein the flushing comprises:

selecting a segment descriptor that is to be flushed from the plurality of segment descriptors;

marking the selected segment descriptor to be flushed from the VSM to the disk;

repeating the selecting the segment descriptor and the marking the selected segment descriptor to be flushed until segment descriptors referencing the portion of the write data corresponding to the predetermined number of tracks have been marked to be flushed from the VSM to the disk; and

flushing, from the VSM to the disk, the segment descriptors marked to be flushed.

16. The method according to claim 15 , wherein the flushing further comprises:

storing a current track number corresponding to a number of the tracks on the disk to which the segment descriptors marked to be flushed will be flushed;

in the selecting the segment descriptor that is to be flushed, incrementing the current track number when a track to which the selected segment descriptor is to be flushed is changed from a track to which a previously selected segment descriptor is to be flushed; and

when the current track number exceeds the predetermined number of tracks, performing the flushing, from the VSM to the disk, of the segment descriptors marked to be flushed.

17. The method according to claim 16 , wherein the predetermined number of tracks is set such that a duration of the flushing process does not exceed a predetermined maximum duration.

18. The method according to claim 17 , wherein the predetermined number of tracks is set based on revolutions per minute (RPM) of the disk.

19. The method according to claim 16 , wherein the predetermined number of tracks used in performing the flushing is 3.

20. The method according to claim 19 , wherein the disk spins at 5400 revolutions per minute (RPM).

21. A non-transitory computer readable medium storing a program causing control circuitry in a disk drive to execute a process for flushing write data in the disk drive, the process comprising:

receiving a plurality of write commands from a host;

storing the plurality of write commands in a command queue;

storing the write data for the plurality of write commands in a volatile semiconductor memory (VSM); and

flushing, from the VSM to a disk, a portion of the write data corresponding to a predetermined number of tracks, wherein the predetermined number of tracks comprises a limit on a number of tracks that are accessed when flushing the portion of the write data and wherein the predetermined number of tracks is based on a revolution time of the disk and one or more other performance measurements of the disk.

22. The non-transitory computer readable medium according to claim 21 , wherein the predetermined number of tracks is set such that a duration of the flushing does not exceed a predetermined maximum duration.

23. The non-transitory computer readable medium according to claim 21 , wherein the flushing comprises using a rotational position optimization algorithm that selects sequential and near-sequential segment descriptors to flush.

24. The non-transitory computer readable medium according to claim 21 , wherein the storing the write data for the plurality of write commands comprises storing a plurality of segment descriptors.

25. The non-transitory computer readable medium according to claim 24 , wherein the flushing comprises:

selecting a segment descriptor that is to be flushed from the plurality of segment descriptors;

marking the selected segment descriptor to be flushed from the VSM to the disk;

repeating the selecting the segment descriptor and the marking the selected segment descriptor to be flushed until segment descriptors referencing the portion of the write data corresponding to the predetermined number of tracks have been marked to be flushed from the VSM to the disk; and

flushing, from the VSM to the disk, the segment descriptors marked to be flushed.

26. The non-transitory computer readable medium according to claim 25 , wherein the flushing further comprises:

storing a current track number corresponding to a number of the tracks on the disk to which the segment descriptors marked to be flushed will be flushed;

in the selecting the segment descriptor that is to be flushed, incrementing the current track number when a track to which the selected segment descriptor is to be flushed is changed from a track to which a previously selected segment descriptor is to be flushed; and

when the current track number exceeds the predetermined number of tracks, performing the flushing, from the VSM to the disk, of the segment descriptors marked to be flushed.

27. The non-transitory computer readable medium according to claim 26 , wherein the predetermined number of tracks is set such that a duration of the flushing process does not exceed a predetermined maximum duration.

28. The non-transitory computer readable medium according to claim 27 , wherein the predetermined number of tracks is set based on revolutions per minute (RPM) of the disk.

29. The non-transitory computer readable medium according to claim 26 , wherein the predetermined number of tracks used by the control circuitry in performing the flushing is 3.

30. The non-transitory computer readable medium according to claim 29 , wherein the disk spins at 5400 revolutions per minute (RPM).

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 →