The present invention relates to power management of a system, and more particularly, to a method for performing scenario driven voltage scaling, and to an associated apparatus.
Power saving is always an important issue for implementation of electronic devices such as mobile phones, personal or portable navigation devices (PNDs), digital cameras, tablets, personal computers, etc., no matter whether the electronic devices are portable or not. In order to reduce the power consumption of the electronic devices, and more particularly, those powered by batteries, conventional methods of the related art typically focus on sacrificing performance of a core circuit such as a Central Processing Unit (CPU) or a Micro Processing Unit (MPU) for power saving. However, when products are implemented based upon the conventional methods, many problems may occur. For example, a sub-system within a related art system may be driven by a single pre-defined voltage, and in a situation where the loading is not heavy, the pre-defined voltage driving the sub-system cannot be changed. In another example, in a situation where some sub-systems within a related art system are not used, the related art system cannot turn off these sub-systems. Thus, the related art does not serve the users well, and therefore, a novel method is required to improve power management of the electronic devices.
It is therefore an objective of the claimed invention to provide a method for performing scenario driven voltage scaling, and to provide an associated apparatus, in order to solve the above-mentioned problems.
An exemplary embodiment of a method for performing scenario driven voltage scaling of a system comprises: monitoring at least one condition of the system, wherein the at least one condition comprises user scenario switching of the system; and based upon at least one predetermined table, determining at least one level of at least one voltage for driving the system according to the at least one condition, wherein the predetermined table comprises a plurality of sets of frequency/voltage information respectively corresponding to a plurality of scenarios.
An exemplary embodiment of an associated apparatus for performing scenario driven voltage scaling of a system is provided. The apparatus comprises at least one tracking module and at least one voltage control module. In addition, the at least one tracking module is capable of monitoring at least one condition of the system, wherein the at least one condition comprises user scenario switching of the system. Additionally, based upon at least one predetermined table, the at least one voltage control module is capable of determining at least one level of at least one voltage for driving the system according to the at least one condition, wherein the predetermined table comprises a plurality of sets of frequency/voltage information respectively corresponding to a plurality of scenarios.
These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings.
Certain terms are used throughout the following description and claims, which refer to particular components. As one skilled in the art will appreciate, electronic equipment manufacturers may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not in function. In the following description and in the claims, the terms “include” and “comprise” are used in an open-ended fashion, and thus should be interpreted to mean “include, but not limited to . . . ”. Also, the term “couple” is intended to mean either an indirect or direct electrical connection. Accordingly, if one device is coupled to another device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices and connections.
Please refer to
According to this embodiment, the CPU sub-system 110 is equipped with a processor such as a CPU (not shown) and associated circuits, and is capable of controlling many operations of the system 100. In addition, the multimedia sub-system 120 is capable of perform audio/video coding (e.g. encoding and decoding) and associated operations, the peripheral sub-system 130 is capable of control peripheral modules/devices, the memory interface 180 is capable of perform access control of some memories such as those shown in
In this embodiment, the apparatus for performing scenario driven voltage scaling of the system 100 can be at least a portion of the CPU sub-system 110. For example, the processor such as the CPU in the CPU sub-system 110 may execute program codes to perform scenario change detection, table looking-up, and/or voltage selection. In addition, after the table looking-up is performed and the required voltage level is selected, the processor executing the program codes may set the PMIC 340. More particularly, after the table looking-up is performed to determine the requirement of operational frequency, the processor executing the program codes may set the PLL 150.
According to this embodiment, the apparatus for performing scenario driven voltage scaling may comprise at least one tracking module and at least one voltage control module, such as some of the components/modules/units disclosed in
In Step 912, the aforementioned at least one tracking module is capable of monitoring at least one condition of the system 100, where the at least one condition may include user scenario switching of the system. More particularly, the at least one condition may further include temperature variation of the system 100 and at least one chip condition of the system 100, where the chip condition can include a process variation of the system 100. In one embodiment, the aforementioned at least one tracking module monitors the chip condition once when the main power of the system 100 is turned on.
In practice, for the same requirement of operational frequency, when the temperature of the system 100 increases, the required voltage level should be increased. Thus, the temperature variation of the system 100 can be included in the aforementioned at least one condition. In addition, due to the process variation of the system 100, some components may operate faster than others within integrated circuits. For example, the integrated circuits may respectively be classified as the so-called SS/TT/FF (slow/typical/fast). When the same voltage level is applied, the operating speed of those classified as FF may be 120% of that of those classified as SS, where for the same requirement of operational frequency, the required voltage level of those classified as FF may be lower than that of those classified as SS.
In Step 914, based upon at least one predetermined table, such as at least one predetermined table within the system 100 (e.g. a single predetermined table implemented within a certain component/module/unit such as one of the component/module/units shown in
According to this embodiment, the aforementioned at least one predetermined table can be very simple for the aforementioned at least one voltage control module to rapidly determine the at least one level mentioned in Step 914. For example, as the required voltage level(s) and/or the requirement of the operational frequency (frequencies) for the sub-systems can be determined in advance during the design phase of the system 100, and as the required voltage level(s) and/or the requirement of the operational frequency (frequencies) for a specific scenario of the plurality of scenarios can be determined in advance during the design phase of the system 100, the aforementioned at least one predetermined table may merely include a plurality of predetermined frequencies/voltages respectively corresponding to the scenarios. Thus, when the system 100 is operating, the aforementioned at least one voltage control module can rapidly determine the required frequency/voltage corresponding to the scenario under consideration. This is for illustrative purposes only, and is not meant to be a limitation of the present invention. According to some variations of this embodiment, the aforementioned at least one predetermined table may store at least one logic synthesis result, where the aforementioned at least one logic synthesis result represents at least one set of frequency/voltage information corresponding to at least one scenario. For example, in one of these variations, the aforementioned at least one logic synthesis result can be determined in advance during a design phase of the system 100. According to some variations of this embodiment, the apparatus can perform at least one determination operation to generate/update content(s) of the predetermined table. For example, the at least one determination operation comprises at least one logic synthesis operation. According to some variations of this embodiment, based upon the predetermined table, the voltage control module is capable of determining respective voltage levels required for respectively driving a plurality of sub-systems of the system 100, and selecting a maximum of the respective voltage levels as the aforementioned at least one level of the aforementioned at least one voltage in Step 914. In addition, based upon the predetermined table, the voltage control module is capable of determining at least one frequency associated to at least one of the respective voltage levels mentioned above.
Here, the architecture disclosed in
By comparing the two minimum voltage levels determined by the multimedia middleware scenario driven power management module 322 and the MCUSYS bus monitor task 324, the smart power management module 310 can perform voltage level setting on the PMIC driver 305 based upon the maximum of the two minimum voltage levels. As a result, the PMIC driver 305 is capable of controlling the PMIC 340 to apply a voltage having the maximum of the two minimum voltage levels to the VFE/AFE 342, the MPEG-4 unit 344, the 3D engineering unit 346, the peripheral module 348, and the bus 350, respectively. According to a variation of this embodiment, in a situation where there are multiple voltages to be respectively applied to the VFE/AFE 342, the MPEG-4 unit 344, the 3D engineering unit 346, the peripheral module 348, and the bus 350, the smart power management module 310 can perform voltage level setting on the PMIC driver 305 based upon a varied version of the algorithm of the architecture disclosed in
Referring to
In Step 934, the whole system including the sub-systems is analyzed to determine the operation frequency associated to each power level.
In Step 936, when clock timing in some sub-systems is asynchronous, at least one frequency (e.g. one or more frequencies) of the sub-systems such as the 3D engineering unit 346, the MPEG-4 unit 344, and the VFE/AFE 342 disclosed above is determined scenario by scenario, where examples of the scenarios may comprise various kinds of applications such as play MP3, play MPEG4, and various kinds of resolutions, such as the resolutions of Video Graphics Array (VGA), Quarter VGA (QVGA), Super VGA (SVGA), and Extended Graphics Array (XGA).
Referring to
In Step 954, clock information (e.g. the frequency of a clock) and the required voltage can be collected from the predetermined table by the software driver or any other hardware, firmware, software, or combination thereof.
In Step 956, the minimum voltage level required for the latest scenario of the system 100 can be determined by the PMIC driver 305 or any other hardware, firmware, software, or combination thereof.
According to this embodiment, the aforementioned at least one predetermined table may store at least one logic synthesis result, where the aforementioned at least one logic synthesis result represents at least one set of frequency/voltage information corresponding to at least one scenario. This by no means implies that the apparatus should perform the aforementioned logic synthesis operation since, as mentioned, the aforementioned at least one logic synthesis result can be determined in advance during the design phase of the system 100. In addition, the policies may represent at least one portion (e.g. a portion or all) of the plurality of sets of frequency/voltage information mentioned in Step 914. For example, as a result of executing Step 912, the aforementioned at least one voltage control module can be notified of the latest user scenario switching, and can determine that the latest user scenario is the scenario “Play MP3” and obtain the logic synthesis results such as some sets of frequency/voltage information listed under the scenario “Play MP3” in the table shown in
In practice, for the same requirement of operational frequency, when the temperature of the system 100 increases, the required voltage level should be increased. Thus, the temperature variation of the system 100 can be included in the aforementioned at least one condition. In addition, due to the process variation of the system 100, some components may operate faster than others within integrated circuits. For example, the integrated circuits may respectively be classified as the so-called SS/TT/FF (slow/typical/fast). When the same voltage level is applied, the operating speed of those classified as FF may be 120% of that of those classified as SS, where for the same requirement of operational frequency, the required voltage level of those classified as FF may be lower than that of those classified as SS. Similar descriptions for this embodiment are not repeated in detail here.
It is an advantage of the present invention that, based upon the aforementioned at least one predetermined table, the present invention method and apparatus can properly determine the aforementioned at least one level of the aforementioned at least one voltage for driving the system. As a result, the present invention can achieve the goal of saving power without reducing the performance of the system.
Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.