Magnetic disk device
The magnetic disk drive optimizes performance by segregating host and internal processing commands through dedicated control queues, ensuring swift response times and efficient resource allocation across actuator systems.
Patent Information
- Application Number
- JP2024045985
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-03-22
- Publication Date
- 2025-10-03
AI Technical Summary
Existing magnetic disk drives face challenges in maintaining high performance while efficiently handling both external commands from a host and internal processing tasks, leading to potential delays in response times.
The magnetic disk drive incorporates multiple actuator systems with dedicated control queues for each, allowing for separate management of host commands and internal processing commands, prioritizing the allocation of internal processing to the actuator system with the fewest host commands, thereby minimizing response time degradation.
This approach enhances the drive's performance by ensuring rapid processing of host commands without interference from internal tasks, maintaining high responsiveness and efficiency.
Smart Images

Figure 2025145677000001_ABST
Abstract
Description
[Technical Field]
[0001] This embodiment relates to a magnetic disk device. [Background technology]
[0002] There are known magnetic disk drives that can independently move two or more magnetic heads using two or more actuator systems, allowing simultaneous disk access using the two or more actuator systems. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] U.S. Patent Application Publication No. 2021 / 0124641 Summary of the Invention [Problem to be solved by the invention]
[0004] An object of one embodiment is to provide a high-performance magnetic disk drive. [Means for solving the problem]
[0005] According to one embodiment, a magnetic disk drive includes a magnetic disk, multiple magnetic heads, multiple actuator systems, a memory, and a controller. The multiple magnetic heads write data to and read data from the magnetic disk. The multiple actuator systems move different ones of the multiple magnetic heads relative to the magnetic disk. The memory is provided with multiple control queues, each corresponding to a different one of the multiple actuator systems. Each of the multiple control queues is configured to be able to store one or more commands. The controller receives multiple first commands from a host and stores each of the multiple first commands in one of the multiple control queues. The controller also generates a second command for internal processing and stores the second command in a first control queue, which is a control queue with the fewest commands stored among the multiple control queues. The controller also processes, for each of the multiple control queues, one or more commands stored in one of the multiple control queues using the actuator system corresponding to the one control queue. [Brief explanation of the drawings]
[0006] [Figure 1] FIG. 1 is a diagram illustrating an example of the configuration of a magnetic disk device according to the first embodiment. [Figure 2] FIG. 2 is a diagram illustrating an example of a configuration for processing commands in the magnetic disk device according to the first embodiment. [Figure 3] FIG. 3 is a flowchart illustrating an example of an operation for creating a LUN according to the first embodiment. [Figure 4] FIG. 4 is a flowchart illustrating an example of an operation when a host command is received according to the first embodiment. [Figure 5] FIG. 5 is a flowchart illustrating an example of an operation when an internal processing command is generated according to the first embodiment. [Figure 6]FIG. 6 is a flowchart illustrating an example of an operation for processing commands stored in the command buffer according to the first embodiment. [Figure 7] FIG. 7 is a flowchart illustrating an example of an operation for processing commands in each receive queue according to the first embodiment. [Figure 8] FIG. 8 is a diagram illustrating an example of a configuration for processing commands in a magnetic disk device according to the second embodiment. [Figure 9] FIG. 9 is a flowchart showing an example of an operation for creating a LUN according to the second embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0007] The magnetic disk drive according to the embodiment will be described in detail below with reference to the accompanying drawings, but the present invention is not limited to these embodiments.
[0008] (First embodiment) 1 is a diagram showing an example of the configuration of a magnetic disk device 1 according to the first embodiment. The magnetic disk device 1 is connectable to a host 2. The standard of the communication path between the magnetic disk device 1 and the host 2 is not limited to a specific standard. As an example, SAS (Serial Attached SCSI) may be adopted.
[0009] The host 2 is, for example, a processor, a personal computer, or a server. The magnetic disk device 1 can receive access commands from the host 2. The access commands are commands that request operations involving access to the magnetic disk 10, and specifically include read commands and write commands. The magnetic disk device 1 can also receive mode select commands and inquiry commands from the host 2. The mode select commands are commands for setting various operations of the magnetic disk device 1, such as enabling / disabling the cache and setting the number of retries when an error occurs. The inquiry command is a command that requests information about the magnetic disk device 1, such as a vendor ID or product ID.
[0010] As will be described in detail later, the magnetic disk device 1 may include a plurality of logical units. A command from the host 2 may include a LUN (Logical Unit Number), which is an identification number indicating the target logical unit.
[0011] The magnetic disk device 1 includes a spindle motor (SPM) 11 and a plurality of magnetic disks 10 that rotate around a rotation axis 12 of the spindle motor 11. As an example, in the magnetic disk device 1, six magnetic disks 10a-1, 10a-2, 10a-3, 10b-1, 10b-2, and 10b-3 are rotated integrally by an SPM 310.
[0012] Recording surfaces on which data can be recorded are formed on the front and back surfaces of the six magnetic disks 10. In other words, the six magnetic disks 10 have 12 recording surfaces. To access each of the 12 recording surfaces, the magnetic disk device 1 is equipped with 12 magnetic heads HD1a to HD6a and HD1b to HD6b corresponding to the 12 recording surfaces.
[0013] As an example, the side opposite to the spindle motor 11 is referred to as the front side, and the side facing the spindle motor 11 is referred to as the back side. However, the definitions of the front side and the back side are not limited to these.
[0014] The magnetic head HD1a is provided to face the front surface of the magnetic disk 10a-1. The magnetic head HD2a is provided to face the back surface of the magnetic disk 10a-1. The magnetic head HD3a is provided to face the front surface of the magnetic disk 10a-2. The magnetic head HD4a is provided to face the back surface of the magnetic disk 10a-2. The magnetic head HD5a is provided to face the front surface of the magnetic disk 10a-3. The magnetic head HD6a is provided to face the back surface of the magnetic disk 10a-3.
[0015] The magnetic head HD1b is provided to face the front surface of the magnetic disk 10b-1. The magnetic head HD2b is provided to face the back surface of the magnetic disk 10b-1. The magnetic head HD3b is provided to face the front surface of the magnetic disk 10b-2. The magnetic head HD4b is provided to face the back surface of the magnetic disk 10b-2. The magnetic head HD5b is provided to face the front surface of the magnetic disk 10b-3. The magnetic head HD6b is provided to face the back surface of the magnetic disk 10b-3.
[0016] Hereinafter, the 12 magnetic heads HD1a to HD6a and HD1b to HD6b may be collectively referred to as magnetic heads HD. Each magnetic head HD accesses the recording surfaces of the six magnetic disks 10 facing it, that is, writes and reads data. That is, magnetic heads HD1a to HD6a access the recording surfaces of magnetic disks 10a-1, 10a-2, and 10a-3. Magnetic heads HD1b to HD6b access the recording surfaces of magnetic disks 10b-1, 10b-2, and 10b-3.
[0017] The magnetic disk drive 1 includes two actuator systems 20a and 20b that can be driven independently. The first actuator system 20a includes four actuator arms 21a, six suspensions 22a, and a voice coil motor (VCM) 23a. Each of the six suspensions 22a supports one of the magnetic heads HD1a to HD6a. Each of the six suspensions 22a is attached to the tip of one of the four actuator arms 21a.
[0018] The second actuator system 20b includes four actuator arms 21b, six suspensions 22b, and a voice coil motor (VCM) 23b. Each of the six suspensions 22b supports one of the magnetic heads HD1b to HD6b. Each of the six suspensions 22b is attached to the tip of one of the four actuator arms 21b.
[0019] The two actuator systems 20a, 20b can rotate around a rotation axis 24. The rotation axis 24 is provided parallel to and spaced apart from the rotation axis 12. The voice coil motor 23a can rotate the first actuator system 20a within a predetermined range around the rotation axis 24. The voice coil motor 23b rotates the second actuator system 20b within a predetermined range around the rotation axis 24. Thus, the first actuator system 20a moves the magnetic heads HD1a to HD6a radially relative to the recording surfaces of the magnetic disks 10a-1 to 10a-3. The second actuator system 20b moves the magnetic heads HD1b to HD6b radially relative to the recording surfaces of the magnetic disks 10b-1 to 10b-3.
[0020] The magnetic disk device 1 further includes a servo controller 31, a head amplifier 32, a nonvolatile memory 33, a volatile memory 34, a processor 35, a read / write channel (RWC) 36, and a hard disk controller (HDC) 37.
[0021] The head amplifier 32 supplies a signal corresponding to the data input from the read / write channel 36 to the magnetic head HD facing the write-destination recording surface. The head amplifier 32 also amplifies the signal output from the magnetic head HD facing the read-source recording surface and supplies it to the read / write channel 36.
[0022] The nonvolatile memory 33 is configured by a nonvolatile memory such as a flash memory, etc. In the nonvolatile memory 33, a program executed by the processor 35 is recorded.
[0023] The volatile memory 34 is configured by a volatile memory such as a dynamic random access memory (DRAM) or a static random access memory (SRAM). The volatile memory 34 functions as a buffer memory area, a cache memory area, an area into which programs are loaded, and the like.
[0024] The read / write channel 36 modulates data stored in a buffer memory area (for example, the volatile memory 34) and outputs the modulated data to the head amplifier 32. The read / write channel 36 also demodulates the signal supplied from the head amplifier 32 and outputs the demodulated signal to the hard disk controller 37.
[0025] The hard disk controller 37 is a communication interface that enables communication with the host 2. Specifically, when the hard disk controller 37 receives a write command from the host 2, the hard disk controller 37 writes data requested to be written by the write command to a buffer memory area. Furthermore, when the hard disk controller 37 receives a read command from the host 2, the hard disk controller 37 transmits data requested to be read by the read command to the host 2 via the buffer memory area.
[0026] The servo controller 31 supplies power to the spindle motor 11, which rotates the 12 magnetic disks 10 integrally at a predetermined speed. Furthermore, the servo controller 31 drives the voice coil motor 23a and the voice coil motor 23b to move the magnetic head HD to the access position (i.e., the write destination track or the read source track) instructed by the processor 35.
[0027] The processor 35 is, for example, a CPU (Central Processing Unit). The processor 35 executes various processes according to programs stored in a nonvolatile storage medium such as the nonvolatile memory 33 or the magnetic disk 10.
[0028] For example, the processor 35 controls the writing and reading of data by the magnetic head HD, determines the access position on the recording surface of the magnetic disk 10, commands the servo controller 31 to determine the access position, and performs internal processing.
[0029] The internal processing includes a process of writing a log to the magnetic disk 10, health monitoring, and the like. For example, the log includes measured values of the power supply voltage, measured temperatures, and whether vibrations are detected or not, and is written to the magnetic disk 10. The log is written periodically or when an abnormality is detected. The health monitoring is performed periodically or in response to a predetermined operation such as the startup of the magnetic disk device 1. In other words, the timing of the execution of the internal processing is not limited to a specific timing.
[0030] The servo controller 31, the head amplifier 32, the nonvolatile memory 33, the volatile memory 34, the processor 35, the read / write channel 36, and the hard disk controller 37 constitute the controller 30 according to the embodiment. However, the components of the controller 30 are not limited to these.
[0031] Some or all of the functions of the processor 35 may be realized by other components in the controller 30 (e.g., the servo controller 31, the head amplifier 32, the read / write channel 36, or the hard disk controller 37). Also, some or all of the functions of the processor 35 may be realized by a hardware circuit such as an FPGA (Field-Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit).
[0032] With regard to the response speed of access commands from the perspective of the host 2, it is desirable to respond as quickly as possible to access commands from the host 2. Furthermore, in recent years, there are also cases where it is desirable to process as quickly as possible a large number of commands from the host 2, including commands other than access commands such as mode select commands or inquiry commands, in addition to access commands.
[0033] Therefore, in the first embodiment, when the need arises to execute an internal process, the controller 30 allocates the internal process to one of the two actuator systems 20 that has received a smaller number of commands to be executed from the host 2. This prevents a decrease in the response speed of commands from the host 2 due to the internal process.
[0034] Hereinafter, a command received from the host 2 will be referred to as a host command. A command related to internal processing will be referred to as an internal processing command. An internal processing command is issued by the controller 30 itself.
[0035] 1, the magnetic disk device 1 includes two actuator systems 20. The magnetic disk device 1 may include three or more actuator systems 20. In other words, the magnetic disk device 1 may include multiple actuator systems 20, each of which moves a different portion of the multiple magnetic heads HD.
[0036] 2 is a diagram illustrating an example of a configuration for processing commands in the magnetic disk device 1 according to the first embodiment. In this diagram, the magnetic disk device 1 is shown to have two ports P0 and P1, but the number of ports provided in the magnetic disk device 1 is not limited to two.
[0037] The controller 30 can set multiple logical units in the magnetic disk device 1. The multiple logical units are regarded as separate devices by the host 2. By the controller 30 setting multiple logical units, the host 2 can treat the magnetic disk device 1 as multiple magnetic disk devices.
[0038] The controller 30 assigns an LUN as an identification number to each of the multiple logical units. Here, the controller 30 sets four logical units and assigns identification numbers LUN0 to LUN3 to the four logical units. Hereinafter, a logical unit that has been assigned an identification number LUNx (x is numerical information) will be simply referred to as LUNx. Furthermore, a logical unit will be simply referred to as LUN.
[0039] When providing multiple LUNs to the host 2, the controller 30 distributes and assigns each of the multiple LUNs to multiple actuator systems 20. In this example, the controller 30 provides LUN0 and LUN1 to the host 2. The controller 30 then assigns LUN0 to the first actuator system 20a and LUN1 to the second actuator system 20b. That is, when the controller 30 receives an access command targeting LUN0, it accesses the recording surfaces of the magnetic disks 10a-1 to 10a-3 using the first actuator system 20a in response to the access command. When the controller 30 receives an access command targeting LUN1, it accesses the recording surfaces of the magnetic disks 10b-1 to 10b-3 using the second actuator system 20b in response to the access command.
[0040] The controller 30 further assigns a LUN for internal processing to each of the multiple actuator systems 20. Here, the controller 30 creates LUN2 and LUN3 as LUNs for internal processing, and assigns LUN2 to the first actuator system 20a and LUN3 to the second actuator system 20b. This allows the controller 30 to execute internal processing using either the first actuator system 20a or the second actuator system 20b.
[0041] The magnetic disk device 1 includes various memory areas for storing commands. Specifically, the magnetic disk device 1 includes a command buffer CB and two queue groups 40. One of the two queue groups 40 is a queue group 40a for the first actuator system 20a, and the other is a queue group 40b for the second actuator system 20b. Each queue group 40 includes a receive queue RX, one command control queue CMD, and one execution queue ACTExe, which are provided for each LUN assigned to the corresponding actuator system 20. These memory areas are provided, for example, in the volatile memory 34. Note that some or all of these memory areas do not necessarily have to be provided in the volatile memory 34.
[0042] The controller 30 first stores host commands input to ports P0 and P1 in a command buffer CB. The controller 30 transfers the host commands stored in the command buffer CB to a receive queue RX that corresponds to the target LUN out of LUN0 and LUN1.
[0043] Furthermore, when the need to execute internal processing arises, the controller 30 generates an internal processing command. Then, the controller 30 stores the internal processing command in the command buffer CB. The controller 30 sets the target of the internal processing command to either LUN2 or LUN3. More specifically, the controller 30 identifies the actuator system 20 of the first actuator system 20a or the second actuator system 20b that has the smallest number of commands stored in the command control queue CMD. Then, the controller 30 sets the LUN of LUN2 or LUN3 that corresponds to the identified actuator system 20 as the target of the internal processing command.
[0044] The controller 30 transfers the internal processing command stored in the command buffer CB to the receive queue RX that corresponds to the target LUN out of LUN2 and LUN3.
[0045] The controller 30 does not necessarily have to store the internal processing command in the command buffer CB. The controller 30 may store the internal processing command directly in the receive queue RX that corresponds to the target LUN of LUN2 or LUN3.
[0046] If a command (i.e., a host command) is stored in the receive queue RX0, the controller 30 transfers the command to the command control queue CMD0. If a command (i.e., a host command) is stored in the receive queue RX1, the controller 30 transfers the command to the command control queue CMD1. If a command (i.e., an internal processing command) is stored in the receive queue RX2, the controller 30 transfers the command to the command control queue CMD0. If a command (i.e., an internal processing command) is stored in the receive queue RX3, the controller 30 transfers the command to the command control queue CMD1.
[0047] If one or more commands are stored in the command control queue CMD0, the controller 30 copies the one or more commands to the execution queue ACTExe0. When copying one or more commands from the command control queue CMD0 to the execution queue ACTExe0, the controller 30 performs command reordering control. Command reordering control is an operation that determines the execution order of multiple commands so as to minimize the time required to execute the multiple commands. When execution of a command in the execution queue ACTExe0 is completed, the controller 30 deletes the original and copy of that command from the execution queue ACTExe0 and the command control queue CMD0.
[0048] If one or more commands are stored in the command control queue CMD1, the controller 30 copies the one or more commands to the execution queue ACTExe1. When copying one or more commands from the command control queue CMD1 to the execution queue ACTExe1, the controller 30 performs command reordering control. When execution of a command in the execution queue ACTExe1 is completed, the controller 30 deletes the original and copy of that command from the execution queue ACTExe1 and the command control queue CMD1.
[0049] The command control queue CMD and the execution queue ACTExe are an example of a control queue provided for each actuator system 20. When the command control queue CMD is provided in the volatile memory 34, the volatile memory 34 is an example of a memory.
[0050] Next, the operation of the magnetic disk device 1 according to the first embodiment will be described.
[0051] FIG. 3 is a flowchart illustrating an example of an operation for creating a LUN according to the first embodiment.
[0052] By using a predetermined command, the host 2 can specify the number of LUNs (represented as Nhs) to be provided to the host 2. The controller 30 determines whether or not the number of LUNs Nhs has been specified by the host 2 using that command (S101).
[0053] If the number of LUNs Nhs is not specified (S101: No), the controller 30 sets a preset initial value Nini as Nhs (S102).
[0054] If the number Nhs of LUNs is specified (S101: Yes), or after S102, the controller 30 sets Nhs LUNs for the host 2 (S103). In S103, the controller 30 generates Nhs LUNs for the host 2. Then, the controller 30 associates each of the Nhs LUNs for the host 2 with one of the actuator systems 20 so that the Nhs LUNs for the host 2 are distributed among the multiple actuator systems 20.
[0055] Furthermore, the controller 30 sets a LUN for internal processing for each actuator system 20 (S104).
[0056] The controller 30 generates a receive queue RX for each LUN (S105), and the operation of generating the LUN is then completed.
[0057] For example, if Nhs is "2" and the number of actuator systems 20 is two, then in S103 the controller 30 creates LUN0 and LUN1 as LUNs for the host 2. The controller 30 then associates LUN0 with the first actuator system 20a and LUN1 with the second actuator system 20b. In S104, the controller 30 creates LUN2 and LUN3 as LUNs for internal processing. The controller 30 then associates LUN2 with the first actuator system 20a and LUN3 with the second actuator system 20b. In S105, the controller 30 creates receive queues RX0 to RX3 corresponding to LUN0 to LUN3.
[0058] FIG. 4 is a flowchart illustrating an example of an operation when a host command is received according to the first embodiment.
[0059] The controller 30 determines whether or not a command (that is, a host command) has been received from the host 2 (S201). If a host command has not been received (S201: No), the controller 30 executes the processing of S201 again.
[0060] If a host command is received (S201: Yes), the controller 30 stores the received host command in the command buffer CB (S202), and then the control transitions to S201.
[0061] The controller 30 can execute the loop process of S201 to S202 multiple times. That is, the controller 30 can receive multiple host commands. Note that a host command is an example of a first command.
[0062] FIG. 5 is a flowchart illustrating an example of an operation when an internal processing command is generated according to the first embodiment.
[0063] The controller 30 determines whether the timing for executing the internal process has arrived (S301). As described above, the timing for executing the internal process is not limited to a specific timing. If the timing for executing the internal process has not arrived (S301: No), the controller 30 executes the process of S301 again.
[0064] When the timing for executing internal processing arrives (S301: Yes), the controller 30 identifies the actuator system 20 with the smallest number of commands stored in the command control queue CMD (S302). The controller 30 generates an internal processing command targeted at the internal processing LUN associated with the identified actuator system 20 (S303). Next, the controller 30 stores the generated internal processing command in the command buffer CB (S304). Then, control returns to S301.
[0065] The internal processing command is an example of a second command.
[0066] FIG. 6 is a flowchart showing an example of an operation for processing commands stored in the command buffer CB according to the first embodiment.
[0067] The controller 30 determines whether or not a command is stored in the command buffer CB (S401). If a command is stored in the command buffer CB, the command is either a host command stored in the command buffer CB by the processing of S202 in Fig. 4, or an internal processing command stored in the command buffer CB by the processing of S304 in Fig. 5.
[0068] If a command is not stored in the command buffer CB (S401: No), the controller 30 executes the process of S401 again. If a command is stored in the command buffer CB (S401: Yes), the controller 30 transfers the command stored in the command buffer CB to the receive queue RX corresponding to the target LUN (S402). Then, control transitions to S401.
[0069] FIG. 7 is a flowchart showing an example of an operation for processing commands in each receive queue RX according to the first embodiment.
[0070] The controller 30 determines whether or not there is a receiving queue RX in which a command is stored (S501). If there is no receiving queue RX in which a command is stored (S501: No), the controller 30 executes the process of S501 again.
[0071] If there is a receive queue RX in which a command is stored (S501: Yes), the controller 30 transfers the command in the receive queue RX to the command control queue CMD (S502).Then, the controller 30 copies the command in the command control queue CMD to the execution queue ACTExe while performing reordering control (S503).Then, control returns to S501.
[0072] The controller 30 sequentially processes one or more commands stored in the execution queue ACTExe using the corresponding actuator systems 20.
[0073] In the above description, one LUN for internal processing is set for each actuator system 20. There may be an actuator system 20 in which two or more LUNs for internal processing are set. It is sufficient that at least one LUN for internal processing is set for each actuator system 20.
[0074] Furthermore, if the number Nhs of LUNs specified by the host 2 is smaller than the number of actuator systems 20 provided in the magnetic disk device 1, one LUN for the host 2 may be assigned to two or more actuator systems 20.
[0075] As described above, according to the first embodiment, the controller 30 assigns one or more LUNs for the host 2 to the multiple actuator systems 20. The controller 30 also assigns an internal processing LUN to each of the multiple actuator systems 20. The controller 30 then generates a receive queue RX in the volatile memory 34 for each LUN. When the controller 30 receives a host command, it transfers the host command to one of the command control queues CMD provided for each actuator system 20 via the receive queue RX corresponding to the target LUN. When the controller 30 generates an internal processing command, it identifies the actuator system 20 corresponding to the command control queue CMD with the smallest number of commands stored therein. The controller 30 then sets the internal processing LUN assigned to the identified actuator system 20 as the target, and transfers the internal processing command to one command control queue CMD via the receive queue RX corresponding to the target LUN. The controller 30 processes the commands stored in each command control queue CMD using the corresponding actuator system 20.
[0076] Therefore, when the need arises to execute internal processing, it is possible to execute the internal processing using one of the multiple actuator systems 20 that has received a small number of commands to be executed from the host 2. This prevents a decrease in the response speed of commands from the host 2 due to internal processing. In other words, it is possible to provide a magnetic disk device 1 with high performance.
[0077] In the above example, each command was transferred to one of the command control queues CMD via the command buffer CB and one of the receive queues RX. The procedure by which the controller 30 stores each command in one of the command control queues CMD is not necessarily limited to the procedure via these memory areas. At the very least, the controller 30 stores each of the multiple host commands it receives in one of the command control queues CMD, and stores the internal processing command in the command control queue CMD with the smallest number of commands stored. This makes it possible to prevent a decrease in the response speed of commands from the host 2 due to internal processing.
[0078] In the above example, the internal processing includes writing a log to the magnetic disk 10 or health monitoring. In addition to or instead of these, the internal processing may include any other processing.
[0079] (Second embodiment) The multiple actuator systems 20 may include an actuator system 20 that cannot be used for disk access in response to an access command from the host 2. For example, when the performance of one actuator system 20 does not meet a predetermined level, that one actuator system 20 and the corresponding recording surface of the magnetic disk 10 are set to be unusable for disk access in response to an access command from the host 2. Such an actuator system 20 that is set to be unusable for disk access in response to an access command from the host 2 (hereinafter, an unsuitable actuator system) can be used as an actuator system 20 dedicated to internal processing.
[0080] Hereinafter, the magnetic disk device according to the second embodiment will be referred to as magnetic disk device 1a, and the magnetic disk device 1a will be described. Note that here, differences from the first embodiment will be described. Explanations of the same matters as in the first embodiment will be omitted or will be explained briefly.
[0081] 8 is a diagram showing an example of a configuration for processing commands in the magnetic disk device 1a according to the second embodiment. Here, of the first actuator system 20a and the second actuator system 20b, the second actuator system 20b is assumed to be an inappropriate actuator system.
[0082] As in the first embodiment, the controller 30 creates a plurality of LUNs in the magnetic disk device 1. When one or more LUNs are specified by the host 2, the controller 30 creates the specified one or more LUNs and assigns them to actuator systems 20 other than the inappropriate actuator system among the plurality of actuator systems 20. The controller 30 also creates a LUN for internal processing corresponding to the inappropriate actuator system and assigns the LUN for internal processing to the inappropriate actuator system. The controller 30 then creates a receive queue RX corresponding to each LUN.
[0083] 8, the controller 30 creates LUN0 and LUN1 for the host 2 and assigns them to the first actuator system 20a. The controller 30 creates LUN2, which is a LUN for internal processing, and assigns it to the second actuator system 20b, which is an inappropriate actuator system. The controller 30 then creates a receive queue RX0 corresponding to LUN0, a receive queue RX1 corresponding to LUN1, and a receive queue RX2 corresponding to LUN2.
[0084] FIG. 9 is a flowchart showing an example of an operation for creating a LUN according to the second embodiment.
[0085] The controller 30 executes the processes of S101 to S103 in the same manner as in the first embodiment. After that, the controller 30 determines whether or not there is a defective actuator system (S601).
[0086] For example, before shipping, a test is conducted on the multiple actuator systems 20 included in the magnetic disk device 1 to confirm whether the performance of each actuator system 20 meets a standard. An actuator system 20 whose performance does not meet the standard is recorded as an unsuitable actuator system, for example, in non-volatile memory 33. The controller 30 determines whether or not there is an unsuitable actuator system by referring to such a record. Note that the method for determining whether or not there is an unsuitable actuator system is not limited to this.
[0087] If there is an inappropriate actuator system (S601: Yes), the controller 30 sets an internal processing LUN corresponding to the inappropriate actuator system (S602).
[0088] If there is no unsuitable actuator system (S601: No), the controller 30 sets an internal processing LUN for each actuator system 20 (S104).
[0089] After S602 or S104, the controller 30 generates a receive queue RX for each LUN (S105), and the operation of generating the LUN is then completed.
[0090] As described above, if there is an inappropriate actuator system, the inappropriate actuator system may be used exclusively for internal processing commands, and an actuator system 20 that is not the inappropriate actuator system may be used for the host 2. For internal processing, an actuator system 20 exclusive to the actuator system 20 for the host 2 is used, thereby preventing a decrease in the response speed of commands from the host 2 due to internal processing. In other words, it is possible to provide a magnetic disk device 1 with high performance.
[0091] Although several embodiments of the present invention have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These novel embodiments can be embodied in various other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their modifications are included within the scope and spirit of the invention, and are also included in the scope of the invention and its equivalents as defined in the claims. [Explanation of symbols]
[0092] 1, 1a magnetic disk device, 2 host, 10, 10a-1, 10a-2, 10a-3, 10b-1, 10b-2, 10b-3 magnetic disk, 11 spindle motor, 12 rotating shaft, 20, 20a, 20b actuator system, 21a, 21b actuator arm, 22a, 22b suspension, 23a, 23b voice coil motor, 24 rotating shaft, 30 controller, 31 servo controller, 32 head amplifier, 33 non-volatile memory, 34 volatile memory, 35 processor, 36 read / write channel, 37 hard disk controller, 40, 40a, 40b queue group, ACTExe, ACTExe0, ACTExe1 execution queue, CB command buffer, CMD, CMD0, CMD1 command control queue, HD, HD1a to HD6a, HD1b to HD6b magnetic head, P0, P1 Port, RX,RX0~RX3 receive queue.
Claims
1. A magnetic disk, a plurality of magnetic heads for writing and reading data to and from the magnetic disk; a plurality of actuator systems that move different magnetic heads of the plurality of magnetic heads relative to the magnetic disk; a memory provided with a plurality of control queues, each corresponding to a different one of the plurality of actuator systems, each of the plurality of control queues configured to be able to store one or more commands; receiving a plurality of first commands from a host; storing each of the plurality of first commands in one of the plurality of control queues; generating a second command for internal processing; storing the second command in a first control queue, which is a control queue having the smallest number of commands stored therein, among the plurality of control queues; executing, for each of the plurality of control queues, processing one or more commands stored in one of the plurality of control queues using an actuator system corresponding to the one control queue; and a controller that runs A magnetic disk device comprising:
2. The controller assigning one or more first LUNs (Logical Unit Numbers) for the host to the plurality of actuator systems; assigning different second LUNs from among a plurality of second LUNs to each of the plurality of actuator systems; generating a receiving queue for each of a plurality of third LUNs including the one or more first LUNs and the plurality of second LUNs; storing each of the plurality of first commands in one of the plurality of control queues via a receive queue corresponding to a target first LUN among the one or more first LUNs; generating the second command targeted at a fourth LUN, which is a second LUN assigned to an actuator system corresponding to the first control queue among the plurality of second LUNs; Transferring the second command to the first control queue via a receive queue corresponding to the fourth LUN; Further implementation of 2. The magnetic disk drive according to claim 1.
3. The internal processing includes writing a log to the magnetic disk or health monitoring.
3. The magnetic disk drive according to claim 1.
Citation Information
Patent Citations
Apparatus and method for incorporating multi-actuator hard disk drives into traditional raid arrays
US20210124641A1