DATA STORAGE DEVICE ADJUSTING COMMAND RATE PROFILE BASED ON OPERATING MODE
A disk drive is disclosed comprising a head actuated over a disk comprising a plurality of tracks, wherein each track comprises a plurality of data sectors comprising a disk block size. A host write command is received comprising data blocks having a host block size less than the disk block size. A misalignment is detected between the data blocks and the disk block size, and when the misalignment is detected, at least one of the data blocks is stored in a write cache. A command rate limit is adjusted as a function of the write cache, wherein the command rate limit defines a limit on a number of commands received from a host.
This application is a divisional of U.S. patent application Ser. No. 12/730,078, filed on Mar. 23, 2010, which is hereby incorporated by reference in its entirety.
BACKGROUNDData storage devices, such as disk drives and solid state drives are employed in numerous areas such as computer systems (e.g., desktops, laptops, portables, etc.) and consumer devices (e.g., music players, cell phones, cameras, etc.). User data is typically stored in a non-volatile memory, such as a magnetic disk or a non-volatile semiconductor memory (e.g., Flash memory). A performance metric for a data storage device may include the number of host access commands processed over a period of time (e.g., instructions per second or IOPS). The throughput of host commands (write/read) is typically influenced by a number of considerations, such as the latency in accessing the non-volatile memory (e.g., the mechanical latency of seeking a head to a target data track in a disk drive).
The command rate profile may be adjusted relative to any suitable operating mode.
In one embodiment, the data storage device may change operating modes based on a power setting, and the command rate profile adjusted accordingly. For example, when attempting to conserve battery power the host may send a low power mode command to the data storage device. In response, the data storage device may adjust the command rate profile so as to decrease the command rate limit faster as a function of the internal parameter (similar to the random access profile shown in
Any suitable data storage device may be employed in the embodiments of the present invention.
In one embodiment, as the number of queued background commands increases, the host command rate is reduced to allow time to perform the background commands. In other embodiments, the command rate may be adjusted relative to an environmental condition, such as temperature, which may affect the bandwidth of the disk channel (e.g., affect the maximum seek speed of the head).
In one embodiment, each data sector has a disk block size that is greater than a host block size of the data blocks received in host write commands.
The command rate limit may be adjusted by the control circuitry 48 in any suitable manner using any suitable command rate profile.
Any suitable control circuitry may be employed to implement the flow diagrams in the embodiments of the present invention, such as any suitable integrated circuit or circuits. For example, in the embodiment wherein the data storage device comprises a disk drive, the control circuitry 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 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 of a disk drive and read into a volatile semiconductor memory when the disk drive is powered on. In yet another embodiment, the control circuitry comprises suitable logic circuitry, such as state machine circuitry.
Claims
1. A disk drive comprising:
- a disk comprising a plurality of tracks, wherein each track comprises a plurality of data sectors comprising a disk block size;
- a head actuated over the disk; and
- control circuitry operable to: receive a host write command comprising data blocks having a host block size less than the disk block size; detect a misalignment between the data blocks and the disk block size; when the misalignment is detected, store at least one of the data blocks in a write cache; and adjust a command rate limit as a function of the write cache, wherein the command rate limit defines a limit on a number of commands received from a host.
2. The disk drive as recited in claim 1, wherein the control circuitry is operable to decrease the command rate limit as the free space in the write cache decreases.
3. The disk drive as recited in claim 1, wherein the command rate limit defines a limit on the number of write commands received from the host.
4. The disk drive as recited in claim 1, wherein the control circuitry is operable to:
- store access commands received from the host in a command queue;
- generate flush commands in response to the data blocks stored in the write cache, wherein a flush command flushes data blocks from the write cache to the disk; and
- select a number of flush commands to insert into the command queue based on the command rate limit.
5. The disk drive as recited in claim 4, wherein the control circuitry is operable to select the number of flush commands to insert into the command queue based on the command rate limit and a number of host write commands stored in the command queue.
6. The disk drive as recited in claim 4, wherein the control circuitry is operable to:
- execute a selection algorithm on the commands stored in the command queue; and
- adjust the selection algorithm in response to the command rate limit.
7. The disk drive as recited in claim 6, wherein the control circuitry is operable to bias the selection algorithm to select the flush commands over the host write commands when the command rate limit decreases.
8. The disk drive as recited in claim 1, wherein the control circuitry is operable to:
- store access commands received from a host in a command queue;
- generate a plurality of background commands including at least one of a write verify command, a refresh command, and a garbage collection command; and
- select a number of background commands to insert into the command queue based on the command rate limit.
9. A method of operating a disk drive comprising a head actuated over a disk including a plurality of tracks, wherein each track comprises a plurality of data sectors comprising a disk block size, the method comprising:
- receiving a host write command comprising data blocks having a host block size less than the disk block size;
- detecting a misalignment between the data blocks and the disk block size;
- when the misalignment is detected, storing at least one of the data blocks in a write cache; and
- adjusting a command rate limit as a function of the write cache, wherein the command rate limit defines a limit on a number of commands received from a host.
10. The method as recited in claim 9, further comprising decreasing the command rate limit as the free space in the write cache decreases.
11. The method as recited in claim 9, wherein the command rate limit defines a limit on the number of write commands received from the host.
12. The method as recited in claim 9, further comprising:
- storing host commands received from the host in a command queue;
- generating flush commands in response to the data blocks stored in the write cache, wherein a flush command flushes data blocks from the write cache to the disk; and
- selecting a number of flush commands to insert into the command queue based on the command rate limit.
13. The method as recited in claim 12, further comprising selecting the number of flush commands to insert into the command queue based on the command rate limit and a number of host write commands stored in the command queue.
14. The method as recited in claim 12, further comprising:
- executing a selection algorithm on the commands stored in the command queue; and
- adjusting the selection algorithm in response to the command rate limit.
15. The method as recited in claim 14, further comprising biasing the selection algorithm to select the flush commands over the host write commands when the command rate limit decreases.
16. The method as recited in claim 9, further comprising:
- storing host commands received from the host in a command queue;
- generating a plurality of background commands including at least one of a write verify command, a refresh command, and a garbage collection command; and
- selecting a number of background commands to insert into the command queue based on the command rate limit.
Type: Application
Filed: Feb 27, 2018
Publication Date: Jul 5, 2018
Inventors: Scott E. Burton (Westminster, CO), Kenny T. Coker (Corona, CA), Robert M. Fallone (Laguna Niguel, CA)
Application Number: 15/906,938