# Patent

## Title
Mechanism for facilitating power extension service at computing devices by one or more power saving techniques

## Abstract

A mechanism is described for facilitating power extension service at computing devices according to one embodiment of the invention. A method of embodiments of the invention includes calculating potential power saving by one or more of a plurality of power-saving techniques supported by a computing device. The calculating includes identifying the one or more of the plurality of power-saving techniques that are available for selection and an expected amount of power to be saved with the one or more of the plurality of power saving techniques. The method may further include generating a list identifying the one or more of the plurality of power-saving techniques and relevant information resulting from the calculation, and displaying the list.

## Background
FIELD
The field relates generally to computing devices and, more particularly, to employing a mechanism for facilitating power extension service at computing devices.
BACKGROUND
Insufficient battery life is one of the major issues any user of mobile computing devices (e.g., smartphones, tablet computers, notebooks, netbooks, etc.) faces today. It is common for a user to encounter a situation when they want their computing device to stand a longer period of time when the battery is low in direct current (DC) mode. Typically, in that case, one choice the user gets is switching the computing device to the maximum battery life (MBL) mode, which does not utilize various power saving techniques nor does it tell the user how long the battery will be extended; hence, keeping the user in the dark about what aspects of the computing device are being sacrificed in order to save power.



BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments of the present invention are illustrated by way of example and not by way of limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
FIG. 1 illustrates a computing device employing a power extension assistant service mechanism for facilitating power extension service at computing devices according to one embodiment of the invention of the invention;
FIG. 2A illustrate a power extension assistant service mechanism employed at a computing device according to one embodiment of the invention;
FIG. 2B illustrates power-saving calculation method components employed at a computing device according to one embodiment of the invention;
FIG. 3A illustrates a method for facilitating power extension service at a computing device according to one embodiment of the invention;
FIG. 3B illustrates a method for facilitating power extension service by performing a power saving calculation method at a computing device according to one embodiment of the invention;
FIG. 4A illustrates a screenshot providing a list of power-saving options available at and supported by the computing device according to one embodiment of the invention;
FIG. 4B illustrates details of an option chosen from one of the options provided in FIG. 4A according to one embodiment of the invention;
FIG. 4C illustrates a screenshot providing a power-saving calculation service tool of the power extension assistant service mechanism according to one embodiment of the invention; and
FIG. 5 illustrates a computing system according to one embodiment of the invention.



DETAILED DESCRIPTION
Embodiments of the invention provide a mechanism for facilitating power extension service at computing devices according to one embodiment of the invention. A method of embodiments of the invention includes calculating potential power saving by one or more of a plurality of power-saving techniques supported by a computing device. The calculating includes identifying the one or more of the plurality of power-saving techniques that are available for selection and an expected amount of power to be saved with the one or more of the plurality of power saving techniques. The method may further include generating a list identifying the one or more of the plurality of power-saving techniques and relevant information resulting from the calculation, and displaying the list.
FIG. 1 illustrates a computing device employing a power extension assistant service mechanism for facilitating power extension service at computing devices according to one embodiment of the invention. In one embodiment, a computing device 100 is illustrated as having a power extension assistant service (“PEAS”) mechanism 108 (herein referred to as “PEAS mechanism”, “power service mechanism”, or simply “mechanism”) to employ and facilitate power extension service in computing devices 108. Computing device 100 may include mobile computing devices, such as smartphones (e.g., iPhone®, BlackBerry®, etc.), handheld computing devices, PDAs, tablet computers (e.g., iPad®, Samsung® Galaxy Tab®, etc.), laptop computer (e.g., notebook, netbook, etc.), e-reader (e.g., Kindle®, Nook®, etc.), etc. Computing device 100 may further include set-top boxes (e.g., Internet-based cable television set-top boxes, etc.), larger computers, such as desktop computers, server computers, etc.
Computing device 100 includes an operating system 106 serving as an interface between any hardware or physical resources of the computer device 100 and a user. Computing device 100 further includes one or more processors 102, memory devices 104, network devices, drivers, or the like. It is to be noted that terms like “machine”, “device”, “computing device”, “computer”, “computing system”, and the like, are used interchangeably and synonymously throughout this document.
FIG. 2A illustrates a power extension assistant service mechanism employed at a computing device according to one embodiment of the invention. In one embodiment PEAS mechanism 108 allows the user of a computing device (e.g., mobile computing device) to have the ability to customize configurations relating to extending battery life such that to have multiple options of knowing not only the amounts of battery that can be extended, but also at what expense, such as what aspects or components of the computing device would have to be reduced or entirely sacrificed (to sustain or attain the increase in power). In one embodiment, a service tool may be introduced by the PEAS mechanism 108 to integrate various power saving technologies (e.g., Intel® power saving technologies, like Intel Display Brightness (“ADB”), Intel Display Power Saving Technology (“DPST”), Intel Display Refresh Rate Switching Technology (“DRRS”)) and provide multiple choices to users regarding how long the battery can be extended under each choice.
In one embodiment, PEAS mechanism 108 provides a monitor 202 to maintain and monitor a power saving method list that records each of the possible approaches or techniques that are supported by the computing device to save power. Examples of such approaches include the aforementioned ADB, DPST, DRRS, etc. It is contemplated that the embodiments of the present invention are not limited to merely Intel-based ADB, DPST, and DRRS, but that they are compatible with and employ and number and types of power-saving methods/techniques. However, for brevity, simplicity and ease of understanding, ADB, DPST and DRRS are discussed as examples of power-saving methods throughout this document. For example, one of ADB, DPST and DRRS may be chosen to decrease backlight and adjust wireless settings (e.g., 802.11 Power-Save Poll), etc., as it is known that display and Wi-Fi are considered highest in power consumption on any mobile computing platform. Further, when the service tool provided through the PEAS mechanism 108 is launched, the service tool may then query the computing device to determine which of the power saving methods listed in the list are supported by the computing device so that an updated list of power-saving methods supported by the computing device may be maintained.
In one embodiment, PEAS mechanism 108 may provide the user with options to set or reset various configuration settings relating to saving battery power, such as which of the available power-saving methods is preferable when having multiple choices, setting a threshold level (e.g., 7%) of the remaining battery power to trigger the service tool, and the like. For example, the monitor 202 not only maintains the list of power-saving techniques, but also continuously monitors the various threshold levels set by the user, such as when the batter power level lowers to the user-set threshold level (e.g., 7%), the monitor 202 triggers the power-saving process. The power-saving process may include the monitor 202 triggering a calculator 204 (that includes an analyzer or interpreter) to determine the available power-saving techniques and make necessary adjustments to prepare a list of options for the user. For example, one adjustment may relate to changing ADB from disable to enable, increase the DPST level, change refresh rate in DRRS, and disable wireless availability if no network application is running or switch Wi-Fi to power a power-saving mode.
Upon having the analysis done by the calculator 204, a displayer 206 (including a user interface) brings up a dialog box that provides the user with relevant information, such as the current battery status (e.g., remaining battery life), and options, such as a list of available power-saving techniques, and the like. Further, the user may click on one of the available options to find out additional details, such as what power-saving technique is being used, which of the existing components or functionalities (e.g., wireless, etc.) are being sacrificed, what impact it will have on certain other functionalities that may be preferable to the user (e.g., brightness, etc.). The user may study these details and choose one of the battery-saving options from the pop-up list. If, for some reason (e.g., based on user's set configurations), if enough or particular battery-saving options are not available (e.g., only one battery-saving option is available to extent the batter from the remaining 6 minutes to 8 minutes or from 7% to 9%, etc.), the PEAS mechanism 108, using the displayer 206, may display or report out to the user one or more reasons (e.g., software applications) that are preventing the PEAS mechanism 108 from adapting one of the power-saving techniques (e.g., ADB, DPST, DRRS, PS-Poll, etc.) to lower the real-time power consumption, such as displaying something like “suggestion: network copying”.
Unlike conventional power saving schemes, in one embodiment, the power-saving options offered by the PEAS mechanism 108 are not merely operating system-dependent options. Stated differently, the PEAS mechanism 108 considers and analyzes power-saving techniques supported by the underlying computing device and is not limited to merely those that are dependent on and identified by the operating system. The calculator 204 automatically considers and calculates different power-saving techniques and their combinations to propose multiple power-saving options to the user.
It is contemplated that any number and type of components may be added to and removed from the PEAS mechanism 108 to facilitate the workings and operability of the PEAS mechanism 108 to provide power extension services at computing devices. For brevity, clarity, ease of understanding and to focus on the PEAS mechanism 108, many of the default or known components of a computing device are not shown or discussed here.
Now referring to FIG. 2B, it illustrates various power-saving calculation method (“PSCM”) components according to one embodiment. For example, in one embodiment, the aforementioned components 202-206 of the PEAS mechanism 108 are shown as in communication with system hardware 224 through a driver 222 of the computing device where the PEAS mechanism 108 is employed. The driver 222 may include software, hardware or firmware including a device driver or software driver representing a computer program or application allowing the PEAS mechanism 108 to interact and work with the hardware 224 of the computing device. A combination of the PEAS mechanism 108 and the driver 222 are referred to as PSCM components 220.
In one embodiment, the calculator 204 uses other components 202, 206 and known information (e.g., data relating to power-saving techniques like the ADB, DPST, etc.) to calculate how much and in what manner power can be saved by each power-saving technique, such as ADB and DPST, to, for example, save platform power by decreasing the backlight of a display panel (e.g., low voltage differential signaling (LVDS)-based display panel), thus the average backlight adjustment is proportional to the power saved. Based on this knowledge and other aforementioned information, the calculator 204 can calculate how and how much power is to be saved using various available power-saving techniques.
As aforementioned, the monitor 202 performs various tasks, such as monitors the computing device's status, records backlight status for each change, trigger an initialization phase to gather the initial backlight by querying the driver 222 and initial computing device time, etc. The calculator 204 calculates the actual power to be saved based on the available techniques, etc., while the displayer 208 provides a user interface and presents the results having power-saving options to the user by, for example, Graphics User Interface (GUI), text, charts or graphs, system log, or the like.
FIG. 3A illustrates a method for facilitating power extension service at a computing device according to one embodiment. Method 300 may be performed by processing logic that may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, etc.), software (such as instructions run on a processing device), or a combination thereof. In one embodiment, method 300 may be performed by the PEAS mechanism
At block 320, battery power status is continuously monitored to determine whether the power status has reached one or more user-defined or other thresholds. If the threshold is not reached, the process may continue with initializing at block 305 or the battery status is continuously monitored. If a threshold is reached, further process is triggered to generate a list proposals relating to various power-saving techniques, an amount of power to be saved by each power-saving technique, a list of computing device components or services or functionalities to be compromised or sacrificed, the remaining battery time, etc., for the user. At processing block 330, the user decides and chooses one of the power-saving settings or options provided by the PEAS mechanism.
FIG. 3B illustrates a method for facilitating power extension service by performing a power saving calculation method at a computing device according to one embodiment. Method 350 may be performed by processing logic that may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, etc.), software (such as instructions run on a processing device), or a combination thereof. In one embodiment, method 350 may be performed by the PEAS mechanism and PSCM components of FIGS. 1, 2A and 2B.
Method 350 starts at block 355 with the monitor gathering initial backlight adjustment by various available and computer device-supported power-saving techniques (e.g., ADB, DPST, etc.). At block 360, backlight is changed by the available power-setting techniques (e.g., by ADB and/or by the DPST). At block 365, the calculator calculates saved power, while, at block 370, the displayer displays the sum and average saved power by each power-saving technique. At block 370, the monitor keeps monitoring the next backlight change.
FIG. 4A illustrates a screen shot having a GUI-like window or screen 402 providing a current battery status 404 (e.g., 6 min or 7% of battery life remaining) and, in one embodiment, a list 412 of various power-saving options available at and supported by the computing device and as determined by the PEAS mechanism of FIG. 1. The illustrated list 412 provides a number of options, such as choice 1 saving 12 minutes of battery life 414, choice 2 saving 20 minutes of battery life 416, and choice 3 saving 25 minutes of battery life 418, etc. The list further provides the user with a choice of clicking on details of any of the options 414-418 to see further details regarding that option. For example, referring now to FIG. 4B, if the user clicks on details of choice 1 414, the user may encounter a pop-up details list 420 showing, for example, ADB power-saving technique is “on” (as opposed to being “off”), DPST is at level 5, brightness remains at 70%, while the wireless option is in power-saving mode.
Now referring to FIG. 4C, it reflects another GUI-like screen 450 providing the user with a power-saving calculation service tool provided by the PEAS mechanism and PSCM components of the preceding figures. Here, the screen 450 provides the user the option of setting, for example, a DSPT/ADB setting 452, such as choosing “display power saving technology” and/or “automatic display brightness”, etc. The user may then click to “apply” 454 the settings, and begin calculations by clicking “start calculate” 456. These power saving calculations may be displayed for the user in a number of ways, such as by graph 458, in charts, through text, etc. It is contemplated that FIGS. 4A, 4B and 4C merely illustrate examples (for brevity, clarity, and ease of understanding) and that embodiments of the present inventions are not limited to these illustrated examples.
FIG. 5 illustrates a computing system 500 employing and facilitating a power extension assistant service mechanism as referenced throughout this document according to one embodiment of the invention. The exemplary computing system 500 may be the same as or similar to the computing device 100 FIG. 1 and include: 1) one or more processors 501 at least one of which may include features described above; 2) a memory control hub (MCH) 502; 3) a system memory 503 (of which different types exist such as double data rate RAM (DDR RAM), extended data output RAM (EDO RAM) etc.); 4) a cache 504; 5) an input/output (I/O) control hub (ICH) 505; 6) a graphics processor 506; 7) a display/screen 507 (of which different types exist such as Cathode Ray Tube (CRT), Thin Film Transistor (TFT), Light Emitting Diode (LED), Molecular Organic LED (MOLED), Liquid Crystal Display (LCD), Digital Light Projector (DLP), etc.; and 8) one or more I/O devices 508.
The one or more processors 501 execute instructions in order to perform whatever software routines the computing system implements. The instructions frequently involve some sort of operation performed upon data. Both data and instructions are stored in system memory 503 and cache 504. Cache 504 is typically designed to have shorter latency times than system memory 503. For example, cache 504 might be integrated onto the same silicon chip(s) as the processor(s) and/or constructed with faster static RAM (SRAM) cells whilst system memory 503 might be constructed with slower dynamic RAM (DRAM) cells. By tending to store more frequently used instructions and data in the cache 504 as opposed to the system memory 503, the overall performance efficiency of the computing system improves.
System memory 503 is deliberately made available to other components within the computing system. For example, the data received from various interfaces to the computing system (e.g., keyboard and mouse, printer port, Local Area Network (LAN) port, modem port, etc.) or retrieved from an internal storage element of the computer system (e.g., hard disk drive) are often temporarily queued into system memory 503 prior to their being operated upon by the one or more processor(s) 501 in the implementation of a software program. Similarly, data that a software program determines should be sent from the computing system to an outside entity through one of the computing system interfaces, or stored into an internal storage element, is often temporarily queued in system memory 503 prior to its being transmitted or stored.
The ICH 505 is responsible for ensuring that such data is properly passed between the system memory 503 and its appropriate corresponding computing system interface (and internal storage device if the computing system is so designed). The MCH 502 is responsible for managing the various contending requests for system memory 503 accesses amongst the processor(s) 501, interfaces and internal storage elements that may proximately arise in time with respect to one another.
One or more I/O devices 508 are also implemented in a typical computing system. I/O devices generally are responsible for transferring data to and/or from the computing system (e.g., a networking adapter); or, for large scale non-volatile storage within the computing system (e.g., hard disk drive). ICH 505 has bi-directional point-to-point links between itself and the observed I/O devices 508.
Portions of various embodiments of the present invention may be provided as a computer program product, which may include a computer-readable medium having stored thereon computer program instructions, which may be used to program a computer (or other electronic devices) to perform a process according to the embodiments of the present invention. The machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, compact disk read-only memory (CD-ROM), and magneto-optical disks, ROM, RAM, erasable programmable read-only memory (EPROM), electrically EPROM (EEPROM), magnet or optical cards, flash memory, or other type of media/machine-readable medium suitable for storing electronic instructions.
The techniques shown in the figures can be implemented using code and data stored and executed on one or more electronic devices (e.g., an end station, a network element). Such electronic devices store and communicate (internally and/or with other electronic devices over a network) code and data using computer-readable media, such as non-transitory computer-readable storage media (e.g., magnetic disks; optical disks; random access memory; read only memory; flash memory devices; phase-change memory) and transitory computer-readable transmission media (e.g., electrical, optical, acoustical or other form of propagated signals—such as carrier waves, infrared signals, digital signals). In addition, such electronic devices typically include a set of one or more processors coupled to one or more other components, such as one or more storage devices (non-transitory machine-readable storage media), user input/output devices (e.g., a keyboard, a touchscreen, and/or a display), and network connections. The coupling of the set of processors and other components is typically through one or more busses and bridges (also termed as bus controllers). Thus, the storage device of a given electronic device typically stores code and/or data for execution on the set of one or more processors of that electronic device. Of course, one or more parts of an embodiment of the invention may be implemented using different combinations of software, firmware, and/or hardware.
In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The Specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

## Claims

1. A computer-implemented method comprising:
generating a list of a plurality of power-saving options that are available for selection and that are supported by a computing device that is active, wherein individual power-saving option comprises a corresponding one or more of a plurality of power-saving techniques, and wherein a first power-saving option comprises a first one or more power-saving techniques;
for at least one of the plurality of power-saving options, determining a corresponding duration of time that a power supply is able to provide power to the computing device in response to selecting the corresponding power saving option from the plurality of power saving options, such that a plurality of durations of time are determined for the corresponding plurality of power-saving options;
displaying the list of the plurality of power-saving options and the plurality of durations of time;
displaying a list of the first one or more power-saving techniques, in response to a selection of the first power saving option from the displayed list of the plurality of power-saving options; and
activating the selected first power saving option.

2. The computer-implemented method of claim 1, wherein the first one or more of the plurality of power-saving techniques comprise one or more of an Automatic Display Brightness (ADB), a Display Power Saving Technology (DPST), and a Display Refresh Rate Switching Technology (DRRS).

3. The computer-implemented method of claim 2, further comprising:
determining whether a power status of the computing device has reached one or more user-defined thresholds; and
calculating potential power saving by one or more of the plurality of power-saving techniques supported by the computing device in response to a determination that at least one of the one or more user-defined thresholds have been reached.

4. The computer-implemented method of claim 1, wherein the generating the plurality of durations of time is performed based, at least partially, on data relating to the plurality of power-saving options and current power status of one or more batteries coupled to the computing device.

5. The computer-implemented method of claim 1, wherein the computing device comprises one or more of a smartphone, a personal digital assistant (PDA), a handheld computer, a tablet computer, an e-reader, a notebook, a netbook, a set-top box, or a desktop computer.

6. The computer-implemented method of claim 1, wherein the plurality of power-saving techniques include power-saving techniques supported by the hardware of the computing device.

7. The computer-implemented method of claim 1, wherein the plurality of power-saving techniques include power-saving techniques supported by an operating system executed by the computing device.

8. A system comprising:
a host computing device having a non-transitory computer readable medium to store instructions to facilitate power extension service, and a processing device to execute the instructions, wherein the instructions, when executed, cause the processing device to:
generate a techniques list of a plurality of power saving options comprising one or more of a plurality of power-saving techniques that are available for selection and that are supported by the computing device that is active;
determine a plurality of durations of time, wherein the plurality of durations of time comprises:
a first duration of time for which a power supply is estimated to be able to provide power to the computing device in response to selecting a first power saving option from the plurality of power saving options, and
a second duration of time for which the power supply is estimated to be able to provide power to the computing device in response to selecting a second power saving option from the plurality of power saving options;

generate a functionalities list of one or more functionalities of the computing device that are to be, at least partially, relinquished in response to selecting a power saving option from the plurality of power saving options;
display the techniques list, the functionalities list, and the plurality of durations of time; and
activate a selected power saving technique.

9. The system of claim 8, wherein the processing device is further to monitor the one or more of the plurality of power-saving techniques supported by the computing device, wherein the one or more of the plurality of power-saving techniques comprise one or more of an Automatic Display Brightness (ADB), a Display Power Saving Technology (DPST), or a Display Refresh Rate Switching Technology (DRRS).

10. The system of claim 8, wherein the determination is performed based, at least partially, on data relating to the one or more functionalities and current power status of one or more batteries coupled to the computing device.

11. The system of claim 8, wherein the computing device comprises one or more of a smartphone, a personal digital assistant (PDA), a handheld computer, a tablet computer, an e-reader, a notebook, a netbook, a set-top box, or a desktop computer.

12. A non-transitory machine-readable medium including instructions that, when executed by a machine, cause the machine to:
generate a techniques list of a plurality of power saving options comprising one or more of a plurality of power-saving techniques that are available for selection and that are supported by a computing device that is active;
generate a functionalities list of one or more functionalities of the computing device that are to be, at least partially, disabled in response to selecting a power saving option from the plurality of power saving options;
determine one or more durations of time that a power supply is estimated to be able to provide power to the computing device in response to selecting a corresponding one or more power saving options from the plurality of power saving options;
display the techniques list, the functionalities list, and the one or more durations of time; and
activate a selected power saving technique.

13. The non-transitory machine-readable medium of claim 12, wherein the processing device is further to monitor the one or more of the plurality of power-saving techniques supported by the computing device, wherein the one or more of the plurality of power-saving techniques comprise one or more of an Automatic Display Brightness (ADB), a Display Power Saving Technology (DPST), or a Display Refresh Rate Switching Technology (DRRS).

14. The non-transitory machine-readable medium of claim 12, wherein the determination is performed based, at least partially, on data relating to the one or more functionalities and current power status of one or more batteries coupled to the computing device.

15. The non-transitory machine-readable medium of claim 12, wherein the computing device comprises one or more of a smartphone, a personal digital assistant (PDA), a handheld computer, a tablet computer, an e-reader, a notebook, a netbook, a set-top box, or a desktop computer.