The present application is related to commonly owned, co-pending patent application Ser. No. 11/111,411 entitled “DISK DRIVE ADJUSTING OPERATING MODE BASED ON HISTORICAL PROXIMITY OF HOST COMMANDS” the disclosure of which is incorporated herein by reference.
1. Field
The present invention relates to disk drives for computer systems. In particular, the present invention relates to a disk drive adjusting predictive caching based on the temperature of the voice coil motor.
2. Description of the Related Art
Disk drives comprise a disk and a head connected to a distal end of an actuator arm which is rotated about a pivot by a voice coil motor (VCM) to position the head radially over the disk. The disk typically comprises a number of concentric data tracks each partitioned into a number of data sectors. Access operations are performed by seeking the head to a target data track, and performing a write/read operation on the data sectors within the data track.
In order to avoid the mechanical latency associated with seeking the head to a target track, prior art disk drives typically implement “predictive caching” wherein a number of data sectors proximate the data sectors of a read command are cached, such as data sectors preceding the read command (pre-read data sectors) and/or data sectors following the read command (post-read data sectors). In this manner, if a subsequent read command received from a host requests the data sectors that are already cached, the data sectors can be read immediately from the cache memory thereby avoiding the mechanical latency of the seek operation.
Prior art disk drives also typically implement a rotational position optimization (RPO) algorithm for selecting from a command queue the next access command to execute in an order that minimizes rotational latency. That is, the commands in the command queue are evaluated to determine the amount of seek latency required to seek the head to the target track, as well as the rotational latency for the head to reach the first target data sector. When predictive caching is enabled, and a read command selected from the command queue has additional rotational latency beyond that required to perform the seek, the additional rotational latency is used to cache additional data sectors (pre-read and/or post-read data sectors).
The prior art has also suggested to adjust the seek times to prevent the VCM from overheating, which may cause the material molded over the voice coil to delaminate, lose its rigidity, and/or outgas particles that may contaminate the disk. Overheating the VCM may also degrade the strength of the fixed magnets that interact with the magnetic flux generated by the voice coil. As the temperature of the VCM rises, and the seek times are lengthened, the RPO algorithm is modified accordingly. The prior art teaches to adjust the seek times so that the VCM temperature remains just under a predetermined threshold, that is, to minimize the seek time relative to temperature. However, operating the VCM near its temperature threshold may degrade performance since it may preclude the RPO algorithm from selecting the most optimal access command from the command queue (i.e., the nearest access command but for the VCM temperature being too high), or selecting a command from the command queue that requires an additional revolution of latency due to missing the first target data sector (because the VCM temperature is too high).
There is, therefore, a need to compensate for VCM temperature in a disk drive so as to improve overall performance.
An embodiment of the present invention comprises a disk drive including a disk having a plurality of tracks, wherein each track comprises a plurality of data sectors. The disk drive further comprises a head coupled to a distal end of an actuator arm, and a voice coil motor (VCM) comprising a voice coil for rotating the actuator arm about a pivot. A read command is selected from a command queue, wherein the read command comprises a requested data sector. A maximum number of additional data sectors is determined that may be cached together with the requested data sector. An actual number of additional data sectors to cache is selected in response to the maximum number and a temperature of the voice coil.
In one embodiment, the disk drive is configured into a predictive caching mode to cache additional data sectors associated with read commands.
In another embodiment, the head seeks to a target track of the selected read command according to a seek profile determined in response to the selected additional data sectors.
In one embodiment, the additional data sectors comprise post-read data sectors associated with a previous read command, and in another embodiment, the additional data sectors comprise pre-read data sectors associated with the selected read command.
In yet another embodiment, the selected number of additional data sectors is incrementally less than the maximum number as the voice coil temperature increases, and in one embodiment, the selected number of additional data sectors is zero when the voice coil temperature exceeds a threshold.
In still another embodiment, the additional data sectors are selected to cache in response to the maximum number, the temperature of the voice coil, and a seek length associated with the selected read command.
In another embodiment, each track comprises a plurality of servo sectors, and the maximum number of additional data sectors that may be cached is determined relative to the servo sectors.
Another embodiment of the present invention comprises a method of operating a disk drive, the disk drive comprising a disk having a plurality of tracks, wherein each track comprises a plurality of data sectors. The disk drive further comprises a head coupled to a distal end of an actuator arm, and a voice coil motor (VCM) comprising a voice coil for rotating the actuator arm about a pivot. A read command is selected from a command queue, wherein the read command comprises a requested data sector. A maximum number of additional data sectors is determined that may be cached together with the requested data sector. An actual number of additional data sectors to cache is selected in response to the maximum number and a temperature of the voice coil.
In the embodiment of
In one embodiment, the control circuitry 12 configures the disk drive into a predictive caching mode to cache additional data sectors associated with read commands. For example, in one embodiment the control circuitry 12 evaluates the historical proximity of host commands to determine whether caching additional data sectors will improve performance of the disk drive, or if caching should be disabled to save power and reduce VCM heating. More details of this embodiment are disclosed in the above-referenced co-pending patent application entitled “DISK DRIVE ADJUSTING OPERATING MODE BASED ON HISTORICAL PROXIMITY OF HOST COMMANDS”.
The voice coil temperature may be measured in any suitable manner, such as a direct measurement using a suitable temperature sensor (e.g., a suitable thermistor). In other embodiments, the voice coil temperature may be measured indirectly, for example, by evaluating the amount of current applied to the voice coil, or by measuring certain performance characteristics of the VCM 10 as in the embodiments disclosed in U.S. Pat. No. 6,369,972 the disclosure of which is incorporated herein by reference.
The maximum number of cacheable data sectors as well as the selected number of data sectors to cache for a read command may be determined in any suitable manner. In one embodiment, the maximum number of cacheable data sectors is determined relative to a number of servo sectors that will pass under the head during the rotational latency of a seek operation. The actual number of data sectors selected for caching is then selected relative to the maximum number of servo sectors. For example, if a seek operation is performed according to an aggressive seek profile (
As will be appreciated by one of ordinary skill in the art, the steps outlined in
Any suitable control circuitry 12 may be employed in the embodiments of the present invention, such as any suitable integrated circuit or circuits. For example, the control circuitry 12 may be implemented within a read channel integrated circuit, or in a component separate from the read channel, such as a disk controller, or certain steps described above may be performed by a read channel and others by a disk controller. In one embodiment, the read channel and disk controller are implemented as separate integrated circuits, and in an alternative embodiment they are fabricated into a single integrated circuit or a system on a chip (SOC). In addition, the control circuitry may include a suitable preamp circuit implemented as a separate integrated circuit, integrated into the read channel or disk controller circuit, or integrated into an SOC.
In one embodiment, the control circuitry 12 comprises a microprocessor executing instructions, the instructions being operable to cause the microprocessor to perform the steps of the flow diagrams described herein. The instructions may be stored in any computer-readable medium. In one embodiment, they may be stored on a non-volatile semiconductor memory external to the microprocessor, or integrated with the microprocessor in an SOC. In another embodiment, the instructions are stored on the disk 2 and read into a volatile semiconductor memory when the disk drive is powered on. In yet another embodiment, the control circuitry 12 comprises suitable logic circuitry, such as state machine circuitry.
Number | Name | Date | Kind |
---|---|---|---|
4249172 | Watkins et al. | Feb 1981 | A |
5119250 | Green et al. | Jun 1992 | A |
5146578 | Zangenehpour | Sep 1992 | A |
5182684 | Thomas et al. | Jan 1993 | A |
5268804 | Wallis | Dec 1993 | A |
5594603 | Mori et al. | Jan 1997 | A |
5657179 | McKenzie | Aug 1997 | A |
5793558 | Codilian et al. | Aug 1998 | A |
5966726 | Sokolov | Oct 1999 | A |
6038096 | Zhang et al. | Mar 2000 | A |
6115205 | Waugh et al. | Sep 2000 | A |
6163430 | Hansen | Dec 2000 | A |
6195222 | Heminger et al. | Feb 2001 | B1 |
6310743 | Haines et al. | Oct 2001 | B1 |
6339811 | Gaertner et al. | Jan 2002 | B1 |
6342985 | Clare et al. | Jan 2002 | B1 |
6369972 | Codilian et al. | Apr 2002 | B1 |
6418510 | Lamberts | Jul 2002 | B1 |
6445531 | Gaertner et al. | Sep 2002 | B1 |
6604178 | Hall | Aug 2003 | B1 |
6731450 | Codilian et al. | May 2004 | B1 |
6744590 | Chu et al. | Jun 2004 | B2 |
6754035 | Francis et al. | Jun 2004 | B2 |
6754036 | Dehnert | Jun 2004 | B2 |
6757481 | Nazarian et al. | Jun 2004 | B1 |
6775100 | Belser et al. | Aug 2004 | B1 |
6809896 | Espeseth et al. | Oct 2004 | B2 |
6826630 | Olds et al. | Nov 2004 | B2 |
6877070 | Espeseth et al. | Apr 2005 | B2 |
6925539 | Mowery et al. | Aug 2005 | B2 |
6967811 | Codilian et al. | Nov 2005 | B1 |
6968423 | Coker et al. | Nov 2005 | B2 |
6987639 | Yu | Jan 2006 | B1 |
6993624 | Hall | Jan 2006 | B2 |
6995946 | Ding et al. | Feb 2006 | B2 |
7061714 | Yu | Jun 2006 | B1 |
7076604 | Thelin | Jul 2006 | B1 |
7088545 | Singh et al. | Aug 2006 | B1 |
7114029 | Thelin | Sep 2006 | B1 |
20020131195 | Dehnert | Sep 2002 | A1 |
20030048571 | Soyama et al. | Mar 2003 | A1 |
20030149837 | Coker et al. | Aug 2003 | A1 |
20030149838 | Mowery et al. | Aug 2003 | A1 |
20040233569 | Chung | Nov 2004 | A1 |
20050086559 | Uysal et al. | Apr 2005 | A1 |
20060007591 | Park et al. | Jan 2006 | A1 |