Patent Publication Number: US-9904341-B2

Title: Cascading power consumption

Description:
TECHNICAL FIELD 
     This disclosure relates generally to power consumption by a computing system and more specifically, but not exclusively, to cascading power consumption in a computing system. 
     BACKGROUND 
     Modern computing devices continue to incorporate a growing number of sensors. For example, modern computing devices may include sensors that can provide additional information to the computing device about the surrounding environment. In some examples, the sensors may include an accelerometer, a gyrometer, or a magnetometer. An accelerometer may detect the change in velocity of a computing device. In some embodiments, a gyrometer may detect the angular velocity of the computing device. A magnetometer may detect the direction the computing device is headed. As the number of sensors included in a computing system increases, the amount of power to operate the sensors also increases. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         FIG. 1  is a block diagram of an example of a computing system used for cascading power consumption; 
         FIG. 2  is a process flow diagram for an example of cascading power consumption for an human proximity sensor, a camera, and facial recognition software; 
         FIG. 3  is a process flow diagram of an example of cascading power consumption for a magnetometer, an accelerometer, and a gyrometer; 
         FIG. 4  is a process flow diagram for an example of cascading power consumption for a gyrometer, a magnetometer, and an accelerometer; 
         FIG. 5  is an example of a sensor controller hub that can cascade power consumption by sensors; 
         FIG. 6  is a process flow diagram for an example of cascading power consumption; and 
         FIG. 7  is a tangible, non-transitory computer-readable medium that can cascade power consumption by sensors. 
     
    
    
     The same numbers are used throughout the disclosure and the figures to reference like components and features. Numbers in the 100 series refer to features originally found in  FIG. 1 ; numbers in the 200 series refer to features originally found in  FIG. 2 ; and so on. 
     DETAILED DESCRIPTION 
     According to embodiments of the subject matter disclosed herein, cascading power consumption can be implemented in a computing system. Cascading power consumption, as referred to herein, includes providing power to a sensor, a hardware device, or an application in response to an event. An event can include additional sensors receiving power, an application being executed, or additional sensors detecting a change in the operating environment, among others. For example, a computing system may cascade power consumption by sensors by providing power to a first sensor in response to a second sensor receiving power or a second sensor detecting any suitable change in the operating environment. A change in the operating environment may include a second sensor detecting input that exceeds a threshold. For example, an accelerometer may detect a change in the operating environment such as a change in the acceleration of a computing device that is beyond a predetermined threshold. While some sensors use a small amount of power, other sensors can consume a large amount of power. In current methods, the power consumed by sensors can be controlled by removing power to all of the sensors in response to certain events. For example, after a certain period of inactivity, a computing device may stop the flow of power to all sensors. 
     In the following description and claims, the terms “coupled” and “connected,” along with their derivatives, may be used. It should be understood that these terms are not intended as synonyms for each other. Rather, in particular 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 yet still co-operate or interact with each other. 
       FIG. 1  is a block diagram of an example of a computing system used for cascading power consumption. The computing system  100  may be, for example, a mobile phone, laptop computer, desktop computer, or tablet computer, among others. The computing system  100  may include a processor  102  that is adapted to execute stored instructions, as well as a memory device  104  that stores instructions that are executable by the processor  102 . The processor  102  can be a single core processor, a multi-core processor, a computing cluster, or any number of other configurations. The processor  102  may be implemented as Complex Instruction Set Computer (CISC) or Reduced Instruction Set Computer (RISC) processors, x86 Instruction set compatible processors, multi-core, or any other microprocessor or central processing unit (CPU). In some embodiments, the processor  102  includes dual-core processor(s), dual-core mobile processor(s), or the like. 
     The memory device  104  can 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 any other suitable memory systems. The memory device  104  can be used to store computer-readable instructions that, when executed by the processor, direct the processor to perform various operations in accordance with embodiments described herein. For example, the instructions that are executed by the processor  102  may be used to implement a method that includes cascading power consumption. 
     The processor  102  may be connected through 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 system  100  to one or more I/O devices  110 . The I/O devices  110  may include, for example, a keyboard and a pointing device, wherein the pointing device may include a touchpad or a touchscreen, among others. The I/O devices  110  may be built-in components of the computing system  100 , or may be devices that are externally connected to the computing system  100 . 
     The processor  102  may also be linked through the system bus  106  to a display interface  112  adapted to connect the computing system  100  to a display device  114 . The display device  114  may include a display screen that is a built-in component of the computing system  100 . The display device  114  may also include a computer monitor, television, or projector, among others, that is externally connected to the computing system  100 . The processor  102  may also be linked through the system bus  106  to a network interface card (NIC)  116 . The NIC  116  may be adapted to connect the computing system  100  through the system bus  106  to a network (not depicted). The network may be a wide area network (WAN), local area network (LAN), or the Internet, among others. 
     The computing device  100  may also include a storage device  118 . The storage device  118  may include a physical memory such as a hard drive, an optical drive, a flash drive, an array of drives, or any combinations thereof. The storage device  118  may also include remote storage drives. The storage device  118  may also include an operating system  120 . In some embodiments, the storage device  118  may store instructions thereon to cascade power consumption by sensors  122 . In some embodiments, the operating system  120  may have installed thereon one or more drivers. The drivers enable a piece of hardware or an application installed on the operating system  120  to communicate with the operating system  120 , applications, or other hardware of the computing device  100  including sensors  122 . The drivers may also be used to enable a sensor controller hub  124  to communicate data from the sensors  122  to the application installed on the operating system  120 , in accordance with some embodiments. In some embodiments, the drivers are installed on the memory device  104 . The memory device  104  may include instructions used to cascade power consumption by sensors  122  in a similar manner as described in reference to the operating system  118  above. 
     The sensor hub controller  124  may include a co-processor  126 . In some embodiments, the co-processor  126  is distinct from the processor  102  of the computing device  100 . The sensor hub controller  124  may also include an additional memory or storage device with instructions thereon to provide data related to cascading power consumption for sensors  122  to the operating system  118 . Additionally, the sensor hub controller  124  may include a sensor cascading microdriver  128  that can detect information from any suitable number of sensors and determine how to cascade power consumption by the sensors. 
     It is to be understood that the block diagram of  FIG. 1  is not intended to indicate that the computing system  100  is to include all of the components shown in  FIG. 1 . Rather, the computing system  100  can include fewer or additional components not illustrated in  FIG. 1  (e.g., additional sensors, additional sensor controllers, additional buses connecting the sensors  122  and the sensor controller  124 , etc.). Furthermore, any of the functionalities of the sensor controller hub  124  may be partially, or entirely, implemented in hardware and/or in the processor  102 . For example, the functionality may be implemented with an application specific integrated circuit, in a device orientation microdriver included in the sensor controller, in logic implemented in the processor  102 , in a co-processor  126 , or in any other device. 
       FIG. 2  is a process flow diagram for an example of cascading power consumption for a human proximity sensor, a camera, and facial recognition software. The method  200  for cascading power consumption can be implemented with a computing system, such as the computing system  100  of  FIG. 1 . As discussed above, cascading includes providing power to a sensor or application in response to an event. The method  200  can cascade power consumption by a computing system that includes a camera. In some embodiments, the computing system can use the camera to authenticate a user through facial recognition software. 
     At block  202 , the sensor cascading microdriver  128  can turn on a sensor that detects the level of light in an operating environment. The light detecting sensor is also referred to herein as an Ambient Light Sensor (ALS). At block  204 , the sensor cascading microdriver  128  determines if the level of light in the environment surrounding the computing system  100  is above a threshold. In some embodiments, the threshold can indicate whether there is sufficient light for a proximity sensor or a camera to detect a person in the operating environment of the computing system  100 . The sensor cascading microdriver  128  may use the ALS to determine if the level of light in the surrounding operating environment is above or below a threshold. If the ALS detects a level of light below the threshold, the process flow returns to block  202 . If the ALS detects a level of light above a threshold, the process flow continues at block  206 . 
     At block  206 , the sensor cascading microdriver  128  can provide power to a human proximity sensor (also referred to herein as an IR proximity sensor). The human proximity sensor can include infrared sensor, audio sound sensors, ultrasonic sensors, or magnetic interference sensors, among others. The IR proximity sensor can detect if an object is in close proximity to the computing system  100 . At block  208 , the sensor cascading microdriver  128  can use the IR proximity sensor to determine if an object is within a particular proximity of the computing system  100 . For example, a threshold may indicate an object is within a particular distance of a camera in the computing system. If the sensor cascading microdriver  128  determines an object is within a particular proximity of the computing system, the process flow continues at block  210 . If the sensor cascading microdriver  128  determines an object is not within a particular proximity of the computing system, the process flow continues at block  212 . 
     At block  210 , the sensor cascading microdriver  128  can provide power to a camera in the computing system  100 . In some examples, a camera may consume more power than other hardware devices and sensors, so limiting the power to the camera can provide significant power savings for a computing system. In some embodiments, the sensor cascading microdriver  128  may determine that an object is within a close proximity to the computing system  100  and the camera may receive power to determine the type of object in close proximity to the computing system  100 . At block  214 , the sensor cascading microdriver  128  determines whether the object detected with the camera is a person using any suitable application that can utilize individual characteristics. To detect whether the object is a person, the sensor cascading microdriver  128  can execute any suitable application that uses individual characteristics gathered from a human proximity sensor. If the sensor cascading microdriver  128  determines that the object detected with the camera is a person, the process flow continues at block  216 . If the sensor cascading microdriver  128  determines the object detected with the camera is not a person, the process flow continues at block  218 . 
     At block  216 , the sensor cascading microdriver  128  can send instructions to begin execution of facial recognition software. At block  220 , the sensor cascading microdriver  128  may receive data from facial recognition software to determine if a user is authorized. For example, the face of a person in close proximity to the computing system may be compared to any suitable number of faces of authorized users. If the sensor cascading microdriver  128  determines a user is authorized, the process flow continues at block  224 . At block  224 , the user may proceed with login and the user can access any information that the user is authorized to view. If the sensor cascading microdriver  128  determines a user is not authorized, the process flow continues at block  226 . At block  226 , the sensor cascading microdriver  128  determines if a timeout occurs. In some examples, a timeout may indicate a user has not been authorized within a period of time. A timer may be used to determine if a timeout value is reached or exceeded. If input is detected by the sensor cascading microdriver  128  within a period of time specified as the timeout value, a timer can be reset at block  228  and the process can continue to determine if a user is authorized at block  220 . 
     If the sensor cascading microdriver  128  determines a timeout has occurred, the process flow continues by stopping execution of facial recognition software at block  230 . In some embodiments, execution of the facial recognition software may consume a significant amount of power. If the sensor cascading microdriver  128  stops execution of the facial recognition software in response to inactivity within the facial recognition software, the sensor cascading microdriver  128  can reduce the power consumption of a computing system. 
     After the sensor cascading microdriver  128  stops execution of the facial recognition software, the process flow continues at block  218 . At block  218 , the sensor cascading microdriver  128  can determine if another timeout value is reached or exceeded without detecting any input or activity from the camera. If the sensor cascading microdriver  128  detects activity or input from the camera, the timer can be reset at block  232  and the process can continue at block  214 . If the sensor cascading microdriver  128  determines a timeout value for the camera has been exceeded, power can be turned off to the camera at block  234  to reduce power consumption of the computing system. 
     After the sensor cascading microdriver  128  stops power to the camera at block  234 , the process flow continues at block  212 . At block  212 , the sensor cascading microdriver  128  determines if a timeout value has been exceeded for the IR proximity sensor. If the sensor cascading microdriver  128  detects activity or input from the IR proximity sensor, a timer can be reset at block  236  and the process can continue at block  208 . If the sensor cascading microdriver  128  determines a timeout value for the IR proximity sensor has been exceeded, power can be turned off to the IR proximity sensor at block  238  to reduce power consumption of the computing system. 
     The process flow diagram of  FIG. 2  is not intended to indicate that the steps of the method  200  are to be executed in any particular order, or that all of the steps of the method  200  are to be included in every case For example, the sensor cascading microdriver  128  may cascade power consumption through any suitable number of sensors or applications. Further, any number of additional steps may be included within the method  200 , depending on the specific application. 
       FIG. 3  is a process flow diagram of an example of cascading power consumption for a magnetometer, an accelerometer, and a gyrometer. The method  300  may be implemented with a computing system, such as the computing system  100  of  FIG. 1 . 
     At block  302 , the sensor cascading microdriver  128  can provide power to a gyrometer. In some embodiments, a gyrometer may detect angular velocities of a computing device. The sensor cascading microdriver  128  can then reset a gyrometer activity timer at block  304 . The gyrometer activity timer can indicate the gyrometer has detected any input within a period of time. In some embodiments, the gyrometer activity timer can be used as a timeout value. For example, the gyrometer activity timer can indicate a period of time during which the gyrometer has not detected any additional data. 
     At block  306 , the device orientation micrordriver  128  can determine if the gyrometer has received a sample of data before a timeout is received. A sample of data, as referred to herein, can include any data related to an environmental characteristic of a computing system. An environmental characteristic can include a change in velocity of the computing system, a change in tilt of the computing system, a change in direction of the computing system, a change in the light of the surrounding area, among others. In some embodiments, the sample of data can be any suitable data that can be detected by a gyrometer. For example, the sample of data may include an environmental characteristic related to the orientation of a computing system. If the sensor cascading microdriver  128  determines the gyrometer has received a sample of data before a timeout, the process flow continues at block  308 . At block  308 , the sensor cascading microdriver  128  can compute the orientation of a computing system based on the sample of data from the gyrometer. For example, the sample of data may indicate the tilt of a computing system in three dimensional space. In other embodiments, the sample of data may indicate the rotation of a computing system around a point or set of points in three dimensional space. 
     If the sensor cascading microdriver  128  determines the gyrometer has not received a sample of data before a timeout, the process flow continues at block  310 . At block  310 , the sensor cascading microdriver  128  can turn off the power to the gyrometer. As discussed above in relation to  FIG. 2 , turning off the power to a sensor such as the gyrometer during periods of inactivity can reduce the power consumption of the computing system. 
     At block  312 , the sensor cascading microdriver  128  can turn on power to an accelerometer and a magnetometer. In some embodiments, the accelerometer and magnetometer may consume less power than the gyrometer. The sensor cascading microdriver  128  can use an accelerometer or magnetometer to detect input or activity. The sensor cascading microdriver  128  can turn on power to the gyrometer in response to any activity detected by the accelerometer or magnetometer. At block  314 , the sensor cascading microdriver  128  can determine if an accelerometer or magnetometer receives a sample of data. The sample of data may include any suitable data that can be detected by the accelerometer or magnetometer. For example, the sample of data may include a change in acceleration of the computing device or a change in direction of the computing device. If the sensor cascading microdriver  128  determines a sample of data has been received, the process can return to block  302  and the gyrometer can receive power again. 
     The process flow diagram of  FIG. 3  is not intended to indicate that the steps of the method  300  are to be executed in any particular order, or that all of the steps of the method  300  are to be included in every case. Further, any number of additional steps may be included within the method  300 , depending on the specific application. 
       FIG. 4  is a process flow diagram for an example of cascading power consumption for a gyrometer, a magnetometer, and an accelerometer sensor. The method  400  may be implemented with a computing system, such as the computing system  100  of  FIG. 1 . 
     At block  402 , the sensor cascading microdriver  128  can provide power to an accelerometer. In some embodiments, the accelerometer may consume less power than other sensors, such as a GPS sensor. The sensor cascading microdriver  128  can then determine if a threshold is exceeded. In some embodiments, the threshold can be determined by a change in the velocity of a computing system detected by the accelerometer. For example, the accelerometer may detect a certain change in the velocity before a predetermined threshold is reached. In some examples, the accelerometer can detect if a computing system starts to move in a vertical or horizontal direction. In some embodiments, a GPS sensor may detect a change in velocity of the computing system. If the sensor cascading microdriver  128  does not detect a threshold has been exceeded, the process returns to block  402 . If the device determines a threshold has been exceeded, the process flow continues at block  406 . 
     At block  406 , the sensor cascading microdriver  128  provides power to a gyrometer, a magnetometer, and a motion tracking sensor. The combination of the gyrometer, magnetometer, and motion tracking sensor can detect the distance a computing system has travelled. The accelerometer, magnetometer, and gyrometer can enable the motion tracking sensor. In some examples, the motion tracking sensor can use techniques such as dead reckoning or pedestrian inertial navigation to determine a computing system has moved a certain distance in a certain direction. In some embodiments, a different combination of sensors may be used to detect the distance a computing system has travelled. For example, in embodiments, the distance travelled can be computed without the use of a magnetometer. 
     At block  408 , the sensor cascading microdriver  128  determines if a threshold has been exceeded. In some embodiments, the threshold may correspond with the distance a computing system has travelled For example, the distance a computing system has travelled may be determined using data collected from an accelerometer and any suitable inertial navigation algorithm. If the sensor cascading microdriver determines  128  the computing system has travelled a distance that exceeds a threshold, the process flow continues at block  410 . If the sensor cascading microdriver determines  128  the computing system has not travelled a distance that exceeds a threshold, the process flow continues at block  412 . 
     At block  410 , the sensor cascading microdriver  128  provides power to a global positioning system (also referred to herein as GPS) sensor. In some embodiments, the GPS sensor may consumer more power than other sensors, such as the accelerometer, gyrometer, magnetometer, or motion tracking sensor. The sensor cascading microdriver  128  can save power consumption by keeping the GPS sensor in an off state until the computing system has travelled a distance beyond a predetermined threshold. 
     At block  414 , the sensor cascading microdriver  128  can determine if the location of the computing system has changed. A location, as referred to herein, can include any geographic reference point. For example, a location may refer to a city, a state, a county, a country, or a neighborhood, among others. In some embodiments, the GPS sensor can determine if the computing system has changed locations based on the coordinates of the location of the computing system and maps that indicate the coordinates for particular locations. If the location of the computing device has changed, the process flow continues at block  416 . At block  416 , the sensor cascading microdriver  128  provides location data to an application. For example, some applications may be location aware. Therefore, the location aware applications may display data in response to the location of a computing system. In some examples, location aware applications may provide directions to a user, provide lists of surrounding businesses, or the like. 
     If the location of the computing system has not changed at block  414 , the process flow continues at block  418 . At block  418 , the sensor cascading microdriver  128  determines if a timeout value for the GPS sensor has been exceeded. For example, the GPS sensor might not detect any change in location of the computing system for a period of time. If the computing system changes locations within a predetermined period of time, the process resets a timer at block  420  and the process flow continues at block  414 . If the computing system does not change locations within a predetermined period of time, the process stops providing power to the GPS sensor at block  422 . In some embodiments, the sensor cascading microdriver  128  can also continue at block  416  by providing data from the GPS sensor to an application. 
     After the sensor cascading microdriver  128  turns off power to the GPS sensor at block  422 , the process flow continues at block  412 . At block  412 , the sensor cascading microdriver  128  determines if a timeout value for the gyrometer, magnetometer, or motion tracking sensor has been exceeded. For example, the gyrometer, magnetometer, or motion tracking sensor might not detect any change in state of the computing system for a period of time. A state of the computing system may include the tilt, velocity, or direction of the computing system, among others. If the computing system changes states within a predetermined period of time, the process resets a timer at block  424  and the process flow continues at block  408 . If the computing system does not change states within a predetermined period of time, the process flow stops providing power to the gyrometer, magnetometer, or motion tracking sensors at block  426 . At block  426 , the accelerometer continues to receive power and can detect a movement to begin another iteration of the cascading power consumption process. 
     The process flow diagram of  FIG. 4  is not intended to indicate that the steps of the method  400  are to be executed in any particular order, or that all of the steps of the method  400  are to be included in every case. Further, any number of additional steps may be included within the method  400 , depending on the specific application. 
       FIG. 5  is an example of a sensor controller hub that can cascade power consumption by sensors. The sensor controller hub  124  can be implemented in a computing system, such as computing system  100  of  FIG. 1 . 
     The gyrometer microdriver  502 , magnetometer microdriver  504 , and the accelerometer microdriver  506  can detect sensor data. For example, the gyrometer microdriver  502  can detect data related to the orientation of a computing device captured by a gyrometer. In some embodiments, the gyrometer microdriver  502  can detect angular velocities of a computing device. The magnetometer microdriver  504  can detect data related to the strength or direction of magnetic fields. In some embodiments, the magnetometer microdriver  504  can detect data from a magnetometer sensor. The accelerometer microdriver  506  can detect data related to the acceleration or change in velocity of a computing system. In some embodiments, the accelerometer microdriver  506  can detect data from an accelerometer sensor. 
     The sensor manager  508  can detect data from any suitable number of sensor microdrivers. In some embodiments, the sensor microdrivers may include a gyrometer microdriver  502 , a magnetometer microdriver  504 , and an accelerometer microdriver  506 , among others. The sensor manager  508  can also send data from sensor microdrivers to a device orientation microdriver  510 . 
     The device orientation microdriver  510  can cascade power consumption by sensors using an orientation calculator  512 , a notification handler  514 , a periodic timer  516 , and an activity state handler  518 . The orientation calculator  512  can detect and aggregate data from any suitable number of sensors. For example, a gyrometer, a magnetometer, and an accelerometer may each detect data for three axis, such as the X, Y, and Z axis. The orientation calculator  512  may aggregate the data from each axis for each sensor. In some embodiments, the orientation calculator  512  may detect data for any suitable number of axis. 
     The notification handler  514  can determine when data is detected from a sensor. For example, the notification handler  514  may detect when data is received from a gyrometer, a magnetometer, or an accelerometer. The periodic timer  516  can indicate a period of time that represents a timeout value. For example, the periodic timer  516  may store a time that represents a threshold for cascading power consumption by sensors. 
     The activity state handler  518  may detect the activity state of sensors and enable states that include cascading power consumption by sensors. For example, the activity state handler  518  may implement a low activity state in which accelerometer and magnetometer notifications are enabled at a reduced interval to save power consumption. In addition, notifications from a gyrometer may be disabled during the low activity state. The activity state handler  518  may also enable a high activity state. During a high activity state, notifications for the gyrometer, accelerometer, and magnetometer may be enabled at a regular interval, which is more frequent than the interval for the low activity state. The device orientation microdriver  510  can change a state from a high activity state to a low activity state when the notification handler  514  does not detect data for a period of time specified by the periodic timer  516 . If the device orientation microdriver  510  enforces a low activity state and the notification handler  514  receives data from a sensor, the device orientation microdriver  510  can enable a high activity state through the activity state handler  518 . 
     The inclinometer microdriver  520  and compass orientation microdriver  522  can detect data from the device orientation microdriver  510 . In some embodiments, the inclinometer microdriver  520  and compass orientation microdriver  522  can use a combination of data from any suitable number of sensors to compute information. For example, the inclinometer microdriver  520  can measure angles of slope, tilt, or elevation of the computing device using aggregated data from multiple sensors. In some embodiments, the compass orientation microdriver  522  can detect cardinal directions in relation to the surface of the Earth. For example, the compass orientation microdriver  522  may aggregate data from multiple sensors to detect the cardinal direction of North, South, East, West, or any other cardinal direction. 
       FIG. 6  is a process flow diagram for an example of cascading power consumption. The method  600  can be implemented with a computing system, such as computing system  100  of  FIG. 1 . 
     At block  602 , the sensor cascading microdriver  128  can provide power o a first sensor and a second sensor. The first sensor and second sensor can include any type of sensor such as a gyrometer, an accelerometer, or a magnetometer, among others. 
     At block  604 , the sensor cascading microdriver  128  can detect that a first sensor does not capture a sample of data. As discussed above, the sample of data can include any information related to the operating environment of the computing device. For example, the sample of data may indicate the tilt, direction, or velocity, among others, of the computing device. In some embodiments, the sensor cascading microdriver  128  may establish a timeout value that indicates a period of time during which a first sensor does not capture a sample of data. In some examples, the timeout value may indicate a period of inactivity. 
     At block  606 , the sensor cascading microdriver  128  can stop the flow of power to a first sensor. In some embodiments, the first sensor may consumer more power than the second sensor. The sensor cascading microdriver  128  can save power consumption by stopping the flow of power to the first sensor. 
     At block  608 , the sensor cascading microdriver  128  can monitor the operating environment with the second sensor. In some embodiments, monitoring the operating environment with the second sensor can save power consumption because the first sensor may consumer more power than the second sensor. 
     At block  610 , the sensor cascading microdriver  128  can provide power to the first sensor in response to the second sensor detecting a sample of data. The sensor cascading microdriver  128  may continue to monitor the first sensor to detect for additional periods of inactivity and stop the flow of power to the first sensor if inactivity is detected. 
     The process flow diagram of  FIG. 6  is not intended to indicate that the steps of the method  600  are to be executed in any particular order, or that all of the steps of the method  600  are to be included in every case. Further, any number of additional steps may be included within the method  600 , depending on the specific application. 
       FIG. 7  is a block diagram showing a tangible, non-transitory, computer-readable medium  700  that can cascade power consumption by sensors. The tangible, non-transitory, computer-readable medium  700  may be accessed by a processor  702  over a computer bus  704 . Furthermore, the tangible, non-transitory, computer-readable medium  700  may include code to direct the processor  702  to perform the steps of the current method. 
     The various software components discussed herein may be stored on the tangible, non-transitory, computer-readable medium  700 , as indicated in  FIG. 7 . For example, a sensor cascading microdriver  706  may be adapted to direct the processor  702  to cascade power consumption by any suitable number of sensors. It is to be understood that any number of additional software components not shown in  FIG. 7  may be included within the tangible, non-transitory, computer-readable medium  700 , depending on the specific application. 
     EXAMPLE 1 
     A method for cascading power consumption is described herein. The method includes providing power to a first sensor and a second sensor, wherein the first sensor consumes more power than the second sensor. The method also includes detecting the first sensor does not capture a sample of data. Furthermore, the method includes stopping the flow of power to the first sensor. In addition, the method includes monitoring an operating environment with the second sensor. The method also includes providing power to the first sensor in response to the second sensor detecting a sample of data. 
     In some embodiments, the first sensor or the second sensor can be comprised of any number of sensors. In some examples, the first sensor or the second sensor can include a gyrometer, a magnetometer, or an accelerometer, among others In some examples, power consumption can be cascaded between any suitable number of sensors. Additionally, power consumption may also be cascaded between sensors, applications, and hardware devices, among others. 
     EXAMPLE 2 
     A system for cascading power consumption is described herein The system includes a first sensor for detecting an environmental characteristic, a second sensor for detecting an environmental characteristic, a processor to execute computer-readable instructions, and a storage device to store computer readable instructions. The computer-readable instructions can direct the processor to provide power to the first sensor, and the second sensor, wherein the first sensor consumes more power than the second sensor. The computer-readable instructions can also direct the processor to detect that the first sensor does not capture a sample of data. In addition the computer-readable instructions can direct the processor to stop the flow of power to the first sensor and monitor an operating environment with the second sensor. Furthermore, the computer-readable instructions can direct the processor to provide power to the first sensor in response to the second sensor detecting a sample of data. 
     In some embodiments, the system may also include a camera. In some examples, power consumption to the camera can be stopped based on whether a first sensor or a second sensor captures a sample of data. In addition, the system may also start and stop the execution of an application based on whether a first sensor or a second sensor captures a sample of data. 
     EXAMPLE 3 
     At least one machine readable medium comprising a plurality of instructions for cascading power consumption is described herein. The instructions cause a computing device to provide power to a first sensor, and a second sensor, wherein the first sensor consumes more power than the second sensor. The instructions also cause a computing device to detect the first sensor does not capture a sample of data. In addition, the instructions also cause the computing device to stop the flow of power to the first sensor. Furthermore, the instructions cause the computing device to monitor an operating environment with the second sensor and provide power to the first sensor in response to the second sensor detecting a sample of data. 
     In some embodiments, the sample of data comprises an indication that a sensor has detected an environmental characteristic. The environmental characteristic can include a change in velocity of the computing system, a change in tilt of the computing system, a change in direction of the computing system, a change in the light of the surrounding area, among others. In some examples, the instructions can cause the computing device to execute location aware applications and facial recognition applications in response to a first sensor or a second sensor capturing a sample of data. 
     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, which may be read and executed by a computing platform to perform the operations described. In addition, 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; or electrical, optical, acoustical or other form of propagated signals, e.g., carrier waves, infrared signals, digital signals, or the interfaces that transmit and/or receive signals, among others. 
     An embodiment is an implementation or example. Reference in the specification to “an embodiment,” “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 appearances of “an embodiment,” “one embodiment,” or “some embodiments” are not necessarily all referring to the same embodiments. 
     Not all components, features, structures, characteristics, etc. described and illustrated herein need be included in a particular embodiment or embodiments. If the specification states a component, feature, structure, or characteristic “may”, “might”, “can” or “could” be included, for example, that particular component, feature, structure, or characteristic is not required to be included. If the specification or claim refers to “a” or “an” element, that does not mean there is only one of the element. If the specification or claims refer to “an additional” element, that does not preclude there being more than one of the additional element. 
     It is to be noted that, although some embodiments have been described in reference to particular implementations, other implementations are possible according to some embodiments. Additionally, the arrangement and/or order of circuit elements or other features illustrated in the drawings and/or described herein need not be arranged in the particular way illustrated and described. Many other arrangements are possible according to some embodiments. 
     In each system shown in a figure, the elements in some cases may each have a same reference number or a different reference number to suggest that the elements represented could be different and/or similar. However, an element may be flexible enough to have different implementations and work with some or all of the systems shown or described herein. The various elements shown in the figures may be the same or different. Which one is referred to as a first element and which is called a second element is arbitrary. 
     It is to be understood that specifics in the aforementioned examples may be used anywhere in one or more embodiments. For instance, all optional features of the computing device described above may also be implemented with respect to either of the methods or the computer-readable medium described herein. Furthermore, although flow diagrams and/or state diagrams may have been used herein to describe embodiments, the techniques are not limited to those diagrams or to corresponding descriptions herein. For example, flow need not move through each illustrated box or state or in exactly the same order as illustrated and described herein. 
     The present techniques are not restricted to the particular details listed herein. Indeed, those skilled in the art having the benefit of this disclosure will appreciate that many other variations from the foregoing description and drawings may be made within the scope of the present techniques. Accordingly, it is the following claims including any amendments thereto that define the scope of the present techniques.