Patent Description:
Voltage converters may react to changes in load in different ways based on their respect control architectures, but may, for example, implement actions such as altering the switching frequency in a switching power supply or by increasing pulse width modulation (PWM) on-time to deliver more energy to the load without compromising voltage levels. The most power-efficient power controllers are those that can react to changes in load the fastest by providing the quickest response to transient loads to keep the voltage at the load near the setpoint.

To help stabilize voltage at the load source, many systems include significant bulk capacitors near loads that exhibit high load transients. However, bulk capacitors consume already-limited circuit board surface area and add to system manufacturing costs. Additionally, depending on the load profile, achieving a target energy storage and impedance profile may limit peak loading below target levels if reliant on bulk capacitors. In other systems, power systems may inefficiently run certain component(s) at higher power than necessary most of the time in order to prevent system brown-outs. <CIT> relates to sensor-based occupancy and behavior prediction method for intelligently controlling energy consumption within a building. Sensing technology and a systems-identification approach are used to determine relationships between occupant behavior, device signatures and environmental cues. Occupant behavior includes parameters such as occupancy, mobility patterns, comfort preferences, and device usage. Device signatures include temporal/frequency patterns of voltage, current, and/or phase. Environmental cues include parameters such as temperature, humidity, carbon dioxide, illumination, and acoustics. The invention also uses pattern recognition and classification techniques to derive a sensor-based behavioral prediction algorithm reaching several hours into the future. This model-based prediction is used as a baseline for the development of control and optimization techniques. <CIT> relates to ambient lighting. An image or video rendering is accompanied with a concurrent controlled ambient lighting, comprising a color selector for selecting a color of the controlled ambient lighting in dependence on scene lighting information associated with the image or with at least one image of the video. Selecting the color of the ambient lighting independence on the lighting information associated with the image helps to better convey the atmosphere of the image or video into the room of the viewer. This results in a more natural ambient lighting color and a more immersive viewing experience. The scene lighting is a relatively stable and relatively slowly changing property, the ambient lighting color independence on scene lighting information is also relatively stable and relatively slowly changing. <CIT> relates to a lighting controller. A lighting controller is provided for regulating a user internet activity performed on a user device, wherein the user internet activity performed on the user device comprises an online monetary transaction, wherein the lighting controller comprises a processor arranged for: receiving information indicating the user internet activity on the user device; processing said information to obtain a control signal for controlling a light source to change a lighting characteristic from the group of color temperature; and regulating the user internet activity by supplying the control signal to control the light source for encouraging a user to perform the online monetary transaction by a decrease in color temperature, or discouraging a user to perform the online monetary transaction by an increase in color temperature.

According to one implementation, an AI power controller uses current load patterns that are stored in memory of an electronic device to predict load transients of an application and to allocate power within the electronic device in anticipation of the predicted load transients. To generate a prediction, the AI power controller receives as input application signature data from the application at a time while the application is executing on the device. The AI power controller executes logic that compares the received application signature data to historical application signature data, where the received application signature data includes at least media frame data generated by the application in the current execution instance and where the historical application signature data includes media frame data generated by the application during one or more past execution instances of the application. The AI power controller predicts a load transient of the application at a future point based on the comparison and dynamically adjusts a power control setting of the device in anticipation of the predicted load transient.

The herein disclosed technology includes a power controller that uses artificial intelligence (AI) to predict changes in system loads on a device before those changes occur. The power controller dynamically adjusts power control settings of the device, such as voltage or current supply, based on the predicted load changes. By anticipating rather than reacting to system load changes, the power controller may be able to more efficiently reserve power, such as by keeping the device or its respective components in a lower power state until just before an increase in load is anticipated. Likewise, the power controller's ability to predict load transients allows for anticipatory actions that eliminate or mitigate the need for bulk decoupling capacitors.

In some instances, increased or decreased processing activity of an application may temporally correlate with the generation and rendering of certain media data (e.g., graphics or sound) generated by the application. In the example of a video game, an increase in processing load may predictably occur in relation to the presentation of certain graphics on a user's display. For example, the game may launch a particular high-memory animation sequence when a user's avatar takes some action, such as walking through or opening a particular door. Likewise, a video streaming application may draw additional current from the power supply when presenting certain graphics-intensive scenes of a particular movie on a user's display. In still other non-gaming applications with graphical user interfaces (GUIs), a user's selection of a particular tool on a GUI may serve to initiate a memory-intensive processing task.

The various power controllers disclosed herein are trained using artificial intelligence (AI) to leverage observable correlations between media affects (e.g., graphics, sound) produced by an application and load transients of the application to dynamically predict changes in load that an electronics device may experience due to ongoing execution of a particular application. In one implementation, an AI power controller disclosed herein is trained to predict load transients attributable to a currently-executing application based on information generated during previous execution instances of the same application, such as previously-generated graphics and learned temporal associations between those graphics and previously-observed power profiles (e.g., current/time profiles, voltage/time profiles).

<FIG> illustrates an example system <NUM> that utilizes an AI power controller <NUM> to dynamically adjust power control settings of a processing device <NUM> in anticipation of predicted load transients generated by a currently-executing application <NUM>. The processing device <NUM> is shown to be a laptop but may, in different implementations, assume a variety of forms including without limitation that of a mobile phone, tablet, smart watch, desktop computer, cloud-based server, etc. The processing device <NUM> includes at least memory <NUM> storing an operating system (not shown) and one or more applications, such as the application <NUM>, that are locally executable, at least in part, by processing electronics <NUM> (e.g., one or more CPUs, GPUs, etc.).

The processing device <NUM> further includes an AI power controller <NUM> that includes computer-executable instructions executable by the one or more processing electronics <NUM> to selectively control power control circuitry <NUM> to alter power available to different load-drawing components (e.g., the processing electronics <NUM> and the memory <NUM>) throughout ongoing system operations. As used herein, the term "power control" is intended to refer to actions that control the provisioning of voltage, current, or both to various load-drawings electronics within the processing device <NUM>.

In various implementations, the AI power controller <NUM> may implement different types of power control actions to regulate power available to various load-drawing electronics (processing electronics <NUM> and memory <NUM>) of the system. In one implementation, the power control circuitry <NUM> includes a switching frequency power supply that is controllable to alter the average value of voltage fed to the processing electronics <NUM> and/or the memory <NUM> by turning a switch between the supply and the load on and off at a fast rate. The longer the switch is on compared to the off periods, the higher the total power supplied to the load. For example, the AI power controller <NUM> may selectively control the power control circuitry <NUM> to alter switching frequency or total pulse width modulation (PWM) on-time to deliver more energy to the load as needed without compromising voltage levels.

In another implementation, the AI power controller <NUM> generates control signals received by the power control circuitry <NUM> to regulate the power state of one or more integrated circuit (IC) chips, processing electronics <NUM>, or subsystems of the processing device <NUM>. For example, the power control circuitry <NUM> may regulate a power state of a system-on-chip (SoC) or GPU by selecting between different setpoints predefined in a power allocation table.

Although some traditional processing devices include various types of power controllers, traditional power control systems are generally "reactive" in the sense that such systems implement actions responsive to observed changes in system loads rather than in anticipation of an observed change. For example, traditional power controllers are designed to wait until a transient load is detected and, in response, perform some action to keep the voltage at the load at a predefined setpoint.

In the system <NUM>, however, the AI power controller <NUM> includes a load predictor <NUM> adapted to intelligently predict load transients attributable to the application <NUM> while the application is executing but before associated load changes are detectable. In this manner, the AI power controller <NUM> can dynamically implement actions to preemptively adjust settings of the power control circuitry <NUM> in anticipation of load transients at or very near (e.g., within microseconds) of actual future times when those load transients occur. For example, the AI power controller <NUM> may implement various power control actions without waiting for the load to change.

According to one implementation, the AI power controller <NUM> receives application signature data <NUM> for the application <NUM> at a time while the application <NUM> is actively executing and rendering graphics on the processing device <NUM>. As used herein, the term "application signature data" refers to data generated by an application (e.g., graphics data, sound data, log data) and/or system data indicating how execution of a particular application affects system resources (e.g., current/time profiles or voltage/time profiles for the application).

In one implementation, the AI power controller <NUM> receives application signature data <NUM> that includes media frame data generated by the application <NUM> during the ongoing execution instance of the application <NUM>. As used herein, "media frame data" refers to frames of graphics and/or sound data produced by an application. For example, the AI power controller <NUM> may request media frame data generated by the application <NUM> at one or more times (e.g., upon launch of the, periodically, etc.) while the application <NUM> is actively executing on the processing device <NUM>. The requested and received media frame data may include graphics data and/or sound data generated over a recent interval, such as the past few seconds (e.g., <NUM> seconds, <NUM> seconds, etc.).

In another implementation, the application signature data <NUM> includes current/time and/or voltage/time profile information for the application <NUM>. For example, the application signature data <NUM> may include current/time (di/dt) profile representing current consumption of the application over a recent time interval, such as the past few seconds (e.g., <NUM> seconds, <NUM> seconds, etc.). In some implementations, the application signature data <NUM> includes current/time profile and temporally-associated media frame data (e.g., corresponding to the same time interval). In other implementations, the application signature data <NUM> includes media frame data generated by the application but does not including corresponding current/time profile information. In yet still other implementations, the application signature data <NUM> includes current/time profile information and does not include media frame data.

The load predictor <NUM> is, in <FIG>, a machine learning model trained to generate load predictions based on learned correlations between the received application signature data <NUM> and historical application signature data <NUM>. For example, the load predictor <NUM> may be trained on a dataset of the historical application signature data <NUM> including media frame data generated during past instances of execution of the application <NUM> and/or current/time profiles (e.g., a historical current/time profile <NUM>) corresponding to those past instances of execution.

Responsive to receipt of the application signature data <NUM> (e.g., data generated and received during a present execution instance of the application <NUM>), the load predictor <NUM> applies logic learned from its training based on the historical application signature data <NUM> to effectively compare the received application signature data to the historical application signature data <NUM> and, on that basis, predict future changes in system load due to the ongoing execution of the application <NUM>. The AI power controller <NUM> then dynamically alters settings of the power control circuitry <NUM> to efficiently allocate system power resources in accord with the predicted load fluctuations.

<FIG> illustrates another example system that utilizes an AI power controller <NUM> to dynamically adjust power control settings of a processing device (not shown) in anticipation of predicted load transients attributable to execution of an application <NUM>. The AI power controller <NUM> includes a load predictor <NUM> that may include features the same or similar to those described above with respect to the load predictor <NUM> of <FIG>. The system <NUM> is shown predicting a load transient of the application <NUM> at a future point in time according to one methodology.

While the application <NUM> is executing, the AI power controller <NUM> receives application signature data from the application <NUM>. The application signature data includes at least a frame segment <NUM> (or multiple segments) of media frame data generated by the application <NUM> during the ongoing execution instance of the application <NUM>. According to one implementation, the frame segment <NUM> is a time-sequential segment of media frames generated by the application <NUM>. For example, the segment may be a video or audio stream generated by the application over some interval, such as the past few seconds. The frame segment <NUM> may be provided to the AI power controller <NUM> in various ways in different implementations such as upon request or at predefined intervals (e.g., every <NUM> seconds). In some implementations, the application signature data received from the application <NUM> includes other information in addition to media frame data (e.g., the frame segment <NUM>). For example, the received application signature data may also include a current/time (di/dt) profile for the application <NUM> that spans some subinterval of the current execution instance of the application <NUM>, such as the current/time profile for the past <NUM> minute, <NUM> minutes, etc..

The AI power controller <NUM> provides the frame segment <NUM> to a load predictor <NUM> which is, one implementation, a machine learning model trained on a dataset including or consisting of historical application signature data <NUM> for the application <NUM>. For simplicity of illustration, the historical application signature data <NUM> is shown to include a single consecutive sequence of frames (F1-F12) of historical media frame data <NUM> along with a corresponding di/dt profile <NUM>. However, it is to be understood that the historical application signature data <NUM> may actually include many (e.g., hundreds, thousands, or tens of thousands) of consecutive sequences of media frames generated during different prior execution instances of the application <NUM>. Each consecutive sequence of media frames (e.g., the sequence F1-F12) may be stored in association with a respective current/time profile (e.g., the di/dt profile <NUM>) indicating current consumed by the application <NUM> during a past time interval corresponding to the associated consecutive sequence of media frames. In some implementations, the historical application signature data <NUM> includes one or more voltage/time profiles (dV/dt) in lieu of or in addition to the di/dt profiles described with respect to <FIG>.

In the example shown, the di/dt profile <NUM> corresponds to the same time interval in which the application <NUM> generated the exemplary consecutive sequence of media frames F1-F12. By example and without limitation, the di/dt profile <NUM> indicates three times t1, t2, and t3 that correspond precisely to the times that frames F2, F7, and F12 were generated by the application <NUM>. Notably, the sequences of media frames and corresponding di/dt profiles in the historical application signature data <NUM> may vary significantly with respect to different execution instances of the application <NUM>. However, given a large enough training set of the historical application signature data <NUM>, the load predictor <NUM> is able to identify correlations between certain media frame characteristics and observed load transients. For example, a video game may, at a certain point, present the same or similar graphics (e.g., a scene, an object) just before the onset of a particular graphics sequence driving a marked increase in processing load. Therefore, by training the load predictor <NUM> on hundreds or thousands of media frame sequences and their associated di/dt profiles, the load predictor <NUM> may be taught to associate certain media characteristics (graphics and/or audio) with changes in load that statistically correlate to those media characteristics in some manner.

In the example of <FIG> the frame segment <NUM> is to be understood as being a segment that is both generated and provided to the AI power controller (as shown) while the application <NUM> is concurrently executing on the electronics device. The load predictor <NUM> analyzes the received frame segment <NUM>, such as by using one or more of a variety of image recognition techniques, to identify similarities between the frames of the frame segment <NUM> and one or more frames within the historical application signature data <NUM>. For example, the load predictor <NUM> may determine that the received frame segment <NUM> of media frame data satisfies predefined similarity criteria (e.g., a similarity greater than a predefined threshold) with respect to a frame segment <NUM> of the historical media frame data <NUM>. In addition, the load predictor <NUM> may determine that the received frame segment <NUM> satisfies the predefined similarity criteria with respect to other stored frame segments and sequences as well.

After identifying a subset of frames within the historical application signature data <NUM> satisfying the predefined similarity criteria with respect to the received frame segment <NUM>, the load predictor <NUM> analyzes the associated di/dt profile information (e.g., the di/dt profile <NUM>) to identify a temporal position within the di/dt profile corresponding to generation of the identified subset of frames. For example, the load predictor <NUM> determines, based on the assessment of the predetermined similarity criteria, that there exists a relative match between the received frame segment <NUM> and the identified frames F5-F8 in the historical frame data corresponds to a time t2 in the di/dt profile <NUM>. Based on this determination (alone or in conjunction with similar determinations with respect to many different stored sequences of historical media frame data), the load predictor <NUM> may then determine a likelihood of observing a load transient of predefined magnitude within some future time interval, such as within the next <NUM> seconds. For example, the load predictor <NUM> may determine that, based on the identified relative match between the frame segment <NUM> and the frame segment <NUM> and one or more other segments of the historical application signature data, there exists a <NUM>% likelihood that the application <NUM> will experience an increase in processing load above a defined threshold within <NUM> seconds. In this scenario, the AI power controller <NUM> may implement logic to preemptively respond to the predicted load transient at the future time, such as by increasing PWM on-time or switching frequency of a power supply.

<FIG> illustrates aspects of an intelligent power control system <NUM> that predicts system load transients and that dynamically adjusts power control settings of an electronic device in anticipation of the predicted system load transients. The intelligent power control system <NUM> includes an AI power controller <NUM> with a load predictor <NUM>. Specific characteristics of the AI power controller <NUM> or load predictor <NUM> not specifically described below may be understood as being the same or similar to like-name components described with respect to <FIG> and <FIG>.

Responsive to launch of an application (e.g., App A <NUM>) on the electronic device, the AI power controller <NUM> obtains (e.g., via request or otherwise) an application identifier <NUM> identifying the application <NUM>. Using the application identifier <NUM>, the AI power controller <NUM> retrieves an application-specific power prediction profile (e.g., App A profile <NUM>, App B profile <NUM>, or App C profile <NUM>) for the application <NUM> from a load prediction profile database <NUM>. Each application-specific power prediction profile <NUM> in load prediction profile database <NUM> may be understood as being a machine learning model trained on a dataset consisting of historical application signature data for the associated application (e.g., App A, App B, App C). For example, the power prediction profile <NUM> for App A may be understood as being a fully-trained machine learning model adapted to execute logic derived throughout a supervised training process in which the model was provided with training data <NUM> including historical frame data <NUM> for various historical execution instances of App A and corresponding historical di/dt profile data <NUM>. In another implementation, the training data <NUM> includes historical frame data <NUM> for and corresponding voltage/time (dV/dt) profile data instead of or in addition to the di/ti profile data.

In different implementations, the application-specific power prediction profiles (e.g., App A profile <NUM>, App B profile <NUM>, App C profile <NUM>) may be generated using one or more different machine learning algorithms including, for example, supervised training algorithms such as linear regression, decision trees, random forest models, adaboost models, gradient boosting tree models, simple neural networks, recurrent neural networks, etc..

In different implementations, the load prediction profile database <NUM> may be stored either locally within the electronic device with the AI power controller <NUM> or remote from the electronic device, such as within a cloud-based server. In one implementation, the load prediction profile database <NUM> is locally maintained on the electronic device. For example, the AI power controller <NUM> may obtain each application-specific power prediction profile a single time and locally store and manage such data thereafter. In other implementations, the load prediction profile database <NUM> is a cloud-based server that the AI power controller <NUM> frequently re-queries, such as each time a new application is launched on the electronic device.

In different implementations, the load predictor <NUM> selectively retrieves the application-specific load prediction profile for a given application at different times. For example, the load predictor <NUM> may query the load prediction profile database <NUM> with the application identifier <NUM> each time the application <NUM> launches, periodically, or responsive to various trigger events, such as when the corresponding application (App A) is initially downloaded, installed, or updated. If, for example, App A is an application download from the internet, the load predictor <NUM> may receive the application-specific load prediction profile <NUM> as metadata that is downloaded along with the application data.

The load predictor <NUM> may, in some implementations, be adapted to simultaneously execute different load prediction profile models (e.g., <NUM>, <NUM>, <NUM>) to predict and loads generated by multiple co-executing applications so as to enable the AI power controller <NUM> to dynamically adapt power control settings to manage such loads.

<FIG> illustrates one example of a load predictor <NUM> that uses an application-specific load prediction profile <NUM> to predict future load transients attributable to processing activities of a currently-executing application. The application-specific load prediction profile <NUM> is initially generated during a training process in which a machine learning model is provided with training data including historical application signature data for a particular application, App A. For example, the training data may include video streams previously-generated by App A and associated di/dt profile information for App A during time intervals corresponding to the video streams.

In the example of <FIG>, the application-specific power prediction profile <NUM> is a recurrent neural network (RNN) formed by nodes interconnected by edges that form a directed graph along a temporal sequence. During a prediction phase (e.g., post-training), the load predictor <NUM> receives as input a sequence <NUM> of media frames (e.g., a subset of a video stream) generated by App A. This sequence <NUM> is both generated by App A and received by the load predictor <NUM> during a same execution instance of App A (e.g., while App is currently executing).

The load predictor <NUM> converts each frame of the sequence <NUM> to a red, green, blue (RGB) matrix (e.g., an RGB matrix <NUM>) and, in turn, sequentially inputs each frame to an input node <NUM> of the application-specific load prediction profile <NUM>. The input node annotates the RGB matrix with metadata indicative of an index position within the sequence <NUM> that the frame corresponds to. By comparing the received RGB matrices and indexed temporal positioning information to training data that includes similarly-indexed positioning information for thousands of RGB matrix sequences and associated di/dt profile data, the load predictor <NUM> determines a probability of observing a particular di/dt that at a future point in time following the sequence <NUM>. The load predictor provides the di/dt with the highest occurrence probability to an output node <NUM>, and the predicted load transient (e.g., the di/dt information) is, in turn, provided to a voltage or current regulator (not shown).

<FIG> illustrates example operations <NUM> for dynamically allocating power in an electronic device based on predicted future load transients attributable to individual applications. A retrieval operation <NUM> receives an application identifier for an application responsive to initiation of a launch sequence for the application. A retrieval operation <NUM> uses the received application identifier to retrieve an application-specific power prediction profile for the application. For example, the retrieval operation <NUM> may download the application-specific power prediction profile from an online database and/or retrieve the application-specific power profile from local storage. The application-specific power prediction profile is a machine learning model trained on historical application signature data for the application. For example, the application-specific power prediction profile is an RNN or other machine learning model trained on sequences of media frame data historically-generated by the application and historical power profile information for the application corresponding to the time intervals in which the sequences of media frame data were generated.

A loading operation <NUM> loads an AI power controller with the retrieved application-specific power prediction profile for the application. An receiving operation <NUM> receives application signature data from the application and provides the application signature data as input to the retrieved application-specific power prediction profile. For example, the application may provide application signature data to the AI power controller periodically during ongoing execution of the application. The application signature data includes at least one sequence of media frames generated by the application. For example, the AI power controller may receive a new sequence of frames generated by the application on a continuous, rolling basis such as a every <NUM> second, <NUM> seconds, etc..

A comparing operation <NUM> executes logic to effectively compare media frames included in the received application signature data to media frames included in the historical application signature data that was used to train the application-specific power prediction profile. In one implementation, the historical application signature data includes both media frame data generated previously by the application (e.g., during thousands of past instances of execution) along with associated power profile information.

A match identifier operation <NUM> identifies a relative frame match between a subset of the media frames in the historical application signature data and a subset of the media frames received in the application signature data from the application. In one implementation, the relative frame match is identified when the subsets of frames satisfy predefined similarity criteria relative to one another, such as by demonstrating certain visual similarities with respect to objects, shading, tonal profile features, etc..

An index position determination operation <NUM> determines a temporal position within one or more current/time (di/dt) profiles corresponding to the media frame(s) of historical application signature data included in the frame match. A prediction operation <NUM> predicts, based on the di/dt profiles and the determined temporal position(s), a load transient that is most likely to be observed at a predefined future point in time. A power adjustment operation <NUM> dynamically adjusts a power control setting of the electronic device in anticipation of the predicted load transient at the predefined future point in time. For example, the power adjustment operations <NUM> may alter a device power mode or alter the PWM on-time or switching frequency just prior to predicted load transient.

<FIG> illustrates an example schematic of a processing device <NUM> suitable for implementing aspects of the disclosed technology. The processing devices <NUM> includes one or more processor unit(s) <NUM>, memory device(s) <NUM>, a display <NUM>, and other interfaces <NUM> (e.g., buttons). The processor unit(s) <NUM> may each include one or more CPUs, GPUs, etc..

The memory <NUM> generally includes both volatile memory (e.g., RAM) and non-volatile memory (e.g., flash memory). An operating system <NUM>, such as the Microsoft Windows® operating system, the Microsoft Windows® Phone operating system or a specific operating system designed for a gaming device, may resides in the memory <NUM> and be executed by the processor unit(s) <NUM>, although it should be understood that other operating systems may be employed.

One or more applications <NUM> are loaded in the memory <NUM> and executed on the operating system <NUM> by the processor unit(s) <NUM>. Applications <NUM>, such as an AI power controller, may receive inputs from one another as well as from various input local devices such as a microphone <NUM>, input accessory <NUM> (e.g., keypad, mouse, stylus, touchpad, gamepad, racing wheel, joystick), and a camera <NUM>. Additionally, the applications <NUM> may receive input from one or more remote devices, such as remotely-located smart devices, by communicating with such devices over a wired or wireless network using more communication transceivers <NUM> and an antenna <NUM> to provide network connectivity (e.g., a mobile phone network, Wi-Fi®, Bluetooth®). The processing device <NUM> may also include one or more storage devices <NUM> (e.g., non-volatile storage). Other configurations may also be employed.

The processing device <NUM> further includes a power supply <NUM>, which is powered by one or more batteries or other power sources and which provides power to other components of the processing device <NUM>. The power supply <NUM> may also be connected to an external power source (not shown) that overrides or recharges the built-in batteries or other power sources.

The processing device <NUM> may include a variety of tangible computer-readable storage media and intangible computer-readable communication signals. Tangible computer-readable storage can be embodied by any available media that can be accessed by the processing device <NUM> and includes both volatile and nonvolatile storage media, removable and non-removable storage media. Tangible computer-readable storage media excludes intangible and transitory communications signals and includes volatile and nonvolatile, removable and non-removable storage media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Tangible computer-readable storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CDROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other tangible medium which can be used to store the desired information, and which can be accessed by the processing device <NUM>. In contrast to tangible computer-readable storage media, intangible computer-readable communication signals may embody computer readable instructions, data structures, program modules or other data resident in a modulated data signal, such as a carrier wave or other signal transport mechanism. By way of example, and not limitation, intangible communication signals include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.

Claim 1:
A device comprising:
an AI power controller configured to:
receive (<NUM>) application signature data from an application executing on the device, the application signature data including frames of graphics and/or sound data produced by the application during a time interval;
execute logic that compares (<NUM>) the received application signature data to historical application signature data, the historical application signature data including frames of graphics and/or sound data produced by the application during one or more past execution instances of the application;
predict (<NUM>) a load transient of the application at a future point in time relative to the time interval based on the comparison; and
dynamically adjust (<NUM>) a power control setting of the device in anticipation of the predicted load transient.