Host-based power savings method and apparatus
A system which includes a disk drive or other storage device coupled to a host system provides for reduction of the amount or rate of drive power consumption using procedures which are at least partially executed on the host. The system can be configured to reduce average power draw, maximum power draw, or both. Host-based procedures can be tailored to specific and/or changing environments and can decrease some or all expenses associated with previous attempts to reduce HDD power consumption.
Latest Seagate Technology LLC Patents:
- Dual layer graded curie temperature HAMR media
- Planarization strategy in nano-sized fabrication
- Heat-assisted magnetic recording head with a resonance enhancing feature
- Single-grain near-field transducer and process for forming same
- Heat-assisted magnetic recording head with an integrated photodiode
Priority is claimed from U.S. Provisional Patent Application Ser. No. 60/476,250 filed Jun. 5, 2003 entitled “Filter Driver Power Save Mode,” which is incorporated herein by reference in its entirety.
FIELD OF THE INVENTIONThe present invention is related to reducing the amount and/or rate of power consumption by a disk drive or similar storage device and, in particular, to a power saving method and apparatus substantially implemented in a host device that is coupled to the data storage device.
BACKGROUND INFORMATIONReduction of power consumption can be useful in a number of contexts, but is of particular interest in connection with mobile or portable devices such as laptop or other mobile or portable computers, portable audio-play, or other portable consumer electronic devices and the like. Power usage can also be of concern in connection with non-portable devices (e.g., desktop computers and the like), at least, since power consumption represents an energy cost generally paid by the user, and further it is generally correlated with an undesirably increased heat budget.
It is also possible to configure and/or manage disk drives so as to enhance disk drive performance (characteristics other than power consumption such as the effective amount of data that can be stored or retrieved per unit time and/or such as storage or retrieval reliability and the like). Some drives (such as some SCSI and/or ATA5 drives) use Native Command Queuing (NCQ) to reorder commands to achieve improved performance. Often, procedures which improve performance are opposite to procedures that save power. For example, although effective performance may be increased by fetching more data than requested (e.g., pre-fetch and/or post-fetch), at least, some such procedures, in previous approaches, increase average hard disk power consumption. In some audio playback devices, large amounts of audio data, e.g., according to a “play list” are transferred from disk to host memory, allowing the disk to be “spun down” while music is played back from memory.
Accordingly, it would be useful to provide a method and apparatus which can reduce the overall power consumption, preferably while retaining an ability to achieve at least some degree of performance enhancement.
At least some prior power-saving approaches have focused on aspects of the disk drive (as opposed, e.g., to the host device which sends data and/or instructions to, and/or receives data from, the disk drive). Such previous approaches can generally be considered as involving disk drive hardware or disk drive procedures (e.g., firmware or other programming executed in the disk drive, as opposed to the host device). Such disk drive-based approaches can have certain undesirable characteristics. Hardware approaches, which involve using relatively less power-consumptive devices, generally involve using undesirably high-cost parts. Providing for power-saving procedures within the drive (such as drive firmware or other programming) can involve several disadvantageous features. Such drive-based programming, especially firmware, is typically difficult, or completely infeasible, to change, e.g., once the drive has been manufactured, thus providing for substantial inflexibility. Accordingly, in at least some approaches, disk drives configured with procedures appropriate for power-saving in a particular environment (such as a network server environment versus a workstation (desktop) or laptop environment) may be entirely inappropriate for use in a different environment. This approach means multiple models are needed to serve multiple needs, which can undesirably increase a number of costs such as costs associated with the design, selection, installation, manufacture and/or maintenance of a multiplicity of models. If drives are used outside the specified environment, the rigidity of this approach can prevent further optimization or reduction in power usage.
Furthermore, the storage and/or execution of potentially long and complex power-saving programming within the disk drive requires consumption of disk drive resources, such as disk drive power resources (as well as, potentially, memory resources and/or computing or logic resources). In many systems, the power and/or heat budget of a disk drive is substantially more constrained than that of the host system.
Accordingly, it would be useful to provide a method and apparatus for saving power in a drive without the power-saving features being substantially based in the disk drive and, preferably, while still accommodating at least some performance enhancement. Preferably, power-saving is implemented so as to provide for flexibility, such as more readily accommodating multiple environments and/or improvements.
SUMMARY OF THE INVENTIONThe present invention includes a recognition and/or appreciation of the existence and/or nature of problems in previous approaches, including those described herein.
In one embodiment, the invention provides for host-based power-saving for the disk drive, preferably while balancing power-saving and performance features or procedures, so as to provide both a degree of power-savings and a degree of performance enhancement.
In one embodiment, the host device executes a procedure, such as that contained in a filter driver or other programming, which executes on the host device and, as a result, sends a stream of commands and/or data to the disk drive which results in power-savings, i.e., such that the disk drive, while performing read/write or other “normal use” operations consumes an amount of power (e.g., averaged or consumed over a period of time, over a number of operations, or over an amount of data) which is less than the amount of power that would have been consumed while performing such normal use operations, if the power-saving procedures had not been executed on the host device. Preferably, the procedures executed on the host device also provide some degree of performance enhancement, i.e., provide an increase in performance (such as increased data storage and/or retrieval per unit time, and/or increased data storage reliability, and the like) compared to the performance that would have occurred if the procedures had not been executed on the host device.
In one embodiment, a system which includes a disk drive or other storage device coupled to a host system provides for reduction of the amount or rate of drive power consumption using procedures which are at least partially executed on the host. The system can be configured to reduce average power draw, maximum power draw, or both. Host-based procedures can be tailored to specific and/or changing environments and can decrease some or all expenses associated with previous attempts to reduce HDD power consumption.
Systems which include a disk drive (or other data storage device) are often viewed as having an architecture similar to that depicted in
In general, the disk drive 112 will include, in addition to the disk 118, one or more heads, arms and/or actuators 122, along with electronics, which are often provided on a printed circuit board 124 and the like. The electronics 124 provide a number of features, as is generally well known in the art, including controlling the movement and operation of the read/write head, data or command buffering, signal bridging and the like.
In most systems, the host device 114 will include some form of electronic control or logic such as a microprocessor 126, although other logic/control devices may be provided such as logic arrays, application specific integrated circuits (ASIC's) and the like. As will be understood by those with skill in the art, various architectures, including that depicted in
In a typical system, transfer of data between the host and the disk drive is mediated by one or more caches, which are typically volatile electronic memory. In the system of
As noted above, it is often advantageous to reduce the magnitude and/or rate of power consumption during normal operation both of an entire system and, especially, of a disk drive or other data storage device. The use of relatively low power-consumption hardware in a disk drive is often undesirably expensive. In some previous approaches, certain power-saving procedures, often embodied in firmware, have been attempted, e.g., as depicted in simplified fashion in
In the illustration of
In the illustration of
Without wishing to be bound by any theory, it is believed likely that one reason previous power-saving procedures have been drive-based (as shown on
One aspect of the present invention involves shifting the consumption of resources and/or power, used for executing power-saving procedures, from the storage device to the host device (where there are often fewer constraints on resource, power, and/or heat budgets and where power can be better managed, since, in general, the host is more capable of managing power). One aspect of the present invention is that drive heat/power can be reduced by using a more “intelligent” resource or approach.
In at least one previous approach, as illustrated in
In the embodiment of the invention illustrated of in
In the approach illustrated in
In some embodiments, the host can be configured to execute different power-saving techniques. Which technique or suite of techniques are to be used can be selected in various manners, including being pre-selected by the system, host, or drive manufacturer, being selected by the user or being selected automatically, e.g., by the host system, based on any of various factors including current power source (e.g., battery versus AC or line power), charge state of the battery, type of applications, and/or communications being run or executed, time of day, location and the like.
In the illustration of
The situation depicted in
In the embodiment depicted in
Although
It should be noted that it is possible to use some features of the invention without using others. For example, it is possible to provide at least some host-based power-saving procedures without the power-saving procedures requiring the existence of a read/write disk-based data cache.
Although a number of examples of power-saving procedures have been provided, embodiments of the present invention can be used in which other power-saving procedures are employed and/or in which various combinations of power-saving procedures can be selected. It is possible to use procedures having more or fewer steps than those described and illustrated, or in which steps are performed in an order different from those described and illustrated.
Although in some embodiments the power-saving procedures are provided, to the host system, in the form of filter drivers, or other drivers, (e.g., with different drivers being available or used in connection with different disk drives, or classes of disk drives), it is technically possible (although not necessarily economically feasible, at present) to provide power-saving procedures in the host device in a different fashion, such as firmware, or in a hard-wired fashion.
Although the invention has been described in the context of a disk drive such as a “hard” magnetic medium disk drive, there is no technical reason why some or all features of the invention cannot be used in connection with other types of data storage devices coupled to a host device, including, e.g., optical storage devices.
Although embodiments of the invention have been described in the context of drives which are part of a computer system, there is no technical reason why some or all aspects of the present invention cannot be used in other contexts such as portable music or audio/video playback devices or other portable or non-portable consumer electronic devices. Although a number of examples for power-saving techniques that can be used in embodiments of the present invention have been provided, other host-based power-saving techniques can be implemented according to embodiments of the present invention. Although, for all purposes of clarity, various power-saving techniques have been described separately, embodiments of the present invention can involve using multiple, different power-saving techniques, including those described herein.
Although the present invention has been described in the context of executing power-saving procedures on the host device, it is at least feasible to provide some or all power-saving procedures with direct execution on the HDD (e.g., providing various HDD power modes) with the host system being configured to initiate execution and/or select various modes. The present invention allows a power-efficient HDD to be provided without having to implement all of the power-saving features in the HDD itself, including having the HDD depend on the host for guidance on power saving features and/or sharing power-saving procedures between the host and the HDD.
Embodiments of the present invention can be used to reduce power requirements, e.g., a portable system such as a personal storage device, where some peripheral devices (e.g., headsets, cameras) are slower than the associated HDD. For example, a filter driver can be programmed with disk access profiles relating to particular peripheral devices to minimize or reduce power usage.
In at least one embodiment, HDD firmware can be configured to support vendor-unique commands to implement some or all types of power conservation. Embodiments of the present invention can operate with a relatively simple focus on performance, e.g., in a manner to reduce stress and/or power utilization, e.g., when serving data streams and/or in multiple stream configurations. Similarly, in some embodiments, the caching of write commands can not only allow reordering of the write commands but may allow an HDD to remain idle for longer periods of time, thus conserving power.
In light of the above description, a number of advantages of the present invention can be seen. By providing some power-savings which is not achieved solely by employing less power-consumptive (and, typically, more expensive) hardware, the present invention makes it possible to achieve the power-savings at a relatively lower cost. By providing at least some power-saving features which involve executing procedures on a host device (as opposed to executing procedures on the drive itself), certain inflexibilities associated with at least some previous approaches are avoided. HDD operating parameters and/or power-saving procedures can be tailored to specific environments. Embodiments of the present invention can be used to trade host resources, computing power and/or bandwidth for drive power.
In at least some embodiments, power usage of an HDD can be significantly reduced without substantial hardware or software modifications to the HDD. This makes it possible to provide at least retroactive power-savings (i.e., achieve power-savings in currently-in-use systems, without the need to modify or access the HDD), such as by loading an appropriate filter driver.
The present invention makes it more feasible for HDD command management algorithms (and, to at least a certain point, architecture) for power reduction to be tested and prototyped, e.g., without having to modify the HDD or its firmware. Preferably, HDD's and companion filter drivers can be configured in a complementary sense, preferably to provide optimized, or substantially optimized, power reduction.
Embodiments of the present invention allow a relatively accurate estimate of which power conservation features should be implemented in the HDD and which ones are better managed by the host. Embodiments of the present invention can be used during normal use of a HDD or as a prototyping tool to reduce internal power usage of a drive. Embodiments of the present invention can also be used to improve reliability of a drive e.g. by reducing the number of drive operations which may risk data integrity.
The present invention, in various embodiments, includes components, methods, processes, systems and/or apparatuses substantially as depicted and described herein, including various embodiments, sub-combinations, and subsets thereof. Those with skill in the art will understand how to make and use the present invention after understanding the present disclosure. The present invention, and various embodiments, includes providing the devices and processes in the absence of items not depicted and/or described herein or in various embodiments hereof, including in the absence of such items as may have been used in previous devices or processes, e.g., for improving performance, achieving ease of implementation and/or reducing cost of implementation. The present invention includes items which are novel, and terminology adapted from previous and/or analogous technologies, for convenience in describing novel items or processes, do not necessarily retain all aspects of conventional usage of such terminology.
The foregoing discussion of the invention has been presented for purposes of illustration and description. The foregoing is not intended to limit the invention to the forms or form disclosed herein. Although the description of the invention has included description of one or more embodiments and certain variations and modifications, other variations and modifications are within the scope of the invention, e.g., as may be within the skill and knowledge of those in the art, after understanding the present disclosure. It is intended to obtain rights which include alternative embodiments to the extent permitted, including alternate, interchangeable and/or equivalent structures, functions, ranges or steps to those claimed, whether or not such alternate, interchangeable and/or equivalent structures, functions, ranges or steps are disclosed herein, and without intending to publicly dedicate any patentable subject matter.
Claims
1. An apparatus comprising
- circuitry that can execute program instructions; and
- a memory, in functional communication with said circuitry, storing at least a first group of program instructions that, when executed in said circuitry, provides a first power saving operation that causes a hard disk drive connected with said apparatus to operate with a lower power consumption during normal operation, averaged over a time period, than a standard power consumption that would occur in the absence of executing said first group of program instructions, wherein
- execution of said first group of program instructions results in delaying a write operation to a target location that is relatively distant from a current disk location;
- execution of said first group of program instructions results in reordering commands to an order different from an original order in which said commands would be performed in absence of executing said first group of program instructions;
- execution of said first group of program instructions results in retaining write data in a cache for a period longer than an original period for which said write data would be retained in absence of executing said first group of program instructions; or
- execution of said first group of program instructions results in sending commands from said apparatus to said hard disk drive which can only be performed on a predefined class of disk drives.
2. The apparatus of claim 1, wherein said memory further stores a second group of program instructions that provides for a second power saving operation different from said first power saving operation.
3. The apparatus of claim 2, wherein said circuitry executes said first group or said second group of program instructions based on a detected environment.
4. The apparatus of claim 2, wherein said circuitry executes said first group or said second group of program instructions based on user input.
5. The apparatus of claim 1, wherein said result of execution of said first group of program instructions is said delaying of said write operation to said target location which is relatively distant from said current disk location.
6. The apparatus of claim 1, wherein said result of execution of said first group of program instructions is said reordering of said commands to said order different from said original order in which said commands would be performed in absence of executing said first group of program instructions.
7. The apparatus of claim 1, wherein said result of execution of said first group of program instructions is said retaining of said write data in said cache for the period longer than said original period for which said write data would be retained in absence of executing said first group of program instructions.
8. The apparatus of claim 5, wherein said delaying of said write operation continues until a drive write head is no more than a threshold radial distance from said target location.
9. The apparatus of claim 5, wherein said delaying of said write operation continues until a drive write head is no more than a threshold circumferential distance from aid target location.
10. The apparatus of claim 1, wherein said apparatus is a computer.
11. The apparatus of claim 1, wherein said apparatus is a portable electronic device.
12. The apparatus of claim 1 wherein said apparatus is substantially non-portable.
13. The apparatus of claim 1, wherein said circuitry in said apparatus comprises a microprocessor.
14. The apparatus of claim 1, wherein said result of execution of said first group of program instructions is said sending of said commands from said apparatus to said hard disk drive, which can only be performed on said predefined class of disk drives.
15. The apparatus of claim 1, wherein said first group of program instructions comprises a hard disk drive device driver.
16. A method comprising
- storing at least a first group of program instructions in a memory in a host device; and
- executing said first group of program instructions in said host device to provide for a first power saving operation that causes a hard disk drive connected with said host device to operate with a lower power consumption during normal operation, averaged over a time period, than a standard power consumption that would occur in the absence of executing said first group of program instructions, wherein
- execution of said first group of program instructions results in delaying a write operation to a target location that is relatively distant from a current disk location;
- execution of said first group of program instructions results in reordering commands to an order different from an original order in which said commands would be performed in absence of executing said first group of program instructions;
- execution of said first group of program instructions results in retaining write data in a cache for a period longer than an original period for which said write data would be retained in absence of executing said first group of program instructions; or
- execution of said first group of program instructions results in sending commands from said host device to said hard disk drive which can only be performed on a predefined class of disk drives.
17. The method of claim 16, wherein said result of said execution of said first group of program instructions is said delaying of said write operation to said target location which is relatively distant from said current disk location.
18. The method of claim 16, wherein said result of execution of said first group of program instructions is said reordering of said commands to an order different from said original order in which said commands would be performed in absence of executing said first group of program instructions.
19. The method of claim 16, wherein said result of execution of said first group of program instructions is said retaining of said write data in said cache for said period longer than said original period for which said write data would be retained in absence of executing said first group of program instructions.
20. The method of claim 17, wherein said delaying of said write operation continues until a drive write head is no more than a threshold radial distance from said target location.
21. The method of claim 17, wherein said delaying of said write operation continues until a drive write head is no more than a threshold circumferential distance from said target location.
22. The method of claim 16, wherein said result of execution of said first group of program instructions is said sending of said commands from said host device to said hard disk drive, which can only be performed on said predefined class of disk drives.
23. The method of claim 16, wherein said first group of program instructions comprises a hard disk drive device driver.
24. A method comprising
- storing at least a first group of program instructions in a memory in a host device that provides for a first power saving operation in a hard disk drive connected to the host device;
- storing a second group of program instructions in said memory that provides for a second power saving operation in said hard disk drive, different from said first power saving operation; and
- selecting at least one of said first and said second groups of program instructions for execution in said host device, wherein
- said first group of program instructions and said second group of program instructions are selected from a group comprising one or more of the following:
- program instructions for delaying a write operation to a target location that is relatively distant from a current disk location;
- program instructions for reordering commands to an order different from an original order in which said commands would be performed in absence of executing said first group of program instructions or said second group of program instructions;
- program instructions for retaining write data in a cache for a period longer than an original period for which said write data would be retained in absence of executing said first group of program instructions or said second group of program instructions; or
- program instructions for sending commands from said host device to said hard disk drive, which can only be performed on a predefined class of disk drives.
25. The method of claim 24, further comprising executing said first group of program instructions or said second group of program instructions based on a detected environment.
26. The method of claim 24, further comprising executing said first group of program instructions or said second group of program instructions based on user input.
27. An apparatus comprising
- means for storing at least a first group of program instructions; and
- means for executing said program instructions to save power in a hard disk drive connected with said apparatus, wherein
- said program instructions are selected from a group comprising one or more of the following:
- program instructions for delaying a write operation to a target location that is relatively distant from a current disk location;
- program instructions for reordering commands to an order different from an original order in which said commands would be performed in absence of executing said program instructions;
- program instructions for retaining write data in a cache for a period longer than an original period for which said write data would be retained in absence of executing said program instructions; or
- program instructions for sending commands from said apparatus to said hard disk drive, which can only be performed on a predefined class of disk drives.
28. The apparatus of claim 27, wherein said program instructions are said program instructions for delaying said write operation to said target location which is relatively distant from said current disk location.
29. The apparatus of claim 27, wherein program instructions are said program instructions for reordering commands to said order different from said original order in which said commands would be performed in absence of executing said program instructions.
30. The apparatus of claim 27, wherein said program instructions are said program instructions for retaining write data in said cache for said period longer than said original period for which said write data would be retained in absence of executing said program instructions.
31. The apparatus of claim 28, wherein said delaying of said write operation continues until a drive write head is no more than a threshold radial distance from said target location.
32. The apparatus of claim 28, wherein said delaying of said write operation continues until a drive write head is no more than a threshold circumferential distance from said target location.
33. The apparatus of claim 27, wherein said apparatus is a computer.
34. The apparatus of claim 27, wherein said apparatus is a portable electronic device.
35. The apparatus of claim 27, wherein said apparatus is substantially non-portable.
36. The apparatus of claim 27, wherein said program instructions are said program instructions for said sending of said commands from said apparatus to said hard disk drive which can only be performed on said predefined class of disk drives.
37. The apparatus of claim 27, wherein said program instructions comprise a hard disk drive device driver.
38. An apparatus comprising
- means for storing a first group of program instructions that provides for a first power saving operation;
- means for storing a second group of program instructions that provides for a second power saving operation, different from said first power saving operation; and
- means for selecting at least one of said first group of program instructions and said second group of program instructions for execution in said apparatus to save power in a hard disk drive connected with said apparatus, wherein
- said first group of program instructions and said second group of program instructions are selected from a group comprising two or more of the following:
- program instructions for delaying a write operation to a target location that is relatively distant from a current disk location;
- program instructions for reordering commands to an order different from an original order in which said commands would be performed in absence of executing said first group of program instructions or said second group of program instructions;
- program instructions for retaining write data in a cache for a period longer than an original period for which said write data would be retained in absence of executing said first group of program instructions or said second group of program instructions; or
- program instructions for sending commands from said apparatus to said hard disk drive, which can only be performed on a predefined class of disk drives.
39. The apparatus of claim 38, wherein said means for selecting makes a selection based on a detected environment.
40. The apparatus of claim 38, wherein said means for selecting makes a selection based on user input.
41. An apparatus comprising
- logic circuitry configured to execute program instructions; and
- a memory communicatively coupled with said logic circuitry, storing program instructions that, when executed in said logic circuitry, provides a first power saving operation that causes a data storage circuit connected with said apparatus to operate with a lower power consumption during normal operation, over a time period, than a power consumption that would occur in the absence of executing said program instructions, wherein execution of said program instructions results in delaying a write operation to a target location that is relatively distant from a current location in the data-storage circuit; reordering commands to an order different from an original order in which said commands would be performed in absence of executing said program instructions; retaining write data in a cache for a period longer than an original period for which said write data would be retained in absence of executing said program instructions; or sending commands from said apparatus to the data storage circuit which can only be performed on a predefined class of data storage devices.
42. A method comprising
- storing program instructions in a memory in a host circuit device; and
- executing said program instructions in said host device to provide for a first power saving operation that causes a data storage circuit connected with said host device to operate with a lower power consumption during normal operation, over a time period, than a power consumption that would occur in the absence of executing said program instructions, wherein execution of said program instructions results in delaying a write operation to a target location that is relatively distant from a current location of the data storage circuit; reordering commands to an order different from an original order in which said commands would be performed in absence of executing said program instructions; retaining write data in a cache for a period longer than an original period for which said write data would be retained in absence of executing said program instructions; or sending commands from said host device to said data storage circuit which can only be performed on a predefined class of data storage devices.
5898880 | April 27, 1999 | Ryu |
5907713 | May 25, 1999 | Chen et al. |
5954820 | September 21, 1999 | Hetzler |
6049884 | April 11, 2000 | Tsuji |
6052791 | April 18, 2000 | Chen et al. |
6490651 | December 3, 2002 | Shats et al. |
6549973 | April 15, 2003 | Kibashi et al. |
6553501 | April 22, 2003 | Yokoe |
6609177 | August 19, 2003 | Schlumberger et al. |
6715088 | March 30, 2004 | Togawa |
6947775 | September 20, 2005 | Okamoto et al. |
20030225969 | December 4, 2003 | Uchida et al. |
20040055446 | March 25, 2004 | Robbin et al. |
- Dimitrijevic, Zoran, http://www.usenix.org/events/fast03/tech/full—papers/dimitrijevic/dimitrijevic—html/node11.html/, Jan. 6, 2003, 1 page.
- Press Release, “Seagate Unveils New Versions of World's Favorite Enterprise Disc Drives”, Nov. 1, 1999, 3 pages.
Type: Grant
Filed: Feb 18, 2010
Date of Patent: Feb 21, 2012
Assignee: Seagate Technology LLC (Scotts Valley, CA)
Inventor: Maurice Schlumberger (Menlo Park, CA)
Primary Examiner: M Elamin
Attorney: Crawford Maunu PLLC
Application Number: 12/708,129
International Classification: G06F 1/32 (20060101);