The present disclosure relates generally to data storage systems and more specifically, but not by limitation, to implementing data storage modes in a data storage system.
An exemplary data storage system includes a device having at least one medium for data storage. The data storage system can include one or more types of storage mediums such as, but not limited, to hard discs, floppy discs, magnetic discs, optical discs, magnetic tapes, solid-state storage components, and/or combinations thereof. For instance, an exemplary data storage system can comprise a hard disc drive (HDD), a solid-state drive (SDD), a “hybrid” drive (e.g., a hybrid hard drive (HHD)), to name a few. The data storage system includes a controller that is configured to receive data and commands from a host and implement data operations to the storage media in the data storage device based on the commands.
In one example, the data storage system is powered by an exhaustible power source, such as a battery. For instance, in one particular application a data storage system is implemented in a laptop or notebook computer. In another example, a data storage system is implemented in a mobile computing device such as a personal data assistant (PDA), mobile phone, etc.
The discussion above is merely provided for general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter.
The present disclosure provides a data storage system configured to implement data storage modes based on a battery health indicator. In one embodiment, a data storage system is provided and comprises an input interface configured to receive data and the battery health indicator. In one example, the data and battery health indicator is received from a host system through the input interface. The data storage system also includes at least one data storage device and a controller configured to store data in the at least one data storage device. The controller is configured to implement a data storage mode based on the battery health indicator.
In one exemplary embodiment, a controller in a data storage system is provided and includes an input configured to receive data and a battery health indicator from a host device. The battery health indicator is indicative of a level of power in an exhaustible power source. The controller also includes a processing component configured to adjust a data storage mode based on the battery health indicator received from the host device and an output configured to provide the data to at least one data storage component based on the data storage mode.
In one exemplary embodiment, a method for storing data in a data storage system is provided and includes receiving an indication from a host device of a level of power in an exhaustible power source and implementing a data storage mode based on the indication. The method also includes receiving data from the host device and storing the data to at least one data storage medium in the data storage system based on the data storage mode.
These and various other features and advantages will be apparent from a reading of the following Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. The claimed subject matter is not limited to implementations that solve any or all disadvantages noted in the background.
Data storage system 104 includes a controller 106 that is configured to communicate with the host 102 through a data channel 103. As illustrated in
In the illustrated embodiment, data storage device 108 includes storage media configured for persistent and/or long-term data storage. Examples of storage media in device 108 include, but are not limited to, a disc stack having one or more data storage discs. However, it is noted that in other embodiments data storage device 108 can include any suitable type of memory components) such as other forms of non-volatile memory as well as volatile memory. Some examples include, but are not limited to, floppy discs, magnetic discs, optical discs, magnetic tapes, and solid-state storage components, to name a few.
Data storage device 110 also includes storage media configured to store data. In the illustrated embodiment, data storage device 110 comprises a different type of media and/or is separate (e.g., physically spaced) from device 108. Further, device 110 can be configured for intermediate data storage (e.g., a data buffer, a data cache). Alternatively, or in addition, data storage device 110 can be configured for persistent and/or long-term data storage. For example, data storage device 110 can include non-volatile data memory devices as well as volatile data memory devices.
In the embodiment illustrated in
In accordance with one embodiment, a data storage system is configured to implement data storage (or data retrieval) modes based on a state of a power source. In one example, the data storage system implements particular data storage modes to manage power usage of the data storage system. In another example, the data storage system implements particular data retrieval modes to manage power usage of the data storage system. Different data storage (or retrieval) modes have different power consumption characteristics and power requirements. In one embodiment, a data storage system includes multiple storage mediums that have different operating power requirements.
Data storage system 204 includes a data storage system controller 210 having an interface 215 for receiving data and commands from host 202 over a communication channel 203. Communication channel 203 comprises any suitable type of channel including, but not limited to, parallel and serial computer buses. In the illustrated embodiment, channel 203 comprises a serial ATA (SATA) computer bus providing a storage-interface for connecting a host bus adapter of host 202 with data storage system 204. In this example, using standard SATA commands (i.e., a standard SATA command structure), host 202 can communicate commands (i.e., write commands, read commands, seek commands, calibrate commands, flush commands, etc.), address information, and/or user data over SATA bus 203 to controller 210. Interface 215 comprises a SATA interface 217 having a plurality of pins for connecting SATA bus 203.
Data storage system controller 210 is configured to receive the commands and data over channel 203 and implement data storage modes for storing the data to storage media in data storage system 204. Further, data storage system controller 210 is also configured to receive data access commands (e.g., read commands) and/or address information and access data stored on media in the data storage system 204. The controller 210 provides the read data to host 202 over channel 203.
As illustrated in
As illustrated in
In the embodiment illustrated in
Host 202 can also include a host system BIOS (Basic Input/Output System) 228. In one example, BIOS programs are stored on a chip and are designed to work with various devices and components of host 202. Host system BIOS 228 provides boot firmware, for example, for identifying, testing, and initializing devices and components of host 202. Host system BIOS 228 can also provide functions related to power management, thermal management, etc.
As illustrated in
In the embodiment illustrated in
In accordance with one embodiment, battery health indicator 205 is transmitted over a SATA bus 203 to SATA interface 217 of controller 210 using special or “vendor unique” commands. The special or “vendor unique” commands can have a different or unique command structure than a set of standard SATA commands used to send other commands (i.e., data read commands, data write commands, etc.) and/or user data to device 204. In one embodiment, a vendor unique command comprises a “pass through” command that is utilized to pass the battery health indicator 205 through controller 220 over bus 203. In one example, the “pass through” command operates to pass battery health information 201 through controller 220 independent of other commands associated with controller 220. In one embodiment, information 201 comprises battery health indicator 205. In another embodiment, information 201 can comprises other information pertaining to power supply 226. For example, controller 220 can be configured to generate indicator 205 based on the information 201.
In accordance with one embodiment, host 202 includes a battery-monitoring feature that provides battery health information 201. In the illustrated embodiment, host 202 includes a driver 230 that is configured to provide battery health information 201 to controller 220. Driver 230 can comprise one or more drivers that are separate from operating system 224. In another embodiment, driver 230 can comprise a device driver of operating system 224. For instance, a software application of host 202 installs a device driver 230. The device driver 230 is configured to filter operating system messages to identify messages that apply to power modes.
In one embodiment, the device driver 230 is configured to filter operating system messages to identify messages that include power information associated with power supply 226. For instance, driver 230 can be configured to filter only operating system messages that include information pertaining to, for example, a charge or energy of the power source 226, a percentage of power remaining in power supply 226, and/or a remaining discharge time or rate of power supply 226, to name a few. Further, driver 230 can be configured to identify messages pertaining to power modes associated with operating system 224 and/or a switch between AC power and battery power. The power information identified by driver 230 can comprise the information 201 provided to controller 220. In another example, a software application can install a device driver 230 that utilizes a polling mechanism configured to periodically make requests to the operating system 224 and/or BIOS 228 for power information.
It is noted that while
In accordance with one embodiment, data storage system controller 210 is configured to implement or adjust a data storage mode based on the battery health indicator 205 received from host 202. For example, controller 210 is configured to select a particular data storage mode from a plurality of data storage modes.
Further, controller 210 can implement a data storage mode based on the battery health indicator 205 and operational characteristics of the data storage system 204. In one embodiment, controller 210 implements a particular mode based on a status of data storage system 204. For example, the data storage mode can be implemented based on the battery health indicator 205 and an amount of data stored in one or more of disk stack 212, non-volatile cache 214, and RAM 216. In another example, controller 210 is configured to control implementation of various diagnostic or maintenance operations in the data storage system 204 based on the battery health indicator 205. For instance, controller 210 can be configured to prevent or limit certain activities in the data storage system 204 that require extensive power use (e.g., fly height calibration of a read/write head, servo runout adjustments, background defect scans, etc.) based on the battery health indicator 205. In one embodiment, if the battery health indicator 205 indicates a battery level below a particular level, controller 210 is configured to delay certain diagnostic and/or maintenance operations in data storage system 204. Controller 210 can be configured to delay such operations until the battery health indicator 205 indicates that the battery level has risen to a level above a threshold and/or the power source is switched to AC power, for example. Further, using multiple threshold levels certain activities can be delayed depending on a level of importance associated with the activities.
Further, some activities performed within the data storage system 204 (e.g. disc spin up, seek operations, high burst rates to buffer, etc.) can have large current excursions, which can cause system problems due to inability of the power source to supply required current bursts. In accordance with one embodiment, controller 210 is configured to efficiently limit peak current excursions which can operate to extend battery life and/or eliminate current peaks which can cause the power source to exceed voltage drop thresholds monitored by the host BIOS. For instance, in one embodiment the controller 210 can modify performance characteristics (e.g. spin up time, seek time) of the data storage system 204.
It is noted that elements described herein with respect to the battery health indicator can be implemented in hardware, software, firmware, and/or a combination thereof. For example, in one embodiment the battery health indicator 205 is processed and data storage modes are implemented using firmware in the data storage system.
Battery health indicator 205 is transmitted using transport mechanism 206 and is, for example, separate from commands and data transmitted from host 202 over channel 203. In one example, the battery health indicator is received at interface 215 and is transmitted independently of data storage mode commands received from host 202. In one embodiment, transport mechanism 206 comprises one or more ports or pins of interface 217 that are separate from a number of ports or pins over which data and commands are transmitted on channel 203.
Step 306 implements a first data storage mode. If the battery level is not above the first threshold, the method proceeds to step 308 where the method determines whether the battery level is above a second threshold. If so, the method implements a second data storage mode at step 310. Otherwise, the method can implement a default data storage mode at step 312.
It is noted that while
At step 406, the method 400 determines whether the battery health indicator indicates a mid-level battery condition. For example, a mid-level battery condition can be predefined as a battery health indicator within a preselected range. In one embodiment, a mid-level battery condition is defined as a battery health indicator indicating that a remaining battery level is within a predefined range (e.g., between 80% and 40%, between 70% and 30%, between 70% and 40%, etc.). If the battery health indicator indicates a mid-level battery condition at step 406, the method proceeds to step 416 where a second data storage mode is implemented. In the embodiment of
At step 414, the method determines whether a low battery condition exists. For example, a low battery condition can be predefined as a battery health indicator below a second preselected threshold (e.g., 30%, 20%, 10%, etc.). If the low battery condition exists, the method proceeds to step 426 wherein a third data storage mode is implemented. In the embodiment of
The data stored to the non-volatile cache is later flushed from non-volatile cache to the disk stack when the controller 210 re-enables the flushing operation. For example, the data can be flushed from the non-volatile cache to the disc stack if the battery health indicator later indicates a different battery condition (e.g., full battery condition, mid-level battery condition). A default data storage mode can be implemented at step 424. For example, the default data storage mode at step 424 can comprise implementing the third data storage mode illustrated at step 426. In another example, a default data storage mode can comprise implementing a “normal” data storage mode, such as the mode described above with respect to step 408.
Referring again to
It is noted that the above-described embodiments illustrate examples of data storage modes that can be implemented in a data storage system based on a battery health indicator. Other types and configurations of data storage modes are also within the scope of the concepts described herein. Further, it is also noted that a data storage system can also be configured to implement data retrieval modes based on a battery health indicator.
It is to be understood that even though numerous characteristics and advantages of various embodiments of the invention have been set forth in the foregoing description, together with details of the structure and function of various embodiments of the disclosure, this disclosure is illustrative only, and changes may be made in detail, especially in matters of structure and arrangement of parts within the principles of the present disclosure to the full extent indicated by the broad general meaning of the terms in which the appended claims are expressed. For example, the particular elements may vary depending on the particular application for the system or method while maintaining substantially the same functionality without departing from the scope and spirit of the present disclosure and/or the appended claims.