Providing support for device states
The sensor controller in this solution addresses the inefficiencies in power management by using contextual data to dynamically adjust the operating conditions of a computing device, resulting in optimized power usage and performance.
Patent Information
- Application Number
- DE112013004401
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2012-09-10
- Filing Date
- 2013-09-06
- Publication Date
- 2025-05-15
- Estimated Expiration
- 2033-09-06
AI Technical Summary
Existing devices lack efficient power management systems that can dynamically adjust operating conditions based on contextual data, leading to suboptimal power usage and performance.
A sensor controller is configured to collect contextual data from various sensors and modify the operating conditions of a computing device, such as waking up the main processor when a specified threshold is reached, thereby optimizing power management.
The solution enables efficient power management by dynamically adjusting device states based on contextual data, reducing power consumption while ensuring optimal performance and device protection.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Technical Field
[0001] This disclosure generally relates to providing support for power management and operating states of a device based on context-dependent data. Specifically, this disclosure relates to a method that involves a sensor controller configured to collect context-dependent data and modify the operating states of a computer device. Background
[0002] Some devices may use operating systems, which in turn may use open standards for device configuration and power management by the operating system. These open standards can unify, validate, and improve existing power and configuration standards for hardware devices. Some open standards place power management under the control of the operating system. Open standards such as the Advanced Configuration and Power Interface (ACPI) specification aim to unify, validate, and improve existing power and configuration standards for hardware devices, including placing power management under the control of the operating system.
[0003] US 2006 / 0 176 174 A1 describes a position tracking system for tracking the position of an object. According to various embodiments, the tracking system comprises a tracking device connected or otherwise attached to the object to be tracked. The tracking device may include, among other things, an inertial sensor array, radio transceivers, and a processor. The position tracking system may also include a host processing system in communication with the tracking device. The position tracking system may provide position information with variable resolution depending on the environment in which the object is moving. In a "wide resolution" area, the system may calculate a general position for the object based on a cell ID / card correlation architecture of the wireless telephone network.In a high-resolution range, higher position resolution can be achieved by combining a wireless auxiliary system and inputs from inertial sensors. In high-resolution mode, the system can exploit specific motion patterns, which can be identified as motion "signatures" characteristic of certain types of motion. Based on these motion signatures, kinematic models (or object motion models) can be created, and the position tracking system can estimate the object's state based on the kinematic model for the object's current mode. During analysis, adaptive and cascaded Kalman filtering can be used to more accurately estimate the object's position and velocity based on the motion pattern.
[0004] US 2010 / 0 033 424 A1 describes an electronic device and a control method capable of reducing power consumption. The electronic device, having a normal mode in which a first electrical power is consumed and a power-saving mode in which a second electrical power lower than the first electrical power is consumed, includes a first sensor and a second sensor whose power consumption is lower than that of the first sensor. In the power-saving mode, the power supply to the first sensor is restricted, the second sensor is set to the power-saving mode, a trigger for restoring the power-saving mode to the normal mode is detected using the second sensor set to the power-saving mode, and the power-saving mode is reset to the normal mode based on the detected trigger.
[0005] US 2006 / 150 731 A1 describes a wearable device comprising an accelerometer device and a support element in the accelerometer device, comprising a first body made of semiconductor material in which a sensor element is integrated that detects movements of the first body and generates a signal correlated with the detected movement, a second body made of semiconductor material in which conditioning electronics are integrated and which is electrically connected to the first body, and conductive bumps that establish an electrical connection between the first and second bodies and the support element. In particular, the conductive bumps connect the first and second bodies to the support element without a housing in between.
[0006] US 2006 / 053311 A1 describes a method in which context information associated with a processing system is determined. A performance state associated with the processing system is then automatically caused to transition from a first performance state to a second performance state based on the context information.
[0007] US 2007 / 0 288 467 A1 describes a system that contains manufacturer-specific converters for collecting manufacturer-specific data from sensors and converting it into normalized data. The manufacturer-specific data comprises at least a first input and a second input. The first input corresponds to a first language and the second input corresponds to a second language, where the first language is different from the second language. The manufacturer-specific converters receive normalized commands and output manufacturer-specific commands to a managed resource. A converter module receives the normalized data and converts it into an output that corresponds to a common language. The converter module also receives and outputs normalized commands that correspond to the common language.The semantic processing logic receives the normalized data and compares the normalized data with a predetermined set of knowledge bases and creates a new object that is sent to an autonomous manager. Summary of the invention
[0008] The object underlying the invention is to provide a sensor controller that enables efficient power management of a device communicatively coupled to the sensor controller. This object is achieved by the subject matter of the independent claims. Further advantageous embodiments are specified in the subclaims. Short description of the drawings Fig. 1 is a block diagram of a computing device that provides support for handling device states based on contextual data, according to embodiments. Fig. 2 is a system for providing support for managing device states based on contextual data, according to embodiments. Fig. 3 is a process flow diagram illustrating a method for providing support for managing device states based on contextual data, according to embodiments. Fig. 4 is a block diagram illustrating a tangible, non-transitory, computer-readable medium storing code for providing support for handling device states based on context-dependent data, according to embodiments.
[0009] Throughout the disclosure and in the figures, the same reference numbers are used to refer to like components and features. 100 series numbers refer to features originally described in Fig. 1, numbers of the 200 series refer to features originally found in Fig. 2 can be found, etc. Description of the embodiments
[0010] As described above, the present techniques generally relate to providing support for power management, including transitions between operating states of a device based on context-dependent data. Power management may include providing power management data that includes policies as well as the operating state of the device. In general, a sensor controller may be configured to receive the power management data, including the operating state of the device. The sensor controller may collect data from one or more sensors. The collected data from the sensors may indicate the context or environment of the device.By analyzing the data collected from the sensors in relation to the power management data, the sensor controller can modify the operating state of the device, for example, by waking up a main processor of the device when the data collected from the sensors indicates that a specified threshold may be reached.
[0011] In embodiments, the sensor controller may be referred to herein as a sensor controller hub or a sensor hub having sensors communicatively coupled to the sensor controller hub. In embodiments, the operating states may be device states defined by open standard specifications such as the Advanced Configuration and Power Interface (ACPI) specification for configuration and power management by the operating system. In particular, in embodiments, the device states may be defined by the Human Input Device (HID) Universal Serial Bus (USB) Committee and may include a full power state, a power-saving state, a standby state, a sleep-with-wake state, and a powered-off state.
[0012] For the purposes of this document, contextual data is data that indicates the context or environment of a computing device. Contextual data is data collected from one or more sensors and includes various data such as magnetic headings, magnetic north, linear acceleration, angular velocity, global position, altitude, pressure, ambient light, proximity to a user or another device, and the like. The sensor controller may consume relatively less power than the main processor of the computing device and may be configured to monitor an environment or context of the computing device while the main processor is asleep.
[0013] Fig. 1 is a block diagram of a computing device 100 that provides support for managing device states based on context-dependent data, according to embodiments. The computing device 100 may be, for example, a laptop, desktop computer, tablet computer, mobile device, server, or mobile phone, among others. The computing device 100 may include a main processor 102 adapted to execute stored instructions, as well as a storage device 122 that stores instructions executable by the main processor 102. The main processor 102 may be a single-core processor, a multi-core processor, a computer cluster, or any number of other configurations. The main processor 102 may be implemented as a Complex Instruction Set Computer (CISC) processor, a Reduced Instruction Set Computer (RISC) processor, an x86 instruction set compatible processor, a multi-core processor, or any other microprocessor or central processing unit (CPU).In some embodiments, the main processor 102 includes dual-core processor(s), dual-core mobile processor(s), or the like.
[0014] The storage device 122 may include random access memory (e.g., SRAM, DRAM, zero-capacitor RAM, SONOS, eDRAM, EDO RAM, DDR RAM, RRAM, PRAM, etc.), read-only memory (e.g., Mask ROM, PROM, EPROM, EEPROM, etc.), flash memory, or other suitable storage systems. The instructions stored in the storage device 122 and executed by the main processor 102 may be used to provide support for handling device states based on context-dependent data.
[0015] The main processor 102 may be connected via a system bus 106 (e.g., PCI, ISA, PCI Express, HyperTransport®, NuBus, etc.) to an input / output (I / O) device interface 108 adapted to connect the computing device 100 to one or more I / O devices 110. The I / O devices 110 may include, for example, a keyboard and a pointing device, where the pointing device may include, among other things, a touchpad or a touch screen. The I / O devices 110 may be built-in components of the computing device 100 or may be devices externally connected to the computing device 100.
[0016] The main processor 102 may also be connected via the system bus 106 to a display interface 112 adapted to connect the computing device 100 to a display device 114. The display device 114 may include a screen that is a built-in component of the computing device 100. The display device 114 may also include, among other things, a computer monitor, a television, or a projector that is externally connected to the computing system 100.
[0017] Computing device 100 may also include a storage device 104. Storage device 104 may be physical storage such as a hard drive, an optical drive, a memory stick, an array of drives, or a combination thereof. Storage device 104 may also include remote storage drives. Storage device 104 may also include an operating system 105. Storage device 104 may store instructions to provide support for handling device states based on context-dependent data. In some embodiments, operating system 105 may have one or more drivers installed on it. The drivers enable a piece of hardware or an application installed on operating system 105 to communicate with operating system 105, applications, or other hardware of computing device 100, including one or more sensors 107.The drivers may also be used to enable the operating system 105 to communicate policies and commands regarding what actions should be performed when operating state transitions occur at the sensor controller 126, according to embodiments. In embodiments, the sensors 107 are connected to the processor 102 via the bus 106. The sensors 107 may also be directly connected to the processor 128 via a private bus (not shown) and communicatively coupled to the processor 102 via the processor 128 acting as an intermediary. In embodiments, the drivers are installed on the storage device 122. The storage device 122 may include commands used to provide support for handling device states based on context-dependent data.
[0018] The sensor controller 126 may include a processor 128. In embodiments, the processor 128 is distinct from the main processor 102 of the computing device 100. The sensor controller 126 may also include a memory extension or storage device 129 with instructions stored thereon to provide support for handling device states based on context-dependent data.
[0019] The processor 128 may execute stored instructions stored on either storage device 122 and / or storage device 104 and / or storage device 129 to provide support for handling device states based on context-dependent data. The instructions may cause the processor 128 to receive power management data, including operational data of the computing device. The instructions may also cause the processor 128 to collect context-dependent data from the one or more sensors 107. The power management data may also include power management policies related to the operational state of the computing device. In embodiments, the policies may instruct the processor 128 to wake the computing device 100 if the operational data indicates that the device is in the sleep state and based on the context-dependent data collected by one or more sensors 107.The one or more sensors 107 may include an accelerometer, a gyrometer, a proximity sensor, a motion detection sensor, a real-time clock, and the like. The instructions may cause the processor 128 to modify the operating state of the computing device based on the contextual data. For example, the contextual data may indicate the proximity of the user and that the user is nearby, and may wake the computing device 100 from a sleep state, as described in more detail herein.
[0020] The block diagram of Fig. 1 is not intended to indicate that the computing device 100 implements all of the Fig. 1. In addition, depending on the details of the particular implementation, the computing device 100 may include any number of additional components not shown in Fig. 1 components shown.
[0021] Fig. 2 is a system 200 for providing support for managing device states based on context-dependent data, according to embodiments. The system 200 may include the sensor controller 126 and the operating system 105 embodied in the computing device 100 of Fig. 1 may be included. Additionally, the system 200 may be incorporated into a personal computer (PC), a laptop computer, an ultra-laptop computer, a tablet, a touchpad, a portable computer, a handheld computer, a palmtop computer, a personal digital assistant (PDA), a mobile phone, a combination of a mobile phone and a PDA, a television, a smart device (e.g., a smartphone, smart tablet, or smart TV), a mobile internet device (MID), a messaging device, a data communication device, and the like.
[0022] As in Fig. 2, the sensor controller 126 may be communicatively coupled to the operating system 105 and may include the processor 128. The instructions involved in providing position support to the operating system 105 may be executed via the processor 128 rather than a main processor such as the main processor 102 of the computing device 100. By including the processor 128, power may be conserved when processing the task of providing position data to applications on the operating system 128.
[0023] Fig. 2 is a system for providing support for managing device states based on context-dependent data, according to embodiments. The system 200 may also include one or more sensors 202, 204, 206, 208, which may be included in the one or more sensors 107. Specifically, the one or more sensors 107 may include, among other sensors, an accelerometer, a gyrometer, an ambient light sensor, a real-time clock sensor, a GPS core module, among others, which may be useful for determining the context of the computing device 100 from Fig. 1. The sensors 202, 204, 206, 208 may be communicatively coupled to the sensor controller 126 through an interface, including, but not limited to, an I2C bus, a USB cable, and the like. The sensor controller 126 may also be communicatively coupled to the operating system 105 through the interface 106. The one or more sensors 202, 204, 206, 208 may also be included as internal components of the sensor controller 126.
[0024] In operation, the context-dependent data may include acceleration data, GPS data, orientation data, ambient light data, real-time clock data, and the like. The sensor controller 126 of the system 200 may receive context-dependent data from a sensor, such as one of the sensors 202, 204, 206, 208. The sensor controller 126 may include the processor 128. The processor 128 may include various software modules configured to perform functions to provide support for determining the device state of the computing device 100 from Fig. 1 to be modified.
[0025] Although not shown in Fig. 2, the system 200 may include the main processor 102 of the computing device 100 described with reference to Fig. 1. The sensor controller 126 may also include a computer-readable medium or storage device 129 storing instructions that, when executed by the processor 128, instruct the processor 128 of the sensor controller 126 to receive power management data including an operating state of the computing device 100 communicatively coupled to the sensor controller 126. The instructions may also instruct the processor 128 to modify the operating state of the computing device 100 based on the context-dependent data.
[0026] The sensor controller 126 may receive power management data including the operating state of the computing device 100. For example, the power management data may describe the operating state of the main processor 102 of the computing device 100. The operating states may include one or more of a running or full power state, a power-saving state, a standby state, a sleep state, and a powered-off state. In some embodiments, the operating states are defined by the ACPI specification standards for device configuration and power management. For example, the sleep state may be configured to describe when the main processor 102 is asleep and can be woken up.As another example, the powered-off state can be configured to describe when the main processor is completely powered off and cannot be woken up by the sensor controller 126, but rather must be powered on, for example, by a power switch.
[0027] The commands can further instruct the processor 128 to analyze the context-dependent data to determine when the context-dependent data indicates that a predetermined threshold has been reached. When activating the sensor controller 126 to wake up the main processor 102, the computing device 100 may consume relatively less power than if the context-dependent data were analyzed by the main processor 102.
[0028] In some embodiments, the predetermined threshold may be determined by a user of computing device 100. In other embodiments, the predetermined threshold may be determined by an application or program installed on operating system 105. Thresholds may be determined by exceeding the threshold, falling below the threshold, reaching the threshold, crossing a zero point of the threshold, exceeding a time-relative frequency or period, a predetermined minimum or maximum valid range, an amount of data received that defines the predetermined threshold, any combination thereof, or the like.In some embodiments, the predetermined threshold is sensor-specific and may be reached by an event that is sensor-specific, including: meeting a gravitational force threshold for an accelerometer; meeting an angular velocity for a gyrometer; meeting a specified light level for an ambient light sensor; or the like. The sensor controller 126 is configured to collect context-dependent data and analyze the context-dependent data when the main processor 102 is in the sleep state, as well as in any other device state.
[0029] In some embodiments, the stored instructions may further instruct the processor 128 to modify the operation of the sensor controller 126 based on the device state data. For example, the power management data may indicate that the main processor 102 of the computing device 100 is in the off state. The processor 128 of the sensor controller 126 may shut down one of the one or more sensors 202, 204, 206, 208 when the main processor 102 is in the off state. Additional examples are provided below.
[0030] In embodiments, computing device 100 may be a laptop, and it may be desirable to provide protection for memory 104, which may be a hard disk drive. In some examples, memory 104 may be physically damaged if it has been subjected to excessive linear accelerations, which could occur if the laptop were dropped from a table to the floor, even if processor 102 is in a sleep or powered-down state. Sensor controller 126 may have received power management data from processor 102 specifying a linear acceleration threshold. In response, sensor controller 126 may disable most sensors 204, 206 except accelerometer 202 and monitor only accelerometer 202 for linear accelerations greater than or equal to the threshold. In embodiments, sensor controller 126 may provide commands to main processor 102.When the threshold is reached or exceeded, the sensor controller 126 may send a message to the hard disk drive to disable read / write heads connected to the hard disk drive, thereby protecting the hard disk drive from damage after a full impact. The message sent by the sensor controller 126 may either be delivered via the processor 102 after waking up the processor 102, or, for convenience, the message may be transmitted directly to the hard disk drive using sideband signaling.
[0031] In embodiments, computing device 100 may be a tablet PC, and it may be desirable to provide map-based navigation to a user while the user and the computing device are in motion. Processor 102 may be programmed to enter a power-saving mode during brief periods of unnoticed acceleration. Processor 102 may also notify sensor controller 126 of power management data, including specified linear acceleration and rotational velocity thresholds suitable for map-based navigation. In response, sensor controller 126 may disable most sensors except accelerometer 202, including gyrometer 204. Gyrometer 204 may be disabled because it may consume significantly more power than other sensors.When the user is moving again (as detected by accelerometer 202), sensor controller 126 can turn on gyrometer 204 so that turns around a street corner (as detected by gyrometer 204) can be monitored. This technique of using activity at one sensor to determine when a higher-performance sensor should be automatically turned on or off is referred to as "sensor cascading."
[0032] In embodiments, computing device 100 may be an "all-in-one" desktop computer (meaning the computer motherboard and display are integrated into a single chassis), and it is desirable to use a camera to perform facial recognition of the user as a biometric factor for login authentication. The camera may consume significant power to capture images of the user, regardless of whether the user is actually present in front of the computer. Processor 102 may be programmed to enter a low-power sleep or off state during periods of user inactivity and may notify sensor controller 126 of power management data including a specified user proximity threshold. In response, sensor controller 126 may turn off the camera and most of sensors 202, 204 except proximity sensor 206.When the user approaches computing device 100 and exceeds the threshold for proximity sensor 206, sensor controller 126 may turn on the camera and wake computing device 100. The camera may perform facial recognition of the user and provide authentication to operating system 105.
[0033] The processor 128 of the sensor controller 126 may include one or more microdrivers 212, 214, 216, 218 of the processor 128. The one or more microdrivers 212, 214, 216, 218 may format the context-dependent data received from the sensors 202, 204, 206, 208 by removing any manufacturer-specific indicators, or by formatting the context-dependent data to describe the context-dependent data in a generic manner. Each of the one or more microdrivers 212, 214, 216, 218 may be individually coupled to an associated type of sensor to which each is connected. For example, the microdriver 212 may be coupled to the sensor 202, which may be an accelerometer.As described, each of the one or more microdrivers 212, 214, 216, 218 can format context-dependent data by removing manufacturer-specific indicators, including but not limited to, manufacturer registration records. The one or more microdrivers 212, 214, 216, 218 can also be configured to instruct the one or more sensors 202, 204, 206, 208 to collect the context-dependent data.
[0034] The system 200 may also include a sensor manager module 220 of the processor 128. The sensor manager module 220 may analyze the context-dependent data collected by the one or more sensors 202, 204, 206, 208. The sensor manager module 220 may analyze the context-dependent data to determine whether the predetermined threshold has been reached. The sensor manager module 220 may perform various actions in response to the predetermined threshold being reached. For example, the sensor manager module 220 may be configured to generate a bus-specific wake-up signal and / or a bus-independent sideband GPIO (general-purpose input / output) signal to be sent to the operating system 105 of the computing device 100.The sensor manager module 220 can also be configured to modify the operation of the sensor controller 126 by turning off one of the one or more sensors 202, 204, 206, 208 based on the power management data, which indicates, for example, that the main processor 102 of the computer device 100 is in the off state.
[0035] In some embodiments, sensor 208 may be a real-time clock sensor configured to generate timestamp data associated with contextual data collected by any of the one or more sensors 202, 204, 206. The real-time clock sensor may be embedded as part of sensor controller 126 or may be an external component communicatively coupled to sensor controller 126. Microdriver 218 may be a real-time clock microdriver configured to instruct the real-time clock sensor to collect timestamp data. Processor 128 may be configured to associate the timestamp data with the analyzed contextual data. Sensor manager module 220 may be configured to store the associated timestamp data and analyzed contextual data in storage device 210 before the predetermined threshold is reached.The sensor controller 126 may be configured to provide the associated timestamp data and the analyzed context-dependent data to the main processor 102 once the predetermined threshold has been reached. Upon providing the associated timestamp data and analyzed context-dependent data to the main processor 102, the main processor 102 may be provided with relatively more data indicative of the context that could have led to the predetermined threshold being reached than if the stored data had not been provided.
[0036] The sensor controller 126 may include a host manager module 222 and one or more bus-specific microdrivers 224, 226, 228. The sensor controller 126 may be configured to provide signals from the sensor manager module 220 to the host operating system 105 via the host manager module 222 and the one or more bus-specific microdrivers 224, 226, 228. The host manager module 222 may be programmed to provide generic bus-independent services to the sensor manager module 220 and to enable a plurality of bus interfaces to be deployed individually or simultaneously by intermediating bus-specific microdrivers 224, 226, 228.The bus-specific microdrivers 224, 226, 228 may be configured to communicate with the operating system 105 via one or more system buses including, for example, a universal serial bus (USB), Peripheral Component Interconnect Express (PCIe), a simple peripheral bus framework (SPB), a vendor-specific I. 2 C-Bus and the like. Therefore, microdriver 224 may be a USB interface microdriver configured to interface with a USB driver 232 of operating system 105. Microdriver 226 may be a PCIe interface microdriver configured to interface with PCIe driver 232 of operating system 105. Microdriver 228 may be an I 2 C interface microdriver configured to work with an I 2C driver 234 of the operating system 105. These bus-specific microdrivers 224, 226, 228 may be programmed to translate bus-specific signaling (USB-specific signaling, PCIe-specific signaling, or I2C-specific signaling) into generic bus-independent equivalents understood by the host manager module 222.
[0037] The operating system 105 may include various other components, including a Human Interface Device (HID) driver stack 236, an HID sensor class driver 238, an operating system power management module 240, and an operating system device manager control panel 242. The operating system device manager control panel 242 may be an application installed on the operating system 105 and configured to allow a user to set policies, rules, conditions, and the like that may establish the predetermined threshold discussed above with respect to the operation of the sensor controller 126. The predetermined thresholds may be provided to the sensor controller 126.The operating system power management module 240 may be configured to provide the power management data and the predetermined threshold, including other policies, rules, and conditions, via drivers, including the HID sensor class driver 238. The HID driver stack 236 may be configured to format the data, including the power management data, according to a standard state property format associated with HID specification standards. The HID sensor class driver 238 may also be configured to communicate the analyzed context-dependent data provided by the sensor controller 126 to the operating system 105 via an operating system-specific sensor application programming interface.
[0038] Fig. 3 is a process flow diagram illustrating a method 300 for handling device states based on contextual data, according to embodiments. The method 300 may be performed by the computing device 100 in embodiments of Fig. 1. The method 300 may be executed by the sensor controller 126 in cooperation with the operating system 105 of Fig. 1 and / or 2 are executed.
[0039] At block 302, context-dependent data may be collected from a sensor communicatively coupled to a sensor controller. In one example, the context-dependent data may be accelerometer data indicating the acceleration of the device.
[0040] The method flow continues at block 304, where power management data including an operating state of a device is received. The power management data may include whether the device is awake, asleep, powered off, or the like. The power management data may be provided to the sensor controller from the device via various drivers and applications configured to provide data including signals indicative of device state and transitions in the device state.
[0041] At block 306, the operating state of the device may be modified based on the context-dependent data. The operating state of the device may be modified if the context-dependent data indicates that a predetermined threshold has been reached. For example, if the power management data indicates that the device is in a sleep state, the sensor controller may modify the operating state of the device by waking the device when the context-dependent data indicates that the predetermined threshold has been reached.
[0042] An acceleration meter threshold value can be defined in units of measure called "G's", where 1.0 G represents the acceleration due to gravity towards the center of the Earth. While stationary on the Earth's surface, an acceleration meter is expected to report 1.0 G towards the center of the Earth. Actual linear acceleration movements of the computer device cause (through vector addition) the acceleration meter to report a value that differs from 1.0 G. The operating state of a computer device can be modified based on a change in the measurement of the acceleration meter. For example, a threshold value of 0.2 G can indicate a change in the operating state when a value less than or equal to 0.8 G or a value greater than or equal to 1.2 G is reported. This type of threshold value is relative since it defines a range around a nominal value.
[0043] An ambient light sensor threshold may be defined in units of measurement called "lux." Indoors, an ambient light sensor would typically be expected to report in the range of 10 to 1,000 lux, while outdoors, a value of 10,000 or higher would be typical. In some examples, a threshold of any suitable lux value may trigger a change in the operating state of a computing device. For example, a change in operating state may occur when a computing device moves from outdoors to indoors, or when a computing device moves from indoors to outdoors. This type of threshold can be any fixed value, often between two nominal values.
[0044] A proximity sensor threshold may be defined in distance measurement units such as "centimeters." In some examples, a user may be expected to be positioned within a certain distance of a computing device. For a user who is not within a certain distance of the computing device, a proximity sensor would result in a very large number or a symbolic equivalent of "infinity." A threshold may be triggered when a user approaches within a specific distance of the computing device.
[0045] Computing device 105 may include any variety of computing devices. Examples of a computing device may include a personal computer (PC), a laptop computer, an ultra-laptop computer, a tablet, a touchpad, a portable computer, a handheld computer, a palmtop computer, a minicomputer (personal digital assistant (PDA), a mobile phone, a combination mobile phone and PDA, a television, a smart device (e.g., smartphone, smart tablet, or smart TV), a mobile internet device (MID), a messaging device, a data communication device, and the like.
[0046] An example of a computing device may also include a computer arranged to be worn by a person, such as a wrist computer, finger computer, ring computer, eyeglass computer, belt clip computer, wristband computer, shoe computer, clothing computer, pen computer, magnifying glass computer, or any other suitable type of wearable or tangible computer. For example, the computing device may be implemented as a smartphone capable of executing computer applications as well as voice communications and / or data communications. Although some embodiments may be described as being implemented as a smartphone, it should be understood that other embodiments may be implemented using other mobile computing devices.The computing device may also include a graphics processing unit (GPU) configured to execute stored instructions and a storage device that stores instructions.
[0047] Fig. 4 is a block diagram illustrating a tangible, non-transitory, computer-readable medium 400 storing code for providing support for handling device states based on context-dependent data, according to embodiments.
[0048] The tangible, non-transitory, computer-readable medium 400 may be accessed by a processor 402 via a computer bus 404. Further, the tangible, non-transitory, computer-readable medium 400 may include code configured to instruct the processor 402 to perform the methods described herein.
[0049] The various software components discussed herein may be embodied on the tangible, non-transitory, computer-readable medium 400 as in Fig. 4. For example, a detection module 406 may be configured to detect and collect context-dependent data from a sensor communicatively coupled to a sensor controller. The detection module 406 may also be configured to receive power management data, including an operating state of a device. For example, the tangible, non-transitory computer-readable medium 400 may be stored on a sensor controller, such as the sensor controller 128 of Fig. 1-2 which is communicatively connected to a device such as the computing device 100 of Fig. 1 can be coupled.
[0050] The non-transitory computer-readable medium 400 may also include a determination module 408 configured to determine when the context-dependent data indicates that a predetermined threshold has been reached. For example, the predetermined threshold may be related to a level of ambient light. When the level of ambient light is detected by an ambient light sensor communicatively coupled to the physical, non-transitory, computer-readable medium, the determination module 408 may determine that the predetermined threshold has been reached.
[0051] The non-transitory computer-readable medium 400 may also include a modification module 410. The modification module 410 may be configured to modify the operating state of the device based on the context-dependent data. For example, the context-dependent data may indicate that the predetermined threshold has been reached, and the power management data may indicate that the device is in a sleep state, and the tangible, non-transitory computer-readable medium may, via the modification module 410, wake the device by waking the device's main processor. EXAMPLE 1
[0052] A sensor controller is described herein. The sensor controller includes a processor. The sensor controller also includes a sensor to collect context-dependent data. The sensor controller also includes a computer-readable medium storing instructions that, when executed by the processor, instruct the processor to receive power management data, including an operating state of a device communicatively coupled to the sensor controller. The instructions may also instruct the processor to modify the operating state of the device based on the context-dependent data and the power management data.
[0053] The sensor controller may include additional processors within the sensor controller. The sensor controller may also include additional sensors. The sensors may be part of the sensor controller, or they may be external components of the sensor controller and communicatively coupled to the sensor controller. EXAMPLE 2
[0054] A method is described herein. The method may include collecting context-dependent data from a sensor communicatively coupled to a sensor controller. The method may also include receiving power management data including an operating state of a device communicatively coupled to the sensor controller. The method may also include changing the operating state of the device based on the context-dependent data and the power management data.
[0055] Context-dependent data can be collected in parallel with receiving power management data. Context-dependent data can also be collected after receiving power management data. Furthermore, modifying the device's operating state can be based on context-dependent data alone or on power management data alone. EXAMPLE 3
[0056] At least one machine-readable medium is described herein. The computer-readable medium may have instructions stored thereon that, in response to being executed on a computing device, cause the computing device to collect context-dependent data from a sensor communicatively coupled to a computing device. The instructions may also cause the computing device to receive power management data, including an operating state of a main processor communicatively coupled to the computing device. The instructions may also cause the computing device to modify the operating state of the main processor based on the context-dependent data and the power management data.
[0057] The at least one computer-readable medium may execute the instructions in a different order. For example, the context-dependent data may be collected in parallel with receiving power management data. Furthermore, the context-dependent data may be collected after receiving power management data. Furthermore, the modification of the device's operating state may be based on context-dependent data alone or on power management data alone. EXAMPLE 4
[0058] A system is described herein. The system may include a sensor controller communicatively coupled to a sensor to collect context-dependent data; a processor of the sensor controller. The system may also include a main processor of a device communicatively coupled to the sensor controller. The system may also include a computer-readable medium of the sensor controller storing instructions that, when executed by the processor, instruct the processor to receive power management data, including an operating state of a device communicatively coupled to the sensor controller. The instructions may also instruct the processor to modify the operating state of the device based on the context-dependent data and the power management data.
[0059] The commands can be executed in a different order. For example, the context-dependent data can be collected in parallel with receiving power management data. Furthermore, the context-dependent data can be collected after receiving power management data. Furthermore, the modification of the device's operating state can be based on context-dependent data alone or on power management data alone. The sensor controller can also include additional processors within the sensor controller. Furthermore, the sensor controller can include additional sensors. The sensors can be part of the sensor controller, or they can be external components to the sensor controller and communicatively coupled to the sensor controller.
[0060] Some embodiments may be implemented in one or a combination of hardware, firmware, and software. Some embodiments may also be implemented as instructions stored on the tangible non-transitory machine-readable medium that can be read and executed by a computing platform to perform the described operations. Furthermore, a machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium may include read-only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices, electrical, optical, acoustic, or other forms of propagated signals (e.g., carrier waves, infrared signals, digital signals, the interfaces that transmit and / or receive signals, etc.), and others.
[0061] An embodiment is an implementation or example. Reference to "one embodiment," "some embodiments," "various embodiments," or "other embodiments" means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least some embodiments, but not necessarily all embodiments of the present techniques. The various performances of "one embodiment" or "some embodiments" do not necessarily refer to the same embodiments.
[0062] Not all components, features, structures, characteristics, etc., described and shown herein need be included in a particular embodiment or embodiments. For example, if the description of a component, feature, structure, or characteristic states that it "may" or "could" be included, then that particular component, feature, structure, or characteristic is not required to be included. If the description or claims refer to "a" element, that does not mean that there is only one of that element. If the description or claims refer to "an additional" element, that does not preclude there being more than one of the additional element.
[0063] It should be noted that although some embodiments have been described with reference to particular implementations, other implementations are possible according to some embodiments. In addition, the arrangement and / or order of circuit elements or other features shown in the drawings and / or described herein need not be arranged in the particular manner shown and described. Many other arrangements are possible according to some embodiments.
[0064] For each system shown in a figure, the elements may, in some cases, each have the same reference number or a different reference number to indicate that the represented elements could be different and / or similar. However, an element may be flexible enough to have different implementations and may work with some or all of the systems shown or described herein. The various elements shown in the figures may be the same elements, or they may be different. Which is called a first element and which a second element is arbitrary.
[0065] It should be understood that specific statements in the above-mentioned examples may be used anywhere in one or more embodiments. For example, any optional features of the computing device described above may also be implemented with respect to any of the methods described herein or on the computer-readable medium. Moreover, although flowcharts and / or state diagrams may have been used to describe embodiments, the techniques are not limited to these diagrams or corresponding descriptions. For example, the flow need not move through every box or state shown or in exactly the same order as shown and described herein.
[0066] In the foregoing description and the following claims, the terms "coupled" and "connected," along with their derivatives, may be used interchangeably. It should be understood that these terms are not synonymous. Rather, in certain embodiments, "connected" may be used to indicate that two or more elements are in direct physical or electrical contact with each other. "Coupled" may mean that two or more elements are in direct physical or electrical contact. However, "coupled" may also mean that two or more elements are not in direct contact with each other, but nevertheless operate or interact with each other.
[0067] The present methods are not limited to the specific details listed herein. Indeed, it will be apparent to one skilled in the art upon reading this disclosure that many other modifications of the foregoing description and drawings may be made within the scope of the present techniques. Accordingly, it is the following claims and any amendments thereto that define the scope of the present techniques.
Claims
[1] Sensor controller (126), comprising: a processor (128) for collecting context-dependent data from a sensor (107); and a computer-readable medium (122, 104, 129) storing instructions that, when executed by the processor (128), instruct the processor (128): receive power management data including an operating state of a device (100) communicatively coupled to the sensor controller; and modify the operating state of the device (100) based on the context-dependent data and the power management data, where the operating state comprises one or more of: a sleep state to describe when a main processor (102) of the device (100) is asleep and can be woken up by the sensor controller (126); and a switched-off state to describe when the main processor (102) of the device (100) is completely switched off and cannot be woken up by the sensor controller (126), and wherein the instructions further instruct the processor (128) to analyze the context-dependent data to determine whether the context-dependent data indicates that a predetermined threshold has been reached; the sensor controller (126) collects context-dependent data and analyzes context-dependent data when the main processor (102) of the device (100) is in the sleep state; and changing the operation of the device comprises waking the main processor (102) of the device (100) when the main processor (102) is in the sleep state and when the predetermined threshold has been reached. [2] The sensor controller (126) of claim 1, wherein the stored instructions further instruct the processor (128) to modify the operation of the sensor controller (126) based on the power management data by turning off the sensor (107) when the main processor (102) of the device (100) is in the off state. [3] The sensor controller (126) of claim 1, further comprising a real-time clock sensor configured to generate timestamp data, wherein the processor (128) is configured to link the timestamp data to the analyzed contextual data. [4] The sensor controller (126) of claim 3, further comprising a storage device (210) communicatively coupled to the sensor controller (126) for storing the associated timestamp data and analyzed contextual data before the predetermined threshold is reached. [5] The sensor controller (126) of claim 4, wherein the sensor controller (126) provides the associated timestamp data and analyzed context-dependent data to the main processor (102) of the device (100) once the predetermined threshold has been reached. [6] Method (300) comprising: capturing (302) context-dependent data from a sensor (107) communicatively coupled to a sensor controller (126); receiving (304) power management data including an operating state of a device (100) communicatively coupled to the sensor controller (126); and changing the operating state of the device (100) based on the context-dependent data and the power management data where the operating state comprises one or more of: a sleep state to describe when a main processor (102) of the device (100) is asleep and can be woken up by the sensor controller; and a switched-off state to describe when the main processor (102) of the device (100) is completely switched off and cannot be woken up by the sensor controller (126), the method (300) further comprising: analyzing the contextual data to determine when the contextual data indicates that a predetermined threshold has been reached; and modifying the operation of the device (100) by waking the main processor (102) of the device (100) when the main processor (102) is in the sleep state and when the predetermined threshold has been reached. [7] The method (300) of claim 6, further comprising modifying the operation of the sensor controller (126) based on the power management policies by turning off the sensor (107) when the main processor (102) of the device (100) is in the off state. [8] The method (300) of claim 6, further comprising: collecting timestamp data from a real-time clock sensor configured to generate timestamp data; and connecting the timestamp data with the analyzed contextual data. [9] The method (300) of claim 8, further comprising storing the associated timestamp data and analyzed context-dependent data on a storage device (210) communicatively coupled to the sensor controller (126) before the predetermined threshold is reached. [10] The method of claim 9, further comprising providing the associated timestamp data and analyzed context-dependent data to the main processor once the predetermined threshold has been reached. [11] At least one computer-readable medium (400) having instructions stored thereon that, in response to execution on a computing device (126), cause the computing device (126) to: collect context-dependent data from a sensor (107) communicatively coupled to a computing device (126); receive power management data including an operating state of a main processor (102) of a device (100) communicatively coupled to the computing device (126); and modify the operating state of the main processor (102) based on the context-dependent data and the power management data, where the operating state comprises one or more of: a sleep state to describe when the main processor (102) is asleep and can be woken up; and a powered-off state to describe when the main processor (102) is completely powered off and cannot be woken up by the computing device (126), and wherein the instructions further cause the computing device (126) to analyze the context-dependent data to determine when the context-dependent data indicates that a predetermined threshold has been reached; and modifying the operation of the main processor (102) comprises waking the main processor (102) of the device (100) when the main processor (102) is in the sleep state and when the predetermined threshold has been reached. [12] At least one computer-readable medium (400) according to claim 11, wherein the instructions further cause the computing device (126) to modify the operation of the computing device (126) based on the power management data by turning off the sensor (107) when the main processor of the device (100) is in the turned off state. [13] At least one computer-readable medium (400) according to claim 11, wherein the instructions further cause the computing device (126): Collect timestamp data from a real-time clock sensor configured to generate timestamp data; and to connect the timestamp data with the analyzed contextual data. [14] At least one computer-readable medium (400) according to claim 13, wherein the instructions further cause the computing device (126) to store the associated timestamp data and analyzed context-dependent data on a storage device (210) communicatively coupled to the computing device (126) before the predetermined threshold has been reached. [15] At least one computer-readable medium (400) according to claim 14, wherein the instructions further cause the computing device (126) to provide the associated timestamp data and analyzed context-dependent data to the main processor (102) once the predetermined threshold has been reached. [16] System (200) comprising: a sensor controller (126) communicatively coupled to a sensor (107) to collect context-dependent data; a processor (128) of the sensor controller (126); a main processor (102) of a device (100) communicatively coupled to the sensor controller (126); a computer-readable medium (129) of the sensor controller (126) on which instructions are stored which, when executed by the processor (128), instruct the processor (128): receive power management data including an operating state of the device (100) communicatively coupled to the sensor controller; and modify the operating state of the device (100) based on the context-dependent data and the power management data, where the operating state comprises one or more of: a sleep state to describe when the main processor (102) is asleep and can be woken up by the sensor controller (126); and a switched-off state to describe when the main processor (102) is completely switched off and cannot be woken up by the sensor controller (126), and wherein the instructions further instruct the processor (128) to analyze the context-dependent data to determine when the context-dependent data indicates that a predetermined threshold has been reached; the sensor controller (126) collects context-dependent data and analyzes context-dependent data when the main processor (102) is in the sleep state; and modifying the operation of the device (100) comprises waking the main processor (102) of the device (100) when the main processor (102) is in the sleep state and when the predetermined threshold has been reached. [17] The system (200) of claim 16, wherein the stored instructions further instruct the processor (128) to modify the operation of the sensor controller (126) based on the power management data by turning off the sensor (107) when the main processor (102) of the device (100) is in the off state. [18] The system (200) of claim 16, further comprising a real-time clock sensor to generate timestamp data, wherein the processor (128) links the timestamp data to the analyzed contextual data. [19] The system (200) of claim 18, further comprising a storage device (210) communicatively coupled to the sensor controller (126) for storing the associated timestamp data and analyzed contextual data before the predetermined threshold is reached. [20] The system (200) of claim 19, wherein the sensor controller (126) provides the associated timestamp data and analyzed context-dependent data to the main processor (102) once the predetermined threshold has been reached. [21] The system (200) of claim 16, wherein the sensor controller (126) is a sensor controller hub (126) having sensors (107) communicatively coupled to the sensor controller hub (126), and wherein the sensor controller hub (126) is communicatively coupled to the main processor (102).
Citation Information
Patent Citations
Context based power management
US20060053311A1
Portable apparatus with an accelerometer device for free-fall detection
US20060150731A1
Position-tracking device for position-tracking system
US20060176174A1
Method and apparatus for harmonizing the gathering of data and issuing of commands in an autonomic computing system using model-based translation
US20070288467A1
Electronic appartus and control method therefor
US20100033424A1