# Patent

## Title
Disk drive modifying rotational position optimization algorithm to achieve target performance for limited stroke

## Abstract

A disk drive is disclosed comprising a head actuated over a disk, wherein a maximum radial movement of the head is limited. A plurality of access commands are stored in a command queue, and an access latency is determined for each command in the command queue, wherein the access latency is based at least on a seek latency for the head and a rotational latency for the disk. The access latency for each access command is increased by an offset based at least on a seek length for each access command, wherein the offset compensates for the limited maximum radial movement of the head. An access command is selected from the command queue based on the increased access latencies, and the selected access command is executed.

## Background
BACKGROUND
Disk drives comprise a disk and a head connected to a distal end of an actuator arm which is rotated about a pivot by a voice coil motor (VCM) to position the head radially over the disk. The disk comprises a plurality of radially spaced, concentric tracks for recording user data sectors and servo sectors. The servo sectors comprise head positioning information (e.g., a track address) which is read by the head and processed by a servo control system to control the actuator arm as it seeks from track to track.
FIG. 1A shows a prior art disk format comprising a number of servo sectors 60-6N recorded around the circumference of the disk 2 that define a plurality of servo tracks 4, wherein data tracks are defined relative to the servo tracks (at the same or different radial density). Each servo sector 6i may comprise a preamble 8 for storing a periodic pattern, which allows proper gain adjustment and timing synchronization of the read signal, and a sync mark 10 for storing a special pattern used to symbol synchronize to a servo data field 12. The servo data field 12 stores coarse head positioning information, such as a track address, used to position the head over a target data track during a seek operation. Each servo sector 6i may further comprise groups of servo bursts 14 (e.g., A, B, C and D bursts), which comprise a number of consecutive transitions recorded at precise intervals and offsets with respect to a servo track centerline. The groups of servo bursts 14 provide fine head position information used for centerline tracking while accessing a data track during write/read operations.
Multiple access commands may be received from the host while the disk drive is executing a current access command. The access commands are typically buffered in a command queue, and when the disk drive is finished executing the current command, a next command is selected from the command queue according to a rotational position optimization (RPO) algorithm. The RPO algorithm attempts to select the next command that will minimize the mechanical latency in accessing the disk, including the seek time required to move the head to the target track and the rotational time for the head to reach the target data sector.
The seek time is typically estimated for a given seek length (the number of tracks the head must traverse to arrive at the target track), where the seek time is typically related to the performance capabilities of the VCM as well as the parameters selected for the servo system to perform the seek, such as the selected velocity trajectory. Since the performance capability of the VCM is typically not a linear function of seek distance, and since the servo parameters may change based on the seek distance, the relationship between the seek length and seek time is also typically not linear across the radius of the disk. This is illustrated in FIG. 1B which shows a seek profile giving the seek time as a function of seek length. In this example, the seek profile is divided into a number of seek length segments, where each seek length segment may correspond to adjusting a servo system parameter, such as adjusting the velocity trajectory. Each seek length segment may correspond to a single seek time estimate, or each seek length segment may correspond to a function (e.g., a linear function) which may provide a more accurate estimate of the seek time relative to the seek length.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1A shows a prior art disk format comprising a plurality of tracks defined by servo sectors.
FIG. 1B shows a prior art seek profile giving seek time as a function of seek length for a full stroke disk drive.
FIG. 2A shows a disk drive according to an embodiment of the present invention comprising a head actuated over a disk.
FIG. 2B is a flow diagram according to an embodiment of the present invention wherein when operating the disk drive with a limited stroke, an access latency is increased prior to executing a rotational position optimization (RPO) algorithm in order to substantially match the operating performance in terms of average throughput to a full stroke disk drive.
FIG. 3A illustrates how increasing the access latency for each access command of the RPO algorithm based on a constant offset may not sufficiently match the average throughput of a limited stroke disk drive to a full stroke disk drive across all command queue depths.
FIG. 3B illustrates an embodiment of the present invention wherein increasing the access latency for the RPO algorithm based on an offset computed as a non-linear function of the seek length for each access command may better match the average throughput of a limited stroke disk drive to a full stroke disk drive across all command queue depths.



DETAILED DESCRIPTION
FIG. 2A shows a disk drive according to an embodiment of the present invention comprising a head 16 actuated over a disk 18. The disk drive further comprises control circuitry 20 operable to execute the flow diagram of FIG. 2B, wherein a maximum radial movement of the head is limited (block 22). A plurality of access commands are stored in a command queue (block 24), and an access latency is determined for each command in the command queue (block 26), wherein the access latency is based at least on a seek latency for the head and a rotational latency for the disk. The access latency for each access command is increased by an offset based at least on a seek length for each access command (block 28), wherein the offset compensates for the limited maximum radial movement of the head. An access command is selected from the command queue based on the increased access latencies (block 30), and the selected access command is executed (block 32).
In the embodiment of FIG. 2A, the disk 18 comprises embedded servo sectors 340-34N that define a plurality of servo tracks 36, wherein a plurality of data tracks are defined relative to the servo tracks (at the same or different radial density). The control circuitry 20 processes a read signal 38 emanating from the head 16 to demodulate the servo sectors 340-34N and generate a position error signal (PES) representing an error between the actual position of the head and a target position relative to a target track. The control circuitry 20 filters the PES using a suitable compensation filter to generate a control signal 40 applied to a voice coil motor (VCM) 42 which rotates an actuator arm 44 about a pivot in order to actuate the head 16 radially over the disk in a direction that reduces the PES. The servo sectors 340-34N may comprise any suitable position information, such as a track address for coarse positioning and servo bursts for fine positioning. The servo bursts may comprise any suitable servo burst pattern, such as an amplitude based servo burst pattern (A, B, C, D quadrature pattern) shown in FIG. 1A, or a phase based servo burst pattern (N, Q servo bursts).
In one embodiment, the capacity of the disk drive is reduced by limiting the maximum stroke of the actuator arm 44, thereby limiting the maximum radial movement of the head 16 over the disk 18. That is, the data tracks defined outside of the maximum radial movement of the head 16 are not accessed, thereby reducing the capacity of the disk drive. The maximum radial movement of the head may be limited in any suitable manner, such as by defining an inaccessible band of data tracks at the outer diameter of the disk 18, or at the inner diameter of the disk 18, or both. Limiting the maximum radial movement of the head also limits the maximum seek length, which increases the performance relative to a full stroke disk drive.
In one embodiment, it may be desirable for a limited stroke disk drive to exhibit performance similar to a full stroke disk drive. In this manner a disk drive manufacturer may offer disk drives of varying capacity having similar performance characteristics in terms of throughput. In one embodiment, the performance of a limited stroke disk drive is reduced relative to a full stroke disk drive by adding access latency to each access command prior to executing the RPO algorithm.
An RPO algorithm selects a next access command from the command queue to execute based on an access latency determined from a seek latency for the head to reach a target data track and a rotational latency for the disk to rotate to the target data sector. Increasing the access latency for each access command in the command queue reduces the performance of a limited stroke disk drive by changing the execution order of the access commands as determined by the RPO algorithm.
The access latency for each access command in the command queue may be increased in any suitable manner. In one embodiment, the access latency is increased without increasing either the seek latency of the head or the rotational latency of the disk. That is, the access latency is increased only with respect to the RPO algorithm, whereas the actual access latency remains the same since the seek and rotational latencies are unchanged. When the RPO algorithm processes the virtually increased access latencies, the order of execution changes which detunes the performance, even though the potential performance remains higher.
In an alternative embodiment, the access latency may be increased by increasing at least one of the seek latency of the head and the rotational latency of the disk. For example, the seek latency of the head may be increased by modifying a seek profile, such as by decreasing one or more of an acceleration trajectory, a constant velocity phase trajectory, or a deceleration phase trajectory. In addition (or alternatively), the rotational latency can be increased by decreasing the spin rate of the disk. Accordingly in this embodiment the actual access latency is increased for each access command in the command queue such that the order of access commands selected by the RPO algorithm is truly optimal. The execution order of the access commands as determined by the RPO algorithm will be the same regardless as to whether the access latency is increased virtually or actually.
FIG. 3A is a graph according to an embodiment of the present invention which plots the average throughput of a disk drive relative to a queue depth of the command queue. As the queue depth increases, the average seek length of the access commands selected from the command queue decreases since there are more access commands to select from. Conversely the average seek length increases as the queue depth decreases since there are fewer access commands to select from. Accordingly, the average throughput of a disk drive increases proportionally with the queue depth as illustrated in FIG. 3A. If the performance of a limited stroke disk drive is decreased by adding a constant offset to the access latency for each access command, the throughput versus queue depth will be higher at lower queue depths and lower at higher queue depths as illustrated in FIG. 3A. If the average queue depth remains near the middle of the graph where the two plots intersect, then the performance of a limited stroke disk drive will substantially match the performance of a full stroke disk drive. However, if the queue depth deviates from the middle of the graph, the resulting performance of a limited stroke drive will differ (either higher or lower) from a full stroke disk drive.
In one embodiment, the access latency of each access command is increased by adding an offset that is computed as a non-linear function of the seek length for each access command so that the two plots shown in FIG. 3A will substantially align across all queue depths. FIG. 3B illustrates an example of this embodiment wherein a predetermined offset (e.g., C/2) is used to increase the access latency of each command for a number of seek lengths up to a first seek length 46, and the offset is computed for a number of seek lengths exceeding the first seek length 46. In the embodiment shown in FIG. 3B, the offset for the number of seek lengths exceeding the first seek length 46 is computed according to:




  
    (
    
      N
      +
      
        distance_delta
        
          first_seek
          ⁢
          _length
        
      
    
    )
  
  ·
  C




where N is a value that defines a minimum for the offset, distance_delta represents the difference between the seek length of an access command and the first seek length 46, and C is a scalar. Adding a fraction of C (e.g., C/2) as the offset for the seek latencies up to the first seek length 46, and then adding an offset computed using the above equation causes the two plots shown in FIG. 3A to substantially align (i.e., the limited stroke plot will substantially align to the full stroke plot) across all queue depths, and therefore the performance of a limited stroke disk drive will substantially match the performance of a full stroke disk drive across all queue depths.

Any suitable control circuitry may be employed to implement the flow diagrams in the embodiments of the present invention, such as any suitable integrated circuit or circuits. For example, the control circuitry may be implemented within a read channel integrated circuit, or in a component separate from the read channel, such as a disk controller, or certain operations described above may be performed by a read channel and others by a disk controller. In one embodiment, the read channel and disk controller are implemented as separate integrated circuits, and in an alternative embodiment they are fabricated into a single integrated circuit or system on a chip (SOC). In addition, the control circuitry may include a suitable preamp circuit implemented as a separate integrated circuit, integrated into the read channel or disk controller circuit, or integrated into a SOC.
In one embodiment, the control circuitry comprises a microprocessor executing instructions, the instructions being operable to cause the microprocessor to perform the flow diagrams described herein. The instructions may be stored in any computer-readable medium. In one embodiment, they may be stored on a non-volatile semiconductor memory external to the microprocessor, or integrated with the microprocessor in a SOC. In another embodiment, the instructions are stored on the disk and read into a volatile semiconductor memory when the disk drive is powered on. In yet another embodiment, the control circuitry comprises suitable logic circuitry, such as state machine circuitry.

## Claims

1. A disk drive comprising:
a disk;
a head actuated over the disk; and
control circuitry operable to:
limit a maximum radial movement of the head;
store a plurality of access commands in a command queue;
determine an access latency for each command in the command queue, wherein the access latency is based at least on a seek latency for the head and a rotational latency for the disk;
increase the access latency for each access command by an offset based at least on a seek length for each access command, wherein the offset compensates for the limited maximum radial movement of the head;
select an access command from the command queue based on the increased access latencies; and
execute the selected access command.

2. The disk drive as recited in claim 1, wherein the control circuitry is operable to increase the access latency without increasing the seek latency for the head and the rotational latency for the disk.

3. The disk drive as recited in claim 1, wherein the control circuitry is operable to increase the access latency by increasing at least one of the seek latency for the head and the rotational latency for the disk.

4. The disk drive as recited in claim 1, wherein the control circuitry is operable to increase the access latency in order to substantially maintain a target throughput of access commands.

5. The disk drive as recited in claim 4, wherein the target throughput of access commands corresponds to a throughput of access commands without limiting the maximum radial movement of the head.

6. The disk drive as recited in claim 4, wherein the control circuitry is further operable to:
predetermine the offset for a number of seek lengths up to a first seek length; and
compute the offset for a number of seek lengths exceeding the first seek length.

7. The disk drive as recited in claim 6, wherein when the seek length of a first access command exceeds the first seek length the control circuitry is further operable to compute the offset for the first access command based on a difference between the seek length of the first access command and the first seek length.

8. The disk drive as recited in claim 7, wherein the control circuitry is further operable to compute the offset according to:




  
    (
    
      N
      +
      
        distance_delta
        
          first_seek
          ⁢
          _length
        
      
    
    )
  
  ·
  C



where:
N is a value that defines a minimum for the offset;
distance_delta represents the difference between the seek length of the first access command and the first seek length; and
C is a scalar.

9. The disk drive as recited in claim 8, wherein the predetermined offset comprises a fraction of C.

10. A method of operating disk drive, the disk drive comprising a head actuated over a disk, the method comprising:
limiting a maximum radial movement of the head;
storing a plurality of access commands in a command queue;
determining an access latency for each command in the command queue, wherein the access latency is based at least on a seek latency for the head and a rotational latency for the disk;
increasing the access latency for each access command by an offset based at least on a seek length for each access command, wherein the offset compensates for the limited maximum radial movement of the head;
selecting an access command from the command queue based on the increased access latencies; and
executing the selected access command.

11. The method as recited in claim 10, wherein the access latency is increased without increasing the seek latency for the head and the rotational latency for the disk.

12. The method as recited in claim 10, wherein the access latency is increased by increasing at least one of the seek latency for the head and the rotational latency for the disk.

13. The method as recited in claim 10, further comprising increasing the access latency in order to substantially maintain a target throughput of access commands.

14. The method as recited in claim 13, wherein the target throughput of access commands corresponds to a throughput of access commands without limiting the maximum radial movement of the head.

15. The method as recited in claim 13, wherein the method further comprises:
predetermining the offset for a number of seek lengths up to a first seek length; and
computing the offset for a number of seek lengths exceeding the first seek length.

16. The method as recited in claim 15, wherein when the seek length of a first access command exceeds the first seek length the method further comprises computing the offset for the first access command based on a difference between the seek length of the first access command and the first seek length.

17. The method as recited in claim 16, wherein the offset is computed according to:




  
    (
    
      N
      +
      
        distance_delta
        
          first_seek
          ⁢
          _length
        
      
    
    )
  
  ·
  C



where:
N is a value that defines a minimum for the offset;
distance_delta represents the difference between the seek length of the first access command and the first seek length; and
C is a scalar.

18. The method as recited in claim 17, wherein the predetermined offset comprises a fraction of C.