In most electronic systems and devices (collectively “device(s)” herein) there is a trade-off between power consumption and performance. Generally, to sustain a device operating at maximum performance usually requires more power than the power required for the device to operate at lower performance levels.
In storage devices (such as hard disks, memory cards, tape drives, compact disks, or any other storage device), this tradeoff between power and performance often appears in terms of speed versus power consumption. The faster the storage device is operated, the more power the device requires.
Maximum performance is usually an important priority for many electronic devices. For battery-powered devices, however, the amount of power consumed may be more important to the user than the performance or speed of the device. For example, a mobile phone user may accept lower performance in exchange for less power consumption and thus longer battery life. Or similarly, a user of a portable computer may accept slower performance in exchange for longer battery life.
A user's desired balance of the power-performance tradeoff may change depending on the circumstances. For instance, a digital camera user taking photos of fast action may desire maximum speed and performance to shoot pictures quickly to capture the action. The same user, however, may accept slower performance and may prefer reducing power consumption to extend battery life when shooting less dynamic subjects.
Given that a user's priorities may change at any time depending on the circumstances, the desired setting of a storage device's power-performance tradeoff may need to be changed as well. Setting a storage device's settings, however, may be too complicated for the normal user. Specifically, the parameters controlling a storage device's operation (such as data transfer rates, voltage levels, error checking, and other parameters) may be too complicated for the average user to interpret. Moreover the storage device parameters may be too complex for a user to make the necessary adjustments to accurately balance the desired tradeoff of performance versus power consumption for the device.
Storage device configuration is disclosed. An embodiment of a method for configuring power and performance of a storage device identifies a storage device to be configured. Configuration of device parameters associated with the storage device may be determined based on the operation desired by a user. The storage device can be configured using the determined configuration of device parameters.
An embodiment of system for configuring power and performance of a storage device comprises a budget configuration tool coupled to the storage device. The budget configuration tool may configure the storage device by setting device parameters associated with the storage device based on the desired operation selected by a user.
For a detailed description of the exemplary embodiments of the invention, reference will now be made to the accompanying drawings in which:
Certain terms are used throughout the following description and claims to refer to particular components. As one skilled in the art will appreciate, components may be referred to by different names. This document does not intend to distinguish between components that differ in name, but not function. In the following discussion and in the claims, the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . ” Also, the term “couple” or “couples” is intended to mean either an indirect or direct electrical or communicative connection. Thus, if a first device couples to a second device, that connection may be through a direct connection, or through an indirect connection via other devices and connections.
The following discussion is directed to various exemplary embodiments of the invention. The embodiments disclosed should not be interpreted, or otherwise used, as limiting the scope of the disclosure or claims. In addition, one skilled in the art will understand that the following description has broad application. The discussion of any embodiment is meant only to be exemplary of that embodiment and is not intended to limit the scope of the disclosure or claims to that embodiment. In this disclosure, numerous specific details may be set forth to provide a sufficient understanding of the embodiment. However, those skilled in the art will appreciate that the invention may be practiced without such specific details. In other instances, well-known elements may have been illustrated in schematic or block diagram form in order not to obscure the disclosure in unnecessary detail. Additionally, some details may have been omitted where such details were not considered necessary to obtain a complete understanding of the embodiment, and are considered to be within the understanding of persons of ordinary skill in the relevant art. It is further noted that all functions described herein may be performed in either hardware or software, or a combination thereof, unless indicated otherwise.
Referring initially to
Modern storage devices 14 are often capable of varying modes of operation that allow differing balances to be achieved for the power and performance tradeoff. These modes of operation are typically controlled via several parameters associated with the storage device 14. With the numerous types and models of modern storage devices 14 available, and the various parameters associated with the devices, it is not practical for the user to learn the parameters necessary to configure each storage device 14 that may be coupled to the system 10. Although technically sophisticated users may be able to set the device parameters directly, all users should also be able to take advantage of the device's configuration capability to achieve a desired performance. Accordingly, the budget configuration tool 12 facilitates both technically sophisticated users and normal users configuring a storage device 14.
In the
As the number and complexity of the available storage devices 14 increases, so does the corresponding difficulty in configuring these devices for the operation and performance desired. Moreover, the task of configuring these devices by a user becomes increasingly daunting. The prospect of knowing what parameters are available for a given device 14, which parameters to set in order to achieve the desired performance, and how to set the parameters, can be overwhelming for the normal user.
An example of a storage device 14 and some of the parameters associated with the device, and particularly those parameters that affect the power and performance tradeoff, are as follows:
A sleep mode is also provided to minimize power consumption. The time before the sleep mode is automatically initiated has a default setting of 5 mS. This setting means the card will enter sleep mode to conserve energy if inactive for 5 mS. While sleep mode may conserve power, typically going in and out of sleep mode takes time and can therefore adversely affect performance. Accordingly, to further reduce power consumption, but sacrifice performance, the time for initiation of sleep mode may be reduced so that sleep mode is more often entered. Or, to enhance performance, but correspondingly sacrifice power consumption, the time may be increased so sleep mode is rarely initiated.
One example of a relatively simple storage device 14 and its parameters has been described. Other storage devices 14 may have more or less parameters some of which may or may not be similar to those described in this example. Examples of other storage device parameters include voltage levels, data transfer rates, and error checking. Additionally, even parameters that may be similarly named may have very different functions, and may have to be set very differently to achieve the desired performance. Moreover, different methods or techniques may be required to set or modify the parameters. Thus, a user would need to know the types of parameters available for the storage device 14, what values to set the parameters to in order to achieve the desired performance for the subject storage device 14, and how to set the parameters for that specific device 14.
Given the numerosity and variability of available parameters, the identity of the parameters for a storage device 14 and related information may be saved in a configuration file 18. In the embodiment of the system 10 as shown in
Although the configuration files 18 are shown as a part of the system 10, other ways exist to access the device parameters and operational information in a configuration file 18. For example, the configuration file 18 may be stored locally in the system 10 or stored remotely on another system that might be accessible via the Internet or other network connection. Such a remote configuration file 18 could be accessed by downloading the information to the system 10 when a new storage device is coupled to the system 10, or when the system 10 attempts to configure a storage device 14 for which there is not yet a configuration file 18 in the system 10. Additionally, the configuration file 18 may be stored in the storage device 14. The information could then be accessed from the storage device 14 and allow the storage device 14 to provide the configuration information necessary to configure itself.
An operation profile 20 may store certain operational states or settings for the storage device 14 or system 10. For example, there may be a setting for the system 10 that balances power consumption and performance at a default level to support normal operation of the system. Such a default setting could be saved as an operation profile 20. Two other likely settings are maximizing the performance of the system or minimizing the power consumption. Accordingly, a low power operation profile 20 may be saved for operation that sacrifices performance for low power consumption. For example, the storage device may be operated at slower speeds to conserve power. Similarly, a high performance operation profile 20 may be provided for operation that maximizes operational performance regardless of power consumption. The operation profile 20, then, can be used to store various operational settings or balances of the power and performance tradeoff.
In the embodiment of
The user interface 16 allows the user to input the desired operation for the system 10 or the storage device 14. The user interface may present simple selections to assist the user in selecting the desired operation. In addition, the user interface 16 may display the currently pending state or operating mode. An example of one embodiment of a user interface is shown in
As shown in
The custom profiles may also represent operational settings achieved via the user manually setting the device parameters and then saving those settings as a custom profile. The custom profile could provide a link that would take the user to another screen showing the device parameters and allowing the user to set them directly. Once the parameters are set, the user may be presented with an option to save the settings as a new custom profile. Thus, the custom profiles could allow sophisticated users to set the parameters directly and to save those settings for easy reuse later. These profiles can also provide a simplified method to set the desired operation for normal users.
The
Generally, ROM transfers data and instructions unidirectionally to CPU 1332, while RAM transfers data and instructions in a bi-directional manner. Both storage devices 1334, 1336 may include any suitable computer-readable media. A secondary storage medium 1338, such as a mass memory device, is also coupled bi-directionally to CPU 1332 and provides additional data storage capacity. The mass memory device 1338 is a computer-readable medium that may be used to store programs including computer code, data, and the like. Mass memory device 1338 is typically a storage medium utilizing a non-volatile memory that is generally slower than primary storage devices 1334, 1336, such as a hard disk or a tape. Mass memory storage device 1338 may take the form of a magnetic or paper tape reader or other known devices. In appropriate cases, the information retained within the mass memory device 1338 may be incorporated as part of RAM 1336 as virtual memory. A specific primary storage device 1334 such as a CD-ROM may also pass data to the CPU 1332.
CPU 1332 also couples to one or more input/output devices 1340 that may include devices such as video monitors, track balls, mice, keyboards, microphones, touch-sensitive displays, transducer card readers, magnetic or paper tape readers, tablets, styluses, voice or handwriting recognizers, or other known input/output devices, including other computers. Finally, CPU 1332 optionally may be coupled to a computer or telecommunications network, e.g., an Internet network, or an intranet network, using a network connection as shown generally at 1312. With such a network connection, CPU 1332 may receive information from the network, or may output information to the network in the course of performing the processes and methods in accordance with the disclosure herein. Such information is often represented as a sequence of instructions to be executed using CPU 1332. The information may be received from and outputted to the network in the form of a computer data signal embodied in a carrier wave.
In one embodiment, sequences of instructions may be executed substantially simultaneously on multiple CPUs, as for example a CPU in communication across network connections. Specifically, the above-described process may be performed across a computer network. Additionally, it will be recognized by one of skill in the art that the process may be recognized as sets of computer codes and that such computer codes can be stored in computer readable media such as RAM, ROM, hard discs, floppy discs, carrier waves, or other media.
The above discussion is meant to be illustrative of the principles and various embodiments of the present invention. Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. For example, the system and method for configuring power and performance of storage devices may at times incorporate more or less components or functions than the embodiments described herein. This disclosure makes those principles and modified embodiments apparent to those skilled in the art. It is intended that the following claims be interpreted to embrace all such variations and modifications.