Disk drive modifying a rotational position optimization algorithm based on motor capability of a VCM
View Patent ↗A disk drive is disclosed comprising a disk, a head, and a voice coil motor (VCM) for actuating the head over the disk. The disk drive executes a rotational position optimization (RPO) algorithm to select a next command to execute relative to an estimated seek time computed for each command in a command queue. A motor capability of the VCM is estimated and used to modify the estimated seek time for each command in the command queue to thereby optimize the RPO algorithm.
1. A disk drive comprising:
(a) a disk comprising a plurality of tracks;
(b) a head;
(c) a voice coil motor (VCM) for actuating the head over the disk;
(d) a command queue for storing a plurality of disk access commands; and
(e) a disk controller for executing a rotational position optimization (RPO) algorithm to select a disk access command from the command queue as the next command to execute relative to an estimated seek time required to seek the head to a target track for each command in the command queue, wherein:
the disk controller estimates a motor capability of the VCM by measuring a velocity of the VCM relative to a current flowing through the VCM;
the disk controller modifies the estimated seek time for each command in the command queue in response to the estimated motor capability; and
the disk controller executes the RPO algorithm using the modified estimated seek times.
2. The disk drive as recited in claim 1 , wherein the disk controller determines the estimated motor capability during an acceleration phase of the VCM.
3. The disk drive as recited in claim 2 , wherein the disk controller determines the estimated motor capability of the VCM by computing a ratio of a difference in an estimated velocity of the VCM to a difference in an expected velocity of the VCM over a predetermined time interval of the acceleration phase.
4. The disk drive as recited in claim 3 , wherein the difference in the expected velocity of the VCM is determined by integrating a current flowing through the VCM.
5. The disk drive as recited in claim 4 , further comprising a current detector for detecting the current flowing through the VCM.
6. The disk drive as recited in claim 4 , wherein the current flowing through the VCM is estimated by applying a near-saturated acceleration current to the VCM during the acceleration phase.
7. The disk drive as recited in claim 1 , wherein the disk controller determines the estimated motor capability during a deceleration phase of the VCM.
8. The disk drive as recited in claim 1 , wherein the disk controller determines the estimated motor capability of the VCM by:
(a) applying an acceleration current to the VCM during the acceleration phase, wherein the acceleration current is significantly less than a saturation current; and
(b) measuring a distance traveled by the VCM over a predetermined time interval.
9. The disk drive as recited in claim 1 , wherein the disk controller decreases the estimated seek time for each command in the command queue if the estimated motor capability increases.
10. The disk drive as recited in claim 1 , wherein the disk controller increases the estimated seek time for each command in the command queue if the estimated motor capability decreases.
11. The disk drive as recited in claim 1 , wherein the disk controller modifies the estimated seek time for each command in the command queue in response to the estimated motor capability and a seek distance for each command in the command queue.
12. The disk drive as recited in claim 11 , wherein the disk controller modifies the estimated seek time for each command in the command queue by:
(a) computing a seek time delta in response to the estimated motor capability and the seek distance; and
(b) adding the seek time delta to a nominal estimated seek time.
13. The disk drive as recited in claim 12 , wherein the disk controller modifies the estimated seek time for each command in the command queue according to:
est — st=est — st 0 +k*D ( st ( L ))/ D ( a )* da
where:
st(L) is a seek time as a function of the seek distance L;
est — st 0 is the nominal estimated seek time;
a is the estimated motor capability;
a 0 is a nominal motor capability;
da is the difference between a and a 0 ; and
k is a discounting scalar.
14. A method of executing a rotational position optimization (RPO) algorithm in a disk drive for selecting a disk access command from a command queue as the next command to execute relative to an estimated seek time required to seek a head to a target track of a disk for each command in the command queue, wherein a voice coil motor (VCM) actuates the head over the disk, the method comprising the steps of:
(a) estimating a motor capability of the VCM by measuring a velocity of the VCM relative to a current flowing through the VCM;
(b) modifying the estimated seek time for each command in the command queue in response to the estimated motor capability; and
(c) executing the RPO algorithm using the modified estimated seek times.
15. The method as recited in claim 14 , wherein the motor capability is estimtaed during an acceleration phase of the VCM.
16. The method as recited in claim 15 , wherein the step of estimating the motor capability of the VCM comprises the step of computing a ratio of a difference in an estimated velocity of the VCM to a difference in an expected velocity of the VCM over a predetermined time interval of the acceleration phase.
17. The method as recited in claim 16 , wherein the difference in the expected velocity of the VCM is determined by integrating a current flowing through the VCM.
18. The method as recited in claim 17 , further comprising the step of detecting the current flowing through the VCM.
19. The method as recited in claim 17 , further comprising the step of estimating the current flowing through the VCM by applying a near-saturated acceleration current to the VCM during the acceleration phase.
20. The method as recited in claim 14 , wherein the motor capability is estimated during a deceleration phase of the VCM.
21. The method as recited in claim 14 , wherein the step of estimating the motor capability of the VCM comprises the steps of:
(a) applying an acceleration current to the VCM during the acceleration phase, wherein the acceleration current is significantly less than a saturation current; and
(b) measuring a distance traveled by the VCM over a predetermined time interval.
22. The method as recited in claim 14 , wherein the estimated seek time for each command in the command queue is decreased if the estimated motor capability increases.
23. The method as recited in claim 14 , wherein the estimated seek time for each command in the command queue is increased if the estimated motor capability decreases.
24. The method as recited in claim 14 , further comprising the step of modifying the estimated seek time for each command in the command queue in response to the estimated motor capability and a seek distance for each command in the command queue.
25. The method as recited in claim 24 , wherein the step of modifying the estimated seek time for each command in the command queue comprises the steps of:
(a) computing a seek time delta in response to the estimated motor capability and the seek distance; and
(b) adding the seek time delta to a nominal estimated seek time.
26. The method as recited in claim 25 , wherein the estimated seek time for each command in the command queue is modified according to:
est — st=est — st 0 +k*D ( st ( L ))/ D ( a )* da
where:
st(L) is a seek time as a function of the seek distance L;
est — st 0 is the nominal estimated seek time;
a is the estimated motor capability;
a 0 is a nominal motor capability;
da is the difference between a and a 0 ; and
k is a discounting scalar.