Disk drives comprise a disk and a head connected to a distal end of an actuator arm which is rotated about a pivot by a voice coil motor (VCM) to position the head radially over the disk. The disk comprises a plurality of radially spaced, concentric tracks for recording user data sectors and servo sectors. The servo sectors comprise head positioning information (e.g., a track address) which is read by the head and processed by a servo control system to control the velocity of the actuator arm as it seeks from track to track.
Each servo sector 4i comprises a preamble 8 for storing a periodic pattern, which allows proper gain adjustment and timing synchronization of the read signal, and a sync mark 10 for storing a special pattern used to symbol synchronize to a servo data field 12. The servo data field 12 stores coarse head positioning information, such as a track address, used to position the head over a target data track during a seek operation. Each servo sector 4i further comprises groups of servo bursts 14 (e.g., A, B, C and D bursts), which comprise a number of consecutive transitions recorded at precise intervals and offsets with respect to a data track centerline. The groups of servo bursts 14 provide fine head position information used for centerline tracking while accessing a data track during write/read operations.
When a disk drive is installed into a host computer (e.g., a personal computer), an operating system (OS) is normally loaded onto the disk, after which the host computer may boot from the disk drive. Due to the mechanical latency of the disk drive (the seek latency of the actuator arm and the rotational latency of the disk) the boot operation may be undesirably long.
There is, therefore, a need for a disk drive which helps expedite the boot operation for a host computer.
In the embodiment of
Referring again to the flow diagram of
In another embodiment, a new log is created during each boot operation without detecting whether there is a new boot sequence. In this embodiment, when pre-fetching using the plurality of logs (step 38), data sectors identified by more than one log are pre-fetched only once. The number of logs created and maintained may be limited, for example, relative to a number of boot operations executed before the boot sequence typically changes. The number of logs maintained could be as few as two, or as many as tens, hundreds, or even thousands corresponding to as many boot operations. In one embodiment, when the number of logs is exhausted, the stalest log is overwritten.
The boot sequence may change for any suitable reason in the embodiments of the present invention. For example, the boot sequence may change if the disk drive stores multiple operating systems for the host, such as the Windows operating system and the Mac operating system, and the host may elect to boot from one or the other operating systems, for example, as configured by the user. In another embodiment, the first and second boot sequences may correspond to different modes of the same operating system, such as a high performance mode for a laptop plugged into a power supply, and a lower performance but better power conservation mode when the laptop is unplugged and operating on battery power. In yet another embodiment described below, a first boot sequence may correspond to an operating system stored by the disk drive, and a second boot sequence may correspond to a hibernate mode of the host. In one embodiment, the control circuitry 22 maintains a log for each detected boot sequence, and then during a boot operation, pre-fetches boot data using two or more of the logs into a cache. In this manner the boot data can be transmitted immediately when requested by the host, thereby avoiding the mechanical access latency of the disk drive.
In one embodiment, the control circuitry 22 pre-fetches boot data from data sectors identified by multiple logs at the beginning of a boot operation, and then pre-fetches only data sectors identified by the log that correlates with the data sectors being requested by the host. This embodiment is understood with reference to the flow diagram of
The control circuitry 22 may evaluate the correlation between the host requested data sectors and the data sectors of the logs in any suitable manner. In one embodiment, the control circuitry 22 may determine there is a correlation if a number of cache hits corresponding to one of the logs exceeds a threshold. In another embodiment, the control circuitry 22 may determine there is a correlation if the host requests a particular data sector, or a particular range of data sectors (as determined by logical block addresses (LBAs) requested by the host). For example, the range of data sectors associated with a particular operating system or hibernate mode may be predetermined, and used by the control circuitry 22 to detect the correlation.
In one embodiment, the host may enter a hibernate mode wherein the current state of the host is saved to a file of the disk drive prior to entering the hibernate mode. When the host awakens from the hibernate mode, the hibernate file is read from the disk drive in order to restore the host to its previous state rather than having to reload the operating system. In an embodiment shown in the flow diagram of
In another embodiment, the control circuitry 22 may detect that the host was previously in the hibernate mode by detecting that the host is reading the hibernate file during a current boot operation (step 52 of
In yet another embodiment, the host may transmit a command to the disk drive indicating that it is about to begin writing to the hibernate file prior to entering the hibernate mode. The control circuitry may then monitor the sequence of data sectors written to the disk prior to the shutdown operation and maintain a corresponding log that may be used during a subsequent boot operation. Thus, in certain embodiments of the present invention, the control circuitry may maintain a log at times other than in connection with a boot operation.
Any suitable control circuitry 22 may be employed in the embodiments of the present invention, such as any suitable integrated circuit or circuits. For example, the control circuitry 22 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 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 22 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 a SOC. In another embodiment, the instructions are stored on the disk 16 and read into a volatile semiconductor memory when the disk drive is powered on. In yet another embodiment, the control circuitry 22 comprises suitable logic circuitry, such as state machine circuitry.
Number | Name | Date | Kind |
---|---|---|---|
5713024 | Halladay | Jan 1998 | A |
5966732 | Assaf | Oct 1999 | A |
6073232 | Kroeker et al. | Jun 2000 | A |
6098158 | Lay et al. | Aug 2000 | A |
6539456 | Stewart | Mar 2003 | B2 |
6662267 | Stewart | Dec 2003 | B2 |
6904496 | Raves et al. | Jun 2005 | B2 |
6968450 | Rothberg et al. | Nov 2005 | B1 |
6993649 | Hensley | Jan 2006 | B2 |
7107444 | Fortin et al. | Sep 2006 | B2 |
7130962 | Garney | Oct 2006 | B2 |
7181608 | Fallon et al. | Feb 2007 | B2 |
7464250 | Dayan et al. | Dec 2008 | B2 |
20030135729 | Mason, Jr. et al. | Jul 2003 | A1 |
20030142561 | Mason, Jr. et al. | Jul 2003 | A1 |
20040064647 | DeWhitt et al. | Apr 2004 | A1 |
20060294352 | Morrison et al. | Dec 2006 | A1 |
20070005883 | Trika | Jan 2007 | A1 |
20070083743 | Tsang | Apr 2007 | A1 |
20070083746 | Fallon et al. | Apr 2007 | A1 |
20080209198 | Majni et al. | Aug 2008 | A1 |