Various implementations relate generally to electronic communication device technology and, more particularly, relate to a method and apparatus for providing context-based power consumption control.
The modern computing era has brought about a tremendous expansion in computing power as well as increased affordability of computing devices. This expansion in computing power has led to a reduction in the size of computing devices and given rise to a new generation of mobile devices that are capable of performing functionality that only a few years ago required processing power provided only by the most advanced desktop computers. Consequently, mobile computing devices having a small form factor have become ubiquitous and are used for execution of a wide range of applications.
The widespread adoption of mobile computing devices and expanding capabilities of the wireless networks over which they communicate has further fueled expansion in the services provided by mobile computing devices. In addition to providing telecommunications services, many mobile computing devices now provide services such as navigation services, camera and video capturing capabilities, digital music and video playback, and web browsing. The ability to provide various services to users of mobile computing devices may be enhanced by tailoring services to particular situations or locations of the mobile terminals. In this regard, various sensors are often incorporated into mobile computing devices. Each sensor typically gathers information relating to a particular aspect of the context of a mobile terminal such as location, speed, orientation, and/or the like. The information from one or more sensors may then be used to determine device context, which may impact the services provided to the user.
While this expansion in services provided by mobile computing devices has been revolutionary, implementation and usage of the services provided by modern mobile computing devices have been somewhat problematic for both developers and users of mobile computing devices. In this regard, these new services provided by mobile computing devices require additional power. In many instances, the additional power consumption required by a service may be quite substantial. This increased power consumption may be quite problematic for battery-powered mobile computing devices. In this regard, while battery life has improved, improvements in battery life have not kept pace with the virtually exponential growth in the capabilities of mobile devices. Accordingly, users of mobile computing devices may be forced to frequently recharge the battery or limit their usage, which may significantly degrade the user experience.
Methods, apparatuses, and computer program products are herein provided for providing context-based power consumption control. Methods, apparatuses, and computer program products in accordance with various embodiments may provide several advantages to computing devices and computing device users. In this regard, some example embodiments may leverage context data to determine one or more power consumption control measures that may reduce power consumption by a computing device when appropriate given a context of the device and/or a user of the device as indicated by the context data. Such power consumption control measures may accordingly be made without user intervention and may, for example, extend battery life for battery-powered devices. In some example embodiments, multilayered power consumption control measures may be implemented in a distributed manner at each of a plurality of system layers. In this regard, more effective and sweeping power consumption control measures may be implemented that are tailored based on context at each of a plurality of system layers. Further, some example embodiments may leverage fused context data, which may provide a more robust indication of device and/or user context.
In a first example embodiment, a method is provided, which comprises accessing fused context data. The method of this example embodiment further comprises determining at least one power consumption control measure for each of a plurality of system layers based at least in part on the fused context data. The method of this example embodiment additionally comprises performing multilayered power consumption control by implementing at each respective system layer of the plurality of system layers the at least one power consumption control measure determined for the respective system layer.
In another example embodiment, an apparatus is provided. The apparatus of this example embodiment comprises at least one processor and at least one memory storing computer program code, wherein the at least one memory and stored computer program code are configured, with the at least one processor, to cause the apparatus to at least access fused context data. The at least one memory and stored computer program code are configured, with the at least one processor, to further cause the apparatus of this example embodiment to determine at least one power consumption control measure for each of a plurality of system layers based at least in part on the fused context data. The at least one memory and stored computer program code are configured, with the at least one processor, to additionally cause the apparatus of this example embodiment to perform multilayered power consumption control by implementing at each respective system layer of the plurality of system layers the at least one power consumption control measure determined for the respective system layer.
In another example embodiment, a computer program product is provided. The computer program product of this example embodiment includes at least one computer-readable storage medium having computer-readable program instructions stored therein. The program instructions of this example embodiment comprise program instructions configured to access fused context data. The program instructions of this example embodiment further comprise program instructions configured to determine at least one power consumption control measure for each of a plurality of system layers based at least in part on the fused context data. The program instructions of this example embodiment additionally comprise program instructions configured to perform multilayered power consumption control by implementing at each respective system layer of the plurality of system layers the at least one power consumption control measure determined for the respective system layer.
In another example embodiment, an apparatus is provided that comprises means for accessing fused context data. The apparatus of this example embodiment further comprises means for determining at least one power consumption control measure for each of a plurality of system layers based at least in part on the fused context data. The apparatus of this example embodiment additionally comprises means for performing multilayered power consumption control by implementing at each respective system layer of the plurality of system layers the at least one power consumption control measure determined for the respective system layer.
The above summary is provided merely for purposes of summarizing some example embodiments of the invention so as to provide a basic understanding of some aspects of the invention. Accordingly, it will be appreciated that the above described example embodiments are merely examples and should not be construed to narrow the scope or spirit of the invention in any way. It will be appreciated that the scope of the invention encompasses many potential embodiments, some of which will be further described below, in addition to those here summarized.
Having thus described various embodiments in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
Some embodiments will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the invention are shown. Indeed, the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like reference numerals refer to like elements throughout. As used herein, the terms “data,” “content,” “information” and similar terms may be used interchangeably to refer to data capable of being transmitted, received and/or stored in accordance with embodiments of the present invention. Thus, use of any such terms should not be taken to limit the spirit and scope of embodiments of the present invention. As defined herein a “computer-readable storage medium,” which refers to a non-transitory, physical storage medium (e.g., volatile or non-volatile memory device), can be differentiated from a “computer-readable transmission medium,” which refers to an electromagnetic signal.
Further, as used herein, the term ‘circuitry’ refers to (a) hardware-only circuit implementations (e.g., implementations in analog circuitry and/or digital circuitry); (b) combinations of circuits and computer program product(s) comprising software and/or firmware instructions stored on one or more computer readable memories that work together to cause an apparatus to perform one or more functions described herein; and (c) circuits, such as, for example, a microprocessor(s) or a portion of a microprocessor(s), that require software or firmware for operation even if the software or firmware is not physically present. This definition of ‘circuitry’ applies to all uses of this term herein, including in any claims. As a further example, as used herein, the term ‘circuitry’ also includes an implementation comprising one or more processors and/or portion(s) thereof and accompanying software and/or firmware. As another example, the term ‘circuitry’ as used herein also includes, for example, a baseband integrated circuit or applications processor integrated circuit for a mobile phone or a similar integrated circuit in a server, a cellular network device, other network device, and/or other computing device.
The context-aware apparatus 102 may be embodied as a desktop computer, laptop computer, mobile terminal, mobile computer, mobile phone, mobile communication device, one or more servers, one or more network nodes, game device, digital camera/camcorder, audio/video player, television device, radio receiver, digital video recorder, positioning device, any combination thereof, and/or the like. In an example embodiment, the context-aware apparatus 102 is embodied as a mobile terminal, such as that illustrated in
In this regard,
As shown, the mobile terminal 10 may include an antenna 12 (or multiple antennas 12) in communication with a transmitter 14 and a receiver 16. The mobile terminal 10 may also include a processor 20 configured to provide signals to and receive signals from the transmitter and receiver, respectively. The processor 20 may, for example, be embodied as various means including circuitry, one or more microprocessors with accompanying digital signal processor(s), one or more processor(s) without an accompanying digital signal processor, one or more coprocessors, one or more multi-core processors, one or more controllers, processing circuitry, one or more computers, various other processing elements including integrated circuits such as, for example, an ASIC (application specific integrated circuit) or FPGA (field programmable gate array), or some combination thereof. Accordingly, although illustrated in
Some Narrow-band Advanced Mobile Phone System (NAMPS), as well as Total Access Communication System (TACS), mobile terminals may also benefit from embodiments of this invention, as should dual or higher mode phones (e.g., digital/analog or TDMA/CDMA/analog phones). Additionally, the mobile terminal 10 may be capable of operating according to Wireless Fidelity or Worldwide Interoperability for Microwave Access (WiMAX) protocols.
It is understood that the processor 20 may comprise circuitry for implementing audio/video and logic functions of the mobile terminal 10. For example, the processor 20 may comprise a digital signal processor device, a microprocessor device, an analog-to-digital converter, a digital-to-analog converter, and/or the like. Control and signal processing functions of the mobile terminal may be allocated between these devices according to their respective capabilities. The processor may additionally comprise an internal voice coder (VC) 20a, an internal data modem (DM) 20b, and/or the like. Further, the processor may comprise functionality to operate one or more software programs, which may be stored in memory. For example, the processor 20 may be capable of operating a connectivity program, such as a web browser. The connectivity program may allow the mobile terminal 10 to transmit and receive web content, such as location-based content, according to a protocol, such as Wireless Application Protocol (WAP), hypertext transfer protocol (HTTP), and/or the like. The mobile terminal 10 may be capable of using a Transmission Control Protocol/Internet Protocol (TCP/IP) to transmit and receive web content across the internet or other networks.
The mobile terminal 10 may also comprise a user interface including, for example, an earphone or speaker 24, a ringer 22, a microphone 26, a display 28, a user input interface, and/or the like, which may be operationally coupled to the processor 20. In this regard, the processor 20 may comprise user interface circuitry configured to control at least some functions of one or more elements of the user interface, such as, for example, the speaker 24, the ringer 22, the microphone 26, the display 28, and/or the like. The processor 20 and/or user interface circuitry comprising the processor 20 may be configured to control one or more functions of one or more elements of the user interface through computer program instructions (e.g., software and/or firmware) stored on a memory accessible to the processor 20 (e.g., volatile memory 40, non-volatile memory 42, and/or the like). Although not shown, the mobile terminal may comprise a battery 34 for powering various circuits related to the mobile terminal, for example, a circuit to provide mechanical vibration as a detectable output. The user input interface may comprise devices allowing the mobile terminal to receive data, such as a keypad 30, a touch display (not shown), a joystick (not shown), and/or other input device. In embodiments including a keypad, the keypad may comprise numeric (0-9) and related keys (#, *), and/or other keys for operating the mobile terminal.
As shown in
In addition, the mobile terminal 10 may include one or more physical sensors 36. The physical sensors 36 may be devices capable of sensing or determining specific physical parameters descriptive of the current context of the mobile terminal 10. For example, in some cases, the physical sensors 36 may include respective different sensing devices for determining mobile terminal environmental-related parameters such as speed, acceleration, heading, orientation, inertial position relative to a starting point, location, proximity to other devices or objects, lighting conditions and/or the like.
In an example embodiment, the mobile terminal 10 may further include a co-processor 37. The co-processor 37 may be configured to work with the processor 20 to handle certain processing tasks for the mobile terminal 10. In an example embodiment, the co-processor 37 may be specifically tasked with handling (or assisting with) context extraction and fusion capabilities for the mobile terminal 10 in order to, for example, interface with or otherwise control the physical sensors 36 and/or to manage the extraction and fusion of context information.
The mobile terminal 10 may comprise memory, such as a subscriber identity module (SIM) 38, a removable user identity module (R-UIM), and/or the like, which may store information elements related to a mobile subscriber. In addition to the SIM, the mobile terminal may comprise other removable and/or fixed memory. The mobile terminal 10 may include volatile memory 40 and/or non-volatile memory 42. For example, volatile memory 40 may include Random Access Memory (RAM) including dynamic and/or static RAM, on-chip or off-chip cache memory, and/or the like. Non-volatile memory 42, which may be embedded and/or removable, may include, for example, read-only memory, flash memory, magnetic storage devices (e.g., hard disks, floppy disk drives, magnetic tape, etc.), optical disc drives and/or media, non-volatile random access memory (NVRAM), and/or the like. Like volatile memory 40 non-volatile memory 42 may include a cache area for temporary storage of data. The memories may store one or more software programs, instructions, pieces of information, data, and/or the like which may be used by the mobile terminal for performing functions of the mobile terminal. For example, the memories may comprise an identifier, such as an international mobile equipment identification (IMEI) code, capable of uniquely identifying the mobile terminal 10.
Returning to
The processor 110 may, for example, be embodied as various means including one or more microprocessors with accompanying digital signal processor(s), one or more processor(s) without an accompanying digital signal processor, one or more coprocessors, one or more multi-core processors, one or more controllers, processing circuitry, one or more computers, various other processing elements including integrated circuits such as, for example, an ASIC (application specific integrated circuit) or FPGA (field programmable gate array), or some combination thereof. Accordingly, although illustrated in
The memory 112 may comprise, for example, volatile memory, non-volatile memory, or some combination thereof. Although illustrated in
The communication interface 114 may be embodied as any device or means embodied in circuitry, hardware, a computer program product comprising computer readable program instructions stored on a computer readable medium (e.g., the memory 112) and executed by a processing device (e.g., the processor 110), or a combination thereof that is configured to receive and/or transmit data from/to another computing device. In an example embodiment, the communication interface 114 is at least partially embodied as or otherwise controlled by the processor 110. In this regard, the communication interface 114 may be in communication with the processor 110, such as via a bus. The communication interface 114 may include, for example, an antenna, a transmitter, a receiver, a transceiver and/or supporting hardware or software for enabling communications with one or more remote computing devices. The communication interface 114 may be configured to receive and/or transmit data using any protocol that may be used for communications with a remote computing device. In this regard, the communication interface 114 may be configured to receive and/or transmit data using any protocol that may be used for transmission of data over a wireless network, wireline network, some combination thereof, or the like by which the context-aware apparatus 102 and one or more computing devices may be in communication. The communication interface 114 may additionally be in communication with the memory 112, user interface 116, sensor processor 118, fusion management circuitry 122, and/or power management circuitry 126, such as via a bus.
The user interface 116 may be in communication with the processor 110 to receive an indication of a user input and/or to provide an audible, visual, mechanical, or other output to a user. As such, the user interface 116 may include, for example, a keyboard, a mouse, a joystick, a display, a touch screen display, a microphone, a speaker, and/or other input/output mechanisms. The user interface 116 may further be in communication with the memory 112, communication interface 114, sensor processor 118, fusion management circuitry 122, and/or power management circuitry 126, such as via a bus.
Although not included in all embodiments, in some example embodiments the context-aware apparatus may further include a sensor processor 118. The sensor processor 118 may have similar structure (albeit perhaps with semantic and scale differences) to that of the processor 110 and may have similar capabilities thereto. However, according to some example embodiments, the sensor processor 118 may be configured to interface with one or more physical sensors 120 (for example, physical sensor 1, physical sensor 2, physical sensor 3, . . . , physical sensor n, where n is an integer equal to the number of physical sensors) such as, for example, an accelerometer, a magnetometer, a proximity sensor, an ambient light sensor, a positioning sensor, and/or any of a number of other possible sensors. In some embodiments, the sensor processor 118 may access a portion of the memory 112 or some other memory to execute instructions stored thereat. Accordingly, for example, the sensor processor 118 may be configured to interface with the physical sensors 120 via sensor specific firmware that is configured to enable the sensor processor 118 to communicate with respective physical sensors 120. In some embodiments, the sensor processor 118 may be configured to extract information from the physical sensors 120 (perhaps storing such information in a buffer in some cases), perform sensor control and management functions for the physical sensors 120 and perform sensor data pre-processing. In an example embodiment, the sensor processor 118 may also be configured to perform sensor data fusion with respect to the physical sensor data extracted. The fused physical sensor data may be communicated to the processor 110 and/or to the fusion management circuitry 122 (which is described in greater detail below) for further processing. In some embodiments, the sensor processor 118 may include a host interface function for managing the interface between the processor 110 and the sensor processor 118 at the sensor processor 118 end. As such, the sensor processor 118 may be enabled to provide data from the physical sensors 120, status information regarding the physical sensors 120, control information, queries and context information to the processor 110 and/or to the fusion management circuitry 122. In embodiments wherein the context-aware apparatus 102 does not include a sensor processor 118, the physical sensors 120 may be interfaced with the processor 110 and/or fusion management circuitry 122 and the processor 110, fusion management circuitry 122, or some combination thereof may be configured to perform functionality attributed to the sensor processor 118 in the foregoing description.
The fusion management circuitry 122 may be embodied as various means, such as circuitry, hardware, a computer program product comprising computer readable program instructions stored on a computer readable medium (e.g., the memory 112) and executed by a processing device (e.g., the processor 110), some combination thereof, or the like. In some embodiments, the fusion management circuitry 122 is embodied as or otherwise controlled by the processor 110. In embodiments wherein the fusion management circuitry 122 is embodied separately from the processor 110, the fusion management circuitry 122 may be in communication with the processor 110. The fusion management circuitry 122 may further be in communication with one or more of the memory 112, communication interface 114, user interface 116, sensor processor 118, or power management circuitry 126, such as via a bus.
In some embodiments, the fusion management circuitry 122 may be configured to communicate with the sensor processor 118 (e.g., in some embodiments that employ the sensor processor 118) to receive pre-processed physical sensor data and/or fused physical sensor data. In embodiments where no sensor processor 118 is employed, the fusion management circuitry 122 may be further configured to pre-process and/or fuse physical sensor data. In some example embodiments, the fusion management circuitry 122 may be configured to interface with one or more virtual sensors 124 (for example, virtual sensor 1, virtual sensor 2, . . . , virtual sensor m, where m is an integer equal to the number of virtual sensors) in order to fuse virtual sensor data with physical sensor data. Virtual sensors 124 may include sensors that do not measure physical parameters. Thus, for example, virtual sensors 124 may monitor such virtual parameters as RF (radio frequency) activity, time, calendar events, device state information, active profiles, alarms, battery state, application data, data from webservices, certain location information that is measured based on timing (for example, global positioning system (GPS) position) or other non-physical parameters (for example, cell-ID), and/or the like. The virtual sensors 124 may be embodied as hardware or as combinations of hardware and software configured to determine the corresponding non-physical parametric data associated with each respective virtual sensor.
The power management circuitry 126 may be embodied as various means, such as circuitry, hardware, a computer program product comprising computer readable program instructions stored on a computer readable medium (e.g., the memory 112) and executed by a processing device (e.g., the processor 110), some combination thereof, or the like. In some embodiments, the power management circuitry 126 is embodied as or otherwise controlled by the processor 110. In embodiments wherein the power management circuitry 126 is embodied separately from the processor 110, the power management circuitry 126 may be in communication with the processor 110. The power management circuitry 126 may further be in communication with one or more of the memory 112, communication interface 114, user interface 116, sensor processor 118, or fusion management circuitry 122, such as via a bus.
As will be described further herein below, the power management circuitry 126 may be configured to access context data. The accessed context data may, for example, comprise fused context data. The accessed context data may indicate a context of the context-aware apparatus 102 a context of an environment of the context-aware apparatus 102, and/or a context of a user thereof. In this regard, the context data may be derived from the output of one or more physical sensors 120 and/or from the output of one or more virtual sensors 124. The power management circuitry 126 may use the accessed context data to determine one or more power consumption control measures. It will be appreciated that in embodiments wherein the power management circuitry 126 is configured to access and use fused context data, the fused context data may be formed using any appropriate context fusion technique. Accordingly, the fused context data may be formed through context fusion performed by the sensor processor 118, fusion management circuitry 122, processor 110, or a combination thereof.
In some example embodiments, the fusion management circuitry 122 may be configured to access fused context data formed through a distributed context fusion performed at each of a plurality of system layers. In this regard, for example, context information may be determined (or sensed) based on inputs from one or more physical sensors 120 and one or more virtual sensors 124. After extraction of sensor data (which may define or imply context information) from the physical and/or virtual sensors, fusion may be accomplished homogeneously (for example, fusion contexts derived from physical sensors and operating system virtual sensors and the output is a fused context) or heterogeneously (for example, inputs are a combination of context information from lower layers and virtual sensor data). As such, the data that is fused at any particular operating system layer according to example embodiments may be either sensor data (physical and/or virtual) being fused with other sensor data, or sensor data being fused with context information from lower layers (which may itself include sensor data fused with other sensor data and/or context information from lower layers).
In some embodiments, the fusion of virtual sensor data with physical sensor data may be classified into different levels. For example, context fusion may occur at the feature level, which may be accomplished at a base layer, at a decision level, which may correspond to middleware, or in independent applications, which may correspond to an application layer. Accordingly, the fusion management circuitry 122 may be configured to manage context fusion (for example, the fusion of virtual and physical sensor data related to context information) at various ones and combinations of the levels described above.
Thus, according to some example embodiments, context data extraction and fusion of the context data that has been extracted may be performed by different entities, processors or processes in a distributed fashion or layered/linear way. The sensor processor 118 may, for example, pre-process physical sensor data obtained from one or more physical sensors 120 and extract a first level of context data. In some embodiments, the sensor processor 118 may perform data level context fusion on the physical sensor data. The sensor processor 118 may be configured to use pre-processed data and context from other subsystems that may have some type of physical data source (for example, modem, RF module, audio/video module, GPS subsystems, etc.) and perform a context fusion. In some embodiments, the fusion management circuitry 122 may perform a second level, and perhaps also subsequent levels, of context fusion to fuse the physical sensor data with virtual sensor data. As such, the fusion management circuitry 122 may fuse virtual sensor data and physical sensor data in the operating system layers of the apparatus.
In embodiments wherein the processor 110 runs an operating system, the fusion management circuitry 122 may have access to the context and physical sensor data from the sensor processor 118. The fusion management circuitry 122 may also have access to other subsystems with physical data sources and the virtual sensors. Thus, a layered or distributed context sensing process may be implemented. In this regard, the fusion management circuitry 122, sensor processor 118, or some combination thereof may be configured to form fused context data using any of the various distributed context fusion techniques described in International Patent Application Number PCT/IB2010/001109, filed on May 13, 2010, the contents of which are incorporated herein by reference.
As an example,
It should also be appreciated that the independent application may perform yet another (for example, a fourth level) of context sensing and fusion at the application layer. Moreover, as is shown in
Accordingly, the power management circuitry 126 may be configured to access fused context data having been formed by any appropriate context fusion process or plurality of context fusion processes performed in combination. In some embodiments, the power management circuitry 126 may be configured to access fused context data having been formed at a highest layer at which context fusion was performed. As another example, the power management circuitry 126 may be configured to access fused context data having been formed at a highest layer at which the power management circuitry 126 is performing power consumption control. Thus, for example, if the highest layer at which context fusion has been performed is the application layer or if the highest layer at which the power management circuitry 126 is performing power consumption control is the application layer, the power management circuitry 126 may access fused context data having been formed at the application layer. In this regard, as discussed with respect to
In other embodiments, the power management circuitry 126 may be configured to access fused context data formed at each of a plurality of layers. For example, if the power management circuitry 126 is performing power consumption control at three different layers, the power management circuitry 126 may be configured to access fused context data formed through a context fusion process performed at each of the three layers. Accordingly, when determining a power consumption control measure(s) for a respective system layer of the three system layers, the power management circuitry 126 may be configured to use fused context data having been accessed from the respective layer as a basis for determining the power consumption control measure(s).
In order to facilitate determination of a power consumption control measure, the power management circuitry 126 may be configured to determine one or more contexts indicated by accessed fused context data. In this regard, the fused context data may indicate one or more of a context(s) of the context-aware apparatus 102, a context(s) of an environment of the context-aware apparatus 102, or a context(s) of a user of the context-aware apparatus 102. Accordingly, contexts may be categorized into classes. A context of the context-aware apparatus 102 may be categorized under the “terminal” class and may indicate a spatio-temporal condition of the context-aware apparatus 102. Accordingly, a context of the context-aware apparatus 102 may provide physical information on a state of the context-aware apparatus 102 in its environment. A context of an environment of the context-aware apparatus 102 may be categorized under the “environment” class and may provide information on a state of an environment in which the context-aware apparatus 102 is in operation. A context of a user of the context-aware apparatus 102 may be categorized under the “user activity” class and may provide information on user activity of a user of the context-aware apparatus 102.
As an example, contexts categorized in the terminal context class (e.g., contexts of the context-aware apparatus 10), which may be indicated by the accessed fused context data may include the following:
As a further example, contexts categorized in the environment context class (e.g., contexts of the context-aware apparatus 10), which may be indicated by the accessed fused context data may include the following:
As still a further example, contexts categorized in the user activity context class (e.g., contexts of a user of the context-aware apparatus 10), which may be indicated by the accessed fused context data may include the following:
The power management circuitry 126 may accordingly be configured to determine a power consumption control measure based at least in part on the context(s) indicated by accessed fused context data. In this regard, the power management circuitry 126 may be configured to determine a power consumption control measure that is appropriate given a current context indicated by the fused context data. Accordingly, as an example, the power management circuitry 126 may be configured to determine a power consumption control measure having a predefined association with a context indicated by accessed fused context data.
It will be appreciated that the power management circuitry 126 may be configured to leverage fused context data to determine one or more power consumption control measures for each of a plurality of system layers, thereby enabling distributed power consumption control. The plurality of system layers for which power consumption control measures are determined may comprise a subset of the set of system layers implemented on the context-aware apparatus 102 or other apparatus on which an embodiment is implemented. Referring now to
The hardware layer may comprise one or more hardware elements, such as the processor 110, sensor processor 118, physical sensors 120, and/or the like. Accordingly, the power management circuitry 126 may be configured to determine one or more power consumption control measures for the hardware layer that may control power consumption by one or more hardware elements. As an example, the hardware layer may be configured to determine to scale a clock frequency and/or a supply voltage for a processor (e.g., the processor 110 and/or sensor processor 118) as a power consumption control measure. For example, if the context-aware apparatus 102 is idle and/or if some other context is determined that indicates that processor performance may be reduced so as to conserve power, the power management circuitry 126 may be configured to reduce a clock frequency and/or a supply voltage for a processor. In this regard, the power management circuitry 126 may be configured to provide and/or control operation of a processor control module.
For example, the power management circuitry 126 may be configured to control operation of a processor control module configured to scale clock frequency, which may be defined as follows:
The processor control module may be conditionally invoked based on determined context. For example, the processor control module may be conditionally invoked as follows:
In this example, the scaling frequency 50 MHz may be between the governor policy->Scaling_min_freq and policy->Scaling_max_freq. Accordingly, the power management circuitry 126 may provide a context-aware processor frequency control and may use different processor governor policies, or use On_demand with relatively conservative minimum/maximum frequency levels and switch between them based on context. Alternatively, the power management circuitry 126 may provide a context-aware processor frequency control implementing more aggressive frequency scaling.
The base layer or other layer of the operating system may comprise a kernel. The power management circuitry 126 may be configured to determine and implement power consumption control measures in a layer comprising a kernel that may control operation of the kernel. In this regard, the power management circuitry 126 may be configured to implement a context aware kernel scheduling policy that may optimize the kernel's task list depending on the current context and an estimated future context (e.g., a context predicted on historical usage patterns, available user scheduling information, and/or the like).
As an example, the power management circuitry 126 may adjust kernel task scheduling such that lesser tasks (e.g., system tasks-level 0) may be deferred while the context-aware apparatus 102 is idle as determined based on context information. For example, the power management circuitry 126 may allow high priority system tasks to be performed during the idle period, but may defer application tasks and low level tasks (e.g., syncing, application updates, repository refresh, device software updates and update checks, and/or the like). The power management circuitry 126 may maintain a list of deferred tasks so that they may be scheduled when the scheduling policy is restored to a default state responsive to a change in context. In this regard, for example, the power management circuitry 126 may restore the scheduling policy to a default state in response to a determination that the context-aware apparatus 102 is again active based on an updated context. Accordingly, the power management circuitry 126 may be configured to detect that the context-aware apparatus 102 is idle and adjust the kernel scheduling to defer lesser tasks that would otherwise be performed during the idle period, thus allowing more sleep time and possibly conserving power.
For example, the power management circuitry 126 may enable a context-based scheduling policy in response to a determination that it is night and the context-aware apparatus 102 is idle. For example, the power management circuitry 126 may conditionally invoke a context-based scheduling policy as follows:
In an example embodiment, an alarm event, or a pre-alarm event, such as may be associated with a user-configured alarm to awaken the user from a state of sleep or notify the user of the start of an event may trigger the power management circuitry 126 to restore a default scheduling policy. In this regard, restoring the default scheduling policy may enable the context-aware apparatus 102 to proactively prepare itself for active operation by scheduling tasks deferred while the context-aware scheduling policy was implemented.
As another example, the power management circuitry 126 may be configured to restore a default scheduling policy responsive to a change in user and/or device context (e.g., the user has picked up, touched, and/or provided input to the context-aware apparatus 102). As yet another example, rather than automatically restoring a default scheduling policy, a user may be prompted to select whether the user wishes to restore normal operation. For example, the user may be prompted: “There are N deferred tasks. Would you like to run the deferred tasks now?” or “I was resting and saving energy. Would you like to run a refresh now?”
The power management circuitry 126 may be configured to determine and implement a variety of power consumption control measures at the middleware and application levels. Such power consumption control measures may directly control operation of applications or may, for example, control operation of hardware resources (e.g., backlights, speakers, display, radio receivers/transmitters, and/or the like that may be used by an application). Thus, for example, the power management circuitry 126 may adjust an intensity of a backlight or display responsive to a change in context. As another example, the power management circuitry 126 may be configured to adjust a volume of a speaker output responsive to a change in context. As a further example, the power management circuitry 126 may be configured to activate/deactivate a receiver and/or transmitter responsive to a change in context. As another example, the power management circuitry 126 may selectively control which applications are run at the application layer responsive to a change in context.
Accordingly, it will be appreciated that the power management circuitry 126 may leverage fused context information, such as may have been formed using a distributed context fusion process, to determine and implement multilayered power consumption control. In this regard, the power management circuitry 126 may determine and implement power consumption control measures for a plurality of system layers.
The following is a table showing a context and associated power consumption control measures in accordance with one example embodiment. In this regard, the power management circuitry 126 may be configured to determine based on accessed context information whether a charger is connected to the context-aware apparatus 102 and, if a charger is not connected, an amount of power remaining in a battery that may be powering the context-aware apparatus 102. The power management circuitry 126 may accordingly, implement progressively more aggressive power consumption control measures if a charger is not connected as the power drops.
In another example embodiment, the power management circuitry 126 may be configured to implement the following multilayered power consumption control measures responsive to determination of the respective corresponding contexts:
As a further example, the power management circuitry 126 may be configured to implement the following multilayered power consumption control measures responsive to determination of the respective corresponding contexts:
In some example embodiments, when the power management circuitry 126 implements a power consumption control measure, the power management circuitry 126 may implement the power consumption control measure incrementally. In this regard, in an instance in which a user is still using the context-aware apparatus 102, an abrupt implementation of a power consumption control measure may negatively impact user experience. However, if a power consumption control measure is implemented incrementally, adjustments made in accordance with the optimization measure may be made gradually and thus may be less perceptible to the user.
Accordingly, blocks of the flowchart support combinations of means for performing the specified functions. It will also be understood that one or more blocks of the flowchart, and combinations of blocks in the flowchart, may be implemented by special purpose hardware-based computer systems which perform the specified functions, or combinations of special purpose hardware and computer program product(s).
The above described functions may be carried out in many ways. For example, any suitable means for carrying out each of the functions described above may be employed to carry out embodiments of the invention. In one embodiment, a suitably configured processor (e.g., the processor 110) may provide all or a portion of the elements. In another embodiment, all or a portion of the elements may be configured by and operate under control of a computer program product. The computer program product for performing the methods of embodiments of the invention includes a computer-readable storage medium, such as the non-volatile storage medium, and computer-readable program code portions, such as a series of computer instructions, embodied in the computer-readable storage medium.
Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the embodiments of the invention are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the invention. Moreover, although the foregoing descriptions and the associated drawings describe example embodiments in the context of certain example combinations of elements and/or functions, it should be appreciated that different combinations of elements and/or functions may be provided by alternative embodiments without departing from the scope of the invention. In this regard, for example, different combinations of elements and/or functions than those explicitly described above are also contemplated within the scope of the invention. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB2010/052997 | 6/30/2010 | WO | 00 | 12/29/2012 |