Disk device and reordering processing method

By using a controller to manage each actuator queue in a separate actuator disk device and perform reordering processing, the problem of optimization of command processing order under multiple actuators is solved, and access performance and data read and write efficiency are improved.

CN115080451BActive Publication Date: 2025-08-12KK TOSHIBA +1
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202110843206.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-03-10
Filing Date
2021-07-26
Publication Date
2025-08-12
Estimated Expiration
2041-07-26

AI Technical Summary

Technical Problem

The existing disk devices are difficult to effectively optimize the command processing order under the independent control of multiple actuators, resulting in a degradation of access performance.

Method used

Using a separate actuator disk device, the queues of each actuator are managed separately through the controller, and the commands are selected and executed based on the current and future action states of the actuator are executed to realize reordering processing.

Benefits of technology

It improves the access performance of disk devices, optimizes the command processing order, and improves data reading and writing efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115080451B_ABST
    Figure CN115080451B_ABST
Patent Text Reader

Abstract

An embodiment provides a magnetic disk device and a reordering method capable of improving access performance. The magnetic disk device according to this embodiment includes: a first disk; a second disk; a first head that reads from / writes to the first disk; a second head that reads from / writes to the second disk; a first actuator having the first head; a second actuator having the second head; and a controller that performs a first reordering process on commands stored in a first queue corresponding to the first actuator and a second reordering process on commands stored in a second queue corresponding to the second actuator. The controller selects a first command to be executed next by the first actuator based on the current and future operating states of the second actuator and executes the first command.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application claims the benefit of priority based on Japanese Patent Application No. 2021-38243 (filing date: March 10, 2021), the entire contents of which are incorporated herein by reference. Technical Field

[0002] Embodiments of the present invention relate to a magnetic disk device and a reordering method. Background Art

[0003] A magnetic disk device stores multiple commands transmitted from a host, etc., in a queue and performs a reordering process to change the order in which the multiple commands stored in the queue are processed. In recent years, a split actuator magnetic disk device having multiple actuators has been proposed. A split actuator magnetic disk device controls the multiple actuators independently. The split actuator magnetic disk device stores multiple commands corresponding to each actuator in each queue corresponding to each actuator and performs a reordering process on the multiple commands stored in each queue corresponding to each actuator. Summary of the Invention

[0004] Embodiments of the present invention provide a magnetic disk device and a reordering method capable of improving access performance.

[0005] The magnetic disk device involved in this embodiment includes: a first disk; a second disk; a first head, which writes data to the first disk and reads data from the first disk; a second head, which writes data to the second disk and reads data from the second disk; a first actuator, which has the first head; a second actuator, which has the second head; and a controller, which performs a first reordering process on the commands stored in the first queue corresponding to the first actuator and performs a second reordering process on the commands stored in the second queue corresponding to the second actuator, the controller selects a first command to be executed next by the first actuator based on the current and future operation states of the second actuator, and executes the first command. BRIEF DESCRIPTION OF THE DRAWINGS

[0006] Figure 1 It is a schematic diagram showing an example of the configuration of a magnetic disk device according to an embodiment.

[0007] Figure 2 It is a plan view showing an example of the arrangement of the head with respect to the disk.

[0008] Figure 3 This is a schematic diagram showing an example of a queue.

[0009] Figure 4This is a sequence diagram showing an example of the reordering process according to the embodiment.

[0010] Figure 5 This is a schematic diagram showing an example of read / write operation processing according to the embodiment.

[0011] Figure 6 This is a schematic diagram showing an example of changes in a seek current corresponding to a head of an actuator and changes in a position error signal of the head of the actuator according to an embodiment.

[0012] Figure 7 This is a schematic diagram showing an example of changes in a seek current corresponding to an actuator head and changes in a position error signal of the actuator head according to an embodiment.

[0013] Figure 8 This is a schematic diagram showing an example of changes in a seek current corresponding to an actuator head and changes in a position error signal of the actuator head according to an embodiment.

[0014] Figure 9 This is a schematic diagram showing an example of a reordering table according to an embodiment.

[0015] Figure 10 This is a flowchart showing an example of a reordering processing method according to an embodiment. DETAILED DESCRIPTION

[0016] Hereinafter, embodiments will be described with reference to the accompanying drawings. However, the accompanying drawings are merely examples and do not limit the scope of the invention.

[0017] (Implementation Method)

[0018] Figure 1 It is a schematic diagram showing an example of the configuration of the magnetic disk device 1 according to the embodiment.

[0019] The magnetic disk device 1 includes a housing HS, a head disk assembly (HDA) 10, a driver IC 20, a head amplifier integrated circuit (hereinafter referred to as a head amplifier IC or a preamplifier) 30, a volatile memory 70, a buffer memory (cache) 80, a non-volatile memory 90, and a system controller 130 as a single-chip integrated circuit. In addition, the magnetic disk device 1 is connected to a host system (hereinafter referred to as a host) 100. The magnetic disk device 1 is a separate actuator magnetic disk device that can independently drive multiple actuators AC described later. The magnetic disk device 1 has multiple (for example, two) actuators AC (actuators AC0 and AC1 described later). In addition, the magnetic disk device 1 can also have more than three actuators AC. In addition, the magnetic disk device 1 can also drive multiple actuators AC in parallel, and can read and write data in parallel through the heads on each actuator.

[0020] The housing HS has a bottom wall HSB. Figure 1 The housing HS is shown as having only the bottom wall HSB, but in reality, the housing HS has, for example, the bottom wall HSB, side walls erected along the periphery of the bottom wall HSB, and a cover that closes an opening of the base constituted by the bottom wall HSB and the side walls.

[0021] The HDA 10 includes a magnetic disk (hereinafter referred to as a disk) DK, a head HD, a spindle motor (hereinafter referred to as an SPM) 13 that rotates a spindle 12, an arm AM, an actuator block BK, a voice coil motor (hereinafter referred to as a VCM) 14, a suspension 15, and a microactuator (hereinafter referred to as a MA) 16. In addition, the HDA 10 may not include the MA 16. In the case where the HDA 10 does not include the MA 16, the head HD may be mounted on the arm AM. Figure 1 A cross section of the HDA10 is shown in FIG.

[0022] The SPM 13 is mounted on the bottom wall HSB. The main shaft 12 is mounted at the center of the SPM 13.

[0023] The disk DK has a plurality of disks DK. The disk DK is mounted on the spindle 12 and is rotated by the drive of the SPM 13. The disk DK has a surface (or upper surface) and a back surface (lower surface) opposite to the surface (or upper surface). Hereinafter, the surface (or upper surface) and / or the back surface (or lower surface) may also be referred to as a disk. Figure 1 In the example shown, disk DK includes disks DK0 and DK1. Disks DK0 and DK1 are mounted on the spindle 12. Disk DK0 is, for example, arranged above disk DK1. In other words, disk DK1 is, for example, arranged between disk DK0 and bottom wall HSB. Disk DK0 includes an upper surface S00 and a lower surface S01 opposite to upper surface S00. Disk DK1 includes an upper surface S10 and a lower surface S11 opposite to upper surface S10. In addition, disk DK may also include more than three disks. Hereinafter, the direction along the circumference of (the upper and lower surfaces of) disk DK will be referred to as the circumferential direction, and the direction perpendicular to the circumferential direction of (the upper and lower surfaces of) disk DK will be referred to as the radial direction. The radial direction corresponds to the direction toward the inner circumference and the outer circumference of (the upper and lower surfaces of) disk DK.

[0024] The head HD includes multiple heads HD. The head HD faces the disk DK. The head HD includes a write head (write head) WH for writing data to the disk DK, and a read head (read head) RH for reading data written to the disk DK. Hereinafter, the "process of writing data to the disk DK" may be referred to as the "write process," and the "process of reading data from the disk DK" may be referred to as the "read process." Furthermore, "recording data in a predetermined recording area," "reading data from a predetermined recording area," "arranging the head HD at a predetermined position on the disk DK," "writing data to a predetermined area on the disk DK," "reading data from a predetermined area on the disk DK," and "connecting to a predetermined area in a manner capable of communication" may also be referred to as "access."

[0025] exist Figure 1 In the example shown, the head HD includes heads HD0 and HD1. For example, head HD0 includes head HD00 facing the upper surface S00 of disk DK0, and head HD01 facing the lower surface S01 opposite to the upper surface S00 of disk DK0. Alternatively, head HD0 may include only one head or three or more heads. Head HD0 includes a write head WH0 for writing data to disk DK0 and a read head RH0 for reading data written to disk DK0. Write head WH0 includes write head WH00 and write head WH01. Read head RH0 includes read head RH00 and read head RH01.

[0026] Head HD00 includes a write head WH00 for writing data to the upper surface S00 of disk DK0 and a read head RH00 for reading data from the upper surface S00 of disk DK0. Head HD01 includes a write head WH01 for writing data to the lower surface S01 of disk DK0 and a read head RH01 for reading data from the lower surface S01 of disk DK0.

[0027] For example, head HD1 includes a head HD10 facing the upper surface S10 of disk DK1, and a head HD11 facing the lower surface S11 opposite to the upper surface S10 of disk DK1. Alternatively, head HD1 may include only one head or three or more heads. Head HD1 includes a write head WH1 for writing data to disk DK1, and a read head RH1 for reading data written to disk DK1. Write head WH1 includes a write head WH10 and a write head WH11. Read head RH1 includes a read head RH10 and a read head RH11.

[0028] The head HD10 includes a write head WH10 for writing data to the upper surface S10 of the disk DK1 and a read head RH10 for reading data from the upper surface S10 of the disk DK1. The head HD11 includes a write head WH11 for writing data to the lower surface S11 of the disk DK1 and a read head RH11 for reading data from the lower surface S11 of the disk DK1.

[0029] The actuator block BK includes a plurality of actuator blocks BK. The actuator block BK is rotatably mounted on a bearing BR erected on the bottom wall HSB. Figure 1 In the example shown, actuator block BK includes actuator blocks BK0 and BK1. Actuator blocks BK0 and BK1 are rotatably mounted on bearings BR vertically mounted on bottom wall HSB. Actuator block BK0 is positioned above actuator block BK1. In other words, actuator block BK1 is located between bottom wall HSB and actuator block BK0.

[0030] The arm AM includes a plurality of arms AM. The arm AM is connected to the actuator block BK. Figure 1 In the example shown, arm AM includes arms AM0 and AM1. Arm AM0 is positioned above arm AM1. In other words, arm AM1 is positioned between arm AM0 and bottom wall HSB of housing HS. Depending on the number of actuators AC, arm AM may include only one arm or three or more arms.

[0031] The arm AM0 includes, for example, an arm AM00 positioned on the upper surface S00 side of the disk DK0 and an arm AM01 positioned on the lower surface S01 side of the disk DK0. Depending on the number of heads HD0, the arm AM0 may include only one arm or three or more arms. The arm AM0 is connected to the actuator block BK0.

[0032] The arm AM1 includes, for example, an arm AM10 positioned on the upper surface S10 side of the disk DK1 and an arm AM11 positioned on the lower surface S11 side of the disk DK1. Depending on the number of heads HD1, the arm AM1 may include only one arm or three or more arms. The arm AM1 is connected to the actuator block BK1.

[0033] The VCM 14 includes a plurality of VCMs 14. The VCM 14 is connected to the side of the actuator block BK opposite to the arm AM. Figure 1 In the example shown, VCM 14 includes VCMs 140 and 141. VCM 140 is connected to the side of actuator block BK0 opposite to arm AM0. VCM 141 is connected to the side of actuator block BK1 opposite to arm AM1. Depending on the number of actuator blocks BK, VCM 14 may include only one VCM or three or more VCMs.

[0034] The suspension 15 includes a plurality of suspensions 15. The suspension 15 is mounted on the arm AM. The head HD is mounted on the top end of the suspension 15 on the opposite side to the end connected to the arm AM. Figure 1In the illustrated example, the suspension 15 includes a suspension 150 and a suspension 151. The suspension 150 is positioned above the suspension 151. In other words, the suspension 151 is positioned between the suspension 150 and the bottom wall HSB of the housing HS. Depending on the number of arms AM, the suspension 15 may include only one suspension or three or more suspensions.

[0035] The suspension 150 is mounted on the arm AM0. The suspension 150 is equipped with a head HD0 at the top end portion on the side opposite to the end portion connected to the arm AM0. The suspension 150 includes, for example, a suspension 1500 mounted on the arm AM00 and a suspension 1501 mounted on the arm AM01. The suspension 1500 is equipped with a head HD00 at the top end portion on the side opposite to the end portion connected to the arm AM00. The suspension 1501 is equipped with a head HD01 at the top end portion on the side opposite to the end portion connected to the arm AM01. In addition, depending on the number of arms AM0, the suspension 150 may have only one suspension or may have three or more suspensions.

[0036] The suspension 151 is mounted on the arm AM1. The suspension 151 is equipped with a head HD1 at the top end portion on the side opposite to the end portion connected to the arm AM1. The suspension 151 includes, for example, a suspension 1510 mounted on the arm AM10 and a suspension 1511 mounted on the arm AM11. The suspension 1510 is equipped with a head HD10 at the top end portion on the side opposite to the end portion connected to the arm AM10. The suspension 1511 is equipped with a head HD11 at the top end portion on the side opposite to the end portion connected to the arm AM11. In addition, depending on the number of arms AM1, the suspension 151 may have only one suspension or may have three or more suspensions.

[0037] The MA 16 includes multiple MAs 16. The MA 16 is attached to the arm AM, the suspension 15, or the head HD. The MA 16 finely controls the radial motion of the head HD. For example, compared to the radial motion of the head HD using the VCM 14, the MA 16 controls the radial motion of the head HD more finely.

[0038] exist Figure 1 In the example shown, MA16 includes MA160 and MA161.

[0039] MA160 is mounted on the suspension 150. MA160 finely controls the radial movement of head HD0. For example, MA160 controls the radial movement of head HD0 more finely than the radial movement of head HD0 based on VCM140. MA160 includes, for example, MA1600 mounted on the suspension 1500 and MA1601 mounted on the suspension 1501. MA1600 finely controls the radial movement of head HD00. For example, MA1600 controls the radial movement of head HD00 more finely than the radial movement of head HD00 based on VCM140. MA1601 finely controls the radial movement of head HD01. For example, MA1601 controls the radial movement of head HD01 more finely than the radial movement of head HD01 based on VCM140. Depending on the number of suspensions 150, MA160 may include only one MA or three or more MAs.

[0040] MA161 is mounted on the suspension 151. MA161 finely controls the radial movement of head HD1. For example, MA161 controls the radial movement of head HD1 more finely than the radial movement of head HD1 based on VCM141. MA161 includes, for example, MA1610 mounted on the suspension 1510 and MA1611 mounted on the suspension 1511. MA1610 finely controls the radial movement of head HD10. For example, MA1610 controls the radial movement of head HD10 more finely than the radial movement of head HD10 based on VCM141. MA1611 finely controls the radial movement of head HD11. For example, MA1611 controls the radial movement of head HD11 more finely than the radial movement of head HD11 based on VCM141. Depending on the number of suspensions 151, MA161 may include only one MA or three or more MAs.

[0041] The actuator AC includes a plurality of actuators AC. The plurality of actuators AC are mounted on the bearing BR in a manner that allows them to rotate freely (or swivel freely). In other words, the plurality of actuators AC rotate independently around the bearing BR. In addition, the plurality of actuators AC can also rotate in parallel around the bearing BR. The plurality of actuators AC are respectively composed of a suspension 15, an MA16, an arm AM, an actuator block BK, and a VCM14. The plurality of actuators AC drive the VCM14 around the bearing BR and finely drive the MA16, thereby positioning the head HD mounted on the suspension 15 at a predetermined position on the disk DK. In addition, in the absence of the MA16, the plurality of actuators AC drive the VCM14 around the bearing BR, thereby positioning the head HD mounted on the suspension 15 at a predetermined position on the disk DK.

[0042] exist Figure 1 In the example shown, the actuator AC includes actuators AC0 and AC1. Actuator AC0 is arranged above actuator AC1. In other words, actuator AC1 is arranged between bottom wall HSB and actuator AC0. Furthermore, three or more actuators AC may be provided.

[0043] The actuator AC0 is rotatably mounted on the bearing BR. The actuator AC0 consists of the suspension 150, MA160, arm AM0, actuator block BK0, and VCM140. The actuator AC0 drives the VCM140 around the rotation axis of the bearing BR and precisely drives the MA160, thereby positioning the head HD0 mounted on the suspension 150 at a predetermined position on the disk DK0. If the MA160 is not present, the actuator AC0 drives the VCM140 around the bearing BR to position the head HD0 mounted on the suspension 150 at a predetermined position on the disk DK0.

[0044] The actuator AC1 is rotatably mounted on the bearing BR. It consists of the suspension 151, MA161, arm AM1, actuator block BK1, and VCM141. The actuator AC1 drives the VCM141 around the rotation axis of the bearing BR and precisely drives the MA161, thereby positioning the head HD1 mounted on the suspension 151 at a predetermined position on the disk DK1. If the MA161 is not present, the actuator AC1 drives the VCM141 around the bearing BR to position the head HD1 mounted on the suspension 151 at a predetermined position on the disk DK1.

[0045] Figure 2 FIG. 1 is a top view showing an example of the configuration of the head HD relative to the disk DK. Figure 2 As shown, the direction toward the outer periphery of the disk DK in the radial direction is called the outer direction (outer side), and the direction opposite to the outer direction is called the inner direction (inner side). In the circumferential direction, the direction in which the disk DK rotates is called the rotation direction. Figure 2 In the example shown, the direction of rotation is shown as counterclockwise, but the opposite direction (clockwise) is also possible.

[0046] The disk DK allocates a user data area DKa that can be used by the user and a system area DKb for writing information required for system management (hereinafter sometimes referred to as system information) in the area where data can be written. Hereinafter, a predetermined position in the radial direction of the disk DK may be referred to as a radial position, and a predetermined position in the circumferential direction of the disk DK may be referred to as a circumferential position. Radial positions and circumferential positions may also be referred to collectively as simply positions. For example, a radial position corresponds to the radial position of a track or sector (data sector), and a circumferential position corresponds to the circumferential position of a sector on a predetermined track. For example, a position corresponds to the position of a sector (data sector) on the disk DK. The position of a sector (data sector) can be represented by at least one of the cylinder (track) number of the predetermined sector, the head number of the head HD that accesses the predetermined sector, the sector number of the predetermined sector, the radial position of the predetermined sector on the disk DK, and the disk angle of the predetermined sector. For example, the position of a sector is represented by a combination of two of the cylinder (track) number of a predetermined sector, the head number of the head HD that accesses the predetermined sector, the sector number of the predetermined sector, the radial position of the predetermined sector in the disk DK, and the disk angle of the predetermined sector. At least one track can be configured in the disk DK. Hereinafter, "track" is used as "one of the multiple areas obtained by dividing the disk DK in the radial direction", "one circle of data written in the circumferential direction of the disk DK", "one circle of the path around the circumferential direction of the disk DK", and various other meanings. A track contains multiple sectors. "Sector" is used as "one of the multiple areas obtained by dividing the track in the circumferential direction", "data written to one of the multiple areas obtained by dividing the track in the circumferential direction", and various other meanings. In Figure 2 In the example shown, disk DK0 is allocated with a user data area DKa0 and a system area DKb0. Alternatively, disk DK1 is allocated with a user data area DKa1 and a system area DKb1.

[0047] The disk DK has multiple servo areas (not shown) (hereinafter sometimes referred to as servo patterns or servo data). The multiple servo patterns extend radially in the radial direction of the disk DK and are discretely arranged at predetermined intervals in the circumferential direction. Servo data including preambles, servo marks, Gray codes, PADs, burst data, and postcodes are written into the servo patterns. User data is written into the user data area DKa outside the servo patterns.

[0048] For example, when seeking, the head HD is rotated around the bearing BR by the actuator AC and slides in the horizontal plane of the disk DK. Figure 2 In the example shown, head HD0 is rotated about bearing BR by actuator AC0 during seek and slides in the horizontal plane of disk DK0. Also, head HD1 is rotated about bearing BR by actuator AC1 during seek and slides in the horizontal plane of disk DK1.

[0049] The driver IC 20 controls the driving of the SPM 13 and the VCM 14 (VCMs 140 and 141) under the control of the system controller 130 (specifically, the MPU 50 or HDC 60 described later). The driver IC 20 is electrically connected to the SPM 13 and the VCM 14 (VCMs 140 and 141). The driver IC 20 is connected to the SPM 13, for example, via a predetermined interface. The driver IC 20 is also connected to the VCMs 140 and 141, for example, via separate interfaces.

[0050] The driver IC 20 includes an SPM control unit 210, a first VCM control unit 220, a second VCM control unit 221, a first microactuator (MA) control unit 230, and a second microactuator (MA) control unit 231. The SPM control unit 210 controls the rotation of the SPM 13. The first VCM control unit 220 controls the drive of the VCM 140 by controlling the current (or voltage) supplied to the VCM 140. The second VCM control unit 221 controls the drive of the VCM 141 by controlling the current (or voltage) supplied to the VCM 141. The first MA control unit 230 controls the drive of the MA 160 by controlling the current (or voltage) supplied to the MA 160. The second MA control unit 231 controls the drive of the MA 161 by controlling the current (or voltage) supplied to the MA 161. Furthermore, a portion of the driver IC 20 configuration (e.g., the SPM control unit 210, the first VCM control unit 220, the second VCM control unit 221, the first MA control unit 230, and the second MA control unit 231) may be provided in the system controller 130. If the actuator AC0 does not include the MA 160 and the actuator AC1 does not include the MA 161, the first MA control unit 230 and the second MA control unit 231 may not be necessary. Furthermore, two or more driver ICs 20 may be provided in accordance with the number of actuators AC.

[0051] The head amplifier IC (preamplifier) 30 amplifies the read signal received from the disk DK and outputs it to the system controller 130 (specifically, the read / write (R / W) channel 40 described later). The head amplifier IC 30 outputs a write current corresponding to the write data output from the system controller 130 (specifically, the R / W channel 40 described later) to the head HD. The head amplifier IC 30 is electrically connected to each actuator AC, for example, actuator AC0 and actuator AC1. The head amplifier IC 30 is connected to each actuator AC via an interface IF. For example, the head amplifier IC 30 is connected to actuator AC1 via interface IF0 and to actuator AC2 via interface IF1. For example, the head amplifier IC 30 transmits and receives signals with actuator AC1 via interface IF0 and with actuator AC2 via interface IF1. The head amplifier IC 30 is electrically connected to each head HD, for example, head HD0 and head HD1, via interface IF. For example, the head amplifier IC30 is electrically connected to the head HD0 via the interface IF0 and to the head HD1 via the interface IF1. The head amplifier IC30 outputs a write current corresponding to the signal output from the R / W channel 40 to the head HD via the interface IF, and inputs a read signal from the head HD via the interface IF. For example, the head amplifier IC30 outputs a write current corresponding to the signal output from the R / W channel 40 to the head HD0 via the interface IF0, and inputs a read signal from the head HD0 via the interface IF0. For example, the head amplifier IC30 outputs a write current corresponding to the signal output from the R / W channel 40 to the head HD1 via the interface IF1, and inputs a read signal from the head HD1 via the interface IF1.

[0052] The head amplifier IC 30 includes a first head selector 320, a second head selector 321, a first read signal detector 330, and a second read signal detector 331. The first head selector 320 selects the read head RH0 that reads data from the disk DK0 in the actuator AC0. The second head selector 321 selects the read head RH1 that reads data from the disk DK1 in the actuator AC1. The first read signal detector 330 detects the signal (read signal) read by the read head RH0 from the disk DK0. The second read signal detector 331 detects the signal (read signal) read by the read head RH1 from the disk DK1. Alternatively, a portion of the components of the head amplifier IC 30 (e.g., the first head selector 320, the second head selector 321, the first read signal detector 330, and the second read signal detector 331) may be provided in the system controller 130. Furthermore, two or more head amplifier ICs may be provided in accordance with the number of actuators AC.

[0053] Volatile memory 70 is a semiconductor memory that loses stored data when power is disconnected. It stores data required for processing within various components of magnetic disk drive 1. Examples of volatile memory 70 include DRAM (Dynamic Random Access Memory) and SDRAM (Synchronous Dynamic Random Access Memory).

[0054] The buffer memory 80 is a semiconductor memory that temporarily records data exchanged between the magnetic disk drive 1 and the host computer 100. Alternatively, the buffer memory 80 may be integrally formed with the volatile memory 70. Examples of the buffer memory 80 include DRAM, SRAM (Static Random Access Memory), SDRAM, FeRAM (Ferroelectric Random Access Memory), and MRAM (Magnetoresistive Random Access Memory).

[0055] The nonvolatile memory 90 is a semiconductor memory that records stored data even when power is turned off. The nonvolatile memory 90 is, for example, a NOR-type or NAND-type flash ROM (Flash Read Only Memory: FROM).

[0056] The system controller (controller) 130 is implemented, for example, using a large-scale integrated circuit (LSI) known as a system-on-a-chip (SoC), in which multiple components are integrated on a single chip. The system controller 130 includes a read / write (R / W) channel 40, a microprocessor (MPU) 50, and a hard disk controller (HDC) 60. The system controller 130 is electrically connected to the driver IC 20, the head amplifier IC 30, the volatile memory 70, the buffer memory 80, the nonvolatile memory 90, and the host system 100. The system controller 130 may also include an SPM control unit 210, a first VCM control unit 220, a second VCM control unit 221, a first head selector 320, a second head selector 321, a first read signal detector 330, and a second read signal detector 331. The system controller 130 may also include the driver IC 20 and the head amplifier IC 30. Furthermore, two or more system controllers 130 may be provided, corresponding to the number of actuators AC.

[0057] The R / W channel 40 performs signal processing for read data transmitted from the disk DK to the host 100 and write data transmitted from the host 100, based on instructions from the MPU 50 described later. The R / W channel 40 includes circuitry or functions for measuring the signal quality of read data. The R / W channel 40 is electrically connected to, for example, the head amplifier IC 30, the MPU 50, and the HDC 60. Furthermore, two or more R / W channels 40 may be provided, corresponding to the number of actuators AC.

[0058] The MPU 50 is a main controller that controls various components of the magnetic disk device 1 based on instructions from the host computer 100, etc. The MPU 50 controls the actuator AC via the driver IC 20 and performs servo control to position the head HD. For example, the MPU 50 controls the actuators AC0 and AC1 independently or in parallel via the driver IC 20. The MPU 50 controls the writing of data to the disk DK and selects the storage destination for the written data. In addition, the MPU 50 controls the reading of data from the disk DK and controls the processing of the read data. The MPU 50 is connected to various components of the magnetic disk device 1. The writing operation, for example, includes the operation from receiving a command to completing the writing of data to a predetermined area, such as a seek operation, a rotation wait, and a write operation. The reading operation, for example, includes the operation from receiving a command to completing the reading of data from a predetermined area, such as a seek operation, a rotation wait, and a read operation. The MPU 50 is electrically connected to, for example, the driver IC 20, the R / W channel 40, and the HDC 60. In addition, two or more MPUs 50 may be provided corresponding to the number of actuators AC.

[0059] The HDC 60 controls read / write processing based on instructions from the MPU 50, and controls data transfer between the host 100 and the R / W channel 40. The HDC 60 is electrically connected to, for example, the R / W channel 40, the MPU 50, the volatile memory 70, the buffer memory 80, and the non-volatile memory 90. Furthermore, two or more HDCs 60 may be provided depending on the number of actuators AC.

[0060] The HDC 60 includes a servo control unit 610 and a command control unit 620. The HDC 60 executes the processing of each of the aforementioned units, such as the servo control unit 610 and the command control unit 620, in firmware. Alternatively, the HDC 60 may include each of the aforementioned units, such as the servo control unit 610 and the command control unit 620, as circuits. Furthermore, a portion of the HDC 60's components may be incorporated into the MPU 50. For example, the servo control unit 610 and the command control unit 620 may also be incorporated into the MPU 50.

[0061] The servo control unit 610 controls the position of the head HD. In other words, the servo control unit 610 controls the head HD's access to a predetermined area on the disk DK. The servo control unit 610 includes a tracking control unit 6100 and a seek control unit 6101. Furthermore, two or more servo control units 610 may be provided to correspond to the number of actuators AC.

[0062] The tracking control unit 6100 controls the head HD to track a predetermined track on the disk DK. "Causing the head HD to track a predetermined track on the disk DK" is sometimes simply referred to as "tracking." "Tracking" encompasses "following a predetermined path, such as a predetermined track, when writing data to the disk DK" and "following a predetermined path, such as a predetermined track, when reading data from the disk DK."

[0063] The seek control unit 6101 controls the head HD to seek from a predetermined track to a target track on the disk DK.

[0064] The command control unit 620 controls commands received from the host computer 100 or the like. For example, the command control unit 620 stores commands received from the host computer 100 or the like in a queue in the order in which they were received. Based on a predetermined command among at least one command stored in the queue, the command control unit 620 accesses a location or area (e.g., a sector) specified by the command via the servo control unit 610. Hereinafter, "accessing a location or area specified by the command based on a predetermined command" may be referred to as "processing a command." A "command stored in a queue" may also be referred to as a "queued command." Furthermore, "storing a command in a queue" may also be referred to as "queuing."

[0065] The command control unit 620 detects or estimates the current and future operating states of the actuator AC (hereinafter, sometimes also referred to as the present actuator) that is currently being controlled, and the current and future operating states of other actuators AC that are different from the present actuator (hereinafter, sometimes also referred to as other actuators). The operating states of the actuator AC include, for example, the execution state of the command, the execution state of the read / write process, the seek state of the head HD corresponding to the actuator AC, the head position corresponding to the actuator AC, the head speed corresponding to the actuator AC, the head acceleration corresponding to the actuator AC, the timing (or predetermined time) for starting the write / read process by the head HD corresponding to the actuator AC, and the timing (or predetermined time) for ending the write / read process by the head HD corresponding to the actuator AC. Based on the current and future operating states of the actuator AC and other actuators AC, the command control unit 620 selects a predetermined command from a plurality of queued commands stored in a queue for each interface IF (or actuator AC) in the order received from the host 100, etc., and changes the order of the selected command to the order of the command to be processed next to the command currently being processed (hereinafter sometimes referred to as the current command), and processes the selected command after processing the current command (or during the processing of the current command). Hereinafter, "changing the processing order of multiple commands" may be referred to as "command reordering" or simply "reordering." "Performing a predetermined operation (calculation) process, selecting a predetermined command from a plurality of commands based on the result of the predetermined operation (calculation) process, and reordering the order of the commands selected from the plurality of commands" may also be referred to as "reordering operation processing," "reordering operation," or "reordering processing." Furthermore, "the command to be processed next to the current command" may also be referred to as "the next processing command."

[0066] For example, the command control unit 620 reorders commands per interface IF (or actuator AC) based on the current and future operating states of the actuator AC and other actuators AC. It can process commands per interface IF (or actuator AC) independently or in parallel, or it can process commands per interface IF (or actuator AC) within a single process. The command control unit 620 can also initiate command processing, for example, using an event-driven or time-driven (time-sharing) approach.

[0067] When processing the current command, the command control unit 620 performs calculation processing based on the position of the disk DK to which the head HD is currently configured, for example, the position of the data sector of the disk DK to which the head HD is currently configured (hereinafter sometimes referred to as the current position) and a plurality of queue commands stored in the queue according to the interface IF (or actuator AC) in the order received from the host 100, etc., performs reordering processing based on the result of the calculation processing, and processes the next processing command.

[0068] The command control unit 620 calculates the times required to access positions (hereinafter sometimes referred to as positions) of multiple sectors (data sectors) of the disk DK specified by the queue commands from the current position based on the current and future operating states of the actuator AC and other actuators AC, the current position of the head HD corresponding to the actuator AC, multiple queue commands stored in the queue by the interface IF (or actuator AC) in the order received from the host 100, etc., and a table (hereinafter sometimes referred to as a reordering table or a seek profile table) indicating the relationship between seek distance and seek time for the heads HD of the actuator AC and other actuators AC. Hereinafter, the "time required for the head HD to access a predetermined position (e.g., a sector (data sector)) of the disk DK to a position (e.g., a sector (data sector)) different from the predetermined position by the head HD (the time required until the head HD is positioned)" will also be referred to as "access cost." The access cost includes the time required for the head HD to seek from a predetermined track of the disk DK to a track of the disk DK different from the predetermined track (hereinafter sometimes referred to as the seek time), and the rotational waiting time until the head HD is configured at a predetermined position on a track of the disk DK different from the predetermined track. The reordering table can be different for each head HD or each actuator AC, or it can be the same for some of the multiple head HDs or some of the multiple actuators AC, or it can be the same for all the head HDs and all the actuators AC. In order to reduce the effects of vibration and power consumption of the magnetic disk device 1, the command control unit 620 can also adjust the access cost by weighting the calculated access cost (for example, multiplying or dividing it by a predetermined value), or by offsetting the position of the disk DK where the head HD starts moving and / or the position of the disk DK where the head HD moves in the radial direction (for example, adding or subtracting a predetermined value).

[0069] The command control unit 620 selects a command (hereinafter sometimes also referred to as a low-cost command) that specifies a position that can be accessed with an access cost shorter (or smaller) than the access cost from the current position of the head HD corresponding to the present actuator AC to the position specified by other commands (hereinafter sometimes also referred to as other commands) different from the current command from the queue commands of at least one of the present actuator AC and the other actuator AC as the next processing command based on the current and future action states of the present actuator AC (for example, the current position of the head HD corresponding to the present actuator AC), the current and future action states of other actuators AC, and the calculation results of the access cost corresponding to each queue command of the present actuator AC and other actuators AC stored in the queue of each interface IF (or actuator AC), and reorders the order of the low-cost commands selected in at least one of the above-mentioned queue commands to the next order. Hereinafter, information used for reordering operations, such as information on the current and future operating states of this actuator AC and other actuators AC, information on multiple queue commands corresponding to this actuator AC and other actuators AC, information on multiple positions specified by multiple queue commands corresponding to this actuator AC and other actuators AC, a reordering table for this actuator AC and other actuators AC, and information when seeking from the current position of the head HD to multiple positions on the disk DK specified by multiple queue commands corresponding to this actuator AC and other actuators AC, may sometimes be referred to as reordering information. Furthermore, the reordering information may not include a reordering table. Furthermore, the reordering information may also include information other than the above-mentioned information. For example, position information may correspond to information on at least one of the following: head, track, sector, radial position, and disk angle, or information consisting of a combination thereof. Hereinafter, for ease of explanation, the "access cost from a predetermined position to another position" may sometimes be referred to as the "access cost of a predetermined command" or the "access cost corresponding to a predetermined command." As described above, the command control unit 620 performs the following reordering operation, processing a low-cost command after processing the current command. This reordering operation involves calculating the access costs corresponding to the queued commands of the current actuator AC and other actuators AC based on the reordering information, selecting a low-cost command from the queued commands based on the results of the access cost calculation, and reordering the selected low-cost command to the next order. The command control unit 620 may also record the reordering information in a predetermined recording area, such as the system area DKb of the disk DK, the volatile memory 70, the buffer memory 80, or the non-volatile memory 90. Furthermore, the command control unit 620 may also record reordering information other than the reordering table in a predetermined recording area, such as the system area DKb of the disk DK, the volatile memory 70, the buffer memory 80, or the non-volatile memory 90.In this case, the command control unit 620 may record the reordering table separately from the reordering information in a predetermined recording area, such as the system area DKb of the disk DK, the volatile memory 70, the buffer memory 80, or the non-volatile memory 90. Alternatively, the command control unit 620 may calculate the reordering table by computation.

[0070] For example, the command control unit 620 calculates multiple access costs for each of the multiple queue commands of the current actuator AC and other actuators AC stored in the queue of each interface IF (or actuator AC) based on the reordering information. Based on the reordering information and the result of the access cost calculation process, the command control unit 620 selects a command that specifies a location that can be accessed from the current location with the shortest (or minimum) access cost (hereinafter sometimes also referred to as the lowest cost command) from the queue commands as the next processing command, and reorders the order of the selected lowest cost command in the queue commands to the next order. As described above, the command control unit 620 performs the following reordering operation and processes the lowest cost command after processing the current command (or during the processing of the current command). The reordering operation is to perform the access cost calculation process corresponding to each queue command of the current actuator AC and other actuators AC based on the reordering information, select the lowest cost command from the queue commands based on the result of the access cost calculation process, and reorder the order of the selected lowest cost command to the next order. In addition, the command control unit 620 can also calculate the multiple access costs of each of the multiple queue commands of the current actuator AC and other actuator AC stored in the queue of each interface IF (or actuator AC) based on the reordering information other than the reordering table, and select a low-cost command (or lowest-cost command) from the above-mentioned queue commands as the next processing command based on the reordering information other than the reordering table and the result of the calculation processing of the above-mentioned access cost, reorder the order of the selected low-cost command (or lowest-cost command) to the next order, and process the low-cost command (or lowest-cost command) after processing the current command (or in the process of processing the current command).

[0071] For example, the command control unit 620 selects the lowest-cost command that can minimize the performance degradation caused by the mutual interference (interference) between the present actuator AC and other actuators from the multiple queue commands of the present actuator AC (or other actuator AC) as the next processing command based on the reordering information, such as the current and future action states of the present actuator AC and other actuators AC, and the results of the calculation and processing of the access costs of multiple queue commands of the present actuator AC (or other actuator AC) stored in the queue of each interface IF (or actuator AC), and reorders the order of the selected lowest-cost command to the next order among the multiple queue commands of the present actuator AC (or other actuator AC).

[0072] For example, when other actuators AC are not processing commands, the command control unit 620 selects the lowest cost command from the multiple queue commands of the present actuator AC as the next processing command based on the reordering information, such as the current and future action states of the present actuator AC and other actuators AC, and the results of the calculation and processing of the access costs of the multiple queue commands of the present actuator AC stored in the queue of each interface IF (or actuator AC), and reorders the order of the selected lowest cost command to the next order among the multiple queue commands of the present actuator AC.

[0073] For example, when the command control unit 620 determines that other actuators AC are performing read / write actions and the read / write actions of the other actuators AC will be completed in a short time, based on the reordering information, such as the current and future action states of the present actuator AC and other actuators AC, and the results of the calculation and processing of the access costs of multiple queue commands of the present actuator AC stored in the queue of each interface IF (or actuator AC), the command control unit 620 selects the lowest-cost command that specifies a position that can be accessed with the shortest (or minimum) access cost from the timing when the write action of the other actuator AC is completed as the next processing command from the multiple queue commands of the present actuator AC, and reorders the order of the selected lowest-cost command to the next order among the multiple queue commands of the present actuator AC.

[0074] For example, when the command control unit 620 determines that other actuators AC are performing read / write operations and the read / write operations of the other actuators AC will take a long time, the command control unit 620 selects, from the multiple queue commands of the present actuator AC, as the next processing command, the lowest-cost command that specifies a position that can be accessed with the shortest (or minimum) access cost under a seek condition that can be performed by a seek current that will not affect the read / write operations due to mutual interference between the present actuator AC and the other actuators AC, based on the reordering information, such as the current and future operation states of the present actuator AC and the other actuators AC, and the results of the calculation and processing of the access costs of the multiple queue commands of the present actuator AC and the other actuators AC stored in the queue of each interface IF (or actuator AC), and reorders the order of the selected lowest-cost command to the next order among the multiple queue commands of the present actuator AC.

[0075] For example, when other actuators AC are performing read / write operations, the command control unit 620 selects the lowest-cost command from the multiple queue commands of the present actuator AC as the next processing command based on the current and future operation states of the present actuator AC and the other actuator AC and the result of the calculation and processing of the access costs of the multiple queue commands of the present actuator AC and the other actuator AC stored in the queue of each interface IF (or actuator AC). The command control unit 620 predicts the timing at which the present actuator AC and the other actuator AC interfere with each other due to the seek operation of the other actuator AC and is affected, and excludes the selected command (e.g., the lowest-cost command) if the selected command (e.g., the lowest-cost command) is performing a write operation or a read operation corresponding to the other actuator AC at that timing. In the case where the selected command (for example, the lowest cost command) is performing a write action or a read action corresponding to other actuators AC at this timing, the command control unit 620 selects the lowest cost command from the above-mentioned queue commands excluding the excluded commands as the next processing command based on the current and future action states of the present actuator AC and other actuators AC and the results of the calculation and processing of the access costs of multiple queue commands of the present actuator AC and other actuators AC stored in the queue of each interface IF (or actuator AC). In the case where the selected command (for example, the lowest cost command) is not performing a write action or a read action corresponding to other actuators AC at this timing, the command control unit 620 reorders the order of the selected lowest cost command in the above-mentioned queue commands to the next order. In addition, the timing affected by the seek action of other actuators AC changes depending on whether it is a write action or a read action. For example, the impact is smaller in the case of a read action.

[0076] For example, the command control unit 620 can add information about the mutual interference between the current actuator AC and other actuators AC to the reordering table, and perform reordering according to the permissible level of mutual interference between the current actuator AC and other actuators AC. The permissible level of mutual interference between the current actuator AC and other actuators AC varies depending on whether the command being executed is a write operation or a read operation, the combination of head numbers, the relative radial positions of the head HD of the current actuator AC and the heads HD of other actuators AC, and so on. Therefore, a seek profile table can be provided for each condition, or various conditions can be calculated and used as parameters for the basic seek profile table.

[0077] The command control unit 620 counts the number of queued commands (hereinafter, sometimes referred to as the queued command number). The command control unit 620 counts the number of queued commands corresponding to each actuator AC in at least one queued command.

[0078] The command control unit 620 includes a command storage unit 6200, a first reordering operation unit 6210 that performs reordering operations on a plurality of queued commands corresponding to actuator AC0, and a second reordering operation unit 6211 that performs reordering operations on a plurality of queued commands corresponding to actuator AC1. Furthermore, two or more command control units 620 may be provided to correspond to the number of actuators AC.

[0079] The command storage unit 6200 includes queues. The command storage unit 6200 may include multiple queues corresponding to the multiple actuators AC, or may include a single queue (hereinafter sometimes referred to as a composite queue) formed by combining the queues corresponding to the multiple actuators AC. For example, the command storage unit 6200 may include a queue corresponding to actuator AC0 and a queue corresponding to actuator AC1, or may include a single composite queue formed by combining the queues corresponding to actuator AC0 and actuator AC1.

[0080] The command storage unit 6200 stores commands received from the host 100, etc., in a queue. For example, the command storage unit 6200 may store multiple commands corresponding to actuator AC0 received from the host 100, etc. and multiple commands corresponding to actuator AC1 received from the host 100, etc. in the same direction in the order in which they were received from the host. The command storage unit 6200 may also store multiple commands corresponding to actuator AC0 received from the host 100, etc. in the combined queue in the order in which they were received from the host 100, etc., and store multiple commands corresponding to actuator AC1 received from the host 100, etc. in the combined queue in the opposite direction to the multiple commands corresponding to actuator AC0 received from the host 100, etc.

[0081] The command storage unit 6200 can store, in the queue, the number of commands that can be stored in the queue specified by the host 100 or the like (hereinafter sometimes referred to as the queue depth (QD)). When the number of queue commands corresponding to a predetermined actuator AC is the number of commands corresponding to the QD corresponding to the actuator AC, the command storage unit 6200 does not receive a command corresponding to the actuator AC from the host 100 or the like. When the number of queue commands corresponding to the predetermined actuator AC is smaller than the QD corresponding to the actuator AC, the command storage unit 6200 stores, in the queue, a command corresponding to the actuator AC received from the host 100 or the like. For example, when the QD corresponding to actuator AC1 is 3 and the number of queue commands corresponding to actuator AC1 is 3, the command storage unit 6200 does not receive a command corresponding to actuator AC1 from the host 100 or the like. When the QD corresponding to actuator AC1 is 3 and the number of queued commands corresponding to actuator AC1 is 2, the command storage unit 6200 stores the command corresponding to actuator AC1 received from the host 100 or the like in the queue corresponding to actuator AC1.

[0082] Figure 3 is a schematic diagram showing an example of queues Q0 and Q1. Figure 3 In FIG, the command storage unit 6200 includes a queue Q0 for storing commands corresponding to the actuator AC0 and a queue Q1 for storing commands corresponding to the actuator AC1. Figure 3 In the example shown, the QD of queues Q0 and Q1 is 3. In addition, the QD of queues Q0 and Q1 can also be less than 2, or more than 4. Figure 3 In the queue Q0, commands Cmd00e, Cmd01e, and Cmd02e are stored. Commands Cmd00e, Cmd01e, and Cmd02e are transmitted from the host 100 or the like in the order in which they are written. Commands Cmd00e, Cmd01e, and Cmd02e correspond to actuator AC0. Figure 3 In the queue Q1, commands Cmd10e and Cmd11e are stored. Commands Cmd10e and Cmd11e are transmitted from the host 100 and the like in the order in which they are written. Commands Cmd10e and Cmd11e correspond to actuator AC1. Figure 3 , a direction (hereinafter, sometimes referred to as a storage direction) CD0 for storing instructions in the queue Q0 and a storage direction CD1 for storing instructions in the queue Q1 are shown.

[0083] exist Figure 3In the example shown, the command storage unit 6200 stores commands Cmd00e, Cmd01e, and Cmd02e in queue Q0 along storage direction CD0 in the order in which they are written, and stores commands Cmd10e and Cmd11e in queue Q1 along storage direction CD1 in the order in which they are written.

[0084] Since the number of queue commands corresponding to actuator AC0 stored in queue Q0 (=3) is the number of commands for QD (=3), the command storage unit 6200 does not receive commands corresponding to actuator AC0 from the host 100 or the like. Since the number of queue commands corresponding to actuator AC1 stored in queue Q1 (=2) is less than QD (=3), the command storage unit 6200 can receive commands corresponding to actuator AC1 from the host 100 or the like and store them in queue Q1.

[0085] The first reordering operation unit 6210 performs reordering operation on multiple queued commands corresponding to actuator AC0. For example, when processing the current command, the first reordering operation unit 6210 performs reordering operation on multiple queued commands corresponding to actuator AC0 received from the host 100 or the like.

[0086] In one example, the first reordering operation unit 6210 calculates access costs (hereinafter sometimes referred to as next estimated costs) from the current position of the head HD0 to multiple positions designated by multiple queue commands (hereinafter sometimes referred to as next estimated processing commands) that are likely to be processed after the current command among the multiple queue commands corresponding to the actuator AC0, based on information about the current position of the head HD0, information about multiple queue commands corresponding to the actuator AC0, and reordering information corresponding to the actuator AC0, such as a reordering table corresponding to the actuator AC0. Furthermore, to reduce the effects of vibration and power consumption of the magnetic disk device 1, the first reordering operation unit 6210 may also adjust the access cost (next estimated cost) by weighting the calculated access cost (next estimated cost) (e.g., multiplying or dividing it by a predetermined value), or by radially offsetting the position of the disk DK0 at which the head HD0 starts moving and / or the position of the disk DK0 to which the head HD0 moves (e.g., adding or subtracting a predetermined value). The first reordering operation unit 6210 selects a low-cost command (or a lowest-cost command) from the next estimated commands based on the result of the calculation process of the next estimated cost, and reorders the order of the low-cost commands (or lowest-cost commands) selected from the next estimated commands to the next order.

[0087] For example, the first reorder calculation unit 6210 may record the reorder information corresponding to actuator AC0 in a predetermined recording area, such as the system area DKb0 of disk DK0, volatile memory 70, buffer memory 80, or non-volatile memory 90. Furthermore, the first reorder calculation unit 6210 may record the reorder information corresponding to actuator AC0 in addition to the reorder table corresponding to actuator AC0 in a predetermined recording area, such as the system area DKb0 of disk DK0, volatile memory 70, buffer memory 80, or non-volatile memory 90. In this case, the first reorder calculation unit 6210 may record the reorder table corresponding to actuator AC0 separately from the reorder information corresponding to actuator AC0 in a predetermined recording area, such as the system area DKb0 of disk DK0, volatile memory 70, buffer memory 80, or non-volatile memory 90. The first reordering calculation unit 6210 may also record the reordering tables corresponding to the respective actuators AC, for example, the reordering table corresponding to actuator AC0 and the reordering table corresponding to actuator AC1, in a predetermined recording area, such as the system area DKb0 of the disk DK0, the volatile memory 70, the buffer memory 80, or the non-volatile memory 90. The first reordering calculation unit 6210 may also record the reordering tables corresponding to the plurality of actuators AC, for example, the reordering tables corresponding to actuators AC0 and AC1, in a predetermined recording area, such as the system area DKb0 of the disk DK0, the volatile memory 70, the buffer memory 80, or the non-volatile memory 90. The first reordering calculation unit 6210 may also calculate the reordering table corresponding to actuator AC1 through calculation. The first reordering calculation unit 6210 may also calculate the reordering table corresponding to actuator AC0 and the reordering table corresponding to actuator AC1 through calculation. Alternatively, the first reordering calculation unit 6210 may calculate a reordering table corresponding to actuators AC0 and AC1 through calculation.

[0088] The second reordering operation unit 6211 performs reordering operation on multiple queued commands corresponding to the actuator AC1. For example, when processing the current command, the second reordering operation unit 6211 performs reordering operation on multiple queued commands corresponding to the actuator AC1 received from the host 100 or the like.

[0089] In one example, the second reordering calculation unit 6211 calculates multiple next-estimated costs from the current position of the head HD1 to multiple positions specified by multiple next-processing estimated commands in the multiple queue commands corresponding to the actuator AC1 based on information about the current position of the head HD1, information about multiple queue commands corresponding to the actuator AC1, and reordering information corresponding to the actuator AC1, such as a reordering table corresponding to the actuator AC1. Furthermore, to reduce the effects of vibration and power consumption of the magnetic disk device 1, the second reordering calculation unit 6211 may adjust the access cost (next-estimated cost) by weighting the calculated access cost (next-estimated cost) (e.g., multiplying or dividing it by a predetermined value), or by radially offsetting the position of the disk DK1 at which the head HD1 starts moving and / or the position of the disk DK1 at which the head HD1 moves (e.g., adding or subtracting a predetermined value). Based on the result of the next estimated cost calculation process, the second reordering calculation unit 6211 selects a low-cost command (or a lowest-cost command) from the predicted next processing commands, and reorders the low-cost command (or lowest-cost command) selected from the predicted next processing commands to the next order. The reordering table corresponding to actuator AC1 and the reordering table corresponding to actuator AC0 may be the same or different.

[0090] For example, the second reordering calculation unit 6211 may record the reordering information corresponding to actuator AC1 in a predetermined recording area, such as the system area DKb1 of disk DK1, the volatile memory 70, the buffer memory 80, or the non-volatile memory 90. Furthermore, the second reordering calculation unit 6211 may record the reordering information corresponding to actuator AC1 in addition to the reordering table corresponding to actuator AC1 in a predetermined recording area, such as the system area DKb1 of disk DK1, the volatile memory 70, the buffer memory 80, or the non-volatile memory 90. In this case, the second reordering calculation unit 6211 may record the reordering table corresponding to actuator AC1 separately from the reordering information corresponding to actuator AC1 in a predetermined recording area, such as the system area DKb1 of disk DK1, the volatile memory 70, the buffer memory 80, or the non-volatile memory 90. The second reordering calculation unit 6211 may also record the reordering tables corresponding to the respective actuators AC, for example, the reordering table corresponding to actuator AC0 and the reordering table corresponding to actuator AC1, in a predetermined recording area, such as the system area DKb1 of disk DK1, volatile memory 70, buffer memory 80, or non-volatile memory 90. The second reordering calculation unit 6211 may also record the reordering tables corresponding to the plurality of actuators AC, for example, the reordering tables corresponding to actuators AC0 and AC1, in a predetermined recording area, such as the system area DKb1 of disk DK1, volatile memory 70, buffer memory 80, or non-volatile memory 90. The second reordering calculation unit 6211 may also calculate the reordering table corresponding to actuator AC1 through calculation. The second reordering calculation unit 6211 may also calculate the reordering table corresponding to actuator AC0 and the reordering table corresponding to actuator AC1 through calculation. Alternatively, the second reordering calculation unit 6211 may calculate a reordering table corresponding to actuators AC0 and AC1 through calculation.

[0091] The second reordering operation unit 6211 selects a low-cost command (or a lowest-cost command) from the multiple queue commands corresponding to the actuator AC1 based on the calculation results of the calculation processing of the multiple access costs of each of the multiple queue commands corresponding to the actuator AC1, and reorders the order of the low-cost commands (or lowest-cost commands) selected from the multiple queue commands to the next order.

[0092] In one example, the second reordering operation unit 6211 selects a low-cost command (or lowest-cost command) from the multiple queue commands corresponding to the actuator AC1 based on the calculation results of the calculation processing of several next-estimated costs of each of several next-processing expected commands in the multiple queue commands corresponding to the actuator AC1, and reorders the order of the low-cost commands (or lowest-cost commands) selected from the above-mentioned multiple next-processing expected commands corresponding to the actuator AC1 to the next order.

[0093] Figure 4 This is a sequence diagram showing an example of the reordering process involved in this embodiment. Figure 4 , an IF0 access request input and output to the actuator AC0 via the interface IF0 and an IF1 access request input and output to the actuator AC1 via the interface IF1 are shown. Figure 4 In the figure, queues Q0 and Q1 are shown. Figure 4 In the example, queue Q0 can store commands (queue commands) Cmd00, Cmd01, Cmd02, Cmd03, and Cmd04. Figure 4 In the example, queue Q1 can store commands (queue commands) Cmd10, Cmd11, Cmd12, Cmd13, and Cmd14. Figure 4 The command processing (or read / write operation processing) of actuator AC0 and the command processing (or read / write operation processing) of actuator AC1 are shown in FIG. Figure 4 In the example, let time t be, and time passes as we move toward the top of the arrow. That is, in Figure 4 In FIG, regarding time t, the tip side of the arrow corresponds to the future side, and the side opposite to the tip side of the arrow corresponds to the past.

[0094] exist Figure 4 In the example shown, while actuator AC0 is performing a read / write operation, system controller 130 obtains information about the seek operation of head HD0 during the read / write operation in actuator AC0, as well as information about the start and end timings of the read / write operation of head HD0. During the read / write operation, system controller 130 selects the lowest-cost command Cmd12 from the queue commands Cmd10, Cmd11, Cmd12, and Cmd13 stored in queue Q1 of actuator AC1, and reorders the selected lowest-cost command Cmd12 to the next highest order. System controller 130 then begins processing the read / write operation of command Cmd12 via actuator AC1.

[0095] exist Figure 4In the example shown, while actuator AC1 is performing a read / write operation corresponding to command Cmd12, system controller 130 obtains information about the seek operation of head HD1 during the read / write operation corresponding to command Cmd12 in actuator AC1, as well as information about the start and end timings of head HD1's read / write operation corresponding to command Cmd12. System controller 130 selects the lowest-cost command Cmd03, which specifies a location accessible with the lowest access cost from the time the read / write operation in actuator AC0 ends, from among Cmd00, Cmd01, Cmd02, and Cmd03 stored in queue Q0 of actuator AC0. System controller 130 reorders the selected lowest-cost command Cmd03 to the next highest order. After the read / write operation in actuator AC0 ends, system controller 130 begins the read / write operation of command Cmd03 in actuator AC0.

[0096] exist Figure 4 In the example shown, while actuator AC0 is performing a read / write operation corresponding to command Cmd03, system controller 130 obtains information about the seek operation of head HD0 during the read / write operation corresponding to command Cmd03 by actuator AC0, as well as information about the start and end timings of the read / write operation corresponding to command Cmd03 by head HD0. When actuator AC0 is performing a read / write operation corresponding to command Cmd03, system controller 130 receives information about the completion of the read / write operation of command Cmd12 via interface IF1. System controller 130 also obtains information that queue Q1 corresponding to actuator AC1 has a vacant position. System controller 130 selects the lowest-cost command Cmd11, which specifies a location in actuator AC1 that can be accessed with the lowest access cost from the time the read / write operation corresponding to command Cmd12 is completed, from among commands Cmd10, Cmd11, and Cmd13 stored in queue Q1 of actuator AC1. System controller 130 then reorders the selected lowest-cost command Cmd11 to the next position. After the read / write operation corresponding to command Cmd12 is completed in actuator AC1, system controller 130 begins reading / writing command Cmd11 through actuator AC1.

[0097] exist Figure 4In the example shown, while actuator AC1 is performing a read / write operation corresponding to command Cmd11, system controller 130 obtains information about the seek operation of head HD1 during the read / write operation corresponding to command Cmd11 by actuator AC1, as well as information about the start and end timings of the read / write operation by head HD1 corresponding to command Cmd11. When the read / write operation of command Cmd03 is completed while actuator AC1 is performing a read / write operation corresponding to command Cmd11, system controller 130 receives information indicating the completion of the read / write operation of command Cmd03 via interface IF0. System controller 130 obtains information that queue Q0 corresponding to actuator AC0 has a vacant position. The system controller 130 selects the lowest-cost command Cmd00, which specifies a location in actuator AC0 that can be accessed with the lowest access cost from the time the read / write operation corresponding to command Cmd03 is completed, from among the commands Cmd00, Cmd01, and Cmd02 stored in queue Q0 of actuator AC0. The system controller 130 then reorders the selected lowest-cost command Cmd00 to the next position. After the read / write operation corresponding to command Cmd03 is completed in actuator AC0, the system controller 130 begins the read / write operation of command Cmd00 through actuator AC0.

[0098] The system controller 130 receives the command Cmd14 via the interface IF1 while the actuator AC1 is performing the read / write operation corresponding to the command Cmd11 .

[0099] The system controller 130 receives the command Cmd04 via the interface IF0 while the actuator AC1 is performing the read / write operation corresponding to the command Cmd11 .

[0100] exist Figure 4In the example shown, while actuator AC0 is performing a read / write operation corresponding to command Cmd00, system controller 130 obtains information about the seek operation of head HD0 during the read / write operation corresponding to command Cmd00 in actuator AC0, as well as information about the start and end timings of the read / write operation of head HD0 corresponding to command Cmd00. When actuator AC0 is performing a read / write operation corresponding to command Cmd00, system controller 130 receives information about the completion of the read / write operation of command Cmd11 via interface IF1. System controller 130 also obtains information that queue Q1 corresponding to actuator AC1 has a vacant position. System controller 130 selects the lowest-cost command Cmd13, which specifies a location in actuator AC1 that can be accessed with the lowest access cost from the time the read / write operation corresponding to command Cmd11 is completed, from among commands Cmd10, Cmd13, and Cmd14 stored in queue Q1 of actuator AC1. System controller 130 then reorders the selected lowest-cost command Cmd13 to the next position. After the read / write operation corresponding to command Cmd11 is completed in actuator AC1, system controller 130 begins reading / writing command Cmd13 through actuator AC1.

[0101] Figure 5 Schematic diagram showing an example of read / write operation processing involved in this embodiment. Figure 5 The change of the seek current with respect to time t (hereinafter sometimes referred to as the change of the seek current) SCL is shown in FIG. The horizontal axis of the change of the seek current SCL represents time t, and the vertical axis of the change of the seek current SCL represents the seek current. On the horizontal axis of the change of the seek current SCL, time t passes as the seek current moves toward the top side of the arrow. On the vertical axis of the change of the seek current SCL, the seek current becomes more positive as the seek current moves toward the top side of the arrow that is more positive than the origin (=0), and becomes less negative as the seek current moves toward the top side of the arrow that is more negative than the origin (=0). In FIG. Figure 5 The change of the head position relative to time t (hereinafter sometimes referred to as the change of the head position) HPL is shown in FIG. The horizontal axis of the change of the head position HPL represents time t, and the vertical axis of the change of the head position HPL represents the head position. On the horizontal axis of the change of the head position HPL, time t passes as the head moves toward the top side of the arrow. On the vertical axis of the change of the head position HPL, the head position moves outward as the head moves toward the top side of the outward arrow, and moves inward as the head moves toward the top side of the inward arrow. In addition, on the vertical axis of the change of the head position HPL, the outside and the inside may also be opposite. Figure 5: Indicates a flag during a seek operation relative to time t (hereinafter sometimes referred to as a seek operation flag) SMF, a flag during a read / write process relative to time t (hereinafter sometimes referred to as a R / W (read / write) process flag) WRPF, and a flag during a command process relative to time t (hereinafter sometimes referred to as a command process flag) CPF. The seek operation flag SMF, the R / W process flag WRPF, and the command process flag CPF are ON (active) when they rise and OFF (inactive) when they fall.

[0102] exist Figure 5 In the example shown, the system controller 130 turns on the command processing flag CPF to start command processing (or read / write operation processing). At the same time as the command processing flag CPF is turned on, the system controller 130 turns on the seek operation flag SMF to start a seek operation of the head HD. At the same time as the seek operation flag SMF is turned on, the system controller 130 increases the seek current variation SCL toward the positive side. The system controller 130 moves the head HD from the inside to the outside (or changes the head position variation HPL from the inside to the outside).

[0103] The system controller 130 turns off the seek operation flag SMF to terminate the seek operation of the head HD. The system controller 130 reduces the change in seek current SCL to the negative side at the timing of turning off the seek operation flag SMF.

[0104] The system controller 130 turns on the R / W processing flag WRPF at a timing after waiting for rotation from the timing at which the seek operation in-progress flag SMF is turned off, and starts the R / W processing.

[0105] The system controller 130 turns OFF the R / W processing flag WRPF to terminate the R / W processing. The system controller 130 turns OFF the command processing flag CPF at the same time as turning OFF the R / W processing flag WRPF to terminate the command processing (or read / write operation processing).

[0106] Figure 6 Schematic diagram showing an example of a change SCL00 of a seek current corresponding to a head HD00 of an actuator AC0 and a change PESL10 of a position error signal of a head HD10 of an actuator AC1 according to the present embodiment. Figure 6The change of the seek current with respect to time t (hereinafter sometimes referred to as the change of the seek current) SCL00 corresponding to the head HD00 (or head HD01) of the actuator AC0 is shown. The horizontal axis of the change of the seek current SCL00 represents time t, and the vertical axis of the change of the seek current SCL00 represents the seek current. On the horizontal axis of the change of the seek current SCL00, time t passes as the seek current moves toward the top side of the arrow. On the vertical axis of the change of the seek current SCL00, the seek current becomes more positive as the seek current moves toward the top side of the arrow that is more positive than the origin (=0), and becomes less negative as the seek current moves toward the top side of the arrow that is more negative than the origin (=0). The vertical axis of the change of the seek current SCL00 represents the seek current CRT0 and the seek current -CRT0. Figure 6 In FIG, the change SCL00 of the seek current corresponding to the head HD00 (or head HD01) of the actuator AC0 reaches its maximum value at the seek current CRT0 and its minimum value at the seek current -CRT0. The absolute value of the seek current CRT0 and the absolute value of the seek current -CRT0 may be the same or different. Figure 6 The change of the position error signal with respect to time t (hereinafter sometimes referred to as the change of the position error signal) PESL10 corresponding to the head HD10 (or HD11) of the actuator AC1 is shown in the figure. The horizontal axis of the change of the position error signal PESL10 represents time t, and the vertical axis of the change of the position error signal PESL10 represents the position error signal. On the horizontal axis of the change of the position error signal PESL10, time t passes as the position error signal moves toward the top side of the arrow. On the vertical axis of the change of the position error signal PESL10, the positive value of the position error signal becomes larger as the position error signal moves toward the top side of the arrow that is more positive than the origin (=0), and the negative value becomes smaller as the position error signal moves toward the top side of the arrow that is more negative than the origin (=0). The vertical axis of the change of the position error signal PESL10 represents the position error signal PES0 and the position error signal -PES0. Figure 6 In the embodiment of the present invention, the position error signal PESL10 of the head HD10 (or head HD11) of the actuator AC1 varies within the range of the position error signal PES0 to -PES0. The absolute value of the position error signal PES0 and the absolute value of the position error signal -PES0 may be the same or different.

[0107] exist Figure 6In the example shown, system controller 130 applies a seek current to actuator AC0, causing head HD00 (or HD01) to seek, and head HD10 (or HD11) of actuator AC1 accesses a predetermined area of disk DK1. A change in position error signal PESL10 when head HD10 (or HD11) of actuator AC1 accesses the predetermined area changes based on a change in seek current SCL00 corresponding to head HD00 (or HD01) of actuator AC0. In other words, when a seek current is applied to actuator AC0, causing head HD00 (or HD01) to seek, the position error signal when head HD10 (or HD11) of actuator AC1 accesses the predetermined area is affected. In addition, when a seek current is applied to actuator AC1 to cause head HD10 (or HD11) to seek, and head HD01 (or head HD00) of actuator AC0 to access a predetermined area of disk DK0, the same effect may occur as when a seek current is applied to actuator AC0 to cause head HD00 (or HD01) to seek, and head HD10 (or head HD11) of actuator AC1 to access a predetermined area of disk DK1.

[0108] Figure 7 Schematic diagram showing an example of a change SCL01 of a seek current corresponding to a head HD01 of an actuator AC0 and a change PESL11 of a position error signal of a head HD11 of an actuator AC1 according to the present embodiment. Figure 7 The change SCL01 of the seek current corresponding to the head HD01 (or head HD00) of the actuator AC0 is shown in the figure. The horizontal axis of the change SCL01 of the seek current represents time t, and the vertical axis of the change SCL01 of the seek current represents the seek current. On the horizontal axis of the change SCL01 of the seek current, time t elapses as the seek current moves toward the top side of the arrow. On the vertical axis of the change SCL01 of the seek current, the seek current becomes more positive as the seek current moves toward the top side of the arrow that is more positive than the origin (=0), and becomes less negative as the seek current moves toward the top side of the arrow that is more negative than the origin (=0). The vertical axis of the change SCL01 of the seek current represents the seek current CRT1 and the seek current -CRT1. Figure 7 In FIG, the change SCL01 of the seek current corresponding to the head HD01 (or head HD00) of the actuator AC0 reaches its maximum value at the seek current CRT1 and its minimum value at the seek current -CRT1. The absolute value of the seek current CRT1 and the absolute value of the seek current -CRT1 may be the same or different. Figure 7The change PESL11 of the position error signal corresponding to the head HD11 (or HD10) of the actuator AC1 is shown in the figure. The horizontal axis of the change PESL11 of the position error signal represents time t, and the vertical axis of the change PESL11 of the position error signal represents the position error signal. On the horizontal axis of the change PESL11 of the position error signal, time t elapses as the position error signal moves toward the top side of the arrow that is positive relative to the origin (=0). On the vertical axis of the change PESL11 of the position error signal, the positive value of the position error signal becomes larger as the position error signal moves toward the top side of the arrow that is positive relative to the origin (=0), and the negative value becomes smaller as the position error signal moves toward the top side of the arrow that is negative relative to the origin (=0). The vertical axis of the change PESL11 of the position error signal represents the position error signal PES1 and the position error signal -PES1. Figure 7 In the embodiment of the present invention, the position error signal PESL11 of the head HD11 (or head HD10) of the actuator AC1 varies within the range of the position error signal PES1 to -PES1. The absolute value of the position error signal PES1 and the absolute value of the position error signal -PES1 may be the same or different.

[0109] exist Figure 7 In the example shown, system controller 130 applies a seek current to actuator AC0, causing head HD01 (or HD00) to seek, and head HD11 (or HD10) of actuator AC1 accesses a predetermined area of disk DK1. A change in position error signal PESL11 when head HD11 (or HD10) of actuator AC1 accesses the predetermined area changes based on a change in seek current SCL01 corresponding to head HD01 (or HD00) of actuator AC0. In other words, when a seek current is applied to actuator AC0, causing head HD01 (or HD00) to seek, the position error signal when head HD11 (or HD10) of actuator AC1 accesses the predetermined area is affected. In addition, when a seek current is applied to actuator AC1 to cause head HD11 (or HD10) to seek, and head HD01 (or head HD00) of actuator AC0 to access a predetermined area of disk DK0, the same effect may occur as when a seek current is applied to actuator AC0 to cause head HD01 (or HD00) to seek, and head HD11 (or head HD10) of actuator AC1 to access a predetermined area of disk DK1.

[0110] Figure 8 Schematic diagram showing an example of a change SCL02 in the seek current corresponding to the head HD01 of the actuator AC0 and a change PESL12 in the position error signal of the head HD11 of the actuator AC1 according to the present embodiment. Figure 8The change SCL02 of the seek current corresponding to the head HD01 (or head HD00) of the actuator AC0 is shown in the figure. The horizontal axis of the change SCL02 of the seek current represents time t, and the vertical axis of the change SCL02 of the seek current represents the seek current. On the horizontal axis of the change SCL02 of the seek current, time t elapses as the seek current moves toward the top side of the arrow. On the vertical axis of the change SCL02 of the seek current, the seek current becomes more positive as the seek current moves toward the top side of the arrow that is more positive than the origin (=0), and becomes less negative as the seek current moves toward the top side of the arrow that is more negative than the origin (=0). The vertical axis of the change SCL02 of the seek current represents the seek current CRT2 and the seek current -CRT2. Figure 8 In FIG, the change SCL02 of the seek current corresponding to the head HD01 (or head HD00) of the actuator AC0 reaches its maximum value at the seek current CRT2 and its minimum value at the seek current -CRT2. The absolute value of the seek current CRT2 and the absolute value of the seek current -CRT2 may be the same or different. The absolute value of the seek current CRT2 is smaller than the absolute value of the seek current CRT1. The absolute value of the seek current -CRT2 is smaller than the absolute value of the seek current -CRT1. Figure 8 The change PESL12 of the position error signal corresponding to the head HD11 (or HD10) of the actuator AC1 is shown in the figure. The horizontal axis of the change PESL12 of the position error signal represents time t, and the vertical axis of the change PESL12 of the position error signal represents the position error signal. On the horizontal axis of the change PESL12 of the position error signal, time t elapses as the position error signal moves toward the top side of the arrow that is positive relative to the origin (=0). On the vertical axis of the change PESL12 of the position error signal, the positive value of the position error signal becomes larger as the position error signal moves toward the top side of the arrow that is positive relative to the origin (=0), and the negative value becomes smaller as the position error signal moves toward the top side of the arrow that is negative relative to the origin (=0). The vertical axis of the change PESL12 of the position error signal represents the position error signal PES2 and the position error signal -PES2. Figure 8 In the embodiment of the present invention, the change PESL12 of the position error signal of the head HD11 (or head HD10) of the actuator AC1 varies within the range of the position error signal PES2 to -PES2. The absolute value of the position error signal PES2 and the absolute value of the position error signal -PES2 may be the same or different. The absolute value of the position error signal PES2 is smaller than the absolute value of the position error signal PES1. The absolute value of the position error signal -PES2 is smaller than the absolute value of the position error signal -PES1.

[0111] exist Figure 8In the example shown, the system controller 130 applies a seek current to the actuator AC0 to cause the head HD01 (or head HD00) to seek, and accesses a predetermined area of the disk DK1 through the head HD11 (or head HD10) of the actuator AC1. Changes in the position error signal PESL12 when the head HD11 (or head HD10) of the actuator AC1 accesses the predetermined area change according to changes in the seek current SCL02 corresponding to the head HD01 (or head HD00) of the actuator AC0. That is, when the seek current is applied to the actuator AC0 to cause the head HD01 (or head HD00) to seek, the position error signal when the head HD11 (or head HD10) of the actuator AC1 accesses the predetermined area is affected. Figure 6 and Figure 7 By reducing the seek current applied to actuator AC0, the influence on the position error signal generated when head HD11 (or head HD10) of actuator AC1 accesses a predetermined area can also be reduced. Furthermore, when a seek current is applied to actuator AC1, causing head HD11 (or HD10) to seek, and head HD01 (or head HD00) of actuator AC0 to access a predetermined area of disk DK0, the same influence as when a seek current is applied to actuator AC0, causing head HD01 (or HD00) to seek, and head HD11 (or head HD10) of actuator AC1 to access a predetermined area of disk DK1 can also occur.

[0112] Figure 9 : is a schematic diagram showing an example of a reordering table involved in this embodiment. Figure 9The table shows changes in seek time relative to multiple seek distances (hereinafter sometimes referred to as a seek time change group) STLG, and changes in seek time relative to seek distance during the fastest seek (hereinafter referred to as changes in seek time during the fastest seek) FSTL, where the seek distance is a distance that can be sought by a seek current that does not affect multiple head HDs corresponding to multiple head numbers. The seek time change group STLG includes changes in seek time relative to a seek distance that can be sought by a seek current that does not affect a head HD with head number 0, such as head HD00 or HD10 (hereinafter sometimes referred to as changes in seek time) STL0, and changes in seek time relative to a seek distance that can be sought by a seek current that does not affect a head HD with head number N, such as head HD01 or HD11. The horizontal axis of the seek time change (or reordering table) represents the seek distance, and the vertical axis of the reordering table represents the seek time. On the horizontal axis of the reordering table, the seek distance increases as the distance moves toward the top of the "large" arrow, and decreases as the distance moves toward the top of the "small" arrow. On the vertical axis of the reordering table, the seek time increases as the distance moves toward the top of the "large" arrow, and decreases as the distance moves toward the top of the "small" arrow.

[0113] exist Figure 9 In the example shown, the system controller 130 can add the information of the mutual interference between the actuator AC and other actuators AC to the Figure 9 In the reordering table shown, reordering is performed according to the mutual interference level allowed between the actuator AC and other actuators AC. In addition, the system controller 130 may also perform reordering based on the current and future operating states of the actuator AC and other actuators AC, the current position of the head HD corresponding to the actuator AC, a plurality of queue commands stored in the queue of the interface IF (or actuator AC) in the order received from the host 100, etc., and the Figure 9 The reordering table shown calculates a plurality of times required to access positions of a plurality of sectors (data sectors) of the disk DK respectively designated by the queue command from the current position.

[0114] Figure 10 This is a flowchart showing an example of a reordering processing method according to this embodiment.

[0115] The system controller 130 determines whether another actuator AC is currently executing a command (B1001). If it determines that another actuator AC is not currently executing a command (B1001: No), the system controller 130 executes the lowest-cost command from among the multiple queued commands for its own actuator AC (B1002) and terminates the process. For example, the system controller 130 executes the command that can be executed earliest by its own actuator AC and terminates the process.

[0116] If it is determined that another actuator AC is executing a command (B1001: Yes), the system controller 130 determines whether the other actuator AC is currently executing a write operation or a read operation (B1003). If it is determined that the other actuator AC is not currently executing a write operation or a read operation (B1003: No), the system controller 130 calculates the start timing (predetermined time) of the other actuator's start of the write operation or the read operation (B1004). Based on the start timing of the other actuator's start of the write operation or the read operation, the system controller 130 selects the lowest-cost command that can be executed earliest from the multiple queued commands of the own actuator AC as the next command to be processed (B1005). If the command selected from the multiple queued commands of the own actuator AC is affected by the seek operation of the other actuator AC, the system controller 130 excludes the selected command and proceeds to processing B1005. If the command selected from the multiple queued commands of the own actuator AC is not affected by the seek operation of the other actuator AC, the system controller 130 proceeds to processing B1007 (B1006). When the command selected from the multiple queue commands of the present actuator AC affects the write action or read action of other actuators AC, the system controller 130 excludes the selected command and proceeds to processing B1005. When the command selected from the multiple queue commands of the present actuator AC does not affect the write action or read action of other actuators AC (B1007), the system controller 130 executes processing of the selected command and ends the processing.

[0117] If it is determined that the other actuator AC is currently performing a write operation or a read operation (B1003: Yes), the system controller 130 determines whether the write operation or the read operation of the other actuator AC will be completed in a short time (B1008). If it is determined that the write operation or the read operation of the other actuator AC will not be completed in a short time, that is, it will take a long time (B1008: No), the system controller 130 selects the lowest-cost command that can be executed earliest under the seek condition that can be executed with a seek current that does not affect the write operation or the read operation of the other actuator from the multiple queued commands of the current actuator AC as the next processing command (B1009), executes the processing of the selected command, and ends the processing. When it is determined that the write action or read action of other actuators AC will be completed in a short time (B1008: Yes), the system controller 130 selects the lowest-cost command that can be executed earliest from the end timing (scheduled end time) of the write action or read action of other actuators AC from multiple queue commands of this actuator AC as the next processing command (B1010), executes the processing of the selected command, and ends the processing.

[0118] According to the present embodiment, the disk device 1 has a plurality of actuators AC. The disk device 1 calculates the plurality of access costs of each of the plurality of queue commands of the present actuator AC stored in the queue of each interface IF (or actuator AC) based on the reordering information. Based on the reordering information and the result of the calculation processing of the above-mentioned access cost, the disk device 1 selects the lowest-cost command that can minimize the performance degradation caused by the mutual interference between the present actuator AC and other actuators from the plurality of queue commands of the present actuator AC as the next processing command, and reorders the order of the selected lowest-cost command to the next order among the plurality of queue commands of the present actuator AC. Therefore, the disk device 1 can improve the access performance.

[0119] While various embodiments have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These novel embodiments may be implemented in various other forms, and various omissions, substitutions, and modifications may be made without departing from the gist of the invention. These embodiments and their variations are intended to be within the scope and spirit of the invention, and are intended to be included in the invention set forth in the claims and their equivalents.

Claims

1. A magnetic disk device comprising: 1st set; 2nd set; a first head for writing data to the first disk and reading data from the first disk; a second head for writing data to the second disk and reading data from the second disk; a first actuator having the first head; a second actuator having the second head; and a controller that performs a first reordering process on a plurality of first commands stored in a first queue corresponding to the first actuator, and performs a second reordering process on a plurality of second commands stored in a second queue corresponding to the second actuator, The controller selects a lowest-cost command from a plurality of first commands stored in the first queue based on current and future operating states of the second actuator as a third command to be executed next by the first actuator, and executes the third command.

2. The magnetic disk device according to claim 1, The controller selects a lowest-cost command that can be executed earliest from among the plurality of first commands stored in the first queue as the third command based on an operation state of a write operation or a read operation of the second actuator.

3. The magnetic disk device according to claim 2, When the controller determines that the write action or read action of the second actuator will be completed in a short time, the controller selects the lowest-cost command that can be executed earliest from the timing of the completion of the write action or read action of the second actuator from the multiple first commands stored in the first queue as the third command.

4. The magnetic disk device according to claim 2, When the controller determines that the write action or the read action of the second actuator will take a long time, the controller selects the lowest-cost command that can be executed earliest under the seek condition that can be executed by a seek current that does not affect the write action or the read action of the second actuator from the multiple first commands stored in the first queue as the third command.

5. The magnetic disk device according to claim 2, When the controller determines that the write action or the read action of the second actuator is not being executed, the controller selects the lowest-cost command that can be executed earliest based on the start timing of executing the write action or the read action of the second actuator from the multiple first commands stored in the first queue as the third command.

6. The magnetic disk device according to claim 5, The controller excludes the third command from selection when the third command is affected by the seek operation of the second actuator.

7. The magnetic disk device according to claim 6, The controller excludes the third command from selection when the third command affects a write operation or a read operation of the second actuator.

8. The magnetic disk device according to claim 1, The controller selects the lowest cost command corresponding to the allowed level of mutual interference from multiple first commands stored in the first queue as the third command based on a table representing the relationship between the head seek distance and seek time, which includes information on the mutual interference between the first actuator and the second actuator.

9. A reordering method, which is applied to a magnetic disk device. The magnetic disk device comprises: a first disk; a second disk; a first head for writing data to the first disk and reading data from the first disk; a second head for writing data to the second disk and reading data from the second disk; a first actuator having the first head; a second actuator having the second head; and a controller for executing a first reordering process for a plurality of first commands stored in a first queue corresponding to the first actuator, and executing a second reordering process for a plurality of second commands stored in a second queue corresponding to the second actuator. In the reordering method, a lowest-cost command is selected from a plurality of first commands stored in the first queue based on the current and future operating states of the second actuator as a third command to be executed next by the first actuator, and the third command is executed.

Citation Information

Patent Citations

  • Formulations for small intestinal delivery

    JP2021038243A

  • Data storage device sorting execution order of commands based on a predicted future command

    US10522185B1

  • Disk drive choosing command from command queue based on a window defined by a probability of a seek miss

    US8498074B1