# Patent

## Title
Location-aware behavior for a data storage device

## Abstract

A computing device, such as a data storage device, that is location-aware and modifies its behavior depending on its location. In some embodiments, the data storage device may determine its location based on information such as Global Positioning System information, proximity to a wireless network, near-field proximity to another device, etc. The data storage device maintains a profile for various locations in which it is frequently located and records user-behavior at these locations. In addition, the device may be configured or program with specific behaviors at different locations. Based on the location of the device, it may then perform various actions to improve its responsiveness. In one embodiment, a data storage device may enter or exit from a standby state, prefetch various files, etc. based on its proximity to a particular location.

## Background
BACKGROUND
The responsiveness of a computing device is an important characteristic of its performance. Ideally, a computing device is able to respond to a user as quickly as possible.
For example, storage devices attempt to provide access to their stored data as efficiently and as quickly as possible. Today, solid-state drives (SSDs) have become popular due to their near-zero data access-time delay (DATD) performance relative to hard disk drives (HDDs). HDDs, however, still offer higher capacity storage at a lower cost relative to SSDs. Accordingly, HDDs remain popular due to their high capacity and durability. Indeed, many known products, such as solid state hybrid drives (SSHD) now provide a combination of SSD and HDD as a storage solution.
HDDs normally have a high DATD because they are frequently put into a standby mode in order to conserve power, etc. For example, mobile devices, such as a laptop, wireless Network Attached Storage (NAS), or any other mobile device, frequently employ aggressive HDD standby policies. HDDs may also be put into a standby mode for data safety reasons during various movements so that the head would not make contact with the disk.
Unfortunately, when exiting standby mode in response to a data access request, an HDD may take a long time for the drive to spin back up. Moreover, as the hard drive capacities increase, the DATD may also increase when coming out of standby mode.



BRIEF DESCRIPTION OF THE DRAWINGS
The features and advantages of the present embodiments will become more apparent from the detailed description set forth below when taken in conjunction with the drawings, wherein:
FIG. 1 depicts a data storage device in various locations according to an embodiment;
FIG. 2 depicts a data storage device according to an embodiment;
FIG. 3 depicts a process for managing a data storage device according to an embodiment;
FIG. 4 depicts a process for predicting future access of a data storage device based on locations of the data storage device according to an embodiment; and
FIG. 5 depicts a process for managing a data storage device based on predicting a location of the data storage device according to an embodiment.



DETAILED DESCRIPTION
In an embodiment, a data storage device 102 is shown in an embodiment in FIG. 1. In an embodiment, the data storage device 102 comprises a network attached storage device (“NAS”) or direct attached storage device (“DAS”). Furthermore, the data storage device 102 may comprise an electronic device such as a laptop, tablet, set top box, media player, or other electronic device which can store data. As shown in an embodiment shown in FIG. 1, the data storage device 102 may be located in various locations. For example, the data storage device 102 may be located outside of location 1 or location 2. Alternatively the data storage device 102 may originally be located in location 2, but be transitioning from location 2 to location 1. In an embodiment, the location of the data storage device 102 can dictate how the data storage device 102 behaves.
In an embodiment, to determine a location of the data storage device 102, the data storage device 102 can utilize wireless signals 104. In the embodiment shown in FIG. 2, the data storage device 102 comprises a wireless network connection unit 106, a global positioning system (“GPS”) connection unit 108, a near field communications (“NFC”) connection unit 110, a controller 112, and a storage medium 112. In an embodiment, the wireless signals 104 comprise wireless network signals, GPS information, and/or NFC signals.
In an embodiment, the wireless network connection unit 106 is configured to connect to one or more wireless networks and receive signals from the one or more wireless networks. In an embodiment, the signals can comprise wireless network data such as wireless network identification data. For example, the wireless network identification data could be service set identification data (“SSID”) such as SSID 116a and/or SSID 116b. In an embodiment, the SSID can identify the wireless networks. In an embodiment, the wireless networks comprise a WiFi network. In an embodiment, the wireless networks comprise one or more routers.
The controller 112 can utilize, for example, the signals from the one or more wireless networks to determine a current location of the data storage device 102. For example, the storage medium 114 may comprise a list of SSID and their corresponding locations. Alternatively, the SSID themselves may be sufficient information by themselves as a location. In an embodiment, the controller 112 may require the reception of multiple SSIDs before a location is determined. For example, the controller 112 can utilize triangulation to determine where the data storage device 102 is located. This can improve the accuracy of a determination of where the data storage device 102 may be located.
In an embodiment, the wireless network connection unit 106 can also receive the Internet protocol (“IP”) address of the one or more wireless networks. The controller 112 can then utilize the IP address of the one or more wireless networks to determine a location of the one or more wireless network and/or the location of the data storage device 102.
In an embodiment, the GPS connection unit 108 is configured to receive GPS information such as GPS data 118. In an embodiment the GPS data 118 provides information regarding a location of the data storage device 102. Thus, the controller 112 can utilize, for example, the GPS information to determine a current location of the data storage device 102. In an embodiment, the GPS data 118 comprises coordinate information about the location of the data storage device 102. For example, the coordinate information can comprise longitude information, latitude information, and/or altitude information.
In an embodiment, the NFC connection unit 110 is configured to receive NFC signals from a NFC device 120. In an embodiment, the NFC signals provide information regarding a location of the data storage device 102. Thus, the controller 112 can utilize, for example, the NFC signals to determine a current location of the data storage device 102. In an embodiment, the NFC signals indicate that the data storage device 102 is near the NFC device 120. If the NFC device 120 is at a known location, then the controller 112 can determine the approximate location of the data storage device 102.
In an embodiment, based on the current location of the data storage device 102, the data storage device 102 can determine whether to activate the storage medium 114 or not. In an embodiment, the storage medium 114 comprises a hard disk drive, a solid state drive, or any combination thereof. In an embodiment, the hard disk drive comprises a magnetic rotating disk, while the solid state drive comprises a solid state memory.
While the description herein refers to solid state memory generally, it is understood that solid state memory may comprise one or more of various types of solid state non-volatile memory devices such as flash integrated circuits, Chalcogenide RAM (C-RAM), Phase Change Memory (PC-RAM or PRAM), Programmable Metallization Cell RAM (PMC-RAM or PMCm), Ovonic Unified Memory (OUM), Resistance RAM (RRAM), NAND memory (e.g., single-level cell (SLC) memory, multi-level cell (MLC) memory, or any combination thereof), NOR memory, EEPROM, Ferroelectric Memory (FeRAM), Magnetoresistive RAM (MRAM), other discrete NVM (non-volatile memory) chips, or any combination thereof.
Furthermore, in an embodiment, activating the storage medium 114 comprises switching the storage medium 114 from a first operating mode to a second operating mode different than the first operating mode, wherein in the first operating mode, the storage medium 114 consumes less power than the second power state. In an embodiment, the first operating mode comprises a standby mode while the second operating mode comprises a normal operating mode. In an embodiment, this can reduce power consumption by the data storage device 102 while maintaining or substantially maintaining performance of the data storage device 102.
In an embodiment, activating the storage medium 114 comprises prefetching various files or types of files in the storage medium 114. For example, the storage medium 114 may prefetch recent documents when the controller 112 senses that the data storage device 102 is located within a user's work environment. However, the storage medium 114 may prefetch movies or other multimedia files when the controller 112 senses that the data storage device 102 is located within a user's home. In an embodiment, this can reduce fetch times for files and reduce the lag time before a user can play or view of the multimedia files.
In an embodiment, activating the storage medium 114 may allow access to various files depending on the location of the data storage device 102. Thus, the controller 112 may selectively activate the storage medium 114 depending on the location of the data storage device 102. Thus, the storage medium 114 will access various files depending on the location of the data storage device 102. In an embodiment, the controller 112 may deactivate or refrain from activating the storage medium 114 when the controller 112 wishes to restrict access to certain files based on the current location of the data storage device 102. In an embodiment, the data storage device 102 can provide security to files based on the current location of the data storage device 102.
In an embodiment, the files which are accessible based on the location of the data storage device 102 may be encrypted. In such a case, the data storage device 102 may decrypt the files only when the data storage device 102 is at a certain location. Alternatively, in an embodiment, the data storage device 102 may encrypt the files when the data storage device 102 is in a location where access to the files is not permitted. In an embodiment, the files may comprise data stored in the storage medium 114.
In an embodiment, a process for managing the data storage device 102 is shown in FIG. 3. In block S302, the data storage device 102 receives a location signal. For example, the controller 112 can utilize the wireless connection unit 106, the GPS connection unit 108, and/or the NFC connection unit 110 to receive wireless network signals, GPS information, and/or NFC signals. In block S304, the data storage device 102 determines a current location of the data storage device 102. For example, the controller 112 can determine a current location of the data storage device utilizing the wireless network signals, GPS information, and/or NFC signals. In block S306, the data storage device 102 activates the storage medium 114 based on the current location of the data storage device 102. For example, the controller 112 can activate the storage medium 114 based on the current location of the data storage device 102.
In an embodiment, a process for predicting future access of the data storage device 102 based on locations of the data storage device 102 is shown in FIG. 4. In block S402, the locations of the data storage device 102 is recorded. For example, in an embodiment, the data storage device 102 is configured to record the location of the data storage device 102 to a location log for the data storage device 102. In an embodiment, the location log can be stored in the storage medium 114 or another memory in the data storage device 102. In such a case, the portion of the storage medium 114 or the memory in the data storage device 102 can be accessible by the controller 112 regardless of the location of the data storage device 102. In an embodiment, the recording locations of the data storage device 102 comprises receiving and/or recording GPS information, information from a set of wireless network identifiers, or NFC information.
In block S404 a pattern of use of the data storage device 102 is identified based on the recorded locations. For example, the controller 112 can analyze the recorded locations of the data storage device 102 to identifying a pattern of usage of the data storage device 102. In an embodiment, the controller 112 maintains an activity log corresponding to activities that were performed by the data storage device 102. The activity log can be matched up with the location log identify what activities were performed by the data storage device 102 when the data storage device 102 was being used, and at what location. For example, if the data storage device 102 accessed or requested access to certain files at a certain location, such information may be recorded in the activity log and/or the location log. The controller 112 can then analyze both the activity log and the location log to identify a pattern of usage of the data storage device 102.
In an embodiment, the activity log and the location log need not be separate files. Instead they can be a single file, or multiple files. Furthermore, the activity log and the location log may comprise a matrix. In addition, a plurality of access requests that occur within a location may be grouped together.
In block S406, a next access requests may be predicted based on the identified pattern. For example, the controller 112 may predict what file will be accessed next in the storage medium 114 based on the identified pattern. For example, if a certain multimedia file is usually accessed when the user is at home, then the controller 112 may predict that the certain multimedia file will be accessed when the data storage device 102 is at the user's home.
In block S408, the data storage device 102 may be activated based on the predicted next access request. For example, the controller 112 may determine when and how the storage medium 114 in the data storage device 102 should be activated based on the predicted next access request. For example, if the controller 112 predicts that the certain multimedia file will be accessed, the storage device 102 may prefetch the certain multimedia file. In an embodiment, this can improve a responsiveness of the data storage device 102.
In an embodiment, the data storage device 102 can also optionally receive program code that configures activation of the data storage device 102 based on a specific location. For example, the program code may indicate what types of activities the data storage device 102 should perform at what location. In an embodiment, the program code comprises a table, a spreadsheet, a log, a database, a data file or other information which may otherwise provide information to the data storage device 102 how to perform its activities based on locations of the data storage device 102. In an embodiment, the controller 112 can execute the program code or read the program code to configure activation of the data storage device 102 based on a specification location. In an embodiment, the activities performed by the data storage device 102 may be activities to improve its responsiveness.
In an embodiment, a process for managing the data storage device 102 based on predicting a location of data storage device 102 is shown in FIG. 5. In block S502, a series of user access requests of the data storage device 102 is recorded over a period of time. For example, the controller 112 may record the user access requests in the data storage device 102. In an embodiment, the user access requests may be part of the activity log. In block S504, respective locations of the user access requests are identified. For example, the controller 112 can utilize the wireless network signals, GPS information, and/or NFC signals to determine the respective locations of the data storage device 102 when the user access requests are received and/or recorded. As previously noted, the wireless network signals could comprise determining a set of wireless network identifiers.
In block S506, a pattern of user access requests based on the respective locations is identified. For example, the controller 112 can analyze the user access requests to identify a pattern of user access requests. In an embodiment, the controller 112 identifies the pattern of user access by grouping a plurality of access requests that occur within a location.
In block S508, a predicted location of the next user access request is determined based on the identified pattern. For example, the controller 112 can predict where the data storage device 102 will be when it receives the next user access request. In block S510, an action on the data storage device 102 is linked to when the data storage device 102 is within a predetermined proximity to the predicted location of the next user access request. For example, the controller 112 can link an action that the data storage device should perform to when the data storage device 102 is within a predetermined proximity of the predicted location of the next user access request. In an embodiment, the action could include prefetching or accessing data. The action could also include disabling some functions of the data storage device 102. In an embodiment the proximity could be several inches, several feet, several yards, or other distances suitable for controlling functions of the data storage device 102. In an embodiment, the proximity could be determined by the number of wireless networks present.
Those of ordinary skill would appreciate that the various illustrative logical blocks, modules, and algorithm parts described in connection with the examples disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. Furthermore, the embodiments can also be embodied on a non-transitory machine readable medium causing a processor or computer to perform or execute certain functions.
To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and process parts have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the disclosed apparatus and methods.
The parts of a method or algorithm described in connection with the examples disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. The parts of the method or algorithm may also be performed in an alternate order from those provided in the examples. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, an optical disk, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an Application Specific Integrated Circuit (ASIC).
The previous description of the disclosed examples is provided to enable any person of ordinary skill in the art to make or use the disclosed methods and apparatus. Various modifications to these examples will be readily apparent to those skilled in the art, and the principles defined herein may be applied to other examples without departing from the spirit or scope of the disclosed method and apparatus. The described embodiments are to be considered in all respects only as illustrative and not restrictive and the scope of the disclosure is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.

## Claims

1. A method of managing a data storage device, said method comprising:
receiving, at the data storage device, signal information that indicates a location;
determining a current location of the data storage device;
determining, by the data storage device, whether a storage medium of the data storage device is to be activated based on the current location; and
activating the storage medium of the data storage device based on the determination, wherein activating the storage medium comprises prefetching a file stored on the storage medium based on the current location.

2. The method of claim 1, wherein receiving signal information that indicates a location comprises receiving global positioning system information.

3. The method of claim 1, wherein receiving signal information that indicates a location comprises receiving a signal from a wireless network.

4. The method of claim 1, wherein receiving signal information that indicates a location comprises receiving a signal from at least one WiFi network.

5. The method of claim 1, wherein receiving signal information that indicates a location comprises receiving a near field communication signal from another device.

6. The method of claim 1, further comprising recording a history of locations for the data storage device based on the current location of the data storage device.

7. The method of claim 1, further comprising receiving program code that configures activation of the storage medium of the data storage device for a specific location.

8. The method of claim 1, wherein the activating the storage medium of the data storage device based on the determination further comprises encrypting data stored in the storage medium based on the current location.

9. The method of claim 1, wherein the activating the storage medium of the data storage device based on the determination further comprises decrypting data stored in the storage medium based on the current location.

10. A method of predicting future access of a data storage device based on locations of the data storage device, said method comprising:
recording locations of the data storage device;
identifying a pattern of use of the data storage device based on the recorded locations;
predicting a location, on media of the data storage device, of a next access request based on the pattern; and
activating the data storage device based on the predicted location.

11. The method of claim 10, further comprising grouping a plurality of access requests that occur within a location.

12. The method of claim 10, further comprising arranging the respective locations in a matrix.

13. The method of claim 10, further comprising receiving program code that configures activation of the data storage device based on a specific location.

14. The method of claim 10, wherein recording locations of the data storage device comprises receiving global positioning system information by a receiver in the data storage device.

15. The method of claim 10, wherein recording locations of the data storage device comprises recording a set of wireless network identifiers.

16. A method of managing a data storage device based on predicting a location of the data storage device, said method comprising:
recording a series of user access requests of the data storage device over a period of time;
determining respective locations of the user access requests;
identifying a pattern of user access requests based on the respective locations;
determining a predicted location, on media of the data storage device, of a next user access request based on the identified pattern; and
linking an action associated with the predicted location of the next access request to when the data storage device is within predetermined proximity to a predicted geographical location.

17. The method of claim 16, wherein identifying the pattern of user access requests comprises grouping a plurality of access requests that occur within a location.

18. The method of claim 16, wherein determining respective locations of the user access requests comprises receiving global positioning system information by a receiver in the data storage device.

19. The method of claim 16, wherein determining respective locations of the user access requests comprises determining a set of wireless network identifiers.