US20130046967A1 - Proactive Power Management Using a Power Management Unit - Google Patents

Proactive Power Management Using a Power Management Unit Download PDF

Info

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
Application number
US13/533,480
Inventor
Mark Fullerton
John Walley
Hwisung JUNG
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Broadcom Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Broadcom Corp filed Critical Broadcom Corp
Priority to US13/533,480 priority Critical patent/US20130046967A1/en
Assigned to BROADCOM CORPORATION reassignment BROADCOM CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: FULLERTON, MARK, JUNG, Hwisung, WALLEY, JOHN
Priority to PCT/US2012/051477 priority patent/WO2013026039A2/en
Publication of US20130046967A1 publication Critical patent/US20130046967A1/en
Assigned to BANK OF AMERICA, N.A., AS COLLATERAL AGENT reassignment BANK OF AMERICA, N.A., AS COLLATERAL AGENT PATENT SECURITY AGREEMENT Assignors: BROADCOM CORPORATION
Assigned to AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. reassignment AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BROADCOM CORPORATION
Assigned to BROADCOM CORPORATION reassignment BROADCOM CORPORATION TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Assignors: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION, OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/0802Details of the phase-locked loop the loop being adapted for reducing power consumption
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/027Generators 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/03Astable circuits
    • H03K3/0315Ring oscillators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/01Modifications for accelerating switching
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/027Generators 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/037Bistable circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/027Generators 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/037Bistable circuits
    • H03K3/0375Bistable 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/13Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
    • H03K5/133Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals using a chain of active delay devices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION, OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/085Details of the phase-locked loop concerning mainly the frequency- or phase-detection arrangement including the filtering or amplification of its output signal
    • H03L7/097Details 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION, OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/099Details of the phase-locked loop concerning mainly the controlled oscillator of the loop
    • H03L7/0995Details of the phase-locked loop concerning mainly the controlled oscillator of the loop the oscillator comprising a ring oscillator
    • H03L7/0997Controlling the number of delay elements connected in series in the ring oscillator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2924/00Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
    • H01L2924/0001Technical content checked by a classifier
    • H01L2924/0002Not covered by any one of groups H01L24/00, H01L24/00 and H01L2224/00
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K2005/00013Delay, i.e. output pulse is delayed after input pulse and pulse length of output pulse is dependent on pulse length of input pulse
    • H03K2005/00019Variable delay
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K2005/00013Delay, i.e. output pulse is delayed after input pulse and pulse length of output pulse is dependent on pulse length of input pulse
    • H03K2005/00019Variable delay
    • H03K2005/00026Variable delay controlled by an analog electrical signal, e.g. obtained after conversion by a D/A converter
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K2005/00013Delay, i.e. output pulse is delayed after input pulse and pulse length of output pulse is dependent on pulse length of input pulse
    • H03K2005/00019Variable delay
    • H03K2005/00058Variable 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

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 and estimates the total power required by each subsystem of the device. Based on this information, the PMU can predict power requirements for a particular subsystem or for one or more application(s) to execute. Based on this prediction, the PMU can reconfigure the subsystems so that the device executes more efficiently given the current battery life of 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 before battery resources are exhausted.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • 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.
  • FIELD OF THE INVENTION
  • This invention relates to power management and more specifically to power management units.
  • BACKGROUND
  • 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.
  • BRIEF DESCRIPTION OF THE DRAWINGS/FIGURES
  • 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.
  • DETAILED DESCRIPTION OF THE INVENTION
  • 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.
  • 1. OVERVIEW
  • 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.
  • 2. POWER MANAGEMENT SYSTEM
  • FIG. 1 is a block diagram of a device 100 incorporating a PMU 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 that device 100 can be any computer system that includes a PMU 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 in FIG. 1 by battery subsystem 104. For example, 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. For example, PMU 102 can receive information from one or more central processing units (CPUs), represented in FIG. 1 by CPU 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 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.
  • Additionally, the one or more processors (e.g., CPU 106 and video processor 108) 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. In an embodiment, PMU 102 also receives information from external memory subsystem 110. For example, in an embodiment, information regarding previous executions of applications can be stored in external memory 110, and PMU 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 of device 100, represented in FIG. 1 by display subsystem 112. For example, 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. 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 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. For example, in an embodiment, 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.
  • It should be understood that not all possible subsystems of device 100 are shown in FIG. 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 of CPU 106. As shown in FIG. 2, CPU 106 includes a processor core 200, a cache memory 202, and a bridge 206 that couples CPU 106 to external memory subsystem 110. It should be understood that while only one cache memory 202 is shown in FIG. 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 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. As previously discussed, 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.
  • The various elements of FIGS. 1-3 can be integrated onto one or more ICs. In an embodiment, the elements of FIG. 1 are integrated onto a single IC. In another embodiment, the elements of FIG. 1 are implemented on one or more separate ICs. For example, in an embodiment, PMU 102, CPU 106, video processor 108, and wireless subsystem 114 are implemented on a single IC.
  • 3. DEVICE RECONFIGURATION BASED ON POWER ESTIMATION
  • 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. Rather, in an embodiment, 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. In step 400, information from a plurality of subsystems of a device is received. For example, PMU 102 can receive information from CPU 106, video processor 108, and subsystems 104, 110, 112, 114, and 118. In step 402, power that will be required by one or more subsystems based on the information received is estimated. For example 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. For example, 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.
  • 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 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.
  • In another example of subsystem reconfiguration, 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.
  • In a further example, 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.
  • 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 running CPU 106 and/or video processor 108 more slowly can lead to additional power efficiency savings due to a decrease in leakage. If 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.
  • 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.
  • 4. RECONFIGURATION BASED ON APPLICATION POWER CONSUMPTION
  • 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. 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 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.
  • 4.1 Application Power Consumption Predictions
  • 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. In step 500, information from a plurality of subsystems of a device is received. For example, PMU 102 can receive information from CPU 106, video processor 108, and/or subsystems 104, 110, 112, 114, and 118.
  • 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 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. 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, 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.
  • 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 for display 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 of device 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 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.
  • 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 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.
  • 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 for display subsystem 112 during execution of the application. In an embodiment, 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. 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 for display subsystem 112 during execution of the application.
  • In step 508, one or more of the subsystems is reconfigured based on the estimated power in step 506. For example, when 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. 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 of device 100 should be reconfigured and/or redistributed so that the device has sufficient power to finish playing the video. Thus, in step 508, one or more of the subsystems of device 100 are reconfigured based on the estimated power from step 506. For example, 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.
  • 4.2 Power Distribution Prioritization
  • PMU 102 can determine how various subsystems of device 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 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. In step 600, 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.
  • In step, 602, 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. 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 instruct PMU 102 to lower the brightness, resolution, etc. of display 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 in step 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 for device 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 of FIG. 5) and the battery power available to device 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 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. 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 which device 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 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. In an embodiment, 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.
  • In an embodiment, PMU 102 ideally optimizes power to provide the most functionality that it is able to provide given the current battery life of device 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 for device 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 in step 604, PMU 102 can then optionally notify the user of the upcoming reconfigurations in step 606. For example, in an embodiment, 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. 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 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. Finally, in step 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 in step 610. PMU 102 can then optionally propose power savings options to the user in step 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 of device 100. For example, 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. 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.
  • 4.3 Additional Embodiments
  • 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 of device 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 using wireless subsystem 114, 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.
  • 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'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. For example, if 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. Alternatively, if 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.
  • 4.4 Recurring Power Prioritization
  • 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 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. In step 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. In step 702, each identified high priority subsystem and application is evaluated in turn to determine whether power supplied to device 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. In 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.
  • By periodically evaluating the power needs of subsystems and applications, 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.
  • 5. POWER ADJUSTMENTS BASED ON INPUTS FROM SENSORS
  • 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 by PMU 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 present near device 100 and/or how far a user is from device 100. In an embodiment, the proximity or range sensor can determined whether the user is within a predetermined range of device 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 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.
  • 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 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. For example, 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. Additionally, in an embodiment, 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).
  • 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, 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.
  • In another example, an accelerometer can inform PMU 102 when a user is walking. In such a case, 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. 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. In step 800, 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. In step 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 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. In step 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 to device 100.
  • In an embodiment, 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. For example, in the method of FIG. 6, when PMU 102 identifies one or more subsystems and/or applications to reconfigure in step 604 based on the power prioritization policy in step 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 when PMU 102 periodically determines whether power should be reallocated to subsystems and/or applications in the method of FIG. 7.
  • 6. POWER ADJUSTMENTS BASED ON CACHE MISSES
  • 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 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. For example, 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.
  • In an embodiment, 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. In an embodiment, PMU 102 can begin powering up a memory of external memory subsystem 110 when PMU 102 receives a cache miss signal. For example, 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. By keeping memories of external 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. 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. 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, 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.
  • 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 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. In an embodiment, 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. 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 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.
  • 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. If 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.
  • FIG. 9 is a flowchart of a method for reconfiguring a memory based on cache miss rates. In step 900, PMU 102 monitors a plurality of cache miss signals (e.g., sent by CPU 106). In step 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 of external memory subsystem 110 is increasing. In step 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 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).
  • In an embodiment, 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. For example, in the method of FIG. 6, when PMU 102 identifies one or more subsystems and/or applications to reconfigure in step 604 based on the power prioritization policy in step 604, 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. Additionally, for example, 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.
  • 7. POWER CONSUMPTION PREDICTIONS BASED PREVIOUS CODE EXECUTIONS
  • 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, 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.
  • 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., 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.
  • 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. In step 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. In step 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. In step 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 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.
  • Finally, in step 1008, subsystems of device 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., 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.
  • 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 of FIGS. 4-9 and 11. For example, in the method of FIG. 6, when PMU 102 identifies one or more subsystems and/or applications to reconfigure in step 604 based on the power prioritization policy in step 604, 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).
  • 8. ADJUSTING POWER SUPPLIED BASED ON CODE SIGNALS
  • In an embodiment, 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. For example, code for power consumption prediction (e.g., “energy hints”) can be inserted into the code of power-expensive programs or functions so that PMU 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 to PMU 102 informing PMU 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 give PMU 102 time to adjust power. NOPS periodically inserted into code can prevent a large, instantaneous burden from being placed on capacitors in device 100. Using energy hints, 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.
  • 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, 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. In an embodiment, 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. In step 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 notify PMU 102 of an upcoming increase in power consumption. When the energy hint code is executed, CPU 102 sends a signal to PMU 102. In step 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., 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.
  • In an embodiment, PMU 102 can use energy hints to assist in the reconfiguration of subsystems and applications when performing the methods of FIGS. 4-10. For example, in the method of FIG. 6, when PMU 102 identifies one or more subsystems and/or applications to reconfigure in step 604 based on the power prioritization policy in step 604, 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).
  • 9. EXAMPLE COMPUTER SYSTEM IMPLEMENTATION
  • 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 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.), can be implemented using one or more distinct computer systems 1200. Furthermore, 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). 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 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. 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 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.
  • 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 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 (also called computer control logic) 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.
  • 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).
  • 10. CONCLUSION
  • 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)

1. An apparatus comprising:
a power source;
a plurality of subsystems coupled to the power source, wherein the subsystems are configured to receive power from the power source; and
a power management unit (PMU) configured to manage distribution of power from the power source to the subsystems, wherein the PMU is further configured to:
receive information from the subsystems indicating power requirements of the subsystems;
predict power requirements for a first subsystem in the plurality of subsystems based on the information; and
reconfigure the first subsystem based on the predicted power requirements.
2. The apparatus of claim 1, wherein the subsystems include a sensor, and wherein the PMU is further configured to:
receive information from the sensor indicating the occurrence of an event; and
determine whether to reconfigure the first subsystem or a second subsystem in the plurality of subsystems based on the event.
3. The apparatus of claim 2, wherein the information indicates that no user is in the proximity of the apparatus, and wherein the PMU is further configured to reduce an amount of power supplied to the first subsystem in response to determining that no user is in the proximity of the apparatus.
4. The apparatus of claim 1, wherein the subsystems include:
a first memory; and
a processor having a cache memory, and wherein the PMU is further configured to:
monitor a plurality of cache miss signals received from the processor;
detect an increase or a decrease in an amount of cache miss signals associated with data stored in the first memory; and
determine whether to reconfigure the first memory or the cache memory based on the detected increase or decrease.
5. The apparatus of claim 4, wherein the PMU is further configured to:
increase an amount of power supplied to the first memory in response to detecting the increase in the amount of cache miss signals associated with data stored in the first memory; and
decrease the amount of power supplied to the first memory in response to detecting the decrease in the amount of cache miss signals associated with data stored in the first memory.
6. The apparatus of claim 1, wherein the PMU is further configured to:
generate a signature based on a pattern of access associated with a block of code;
access power consumption information stored in a table in memory;
determine whether an entry in the table matches the signature;
access power prediction information corresponding to the signature in response to determining that the entry matches the signature; and
determine whether to reconfigure the first subsystem or a second subsystem in the plurality of subsystems based on the power prediction information.
7. The apparatus of claim 6, wherein the signature is a hash of a plurality of addresses in memory accessed during execution of the block of code.
8. The apparatus of claim 1, wherein the PMU is further configured to:
detect a signal generated during an execution of a block of code, wherein the signal indicates upcoming power consumption needs of the block of code; and
determine whether to reconfigure the first subsystem or a second subsystem in the plurality of subsystems based on the signal.
9. The apparatus of claim 8, wherein the block of code includes energy hint code for notifying the PMU that power-expensive code is being executed, and wherein the signal is generated during execution of the energy hint code.
10. A communications device comprising:
a power source;
a plurality of subsystems configured to receive power from the power source; and
a power management unit (PMU) configured to manage distribution of power from the power source to the subsystems, wherein the PMU is further configured to:
receive information from the subsystems indicating power requirements of a plurality of applications;
access information stored after a previous execution of a first application in the plurality of applications;
predict power requirements for the first application based on the accessed information; and
reconfigure characteristics of the first application based on the predicted power requirements.
11. The communications device of claim 10, wherein the PMU is further configured to:
determine whether the communications device has sufficient power to finish executing the application; and
reconfigure characteristics of the first application in response to determining that the communications device does not have sufficient power to finish executing the application.
12. The communications device of claim 11, wherein the PMU is further configured to:
access a stored policy;
determine whether the policy contains instructions for reconfiguring the characteristics of the first application;
in response to determining that the policy contains instructions for reconfiguring the characteristics of the first application:
notify a user of the communications device of an upcoming reconfiguration of the characteristics of the first application, and
reconfigure the characteristics of the first application based on the stored policy; and
in response to determining that the policy does not contain instructions for reconfiguring the characteristics of the first application:
inform the user that the communications device has insufficient power to finish executing the application, and
propose a power saving option to the user.
13. The communications device of claim 10, wherein the PMU is further configured to:
determine a power mode of the communications device;
in response to determining that the communications device is operating in a lower power mode, periodically evaluate currently executing applications to determine whether the first application is a high priority application; and
in response to determining that the first application is a high priority application:
determine whether the communications device has sufficient power to finish executing the application, and
reconfigure characteristics of the first application in response to determining that the communications device does not have sufficient power to finish executing the application.
14. The communications device of claim 10, wherein the PMU is further configured to lower quality of a playing video in response to determining that the communications device has insufficient power to finish playing the video.
15. The communications device of claim 10, wherein the PMU is further configured to:
determine an amount of power available to a second device in communication with the communications device; and
reconfigure characteristics of the first application based on the amount of power available to the second device.
16. A method comprising:
receiving, at a power management unit of a device, information from a plurality of subsystems of the device indicating power requirements of the subsystems;
predicting power requirements for a first subsystem in the plurality of subsystems based on the information; and
reconfiguring the first subsystem based on the predicted power requirements.
17. The method of claim 16, further comprising:
receiving information from a sensor indicating the occurrence of an event; and
determining whether to reconfigure the first subsystem or a second subsystem in the plurality of subsystems based on the event.
18. The method of claim 16, further comprising:
monitoring a plurality of cache miss signals received from a processor having a cache memory;
detecting an increase or a decrease in an amount of cache miss signals associated with data stored in a first memory; and
determining whether to reconfigure the first memory or the cache memory based on the detected increase or decrease.
19. The method of claim 16, further comprising:
generating a signature based on a pattern of access associated with a block of code;
accessing power consumption information stored in a table in memory;
determining whether an entry in the table matches the signature;
accessing power prediction information corresponding to the signature in response to determining that the entry matches the signature; and
determining whether to reconfigure the first subsystem or a second subsystem in the plurality of subsystems based on the power prediction information.
20. The method of claim 16, further comprising:
detecting a signal generated during an execution of a block of code, wherein the signal indicates upcoming power consumption needs of the block of code; and
determining whether to reconfigure the first subsystem or a second subsystem in the plurality of subsystems based on the signal.
US13/533,480 2011-08-17 2012-06-26 Proactive Power Management Using a Power Management Unit Abandoned US20130046967A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (20)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Publication number Publication date
US8650633B2 (en) 2014-02-11
US20130044844A1 (en) 2013-02-21
US20160226498A1 (en) 2016-08-04
US20130047272A1 (en) 2013-02-21
US8575993B2 (en) 2013-11-05
US20130047166A1 (en) 2013-02-21
US20130047012A1 (en) 2013-02-21
WO2013026039A3 (en) 2014-05-08
US9407272B2 (en) 2016-08-02
US9209816B2 (en) 2015-12-08
US20130043939A1 (en) 2013-02-21
US8745724B2 (en) 2014-06-03
US8823447B2 (en) 2014-09-02
US9225343B2 (en) 2015-12-29
US20130043914A1 (en) 2013-02-21
US20180309455A1 (en) 2018-10-25
US20130047250A1 (en) 2013-02-21
US20140028344A1 (en) 2014-01-30
US20140312947A1 (en) 2014-10-23
US20130047000A1 (en) 2013-02-21
US10804906B2 (en) 2020-10-13
WO2013026032A1 (en) 2013-02-21
US8954017B2 (en) 2015-02-10
US10033391B2 (en) 2018-07-24
US8856559B2 (en) 2014-10-07
US9312863B2 (en) 2016-04-12
WO2013026040A8 (en) 2013-08-08
US9312862B2 (en) 2016-04-12
US8744368B2 (en) 2014-06-03
US20130043927A1 (en) 2013-02-21
WO2013026040A1 (en) 2013-02-21
US20130047023A1 (en) 2013-02-21
US8782314B2 (en) 2014-07-15
US20130043916A1 (en) 2013-02-21
US20130046915A1 (en) 2013-02-21
US9160348B2 (en) 2015-10-13
US20130045779A1 (en) 2013-02-21
US8810300B2 (en) 2014-08-19
WO2013026039A2 (en) 2013-02-21

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