US20130046967A1 - Proactive Power Management Using a Power Management Unit - Google Patents
Proactive Power Management Using a Power Management Unit Download PDFInfo
- Publication number
- US20130046967A1 US20130046967A1 US13/533,480 US201213533480A US2013046967A1 US 20130046967 A1 US20130046967 A1 US 20130046967A1 US 201213533480 A US201213533480 A US 201213533480A US 2013046967 A1 US2013046967 A1 US 2013046967A1
- Authority
- US
- United States
- Prior art keywords
- power
- pmu
- subsystems
- subsystem
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION, OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
- H03L7/0802—Details of the phase-locked loop the loop being adapted for reducing power consumption
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/02—Generators characterised by the type of circuit or by the means used for producing pulses
- H03K3/027—Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
- H03K3/03—Astable circuits
- H03K3/0315—Ring oscillators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/01—Modifications for accelerating switching
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/02—Generators characterised by the type of circuit or by the means used for producing pulses
- H03K3/027—Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
- H03K3/037—Bistable circuits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/02—Generators characterised by the type of circuit or by the means used for producing pulses
- H03K3/027—Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
- H03K3/037—Bistable circuits
- H03K3/0375—Bistable circuits provided with means for increasing reliability; for protection; for ensuring a predetermined initial state when the supply voltage has been applied; for storing the actual state when the supply voltage fails
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K5/13—Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
- H03K5/133—Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals using a chain of active delay devices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION, OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
- H03L7/085—Details of the phase-locked loop concerning mainly the frequency- or phase-detection arrangement including the filtering or amplification of its output signal
- H03L7/097—Details of the phase-locked loop concerning mainly the frequency- or phase-detection arrangement including the filtering or amplification of its output signal using a comparator for comparing the voltages obtained from two frequency to voltage converters
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION, OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
- H03L7/099—Details of the phase-locked loop concerning mainly the controlled oscillator of the loop
- H03L7/0995—Details of the phase-locked loop concerning mainly the controlled oscillator of the loop the oscillator comprising a ring oscillator
- H03L7/0997—Controlling the number of delay elements connected in series in the ring oscillator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2924/00—Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
- H01L2924/0001—Technical content checked by a classifier
- H01L2924/0002—Not covered by any one of groups H01L24/00, H01L24/00 and H01L2224/00
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K2005/00013—Delay, i.e. output pulse is delayed after input pulse and pulse length of output pulse is dependent on pulse length of input pulse
- H03K2005/00019—Variable delay
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K2005/00013—Delay, i.e. output pulse is delayed after input pulse and pulse length of output pulse is dependent on pulse length of input pulse
- H03K2005/00019—Variable delay
- H03K2005/00026—Variable delay controlled by an analog electrical signal, e.g. obtained after conversion by a D/A converter
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K2005/00013—Delay, i.e. output pulse is delayed after input pulse and pulse length of output pulse is dependent on pulse length of input pulse
- H03K2005/00019—Variable delay
- H03K2005/00058—Variable delay controlled by a digital setting
Definitions
- This invention relates to power management and more specifically to power management units.
- PMUs power management units
- Many devices include power management units (PMUs) for managing power supplied to different elements of a device (e.g., to memories, processors, various hardware subsystems, and software).
- PMUs power management units
- Many conventional PMUs are limited to adjusting power reactively. That is, many conventional PMUs adjust the power supplied to a particular element of a device in response to the occurrence of a certain event. For example, when an element in a device begins to draw a large amount of power, a reactive PMU can detect this event and can temporarily increase the amount of power supplied to the element.
- many conventional PMUs typically do not predict the amount of power a particular element of a device will require.
- PMUs that are only capable of reactively managing power have several disadvantages. For example, because such PMUs typically do not attempt to make power consumption predictions for applications and/or for elements of a device, they cannot plan for future power consumption needs of applications and/or device elements.
- FIG. 1 is a block diagram of a device incorporating PMU in accordance with an embodiment of the present disclosure.
- FIG. 2 is a more detailed block diagram showing elements of a CPU.
- FIG. 3 is a more detailed block diagram showing elements of a wireless subsystem.
- FIG. 4 is a flowchart of a method of proactively managing power for a device using a PMU in accordance with an embodiment of the present disclosure.
- FIG. 5 is a flowchart of a method for reconfiguring one or more subsystems of a device based on information from a previous execution of an application or a previous operation of a subsystem of a device.
- FIG. 6 is a flowchart of a method for reconfiguring one or more subsystems of a device based on a power priority determination.
- FIG. 7 is a flowchart of a method for optimizing power used by a device based on a periodic evaluation of the subsystems and applications of the device.
- FIG. 8 is a flowchart of a method for optimizing power supplied to subsystems and applications based on information received from sensors.
- FIG. 9 is a flowchart of a method for reconfiguring a memory based on cache miss rates.
- FIG. 10 is a flowchart of a method for reconfiguring subsystems of a device based on predictions made during previous executions of blocks of code.
- FIG. 11 is a flowchart of a method for reconfiguring subsystems of a device based on signals generated from blocks of code.
- FIG. 12 illustrates an example computer system that can be used to implement aspects of the present disclosure.
- references in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
- Embodiments of the present disclosure provide systems and methods for proactively managing power in a device.
- a power management unit receives information from various subsystems of a device (e.g., from one or more processors, memories, batteries, sensors, etc.) and estimates the total power required by subsystems of the device. Based on this information, the PMU can predict the amount of power required for a particular subsystem or for one or more application(s) to execute. For example, the PMU can use data collected from previous executions of an application (e.g., a video application) to predict an amount of power subsequent executions of the application will require.
- an application e.g., a video application
- the PMU can reconfigure the characteristics and/or properties of subsequent executions of applications so that these applications execute more efficiently given the current battery life of the device (e.g., by lowering the resolution of the video to a level where the device will have sufficient power to finish playing it).
- the PMU can also modify the voltage supplied to one or more subsystems used by the application so that more or less power is available for execution of the application.
- the PMU can also reconfigure a voltage regulator and/or select a different voltage regulator based on predicted power needs of an application. For example, in an embodiment, a more or less efficient and/or a more or less responsive voltage regulator can be selected based on predicted power needs of an application.
- the PMU can also use additional collected data to optimize power management of the device.
- the PMU can be configured to make power adjustments based on data collected from sensors and cache memory miss signals.
- the PMU can predict the power requirements of blocks of code based on previous code executions, and the PMU can receive signals from executing code that alert the PMU to upcoming power requirements.
- Proactive power management advantageously gives the PMU the capability to predict power needs of various subsystems of a device so that the power supplied to these subsystems can be managed in an intelligent way to conserve battery resources.
- FIG. 1 is a block diagram of a device 100 incorporating a PMU 102 in accordance with an embodiment of the present disclosure.
- device 100 is a communications device (e.g., a cellular handset).
- PMU 102 is a microcontroller implemented on an integrated circuit (IC).
- IC integrated circuit
- PMU 102 could be implemented in any form of hardware, software, or a combination of hardware and software.
- PMU 102 is configured to receive information from various subsystems of device 100 and is configured to manage power supplied to these subsystems based at least in part on this received information.
- PMU 102 receives information from one or more power sources (e.g., from one or more batteries), represented in FIG. 1 by battery subsystem 104 .
- PMU 102 can receive information from battery subsystem 104 regarding the available power from battery subsystem 104 and the amount of remaining battery life of battery subsystem 104 .
- PMU 102 also receives information from various processors of device 100 .
- PMU 102 can receive information from one or more central processing units (CPUs), represented in FIG. 1 by CPU 106 .
- CPUs central processing units
- this information can include information regarding currently executing code and cache memory miss signals.
- PMU 102 can also receive information from one or more video processors, represented in FIG. 1 by video processor 108 . This information can include, for example, information regarding the amount of power required to execute video and/or graphics applications and current characteristics of these applications.
- the one or more processors can have access to one or more external memories, represented in FIG. 1 by external memory subsystem 110 .
- CPU 106 and video processor 108 can access stored data in external memory subsystem 110 when a cache miss occurs from on-chip cache memory.
- External memory subsystem 110 can include any type of memory, such as, without limitation, read only memory (ROM), electronically erasable programmable read only memory (EEPROM), random access memory (RAM), static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), flash memory, one or more hard disks, etc.
- ROM read only memory
- EEPROM electronically erasable programmable read only memory
- RAM random access memory
- SRAM static RAM
- DRAM dynamic RAM
- SDRAM synchronous DRAM
- DDRSDRAM double data rate SDRAM
- flash memory one or more hard disks, etc.
- PMU 102 also receives information from external memory subsystem 110 . For example, in an embodiment, information regarding previous execution
- PMU 102 can also receive information from one or more displays of device 100 , represented in FIG. 1 by display subsystem 112 .
- this information can include information regarding the current amount of power used by display subsystem 112 and/or current settings of display subsystem 112 (e.g., resolution, brightness, etc.).
- PMU 102 also receives information from one or more wireless modules of device 100 , represented in FIG. 1 by wireless subsystem 114 .
- Wireless subsystem 114 can support any type of wireless module including, without limitation, a cellular module, a wireless local area network (WLAN) module, a Bluetooth module, a near field communication (NFC) module, a Global Positioning Satellite (GPS) module, a Global Navigation Satellite System (GNSS) module, etc.
- WLAN wireless local area network
- NFC near field communication
- GPS Global Positioning Satellite
- GNSS Global Navigation Satellite System
- wireless subsystem 114 is coupled to an antenna 116 (e.g., for communications with a cellular base station).
- PMU 102 can receive information from wireless subsystem 114 including, for example, information regarding the current amount of power used by wireless subsystem 114 and current operating conditions of wireless subsystem 114 .
- PMU 102 can also receive information from one or more sensors, represented in FIG. 1 by sensor subsystem 118 .
- Sensor subsystem 118 can include, without limitation, acoustic sensors, sound sensors and/or microphones, vibration sensors, motion, angle, displacement, and/or position sensors, electric current and/or electric potential sensors, environmental sensors, velocity and/or acceleration sensors, optical and/or light sensors, pressure and/or force sensors, thermal, heat, and/or temperature sensors, proximity and/or presence sensors, etc. It should be noted that while various sensors of device 100 are drawn in FIG. 1 as being grouped together in sensor subsystem 118 , sensors can be located anywhere on or within device 100 according to embodiments of the present disclosure.
- PMU 102 can use information from sensors subsystem 118 when determining an amount of power to supply to subsystems of device 100 .
- PMU 102 can use information from a proximity sensor of sensor subsystem 118 to decide to lower the resolution of a playing application (e.g., a video application) to conserve power if no user is nearby.
- a playing application e.g., a video application
- device 100 can include several other subsystems, such as one or more input/output (I/O) subsystems, one or more speakers, one or more peripheral subsystems, etc.
- I/O input/output
- speakers one or more peripheral subsystems, etc.
- FIG. 2 is a more detailed block diagram showing elements of CPU 106 .
- CPU 106 includes a processor core 200 , a cache memory 202 , and a bridge 206 that couples CPU 106 to external memory subsystem 110 .
- cache memory 202 is shown in FIG. 2
- multiple cache memories can be used according to embodiments of the present disclosure.
- CPU 106 is configured to access multiple levels of cache memory. When a cache miss occurs, CPU 106 accesses a memory of external memory subsystem 110 . In an embodiment, CPU 106 also sends a cache miss signal to PMU 102 when a cache miss occurs.
- PMU 102 can be configured to optimize power supplied to subsystems of device 100 based on these cache miss signals. For example, PMU 102 can supply more power to external memory subsystem 110 whenever PMU 102 detects an increase in cache misses. Power optimization based on cache misses is explained in greater detail in section 6 .
- FIG. 3 is a more detailed block diagram showing elements of wireless subsystem 114 .
- wireless subsystem 114 can include, without limitation, a cellular module (e.g., a cellular modem) 300 , a WLAN module 301 , a GPS module 302 , a GNSS module 304 , a Bluetooth module 306 , and/or a NFC module 308 .
- Cellular module 300 may be configured to support a variety of standards including, without limitation, 3G, 4G, Long Term Evolution (LTE), etc.
- PMU 102 can receive information from these modules and can adjust power supplied to subsystems of device 100 based on this information.
- FIGS. 1-3 can be integrated onto one or more ICs.
- the elements of FIG. 1 are integrated onto a single IC.
- the elements of FIG. 1 are implemented on one or more separate ICs.
- PMU 102 , CPU 106 , video processor 108 , and wireless subsystem 114 are implemented on a single IC.
- PMU 102 can construct a power profile based on information received from various subsystems of FIG. 1 (e.g., from CPU 106 , video processor 108 , and/or subsystems 104 , 110 , 112 , 114 , and 118 ). In an embodiment, PMU 102 receives information from every power-using subsystem of device 100 . In another embodiment, PMU 102 only receives information from subsystems of device 100 that use the most power. For example, some subsystems of device 100 (e.g., speakers) may use a relatively small amount of power. Thus, information from subsystems of device 100 that do not consume much power may not be needed to obtain an accurate picture of the total power consumed by various subsystems of device 100 .
- PMU 102 receives information from every power-using subsystem of device 100 . In another embodiment, PMU 102 only receives information from subsystems of device 100 that use the most power. For example, some subsystems of device 100 (e.g., speakers) may use a relatively small
- PMU 102 may use information from the most power-expensive subsystems to predict total power consumption by device 100 , and PMU 102 may create a power profile based on this prediction. Using this power profile and the information received from various subsystems of device 100 , PMU 102 can make predictions regarding an amount of power these subsystems will consume and can proactively manage power for the various subsystems of device 100 .
- FIG. 4 is a flowchart of a method of proactively managing power for a device using a PMU in accordance with an embodiment of the present disclosure.
- step 400 information from a plurality of subsystems of a device is received.
- PMU 102 can receive information from CPU 106 , video processor 108 , and subsystems 104 , 110 , 112 , 114 , and 118 .
- step 402 power that will be required by one or more subsystems based on the information received is estimated.
- PMU 102 can create and/or update a power profile that represents total power required by the device 100 based on the information received in step 400 . Using this power profile, PMU 102 can estimate power that will be required by particular subsystems of device 100 and/or a particular application executing on device 100 .
- PMU 102 can use a variety of technique to estimate the power that will be required by one or more of the subsystems of device based on the information received in step 400 .
- PMU 102 can estimate the amount of power video processor 108 and display subsystem 112 will require to finish playing a video on a media player application based on information obtained during a previous execution of the media player application.
- PMU 102 can also make a prediction for power requirements of code being executed based on a previous execution of the same (or similar) code or based on receiving a signal from executing code indicating an amount of power the code will require to finish executing.
- one or more of the subsystems are reconfigured based on the estimated power.
- PMU 102 can use a variety of techniques to reconfigure the power supplied to one or more of the subsystems of device 100 to optimize the power supplied to various subsystems of device 100 . For example, based on the power estimated in step 402 , PMU 102 can determine that device 100 does not have sufficient power to finish playing a video based on the current power requirements of the various subsystems of device 100 . PMU 102 can lower the quality of the video (e.g., by increasing compression, lowering resolution, dimming the screen, etc.) to save power so device 100 has enough power to finish playing the video. Alternatively, PMU 102 can instruct certain subsystems to shut down to save power.
- PMU 102 can use infor nation obtained from sensor subsystem 118 to determine which subsystems can be reconfigured for power savings. For example, PMU 102 can receive information from a user presence detecting sensor indicating that a user is far away. In such a case, PMU 102 can determine that video quality should be lowered to save power until the user comes closer to device 100 .
- PMU 102 can use cache miss rate information received to optimize power supplied to various subsystems of device 100 . For example, if the cache miss rate is sufficiently low, PMU can determine that less power can be supplied to external memory subsystem 110 .
- the frequency of one or more processors can be reduced to save power.
- leakage of the device increases with a corresponding increase in temperature, so running CPU 106 and/or video processor 108 more slowly can lead to additional power efficiency savings due to a decrease in leakage.
- PMU 102 predicts that a higher performance by a device will be necessary, PMU 102 can temporarily increase the voltage supplied to a device (e.g., CPU 106 and/or video processor 108 ) in anticipation of this higher performance.
- one or more wireless links can be manipulated by PMU 102 to conserve or increase power usage by altering functions such as video processing.
- PMU 102 can decrease the data rate of information transmitted over one or more wireless links to save power.
- PMU 102 can alter the way in which wireless data is transmitted and/or received to conserve or increase power usage.
- PMU 102 can adjust a communication scheme using Multiple Input Multiple Output (MIMO) data transmission and/or reception to a communication scheme that uses less power.
- MIMO Multiple Input Multiple Output
- embodiments of the present disclosure provide multiple techniques for proactively estimating power required by a device and reconfiguring subsystems of the device based on this estimation.
- Various systems and methods for power estimation and device reconfiguration will now be described in turn in greater detail.
- Embodiments of the present disclosure provide systems and methods for reconfiguring device 100 based on estimating power required by one or more applications or subsystems of device 100 .
- the amount of power required for the application or subsystem to finish preforming a task can be predicted. Using these predictions, power can be redistributed among applications and/or subsystems so that device 100 has sufficient power to finish performing the task.
- PMU 102 can determine how to redistribute power using, for example, a power prioritization policy or user input. Additionally, in an embodiment, PMU 102 can periodically evaluate currently active subsystems and/or applications to determine whether power should be redistributed so that important subsystems and/or applications have sufficient power to finish performing tasks.
- FIG. 5 is a flowchart of a method for reconfiguring one or more subsystems of device 100 based on information from a previous execution of an application or a previous operation of a subsystem of device 100 .
- step 500 information from a plurality of subsystems of a device is received.
- PMU 102 can receive information from CPU 106 , video processor 108 , and/or subsystems 104 , 110 , 112 , 114 , and 118 .
- step 502 power required by the subsystems is estimated based on the received information.
- PMU 102 can create and/or update a power profile that represents power required by the various subsystems of device 100 based on the information received in step 500 .
- PMU 102 can use this power profile to estimate power that will be required by a particular application executing on device 100 or a particular subsystem of device 100 .
- one or more applications or subsystems may be performing a task. In some cases, certain applications or subsystems may not have sufficient power to complete the task.
- PMU 102 can determine whether an application or subsystem has sufficient power to finish a task that it has begun.
- PMU 102 accesses information obtained during a previous execution of an application or during a previous operation of a subsystem to predict an amount of power that will be required to finish a task (e.g., to finish executing the application or to finish powering the subsystem until a certain task is completed). For example, PMU can access data gathered during a previous execution of a media player application to determine an amount of power that will be required to finish playing a video using the media player application. In an embodiment, this information can be gathered after (or during) execution of applications and can be stored, for example, in external memory subsystem 110 . For example, in an embodiment, PMU 102 can monitor an amount of power a video executing on media player application requires to execute. PMU 102 can store information regarding an amount of power consumed by the media player application.
- PMU 102 can also optionally record information regarding various characteristics of applications and/or subsystems.
- PMU 102 can store information regarding a resolution used to play a video, an amount of compression used (e.g., scalable video coding (SVC)), the brightness and contrast used for display subsystem 112 during execution of the video, the total length of the video, etc.
- SVC scalable video coding
- This data can be collected after an application has finished executing (or after the application has been closed), or it can be periodically collected as an application is executing or during the operation of a subsystem.
- PMU 102 can create a database of information that it can use later to determine the impact of various characteristics (e.g., application execution time, video compression, brightness, contrast, etc.) on power requirements of an application and/or a subsystem. PMU 102 can optionally use this information in the future to modify these characteristics during execution of applications so that power consumption by applications and subsystems can be optimized. Further, PMU 102 can use this information to intelligently predict future power needs of applications and/or subsystems of device 100 .
- characteristics e.g., application execution time, video compression, brightness, contrast, etc.
- PMU 102 determines that the application or subsystem does not have sufficient power to finish the task. Based on the information obtained in step 504 , PMU 102 can predict the amount of power necessary for the application or subsystem to finish the task. For example, in an embodiment, PMU 102 can determine that the application or subsystem consumes power at a known rate. Based on predicting the amount of time that will be required for the application or subsystem to finish the task, PMU 102 can estimate the amount of power that will be required to finish the task, and PMU 102 can determine that battery resources will be exhausted before the task is completed.
- PMU 102 can estimate the amount of power that will be required to finish playing a video executing on a media player application. PMU 102 can perform this estimation based on the power profile for the system created in step 502 , the remaining power available from battery subsystem 104 , and the information obtained during a previous execution of the media player application obtained in step 504 . PMU 102 can access stored information from previous executions of the media player application to predict an amount of power the video will require to finish executing. For example, if the current video being played is half as long as a previously played video, PMU 102 can estimate that the current video will require half the amount of power as the previously played video.
- PMU 102 also predicts power required for the application based on an examination of the impact of application characteristics such as application length, application resolution, the amount of compression used (e.g., SVC) for the application, and the brightness and contrast used for display subsystem 112 during execution of the application.
- application characteristics such as application length, application resolution, the amount of compression used (e.g., SVC) for the application, and the brightness and contrast used for display subsystem 112 during execution of the application.
- the impact of these characteristics is known by PMU 102 , and PMU can calculate an amount of power the application will require given the current value of these characteristics.
- PMU 102 can know that increasing the resolution of the application by a certain amount will result in a predictable increase in the amount of power required by the application.
- PMU 102 can make better predictions for the impact of these characteristics on the power requirements of the application based on stored information gathered during previous executions of applications.
- PMU 102 can train itself to more reliably predict power consumption requirements of an application based on current values of application characteristics such as application length, application resolution, the amount of compression used (e.g., SVC) for the application, and the brightness and contrast used for display subsystem 112 during execution of the application.
- application characteristics such as application length, application resolution, the amount of compression used (e.g., SVC) for the application, and the brightness and contrast used for display subsystem 112 during execution of the application.
- step 508 one or more of the subsystems is reconfigured based on the estimated power in step 506 .
- PMU 102 estimates the power that will be required for the video to finish playing
- PMU 102 can determine that battery subsystem 104 does not have enough power left to finish playing the video.
- PMU 102 can determine (e.g., based on a policy or by prompting the user) that the power supplied to one or more subsystems of device 100 should be reconfigured and/or redistributed so that the device has sufficient power to finish playing the video.
- step 508 one or more of the subsystems of device 100 are reconfigured based on the estimated power from step 506 .
- one or more subsystems can be temporarily disabled by PMU 102 or instructed by PMU 102 to operate at a reduced functionality so that more battery power can be conserved to execute the media player application.
- PMU 102 can also determine that one or more characteristics of the media player application should be modified for power conservation. For example, PMU 102 can calculate (e.g., in step 506 ) that device 100 will not have sufficient power to finish playing the video with the current SVC mode being used but will have sufficient power to finish playing the video if a higher SVC mode is used. Therefore, PMU 102 can determine that the video quality should be lowered (e.g., by using a higher SVC mode) to conserve power so that the entire video can be played.
- PMU 102 can determine how various subsystems of device 100 should be reconfigured to conserve power using a variety of methods.
- PMU 102 can access a power prioritization policy to determine which subsystems and/or applications should be disabled and/or reconfigured to operate at a lower power mode if device 100 is operating in a low power state and needs to assign more power to a high priority application or subsystem.
- PMU 102 can also prompt a user for permission to reassign power once PMU 102 determines (e.g., in step 506 ) that an application or subsystem does not have sufficient power.
- FIG. 6 is a flowchart of a method for reconfiguring one or more subsystems of a device based on a power priority determination.
- PMU 102 determines (e.g., based on a power estimate such as the power estimate performed in step 506 of FIG. 5 ) that device 100 does not have sufficient power to finish a task associated with a high priority application or a high priority subsystem. For example, PMU 102 can determine that wireless subsystem 114 does not have sufficient power to finish an in-progress download or upload of data. In a media player example, PMU 102 can determine that a media player application does not have sufficient power to finish playing a video.
- PMU 102 determines whether a power prioritization policy provides instructions regarding how to reassign power when device 100 does not have sufficient power to finish performing the task. For example, PMU 102 can access a power prioritization policy (e.g., stored in external memory subsystem 110 ). This power prioritization policy can dictate which subsystems of device 100 should be prioritized and which subsystems can be shut down or put into a lower power state if battery resources need to be conserved.
- a power prioritization policy e.g., stored in external memory subsystem 110 . This power prioritization policy can dictate which subsystems of device 100 should be prioritized and which subsystems can be shut down or put into a lower power state if battery resources need to be conserved.
- the power prioritization policy may state that certain subsystems of wireless subsystem 114 (e.g., Bluetooth subsystem 306 , GPS subsystem 302 , or GNSS subsystem 304 ) can be powered off to save power if a higher priority subsystem requires additional power to perform a task.
- the policy may also provide instructions for assigning less power to certain subsystems. For example, the policy may instruct PMU 102 to lower the brightness, resolution, etc. of display subsystem 112 to save power.
- the power prioritization policy can also specify one or more high priority applications. For example, in an embodiment, important applications like operating system applications and cellular telephone applications can always be assigned a high priority.
- the policy can provide a list of certain lower priority applications that can be disabled if power needs to be conserved.
- the policy can also dictate that certain active applications (e.g., a video currently being played on a media player application) should be assigned a high priority and can provide instructions for disabling certain lower priority subsystems and/or applications so that device 100 has sufficient power to finish performing the task.
- PMU 102 determines which subsystems and/or applications to reconfigure in step 604 .
- PMU 102 can calculate an estimated amount of power that will be saved by disabling and/or reconfiguring subsystems and/or applications and can determine how application and/or subsystem reconfiguration will be necessary for device 100 to have sufficient power to finish performing the task.
- a power prioritization policy may state that if there is insufficient battery power to finish playing a video, video quality should be lowered until enough battery power will be conserved to finish the video.
- options may be available for reducing video quality to save power. Such options can include, without limitation: playing the video using a higher SVC mode with battery depletion occurring before the video ends; using a lower SVC mode wherein battery will prove sufficient with minimal margin; adapting SVC with I-frame sync on the fly to minimize higher power requirement portions of the stream or more accurately utilize the full remaining battery power; playing the video in a much lower SVC mode than is required to maximize battery savings; reducing video resolution; reducing screen brightness; and/or reducing power supplied to the backlight display.
- PMU 102 can estimate an amount of power it needs to save to finish playing the video. PMU 102 can then determine an amount of compression necessary for device 100 to meet these required power savings. For example, in an embodiment, PMU 102 can know in advance an amount of estimated power that can be saved by increasing compression, reducing resolution, reducing screen brightness, etc. Based on this information, PMU 102 can determine which actions it can take to achieve sufficient power-savings for device 100 to have sufficient power to finish playing the video. In an embodiment, PMU 102 can also access information obtained during previous executions of the media player application to assist it in estimating an amount of power that will be saved by increasing compression, reducing resolution, reducing screen brightness, etc.
- the power prioritization policy can also state that certain subsystems and/or applications should be assigned less power if reconfiguring characteristics of the media player application is insufficient to achieve the needed power savings.
- the power prioritization policy can state that certain subsystems (e.g., Bluetooth subsystem 306 ) and/or applications should be powered down until sufficient power savings are achieved.
- PMU 102 can throttle wireless connectivity, alter display qualities (e.g., resolution), switch to a mode that uses more text and less graphics, dim the backlight display, reduce the times lights are turned on and off, and/or reduce the duty cycle of wireless subsystem 114 (e.g., lower the rate at which device 100 scans for available wireless networks).
- PMU 102 can know in advance an amount of estimated power that will be saved by powering down these applications and/or subsystems.
- PMU 102 can access information obtained during previous executions of applications and/or subsystems to aid it in determining an amount of power that will be saved by changing certain characteristics of an application.
- the power prioritization policy can also specify that device 100 should be placed in a certain power modes based on the current amount of power available from battery subsystem 104 .
- Each power mode can be associated with one or more instructions for assigning power to subsystems and/or applications. For example, in a high power mode, full power can be assigned to all subsystems and applications. In an intermediate power mode, certain subsystems and/or applications can be disabled to save power. In a low power mode, even important subsystems and/or applications can be assigned less power or can be instructed to operate at reduced performance so that power can be saved.
- PMU 102 can switch the power mode of device 100 in response to determining (e.g., in step 604 ) that subsystems and/or applications should be reconfigured to save power.
- PMU 102 ideally optimizes power to provide the most functionality that it is able to provide given the current battery life of device 100 .
- PMU 102 ideally determines to optimize power so that the media player application will be able to play the video using the best quality possible while still having enough power available to finish playing the video.
- PMU 102 may not be able to save sufficient power for device 100 to finish performing the task.
- PMU 102 can take steps to conserve power so that the battery life of the device will be extended, even if the device will run out of power before the task has been finished.
- PMU 102 can then optionally notify the user of the upcoming reconfigurations in step 606 .
- a message can be sent to a user informing the user of a change in power settings before PMU 102 reconfigures the power supplied to subsystems and/or applications.
- the user can also optionally be given the chance to choose to reject the proposed changes and continue with the current power settings.
- the user can determine (e.g., based on a device or policy setting) whether he or she wants to receive such power notifications.
- the user can configure device 100 to conserve power automatically without notifying the user, or the use can configure device 100 to take no automatic power savings action.
- PMU reconfigures the one or more subsystems and/or applications based on the policy.
- a power prioritization policy may not provide instructions for reassigning power if device 100 does not have sufficient power to finish performing the task.
- PMU 102 can inform the user that the host device has insufficient power to finish performing the task in step 610 .
- PMU 102 can then optionally propose power savings options to the user in step 612 .
- PMU 102 can initiate sending a message to the user (e.g., via a pop up display) giving the user options for reconfiguring the power settings of device 100 .
- the user can be given the option to place device 100 in a lower power mode, to disable some applications (e.g., background applications and/or multi-task applications, such as applications enabling simultaneous video playback and file downloading) and/or subsystems, and/or to reduce the quality of certain active applications (e.g., reducing the quality of a playing video).
- PMU 102 can then reconfigure subsystems and/or applications based on the user input in step 614 .
- PMU 102 can also update the policy based on the user input to avoid the need for future input from the user. By updating the policy based on user inputs, PMU 102 can train itself to adapt to the user's preferences.
- user notification is optional, and the user can configure device 100 (e.g., in a device setting or in the power prioritization policy) so that notifications are not sent to the user.
- PMU 102 may determine that battery power is low while a phone call is in progress. PMU 102 can then take actions to maximize battery life so that additional time is available to complete the phone call before the battery is out of power. For example, PMU 102 may determine (e.g., based on the power prioritization policy) that certain applications (e.g., graphics programs) and/or subsystems (e.g., Bluetooth subsystem 306 ) should be disabled to maximize battery life.
- applications e.g., graphics programs
- subsystems e.g., Bluetooth subsystem 306
- PMU 102 can redistribute power from other subsystems or applications to provide more power to wireless subsystem 114 . For example, if device 100 is not currently in use by the user, PMU 102 can determine (e.g., based on a stored power prioritization policy) that display system 112 can temporarily be powered down and/or that device 100 can be put into a standby mode until the user performs some action to wake up device 100 again.
- PMU 102 can coordinate with other devices to optimize power usage among several devices.
- device 100 can be a cellular phone running an application that is displayed on a different device (e.g., a tablet computer).
- a different device e.g., a tablet computer
- device 100 can be executing the media player application, but the video itself can be displayed on the tablet.
- device 100 's cellular subsystem 300 can be used to receive a LTE video stream from a remote server, and device 100 's WLAN subsystem 301 can be used to transmit the video stream to a tablet.
- PMU 102 can be configured to monitor the power consumption from the LTE network and the WiFi link and adjust the bitrate of the video accordingly to manage battery life.
- PMU 102 determines that the battery power of the tablet receiving the video is low, PMU 102 can send a message to WLAN subsystem 301 to compress the video so that video quality is lowered but power is saved on the tablet.
- PMU 102 determines that the tablet has high battery power but that device 100 has low battery power, PMU 102 can determine that no video compression should be performed using device 100 to save power on device 100 . Video compression can then optionally be performed on the tablet, if necessary.
- PMU 102 can periodically evaluate currently active subsystems and/or applications to determine whether power should be redistributed so that important subsystems and/or applications have sufficient power to finish performing tasks.
- the rate at which device 100 evaluates subsystems and applications can be set in a policy (e.g., a power prioritization policy), and a user can optionally reconfigure this policy to change this rate.
- the policy (and/or the user) can also set other parameters to determine when this periodic evaluation should occur. For example, in an embodiment, the policy and/or the user can determine that the periodic evaluation of subsystems and applications should only occur when device 100 is in a low power mode (and when device 100 is not plugged in to an electrical outlet). Alternatively, the policy and/or the user can determine that subsystems and applications should periodically be evaluated regardless of current battery life so that power supplied to subsystems and applications can be continually optimized.
- FIG. 7 is a flowchart of a method for optimizing power used by device 100 based on a periodic evaluation of the subsystems and applications of device 100 .
- device 100 periodically identifies high priority subsystems and applications. For example, in an embodiment, these subsystems and applications can be listed in the power prioritization policy. In an embodiment, all currently executing applications and currently operating subsystems can be considered as having a high priority.
- each identified high priority subsystem and application is evaluated in turn to determine whether power supplied to device 100 needs to be rebalanced.
- step 704 the power requirements of the high priority subsystem or application are predicted. For example, device 100 estimates an amount of power that will be required for the application or subsystem to finish performing a task.
- step 706 PMU 102 determines whether device 100 has sufficient power for the application or subsystem to complete the task. If PMU 102 determines that sufficient power is available, no further action is taken in step 708 , and PMU 102 evaluates the next identified high priority subsystem or application in step 702 . If PMU 102 determines that the subsystem or application does not have sufficient power to complete the task, PMU 102 initiates a reconfiguration of subsystems and/or applications of device 100 in step 710 so that sufficient power is conserved such that the subsystem or application can complete the task.
- PMU 102 can also be configured to increase power supplied to subsystems and applications when more power becomes available to device 100 . For example, in an embodiment, when PMU 102 periodically evaluates the power needs of high priority subsystems and applications, PMU 102 can also determine whether device 100 has been supplied with additional power (e.g., if device 100 has been plugged in or supplied with a new battery). In an embodiment, if PMU 102 determines that device 100 currently has a high amount of power available (e.g., if device 100 has been plugged in), and if the subsystems or application is currently operating with a reduced quality to save power, PMU 102 can increase the amount of power supplied to the application or subsystem so that quality can be improved.
- additional power e.g., if device 100 has been plugged in or supplied with a new battery.
- PMU 102 can proactively optimize the power needs of device 100 .
- This proactive optimization can lead to a greater power efficiency than that achieved by purely reactive power optimization schemes. Further, the power savings resulting from this proactive power optimization can allow device 100 to support a higher quality for important applications and subsystems.
- PMU 102 can evaluate input from a variety of sources to determine how power supplied to subsystems and applications should be optimized.
- PMU 102 can be configured to adjust power supplied to subsystems and/or applications based on information received by PMU 102 from various sensors (e.g., from sensors of sensor subsystem 118 ).
- sensors e.g., from sensors of sensor subsystem 118 .
- a proximity or range sensor can sense whether a user is present near device 100 and/or how far a user is from device 100 .
- the proximity or range sensor can determined whether the user is within a predetermined range of device 100 .
- PMU 102 can determine (e.g., based on information stored in a power prioritization policy) that power supplied to certain subsystems and/or applications can be temporarily cut off or reduced until the user comes closer to device 100 . For example, PMU 102 can determine that the quality of a playing video should be temporarily reduced to save power until the user comes closer to device 100 .
- a sensor e.g., one of the sensors of sensor subsystem 118
- PMU 102 can reduce device illumination (e.g., screen brightness) when the information from the sensor indicates that the environment is brighter than a predetermined threshold value so that power can be conserved.
- PMU 102 can increase device illumination so that the user can see the screen more easily in the dark.
- a sensor e.g., one of the sensors of sensor subsystem 118
- a thermal sensor of sensor subsystem 118 can detect the temperature of device 100 or one or more portions of device 100 (e.g., the case, battery, or circuitry of device 100 ), and this information can be relayed to PMU 102 . If PMU 102 determines that the temperature has exceeded a predetermined threshold, PMU 102 can alter power management to account for this increase in temperature.
- PMU 102 can reduce the maximum allowed performance (e.g., by reducing processing speed) once PMU 102 has determined that the temperature threshold has been exceeded.
- PMU 102 can use multiple temperature thresholds in a power management scheme. For example, when PMU 102 determines, based on sensor information, that a first temperature threshold has been exceeded, PMU 102 can reduce the maximum allowed performance (e.g., by reducing processing speed) by a first amount. If PMU 102 determines that a second (higher) temperature threshold has been exceeded (e.g., if the device is continuing to overheat further), PMU 102 can reduce the maximum allowed performance by an additional amount (e.g., by reducing processing speed even further).
- a motion and/or position sensor can sense whether a device is being held, is stationary, is face down, is face up, is sideways, and/or is in a pocket.
- PMU 102 can use information from these sensors to adjust how power supplied to subsystems and applications. For example, if PMU 102 determines, based on sensor information, that device 100 is in the pocket of a user, PMU 102 can instruct display subsystem 112 to temporarily show no picture until device 100 is removed from the user's pocket.
- an accelerometer can inform PMU 102 when a user is walking.
- PMU 102 can instruct GPS subsystem 302 and/or GNSS subsystem 304 to reduce the rate at which they access satellite information to determine the geographic location of the device.
- information from the accelerometer can be used to update the user's location based on a previous GPS/GNSS location determination.
- FIG. 8 is a flowchart of a method for optimizing power supplied to subsystems and applications based on information received from sensors.
- PMU 102 receives information from one or more sensors of device 100 indicating that an event has occurred. For example, PMU 102 can receive information from a proximity sensor of sensor subsystem 118 informing PMU 102 that no user is near device 100 .
- PMU 102 determines (e.g., based on a power prioritization policy) whether the sensor information can be used to optimize power supplied to applications or subsystems of device 100 . For example, PMU 102 can access a stored power prioritization policy to determine if it contains instructions for reconfiguring power supplied to subsystems or applications based on the sensor information.
- PMU 102 reconfigures (e.g., according to instructions in the policy) one or more subsystems and/or applications based on the sensor information. For example, PMU 102 can determine that a media player application can be instructed to operate at a reduced quality to save power until the user comes closer to device 100 .
- PMU 102 can use sensor information to assist in the reconfiguration of subsystems and applications when performing the methods of FIGS. 4-7 and 9 - 11 .
- PMU 102 can use sensor information to determine which subsystems and/or applications can be temporarily shut down or assigned less power.
- sensor information can be used to more efficiently allocate power to subsystems and applications when PMU 102 periodically determines whether power should be reallocated to subsystems and/or applications in the method of FIG. 7 .
- PMU 102 can also use cache miss rate information when determining how power should be reallocated to subsystems and applications.
- cache miss rate information e.g., cache memory 202
- memory of external memory subsystem 110 can be configured to operate more efficiently, leading to greater power savings.
- Cache memories store copies of data stored elsewhere in memory (e.g., in external memory subsystem 110 ).
- Cache memories can be configured to fetch data in advance based on predicting what data a processor (e.g., CPU 106 or video processor 108 ) will attempt to access from memory. Because cache memories are typically faster than external memories, reading data from cache memory improves performance. Thus, to increase memory access speed, processors can first check cache memory for a copy of the data before attempting to access the original data in slower external memory. A cache miss or mistake occurs when a processor (e.g., CPU 106 or video processor 108 ) fails to read from or write to a cache memory (e.g., cache memory 202 ) and instead reads the data from external memory.
- a processor e.g., CPU 106 or video processor 108
- CPU 106 when CPU 106 needs to read data or write data to a main memory (e.g., to a memory of external memory subsystem 110 ), CPU 106 or video processor 108 can first determine whether a copy of the data is present in cache memory 202 . If the data is present in cache memory 202 , CPU 106 can read the data from cache memory 202 . If the data is not present in cache memory 202 , CPU 102 can access the original data in external memory subsystem 110 .
- each processor of device 100 has one or more on-chip cache memories. While FIG. 2 only shows a cache memory 202 of CPU 106 , it should be understood that other processors of device 100 (e.g., video processor 106 ) can also have on-chip cache memories. Further, it should be understood that each processor of device 100 (e.g., CPU 106 and video processor 108 ) can have access to multiple cache memories. For example, in an embodiment, CPU 106 has access to a multi-level cache with three different cache levels (e.g., L1, L2, and L3).
- Memories of external memory subsystem 110 can have one or more power modes and can be placed in a sleep or low power state when not being accessed to save power.
- PMU 102 can begin powering up a memory of external memory subsystem 110 when PMU 102 receives a cache miss signal.
- the cache miss signal can inform PMU 102 that a cache miss has occurred when CPU 106 tried to access a copy of a piece of data and that the original data is stored in a first memory (not shown) of external memory subsystem 110 . Based on this information, PMU 102 can power up the first memory so that the original data can be accessed.
- device 100 can use battery power more efficiently.
- an application can be characterized (e.g., by PMU 102 ) using information stored during previous executions of the application.
- PMU 102 can track the activity of an application (e.g., memory accesses) to determine how to optimize subsystems (e.g., external memory subsystem 110 ) for execution of the application. For example, in an embodiment, PMU 102 can track how much buffer is maintained between processing and display. If PMU 102 detects that too little buffer is used or too much buffer is used, PMU 102 can determine that the application is being run inefficiently and can initiate one or more subsystem reconfigurations to increase efficiency.
- information can be placed into a frame header indicating a “cost” associated with decoding the frame (e.g., an estimate of how much power will be required to decode the frame), and a decoder can be reconfigured based on information in this header.
- a “cost” associated with decoding the frame e.g., an estimate of how much power will be required to decode the frame
- each application can have metadata that indicates some information regarding its behavior (e.g., memory accesses, cost of decoding frames, etc.) based on previous executions of the application, and this metadata can be used to reconfigure one or more subsystems and make one or more predications about how the application will execute (e.g., predicted memory accesses).
- PMU 102 can detect whether the application is behaving according to predicted behavior. PMU 102 can initiate additional subsystem reconfigurations if the application is not behaving according to predicted behavior.
- PMU 102 can proactively “test” the application (e.g., by temporarily slowing it down) to see if it can take power savings measures (e.g., saving by reducing frequency) without significantly impacting performance. In this way, PMU 102 can optimize application power efficiency as the application executes.
- PMU 102 determines (e.g., based on application metadata) that a previous execution of an application resulted in a very high cache miss rate to a particular cache memory, then PMU 102 can determine that the access rate of this cache memory should not be increased because an increase in the access rate of the cache memory will likely burn power without resulting in increased performance. In some cases, PMU 102 can determine that the access rate of the cache memory should be decreased to conserve power. Additionally, if PMU 102 detects that an application initiates relatively few accesses to memory, then PMU 102 can place this memory into a low power mode.
- memories of external memory subsystem 110 can have multiple power modes, including one or more intermediary power modes (e.g., power modes other than full power and no power).
- PMU 102 can use cache miss signals to determine which power mode to assign to each memory of memory subsystem 110 . For example, if a first memory of external memory subsystem 110 can be accessed at 400 MHz at full power, the first memory can be configured (e.g., by PMU 102 ) to support a 100 MHz access rate in an intermediary state. By reducing the memory access rate (e.g., to 100 MHz) additional power can be saved while still allowing some memory access.
- memories of external memory subsystem 110 can also be configured to save power by controlling memory lanes. By reducing the number of lanes available for memory access from a first memory, the first memory will use less power while still supporting some memory access.
- the interface of the first memory can be configured to be 16 bits wide instead of 128 bits wide.
- PMU 102 can reconfigure the power modes of the memories of external memory subsystem 110 based on detecting an increase or a decrease in the rate of cache miss signals. For example, PMU 102 can place a first memory of external memory subsystem 110 in a higher power mode (e.g., a power mode supporting a higher access rate or a greater number of memory lanes) when cache miss rates from the first memory increase (e.g., when PMU 102 receives more cache miss signals from the first memory). To save power, PMU 102 can place the first memory in a lower power mode (e.g., a power mode supporting a lower access rate or a smaller amount of memory lanes) when cache miss rates from the first memory decrease.
- a higher power mode e.g., a power mode supporting a higher access rate or a greater number of memory lanes
- PMU 102 can place the first memory in a lower power mode (e.g., a power mode supporting a lower access rate or a smaller amount of memory lanes) when cache miss
- cache memory e.g., cache memory 202
- cache memory can be reconfigured to operate in one or more intermediary power states for power savings.
- cache 202 can be configured (e.g., by PMU 102 ) to operate at a reduced access rate or to use fewer memory lanes for additional power savings.
- cache memory e.g., cache memory 202
- PMU 102 can be programmed (e.g., by PMU 102 ) to make it more efficient. For example, based on a prediction of what code is going to be executed by a processor, caches can be instructed to automatically fetch instructions so that they are available when the processor is ready to execute them.
- PMU 102 determines (e.g., based on signals received from CPU 106 and/or video processor 108 ) in advance that the same code is going to be continuously executed for a period of time, PMU can program a cache (e.g., cache memory 202 ) and can lock it so that it no longer expends unnecessary resources fetching the same data.
- a cache e.g., cache memory 202
- FIG. 9 is a flowchart of a method for reconfiguring a memory based on cache miss rates.
- PMU 102 monitors a plurality of cache miss signals (e.g., sent by CPU 106 ).
- PMU 102 detects a change in the rate of cache miss signals associated with data stored in a first memory. For example, PMU 102 can determine that the number of cache misses associated with data stored in a first memory of external memory subsystem 110 is increasing.
- PMU 102 determines how the first memory or the cache should be reconfigured based on the detected change in the rate of cache miss signals.
- PMU 102 can access a power conservation policy that instructs PMU 102 how to respond to an increase or decrease in received cache miss signals. For example, if PMU 102 detects an increase in cache misses from cache 202 associated with a first memory of external memory subsystem 110 , PMU 102 can change the memory mode of the first memory to support a higher accessed rate and/or a greater number of memory lanes. PMU 102 can also deter nine (e.g., based on the policy) that that cache memory 202 should be reconfigured to a power mode supporting an increased access rate and/or a greater number of memory lanes. Finally, in step 906 , PMU 102 reconfigures the first memory or the cache (e.g., based on the stored policy).
- PMU 102 can use cache miss signal information to assist in the reconfiguration of subsystems and applications when performing the methods of FIGS. 4-8 , 10 , and 11 .
- PMU 102 can use cache miss signal information to select memories (e.g., memories of external memory subsystem 110 and/or cache memory 202 ) to reconfigure for power savings.
- cache miss signal information can be used to more efficiently allocate power to memories (e.g., memories of external memory subsystem 110 and/or cache memory 202 ) when PMU 102 periodically determines whether power should be reallocated to subsystems and/or applications in the method of FIG. 7 .
- PMU 102 can analyze data collected during previous executions of a program when making predictions regarding the overall power that will be needed to execute the program. PMU 102 can also use data gathered during previous executions of blocks of code to predict thermal and power consumption needs. For example, when a program is running, the same block of code is often repeatedly executed. Certain blocks of code can require a particularly large amount of power. PMU 102 can store information regarding an amount of power that was consumed during execution of a block of code and can later use this information to predict an amount of power a subsequent execution of the block of code will require. For example, PMU 102 can be configured to estimate power requirements for blocks of code when particular code elements (e.g., branch instructions) are encountered.
- code elements e.g., branch instructions
- code elements can signal that a new block of code is about to be executed. For example, when PMU 102 encounters a branch instruction, PMU 102 can access memory to determine if the block of code following the branch instruction is associated with power consumption information stored in memory. Additionally, in an embodiment, PMU 102 can also estimate an amount of power a new block of code will require for execution based on data gathered from previous executions of similar code.
- power consumption information for blocks of code can be associated a pattern of execution of the block of code. For example, when a block of code is executed, the instructions in the block of code can follow a particular pattern of memory accesses during execution of the instructions in the block of code. Based on the addresses of the memory segments accessed during execution of the block of code, a signature (e.g., a hash) for the pattern of execution can be generated. This signature can be stored (e.g., in a table in memory), and each signature can be associated with power consumption information. For example, PMU 102 can record an amount of power that was consumed when the block of code was executed and can store this information in memory and associate it with the signature.
- a signature e.g., a hash
- PMU 102 can access the stored information to determine whether there is a signature associated with the block of code. For example, PMU 102 can generating another hash (e.g., using the same hash algorithm) based on the memory addresses that will be accessed when the block of code is executed. PMU 102 can then determine whether this newly generated hash matches a hash already stored in memory. If a match is found, PMU 102 can access the power consumption information associated with the hash. Using the stored power consumption information, PMU 102 can predict an amount of power the block of code will require to execute.
- PMU 102 can generate another hash (e.g., using the same hash algorithm) based on the memory addresses that will be accessed when the block of code is executed. PMU 102 can then determine whether this newly generated hash matches a hash already stored in memory. If a match is found, PMU 102 can access the power consumption information associated with the hash. Using the stored power consumption information, PMU 102 can predict an amount of power the block of code will
- PMU 102 can determine (e.g., based on a policy) whether it should take any actions based on the predicted power consumption needs. For example, PMU 102 can determine that voltage supplied to a processor (e.g., to CPU 106 and/or video processor 108 ) should be increased or that the frequency of the processor should be increased. PMU 102 can also determine to reconfigure memory (e.g., cache memory 202 or memories of external memory subsystem 110 ) based on predicted power consumption needs. For example, PMU 102 can determine that cache memory 202 or memories of external memory subsystem 110 should be placed into a higher power mode if PMU 102 predicts that these memories will be accessed during execution of the block of code.
- reconfigure memory e.g., cache memory 202 or memories of external memory subsystem 110
- FIG. 10 is a flowchart of a method for reconfiguring subsystems of a device based on predictions made during previous executions of blocks of code.
- a signature is generated for a pattern of access associated with a block of code.
- PMU 102 determines which memory addresses will be accessed when the block of code is executed and generates a hash based on these addresses.
- power consumption information for the block of code is stored in memory and associated with the signature.
- PMU 102 can detect an amount of power that was required for execution of the block of code and can store this information in a table in memory associated with the generated hash.
- a subsequent execution of the block of code is detected.
- PMU 102 can detect that a block of code is about to be executed when a branch instruction is encountered.
- a processor e.g., CPU 106 or video processor 108
- PMU 102 can send a signal to PMU 102 when branch instructions are encountered. Based on these signals, PMU 102 can access the table in memory in step 1006 to determine if it contains stored information associated with the block of code. For example, PMU 102 can generate a hash of the addresses in memory that will be accessed when the block of code will be executed and can check the table to see if any entry matches the generated hash. If a match is found, PMU 102 can access the corresponding power consumption information to obtain a prediction of the power consumption requirements of the block of code.
- subsystems of device 100 can be reconfigured based on the power consumption information retrieved from memory.
- PMU 102 can determine that voltage supplied to a processor (e.g., to CPU 106 and/or video processor 108 ) should be increased or that the frequency of the processor should be increased.
- PMU 102 can also determine to reconfigure memory (e.g., cache memory 202 or memories of external memory subsystem 110 ) based on predicted power consumption needs.
- PMU 102 can use this retrieved power consumption information to assist in the reconfiguration of subsystems and applications when performing the methods of FIGS. 4-9 and 11 .
- PMU 102 can use retrieved power consumption information to determine whether CPU 106 and/or video processor 108 should be assigned more power (e.g., if a particularly power-expensive block of code is about to be executed).
- potions of code in a program can signal upcoming power requirements to PMU 102 so that PMU 102 can act proactively to meet these power requirements.
- code for power consumption prediction e.g., “energy hints”
- the energy hint code sends a message to PMU 102 informing PMU 102 that the power-expensive block of code is being executed.
- NOP no operation performed
- NOPS periodically inserted into code can prevent a large, instantaneous burden from being placed on capacitors in device 100 .
- PMU 102 can proactively reconfigure subsystems of device 100 before the power-expensive code starts drawing a large amount of power. For example, PMU 102 can determine, in response to receiving information from an energy hint, that voltage supplied to a processor (e.g., to CPU 106 and/or video processor 108 ) should be increased or that the frequency of the processor should be increased.
- a processor e.g., to CPU 106 and/or video processor 108
- energy hints can be used to reconfigure characteristics of hardware elements of device 100 .
- energy hints can be especially useful for configuring two-phase switchers in power supplies.
- a switched-mode power supply is a power supply that incorporates a switching regulator. Power supplies having two-phase switchers have two switches that change between on and off states. As the switching frequency of a two-phase switcher increases, more energy is used. Thus, two-phase switchers can be less efficient at higher frequencies.
- PMU 102 can adapt the switching frequency of two-phase switchers. For example, when PMU 102 determines that less power is expected to be used, PMU 102 can instruct two-phase switchers to reduce switching frequency to save energy.
- two-phase switchers can be instructed to forgo operating at very high switching frequencies unless an energy hint is received by PMU 102 indicating that a program will require a large amount of power.
- FIG. 11 is a flowchart of a method for reconfiguring subsystems of a device based on signals generated from blocks of code.
- a signal from a block of code indicating upcoming power consumption needs is detected.
- a particularly power-expensive block of code can contain energy hint code to notify PMU 102 of an upcoming increase in power consumption.
- CPU 102 sends a signal to PMU 102 .
- PMU 102 determines (e.g., based on a stored policy) which subsystems of a device should be reconfigured based on the signal.
- PMU 102 can determine that voltage supplied to a processor (e.g., to CPU 106 and/or video processor 108 ) should be increased or that the frequency of the processor should be increased. PMU 102 can also determine to reconfigure memory (e.g., cache memory 202 or memories of external memory subsystem 110 ) based on predicted power consumption needs. Additionally, in an embodiment, PMU 102 can instruct two-phase switchers to forgo operating at very high switching frequencies unless an energy hint is received by PMU 102 indicating that a program will require a large amount of power. Finally, in step 1104 , PMU 102 reconfigures the subsystems to compensate for the upcoming power consumption needs of the block of code.
- a processor e.g., to CPU 106 and/or video processor 108
- reconfigure memory e.g., cache memory 202 or memories of external memory subsystem 110
- PMU 102 can instruct two-phase switchers to forgo operating at very high switching frequencies unless an energy hint is received by PMU 102
- PMU 102 can use energy hints to assist in the reconfiguration of subsystems and applications when performing the methods of FIGS. 4-10 .
- PMU 102 can use energy hints to determine whether CPU 106 and/or video processor 108 should be assigned more power (e.g., if a particularly power-expensive block of code is about to be executed).
- Embodiments of the present disclosure can be implemented in hardware, or as a combination of software and hardware. Consequently, embodiments of the disclosure can be implemented in the environment of a computer system or other processing system.
- An example of such a computer system 1200 is shown in FIG. 12 .
- At least portions of some, or all, of the modules depicted in FIGS. 1-3 e.g., PMU 102 , CPU 106 , video processor 108 , subsystems 110 - 114 , etc.
- each of the steps of the flowcharts depicted in FIGS. 4-11 can be implemented on one or more distinct computer systems 1200 .
- Computer system 1200 includes one or more processors, such as processor 1204 .
- Processor 1204 can be a special purpose or a general purpose digital signal processor.
- Processor 1204 is connected to a communication infrastructure 1202 (for example, a bus or network).
- a communication infrastructure 1202 for example, a bus or network.
- Computer system 1200 also includes a main memory 1206 , preferably random access memory (RAM), and can also include a secondary memory 1208 .
- Secondary memory 1208 can include, for example, a hard disk drive 1210 and/or a removable storage drive 1212 , representing a floppy disk drive, a magnetic tape drive, an optical disk drive, or the like.
- Removable storage drive 1212 reads from and/or writes to a removable storage unit 1216 in a well-known manner.
- Removable storage unit 1216 represents a floppy disk, magnetic tape, optical disk, or the like, which is read by and written to by removable storage drive 1212 .
- removable storage unit 1216 includes a computer usable storage medium having stored therein computer software and/or data.
- secondary memory 1208 can include other similar means for allowing computer programs or other instructions to be loaded into computer system 1200 .
- Such means can include, for example, a removable storage unit 1218 and an interface 1214 .
- Examples of such means can include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, a thumb drive and USB port, and other removable storage units 1218 and interfaces 1214 which allow software and data to be transferred from removable storage unit 1218 to computer system 1200 .
- Computer system 1200 can also include a communications interface 1220 .
- Communications interface 1220 allows software and data to be transferred between computer system 1200 and external devices.
- Examples of communications interface 1220 can include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, etc.
- Software and data transferred via communications interface 1220 are in the form of signals which can be electronic, electromagnetic, optical, or other signals capable of being received by communications interface 1220 . These signals are provided to communications interface 1220 via a communications path 1222 .
- Communications path 1222 carries signals and can be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link and other communications channels.
- computer program medium and “computer readable medium” are used to generally refer to tangible storage media such as removable storage units 1216 and 1218 or a hard disk installed in hard disk drive 1210 . These computer program products are means for providing software to computer system 1200 .
- Computer programs are stored in main memory 1206 and/or secondary memory 1208 . Computer programs can also be received via communications interface 1220 . Such computer programs, when executed, enable the computer system 1200 to implement the present disclosure as discussed herein. In particular, the computer programs, when executed, enable processor 1204 to implement the processes of the present disclosure, such as any of the methods described herein. Accordingly, such computer programs represent controllers of the computer system 1200 . Where the disclosure is implemented using software, the software can be stored in a computer program product and loaded into computer system 1200 using removable storage drive 1212 , interface 1214 , or communications interface 1220 .
- features of the disclosure are implemented primarily in hardware using, for example, hardware components such as application-specific integrated circuits (ASICs) and gate arrays.
- ASICs application-specific integrated circuits
- gate arrays gate arrays
- the representative signal processing functions described herein can be implemented in hardware, software, or some combination thereof.
- the signal processing functions can be implemented using computer processors, computer logic, application specific circuits (ASIC), digital signal processors, etc., as will be understood by those skilled in the art based on the discussion given herein. Accordingly, any processor that performs the signal processing functions described herein is within the scope and spirit of the present invention.
- the above systems and methods may be implemented as a computer program executing on a machine, as a computer program product, or as a tangible and/or non-transitory computer-readable medium having stored instructions.
- the functions described herein could be embodied by computer program instructions that are executed by a computer processor or any one of the hardware devices listed above.
- the computer program instructions cause the processor to perform the signal processing functions described herein.
- the computer program instructions e.g. software
- Such media include a memory device such as a RAM or ROM, or other type of computer storage medium such as a computer disk or CD ROM. Accordingly, any tangible non-transitory computer storage medium having computer program code that cause a processor to perform the signal processing functions described herein are within the scope and spirit of the present disclosure.
Abstract
Description
- This application claims the benefit of U.S. Provisional Patent Application No. 61/524,538, filed on Aug. 17, 2011, which is incorporated by reference herein in its entirety.
- This invention relates to power management and more specifically to power management units.
- Many devices include power management units (PMUs) for managing power supplied to different elements of a device (e.g., to memories, processors, various hardware subsystems, and software). Many conventional PMUs are limited to adjusting power reactively. That is, many conventional PMUs adjust the power supplied to a particular element of a device in response to the occurrence of a certain event. For example, when an element in a device begins to draw a large amount of power, a reactive PMU can detect this event and can temporarily increase the amount of power supplied to the element. However, many conventional PMUs typically do not predict the amount of power a particular element of a device will require.
- PMUs that are only capable of reactively managing power have several disadvantages. For example, because such PMUs typically do not attempt to make power consumption predictions for applications and/or for elements of a device, they cannot plan for future power consumption needs of applications and/or device elements.
- What is needed are methods and systems for incorporating a proactive power management scheme into a device.
- The accompanying drawings, which are incorporated in and constitute part of the specification, illustrate embodiments of the disclosure and, together with the general description given above and the detailed descriptions of embodiments given below, serve to explain the principles of the present disclosure. In the drawings:
-
FIG. 1 is a block diagram of a device incorporating PMU in accordance with an embodiment of the present disclosure. -
FIG. 2 is a more detailed block diagram showing elements of a CPU. -
FIG. 3 is a more detailed block diagram showing elements of a wireless subsystem. -
FIG. 4 is a flowchart of a method of proactively managing power for a device using a PMU in accordance with an embodiment of the present disclosure. -
FIG. 5 is a flowchart of a method for reconfiguring one or more subsystems of a device based on information from a previous execution of an application or a previous operation of a subsystem of a device. -
FIG. 6 is a flowchart of a method for reconfiguring one or more subsystems of a device based on a power priority determination. -
FIG. 7 is a flowchart of a method for optimizing power used by a device based on a periodic evaluation of the subsystems and applications of the device. -
FIG. 8 is a flowchart of a method for optimizing power supplied to subsystems and applications based on information received from sensors. -
FIG. 9 is a flowchart of a method for reconfiguring a memory based on cache miss rates. -
FIG. 10 is a flowchart of a method for reconfiguring subsystems of a device based on predictions made during previous executions of blocks of code. -
FIG. 11 is a flowchart of a method for reconfiguring subsystems of a device based on signals generated from blocks of code. -
FIG. 12 illustrates an example computer system that can be used to implement aspects of the present disclosure. - Features and advantages of the present disclosure will become more apparent from the detailed description set forth below when taken in conjunction with the drawings, in which like reference characters identify corresponding elements throughout. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digit(s) in the corresponding reference number.
- In the following description, numerous specific details are set forth to provide a thorough understanding of the disclosure. However, it will be apparent to those skilled in the art that the disclosure, including structures, systems, and methods, may be practiced without these specific details. The description and representation herein are the common means used by those experienced or skilled in the art to most effectively convey the substance of their work to others skilled in the art. In other instances, well-known methods, procedures, components, and circuitry have not been described in detail to avoid unnecessarily obscuring aspects of the disclosure.
- References in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
- Embodiments of the present disclosure provide systems and methods for proactively managing power in a device. A power management unit (PMU) receives information from various subsystems of a device (e.g., from one or more processors, memories, batteries, sensors, etc.) and estimates the total power required by subsystems of the device. Based on this information, the PMU can predict the amount of power required for a particular subsystem or for one or more application(s) to execute. For example, the PMU can use data collected from previous executions of an application (e.g., a video application) to predict an amount of power subsequent executions of the application will require. Based on this prediction, the PMU can reconfigure the characteristics and/or properties of subsequent executions of applications so that these applications execute more efficiently given the current battery life of the device (e.g., by lowering the resolution of the video to a level where the device will have sufficient power to finish playing it). The PMU can also modify the voltage supplied to one or more subsystems used by the application so that more or less power is available for execution of the application. The PMU can also reconfigure a voltage regulator and/or select a different voltage regulator based on predicted power needs of an application. For example, in an embodiment, a more or less efficient and/or a more or less responsive voltage regulator can be selected based on predicted power needs of an application.
- The PMU can also use additional collected data to optimize power management of the device. For example, the PMU can be configured to make power adjustments based on data collected from sensors and cache memory miss signals. Further, the PMU can predict the power requirements of blocks of code based on previous code executions, and the PMU can receive signals from executing code that alert the PMU to upcoming power requirements.
- By proactively managing power in a device using, for example, one or more of the techniques discussed above, power management can be handled more efficiently and with less noise introduction into the device. Proactive power management advantageously gives the PMU the capability to predict power needs of various subsystems of a device so that the power supplied to these subsystems can be managed in an intelligent way to conserve battery resources.
-
FIG. 1 is a block diagram of adevice 100 incorporating aPMU 102 in accordance with an embodiment of the present disclosure. In an embodiment,device 100 is a communications device (e.g., a cellular handset). However, it should be understood thatdevice 100 can be any computer system that includes aPMU 102. In an embodiment, PMU 102 is a microcontroller implemented on an integrated circuit (IC). However, it should be understood that, in an embodiment, PMU 102 could be implemented in any form of hardware, software, or a combination of hardware and software. - PMU 102 is configured to receive information from various subsystems of
device 100 and is configured to manage power supplied to these subsystems based at least in part on this received information. For example, in an embodiment, PMU 102 receives information from one or more power sources (e.g., from one or more batteries), represented inFIG. 1 bybattery subsystem 104. For example, PMU 102 can receive information frombattery subsystem 104 regarding the available power frombattery subsystem 104 and the amount of remaining battery life ofbattery subsystem 104. PMU 102 also receives information from various processors ofdevice 100. For example,PMU 102 can receive information from one or more central processing units (CPUs), represented inFIG. 1 byCPU 106. For example, this information can include information regarding currently executing code and cache memory miss signals.PMU 102 can also receive information from one or more video processors, represented inFIG. 1 byvideo processor 108. This information can include, for example, information regarding the amount of power required to execute video and/or graphics applications and current characteristics of these applications. - Additionally, the one or more processors (e.g.,
CPU 106 and video processor 108) can have access to one or more external memories, represented inFIG. 1 byexternal memory subsystem 110.CPU 106 andvideo processor 108 can access stored data inexternal memory subsystem 110 when a cache miss occurs from on-chip cache memory.External memory subsystem 110 can include any type of memory, such as, without limitation, read only memory (ROM), electronically erasable programmable read only memory (EEPROM), random access memory (RAM), static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), flash memory, one or more hard disks, etc. In an embodiment,PMU 102 also receives information fromexternal memory subsystem 110. For example, in an embodiment, information regarding previous executions of applications can be stored inexternal memory 110, andPMU 102 can use this information to make predictions regarding subsequent executions of these applications. - In an embodiment,
PMU 102 can also receive information from one or more displays ofdevice 100, represented inFIG. 1 bydisplay subsystem 112. For example, this information can include information regarding the current amount of power used bydisplay subsystem 112 and/or current settings of display subsystem 112 (e.g., resolution, brightness, etc.).PMU 102 also receives information from one or more wireless modules ofdevice 100, represented inFIG. 1 bywireless subsystem 114.Wireless subsystem 114 can support any type of wireless module including, without limitation, a cellular module, a wireless local area network (WLAN) module, a Bluetooth module, a near field communication (NFC) module, a Global Positioning Satellite (GPS) module, a Global Navigation Satellite System (GNSS) module, etc. In an embodiment,wireless subsystem 114 is coupled to an antenna 116 (e.g., for communications with a cellular base station).PMU 102 can receive information fromwireless subsystem 114 including, for example, information regarding the current amount of power used bywireless subsystem 114 and current operating conditions ofwireless subsystem 114. -
PMU 102 can also receive information from one or more sensors, represented inFIG. 1 bysensor subsystem 118.Sensor subsystem 118 can include, without limitation, acoustic sensors, sound sensors and/or microphones, vibration sensors, motion, angle, displacement, and/or position sensors, electric current and/or electric potential sensors, environmental sensors, velocity and/or acceleration sensors, optical and/or light sensors, pressure and/or force sensors, thermal, heat, and/or temperature sensors, proximity and/or presence sensors, etc. It should be noted that while various sensors ofdevice 100 are drawn inFIG. 1 as being grouped together insensor subsystem 118, sensors can be located anywhere on or withindevice 100 according to embodiments of the present disclosure.PMU 102 can use information from sensors subsystem 118 when determining an amount of power to supply to subsystems ofdevice 100. For example, in an embodiment,PMU 102 can use information from a proximity sensor ofsensor subsystem 118 to decide to lower the resolution of a playing application (e.g., a video application) to conserve power if no user is nearby. - It should be understood that not all possible subsystems of
device 100 are shown inFIG. 1 . For example, in accordance with an embodiment of the present invention,device 100 can include several other subsystems, such as one or more input/output (I/O) subsystems, one or more speakers, one or more peripheral subsystems, etc. -
FIG. 2 is a more detailed block diagram showing elements ofCPU 106. As shown inFIG. 2 ,CPU 106 includes aprocessor core 200, acache memory 202, and abridge 206 that couplesCPU 106 toexternal memory subsystem 110. It should be understood that while only onecache memory 202 is shown inFIG. 2 , multiple cache memories can be used according to embodiments of the present disclosure. For example, in an embodiment,CPU 106 is configured to access multiple levels of cache memory. When a cache miss occurs,CPU 106 accesses a memory ofexternal memory subsystem 110. In an embodiment,CPU 106 also sends a cache miss signal toPMU 102 when a cache miss occurs.PMU 102 can be configured to optimize power supplied to subsystems ofdevice 100 based on these cache miss signals. For example,PMU 102 can supply more power toexternal memory subsystem 110 wheneverPMU 102 detects an increase in cache misses. Power optimization based on cache misses is explained in greater detail in section 6. -
FIG. 3 is a more detailed block diagram showing elements ofwireless subsystem 114. As previously discussed,wireless subsystem 114 can include, without limitation, a cellular module (e.g., a cellular modem) 300, aWLAN module 301, aGPS module 302, aGNSS module 304, aBluetooth module 306, and/or aNFC module 308.Cellular module 300 may be configured to support a variety of standards including, without limitation, 3G, 4G, Long Term Evolution (LTE), etc.PMU 102 can receive information from these modules and can adjust power supplied to subsystems ofdevice 100 based on this information. - The various elements of
FIGS. 1-3 can be integrated onto one or more ICs. In an embodiment, the elements ofFIG. 1 are integrated onto a single IC. In another embodiment, the elements ofFIG. 1 are implemented on one or more separate ICs. For example, in an embodiment,PMU 102,CPU 106,video processor 108, andwireless subsystem 114 are implemented on a single IC. -
PMU 102 can construct a power profile based on information received from various subsystems ofFIG. 1 (e.g., fromCPU 106,video processor 108, and/orsubsystems PMU 102 receives information from every power-using subsystem ofdevice 100. In another embodiment,PMU 102 only receives information from subsystems ofdevice 100 that use the most power. For example, some subsystems of device 100 (e.g., speakers) may use a relatively small amount of power. Thus, information from subsystems ofdevice 100 that do not consume much power may not be needed to obtain an accurate picture of the total power consumed by various subsystems ofdevice 100. Rather, in an embodiment,PMU 102 may use information from the most power-expensive subsystems to predict total power consumption bydevice 100, andPMU 102 may create a power profile based on this prediction. Using this power profile and the information received from various subsystems ofdevice 100,PMU 102 can make predictions regarding an amount of power these subsystems will consume and can proactively manage power for the various subsystems ofdevice 100. -
FIG. 4 is a flowchart of a method of proactively managing power for a device using a PMU in accordance with an embodiment of the present disclosure. Instep 400, information from a plurality of subsystems of a device is received. For example,PMU 102 can receive information fromCPU 106,video processor 108, andsubsystems step 402, power that will be required by one or more subsystems based on the information received is estimated. Forexample PMU 102 can create and/or update a power profile that represents total power required by thedevice 100 based on the information received instep 400. Using this power profile,PMU 102 can estimate power that will be required by particular subsystems ofdevice 100 and/or a particular application executing ondevice 100. -
PMU 102 can use a variety of technique to estimate the power that will be required by one or more of the subsystems of device based on the information received instep 400. For example,PMU 102 can estimate the amount ofpower video processor 108 anddisplay subsystem 112 will require to finish playing a video on a media player application based on information obtained during a previous execution of the media player application.PMU 102 can also make a prediction for power requirements of code being executed based on a previous execution of the same (or similar) code or based on receiving a signal from executing code indicating an amount of power the code will require to finish executing. - In
step 404, one or more of the subsystems are reconfigured based on the estimated power.PMU 102 can use a variety of techniques to reconfigure the power supplied to one or more of the subsystems ofdevice 100 to optimize the power supplied to various subsystems ofdevice 100. For example, based on the power estimated instep 402,PMU 102 can determine thatdevice 100 does not have sufficient power to finish playing a video based on the current power requirements of the various subsystems ofdevice 100.PMU 102 can lower the quality of the video (e.g., by increasing compression, lowering resolution, dimming the screen, etc.) to save power sodevice 100 has enough power to finish playing the video. Alternatively,PMU 102 can instruct certain subsystems to shut down to save power. - In another example of subsystem reconfiguration,
PMU 102 can use infor nation obtained fromsensor subsystem 118 to determine which subsystems can be reconfigured for power savings. For example,PMU 102 can receive information from a user presence detecting sensor indicating that a user is far away. In such a case,PMU 102 can determine that video quality should be lowered to save power until the user comes closer todevice 100. - In a further example,
PMU 102 can use cache miss rate information received to optimize power supplied to various subsystems ofdevice 100. For example, if the cache miss rate is sufficiently low, PMU can determine that less power can be supplied toexternal memory subsystem 110. - In an additional example, the frequency of one or more processors (e.g.,
CPU 106 and/or video processor 108) can be reduced to save power. Additionally, leakage of the device increases with a corresponding increase in temperature, so runningCPU 106 and/orvideo processor 108 more slowly can lead to additional power efficiency savings due to a decrease in leakage. IfPMU 102 predicts that a higher performance by a device will be necessary,PMU 102 can temporarily increase the voltage supplied to a device (e.g.,CPU 106 and/or video processor 108) in anticipation of this higher performance. - In an additional example, one or more wireless links (e.g., 60 GHz wireless) can be manipulated by
PMU 102 to conserve or increase power usage by altering functions such as video processing. For example, in an embodiment,PMU 102 can decrease the data rate of information transmitted over one or more wireless links to save power. Additionally,PMU 102 can alter the way in which wireless data is transmitted and/or received to conserve or increase power usage. For example, in an embodiment,PMU 102 can adjust a communication scheme using Multiple Input Multiple Output (MIMO) data transmission and/or reception to a communication scheme that uses less power. - As described above, embodiments of the present disclosure provide multiple techniques for proactively estimating power required by a device and reconfiguring subsystems of the device based on this estimation. Various systems and methods for power estimation and device reconfiguration will now be described in turn in greater detail.
- Embodiments of the present disclosure provide systems and methods for
reconfiguring device 100 based on estimating power required by one or more applications or subsystems ofdevice 100. Based on information obtained during a previous execution of an application or a previous operation of a subsystem, the amount of power required for the application or subsystem to finish preforming a task can be predicted. Using these predictions, power can be redistributed among applications and/or subsystems so thatdevice 100 has sufficient power to finish performing the task.PMU 102 can determine how to redistribute power using, for example, a power prioritization policy or user input. Additionally, in an embodiment,PMU 102 can periodically evaluate currently active subsystems and/or applications to determine whether power should be redistributed so that important subsystems and/or applications have sufficient power to finish performing tasks. -
FIG. 5 is a flowchart of a method for reconfiguring one or more subsystems ofdevice 100 based on information from a previous execution of an application or a previous operation of a subsystem ofdevice 100. Instep 500, information from a plurality of subsystems of a device is received. For example,PMU 102 can receive information fromCPU 106,video processor 108, and/orsubsystems - In
step 502, power required by the subsystems is estimated based on the received information. For example,PMU 102 can create and/or update a power profile that represents power required by the various subsystems ofdevice 100 based on the information received instep 500.PMU 102 can use this power profile to estimate power that will be required by a particular application executing ondevice 100 or a particular subsystem ofdevice 100. For example, at any given time, one or more applications or subsystems may be performing a task. In some cases, certain applications or subsystems may not have sufficient power to complete the task. Using this received information,PMU 102 can determine whether an application or subsystem has sufficient power to finish a task that it has begun. - In
step 504,PMU 102 accesses information obtained during a previous execution of an application or during a previous operation of a subsystem to predict an amount of power that will be required to finish a task (e.g., to finish executing the application or to finish powering the subsystem until a certain task is completed). For example, PMU can access data gathered during a previous execution of a media player application to determine an amount of power that will be required to finish playing a video using the media player application. In an embodiment, this information can be gathered after (or during) execution of applications and can be stored, for example, inexternal memory subsystem 110. For example, in an embodiment,PMU 102 can monitor an amount of power a video executing on media player application requires to execute.PMU 102 can store information regarding an amount of power consumed by the media player application. - In an embodiment,
PMU 102 can also optionally record information regarding various characteristics of applications and/or subsystems. For example,PMU 102 can store information regarding a resolution used to play a video, an amount of compression used (e.g., scalable video coding (SVC)), the brightness and contrast used fordisplay subsystem 112 during execution of the video, the total length of the video, etc. This data can be collected after an application has finished executing (or after the application has been closed), or it can be periodically collected as an application is executing or during the operation of a subsystem. Based on this collected information,PMU 102 can create a database of information that it can use later to determine the impact of various characteristics (e.g., application execution time, video compression, brightness, contrast, etc.) on power requirements of an application and/or a subsystem.PMU 102 can optionally use this information in the future to modify these characteristics during execution of applications so that power consumption by applications and subsystems can be optimized. Further,PMU 102 can use this information to intelligently predict future power needs of applications and/or subsystems ofdevice 100. - In
step 506,PMU 102 determines that the application or subsystem does not have sufficient power to finish the task. Based on the information obtained instep 504,PMU 102 can predict the amount of power necessary for the application or subsystem to finish the task. For example, in an embodiment,PMU 102 can determine that the application or subsystem consumes power at a known rate. Based on predicting the amount of time that will be required for the application or subsystem to finish the task,PMU 102 can estimate the amount of power that will be required to finish the task, andPMU 102 can determine that battery resources will be exhausted before the task is completed. - For example,
PMU 102 can estimate the amount of power that will be required to finish playing a video executing on a media player application.PMU 102 can perform this estimation based on the power profile for the system created instep 502, the remaining power available frombattery subsystem 104, and the information obtained during a previous execution of the media player application obtained instep 504.PMU 102 can access stored information from previous executions of the media player application to predict an amount of power the video will require to finish executing. For example, if the current video being played is half as long as a previously played video,PMU 102 can estimate that the current video will require half the amount of power as the previously played video. - In an embodiment,
PMU 102 also predicts power required for the application based on an examination of the impact of application characteristics such as application length, application resolution, the amount of compression used (e.g., SVC) for the application, and the brightness and contrast used fordisplay subsystem 112 during execution of the application. In an embodiment, the impact of these characteristics is known byPMU 102, and PMU can calculate an amount of power the application will require given the current value of these characteristics. For example, in an embodiment,PMU 102 can know that increasing the resolution of the application by a certain amount will result in a predictable increase in the amount of power required by the application. In another embodiment,PMU 102 can make better predictions for the impact of these characteristics on the power requirements of the application based on stored information gathered during previous executions of applications. Using this stored information,PMU 102 can train itself to more reliably predict power consumption requirements of an application based on current values of application characteristics such as application length, application resolution, the amount of compression used (e.g., SVC) for the application, and the brightness and contrast used fordisplay subsystem 112 during execution of the application. - In
step 508, one or more of the subsystems is reconfigured based on the estimated power instep 506. For example, whenPMU 102 estimates the power that will be required for the video to finish playing,PMU 102 can determine thatbattery subsystem 104 does not have enough power left to finish playing the video. In such a case,PMU 102 can determine (e.g., based on a policy or by prompting the user) that the power supplied to one or more subsystems ofdevice 100 should be reconfigured and/or redistributed so that the device has sufficient power to finish playing the video. Thus, instep 508, one or more of the subsystems ofdevice 100 are reconfigured based on the estimated power fromstep 506. For example, one or more subsystems can be temporarily disabled byPMU 102 or instructed byPMU 102 to operate at a reduced functionality so that more battery power can be conserved to execute the media player application.PMU 102 can also determine that one or more characteristics of the media player application should be modified for power conservation. For example,PMU 102 can calculate (e.g., in step 506) thatdevice 100 will not have sufficient power to finish playing the video with the current SVC mode being used but will have sufficient power to finish playing the video if a higher SVC mode is used. Therefore,PMU 102 can determine that the video quality should be lowered (e.g., by using a higher SVC mode) to conserve power so that the entire video can be played. -
PMU 102 can determine how various subsystems ofdevice 100 should be reconfigured to conserve power using a variety of methods. In an embodiment,PMU 102 can access a power prioritization policy to determine which subsystems and/or applications should be disabled and/or reconfigured to operate at a lower power mode ifdevice 100 is operating in a low power state and needs to assign more power to a high priority application or subsystem.PMU 102 can also prompt a user for permission to reassign power oncePMU 102 determines (e.g., in step 506) that an application or subsystem does not have sufficient power. -
FIG. 6 is a flowchart of a method for reconfiguring one or more subsystems of a device based on a power priority determination. Instep 600,PMU 102 determines (e.g., based on a power estimate such as the power estimate performed instep 506 ofFIG. 5 ) thatdevice 100 does not have sufficient power to finish a task associated with a high priority application or a high priority subsystem. For example,PMU 102 can determine thatwireless subsystem 114 does not have sufficient power to finish an in-progress download or upload of data. In a media player example,PMU 102 can determine that a media player application does not have sufficient power to finish playing a video. - In step, 602,
PMU 102 determines whether a power prioritization policy provides instructions regarding how to reassign power whendevice 100 does not have sufficient power to finish performing the task. For example,PMU 102 can access a power prioritization policy (e.g., stored in external memory subsystem 110). This power prioritization policy can dictate which subsystems ofdevice 100 should be prioritized and which subsystems can be shut down or put into a lower power state if battery resources need to be conserved. For example, the power prioritization policy may state that certain subsystems of wireless subsystem 114 (e.g.,Bluetooth subsystem 306,GPS subsystem 302, or GNSS subsystem 304) can be powered off to save power if a higher priority subsystem requires additional power to perform a task. The policy may also provide instructions for assigning less power to certain subsystems. For example, the policy may instructPMU 102 to lower the brightness, resolution, etc. ofdisplay subsystem 112 to save power. - In an embodiment, the power prioritization policy can also specify one or more high priority applications. For example, in an embodiment, important applications like operating system applications and cellular telephone applications can always be assigned a high priority. The policy can provide a list of certain lower priority applications that can be disabled if power needs to be conserved. The policy can also dictate that certain active applications (e.g., a video currently being played on a media player application) should be assigned a high priority and can provide instructions for disabling certain lower priority subsystems and/or applications so that
device 100 has sufficient power to finish performing the task. - If the power prioritization policy provides instructions for power reassignment,
PMU 102 determines which subsystems and/or applications to reconfigure instep 604. In an embodiment,PMU 102 can calculate an estimated amount of power that will be saved by disabling and/or reconfiguring subsystems and/or applications and can determine how application and/or subsystem reconfiguration will be necessary fordevice 100 to have sufficient power to finish performing the task. - For example, a power prioritization policy may state that if there is insufficient battery power to finish playing a video, video quality should be lowered until enough battery power will be conserved to finish the video. Several options may be available for reducing video quality to save power. Such options can include, without limitation: playing the video using a higher SVC mode with battery depletion occurring before the video ends; using a lower SVC mode wherein battery will prove sufficient with minimal margin; adapting SVC with I-frame sync on the fly to minimize higher power requirement portions of the stream or more accurately utilize the full remaining battery power; playing the video in a much lower SVC mode than is required to maximize battery savings; reducing video resolution; reducing screen brightness; and/or reducing power supplied to the backlight display.
- Based on the current power requirements of device 100 (e.g., as determined in
step 502 ofFIG. 5 ) and the battery power available todevice 100,PMU 102 can estimate an amount of power it needs to save to finish playing the video.PMU 102 can then determine an amount of compression necessary fordevice 100 to meet these required power savings. For example, in an embodiment,PMU 102 can know in advance an amount of estimated power that can be saved by increasing compression, reducing resolution, reducing screen brightness, etc. Based on this information,PMU 102 can determine which actions it can take to achieve sufficient power-savings fordevice 100 to have sufficient power to finish playing the video. In an embodiment,PMU 102 can also access information obtained during previous executions of the media player application to assist it in estimating an amount of power that will be saved by increasing compression, reducing resolution, reducing screen brightness, etc. - The power prioritization policy can also state that certain subsystems and/or applications should be assigned less power if reconfiguring characteristics of the media player application is insufficient to achieve the needed power savings. In an embodiment, the power prioritization policy can state that certain subsystems (e.g., Bluetooth subsystem 306) and/or applications should be powered down until sufficient power savings are achieved. For example,
PMU 102 can throttle wireless connectivity, alter display qualities (e.g., resolution), switch to a mode that uses more text and less graphics, dim the backlight display, reduce the times lights are turned on and off, and/or reduce the duty cycle of wireless subsystem 114 (e.g., lower the rate at whichdevice 100 scans for available wireless networks). As discussed above, in an embodiment,PMU 102 can know in advance an amount of estimated power that will be saved by powering down these applications and/or subsystems. In an embodiment,PMU 102 can access information obtained during previous executions of applications and/or subsystems to aid it in determining an amount of power that will be saved by changing certain characteristics of an application. - In an embodiment, the power prioritization policy can also specify that
device 100 should be placed in a certain power modes based on the current amount of power available frombattery subsystem 104. Each power mode can be associated with one or more instructions for assigning power to subsystems and/or applications. For example, in a high power mode, full power can be assigned to all subsystems and applications. In an intermediate power mode, certain subsystems and/or applications can be disabled to save power. In a low power mode, even important subsystems and/or applications can be assigned less power or can be instructed to operate at reduced performance so that power can be saved. In an embodiment,PMU 102 can switch the power mode ofdevice 100 in response to determining (e.g., in step 604) that subsystems and/or applications should be reconfigured to save power. - In an embodiment,
PMU 102 ideally optimizes power to provide the most functionality that it is able to provide given the current battery life ofdevice 100. For example, in the case of a video playing on a media player application,PMU 102 ideally determines to optimize power so that the media player application will be able to play the video using the best quality possible while still having enough power available to finish playing the video. In some cases,PMU 102 may not be able to save sufficient power fordevice 100 to finish performing the task. In an embodiment,PMU 102 can take steps to conserve power so that the battery life of the device will be extended, even if the device will run out of power before the task has been finished. - After
PMU 102 determines which subsystems and/or applications should be reconfigured instep 604,PMU 102 can then optionally notify the user of the upcoming reconfigurations instep 606. For example, in an embodiment, a message can be sent to a user informing the user of a change in power settings beforePMU 102 reconfigures the power supplied to subsystems and/or applications. The user can also optionally be given the chance to choose to reject the proposed changes and continue with the current power settings. In an embodiment, the user can determine (e.g., based on a device or policy setting) whether he or she wants to receive such power notifications. For example, the user can configuredevice 100 to conserve power automatically without notifying the user, or the use can configuredevice 100 to take no automatic power savings action. Finally, instep 608, PMU reconfigures the one or more subsystems and/or applications based on the policy. - In some cases, a power prioritization policy may not provide instructions for reassigning power if
device 100 does not have sufficient power to finish performing the task. In such a case,PMU 102 can inform the user that the host device has insufficient power to finish performing the task instep 610.PMU 102 can then optionally propose power savings options to the user instep 612. For example,PMU 102 can initiate sending a message to the user (e.g., via a pop up display) giving the user options for reconfiguring the power settings ofdevice 100. For example, the user can be given the option to placedevice 100 in a lower power mode, to disable some applications (e.g., background applications and/or multi-task applications, such as applications enabling simultaneous video playback and file downloading) and/or subsystems, and/or to reduce the quality of certain active applications (e.g., reducing the quality of a playing video).PMU 102 can then reconfigure subsystems and/or applications based on the user input instep 614. In an embodiment,PMU 102 can also update the policy based on the user input to avoid the need for future input from the user. By updating the policy based on user inputs,PMU 102 can train itself to adapt to the user's preferences. As previously discussed, user notification is optional, and the user can configure device 100 (e.g., in a device setting or in the power prioritization policy) so that notifications are not sent to the user. - While reconfiguration of
device 100 for power savings is described generally above with reference to an example of a media player application playing a video, it should be understood that embodiments of the present disclosure provide systems and methods for power savings for a variety of applications and/or subsystems ofdevice 100. For example, in an embodiment,PMU 102 may determine that battery power is low while a phone call is in progress.PMU 102 can then take actions to maximize battery life so that additional time is available to complete the phone call before the battery is out of power. For example,PMU 102 may determine (e.g., based on the power prioritization policy) that certain applications (e.g., graphics programs) and/or subsystems (e.g., Bluetooth subsystem 306) should be disabled to maximize battery life. In another example, if battery power is low while a file is being downloaded usingwireless subsystem 114,PMU 102 can redistribute power from other subsystems or applications to provide more power towireless subsystem 114. For example, ifdevice 100 is not currently in use by the user,PMU 102 can determine (e.g., based on a stored power prioritization policy) thatdisplay system 112 can temporarily be powered down and/or thatdevice 100 can be put into a standby mode until the user performs some action to wake updevice 100 again. - Additionally, in an
embodiment PMU 102 can coordinate with other devices to optimize power usage among several devices. For example, in an embodiment,device 100 can be a cellular phone running an application that is displayed on a different device (e.g., a tablet computer). In the case of a video executing using a media player application,device 100 can be executing the media player application, but the video itself can be displayed on the tablet. For example,device 100'scellular subsystem 300 can be used to receive a LTE video stream from a remote server, anddevice 100'sWLAN subsystem 301 can be used to transmit the video stream to a tablet.PMU 102 can be configured to monitor the power consumption from the LTE network and the WiFi link and adjust the bitrate of the video accordingly to manage battery life. For example, ifPMU 102 determines that the battery power of the tablet receiving the video is low,PMU 102 can send a message toWLAN subsystem 301 to compress the video so that video quality is lowered but power is saved on the tablet. Alternatively, ifPMU 102 determines that the tablet has high battery power but thatdevice 100 has low battery power,PMU 102 can determine that no video compression should be performed usingdevice 100 to save power ondevice 100. Video compression can then optionally be performed on the tablet, if necessary. - In an embodiment,
PMU 102 can periodically evaluate currently active subsystems and/or applications to determine whether power should be redistributed so that important subsystems and/or applications have sufficient power to finish performing tasks. In an embodiment, the rate at whichdevice 100 evaluates subsystems and applications can be set in a policy (e.g., a power prioritization policy), and a user can optionally reconfigure this policy to change this rate. The policy (and/or the user) can also set other parameters to determine when this periodic evaluation should occur. For example, in an embodiment, the policy and/or the user can determine that the periodic evaluation of subsystems and applications should only occur whendevice 100 is in a low power mode (and whendevice 100 is not plugged in to an electrical outlet). Alternatively, the policy and/or the user can determine that subsystems and applications should periodically be evaluated regardless of current battery life so that power supplied to subsystems and applications can be continually optimized. -
FIG. 7 is a flowchart of a method for optimizing power used bydevice 100 based on a periodic evaluation of the subsystems and applications ofdevice 100. Instep 700,device 100 periodically identifies high priority subsystems and applications. For example, in an embodiment, these subsystems and applications can be listed in the power prioritization policy. In an embodiment, all currently executing applications and currently operating subsystems can be considered as having a high priority. Instep 702, each identified high priority subsystem and application is evaluated in turn to determine whether power supplied todevice 100 needs to be rebalanced. - In
step 704, the power requirements of the high priority subsystem or application are predicted. For example,device 100 estimates an amount of power that will be required for the application or subsystem to finish performing a task. Instep 706,PMU 102 determines whetherdevice 100 has sufficient power for the application or subsystem to complete the task. IfPMU 102 determines that sufficient power is available, no further action is taken instep 708, andPMU 102 evaluates the next identified high priority subsystem or application instep 702. IfPMU 102 determines that the subsystem or application does not have sufficient power to complete the task,PMU 102 initiates a reconfiguration of subsystems and/or applications ofdevice 100 instep 710 so that sufficient power is conserved such that the subsystem or application can complete the task. -
PMU 102 can also be configured to increase power supplied to subsystems and applications when more power becomes available todevice 100. For example, in an embodiment, whenPMU 102 periodically evaluates the power needs of high priority subsystems and applications,PMU 102 can also determine whetherdevice 100 has been supplied with additional power (e.g., ifdevice 100 has been plugged in or supplied with a new battery). In an embodiment, ifPMU 102 determines thatdevice 100 currently has a high amount of power available (e.g., ifdevice 100 has been plugged in), and if the subsystems or application is currently operating with a reduced quality to save power,PMU 102 can increase the amount of power supplied to the application or subsystem so that quality can be improved. - By periodically evaluating the power needs of subsystems and applications,
PMU 102 can proactively optimize the power needs ofdevice 100. This proactive optimization can lead to a greater power efficiency than that achieved by purely reactive power optimization schemes. Further, the power savings resulting from this proactive power optimization can allowdevice 100 to support a higher quality for important applications and subsystems. - As previously discussed,
PMU 102 can evaluate input from a variety of sources to determine how power supplied to subsystems and applications should be optimized. In an embodiment,PMU 102 can be configured to adjust power supplied to subsystems and/or applications based on information received byPMU 102 from various sensors (e.g., from sensors of sensor subsystem 118). For example, a proximity or range sensor can sense whether a user is presentnear device 100 and/or how far a user is fromdevice 100. In an embodiment, the proximity or range sensor can determined whether the user is within a predetermined range ofdevice 100. If sensor information indicates that a user is far away,PMU 102 can determine (e.g., based on information stored in a power prioritization policy) that power supplied to certain subsystems and/or applications can be temporarily cut off or reduced until the user comes closer todevice 100. For example,PMU 102 can determine that the quality of a playing video should be temporarily reduced to save power until the user comes closer todevice 100. - In another example, a sensor (e.g., one of the sensors of sensor subsystem 118) can detect whether the environment is bright or dark. Based on this information,
PMU 102 can reduce device illumination (e.g., screen brightness) when the information from the sensor indicates that the environment is brighter than a predetermined threshold value so that power can be conserved. When the environment is darker than a predetermined threshold value,PMU 102 can increase device illumination so that the user can see the screen more easily in the dark. - In an additional example, a sensor (e.g., one of the sensors of sensor subsystem 118) can detect when
device 100 is operating in a hot environment and can reduce the maximum allowed performance (e.g., by reducing processing speed) to avoid overheating the device. For example, in an embodiment, a thermal sensor ofsensor subsystem 118 can detect the temperature ofdevice 100 or one or more portions of device 100 (e.g., the case, battery, or circuitry of device 100), and this information can be relayed toPMU 102. IfPMU 102 determines that the temperature has exceeded a predetermined threshold,PMU 102 can alter power management to account for this increase in temperature. For example,PMU 102 can reduce the maximum allowed performance (e.g., by reducing processing speed) oncePMU 102 has determined that the temperature threshold has been exceeded. Additionally, in an embodiment,PMU 102 can use multiple temperature thresholds in a power management scheme. For example, whenPMU 102 determines, based on sensor information, that a first temperature threshold has been exceeded,PMU 102 can reduce the maximum allowed performance (e.g., by reducing processing speed) by a first amount. IfPMU 102 determines that a second (higher) temperature threshold has been exceeded (e.g., if the device is continuing to overheat further),PMU 102 can reduce the maximum allowed performance by an additional amount (e.g., by reducing processing speed even further). - For further example, a motion and/or position sensor can sense whether a device is being held, is stationary, is face down, is face up, is sideways, and/or is in a pocket.
PMU 102 can use information from these sensors to adjust how power supplied to subsystems and applications. For example, ifPMU 102 determines, based on sensor information, thatdevice 100 is in the pocket of a user,PMU 102 can instructdisplay subsystem 112 to temporarily show no picture untildevice 100 is removed from the user's pocket. - In another example, an accelerometer can inform
PMU 102 when a user is walking. In such a case,PMU 102 can instructGPS subsystem 302 and/orGNSS subsystem 304 to reduce the rate at which they access satellite information to determine the geographic location of the device. Instead, information from the accelerometer can be used to update the user's location based on a previous GPS/GNSS location determination. -
FIG. 8 is a flowchart of a method for optimizing power supplied to subsystems and applications based on information received from sensors. Instep 800,PMU 102 receives information from one or more sensors ofdevice 100 indicating that an event has occurred. For example,PMU 102 can receive information from a proximity sensor ofsensor subsystem 118 informingPMU 102 that no user is neardevice 100. Instep 802,PMU 102 determines (e.g., based on a power prioritization policy) whether the sensor information can be used to optimize power supplied to applications or subsystems ofdevice 100. For example,PMU 102 can access a stored power prioritization policy to determine if it contains instructions for reconfiguring power supplied to subsystems or applications based on the sensor information. Instep 804,PMU 102 reconfigures (e.g., according to instructions in the policy) one or more subsystems and/or applications based on the sensor information. For example,PMU 102 can determine that a media player application can be instructed to operate at a reduced quality to save power until the user comes closer todevice 100. - In an embodiment,
PMU 102 can use sensor information to assist in the reconfiguration of subsystems and applications when performing the methods ofFIGS. 4-7 and 9-11. For example, in the method ofFIG. 6 , whenPMU 102 identifies one or more subsystems and/or applications to reconfigure instep 604 based on the power prioritization policy instep 604,PMU 102 can use sensor information to determine which subsystems and/or applications can be temporarily shut down or assigned less power. Additionally, for example, sensor information can be used to more efficiently allocate power to subsystems and applications whenPMU 102 periodically determines whether power should be reallocated to subsystems and/or applications in the method ofFIG. 7 . - As previously discussed,
PMU 102 can also use cache miss rate information when determining how power should be reallocated to subsystems and applications. Using cache miss rate information, cache memory (e.g., cache memory 202) and memory ofexternal memory subsystem 110 can be configured to operate more efficiently, leading to greater power savings. - Cache memories store copies of data stored elsewhere in memory (e.g., in external memory subsystem 110). Cache memories can be configured to fetch data in advance based on predicting what data a processor (e.g.,
CPU 106 or video processor 108) will attempt to access from memory. Because cache memories are typically faster than external memories, reading data from cache memory improves performance. Thus, to increase memory access speed, processors can first check cache memory for a copy of the data before attempting to access the original data in slower external memory. A cache miss or mistake occurs when a processor (e.g.,CPU 106 or video processor 108) fails to read from or write to a cache memory (e.g., cache memory 202) and instead reads the data from external memory. For example, whenCPU 106 needs to read data or write data to a main memory (e.g., to a memory of external memory subsystem 110),CPU 106 orvideo processor 108 can first determine whether a copy of the data is present incache memory 202. If the data is present incache memory 202,CPU 106 can read the data fromcache memory 202. If the data is not present incache memory 202,CPU 102 can access the original data inexternal memory subsystem 110. - In an embodiment, each processor of
device 100 has one or more on-chip cache memories. WhileFIG. 2 only shows acache memory 202 ofCPU 106, it should be understood that other processors of device 100 (e.g., video processor 106) can also have on-chip cache memories. Further, it should be understood that each processor of device 100 (e.g.,CPU 106 and video processor 108) can have access to multiple cache memories. For example, in an embodiment,CPU 106 has access to a multi-level cache with three different cache levels (e.g., L1, L2, and L3). - Memories of
external memory subsystem 110 can have one or more power modes and can be placed in a sleep or low power state when not being accessed to save power. In an embodiment,PMU 102 can begin powering up a memory ofexternal memory subsystem 110 whenPMU 102 receives a cache miss signal. For example, the cache miss signal can informPMU 102 that a cache miss has occurred whenCPU 106 tried to access a copy of a piece of data and that the original data is stored in a first memory (not shown) ofexternal memory subsystem 110. Based on this information,PMU 102 can power up the first memory so that the original data can be accessed. By keeping memories ofexternal memory subsystem 110 in an inactive or low power state until a cache miss occurs,device 100 can use battery power more efficiently. - In an embodiment, an application can be characterized (e.g., by PMU 102) using information stored during previous executions of the application. Using information stored during previous executions of an application,
PMU 102 can track the activity of an application (e.g., memory accesses) to determine how to optimize subsystems (e.g., external memory subsystem 110) for execution of the application. For example, in an embodiment,PMU 102 can track how much buffer is maintained between processing and display. IfPMU 102 detects that too little buffer is used or too much buffer is used,PMU 102 can determine that the application is being run inefficiently and can initiate one or more subsystem reconfigurations to increase efficiency. For example, information can be placed into a frame header indicating a “cost” associated with decoding the frame (e.g., an estimate of how much power will be required to decode the frame), and a decoder can be reconfigured based on information in this header. - Thus, each application can have metadata that indicates some information regarding its behavior (e.g., memory accesses, cost of decoding frames, etc.) based on previous executions of the application, and this metadata can be used to reconfigure one or more subsystems and make one or more predications about how the application will execute (e.g., predicted memory accesses). Additionally, as an application executes,
PMU 102 can detect whether the application is behaving according to predicted behavior.PMU 102 can initiate additional subsystem reconfigurations if the application is not behaving according to predicted behavior. Additionally, in an embodiment,PMU 102 can proactively “test” the application (e.g., by temporarily slowing it down) to see if it can take power savings measures (e.g., saving by reducing frequency) without significantly impacting performance. In this way,PMU 102 can optimize application power efficiency as the application executes. - For example, if
PMU 102 determines (e.g., based on application metadata) that a previous execution of an application resulted in a very high cache miss rate to a particular cache memory, thenPMU 102 can determine that the access rate of this cache memory should not be increased because an increase in the access rate of the cache memory will likely burn power without resulting in increased performance. In some cases,PMU 102 can determine that the access rate of the cache memory should be decreased to conserve power. Additionally, ifPMU 102 detects that an application initiates relatively few accesses to memory, thenPMU 102 can place this memory into a low power mode. - In an embodiment, memories of
external memory subsystem 110 can have multiple power modes, including one or more intermediary power modes (e.g., power modes other than full power and no power).PMU 102 can use cache miss signals to determine which power mode to assign to each memory ofmemory subsystem 110. For example, if a first memory ofexternal memory subsystem 110 can be accessed at 400 MHz at full power, the first memory can be configured (e.g., by PMU 102) to support a 100 MHz access rate in an intermediary state. By reducing the memory access rate (e.g., to 100 MHz) additional power can be saved while still allowing some memory access. In an embodiment, memories ofexternal memory subsystem 110 can also be configured to save power by controlling memory lanes. By reducing the number of lanes available for memory access from a first memory, the first memory will use less power while still supporting some memory access. For example, the interface of the first memory can be configured to be 16 bits wide instead of 128 bits wide. - In an embodiment,
PMU 102 can reconfigure the power modes of the memories ofexternal memory subsystem 110 based on detecting an increase or a decrease in the rate of cache miss signals. For example,PMU 102 can place a first memory ofexternal memory subsystem 110 in a higher power mode (e.g., a power mode supporting a higher access rate or a greater number of memory lanes) when cache miss rates from the first memory increase (e.g., whenPMU 102 receives more cache miss signals from the first memory). To save power,PMU 102 can place the first memory in a lower power mode (e.g., a power mode supporting a lower access rate or a smaller amount of memory lanes) when cache miss rates from the first memory decrease. - In an embodiment, cache memory (e.g., cache memory 202) can be reconfigured to operate in one or more intermediary power states for power savings. For example,
cache 202 can be configured (e.g., by PMU 102) to operate at a reduced access rate or to use fewer memory lanes for additional power savings. Additionally, in an embodiment, cache memory (e.g., cache memory 202) can be programmed (e.g., by PMU 102) to make it more efficient. For example, based on a prediction of what code is going to be executed by a processor, caches can be instructed to automatically fetch instructions so that they are available when the processor is ready to execute them. IfPMU 102 determines (e.g., based on signals received fromCPU 106 and/or video processor 108) in advance that the same code is going to be continuously executed for a period of time, PMU can program a cache (e.g., cache memory 202) and can lock it so that it no longer expends unnecessary resources fetching the same data. -
FIG. 9 is a flowchart of a method for reconfiguring a memory based on cache miss rates. Instep 900,PMU 102 monitors a plurality of cache miss signals (e.g., sent by CPU 106). Instep 900,PMU 102 detects a change in the rate of cache miss signals associated with data stored in a first memory. For example,PMU 102 can determine that the number of cache misses associated with data stored in a first memory ofexternal memory subsystem 110 is increasing. Instep 904,PMU 102 determines how the first memory or the cache should be reconfigured based on the detected change in the rate of cache miss signals. In an embodiment,PMU 102 can access a power conservation policy that instructsPMU 102 how to respond to an increase or decrease in received cache miss signals. For example, ifPMU 102 detects an increase in cache misses fromcache 202 associated with a first memory ofexternal memory subsystem 110,PMU 102 can change the memory mode of the first memory to support a higher accessed rate and/or a greater number of memory lanes.PMU 102 can also deter nine (e.g., based on the policy) that thatcache memory 202 should be reconfigured to a power mode supporting an increased access rate and/or a greater number of memory lanes. Finally, instep 906,PMU 102 reconfigures the first memory or the cache (e.g., based on the stored policy). - In an embodiment,
PMU 102 can use cache miss signal information to assist in the reconfiguration of subsystems and applications when performing the methods ofFIGS. 4-8 , 10, and 11. For example, in the method ofFIG. 6 , whenPMU 102 identifies one or more subsystems and/or applications to reconfigure instep 604 based on the power prioritization policy instep 604,PMU 102 can use cache miss signal information to select memories (e.g., memories ofexternal memory subsystem 110 and/or cache memory 202) to reconfigure for power savings. Additionally, for example, cache miss signal information can be used to more efficiently allocate power to memories (e.g., memories ofexternal memory subsystem 110 and/or cache memory 202) whenPMU 102 periodically determines whether power should be reallocated to subsystems and/or applications in the method ofFIG. 7 . - As previously discussed,
PMU 102 can analyze data collected during previous executions of a program when making predictions regarding the overall power that will be needed to execute the program.PMU 102 can also use data gathered during previous executions of blocks of code to predict thermal and power consumption needs. For example, when a program is running, the same block of code is often repeatedly executed. Certain blocks of code can require a particularly large amount of power.PMU 102 can store information regarding an amount of power that was consumed during execution of a block of code and can later use this information to predict an amount of power a subsequent execution of the block of code will require. For example,PMU 102 can be configured to estimate power requirements for blocks of code when particular code elements (e.g., branch instructions) are encountered. These code elements can signal that a new block of code is about to be executed. For example, whenPMU 102 encounters a branch instruction,PMU 102 can access memory to determine if the block of code following the branch instruction is associated with power consumption information stored in memory. Additionally, in an embodiment,PMU 102 can also estimate an amount of power a new block of code will require for execution based on data gathered from previous executions of similar code. - In an embodiment, power consumption information for blocks of code can be associated a pattern of execution of the block of code. For example, when a block of code is executed, the instructions in the block of code can follow a particular pattern of memory accesses during execution of the instructions in the block of code. Based on the addresses of the memory segments accessed during execution of the block of code, a signature (e.g., a hash) for the pattern of execution can be generated. This signature can be stored (e.g., in a table in memory), and each signature can be associated with power consumption information. For example,
PMU 102 can record an amount of power that was consumed when the block of code was executed and can store this information in memory and associate it with the signature. When the block of code is executed again in the future,PMU 102 can access the stored information to determine whether there is a signature associated with the block of code. For example,PMU 102 can generating another hash (e.g., using the same hash algorithm) based on the memory addresses that will be accessed when the block of code is executed.PMU 102 can then determine whether this newly generated hash matches a hash already stored in memory. If a match is found,PMU 102 can access the power consumption information associated with the hash. Using the stored power consumption information,PMU 102 can predict an amount of power the block of code will require to execute. - Using this prediction,
PMU 102 can determine (e.g., based on a policy) whether it should take any actions based on the predicted power consumption needs. For example,PMU 102 can determine that voltage supplied to a processor (e.g., toCPU 106 and/or video processor 108) should be increased or that the frequency of the processor should be increased.PMU 102 can also determine to reconfigure memory (e.g.,cache memory 202 or memories of external memory subsystem 110) based on predicted power consumption needs. For example,PMU 102 can determine thatcache memory 202 or memories ofexternal memory subsystem 110 should be placed into a higher power mode ifPMU 102 predicts that these memories will be accessed during execution of the block of code. -
FIG. 10 is a flowchart of a method for reconfiguring subsystems of a device based on predictions made during previous executions of blocks of code. Instep 1000, a signature is generated for a pattern of access associated with a block of code. For example,PMU 102 determines which memory addresses will be accessed when the block of code is executed and generates a hash based on these addresses. Instep 1002, power consumption information for the block of code is stored in memory and associated with the signature. For example,PMU 102 can detect an amount of power that was required for execution of the block of code and can store this information in a table in memory associated with the generated hash. Instep 1004, a subsequent execution of the block of code is detected. For example,PMU 102 can detect that a block of code is about to be executed when a branch instruction is encountered. In an embodiment, a processor (e.g.,CPU 106 or video processor 108) can send a signal toPMU 102 when branch instructions are encountered. Based on these signals,PMU 102 can access the table in memory instep 1006 to determine if it contains stored information associated with the block of code. For example,PMU 102 can generate a hash of the addresses in memory that will be accessed when the block of code will be executed and can check the table to see if any entry matches the generated hash. If a match is found,PMU 102 can access the corresponding power consumption information to obtain a prediction of the power consumption requirements of the block of code. - Finally, in
step 1008, subsystems ofdevice 100 can be reconfigured based on the power consumption information retrieved from memory. For example,PMU 102 can determine that voltage supplied to a processor (e.g., toCPU 106 and/or video processor 108) should be increased or that the frequency of the processor should be increased.PMU 102 can also determine to reconfigure memory (e.g.,cache memory 202 or memories of external memory subsystem 110) based on predicted power consumption needs. - In an embodiment,
PMU 102 can use this retrieved power consumption information to assist in the reconfiguration of subsystems and applications when performing the methods ofFIGS. 4-9 and 11. For example, in the method ofFIG. 6 , whenPMU 102 identifies one or more subsystems and/or applications to reconfigure instep 604 based on the power prioritization policy instep 604,PMU 102 can use retrieved power consumption information to determine whetherCPU 106 and/orvideo processor 108 should be assigned more power (e.g., if a particularly power-expensive block of code is about to be executed). - In an embodiment, potions of code in a program can signal upcoming power requirements to
PMU 102 so thatPMU 102 can act proactively to meet these power requirements. For example, code for power consumption prediction (e.g., “energy hints”) can be inserted into the code of power-expensive programs or functions so thatPMU 102 can be notified of an increase in needed power before these programs are executed. When the code is executed, the energy hint code sends a message toPMU 102 informingPMU 102 that the power-expensive block of code is being executed. In an embodiment, no operation performed (NOP) instructions can be used as padding to givePMU 102 time to adjust power. NOPS periodically inserted into code can prevent a large, instantaneous burden from being placed on capacitors indevice 100. Using energy hints,PMU 102 can proactively reconfigure subsystems ofdevice 100 before the power-expensive code starts drawing a large amount of power. For example,PMU 102 can determine, in response to receiving information from an energy hint, that voltage supplied to a processor (e.g., toCPU 106 and/or video processor 108) should be increased or that the frequency of the processor should be increased. - In an embodiment, energy hints can be used to reconfigure characteristics of hardware elements of
device 100. For example, energy hints can be especially useful for configuring two-phase switchers in power supplies. A switched-mode power supply is a power supply that incorporates a switching regulator. Power supplies having two-phase switchers have two switches that change between on and off states. As the switching frequency of a two-phase switcher increases, more energy is used. Thus, two-phase switchers can be less efficient at higher frequencies. Using received energy hints,PMU 102 can adapt the switching frequency of two-phase switchers. For example, whenPMU 102 determines that less power is expected to be used,PMU 102 can instruct two-phase switchers to reduce switching frequency to save energy. In an embodiment, two-phase switchers can be instructed to forgo operating at very high switching frequencies unless an energy hint is received byPMU 102 indicating that a program will require a large amount of power. -
FIG. 11 is a flowchart of a method for reconfiguring subsystems of a device based on signals generated from blocks of code. Instep 1100, a signal from a block of code indicating upcoming power consumption needs is detected. For example, a particularly power-expensive block of code can contain energy hint code to notifyPMU 102 of an upcoming increase in power consumption. When the energy hint code is executed,CPU 102 sends a signal toPMU 102. Instep 1102,PMU 102 determines (e.g., based on a stored policy) which subsystems of a device should be reconfigured based on the signal. For example,PMU 102 can determine that voltage supplied to a processor (e.g., toCPU 106 and/or video processor 108) should be increased or that the frequency of the processor should be increased.PMU 102 can also determine to reconfigure memory (e.g.,cache memory 202 or memories of external memory subsystem 110) based on predicted power consumption needs. Additionally, in an embodiment,PMU 102 can instruct two-phase switchers to forgo operating at very high switching frequencies unless an energy hint is received byPMU 102 indicating that a program will require a large amount of power. Finally, instep 1104,PMU 102 reconfigures the subsystems to compensate for the upcoming power consumption needs of the block of code. - In an embodiment,
PMU 102 can use energy hints to assist in the reconfiguration of subsystems and applications when performing the methods ofFIGS. 4-10 . For example, in the method ofFIG. 6 , whenPMU 102 identifies one or more subsystems and/or applications to reconfigure instep 604 based on the power prioritization policy instep 604,PMU 102 can use energy hints to determine whetherCPU 106 and/orvideo processor 108 should be assigned more power (e.g., if a particularly power-expensive block of code is about to be executed). - It will be apparent to persons skilled in the relevant art(s) that various elements and features of the present disclosure, as described herein, can be implemented in hardware using analog and/or digital circuits, in software, through the execution of instructions by one or more general purpose or special-purpose processors, or as a combination of hardware and software.
- The following description of a general purpose computer system is provided for the sake of completeness. Embodiments of the present disclosure can be implemented in hardware, or as a combination of software and hardware. Consequently, embodiments of the disclosure can be implemented in the environment of a computer system or other processing system. An example of such a
computer system 1200 is shown inFIG. 12 . At least portions of some, or all, of the modules depicted inFIGS. 1-3 (e.g.,PMU 102,CPU 106,video processor 108, subsystems 110-114, etc.), can be implemented using one or moredistinct computer systems 1200. Furthermore, each of the steps of the flowcharts depicted inFIGS. 4-11 can be implemented on one or moredistinct computer systems 1200. -
Computer system 1200 includes one or more processors, such asprocessor 1204.Processor 1204 can be a special purpose or a general purpose digital signal processor.Processor 1204 is connected to a communication infrastructure 1202 (for example, a bus or network). Various software implementations are described in terms of this exemplary computer system. After reading this description, it will become apparent to a person skilled in the relevant art(s) how to implement the disclosure using other computer systems and/or computer architectures. -
Computer system 1200 also includes amain memory 1206, preferably random access memory (RAM), and can also include asecondary memory 1208.Secondary memory 1208 can include, for example, ahard disk drive 1210 and/or aremovable storage drive 1212, representing a floppy disk drive, a magnetic tape drive, an optical disk drive, or the like.Removable storage drive 1212 reads from and/or writes to aremovable storage unit 1216 in a well-known manner.Removable storage unit 1216 represents a floppy disk, magnetic tape, optical disk, or the like, which is read by and written to byremovable storage drive 1212. As will be appreciated by persons skilled in the relevant art(s),removable storage unit 1216 includes a computer usable storage medium having stored therein computer software and/or data. - In alternative implementations,
secondary memory 1208 can include other similar means for allowing computer programs or other instructions to be loaded intocomputer system 1200. Such means can include, for example, aremovable storage unit 1218 and aninterface 1214. Examples of such means can include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, a thumb drive and USB port, and otherremovable storage units 1218 andinterfaces 1214 which allow software and data to be transferred fromremovable storage unit 1218 tocomputer system 1200. -
Computer system 1200 can also include a communications interface 1220. Communications interface 1220 allows software and data to be transferred betweencomputer system 1200 and external devices. Examples of communications interface 1220 can include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, etc. Software and data transferred via communications interface 1220 are in the form of signals which can be electronic, electromagnetic, optical, or other signals capable of being received by communications interface 1220. These signals are provided to communications interface 1220 via acommunications path 1222.Communications path 1222 carries signals and can be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link and other communications channels. - As used herein, the terms “computer program medium” and “computer readable medium” are used to generally refer to tangible storage media such as
removable storage units hard disk drive 1210. These computer program products are means for providing software tocomputer system 1200. - Computer programs (also called computer control logic) are stored in
main memory 1206 and/orsecondary memory 1208. Computer programs can also be received via communications interface 1220. Such computer programs, when executed, enable thecomputer system 1200 to implement the present disclosure as discussed herein. In particular, the computer programs, when executed, enableprocessor 1204 to implement the processes of the present disclosure, such as any of the methods described herein. Accordingly, such computer programs represent controllers of thecomputer system 1200. Where the disclosure is implemented using software, the software can be stored in a computer program product and loaded intocomputer system 1200 usingremovable storage drive 1212,interface 1214, or communications interface 1220. - In another embodiment, features of the disclosure are implemented primarily in hardware using, for example, hardware components such as application-specific integrated circuits (ASICs) and gate arrays. Implementation of a hardware state machine so as to perform the functions described herein will also be apparent to persons skilled in the relevant art(s).
- It is to be appreciated that the Detailed Description, and not the Abstract, is intended to be used to interpret the claims. The Abstract may set forth one or more but not all exemplary embodiments of the present disclosure as contemplated by the inventor(s), and thus, is not intended to limit the present disclosure and the appended claims in any way.
- The present disclosure has been described above with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed.
- The foregoing description of the specific embodiments will so fully reveal the general nature of the disclosure that others can, by applying knowledge within the skill of the art, readily modify and/or adapt for various applications such specific embodiments, without undue experimentation, without departing from the general concept of the present disclosure. Therefore, such adaptations and modifications are intended to be within the meaning and range of equivalents of the disclosed embodiments, based on the teaching and guidance presented herein. It is to be understood that the phraseology or terminology herein is for the purpose of description and not of limitation, such that the terminology or phraseology of the present specification is to be interpreted by the skilled artisan in light of the teachings and guidance.
- The representative signal processing functions described herein (e.g. channel and source decoders, etc.) can be implemented in hardware, software, or some combination thereof. For instance, the signal processing functions can be implemented using computer processors, computer logic, application specific circuits (ASIC), digital signal processors, etc., as will be understood by those skilled in the art based on the discussion given herein. Accordingly, any processor that performs the signal processing functions described herein is within the scope and spirit of the present invention.
- The above systems and methods may be implemented as a computer program executing on a machine, as a computer program product, or as a tangible and/or non-transitory computer-readable medium having stored instructions. For example, the functions described herein could be embodied by computer program instructions that are executed by a computer processor or any one of the hardware devices listed above. The computer program instructions cause the processor to perform the signal processing functions described herein. The computer program instructions (e.g. software) can be stored in a tangible non-transitory computer usable medium, computer program medium, or any storage medium that can be accessed by a computer or processor. Such media include a memory device such as a RAM or ROM, or other type of computer storage medium such as a computer disk or CD ROM. Accordingly, any tangible non-transitory computer storage medium having computer program code that cause a processor to perform the signal processing functions described herein are within the scope and spirit of the present disclosure.
- While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. It will be apparent to persons skilled in the relevant art that various changes in form and detail can be made therein without departing from the spirit and scope of the invention. Thus, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
Claims (20)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/533,480 US20130046967A1 (en) | 2011-08-17 | 2012-06-26 | Proactive Power Management Using a Power Management Unit |
PCT/US2012/051477 WO2013026039A2 (en) | 2011-08-17 | 2012-08-17 | Proactive power management using a power management unit |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161524538P | 2011-08-17 | 2011-08-17 | |
US13/533,480 US20130046967A1 (en) | 2011-08-17 | 2012-06-26 | Proactive Power Management Using a Power Management Unit |
Publications (1)
Publication Number | Publication Date |
---|---|
US20130046967A1 true US20130046967A1 (en) | 2013-02-21 |
Family
ID=47712228
Family Applications (18)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/247,694 Active 2032-01-16 US8575993B2 (en) | 2011-08-17 | 2011-09-28 | Integrated circuit with pre-heating for reduced subthreshold leakage |
US13/247,295 Active 2032-10-05 US8954017B2 (en) | 2011-08-17 | 2011-09-28 | Clock signal multiplication to reduce noise coupled onto a transmission communication signal of a communications device |
US13/249,057 Active 2032-06-04 US8782314B2 (en) | 2011-08-17 | 2011-09-29 | Scalable and configurable system on a chip interrupt controller |
US13/250,529 Active 2031-10-03 US8650633B2 (en) | 2011-08-17 | 2011-09-30 | Integrated circuit for preventing chip swapping and/or device cloning in a host device |
US13/303,922 Active 2033-04-29 US9160348B2 (en) | 2011-08-17 | 2011-11-23 | Apparatus and method to update a default time interval based on process corner, temperature and voltage |
US13/331,796 Active US8810300B2 (en) | 2011-08-17 | 2011-12-20 | Wave clocking |
US13/331,765 Expired - Fee Related US8823447B2 (en) | 2011-08-17 | 2011-12-20 | Time-based apparatus and method to mitigate semiconductor aging effects |
US13/331,874 Active 2033-12-07 US9312862B2 (en) | 2011-08-17 | 2011-12-20 | Adaptive clocking scheme to accommodate supply voltage transients |
US13/338,001 Active 2033-11-07 US9225343B2 (en) | 2011-08-17 | 2011-12-27 | Electronics device capable of efficient communication between components with asyncronous clocks |
US13/340,873 Active 2032-08-04 US8744368B2 (en) | 2011-08-17 | 2011-12-30 | Integrated circuit with an adaptable contact pad reconfiguring architecture |
US13/341,787 Active US8745724B2 (en) | 2011-08-17 | 2011-12-30 | Methods of on-chip memory partitioning and secure access violation checking in a system-on-chip |
US13/341,748 Active 2033-11-09 US9407272B2 (en) | 2011-08-17 | 2011-12-30 | Systems and methods for distributing an aging burden among processor cores |
US13/437,675 Expired - Fee Related US8856559B2 (en) | 2011-08-17 | 2012-04-02 | Integrated circuit allowing to test a power management unit based on or more conditions and configuring the plurality of pins to operate in normal and test mode |
US13/533,480 Abandoned US20130046967A1 (en) | 2011-08-17 | 2012-06-26 | Proactive Power Management Using a Power Management Unit |
US14/041,505 Active 2032-03-19 US9209816B2 (en) | 2011-08-17 | 2013-09-30 | Pre-heating for reduced subthreshold leakage |
US14/322,758 Active US9312863B2 (en) | 2011-08-17 | 2014-07-02 | Wave clocking |
US15/095,439 Active 2031-12-23 US10033391B2 (en) | 2011-08-17 | 2016-04-11 | Adaptive clocking scheme |
US16/017,421 Active 2032-06-30 US10804906B2 (en) | 2011-08-17 | 2018-06-25 | Adaptive clocking scheme |
Family Applications Before (13)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/247,694 Active 2032-01-16 US8575993B2 (en) | 2011-08-17 | 2011-09-28 | Integrated circuit with pre-heating for reduced subthreshold leakage |
US13/247,295 Active 2032-10-05 US8954017B2 (en) | 2011-08-17 | 2011-09-28 | Clock signal multiplication to reduce noise coupled onto a transmission communication signal of a communications device |
US13/249,057 Active 2032-06-04 US8782314B2 (en) | 2011-08-17 | 2011-09-29 | Scalable and configurable system on a chip interrupt controller |
US13/250,529 Active 2031-10-03 US8650633B2 (en) | 2011-08-17 | 2011-09-30 | Integrated circuit for preventing chip swapping and/or device cloning in a host device |
US13/303,922 Active 2033-04-29 US9160348B2 (en) | 2011-08-17 | 2011-11-23 | Apparatus and method to update a default time interval based on process corner, temperature and voltage |
US13/331,796 Active US8810300B2 (en) | 2011-08-17 | 2011-12-20 | Wave clocking |
US13/331,765 Expired - Fee Related US8823447B2 (en) | 2011-08-17 | 2011-12-20 | Time-based apparatus and method to mitigate semiconductor aging effects |
US13/331,874 Active 2033-12-07 US9312862B2 (en) | 2011-08-17 | 2011-12-20 | Adaptive clocking scheme to accommodate supply voltage transients |
US13/338,001 Active 2033-11-07 US9225343B2 (en) | 2011-08-17 | 2011-12-27 | Electronics device capable of efficient communication between components with asyncronous clocks |
US13/340,873 Active 2032-08-04 US8744368B2 (en) | 2011-08-17 | 2011-12-30 | Integrated circuit with an adaptable contact pad reconfiguring architecture |
US13/341,787 Active US8745724B2 (en) | 2011-08-17 | 2011-12-30 | Methods of on-chip memory partitioning and secure access violation checking in a system-on-chip |
US13/341,748 Active 2033-11-09 US9407272B2 (en) | 2011-08-17 | 2011-12-30 | Systems and methods for distributing an aging burden among processor cores |
US13/437,675 Expired - Fee Related US8856559B2 (en) | 2011-08-17 | 2012-04-02 | Integrated circuit allowing to test a power management unit based on or more conditions and configuring the plurality of pins to operate in normal and test mode |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/041,505 Active 2032-03-19 US9209816B2 (en) | 2011-08-17 | 2013-09-30 | Pre-heating for reduced subthreshold leakage |
US14/322,758 Active US9312863B2 (en) | 2011-08-17 | 2014-07-02 | Wave clocking |
US15/095,439 Active 2031-12-23 US10033391B2 (en) | 2011-08-17 | 2016-04-11 | Adaptive clocking scheme |
US16/017,421 Active 2032-06-30 US10804906B2 (en) | 2011-08-17 | 2018-06-25 | Adaptive clocking scheme |
Country Status (2)
Country | Link |
---|---|
US (18) | US8575993B2 (en) |
WO (3) | WO2013026039A2 (en) |
Cited By (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130262654A1 (en) * | 2012-03-28 | 2013-10-03 | Sony Corporation | Resource management system with resource optimization mechanism and method of operation thereof |
US20130275353A1 (en) * | 2012-04-16 | 2013-10-17 | Apple Inc. | Systems and methods for selecting media items |
US20140118406A1 (en) * | 2012-10-30 | 2014-05-01 | Renesas Sp Drivers Inc. | Display control device and data processing system |
US20140128021A1 (en) * | 2012-10-26 | 2014-05-08 | Lookout, Inc. | System and method for using context models to control operation of a mobile communications device |
US20140177495A1 (en) * | 2012-12-21 | 2014-06-26 | Apple Inc. | Controlling a power state of a cellular packet data subsystem in a portable electronic device |
US20140215242A1 (en) * | 2013-01-29 | 2014-07-31 | Broadcom Corporation | Wearable Device-Aware Supervised Power Management for Mobile Platforms |
US20150067377A1 (en) * | 2013-08-28 | 2015-03-05 | Qualcomm Incorporated | Method, Devices and Systems for Dynamic Multimedia Data Flow Control for Thermal Power Budgeting |
US20150198996A1 (en) * | 2012-03-15 | 2015-07-16 | Google Inc. | Dynamically adjustable power usage |
US20150220129A1 (en) * | 2014-02-05 | 2015-08-06 | Fujitsu Limited | Information processing apparatus, information processing system and control method for information processing system |
US20150338906A1 (en) * | 2014-05-20 | 2015-11-26 | Canon Kabushiki Kaisha | Information processing apparatus, control method for information processing apparatus, and non-transitory computer-readable medium |
WO2015191860A1 (en) * | 2014-06-12 | 2015-12-17 | Advanced Micro Devices, Inc. | Memory controller power management based on latency |
US20160011962A1 (en) * | 2014-07-12 | 2016-01-14 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Allocating memory usage based on voltage regulator efficiency |
US20160021208A1 (en) * | 2014-07-16 | 2016-01-21 | Comcast Cable Communications, Llc | Device Mode Settings to Provide An Enhanced User Experience |
US9243924B2 (en) * | 2012-06-05 | 2016-01-26 | Apple Inc. | Providing navigation instructions while device is in locked mode |
US20160091950A1 (en) * | 2014-09-26 | 2016-03-31 | Apple Inc. | Peak current management |
US20160147284A1 (en) * | 2013-07-22 | 2016-05-26 | Samsung Electronics Co., Ltd. | Method and apparatus for controlling display of electronic device |
US20160370843A1 (en) * | 2015-06-16 | 2016-12-22 | Dell Products, Lp | Method and Apparatus for Customized Energy Policy based on Energy Demand Estimation for Client Systems |
US9621245B2 (en) | 2012-06-08 | 2017-04-11 | Apple Inc. | Facilitating switching between transmitting antennas in portable electronic devices |
US20170193884A1 (en) * | 2015-07-20 | 2017-07-06 | Boe Technology Group Co., Ltd. | Display device and driving method and driving module |
US9880019B2 (en) | 2012-06-05 | 2018-01-30 | Apple Inc. | Generation of intersection information by a mapping service |
US9886794B2 (en) | 2012-06-05 | 2018-02-06 | Apple Inc. | Problem reporting in maps |
US9967417B2 (en) * | 2015-01-21 | 2018-05-08 | Canon Kabushiki Kaisha | Managing apparatus power states |
US9997069B2 (en) | 2012-06-05 | 2018-06-12 | Apple Inc. | Context-aware voice guidance |
US10006505B2 (en) | 2012-06-05 | 2018-06-26 | Apple Inc. | Rendering road signs during navigation |
US10018478B2 (en) | 2012-06-05 | 2018-07-10 | Apple Inc. | Voice instructions during navigation |
US20190101968A1 (en) * | 2016-03-10 | 2019-04-04 | Korea Advanced Institute Of Science And Technology | Communication device for predicting power consumption of mobile application, communication system including same, method of predicting power consumption of mobile application and method of providing predicted power consumption of mobile application, using same |
US20190163250A1 (en) * | 2017-11-30 | 2019-05-30 | Samsung Electronics Co., Ltd | Apparatus and method for managing power consumption in electronic device |
US10318104B2 (en) | 2012-06-05 | 2019-06-11 | Apple Inc. | Navigation application with adaptive instruction text |
US10409353B2 (en) * | 2013-04-17 | 2019-09-10 | Qualcomm Incorporated | Dynamic clock voltage scaling (DCVS) based on application performance in a system-on-a-chip (SOC), and related methods and processor-based systems |
US10552219B2 (en) | 2016-02-19 | 2020-02-04 | Microsoft Technology Licensing, Llc | Computing resource management of computing devices |
US20200142460A1 (en) * | 2018-11-06 | 2020-05-07 | International Business Machines Corporation | Device-to-device wireless power transfer to provide content display continuity |
US11199896B2 (en) * | 2017-11-21 | 2021-12-14 | Google Llc | Low-power ambient computing system with machine learning |
US11422818B2 (en) * | 2018-08-06 | 2022-08-23 | Institute for Interdisciplinary Information Core Technology (Xi'an) Co., Ltd. | Energy management system and method, electronic device, electronic apparatus, and nonvolatile processor |
US20220326758A1 (en) * | 2021-04-12 | 2022-10-13 | Dell Products L.P. | Increasing power efficiency for an information handling system |
US11567555B2 (en) * | 2019-08-30 | 2023-01-31 | Intel Corporation | Software assisted power management |
US11604504B2 (en) * | 2017-12-15 | 2023-03-14 | Tahoe Research, Ltd. | Power governance of processing unit |
US11671919B2 (en) | 2015-05-08 | 2023-06-06 | Honor Device Co., Ltd. | Setting information configuration method, terminal, and server |
US11843939B2 (en) * | 2020-12-16 | 2023-12-12 | Itron, Inc. | Secure messaging for outage events |
Families Citing this family (107)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8286046B2 (en) * | 2001-09-28 | 2012-10-09 | Rambus Inc. | Integrated circuit testing module including signal shaping interface |
US9946667B2 (en) * | 2008-11-12 | 2018-04-17 | Microchip Technology Incorporated | Microcontroller with configurable logic array |
US8682639B2 (en) * | 2010-09-21 | 2014-03-25 | Texas Instruments Incorporated | Dedicated memory window for emulation address |
FR2965931B1 (en) * | 2010-10-08 | 2013-05-03 | Satimo Ind | METHOD AND DEVICE FOR ELECTRONIC TESTING OF AN OBJECT |
CN103460159B (en) * | 2011-04-11 | 2016-06-08 | 索尼电脑娱乐公司 | Semiconductor integrated circuit |
EP2541220B1 (en) * | 2011-06-28 | 2015-04-08 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Device for measuring a temperature of a high-power semiconductor |
US8575993B2 (en) | 2011-08-17 | 2013-11-05 | Broadcom Corporation | Integrated circuit with pre-heating for reduced subthreshold leakage |
US20130086395A1 (en) * | 2011-09-30 | 2013-04-04 | Qualcomm Incorporated | Multi-Core Microprocessor Reliability Optimization |
KR101840852B1 (en) * | 2011-10-10 | 2018-03-22 | 삼성전자주식회사 | Surface temperature management method of mobile device and memory thermal management method of multichip package |
US8831515B2 (en) | 2011-10-12 | 2014-09-09 | Broadcom Corporation | Shaped load modulation in a near field communications (NFC) device |
JP2013088394A (en) * | 2011-10-21 | 2013-05-13 | Renesas Electronics Corp | Semiconductor device |
WO2013126066A1 (en) * | 2012-02-24 | 2013-08-29 | Hewlett-Packard Development Company, L.P. | Wear-leveling cores of a multi-core processor |
US9344358B2 (en) * | 2012-03-12 | 2016-05-17 | Utah State University | Aging-aware routing for NoCs |
US10191742B2 (en) | 2012-03-30 | 2019-01-29 | Intel Corporation | Mechanism for saving and retrieving micro-architecture context |
US20130262912A1 (en) * | 2012-04-02 | 2013-10-03 | International Business Machines Corporation | Managing hardware configuration of a computer node |
US9229884B2 (en) | 2012-04-30 | 2016-01-05 | Freescale Semiconductor, Inc. | Virtualized instruction extensions for system partitioning |
US8856567B2 (en) * | 2012-05-10 | 2014-10-07 | International Business Machines Corporation | Management of thermal condition in a data processing system by dynamic management of thermal loads |
US9176563B2 (en) * | 2012-05-14 | 2015-11-03 | Broadcom Corporation | Leakage variation aware power management for multicore processors |
US9152587B2 (en) | 2012-05-31 | 2015-10-06 | Freescale Semiconductor, Inc. | Virtualized interrupt delay mechanism |
US8762586B2 (en) * | 2012-06-30 | 2014-06-24 | Silicon Laboratories Inc. | Apparatus for mixed signal interface acquisition circuitry and associated methods |
US8880749B2 (en) | 2012-06-30 | 2014-11-04 | Silicon Laboratories Inc. | Apparatus for mixed signal interface circuitry and associated methods |
US9086865B2 (en) * | 2012-07-09 | 2015-07-21 | International Business Machines Corporation | Power napping technique for accelerated negative bias temperature instability (NBTI) and/or positive bias temperature instability (PBTI) recovery |
US9436626B2 (en) * | 2012-08-09 | 2016-09-06 | Freescale Semiconductor, Inc. | Processor interrupt interface with interrupt partitioning and virtualization enhancements |
CN104520782B (en) * | 2012-08-09 | 2018-05-11 | 瑞典爱立信有限公司 | For providing the method and module of the instruction for setting supply voltage |
US9442870B2 (en) * | 2012-08-09 | 2016-09-13 | Freescale Semiconductor, Inc. | Interrupt priority management using partition-based priority blocking processor registers |
US9239604B2 (en) * | 2012-08-31 | 2016-01-19 | Vixs Systems, Inc. | Video processing device with ring oscillator for power adjustment and methods for use therewith |
US9524012B2 (en) | 2012-10-05 | 2016-12-20 | Dell Products L.P. | Power system utilizing processor core performance state control |
US8996902B2 (en) | 2012-10-23 | 2015-03-31 | Qualcomm Incorporated | Modal workload scheduling in a heterogeneous multi-processor system on a chip |
US9087146B2 (en) * | 2012-12-21 | 2015-07-21 | Intel Corporation | Wear-out equalization techniques for multiple functional units |
US9172383B2 (en) | 2013-01-29 | 2015-10-27 | Broadcom Corporation | Induction-coupled clock distribution for an integrated circuit |
US9000805B2 (en) * | 2013-01-29 | 2015-04-07 | Broadcom Corporation | Resonant inductor coupling clock distribution |
CN103197717B (en) * | 2013-02-28 | 2015-11-25 | 华为技术有限公司 | Adaptive voltage method of adjustment, chip and system |
TWI641943B (en) * | 2013-03-15 | 2018-11-21 | 美商英特爾公司 | Controlling power supply unit power consumption during idle state |
US9417643B2 (en) * | 2013-03-15 | 2016-08-16 | Qualcomm Incorporated | Voltage regulator with variable impedance element |
TWI498737B (en) * | 2013-03-29 | 2015-09-01 | Mstar Semiconductor Inc | Debug authorization determining method for motherboard control module and motherboard control module thereof |
EP2959660B1 (en) | 2013-04-05 | 2016-09-28 | Antique Books Inc. | Method and system providing a picture password proof of knowledge |
CN104112095B (en) * | 2013-04-18 | 2017-09-22 | 晨星半导体股份有限公司 | For motherboard control module except wrong authority determination methods and motherboard control module |
US20140344827A1 (en) * | 2013-05-16 | 2014-11-20 | Nvidia Corporation | System, method, and computer program product for scheduling a task to be performed by at least one processor core |
TWI485367B (en) * | 2013-05-17 | 2015-05-21 | Advanced Semiconductor Eng | Process, voltage and temperature(pvt)sensor and method for operating the same |
US20140344592A1 (en) * | 2013-05-20 | 2014-11-20 | Advanced Micro Devices, Inc. | Methods and apparatus for powering up an integrated circuit |
US9471088B2 (en) * | 2013-06-25 | 2016-10-18 | Intel Corporation | Restricting clock signal delivery in a processor |
US9602083B2 (en) | 2013-07-03 | 2017-03-21 | Nvidia Corporation | Clock generation circuit that tracks critical path across process, voltage and temperature variation |
US10103719B2 (en) | 2013-07-22 | 2018-10-16 | Nvidia Corporation | Integrated voltage regulator with in-built process, temperature and aging compensation |
DE102013216699A1 (en) * | 2013-08-22 | 2015-02-26 | Siemens Ag Österreich | Method and circuit arrangement for securing against scanning of an address space |
GB2517732A (en) * | 2013-08-29 | 2015-03-04 | Sim & Pin Ltd | System for accessing data from multiple devices |
US9071581B2 (en) * | 2013-09-23 | 2015-06-30 | Nvidia Corporation | Secure storage with SCSI storage devices |
US9383407B2 (en) * | 2013-10-16 | 2016-07-05 | Apple Inc. | Instantaneous IR drop measurement circuit |
KR20150050135A (en) | 2013-10-31 | 2015-05-08 | 삼성전자주식회사 | Electronic system including a plurality of heterogeneous cores and operating method therof |
US10079019B2 (en) | 2013-11-12 | 2018-09-18 | Apple Inc. | Always-on audio control for mobile device |
CN104700886B (en) * | 2013-12-06 | 2019-05-31 | 恩智浦美国有限公司 | Memory circuit with power supply status sensor |
US9606843B2 (en) | 2013-12-18 | 2017-03-28 | Qualcomm Incorporated | Runtime optimization of multi-core system designs for increased operating life and maximized performance |
US20150169363A1 (en) * | 2013-12-18 | 2015-06-18 | Qualcomm Incorporated | Runtime Optimization of Multi-core System Designs for Increased Operating Life and Maximized Performance |
US10261875B2 (en) * | 2013-12-18 | 2019-04-16 | Qualcomm Incorporated | Runtime optimization of multi-core system designs for increased operating life and maximized performance |
US9703613B2 (en) * | 2013-12-20 | 2017-07-11 | Qualcomm Incorporated | Multi-core dynamic workload management using native and dynamic parameters |
WO2015097657A2 (en) * | 2013-12-23 | 2015-07-02 | Marvell Israel (M.I.S.L) Ltd. | Apparatus and method for reacting to a change in supply voltage |
US10371415B2 (en) | 2014-02-19 | 2019-08-06 | The Boeing Company | Electronics operation for temperature controlled systems |
US9268970B2 (en) | 2014-03-20 | 2016-02-23 | Analog Devices, Inc. | System and method for security-aware master |
TWI548886B (en) | 2014-04-18 | 2016-09-11 | 創意電子股份有限公司 | Aging detection circuit and method thereof |
WO2015164476A2 (en) * | 2014-04-22 | 2015-10-29 | Antique Books, Inc. | Method and system of providing a picture password for relatively smaller displays |
US9521636B2 (en) * | 2014-04-22 | 2016-12-13 | Nxp Usa, Inc. | Synchronization circuitry, common public radio interface enable device, and a method of synchronizing a synchronized clock signal of a second transceiver to a clock of a first transceiver |
US9323435B2 (en) | 2014-04-22 | 2016-04-26 | Robert H. Thibadeau, SR. | Method and system of providing a picture password for relatively smaller displays |
EP3146746B1 (en) * | 2014-05-21 | 2019-07-03 | Abbott Diabetes Care Inc. | Management of multiple devices within an analyte monitoring environment |
US9778728B2 (en) | 2014-05-29 | 2017-10-03 | Apple Inc. | System on a chip with fast wake from sleep |
US10031000B2 (en) | 2014-05-29 | 2018-07-24 | Apple Inc. | System on a chip with always-on processor |
US9619377B2 (en) * | 2014-05-29 | 2017-04-11 | Apple Inc. | System on a chip with always-on processor which reconfigures SOC and supports memory-only communication mode |
US20150350210A1 (en) | 2014-06-02 | 2015-12-03 | Antique Books Inc. | Advanced proofs of knowledge for the web |
EP3149645B1 (en) | 2014-06-02 | 2018-05-16 | Antique Books Inc. | Device for entering graphical password on small displays with cursor offset |
WO2015199754A1 (en) * | 2014-06-24 | 2015-12-30 | Ruckus Wireless, Inc. | Provisioning radios associated with acess points for testing a wireless network |
US9720868B2 (en) * | 2014-07-07 | 2017-08-01 | Xilinx, Inc. | Bridging inter-bus communications |
EP3180725A1 (en) | 2014-08-11 | 2017-06-21 | Antique Books Inc. | Methods and systems for securing proofs of knowledge for privacy |
KR101637712B1 (en) | 2014-10-31 | 2016-07-20 | 현대자동차주식회사 | System for guiding economic driving, Vehicle applied to the same, and Method thereof |
US9785211B2 (en) * | 2015-02-13 | 2017-10-10 | Qualcomm Incorporated | Independent power collapse methodology |
CN106293644B (en) * | 2015-05-12 | 2022-02-01 | 超威半导体产品(中国)有限公司 | Power budget method considering time thermal coupling |
WO2016191376A1 (en) | 2015-05-22 | 2016-12-01 | Antique Books, Inc. | Initial provisioning through shared proofs of knowledge and crowdsourced identification |
US9804666B2 (en) * | 2015-05-26 | 2017-10-31 | Samsung Electronics Co., Ltd. | Warp clustering |
US10073718B2 (en) | 2016-01-15 | 2018-09-11 | Intel Corporation | Systems, methods and devices for determining work placement on processor cores |
US9825620B2 (en) * | 2016-01-21 | 2017-11-21 | Apple Inc. | Method and apparatus for digital undervoltage detection and control |
US9806828B2 (en) | 2016-02-24 | 2017-10-31 | Frontier Engineering, Llc | Radio frequency generator automated test system |
US10496811B2 (en) * | 2016-08-04 | 2019-12-03 | Data I/O Corporation | Counterfeit prevention |
US10310548B2 (en) | 2016-11-07 | 2019-06-04 | Microsoft Technology Licensing, Llc | Expected lifetime management |
DE102016124962A1 (en) * | 2016-12-20 | 2018-06-21 | Infineon Technologies Ag | A memory device and method for controlling a memory support function |
EP3343313A1 (en) * | 2016-12-30 | 2018-07-04 | Intel IP Corporation | Devices and methods for thermal management |
US10115471B1 (en) * | 2017-05-01 | 2018-10-30 | Western Digital Technologies, Inc. | Storage system and method for handling overheating of the storage system |
US11742038B2 (en) | 2017-08-11 | 2023-08-29 | Advanced Micro Devices, Inc. | Method and apparatus for providing wear leveling |
US11551990B2 (en) | 2017-08-11 | 2023-01-10 | Advanced Micro Devices, Inc. | Method and apparatus for providing thermal wear leveling |
US11131502B2 (en) * | 2017-08-14 | 2021-09-28 | Ut-Battelle, Llc | Heating system with induction power supply and electromagnetic acoustic transducer with induction power supply |
CN107483180B (en) * | 2017-08-21 | 2020-05-01 | 湖南大学 | High-stability physical unclonable function circuit |
TWI664555B (en) * | 2017-11-30 | 2019-07-01 | 大陸商北京集創北方科技股份有限公司 | Key pairing method between display screen and motherboard of handheld device and handheld device using same |
GB201806465D0 (en) | 2018-04-20 | 2018-06-06 | Nordic Semiconductor Asa | Memory-access controll |
CN110490008B (en) * | 2018-05-14 | 2021-08-10 | 英韧科技(上海)有限公司 | Security device and security chip |
CN110196824B (en) * | 2018-05-31 | 2022-12-09 | 腾讯科技(深圳)有限公司 | Method and device for realizing data transmission and electronic equipment |
GB201810662D0 (en) | 2018-06-28 | 2018-08-15 | Nordic Semiconductor Asa | Peripheral Access On A Secure-Aware Bus System |
GB201810659D0 (en) | 2018-06-28 | 2018-08-15 | Nordic Semiconductor Asa | Secure-Aware Bus System |
GB201810653D0 (en) | 2018-06-28 | 2018-08-15 | Nordic Semiconductor Asa | Secure peripheral interconnect |
US20210247839A1 (en) * | 2018-09-03 | 2021-08-12 | Drexel University | On-chip voltage assignment through particle swarm optimization |
US11531385B2 (en) | 2018-09-17 | 2022-12-20 | Samsung Electronics Co., Ltd. | Voltage droop monitoring circuits, system-on chips and methods of operating the system-on chips |
US11181571B2 (en) * | 2018-10-29 | 2021-11-23 | Samsung Electronics Co., Ltd. | Electronic device for managing degree of degradation |
TWI675293B (en) * | 2018-11-02 | 2019-10-21 | 神雲科技股份有限公司 | A host boot detection method and its system |
CN111506530A (en) * | 2019-01-30 | 2020-08-07 | 智原科技股份有限公司 | Interrupt management system and management method thereof |
US11543872B2 (en) | 2019-07-02 | 2023-01-03 | Microsoft Technology Licensing, Llc | Dynamically adjusting device operating voltage based on device performance |
US10996266B2 (en) | 2019-08-09 | 2021-05-04 | Stmicroelectronics International N.V. | System and method for testing voltage monitors |
US11204766B2 (en) * | 2019-08-30 | 2021-12-21 | Intel Corporation | Proactive Di/Dt voltage droop mitigation |
CN113051199A (en) | 2019-12-26 | 2021-06-29 | 阿里巴巴集团控股有限公司 | Data transmission method and device |
EP3866356B1 (en) * | 2020-02-17 | 2023-08-23 | Rohde & Schwarz GmbH & Co. KG | Method of measuring a total radiated power of a device under test as well as test system |
TWI749580B (en) * | 2020-06-08 | 2021-12-11 | 星河半導體股份有限公司 | Multi-channel antenna chip test system and method |
CN111769824B (en) * | 2020-07-13 | 2022-06-14 | 电子科技大学 | Configurable delay circuit |
CN113655994B (en) * | 2021-10-21 | 2022-02-18 | 北京壁仞科技开发有限公司 | Current change slope control method, control device and medium for multi-core processor |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5339445A (en) * | 1992-11-16 | 1994-08-16 | Harris Corporation | Method of autonomously reducing power consumption in a computer sytem by compiling a history of power consumption |
US5564015A (en) * | 1994-05-12 | 1996-10-08 | Ast Research, Inc. | CPU activity monitoring through cache watching |
US5825674A (en) * | 1995-09-29 | 1998-10-20 | Intel Corporation | Power control for mobile electronics using no-operation instructions |
US20050246499A1 (en) * | 2004-04-30 | 2005-11-03 | Nec Corporation | Cache memory with the number of operated ways being changed according to access pattern |
US20060123253A1 (en) * | 2004-12-07 | 2006-06-08 | Morgan Bryan C | System and method for adaptive power management |
US20080059823A1 (en) * | 2006-08-31 | 2008-03-06 | Ati Technologies Inc. | Battery-powered device with reduced power consumption and method thereof |
US20090237033A1 (en) * | 2006-05-30 | 2009-09-24 | Hideyuki Kanzaki | Battery driving device, load control method, integrated circuit and load control program |
US20090287948A1 (en) * | 2004-09-03 | 2009-11-19 | Chary Ram V | Context based power management |
US20100145643A1 (en) * | 2008-12-04 | 2010-06-10 | Concert Technology Corporation | User-controlled application-based power management |
US20100191977A1 (en) * | 2001-08-10 | 2010-07-29 | Peter Landrock | Data certification method and apparatus |
US20110001358A1 (en) * | 2005-08-25 | 2011-01-06 | Conroy David G | Methods and apparatuses for dynamic power control |
US20110040990A1 (en) * | 2009-08-14 | 2011-02-17 | Google Inc. | Providing A User With Feedback Regarding Power Consumption In Battery-Operated Electronic Devices |
US20110125343A1 (en) * | 2008-06-05 | 2011-05-26 | Udo Doebrich | Method for Operating a Modular Automation Device |
US20110239015A1 (en) * | 2010-03-25 | 2011-09-29 | International Business Machines Corporation | Allocating Computing System Power Levels Responsive to Service Level Agreements |
US20110314306A1 (en) * | 2010-06-21 | 2011-12-22 | Industrial Technology Research Institute | Performance scaling device, processor having the same, and performance scaling method thereof |
US20120032894A1 (en) * | 2010-08-06 | 2012-02-09 | Nima Parivar | Intelligent management for an electronic device |
US20120151240A1 (en) * | 2009-07-10 | 2012-06-14 | Protonex Technology Corporation | Portable power manager |
US20120173907A1 (en) * | 2011-12-30 | 2012-07-05 | Jaideep Moses | Method, apparatus, and system for energy efficiency and energy conservation including dynamic c0-state cache resizing |
US20120210325A1 (en) * | 2011-02-10 | 2012-08-16 | Alcatel-Lucent Usa Inc. | Method And Apparatus Of Smart Power Management For Mobile Communication Terminals Using Power Thresholds |
US20130257583A1 (en) * | 2012-03-29 | 2013-10-03 | Motorola Mobility, Inc. | Wireless communication device and method with ultrasonic detection |
Family Cites Families (146)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4124848A (en) * | 1977-09-21 | 1978-11-07 | Automation Industries, Inc. | Range limited area protection system |
US4479216A (en) * | 1982-12-22 | 1984-10-23 | At&T Bell Laboratories | Skew-free clock circuit for integrated circuit chip |
US4775997A (en) * | 1984-09-18 | 1988-10-04 | Metrofone, Inc. | System for interfacing a standard telephone set with a radio transceiver |
US4882752A (en) * | 1986-06-25 | 1989-11-21 | Lindman Richard S | Computer security system |
US5107208A (en) * | 1989-12-19 | 1992-04-21 | North American Philips Corporation | System for partitioning and testing submodule circuits of an integrated circuit |
JP2530051B2 (en) | 1990-07-24 | 1996-09-04 | 株式会社東芝 | Semiconductor integrated circuit device |
AU657634B2 (en) | 1992-06-29 | 1995-03-16 | Dade International Inc. | High-speed time-multiplexed data transmission system |
FI92786C (en) * | 1993-03-30 | 1994-12-27 | Nokia Telecommunications Oy | Procedure for searching signaling channel in a radio system |
SE501190C2 (en) | 1993-04-28 | 1994-12-05 | Ellemtel Utvecklings Ab | Digitally controlled crystal oscillator |
US5502838A (en) * | 1994-04-28 | 1996-03-26 | Consilium Overseas Limited | Temperature management for integrated circuits |
EP0652516A1 (en) * | 1993-11-03 | 1995-05-10 | Advanced Micro Devices, Inc. | Integrated microprocessor |
US5873039A (en) * | 1994-11-28 | 1999-02-16 | Interonics Corporation | Cellular telephone-modem interface for data communication |
US5959872A (en) * | 1996-10-28 | 1999-09-28 | Samsung Electronics Co., Ltd. | Apparatus and method for bidirectional scanning of video coefficients |
JP3137034B2 (en) * | 1997-06-06 | 2001-02-19 | 日本電気株式会社 | Address trap comparison circuit for easy failure verification |
US6192439B1 (en) * | 1998-08-11 | 2001-02-20 | Hewlett-Packard Company | PCI-compliant interrupt steering architecture |
US6253076B1 (en) * | 1999-02-25 | 2001-06-26 | Ericsson Inc. | Manufacturing method for wireless communications devices employing potentially different versions of integrated circuits |
US6658237B1 (en) * | 1999-03-02 | 2003-12-02 | Skyworks Solutions, Inc. | Multi-Band transceiver utilizing direct conversion receiver |
JP3895496B2 (en) * | 1999-04-09 | 2007-03-22 | 富士通株式会社 | Charging control circuit, charging device, and charging control method |
US6194940B1 (en) * | 1999-09-27 | 2001-02-27 | Lucent Technologies Inc. | Automatic clock switching |
US6855690B2 (en) | 2000-06-01 | 2005-02-15 | Children's Medical Center Corporation | Methods and compositions for treating ocular disorders |
DE10034262C1 (en) * | 2000-07-14 | 2001-09-20 | Infineon Technologies Ag | Semiconducting device, especially for motor vehicle, has temperature regulation, and control unit causes integrated circuit to perform dummy working cycles if temperature below threshold |
US6782486B1 (en) | 2000-08-11 | 2004-08-24 | Advanced Micro Devices, Inc. | Apparatus for stopping and starting a clock in a clock forwarded I/O system depending on the presence of valid data in a receive buffer |
US6320438B1 (en) * | 2000-08-17 | 2001-11-20 | Pericom Semiconductor Corp. | Duty-cycle correction driver with dual-filter feedback loop |
US6977979B1 (en) * | 2000-08-31 | 2005-12-20 | Hewlett-Packard Development Company, L.P. | Enhanced clock forwarding data recovery |
US20020087904A1 (en) * | 2000-12-28 | 2002-07-04 | Zhong-Ning (George) Cai | Method and apparatus for thermal sensitivity based dynamic power control |
US6535735B2 (en) | 2001-03-22 | 2003-03-18 | Skyworks Solutions, Inc. | Critical path adaptive power control |
US6771087B1 (en) * | 2001-06-04 | 2004-08-03 | Advanced Micro Devices, Inc. | System and method for testing integrated circuit modules |
US6668357B2 (en) * | 2001-06-29 | 2003-12-23 | Fujitsu Limited | Cold clock power reduction |
US6931562B1 (en) | 2001-08-23 | 2005-08-16 | Hewlett-Packard Development Company, L.P. | System and method for transferring data from a higher frequency clock domain to a lower frequency clock domain |
US7145903B2 (en) * | 2001-09-06 | 2006-12-05 | Meshnetworks, Inc. | Multi-master bus architecture for system-on-chip designs |
US7313740B2 (en) * | 2002-07-25 | 2007-12-25 | Inapac Technology, Inc. | Internally generating patterns for testing in an integrated circuit device |
US8286046B2 (en) * | 2001-09-28 | 2012-10-09 | Rambus Inc. | Integrated circuit testing module including signal shaping interface |
US7265570B2 (en) * | 2001-09-28 | 2007-09-04 | Inapac Technology, Inc. | Integrated circuit testing module |
US6804632B2 (en) * | 2001-12-06 | 2004-10-12 | Intel Corporation | Distribution of processing activity across processing hardware based on power consumption considerations |
US6883102B2 (en) * | 2001-12-18 | 2005-04-19 | Arm Limited | Apparatus and method for performing power management functions |
US6586971B1 (en) * | 2001-12-18 | 2003-07-01 | Hewlett-Packard Development Company, L.P. | Adapting VLSI clocking to short term voltage transients |
US6877057B2 (en) * | 2002-01-25 | 2005-04-05 | Dell Products L.P. | Information handling system with dynamic interrupt allocation apparatus and methodology |
US7123155B2 (en) * | 2002-04-05 | 2006-10-17 | Hewlett-Packard Development Company, L.P. | Operational mode-based battery monitoring for a battery-powered electronic device |
JP4031671B2 (en) | 2002-06-11 | 2008-01-09 | 松下電器産業株式会社 | Clock recovery circuit |
JP2004021574A (en) * | 2002-06-17 | 2004-01-22 | Hitachi Ltd | Semiconductor device |
US7561855B2 (en) * | 2002-06-25 | 2009-07-14 | Finisar Corporation | Transceiver module and integrated circuit with clock and data recovery clock diplexing |
US7486894B2 (en) * | 2002-06-25 | 2009-02-03 | Finisar Corporation | Transceiver module and integrated circuit with dual eye openers |
TWI285302B (en) | 2002-07-26 | 2007-08-11 | Mstar Semiconductor Inc | Logic system with adaptive supply voltage control |
US6908227B2 (en) * | 2002-08-23 | 2005-06-21 | Intel Corporation | Apparatus for thermal management of multiple core microprocessors |
KR100486256B1 (en) | 2002-09-04 | 2005-05-03 | 삼성전자주식회사 | Semiconductor memory device comprising duty cycle correction circuit and circuit of interpolating clock signals in the semiconductor memory device |
JP3905005B2 (en) * | 2002-09-18 | 2007-04-18 | 富士通株式会社 | Portable device and semiconductor integrated circuit device |
US7149862B2 (en) * | 2002-11-18 | 2006-12-12 | Arm Limited | Access control in a data processing apparatus |
US7309999B2 (en) * | 2002-11-27 | 2007-12-18 | Inapac Technology, Inc. | Electronic device having an interface supported testing mode |
US7010713B2 (en) | 2002-12-19 | 2006-03-07 | Mosaid Technologies, Inc. | Synchronization circuit and method with transparent latches |
US7305253B2 (en) | 2002-12-19 | 2007-12-04 | Sony Ericsson Mobile Communications Ab | Combination audio/charger jack |
US7505541B1 (en) * | 2003-01-17 | 2009-03-17 | Xilinx, Inc. | NRZ/PAM-4/PRML triple mode phase and data detector |
US6956923B1 (en) * | 2003-01-17 | 2005-10-18 | Xilinx, Inc. | High speed phase detector architecture |
US6941232B2 (en) * | 2003-01-28 | 2005-09-06 | Texas Instruments Incorporated | Method and apparatus for performing multi-site integrated circuit device testing |
US7565531B2 (en) * | 2003-05-13 | 2009-07-21 | Chi-Chian Yu | Locking programming interface |
US7711617B2 (en) | 2003-07-11 | 2010-05-04 | Finanalytica, Inc. | System and method for providing optimization of a financial portfolio using a parametric leptokurtic distribution |
US6995621B1 (en) | 2003-09-17 | 2006-02-07 | Hewlett-Packard Development Company, L.P. | On-chip variable oscillator method and apparatus |
US7197652B2 (en) * | 2003-12-22 | 2007-03-27 | International Business Machines Corporation | Method and system for energy management in a simultaneous multi-threaded (SMT) processing system including per-thread device usage monitoring |
WO2005088424A2 (en) | 2004-03-10 | 2005-09-22 | Koninklijke Philips Electronics N.V. | Calibration of clock generators in system-on-chip integrated circuits |
US8095813B2 (en) * | 2004-03-22 | 2012-01-10 | Integrated Device Technology, Inc | Integrated circuit systems having processor-controlled clock signal generators therein that support efficient power management |
US7213172B2 (en) * | 2004-03-31 | 2007-05-01 | Intel Corporation | Debugging power management |
US20050257016A1 (en) * | 2004-05-17 | 2005-11-17 | Brian Boles | Digital signal controller secure memory partitioning |
JP3805344B2 (en) * | 2004-06-22 | 2006-08-02 | 株式会社ソニー・コンピュータエンタテインメント | Processor, information processing apparatus and processor control method |
US20060049886A1 (en) | 2004-09-08 | 2006-03-09 | Agostinelli Victor M Jr | On-die record-of-age circuit |
US7975155B2 (en) * | 2004-09-10 | 2011-07-05 | Freescale Semiconductor, Inc. | Apparatus and method for controlling voltage and frequency |
US7773964B2 (en) * | 2004-10-25 | 2010-08-10 | Qualcomm Incorporated | Systems, methods and apparatus for determining a radiated performance of a wireless device |
US7129763B1 (en) | 2004-11-08 | 2006-10-31 | Western Digital Technologies, Inc. | Adjusting power consumption of digital circuitry by generating frequency error representing error in propagation delay |
US7199607B2 (en) | 2004-12-22 | 2007-04-03 | Infineon Technologies Ag | Pin multiplexing |
US7149645B2 (en) * | 2004-12-30 | 2006-12-12 | Intel Corporation | Method and apparatus for accurate on-die temperature measurement |
JP2006236064A (en) * | 2005-02-25 | 2006-09-07 | Oki Electric Ind Co Ltd | Memory control device and memory system |
CN101185262B (en) * | 2005-03-30 | 2011-04-20 | 飞思卡尔半导体公司 | Method and equipment for transmitting a sequence of transmission burst |
US7219175B1 (en) | 2005-03-31 | 2007-05-15 | Emc Corporation | Method and system for improving the latency in a data transmission system |
US7558984B2 (en) * | 2005-04-27 | 2009-07-07 | Texas Instruments Incorporated | Apparatus and method for test and debug of a processor/core having advanced power management |
US7813459B2 (en) | 2005-10-03 | 2010-10-12 | Spansion Llc | Digital data transfer between different clock domains |
JP4520394B2 (en) | 2005-10-27 | 2010-08-04 | ルネサスエレクトロニクス株式会社 | DLL circuit and test method thereof |
US7417482B2 (en) | 2005-10-31 | 2008-08-26 | Qualcomm Incorporated | Adaptive voltage scaling for an electronics device |
US7444528B2 (en) * | 2005-12-06 | 2008-10-28 | Intel Corporation | Component reliability budgeting system |
US7592876B2 (en) * | 2005-12-08 | 2009-09-22 | Intel Corporation | Leakage oscillator based aging monitor |
US7925899B2 (en) * | 2005-12-29 | 2011-04-12 | Intel Corporation | Method, system, and apparatus for runtime power estimation |
US8181051B2 (en) * | 2006-02-09 | 2012-05-15 | Freescale Semiconductor, Inc. | Electronic apparatus and method of conserving energy |
US8074110B2 (en) * | 2006-02-28 | 2011-12-06 | Intel Corporation | Enhancing reliability of a many-core processor |
US7716511B2 (en) * | 2006-03-08 | 2010-05-11 | Freescale Semiconductor, Inc. | Dynamic timing adjustment in a circuit device |
US8656143B2 (en) * | 2006-03-13 | 2014-02-18 | Laurence H. Cooke | Variable clocked heterogeneous serial array processor |
US7902654B2 (en) * | 2006-05-10 | 2011-03-08 | Qualcomm Incorporated | System and method of silicon switched power delivery using a package |
US7987358B1 (en) * | 2006-06-09 | 2011-07-26 | Xilinx, Inc. | Methods of authenticating a user design in a programmable integrated circuit |
US7589435B2 (en) * | 2006-08-02 | 2009-09-15 | Cisco Technology, Inc. | Reporting power requirements of a powered device |
TW200809748A (en) * | 2006-08-09 | 2008-02-16 | Ind Tech Res Inst | Method for simulating circuit reliability and system thereof |
US7887235B2 (en) * | 2006-08-30 | 2011-02-15 | Freescale Semiconductor, Inc. | Multiple sensor thermal management for electronic devices |
US20080068100A1 (en) | 2006-09-12 | 2008-03-20 | Goodnow Kenneth J | Power management architecture and method of modulating oscillator frequency based on voltage supply |
US20080126652A1 (en) * | 2006-09-27 | 2008-05-29 | Intel Corporation | Managing Interrupts in a Partitioned Platform |
JP4907312B2 (en) * | 2006-11-28 | 2012-03-28 | ユニデン株式会社 | Constant voltage constant current power supply |
US7793119B2 (en) * | 2006-12-21 | 2010-09-07 | Texas Instruments Incorporated | Adaptive voltage scaling with age compensation |
JP5023695B2 (en) * | 2006-12-27 | 2012-09-12 | 富士通株式会社 | Electronic file system, operation device, and computer program |
US8412981B2 (en) * | 2006-12-29 | 2013-04-02 | Intel Corporation | Core sparing on multi-core platforms |
JP4623683B2 (en) * | 2007-01-16 | 2011-02-02 | パナソニック株式会社 | Integrated circuit device, operation control method of integrated circuit device, and manufacturing method of integrated circuit device |
DE102007009525B4 (en) | 2007-02-27 | 2008-11-27 | Infineon Technologies Ag | Concept for generating a supply voltage-dependent clock signal |
US20080222581A1 (en) * | 2007-03-09 | 2008-09-11 | Mips Technologies, Inc. | Remote Interface for Managing the Design and Configuration of an Integrated Circuit Semiconductor Design |
US7761268B2 (en) * | 2007-05-02 | 2010-07-20 | National Changua University of Education | Non-linear transient analysis module and method for phase locked loop |
US8175545B2 (en) * | 2007-05-17 | 2012-05-08 | Broadcom Corporation | Communication devices with integrated thermal sensing circuit and methods for use therewith |
US20080307240A1 (en) * | 2007-06-08 | 2008-12-11 | Texas Instruments Incorporated | Power management electronic circuits, systems, and methods and processes of manufacture |
US8122232B2 (en) * | 2007-06-21 | 2012-02-21 | Arm Limited | Self programming slave device controller |
US8045670B2 (en) * | 2007-06-22 | 2011-10-25 | Texas Instruments Incorporated | Interpolative all-digital phase locked loop |
US20090049314A1 (en) * | 2007-08-13 | 2009-02-19 | Ali Taha | Method and System for Dynamic Voltage and Frequency Scaling (DVFS) |
US7886172B2 (en) * | 2007-08-27 | 2011-02-08 | International Business Machines Corporation | Method of virtualization and OS-level thermal management and multithreaded processor with virtualization and OS-level thermal management |
US7934110B2 (en) * | 2007-09-25 | 2011-04-26 | Intel Corporation | Dynamically managing thermal levels in a processing system |
US8331898B2 (en) * | 2007-10-03 | 2012-12-11 | Texas Instruments Incorporated | Power-saving receiver circuits, systems and processes |
US7778345B2 (en) * | 2007-11-07 | 2010-08-17 | Texas Instruments Incorporated | Distortion compensation in a communication system |
US8635380B2 (en) * | 2007-12-20 | 2014-01-21 | Intel Corporation | Method, system and apparatus for handling events for partitions in a socket with sub-socket partitioning |
US7971084B2 (en) * | 2007-12-28 | 2011-06-28 | Intel Corporation | Power management in electronic systems |
US8176352B2 (en) | 2008-04-16 | 2012-05-08 | Adavanced Micro Devices, Inc. | Clock domain data transfer device and methods thereof |
US8134411B2 (en) * | 2008-04-17 | 2012-03-13 | Texas Instruments Incorporated | Computation spreading utilizing dithering for spur reduction in a digital phase lock loop |
US8090965B1 (en) * | 2008-04-17 | 2012-01-03 | Lsi Corporation | System and method for testing memory power management modes in an integrated circuit |
KR101460665B1 (en) * | 2008-07-16 | 2014-11-12 | 삼성전자주식회사 | SoC DEVICE VERIFICATION MODEL USING MEMORY INTERFACE |
US8306174B2 (en) * | 2008-07-30 | 2012-11-06 | Texas Instruments Incorporated | Fractional interpolative timing advance and retard control in a transceiver |
US8274903B2 (en) | 2008-08-20 | 2012-09-25 | Qualcomm Incorporated | Methods and apparatus for switching between a base channel and a 60 GHz channel |
US8051467B2 (en) * | 2008-08-26 | 2011-11-01 | Atmel Corporation | Secure information processing |
JP5384910B2 (en) | 2008-11-11 | 2014-01-08 | ルネサスエレクトロニクス株式会社 | Semiconductor integrated circuit and clock synchronization control method |
FR2938552B1 (en) | 2008-11-19 | 2010-12-03 | Gervais Danone Sa | HYPOCHOLESTEROLEMIANT STRAIN OF LACTOBACILLUS DELBRUECKII |
US8558626B2 (en) * | 2008-11-24 | 2013-10-15 | Freescale Semiconductor, Inc. | Method and apparatus for generating a clock signal |
US9189049B2 (en) * | 2008-12-24 | 2015-11-17 | Stmicroelectronics International N.V. | Power management in a device |
US8081003B2 (en) * | 2009-02-02 | 2011-12-20 | Infineon Technologies Ag | Circuit arrangement with a test circuit and a reference circuit and corresponding method |
US8190931B2 (en) * | 2009-04-30 | 2012-05-29 | Texas Instruments Incorporated | Power management events profiling |
US8129953B2 (en) * | 2009-08-04 | 2012-03-06 | Broadcom Corporation | Power management unit for a wireless device |
US8477631B2 (en) * | 2009-08-25 | 2013-07-02 | Texas Instruments Incorporated | Dynamic low power radio modes |
US20110138395A1 (en) * | 2009-12-08 | 2011-06-09 | Empire Technology Development Llc | Thermal management in multi-core processor |
US8008961B2 (en) | 2009-12-14 | 2011-08-30 | Qualcomm Incorporated | Adaptive clock generators, systems, and methods |
US8887171B2 (en) * | 2009-12-28 | 2014-11-11 | Intel Corporation | Mechanisms to avoid inefficient core hopping and provide hardware assisted low-power state selection |
US9235251B2 (en) * | 2010-01-11 | 2016-01-12 | Qualcomm Incorporated | Dynamic low power mode implementation for computing devices |
US8198868B2 (en) * | 2010-01-20 | 2012-06-12 | Broadcom Corporation | Power management unit for a wireless device |
US20110181315A1 (en) | 2010-01-25 | 2011-07-28 | Broadcom Corporation | Adaptive Device Aging Monitoring and Compensation |
WO2011093003A1 (en) | 2010-01-29 | 2011-08-04 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor memory device |
US8595731B2 (en) * | 2010-02-02 | 2013-11-26 | International Business Machines Corporation | Low overhead dynamic thermal management in many-core cluster architecture |
US8466707B2 (en) * | 2010-03-03 | 2013-06-18 | Qualcomm Incorporated | Method and apparatus for testing a memory device |
US8549630B2 (en) * | 2010-03-05 | 2013-10-01 | The Regents Of The University Of California | Trojan-resistant bus architecture and methods |
US8354875B2 (en) * | 2010-03-25 | 2013-01-15 | Qualcomm Incorporated | Low voltage temperature sensor and use thereof for autonomous multiprobe measurement device |
US20110265090A1 (en) * | 2010-04-22 | 2011-10-27 | Moyer William C | Multiple core data processor with usage monitoring |
US8370667B2 (en) * | 2010-12-22 | 2013-02-05 | Intel Corporation | System context saving based on compression/decompression time |
JP5633580B2 (en) | 2010-12-24 | 2014-12-03 | 富士通株式会社 | Storage device, control device, and control method |
US8463970B2 (en) * | 2011-01-04 | 2013-06-11 | Qualcomm Incorporated | Method and system for managing sleep states of interrupt controllers in a portable computing device |
US9043665B2 (en) * | 2011-03-09 | 2015-05-26 | Intel Corporation | Functional fabric based test wrapper for circuit testing of IP blocks |
US8782645B2 (en) * | 2011-05-11 | 2014-07-15 | Advanced Micro Devices, Inc. | Automatic load balancing for heterogeneous cores |
US8667128B2 (en) * | 2011-05-17 | 2014-03-04 | Apple Inc. | Collecting information regarding electronic aging of products |
US8671170B2 (en) * | 2011-05-17 | 2014-03-11 | Apple Inc. | Modifying operating parameters of a device based on aging information |
US8578143B2 (en) * | 2011-05-17 | 2013-11-05 | Apple Inc. | Modifying operating parameters based on device use |
US8583844B2 (en) * | 2011-05-31 | 2013-11-12 | Lsi Corporation | System and method for optimizing slave transaction ID width based on sparse connection in multilayer multilevel interconnect system-on-chip architecture |
US20130007492A1 (en) * | 2011-06-30 | 2013-01-03 | Sokol Jr Joseph | Timer interrupt latency |
US8575993B2 (en) | 2011-08-17 | 2013-11-05 | Broadcom Corporation | Integrated circuit with pre-heating for reduced subthreshold leakage |
-
2011
- 2011-09-28 US US13/247,694 patent/US8575993B2/en active Active
- 2011-09-28 US US13/247,295 patent/US8954017B2/en active Active
- 2011-09-29 US US13/249,057 patent/US8782314B2/en active Active
- 2011-09-30 US US13/250,529 patent/US8650633B2/en active Active
- 2011-11-23 US US13/303,922 patent/US9160348B2/en active Active
- 2011-12-20 US US13/331,796 patent/US8810300B2/en active Active
- 2011-12-20 US US13/331,765 patent/US8823447B2/en not_active Expired - Fee Related
- 2011-12-20 US US13/331,874 patent/US9312862B2/en active Active
- 2011-12-27 US US13/338,001 patent/US9225343B2/en active Active
- 2011-12-30 US US13/340,873 patent/US8744368B2/en active Active
- 2011-12-30 US US13/341,787 patent/US8745724B2/en active Active
- 2011-12-30 US US13/341,748 patent/US9407272B2/en active Active
-
2012
- 2012-04-02 US US13/437,675 patent/US8856559B2/en not_active Expired - Fee Related
- 2012-06-26 US US13/533,480 patent/US20130046967A1/en not_active Abandoned
- 2012-08-17 WO PCT/US2012/051477 patent/WO2013026039A2/en active Application Filing
- 2012-08-17 WO PCT/US2012/051479 patent/WO2013026040A1/en active Application Filing
- 2012-08-17 WO PCT/US2012/051451 patent/WO2013026032A1/en active Application Filing
-
2013
- 2013-09-30 US US14/041,505 patent/US9209816B2/en active Active
-
2014
- 2014-07-02 US US14/322,758 patent/US9312863B2/en active Active
-
2016
- 2016-04-11 US US15/095,439 patent/US10033391B2/en active Active
-
2018
- 2018-06-25 US US16/017,421 patent/US10804906B2/en active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5339445A (en) * | 1992-11-16 | 1994-08-16 | Harris Corporation | Method of autonomously reducing power consumption in a computer sytem by compiling a history of power consumption |
US5564015A (en) * | 1994-05-12 | 1996-10-08 | Ast Research, Inc. | CPU activity monitoring through cache watching |
US5825674A (en) * | 1995-09-29 | 1998-10-20 | Intel Corporation | Power control for mobile electronics using no-operation instructions |
US20100191977A1 (en) * | 2001-08-10 | 2010-07-29 | Peter Landrock | Data certification method and apparatus |
US20050246499A1 (en) * | 2004-04-30 | 2005-11-03 | Nec Corporation | Cache memory with the number of operated ways being changed according to access pattern |
US20090287948A1 (en) * | 2004-09-03 | 2009-11-19 | Chary Ram V | Context based power management |
US20060123253A1 (en) * | 2004-12-07 | 2006-06-08 | Morgan Bryan C | System and method for adaptive power management |
US20110001358A1 (en) * | 2005-08-25 | 2011-01-06 | Conroy David G | Methods and apparatuses for dynamic power control |
US20090237033A1 (en) * | 2006-05-30 | 2009-09-24 | Hideyuki Kanzaki | Battery driving device, load control method, integrated circuit and load control program |
US20080059823A1 (en) * | 2006-08-31 | 2008-03-06 | Ati Technologies Inc. | Battery-powered device with reduced power consumption and method thereof |
US20110125343A1 (en) * | 2008-06-05 | 2011-05-26 | Udo Doebrich | Method for Operating a Modular Automation Device |
US20100145643A1 (en) * | 2008-12-04 | 2010-06-10 | Concert Technology Corporation | User-controlled application-based power management |
US20120151240A1 (en) * | 2009-07-10 | 2012-06-14 | Protonex Technology Corporation | Portable power manager |
US20110040990A1 (en) * | 2009-08-14 | 2011-02-17 | Google Inc. | Providing A User With Feedback Regarding Power Consumption In Battery-Operated Electronic Devices |
US20110239015A1 (en) * | 2010-03-25 | 2011-09-29 | International Business Machines Corporation | Allocating Computing System Power Levels Responsive to Service Level Agreements |
US20110314306A1 (en) * | 2010-06-21 | 2011-12-22 | Industrial Technology Research Institute | Performance scaling device, processor having the same, and performance scaling method thereof |
US20120032894A1 (en) * | 2010-08-06 | 2012-02-09 | Nima Parivar | Intelligent management for an electronic device |
US20120210325A1 (en) * | 2011-02-10 | 2012-08-16 | Alcatel-Lucent Usa Inc. | Method And Apparatus Of Smart Power Management For Mobile Communication Terminals Using Power Thresholds |
US20120173907A1 (en) * | 2011-12-30 | 2012-07-05 | Jaideep Moses | Method, apparatus, and system for energy efficiency and energy conservation including dynamic c0-state cache resizing |
US20130257583A1 (en) * | 2012-03-29 | 2013-10-03 | Motorola Mobility, Inc. | Wireless communication device and method with ultrasonic detection |
Cited By (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150198996A1 (en) * | 2012-03-15 | 2015-07-16 | Google Inc. | Dynamically adjustable power usage |
US20130262654A1 (en) * | 2012-03-28 | 2013-10-03 | Sony Corporation | Resource management system with resource optimization mechanism and method of operation thereof |
US20130275353A1 (en) * | 2012-04-16 | 2013-10-17 | Apple Inc. | Systems and methods for selecting media items |
US10911872B2 (en) | 2012-06-05 | 2021-02-02 | Apple Inc. | Context-aware voice guidance |
US10718625B2 (en) | 2012-06-05 | 2020-07-21 | Apple Inc. | Voice instructions during navigation |
US10318104B2 (en) | 2012-06-05 | 2019-06-11 | Apple Inc. | Navigation application with adaptive instruction text |
US10323701B2 (en) | 2012-06-05 | 2019-06-18 | Apple Inc. | Rendering road signs during navigation |
US10018478B2 (en) | 2012-06-05 | 2018-07-10 | Apple Inc. | Voice instructions during navigation |
US10006505B2 (en) | 2012-06-05 | 2018-06-26 | Apple Inc. | Rendering road signs during navigation |
US11727641B2 (en) | 2012-06-05 | 2023-08-15 | Apple Inc. | Problem reporting in maps |
US11290820B2 (en) | 2012-06-05 | 2022-03-29 | Apple Inc. | Voice instructions during navigation |
US11082773B2 (en) | 2012-06-05 | 2021-08-03 | Apple Inc. | Context-aware voice guidance |
US11055912B2 (en) | 2012-06-05 | 2021-07-06 | Apple Inc. | Problem reporting in maps |
US9997069B2 (en) | 2012-06-05 | 2018-06-12 | Apple Inc. | Context-aware voice guidance |
US10156455B2 (en) | 2012-06-05 | 2018-12-18 | Apple Inc. | Context-aware voice guidance |
US9903732B2 (en) * | 2012-06-05 | 2018-02-27 | Apple Inc. | Providing navigation instructions while device is in locked mode |
US10732003B2 (en) | 2012-06-05 | 2020-08-04 | Apple Inc. | Voice instructions during navigation |
US20160216127A1 (en) * | 2012-06-05 | 2016-07-28 | Apple Inc. | Providing navigation instructions while device is in locked mode |
US9886794B2 (en) | 2012-06-05 | 2018-02-06 | Apple Inc. | Problem reporting in maps |
US9880019B2 (en) | 2012-06-05 | 2018-01-30 | Apple Inc. | Generation of intersection information by a mapping service |
US9243924B2 (en) * | 2012-06-05 | 2016-01-26 | Apple Inc. | Providing navigation instructions while device is in locked mode |
US10508926B2 (en) | 2012-06-05 | 2019-12-17 | Apple Inc. | Providing navigation instructions while device is in locked mode |
US9621245B2 (en) | 2012-06-08 | 2017-04-11 | Apple Inc. | Facilitating switching between transmitting antennas in portable electronic devices |
US10425137B2 (en) | 2012-06-08 | 2019-09-24 | Apple Inc. | Facilitating switching between transmitting antennas in portable electronic devices |
US20140128021A1 (en) * | 2012-10-26 | 2014-05-08 | Lookout, Inc. | System and method for using context models to control operation of a mobile communications device |
US9769749B2 (en) | 2012-10-26 | 2017-09-19 | Lookout, Inc. | Modifying mobile device settings for resource conservation |
US9408143B2 (en) * | 2012-10-26 | 2016-08-02 | Lookout, Inc. | System and method for using context models to control operation of a mobile communications device |
US20140118406A1 (en) * | 2012-10-30 | 2014-05-01 | Renesas Sp Drivers Inc. | Display control device and data processing system |
US9542721B2 (en) * | 2012-10-30 | 2017-01-10 | Synaptics Japan Gk | Display control device and data processing system |
US20140177495A1 (en) * | 2012-12-21 | 2014-06-26 | Apple Inc. | Controlling a power state of a cellular packet data subsystem in a portable electronic device |
US9451551B2 (en) * | 2012-12-21 | 2016-09-20 | Apple Inc. | Controlling a power state of a cellular packet data subsystem in a portable electronic device |
US10175739B2 (en) * | 2013-01-29 | 2019-01-08 | Avago Technologies International Sales Pte. Limited | Wearable device-aware supervised power management for mobile platforms |
US10915156B2 (en) | 2013-01-29 | 2021-02-09 | Avago Technologies International Sales Pte. Limited | Wearable device-aware supervised power management for mobile platforms |
US20140215242A1 (en) * | 2013-01-29 | 2014-07-31 | Broadcom Corporation | Wearable Device-Aware Supervised Power Management for Mobile Platforms |
US10409353B2 (en) * | 2013-04-17 | 2019-09-10 | Qualcomm Incorporated | Dynamic clock voltage scaling (DCVS) based on application performance in a system-on-a-chip (SOC), and related methods and processor-based systems |
US20160147284A1 (en) * | 2013-07-22 | 2016-05-26 | Samsung Electronics Co., Ltd. | Method and apparatus for controlling display of electronic device |
US10496151B2 (en) * | 2013-07-22 | 2019-12-03 | Samsung Electronics Co., Ltd. | Method and apparatus for controlling display of electronic device |
US9703355B2 (en) * | 2013-08-28 | 2017-07-11 | Qualcomm Incorporated | Method, devices and systems for dynamic multimedia data flow control for thermal power budgeting |
US20150067377A1 (en) * | 2013-08-28 | 2015-03-05 | Qualcomm Incorporated | Method, Devices and Systems for Dynamic Multimedia Data Flow Control for Thermal Power Budgeting |
US20150220129A1 (en) * | 2014-02-05 | 2015-08-06 | Fujitsu Limited | Information processing apparatus, information processing system and control method for information processing system |
US9710047B2 (en) * | 2014-02-05 | 2017-07-18 | Fujitsu Limited | Apparatus, system, and method for varying a clock frequency or voltage during a memory page transfer |
US20150338906A1 (en) * | 2014-05-20 | 2015-11-26 | Canon Kabushiki Kaisha | Information processing apparatus, control method for information processing apparatus, and non-transitory computer-readable medium |
US10228749B2 (en) * | 2014-05-20 | 2019-03-12 | Canon Kabushiki Kaisha | Power saving apparatus, method, and non-transitory computer-readable medium using a pre-calculated SNMP getnext request correspondence table |
CN106415438A (en) * | 2014-06-12 | 2017-02-15 | 超威半导体公司 | Memory controller power management based on latency |
EP3155499A4 (en) * | 2014-06-12 | 2018-05-02 | Advanced Micro Devices, Inc. | Memory controller power management based on latency |
WO2015191860A1 (en) * | 2014-06-12 | 2015-12-17 | Advanced Micro Devices, Inc. | Memory controller power management based on latency |
US20160011962A1 (en) * | 2014-07-12 | 2016-01-14 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Allocating memory usage based on voltage regulator efficiency |
US9367442B2 (en) * | 2014-07-12 | 2016-06-14 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Allocating memory usage based on voltage regulator efficiency |
US10079906B2 (en) * | 2014-07-16 | 2018-09-18 | Comcast Cable Communications, Llc | Device mode settings to provide an enhanced user experience |
US10652348B2 (en) | 2014-07-16 | 2020-05-12 | Comcast Cable Communications, Llc | Device mode settings to provide an enhanced user experience |
US20160021208A1 (en) * | 2014-07-16 | 2016-01-21 | Comcast Cable Communications, Llc | Device Mode Settings to Provide An Enhanced User Experience |
US20160091950A1 (en) * | 2014-09-26 | 2016-03-31 | Apple Inc. | Peak current management |
US9967417B2 (en) * | 2015-01-21 | 2018-05-08 | Canon Kabushiki Kaisha | Managing apparatus power states |
US11671919B2 (en) | 2015-05-08 | 2023-06-06 | Honor Device Co., Ltd. | Setting information configuration method, terminal, and server |
US20160370843A1 (en) * | 2015-06-16 | 2016-12-22 | Dell Products, Lp | Method and Apparatus for Customized Energy Policy based on Energy Demand Estimation for Client Systems |
US10234926B2 (en) * | 2015-06-16 | 2019-03-19 | Dell Products, Lp | Method and apparatus for customized energy policy based on energy demand estimation for client systems |
US20170193884A1 (en) * | 2015-07-20 | 2017-07-06 | Boe Technology Group Co., Ltd. | Display device and driving method and driving module |
US10552219B2 (en) | 2016-02-19 | 2020-02-04 | Microsoft Technology Licensing, Llc | Computing resource management of computing devices |
US10928877B2 (en) * | 2016-03-10 | 2021-02-23 | Korea Advanced Institute Of Science & Technology | Communication device for predicting power consumption of mobile application, communication system including same, method of predicting power consumption of mobile application and method of providing predicted power consumption of mobile application, using same |
US20190101968A1 (en) * | 2016-03-10 | 2019-04-04 | Korea Advanced Institute Of Science And Technology | Communication device for predicting power consumption of mobile application, communication system including same, method of predicting power consumption of mobile application and method of providing predicted power consumption of mobile application, using same |
US11199896B2 (en) * | 2017-11-21 | 2021-12-14 | Google Llc | Low-power ambient computing system with machine learning |
US20220066536A1 (en) * | 2017-11-21 | 2022-03-03 | Google Llc | Low-power ambient computing system with machine learning |
US11714477B2 (en) * | 2017-11-21 | 2023-08-01 | Google Llc | Low-power ambient computing system with machine learning |
US10996733B2 (en) * | 2017-11-30 | 2021-05-04 | Samsung Electronics Co., Ltd. | Apparatus and method for managing power consumption in electronic device |
US20190163250A1 (en) * | 2017-11-30 | 2019-05-30 | Samsung Electronics Co., Ltd | Apparatus and method for managing power consumption in electronic device |
US11604504B2 (en) * | 2017-12-15 | 2023-03-14 | Tahoe Research, Ltd. | Power governance of processing unit |
US11422818B2 (en) * | 2018-08-06 | 2022-08-23 | Institute for Interdisciplinary Information Core Technology (Xi'an) Co., Ltd. | Energy management system and method, electronic device, electronic apparatus, and nonvolatile processor |
US20200142460A1 (en) * | 2018-11-06 | 2020-05-07 | International Business Machines Corporation | Device-to-device wireless power transfer to provide content display continuity |
US10969843B2 (en) * | 2018-11-06 | 2021-04-06 | International Business Machines Corporation | Device-to-device wireless power transfer to provide content display continuity |
US11567555B2 (en) * | 2019-08-30 | 2023-01-31 | Intel Corporation | Software assisted power management |
US11843939B2 (en) * | 2020-12-16 | 2023-12-12 | Itron, Inc. | Secure messaging for outage events |
US11592894B2 (en) * | 2021-04-12 | 2023-02-28 | Dell Products L.P. | Increasing power efficiency for an information handling system |
US20220326758A1 (en) * | 2021-04-12 | 2022-10-13 | Dell Products L.P. | Increasing power efficiency for an information handling system |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20130046967A1 (en) | Proactive Power Management Using a Power Management Unit | |
KR101827666B1 (en) | Energy efficiency aware thermal management in a multi-processor system on a chip | |
US8695008B2 (en) | Method and system for dynamically controlling power to multiple cores in a multicore processor of a portable computing device | |
US8935547B2 (en) | Method and apparatus for user-activity-based dynamic power management and policy creation for mobile platforms | |
US10339023B2 (en) | Cache-aware adaptive thread scheduling and migration | |
KR101726339B1 (en) | Method and apparatus for controlling a storage device | |
KR102078180B1 (en) | Appratus and method for controlling state mode in an wireless terminal | |
KR101529016B1 (en) | Multi-core system energy consumption optimization | |
JP2012123824A (en) | Context based power management | |
EP3332306B1 (en) | System and method for cache aware low power mode control in a portable computing device | |
CN109992393A (en) | Application processing method and device, electronic equipment, computer readable storage medium | |
US20230199049A1 (en) | Modifying content streaming based on device parameters | |
US20230046808A1 (en) | Volatile memory to non-volatile memory interface for power management | |
JP6240225B2 (en) | System and method for temperature-driven selection of voltage modes in portable computing devices | |
US10203749B2 (en) | Method and apparatus for saving power, including at least two power saving modes | |
CN109283995B (en) | Method and system for reducing power consumption of terminal user identification card of Internet of things | |
CN116028314B (en) | Temperature parameter reading method, electronic device, and computer-readable storage medium | |
TWI470402B (en) | Cpu working frequency control method for mobile devices | |
US20200285300A1 (en) | Activation control device, image forming apparatus, and method for controlling activation | |
US20160088520A1 (en) | Information processing device, communication apparatus, terminal, communication processing method, and non-transitory computer readable medium | |
CN117377037A (en) | Power-down prevention method and device for communication terminal, storage medium and communication terminal | |
TW201305797A (en) | Method for managing power in a portable device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: BROADCOM CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:FULLERTON, MARK;WALLEY, JOHN;JUNG, HWISUNG;SIGNING DATES FROM 20120622 TO 20120625;REEL/FRAME:028446/0414 |
|
AS | Assignment |
Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:037806/0001 Effective date: 20160201 Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:037806/0001 Effective date: 20160201 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:041706/0001 Effective date: 20170120 Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:041706/0001 Effective date: 20170120 |
|
AS | Assignment |
Owner name: BROADCOM CORPORATION, CALIFORNIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041712/0001 Effective date: 20170119 |