Disk apparatus and method

By introducing a command reordering unit into the disk device, the seek time is accurately estimated using a force constant table and seek curve graph, and the command execution order is optimized, thus solving the problem of extended execution time for multiple commands and achieving efficient command processing.

CN122455019APending Publication Date: 2026-07-24KK TOSHIBA +1
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
KK TOSHIBA
Filing Date
2025-04-07
Publication Date
2026-07-24

AI Technical Summary

Technical Problem

In disk devices, existing technologies struggle to efficiently reorder multiple commands, leading to increased overall time, especially when seek time estimates are inaccurate, resulting in increased rotational latency.

Method used

By introducing a command reordering unit into the disk device, and using a force constant table, seek curve chart, and coefficient table, combined with the position and travel distance of the read/write head, the seek time can be accurately estimated, the command execution order can be optimized, and the command with the shortest time can be selected for priority execution.

Benefits of technology

It improves the estimation accuracy of seek time, reduces the total execution time of multiple commands, and achieves efficient command execution.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122455019A_ABST
    Figure CN122455019A_ABST
Patent Text Reader

Abstract

This embodiment relates to a disk device and a method. A controller of the disk device performs, for each of a plurality of commands that are not executed, a first action of estimating a seek time for execution of the command. The first action is an action of acquiring a first force constant and a second force constant and estimating the seek time based on the first force constant and the second force constant and a seek distance. The first force constant is a force constant of a motor when a head is located at a start position of a seek operation for execution of the command. The second force constant is a force constant of the motor when the head is located at an end position of the seek operation for execution of the command. The controller decides, based on the estimated value of the seek time obtained by the first action for each of the plurality of commands that are not executed, a command to be executed first among the plurality of commands that are not executed.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application enjoys priority based on Japanese Patent Application No. 2025-009796 (filed on January 23, 2025). This application incorporates the entire contents of that basic application by reference. Technical Field

[0002] This embodiment relates to a disk device and method. Background Technology

[0003] In recent years, disk drives have implemented a command reordering process to reduce the total execution time of multiple commands when they are received from the host. Command reordering involves estimating the access time (including seek time) for each command when multiple commands are pending, and then selecting the next command to be executed based on this estimated access time. Summary of the Invention

[0004] According to one embodiment, a disk drive includes a disk, a read / write head, a motor, a first memory, and a controller. The read / write head accesses the disk. The motor performs a seek operation that moves the read / write head in a radial direction of the disk. The first memory stores a plurality of commands, which are unexecuted commands requesting access to the disk. For each of the plurality of commands, the controller performs a first action that estimates a first time, the first time being the time required for the seek operation to execute the command. The first action is to obtain a first force constant and a second force constant, and estimate the first time based on the first force constant, the second force constant, and a first distance. The first force constant is the force constant of the motor when the read / write head is at the beginning position of the seek operation for executing the command. The second force constant is the force constant of the motor when the read / write head is at the end position of the seek operation for executing the command. The first distance is the distance the read / write head moves due to the seek operation for executing the command. Based on the estimated value of the first time obtained by the first action for each of the plurality of commands, the controller determines the command to be executed first among the plurality of commands.

[0005] According to one implementation, a disk device and method are provided that can efficiently execute multiple commands from a host. Attached Figure Description

[0006] Figure 1 This is a block diagram illustrating an example of the configuration of the disk device according to the first embodiment.

[0007] Figure 2 This is a diagram illustrating an example of the configuration of the disk according to the first embodiment.

[0008] Figure 3This is a top view of the VCM according to the first embodiment with the upper magnetic yoke removed.

[0009] Figure 4 It is in the state of having the upper magnetic yoke installed from Figure 3 The diagram shown is taken when viewing the VCM according to the first embodiment from the DR direction.

[0010] Figure 5 This is a diagram showing the relationship between the position of the magnetic head in the radial direction and the force constant, and an example of the configuration of the force constant table according to the first embodiment.

[0011] Figure 6 This is a diagram illustrating an example of the configuration of the seek curve graph according to the first embodiment.

[0012] Figure 7 This is a diagram illustrating an example of the configuration of the coefficient table according to the first embodiment.

[0013] Figure 8 This is a flowchart illustrating an example of the command reordering operation involved in the first embodiment.

[0014] Figure 9 This is a flowchart illustrating an example of the operation of obtaining a revised estimated value of seek time according to the first embodiment.

[0015] Figure 10 This is a diagram illustrating an example of setting information stored in a non-volatile memory according to the second embodiment.

[0016] Figure 11 This is a diagram illustrating an example of the configuration of the seek curve graph according to the second embodiment.

[0017] Figure 12 This is a flowchart illustrating an example of the operation of obtaining an estimated value of seek time according to the second embodiment.

[0018] Explanation of reference numerals in the attached figures

[0019] 1. Disk; 2. Spindle Motor (SPM); 3. Voice Coil Motor (VCM); 4. Axis; 5. Servo Control Circuit; 6. Disk Control Circuit; 7. Volatile Memory; 8. Non-volatile Memory; 9. Read / Write Channel; 10. Head Control Circuit; 15. Servo Area; 16. Data Area; 17. Track; 31. Coil; 32D, 32U Magnets; 33D, 33U Yoke; 51. SPM Control Unit; 52. VCM Control Unit; 61. Command Reordering Unit; 71. Command Queue; 81. Force Constant Table; 82, 82a. Seek Curve Chart; 83. Coefficient Table; 100, 100a. Disk Device; 101. Reproduction Signal Detection Unit; 102. Write Current Control Unit; 200. Main Unit. Detailed Implementation

[0020] Hereinafter, the disk device and method according to the embodiments will be described in detail with reference to the accompanying drawings. However, the invention is not limited to these embodiments.

[0021] (First Embodiment)

[0022] Hereinafter, the disk device according to the embodiments will be described in detail with reference to the accompanying drawings. However, this invention is not limited to these embodiments.

[0023] Figure 1 This is a block diagram illustrating an example of the configuration of the disk device according to the first embodiment. The disk device 100 can be connected to the host 200. The disk device 100 functions as an external storage device of the host 200. The disk device 100 can receive access commands such as write commands and read commands from the host 200.

[0024] The disk drive 100 includes a disk 1, a spindle motor (SPM) 2, a read / write head MH, an actuator arm AA, a voice coil motor (VCM) 3, a servo control circuit 5, a hard disk control circuit 6, volatile memory 7, non-volatile memory 8, a read / write channel 9, and a head control circuit 10.

[0025] Disk device 100 receives access commands from host 200. Based on the received access commands, disk device 100 writes data to disk 1 and reads data from disk 1. The access commands contain address information. The address information represents the location within the address space provided by disk device 100 to host 200.

[0026] A magnetic layer capable of recording various information is provided on the surface of the disk 1. The disk device 100 may include one disk 1 or multiple disks 1 arranged coaxially. Figure 1 To keep the explanation simple, only one disk 1 is shown.

[0027] Figure 2 This diagram illustrates an example of the configuration of the disk 1 according to the first embodiment. Servo data for positioning the read / write head MH is written to a magnetic layer formed on the surface of the disk 1, for example by a servo writer or by self-servo writing (SSW). The servo data includes a servo mark, Gray code, a burst pattern, and a post code.

[0028] exist Figure 2As an example of a configuration of servo areas where servo data is written, servo areas 15 are shown in a radial arrangement. A data area 16, which allows data to be written, is provided between two servo areas 15 in the circumferential direction. Multiple concentric tracks 17 are provided in the radial direction of the disk 1. Multiple sectors, capable of being written to, are provided within the intervals divided by the data areas 16 on each track 17.

[0029] The aforementioned address space is mapped to a group of sectors set on disk 1. Disk device 100 accesses the sectors corresponding to the address information contained in the access command according to the access command from host 200. The access is either writing or reading.

[0030] When writing data to and reading data from disk 1, the positioning control of the read / write head MH, i.e., the control of the seek and tracking actions, is performed based on the servo data read by the head MH from the servo area 15. The seek action is the action of moving the head MH radially toward the target track 17. The tracking action is the action of maintaining the head MH on the target track 17 after it has moved there. The position of the head MH can be uniquely represented using its radial position on disk 1 (i.e., a specific track 17). The radial position of the head MH on disk 1 can be simply expressed as the radial position of the head MH.

[0031] From now on, data requested to be written via a write command will be recorded as written data. Additionally, data requested to be read via a read command and read from disk 1 will be recorded as read data.

[0032] Return to the instructions Figure 1 .

[0033] As previously described, data writing and reading from disk 1 are performed via the read / write head MH. The read / write head MH is located at one end of the actuator arm AA and performs data writing and reading from disk 1. The read / write head MH has a write head WH for writing data to disk 1 and a read head RH for reading data from disk 1. The read / write head MH is supported on the slider SL.

[0034] SPM2 rotates disk 1. The read / write head MH uses the lift generated by the rotation of disk 1 to maintain a slightly floating state from the surface of disk 1 while moving relative to the surface of disk 1 in a circumferential direction.

[0035] VCM3 is located on the end of actuator arm AA opposite to the end where the read / write head MH is located. VCM3 drives actuator arm AA to rotate about axis 4. As a result, VCM3 causes the read / write head MH to move relative to disk 1 in the radial direction.

[0036] The head control circuit 10 includes a reproduction signal detection unit 101 and a write current control unit 102. The write current control unit 102 generates a current with a waveform corresponding to the data input from the read / write channel 9. The write current control unit 102 performs data writing to the disk 1 by causing the generated current to flow to the write head WH. The reproduction signal detection unit 101 amplifies the read signal output from the read head RH and supplies it to the read / write channel 9.

[0037] Volatile memory 7 is a volatile memory capable of high-speed operation. It temporarily stores write data received from host 200 and read data read from disk 1. In other words, volatile memory 7 is used as a buffer area for writing and reading data.

[0038] In addition, the volatile memory 7 may have an area for loading various data or programs used by the hard disk control circuit 6, etc.

[0039] Additionally, a command queue 71 is set up in the volatile memory 7. The command queue 71 is a storage area that temporarily stores access commands received from the host 200.

[0040] The read / write channel 9 encodes and modulates the write data stored in the volatile memory 7, and outputs the encoded and modulated write data to the head control circuit 10. In addition, the read / write channel 9 encodes and demodulates the data transmitted from the head control circuit 10, and stores the encoded and demodulated data as read data in the volatile memory 7.

[0041] The non-volatile memory 8 pre-stores various data and programs used by the hard disk control circuit 6. These pre-stored data and programs are loaded into the volatile memory 7, for example, during startup. The hard disk control circuit 6 then uses the data and programs loaded into the volatile memory 7.

[0042] Various data pre-stored in non-volatile memory 8 include a force constant table 81, a seek profile table 82, and a coefficient table 83. Details of these tables will be explained later.

[0043] The servo control circuit 5 includes an SPM control unit 51 and a VCM control unit 52.

[0044] The SPM control unit 51 supplies power to the SPM2. The SPM control unit 51 adjusts the power supplied to the SPM2, thereby controlling the rotation of the SPM2.

[0045] The VCM control unit 52 supplies power to the VCM3. The VCM control unit 52 adjusts the power supplied to the VCM3, thereby controlling the rotation of the VCM3.

[0046] The hard disk control circuit 6 receives commands from the host 200, including access commands, and responds to the host 200 accordingly.

[0047] For example, when the hard disk control circuit 6 receives a write command from the host 200, the hard disk control circuit 6 saves the write data requested by the write command in the volatile memory 7 and saves the write command in the command queue 71. When the hard disk control circuit 6 receives a read command from the host 200, the hard disk control circuit 6 saves the read command in the command queue 71. The hard disk control circuit 6 executes one or more access commands saved in the command queue 71 in sequence.

[0048] If a read command is stored in the command queue 71 and is executed, the hard disk control circuit 6 performs a read operation on the disk 1 according to the read command. If the read data is stored in the volatile memory 7 through the read operation, the read data is transferred from the volatile memory 7 to the host 200.

[0049] When a write command is stored in the command queue 71 and the write command is executed, the hard disk control circuit 6 performs a write operation to write the write data stored in the volatile memory 7 that was requested to be written by the write command to the disk 1.

[0050] The hard disk control circuit 6 erases the access command stored in the command queue 71 at a predetermined time, such as when the execution of the access command is completed.

[0051] The hard disk control circuit 6 includes a command reordering unit 61. When one or more unexecuted access commands are stored in the command queue 71, the command reordering unit 61 determines the execution order of these access commands. In particular, when the command queue 71 stores multiple unexecuted access commands, the command reordering unit 61 performs a command reordering operation.

[0052] Command reordering is an action that selects the access command with the shortest execution time from a list of multiple access commands that have not yet been executed as the next access command to be executed.

[0053] Access time is the sum of seek time and rotational latency. Seek time is the time required for the seek operation. Rotational latency is the waiting time from the completion of the seek operation until the read / write head (MH) reaches the sector to be accessed. Rotational latency is the time required for rotational latency.

[0054] The command reordering unit 61 sums up the estimated seek time and spin-time for each of the unexecuted access commands by considering these estimated values, thereby determining the estimated access time for each of the unexecuted access commands. Furthermore, the command reordering unit 61 determines the unexecuted access command with the smallest estimated access time value as the first access command to be executed among the multiple unexecuted access commands.

[0055] The timing of the command reordering action can be arbitrarily designed. In one example, the command reordering action is performed before the execution of an access command is completed. That is, when multiple access commands that have not been executed while an access command is being executed are located in the command queue 71, the command reordering unit 61 determines the access command to be executed first from among the multiple unexecuted access commands in the command queue 71 by performing the command reordering action. In the command reordering action, the command reordering unit 61 estimates the access time starting from the timing of the completion of the execution of the access command that is being executed. Thus, the time from the completion of the execution of the access command that is being executed to the start of the execution of the next access command can be minimized. When the execution of the access command that has been determined to be executed first begins, the command reordering unit 61 determines the access command to be executed first from among the remaining multiple unexecuted access commands in the command queue 71 by performing the command reordering action again. In this way, whenever an access command is executed, the command reordering unit 61 determines the access command to be executed first from among the unexecuted access commands based on the estimated access time of each access command.

[0056] Furthermore, the command reordering unit 61 not only determines the first access command to be executed among the multiple unexecuted access commands in the command reordering operation, but also determines the second and subsequent access command to be executed among the multiple unexecuted access commands.

[0057] Even if the order of execution among multiple unexecuted access commands is determined, and a new access command is stored in the command queue 71 before the execution of an ongoing access command is completed, the command reordering unit 61 may perform the command reordering operation again. Alternatively, the command reordering unit 61 may choose not to perform the command reordering operation again.

[0058] In order to maximize the effect of command reordering, that is, to shorten the total time required to execute multiple access commands, it is necessary to estimate the access time, especially the seek time, as accurately as possible.

[0059] For example, if the actual seek time is longer than the estimated seek time, the read / write head may pass the destination sector at the time the seek operation is completed, potentially increasing the rotational latency by the equivalent of one disk rotation. In other words, the actual access time may be significantly longer than the estimated access time. Conversely, if the actual seek time is shorter than the estimated seek time, the shorter estimated access time may prevent the selection of the access command with the shortest access time. In other words, when the estimated seek time is inaccurate, the number of access commands that can be executed per unit of time decreases, potentially diminishing the effectiveness of command reordering to reduce the total time required to execute multiple access commands.

[0060] Next, VCM3 will be explained. Figure 3 This is a top view obtained by observing the VCM3 according to the first embodiment with the upper magnetic yoke 33U removed. Figure 4 It is in the state of having the upper magnetic yoke 33U installed from Figure 3 The diagram shown is obtained by observing the VCM3 according to the first embodiment from the direction DR. Furthermore, in Figure 3 and Figure 4 For convenience, in the description, the direction in which axis 4, which serves as the rotation axis of actuator arm AA, extends is defined as the Z direction; a direction orthogonal to the Z direction is defined as the X direction; and another direction orthogonal to both the X and Z directions is defined as the Y direction. The side facing the positive direction of the Z direction is defined as the upper side, and the side facing the negative direction of the Z direction is defined as the lower side.

[0061] like Figure 3 and Figure 4 As shown, VCM3 includes a coil 31 disposed on actuator arm AA, a magnet 32U disposed on the upper yoke 33U, and a magnet 32D disposed on the lower yoke 33D. The magnets 32U and 32D are disposed in a manner that faces each other, thereby forming a magnetic field in the Z direction between the magnets 32U and 32D.

[0062] Coil 31 is disposed between magnets 32U and 32D. When current flows in coil 31, coil 31 receives a thrust in a direction intersecting the magnetic field formed between magnets 32U and 32D in the Z direction. This thrust causes the read / write head MH to move radially on disk 1.

[0063] The acceleration of the magnetic head MH caused by VCM3 is determined by the magnitude of the current flowing in coil 31 and the force constant BL. The force constant is a constant arising from the magnetic flux density of the magnet and the effective length of the coil within the magnetic flux. Within VCM3, the force constant BL is not uniform within the movable range of coil 31, and its magnitude may vary depending on the positional relationship between magnets 32U and 32D and coil 31. Furthermore, during the seek operation, the positional relationship between coil 31 and magnets 32U and 32D changes according to the radial position of the magnetic head MH. Therefore, even if the magnitude of the current flowing in coil 31 is constant, the resulting acceleration will vary depending on the position of coil 31 (i.e., the position of the magnetic head MH).

[0064] Figure 5 The figure shows the relationship between the position of the magnetic head MH in the radial direction and the force constant BL. Furthermore, in this figure, the force constant BL is represented as a percentage of the maximum possible value of BL, set to 100%. Additionally, the position of the magnetic head MH is normalized to a numerical value ranging from 0 to 1, where the radius position of the track 17 on the outermost diameter side is set to 0, and the position of the track 17 on the innermost diameter side is set to 1.

[0065] like Figure 5 As shown, the force constant BL decreases near the inner and outer peripheries of disk 1. This is because when the read / write head MH is near the inner periphery and near the outer periphery, coil 31 is located where the magnetic flux density of magnets 32U and 32D is low. Because the force constant BL decreases near the inner and outer peripheries of the read / write head MH, the acceleration of the head MH decreases, and consequently, the radial movement speed (seek speed) of the head MH decreases.

[0066] To prevent performance degradation due to reduced seek speed, a correction is made at the position of the magnetic head MH where the force constant BL decreases, increasing the current in coil 31. However, the current that can flow in coil 31 has a maximum value based on physical constraints. This maximum value is called the saturation current. This saturation current depends on the applied voltage to coil 31, the reverse induced voltage, the resistance of coil 31, etc.

[0067] Part of the seek operation control is based on the acceleration of the read / write head MH. Therefore, if the current in coil 31 is saturated, the acceleration of the read / write head MH cannot reach the desired value, and the seek operation control may fail. Since the back electromotive force, which is a factor determining the saturation current, is the product of the velocity of the read / write head MH and the force constant BL, a small force constant BL results in a small saturation current. That is, it can be said that current saturation is likely to occur when the read / write head MH is located in a position where the force constant BL becomes smaller, specifically near the inner or outer periphery. To prevent current saturation, when the read / write head MH is located near the inner or outer periphery at the start or end of the seek operation, the current in coil 31 is suppressed. Correspondingly, the acceleration obtained by suppressing the current in coil 31 is also reduced, thus increasing the seek time.

[0068] Thus, since the force constant BL is position-dependent, even if the radial distance of the head MH is the same, the seek time may vary depending on the position of the head MH at the beginning or end of the seek operation (more precisely, the position where the head MH accelerates or decelerates).

[0069] Therefore, in order to more accurately estimate the seek time, the command reordering unit 61 obtains the force constant BL when the read / write head MH is at the beginning position of the seek operation and the force constant BL when the read / write head MH is at the end position of the seek operation. The command reordering unit 61 estimates the seek time based on the obtained force constant BL and seek distance at each position. The seek distance is the radial distance traveled by the read / write head MH caused by the seek operation. The end position of the seek operation, in other words, is the radial position of the target track 17.

[0070] From now on, the force constant BL when the read / write head MH is in the starting position of the seek operation will be denoted as the force constant BLst. Sometimes, the force constant BL when the read / write head MH is in the ending position of the seek operation will be denoted as the force constant BLds.

[0071] Table 81, the seek curve chart 82, and the coefficient table 83 are setting information for the estimated seek time corresponding to the force constant BL when the magnetic head MH is in the beginning position of the seek operation and the force constant BL when the magnetic head MH is in the end position of the seek operation.

[0072] Table 81, representing the force constants, provides information on the relationship between the radial position of the magnetic head MH and the force constant BL. For example, Figure 5 The corresponding relationships shown are recorded in the force constant table 81. The command reordering unit 61 obtains the force constants BLst and BLds by referring to the force constant table 81.

[0073] The seek curve chart 82 contains settings indicating the relationship between seek distance and seek time. Furthermore, the seek time associated with seek distance via the seek curve chart 82 is the seek time obtained without considering changes in the force constant BL. For example, according to the seek curve chart 82, the seek time is associated with the seek distance under the condition that the force constant BL always reaches its maximum value.

[0074] Figure 6 This is a diagram illustrating an example of the configuration of the seek curve graph 82 according to the first embodiment. In this graph, the horizontal axis represents the seek distance, and the vertical axis represents the seek time. The seek distance represented by the horizontal axis is expressed as a percentage of its maximum value set to 100%.

[0075] like Figure 6 As shown, near the seek distance of 0%, the seek time increases sharply with the increase of the seek distance. Furthermore, from the seek distance of 20% to 100%, the seek time increases approximately linearly with the seek distance.

[0076] The command reordering unit 61 obtains an estimated value for the seek time by referring to the seek curve chart 82. Furthermore, the command reordering unit 61 corrects the estimated value for the seek time obtained by referring to the seek curve chart 82 based on the force constants BLst and BLds.

[0077] The method for correcting the estimated seek time based on the force constants BLst and BLds is not limited to a specific method. The estimated seek time can be corrected by multiplying by a coefficient or by adding a correction amount. Here, as an example, we assume that the estimated seek time is corrected by multiplying by a coefficient. Hereafter, the coefficient multiplied by the estimated seek time will be denoted as the seek correction coefficient.

[0078] Table 83 contains setting information indicating the correspondence between the force constant BL and the seek correction coefficient.

[0079] Figure 7 This is a diagram illustrating an example of the configuration of the coefficient table 83 according to the first embodiment. In this diagram, the horizontal axis represents the force constant BL, and the vertical axis represents the seek correction coefficient. The force constant BL shown on the horizontal axis is represented as a percentage when its maximum value is set to 100%.

[0080] The seek correction factor varies not only based on the force constant BL but also on the seek distance. Therefore, according to coefficient table 83, the correspondence between the force constant BL and the seek correction factor is defined according to the values ​​of each different seek distance. That is, coefficient table 83 can be considered as setting information representing the correspondence between the seek distance and the force constant, and the correction factor.

[0081] According to coefficient table 83, under the condition of a common seek distance, the smaller the force constant BL, the larger the seek correction coefficient. Under the condition of a common force constant BL, the shorter the seek distance, the larger the seek correction coefficient.

[0082] The command reordering unit 61 selects one of the correspondences specified in the coefficient table 83, which defines the correspondences for each different value of the seek distance, based on the seek distance. Furthermore, the command reordering unit 61 determines the smaller value of the force constant BLst and the force constant BLds. The command reordering unit 61 then obtains the value of the seek correction coefficient associated with the value of the force constant BL determined through the selected correspondence. The command reordering unit 61 multiplies the estimated seek time obtained by referring to the seek curve chart 82 by the seek correction coefficient, thereby correcting the estimated seek time. The command reordering unit 61 uses the value obtained by multiplying the estimated seek time by the seek correction coefficient for estimating the access time. The corrected estimated seek time used for estimating the access time is recorded as the corrected estimated seek time.

[0083] Figure 8 This is a flowchart illustrating an example of the command reordering operation involved in the first embodiment.

[0084] First, the command reordering unit 61 selects one of the more than one unexecuted access commands stored in the command queue 71 (S101). The selected access command is then executed as the target of a loop process consisting of S101 to S106. The access command that is executed as the target of this loop process is denoted as the object access command.

[0085] In S102, the command reordering unit 61 calculates the seek distance when executing an object access command. For example, when an access command is being executed, the distance in the radial direction from track 17, which includes the sector of the access destination specified by the executing access command, to track 17, which includes the sector of the access destination specified by the object access command (i.e., the target track 17), is calculated as the seek distance when executing an object access command.

[0086] Next, the command reordering unit 61 obtains the estimated value of the corrected seek time (S103). The details of the processing in S103 will then be explained.

[0087] Following the processing in S103, the command reordering unit 61 calculates an estimated value for the rotational latency (S104). For example, when executing an access command, it is assumed that a seek operation will occur immediately after the execution of the access command, and the position of the read / write head MH immediately after the seek operation is completed is estimated. The command reordering unit 61 uses the corrected estimated value for the seek time obtained in S103 to calculate the rotational distance of the disk 1 from the start to the end of the seek operation, and estimates the circumferential position of the read / write head MH on the track 17 that includes the sector of the access destination specified by the object access command, based on the rotational distance of the disk 1. Furthermore, the command reordering unit 61 estimates the rotational latency based on the circumferential distance from the estimated circumferential position to the sector of the access destination specified by the object access command.

[0088] The command reordering unit 61 calculates the estimated value of the access time (S105). The command reordering unit 61 obtains the estimated value of the access time by summing the estimated value of the corrected seek time and the estimated value of the rotation waiting time.

[0089] The command reordering unit 61 determines whether there is an access command that has not yet been selected as an object access command among the more than one access commands that have not been executed (S106).

[0090] If there is an access command that has not yet been selected as an object access command (S106: Yes), control moves to S101, and the command reordering unit 61 selects one of the access commands that has not yet been selected as an object access command as an object access command.

[0091] If there is no access command that has not yet been selected as an object access command (S106: No), the command reordering unit 61 selects the access command with the shortest estimated access time from the more than one unexecuted access commands stored in the command queue 71 as the first access command to be executed from the more than one unexecuted access commands (S107). Then, the command reordering operation ends.

[0092] Figure 9 This is a flowchart illustrating an example of the operation involved in obtaining the estimated value of the corrected seek time according to the first embodiment. That is, Figure 8 Show Figure 7 An example of the details of the S103 process shown.

[0093] The command reordering unit 61 first obtains the seek time associated with the seek distance obtained through the processing in S102 by referring to the seek curve chart 82 (S201).

[0094] The command reordering unit 61 obtains the force constants BLst and BLds by referring to the force constant table 81 (S202). Furthermore, the command reordering unit 61 determines whether the force constant BLst is greater than the force constant BLds (S203).

[0095] If the force constant BLst is greater than the force constant BLds (S203: Yes), the reordering unit 61 is instructed to select the force constant BLds (S204). If the force constant BLst is not greater than the force constant BLds (S203: No), the reordering unit 61 is instructed to select the force constant BLst (S205). The force constant BL selected through the process of S204 or S205 is denoted as the force constant BLset.

[0096] The command reordering unit 61 obtains the value of the seek correction coefficient corresponding to the seek distance obtained through the processing of S102 and the force constant BLset obtained through the processing of S204 or S205 by referring to the coefficient table 83 (S206).

[0097] The command reordering unit 61 multiplies the seek time obtained through the processing in S201 by the seek correction coefficient obtained through the processing in S206, thereby obtaining an estimated value of the corrected seek time (S207). Then, the operation of correcting the estimated value of the seek time ends.

[0098] In addition, Figure 8 and Figure 9 In the example shown, it is assumed that the command reordering operation is performed even if the number of unexecuted access commands stored in command queue 71 is only 1. However, if the number of unexecuted access commands stored in command queue 71 is only 1, the unexecuted access command stored in command queue 71 can be determined as the first access command to be executed without performing the command reordering operation.

[0099] In the description of the first embodiment above, VCM3 is an example of a motor. Volatile memory 7 is an example of a first memory. Non-volatile memory 8 is an example of a second memory. Seek curve graph 82 is an example of first setting information. Figure 8 The processes shown in S102 to S105 are an example of the first action. Through... Figure 8 The seek distance obtained from the processing in S102 shown is an example of the first distance. (Through...) Figure 8 The processing shown in S103 is... Figure 9 The series of processing steps shown yields a revised estimated seek time, which is an example of the first time step. The force constant BLst is an example of the first force constant. The force constant BLds is an example of the second force constant. The force constant BLset is an example of the third force constant.

[0100] Thus, according to the first embodiment, in the hard disk control circuit 6, when the command reordering unit 61 stores multiple unexecuted access commands in the command queue 71, it obtains a revised estimated value of the seek time for each of the multiple unexecuted access commands based on the force constants BLst and BLds, and the seek distance. Furthermore, based on the revised estimated value of the seek time obtained for each of the multiple unexecuted access commands, the command reordering unit 61 determines the access command to be executed first among the multiple unexecuted access commands.

[0101] Therefore, the accuracy of the seek time estimation is improved compared to the case where the seek time is estimated without considering the force constant BL of VCM3, which depends on the position of the read / write head MH. As a result, the effect of reducing the total time required to execute multiple access commands—the command reordering action—is improved. That is, multiple access commands from the host 200 can be executed efficiently.

[0102] Furthermore, according to the first embodiment, the command reordering unit 61 refers to a seek curve graph 82 that shows the correspondence between seek distance and seek time. The command reordering unit 61 obtains the seek time associated with the seek distance in the case of executing an object access command (e.g., by referring to the seek curve graph 82). Figure 9 (S201). Then, the command reordering unit 61 obtains an estimated value of the corrected seek time (e.g., referring to the force constants BLst and BLds) by correcting the obtained seek time accordingly. Figure 9 (S202~S207).

[0103] More specifically, according to the first embodiment, the command reordering unit 61 obtains the smaller of the force constant BLst and the force constant BLds as the force constant BLset (for example, refer to...). Figure 9 (S203 to S205). The command reordering unit 61 obtains the seek correction coefficient associated with the force constant BLset through the coefficient table 83 (for example, referring to...). Figure 9 (S206). The command reordering unit 61 obtains the corrected estimated value of the seek time by multiplying the estimated value of the seek time by the seek correction factor (e.g., referring to S206). Figure 9 (S207).

[0104] More specifically, the coefficient table 83 in the first embodiment represents the correspondence between the pairs of seek distance and force constant, and seek correction coefficients. The command reordering unit 61 obtains the seek correction coefficients associated with the pairs of seek distance and force constant BLdset in the case of executing the object access command through the coefficient table 83 (for example, referring to...). Figure 9(S206). Furthermore, the command reordering unit 61 obtains the corrected estimated value of the seek time by multiplying the estimated value of the seek time by a seek correction factor (e.g., referring to...). Figure 9 (S207).

[0105] Therefore, the accuracy of the seek time estimation is improved compared to the case where the seek time is estimated based on the force constant BL of VCM3, which depends on the position of the read / write head MH. This allows for the efficient execution of multiple access commands from the host 200.

[0106] (Second Implementation)

[0107] In the second embodiment, the disk device 100a obtains the estimated value of the corrected seek time using a method different from that in the first embodiment. Furthermore, in the second embodiment, matters that differ from those in the first embodiment are described. Matters identical to those in the first embodiment are omitted from description or described briefly.

[0108] In the disk device 100a of the second embodiment, such as Figure 10 As shown, the force constant table 81 and the seek curve chart 82a are stored in the non-volatile memory 8.

[0109] Figure 11 This is a diagram illustrating an example of the configuration of the seek curve graph 82a according to the second embodiment. In this graph, the horizontal axis represents the seek distance, and the vertical axis represents the seek time. The seek distance shown on the horizontal axis is represented as a percentage of its maximum value set to 100%.

[0110] like Figure 11 As shown, the relationship between seek distance and seek time is defined by the values ​​of each force constant BLset, which are different for each individual.

[0111] Under the condition that the force constant BLset has a common value, the seek time increases sharply with the increase of seek distance when the seek distance is near 0%. Furthermore, from 20% to 100% of the seek distance, the seek time increases approximately linearly with the seek distance.

[0112] Under the condition of a common seek distance, the larger the force constant BLset, the longer the seek time.

[0113] Thus, the seek curve chart 82a has a configuration that represents the pair of force constant BLset and seek distance, and the correspondence with seek time. The seek curve chart 82a can perform a search that takes into account the force constant BLset. Therefore, by referring to the seek curve chart 82a, a value equivalent to the estimated value of the modified seek time according to the first embodiment can be obtained.

[0114] Figure 12This is a flowchart illustrating an example of the operation of obtaining an estimated value of seek time according to the second embodiment. Figure 11 The actions shown are in Figure 7 It is executed in S103 as shown.

[0115] The command reordering unit 61 obtains the force constants BLst and BLds by referring to the force constant table 81 (S301). The command reordering unit 61 determines whether the force constant BLst is greater than the force constant BLds (S302).

[0116] If the force constant BLst is greater than the force constant BLds (S302: Yes), the reordering unit 61 is instructed to select the force constant BLds as the force constant BLset (S303). If the force constant BLst is not greater than the force constant BLds (S302: No), the reordering unit 61 is instructed to select the force constant BLst as the force constant BLset (S304).

[0117] The command reordering unit 61 obtains the seek time (S305) corresponding to the seek distance obtained through the process of S102 and the force constant BLset obtained through the process of S303 or S304 by referring to the seek curve chart 82a. Then, the operation of obtaining the estimated value of the seek time ends.

[0118] The command reordering unit 61 treats the seek time obtained through the processing in S305 as the estimated value of the corrected seek time and executes it. Figure 8 The processing after S104 is shown.

[0119] In the description of the second embodiment above, the seek curve graph 82a is an example of the third setting information.

[0120] As described above, according to the second embodiment, the command reordering unit 61 obtains the smaller of the force constant BLst and the force constant BLds as the force constant BLset (for example, refer to...). Figure 12 (S301 to S304). The command reordering unit 61 obtains the seek time associated with the seek distance and force constant BLdset in the case of executing the object access command via the seek curve chart 82a, and uses it as an estimated value for the corrected seek time (for example, referring to...). Figure 12 (S305).

[0121] Therefore, multiple access commands from host 200 can be executed as efficiently as in the first embodiment.

[0122] Furthermore, according to the first and second embodiments, the command reordering unit 61 estimates the rotation waiting time when executing an object access command (for example, referring to...). Figure 8(S105) The estimated access time is calculated by summing the estimated value of the corrected seek time and the estimated value of the rotation wait time (e.g., referring to S105). Figure 8 (S105).

[0123] The method for calculating the estimated access time is not limited to this. For example, the command reordering unit 61 may also use the estimated value of the corrected seek time as the access time to determine the access command to be executed first among multiple unexecuted access commands.

[0124] Several embodiments of the present invention have been described, but these embodiments are merely illustrative and not intended to limit the scope of the invention. These new embodiments can be implemented in a wide variety of other ways, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and / or variations thereof are included within the scope and / or spirit of the invention, and are included within the scope of the invention as set forth in the claims and its equivalents.

Claims

1. A disk drive, comprising: disk; The read / write head accesses the disk. The motor performs a seek operation that moves the read / write head in the radial direction of the disk. The first memory stores multiple commands, which are unexecuted commands requesting access to the disk; and Controller The controller For each of the plurality of commands, a first action is performed to estimate a first time, which is the time required for a seek operation for the execution of the command. The first action is an action that obtains a first force constant and a second force constant and estimates the first time based on the first force constant, the second force constant, and a first distance. The first force constant is the force constant of the motor when the read / write head is at the beginning position of the seek operation for the execution of the command; the second force constant is the force constant of the motor when the read / write head is at the end position of the seek operation for the execution of the command; and the first distance is the distance the read / write head moves as caused by the seek operation for the execution of the command. Based on the estimated value of the first time obtained through the first action for each of the plurality of commands, the command to be executed first among the plurality of commands is determined.

2. The disk drive according to claim 1, It also includes a second memory that stores first setting information representing the correspondence between the distance the read / write head moves due to a seek operation and the time required for the seek operation. In the first action, the controller... The time associated with the first distance is obtained through the first set information and used as the intermediate calculation value. By correcting the intermediate calculated value in accordance with the first force constant and the second force constant, the estimated value of the first time is obtained.

3. The disk drive according to claim 2, The second memory stores second setting information representing the correspondence between the force constant and the correction coefficient. In the first action, the controller... A third force constant is determined as the smaller of the first force constant and the second force constant. The correction coefficient associated with the third force constant is obtained through the second setting information. The estimated value for the first time period is obtained by multiplying the obtained correction coefficient by the intermediate calculated value.

4. The disk drive according to claim 3, The second setting information represents the correspondence between the movement distance of the read / write head caused by the seek operation and the force constant, and the correction coefficient. In the first action, the controller... The correction coefficients associated with the pair of the first distance and the third force constant are obtained through the second set information. The estimated value for the first time period is obtained by multiplying the obtained correction coefficient by the intermediate calculated value.

5. The disk drive according to claim 1, It also includes a second memory that stores third setting information representing the correspondence between the distance the read / write head travels and the force constant caused by the seek operation, and the time required for the seek operation. In the first action, the controller... A third force constant is determined as the smaller of the first force constant and the second force constant. The estimated value of the first time is obtained by using the third setting information to correlate the time with the first distance and the third force constant.

6. The disk drive according to any one of claims 1 to 5, The controller For each of the plurality of commands, a second time is presumed as the time required for rotation waiting. For each of the plurality of commands, calculate the sum of the estimated value at the first time and the estimated value at the second time. The command with the smallest total value among the multiple commands is determined as the command to be executed first.

7. A method for controlling a disk device, The disk device includes: a disk; and read / write heads for accessing the disk. And a motor, which performs a seek operation to move the read / write head in the radial direction of the disk. The method includes: For each of a plurality of commands, a first action is performed to estimate a first time, wherein the plurality of commands are unexecuted commands requesting access to the disk, the first time being the time required for a seek operation for the execution of the command, the first action being an action that obtains a first force constant and a second force constant and estimates the first time based on the first force constant, the second force constant, and a first distance, wherein the first force constant is the force constant of the motor when the read / write head is at the beginning position of the seek operation for the execution of the command, the second force constant is the force constant of the motor when the read / write head is at the end position of the seek operation for the execution of the command, and the first distance is the distance the read / write head moves as caused by the seek operation for the execution of the command; and Based on the estimated value of the first time obtained through the first action for each of the plurality of commands, the command to be executed first among the plurality of commands is determined.