Method and apparatus for operating a processor in an electronic device
11360542 · 2022-06-14
Assignee
Inventors
- Mahantesh KOTHIWALE (Bangalore, IN)
- Satyam Namdeo (Bangalore, IN)
- Yunas RASHID (Bangalore, IN)
- Srinivasa Rao KOLA (Bangalore, IN)
- Manjunath JAYRAM (Bangalore, IN)
Cpc classification
International classification
Abstract
This disclosure provides a method and an apparatus for operating a processor in an electronic device. The method includes identifying an average throughput for a first set of subframes, predicting a load of the processor for a second set of subframes based on the identified average throughput, determining an operating frequency of the processor for the second set of subframes based on the predicted load, and operating the processor on the determined operating frequency for the second set of subframes.
Claims
1. A method for operating a processor in an electronic device, the method comprising: identifying an average throughput for a first set of subframes; predicting a load of the processor for a second set of subframes based on the identified average throughput; determining an operating frequency of the processor for the second set of subframes based on the predicted load; identifying whether the determined operating frequency has an operating frequency level between a first frequency level and a second frequency level, the first frequency level being higher than the second frequency level; in response to the determined operating frequency having the operating frequency level, adjusting the determined operating frequency based on a ratio of a difference between the first frequency level and the operating frequency level to a difference between the operating frequency level and the second frequency level; and controlling the processor to operate on the adjusted operating frequency for the second set of subframes.
2. The method of claim 1, wherein the identifying of the average throughput comprises: identifying an average transport block (TB) size for the first set of subframes based on a modulation coding scheme (MCS), a coding rate, and a number of resource blocks (RBs) allocated to the electronic device; and identifying the average throughput based on the identified average TB size.
3. The method of claim 2, wherein the predicting of the load of the processor comprises: predicting an average size of data packets to be received in the second set of subframes based on the identified average TB size; and predicting the load of the processor based on the predicted average size.
4. The method of claim 1, wherein the identifying of the average throughput comprises: identifying an average size of data packets received in the first set of subframes; and identifying the average throughput based on the identified average size.
5. The method of claim 1, further comprising: adjusting the determined operating frequency min response to the determined operating frequency failing to meet a required load for the second set of subframes.
6. The method of claim 1, further comprising: in response to the operating frequency level being less than the second frequency level, the determined operating frequency is adjusted based on a difference between a minimum frequency level and the operating frequency level.
7. An electronic device, comprising: a memory; a processor; and a controller coupled with the memory and the processor, configured to: identify an average throughput for a first set of subframes, predict a load of the processor for a second set of subframes based on the identified average throughput, determine an operating frequency of the processor for the second set of subframes based on the predicted load, identify whether the determined operating frequency has an operating frequency level between a first frequency level and a second frequency level, the first frequency level being higher than the second frequency level, in response to the determined operating frequency having the operating frequency level, adjust the determined operating frequency based on a ratio of a difference between the first frequency level and the operating frequency level to a difference between the operating frequency level and the second frequency level, and control the processor to operate on the adjusted operating frequency for the second set of subframes.
8. The electronic device of claim 7, wherein the controller is further configured to: identify an average transport block (TB) size for the first set of subframes based on a modulation coding scheme (MCS), a coding rate, and a number of resource blocks (RBs) allocated to the electronic device, and identify the average throughput based on the identified average TB size.
9. The electronic device of claim 8, wherein the controller is further configured to: predict an average size of data packets to be received in the second set of subframes based on the identified average TB size, and predict the load of the processor based on the predicted average size.
10. The electronic device of claim 7, wherein the controller is further configured to: identify an average size of data packets received in the first set of subframes, and identify the average throughput based on the determined identified average size.
11. The electronic device of claim 7, wherein the controller is further configured to: adjust the determined operating frequency in response to the determined operating frequency failing to meet a required load for the second set of subframes.
12. The electronic device of claim 7, wherein, in response to the operating frequency level being less than the second frequency level, the determined operating frequency is adjusted based on a difference between a minimum frequency level and the operating frequency level.
Description
BRIEF DESCRIPTION OF DRAWINGS
(1) The embodiments herein will be better understood from the following detailed description with reference to the drawings, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
MODE FOR THE INVENTION
(24) The embodiments herein and the various features and advantageous details thereof are explained more fully with reference to the non-limiting embodiments that are illustrated in the accompanying drawings and detailed in the following description. Descriptions of well-known components and processing techniques are omitted so as to not unnecessarily obscure the embodiments herein. Also, the various embodiments described herein are not necessarily mutually exclusive, as some embodiments can be combined with one or more other embodiments to form new embodiments. The term “or” as used herein, refers to a non-exclusive or, unless otherwise indicated. The examples used herein are intended merely to facilitate an understanding of ways in which the embodiments herein can be practiced and to further enable those skilled in the art to practice the embodiments herein. Accordingly, the examples should not be construed as limiting the scope of the embodiments herein.
(25) As traditional in the field, embodiments may be described and illustrated in terms of blocks which carry out a described function or functions. These blocks, which may be referred to herein as units or modules or the like, are physically implemented by analog and/or digital circuits such as logic gates, integrated circuits, microprocessors, microcontrollers, storage circuits, passive electronic components, active electronic components, optical components, hardwired circuits and the like, and may optionally be driven by firmware and/or software. The circuits may, for example, be embodied in one or more semiconductor chips, or on substrate supports such as printed circuit boards and the like. The circuits constituting a block may be implemented by dedicated hardware, or by a processor (e.g., one or more programmed microprocessors and associated circuitry), or by a combination of dedicated hardware to perform some functions of the block and a processor to perform other functions of the block. Each block of the embodiments may be physically separated into two or more interacting and discrete blocks without departing from the scope of the disclosure. Likewise, the blocks of the embodiments may be physically combined into more complex blocks without departing from the scope of the disclosure.
(26) Embodiments herein provide a method for operating a processor in an electronic device. The method includes determining an average frequency for operating the processor for a predetermined time interval. Further, the method includes operating the processor with the determined average frequency for the predetermined time interval.
(27) In the conventional methods, using a DVFS technique, the electronic device can switch the frequency dynamically based on a processing load. However, this results in a frequent frequency switching which consumes more power in the electronic device. Unlike conventional methods and systems, the proposed method can be used to improve a power saving on the electronic device, even a processing load of the electronic device varies dynamically. The proposed method can be used to reduce the power consumption by applying the average frequency (i.e., constant frequency over a long period of time) to the processor of the electronic device. Hence, this results in power saving and increase a battery life of the electronic device.
(28) The proposed method can be used in high data rate electronic device (e.g., 5G modem), where the subframe duration is very short. The proposed method can be used to accumulate the plurality of subframe in a buffer and then compute the average frequency for the accumulated packets. Further, the average frequency is applied across the accumulated subframes. This results in reducing the power consumption, as the average frequency is applied over the accumulated subframes.
(29) Referring now to the drawings, and more particularly to
(30)
(31) In an embodiment, the electronic device 100 is a wireless communications device which is configured to operate in any wireless network such as, a wireless local area network (WLAN), a cellular network (e.g., long term evolution (LTE), fifth generation (5G) or the like. The electronic device 100 can be for example but not limited to a user equipment (UE), a smart phone, a mobile phone, wireless modems (e.g., 4G/5G modems), internet of things (IoT) devices, wireless gigabit alliance (WiGig) modems, ultra high speed (UHS) flash memory, solid-state drive (SSD), a desktop computer, a laptop computer, a digital camera, a video camcorder, a portable multimedia player (PMP), a MP3 player, a navigation device, or the like.
(32) The processor 110 can be for example a communication processor such as Snapdragon®, Exynos®, a system on chip (SOC), an application specific processor such as image processor, or the like. Further, the processor 110 may include a hardware component such as central processing unit (CPU), a microcontroller, an application-specific integrated circuit (ASIC), a graphic processing unit (GPU), or the like to perform various operations. In an example, the processor 110 may be embodied as a system-on-chip (SoC) in which a core and the GPU may be integrated. In an example, the processor 110 may include a plurality of processors or processor cores.
(33) In an embodiment, the electronic device 100 determines an average frequency for operating the processor 110 for a predetermined time interval. The predetermined time interval can be next N frames. For example, the next N frames can be next 100 frames which will be received at the processor 110. The electronic device 100 predicts the average load at the processor 110 for a predetermined time interval based on an average throughput at the processor 110. The electronic device 100 is configured to determine the average frequency based on the average load predicted at the processor 110. The electronic device 100 determines the average frequency during a run-time of the processor 110. In an example, a load at the processor 110 is determined based on a received packet size, a buffer occupancy level or the like. The packet size may vary significantly in every subframe. In an embodiment, the predicted load is a CPU load, where the CPU load can be at least one of a CPU utilization or an application specific metric.
(34) In an embodiment, the electronic device 100 predicts the average throughput for the predetermined time interval (such as next hundreds of frames) based on a learning technique. The predetermined time interval is much higher than the subframe time interval. The learning technique can be for example but not limited to a neural network, a reinforcement learning such as Q-learning approach, a machine learning technique, or the like.
(35) In an embodiment, the electronic device 100 predicts the average throughput, where the average throughput is determined based on an average transport block (TB) size of sub frames. The TB size is an effective packet size per subframe. The electronic device 100 predicts the average TB size over several subframes using parameters based on the learning technique. The parameters can be for example a coding rate, modulation coding scheme (MCS), number of radio resource blocks (RBs) allocated by a base station to the UE. Consider for next 100 frames, the electronic device 100 predicts the average packet size which could be received on the next 100 subframes based on a previous subframes size.
(36) Based on the average load (i.e., TB size) predicted at the processor 110, the electronic device 100 determines the average frequency. Further, the operating frequency controller 130 operates the processor 110 with the determined average frequency for the predetermined time interval.
(37) In an embodiment, the electronic device 100 monitors the TB size for a first set of subframes. Further, the electronic device 100 predicts the average TB size for a second set of subframes based on the learning technique. Further, the electronic device 100 determines the average frequency for operating the processor 110 for the predetermined time interval based on the predicted average TB size. Further, the operating frequency controller 130 operates the processor 110 with the determined average frequency for the predetermined time interval for processing the second set of subframes. The electronic device is configured to map between predicted TB size and the average frequency. Let, a range of average TB size can be from 100 bytes to 900 bytes. Consider the electronic device determines that for first n-subframe, learnt average TB size is 100 bytes. Similarly for second n-subframe, the learnt average TB size is 500 bytes and for third n-subframe, the learnt average TB size is 200 bytes.
(38) In an embodiment, the electronic device 100 determines whether the determined average frequency meets a load required for the processor 110. The load is the actual load which is required for the processor of the electronic device 100. Further, the electronic device 100 dynamically vary the average frequency to meet the predicted load in response to determining that the average frequency fails to meet the predicted load.
(39) For example, consider for N-subframes (such as 100 subframes), the electronic device 100 predicts that the average frequency to operate the load received at the processor 110 is 100 MHz. Further, the processor 110 operates at the average frequency (i.e., 100 MHz) for 100 subframes. The electronic device 100 determines whether the average frequency of the N/10 subframe (such as 10 subframe) is same as the predicted average frequency over 100 subframes. If the average frequency of the N/10 subframe (such as 10 subframe) is greater than the predicted average frequency over 100 subframes, then the electronic device 100 determines that there is an error in the learning technique. The electronic device 100 identifies that an operating frequency (i.e., predicted average frequency) of the processor 110 is less than the average frequency required for operating the predicted load, this results in not reaching the deadline.
(40) Further, the electronic device 100 is configured to increase the average frequency to meet a deadline (i.e., predicted load). This ensure that the electronic device 100 meets the deadline, while operating at the predicted average frequency.
(41) In another embodiment, the electronic device 100 determines the average frequency for operating the processor 110 for the predetermined time interval using a deterministic technique. In the deterministic technique, the electronic device 100 collects a plurality of packets for a plurality of subframes over the predetermined time interval, where the plurality of packets are stored in the memory 120. The electronic device 100 accumulates the plurality of packets, where the plurality of packets are not processed. The predetermined time interval at which plurality of packets are accumulated is based on an allowable latency (such as delay) at the electronic device 100. For example, the allowable latency for 5G system is between 10 ms-100 ms then, the average duration of subframes in 5G system is 50 μs. This result in accumulating too many subframes in the memory 120. Further, the electronic device 100 determines an average size of the plurality of packets collected from the plurality of subframes. Further, the electronic device 100 determines average size of the plurality of packets collected from the plurality of subframes. Further, the electronic device 100 determines the average frequency based on the determined average size. The electronic device 100 determines computes the average frequency to process the accumulated buffer in the next predetermined time interval. Furthermore, the operating frequency controller 130 operates the processor 110 with the determined average frequency for the predetermined time interval.
(42) In an embodiment, the operating frequency controller 130 operates the processor 110 with the determined average frequency for the predetermined time interval includes determining whether the determined average frequency falls between two discrete frequency levels. The two discrete frequency levels comprises a lower frequency level and a higher frequency level, where the processor 110 of the electronic device 100 operates at one of the discrete frequency levels. Further, the operating frequency controller 130 causes to operate the processor 110 includes between the higher frequency level and the lower frequency level in proportions of a ratio of difference between the higher frequency level and the average frequency level to the difference between the average frequency level and the lower frequency level over the predetermined time interval.
(43) If the determined average frequency falls between two discrete frequency levels, the electronic device 100 detects whether the average frequency is less than a minimum frequency level of the discrete frequency levels. Further, the operating frequency controller 130 operates the processor 110 between the minimum frequency level and an idle frequency level in proportions of a difference between the minimum frequency level and the average frequency level over the predetermined time interval.
(44) In another embodiment, the operating frequency controller 130 operates the processor 110 with the determined average frequency for the predetermined time interval includes determining whether the determined average frequency falls between two discrete frequency levels. Further, the operating frequency controller 130 causes to operate the processor 110 the higher frequency level and an idle frequency level in proportions of a difference between the higher frequency level and the average frequency level over the predetermined time interval, in response to determining that the determined average frequency falls between two discrete frequency levels. In an example, the idle frequency level is a lowest frequency level of the discrete frequency levels.
(45) If the determined average frequency does not fall between two discrete frequency levels, the electronic device 100 detects whether the average frequency is less than a minimum frequency level of the discrete frequency levels. Further, the operating frequency controller 130 operates the processor 110 between the minimum frequency level and the idle frequency level in proportions of a difference between the minimum frequency level and the average frequency level over the predetermined time interval.
(46) In yet another embodiment, the electronic device 100 operates the processor 110 with the determined average frequency for the predetermined time interval includes determining whether the determined average frequency falls between two discrete frequency levels. Further, the electronic device 100 determines whether a ratio between a power and a frequency associated with the higher frequency level is comparatively greater than the ratio between the power and the frequency associated with the lower frequency level. Further, the operating frequency controller 130 to operate the processor 110 between the higher frequency level and the lower frequency level in proportions of the ratio of difference between the higher frequency level and the average frequency level to the difference between the average frequency level and the lower frequency level over the predetermined time interval.
(47) If the ratio between the power and the frequency associated with the higher frequency level is not greater than the ratio between the power and the frequency associated with the lower frequency level, the operating frequency controller 130 operates the processor 110 of the electronic device 100 between the higher frequency level and the idle frequency level in proportions of a difference between the higher frequency level and the average frequency level over the predetermined time interval.
(48) If the determined average frequency does not falls between two discrete frequency levels then, the frequency determination engine 131 to detect whether the average frequency is less than the minimum frequency level of the discrete frequency levels. Further, the operating frequency controller 130 to operate the processor 110 of the electronic device 100 between the minimum frequency level and the idle frequency in proportions of a difference between the minimum frequency level and the average frequency level over the predetermined timer interval.
(49) The communicator 140 is configured to communicate internally between hardware components in the electronic device 100. The processor 110 is coupled with the memory 120 for processing various instructions stored in the memory 120 to meet the predicted load at the electronic device.
(50) The memory 120 can be configured to store the plurality of subframes, number of RBs received from the base station. The memory 120 may include non-volatile storage elements. Examples of such non-volatile storage elements may include magnetic hard discs, optical discs, floppy discs, flash memories, or forms of electrically programmable memories (EPROM) or electrically erasable and programmable (EEPROM) memories. In addition, the memory 120 may, in some examples, be considered a non-transitory storage medium. The term “non-transitory” may indicate that the storage medium is not embodied in a carrier wave or a propagated signal. However, the term “non-transitory” should not be interpreted that the memory 120 is non-movable. In some examples, the memory 120 can be configured to store larger amounts of information than the memory. In certain examples, a non-transitory storage medium may store data that can, over time, change (e.g., in random access memory (RAM) or cache).
(51)
(52) In an embodiment, the frequency determination engine 131 determines the average frequency for operating the processor 110 for the predetermined time interval. The load prediction engine 132 predicts the average load at the processor 110 for the predetermined time interval based on the average throughput at the processor 110. The frequency determination engine 131 is configured to determine the average frequency based on the average load predicted at the processor 110.
(53) In an embodiment, the frequency determination engine 131 predicts the average throughput for the predetermined time interval (such as next hundreds of frames) based on the learning technique.
(54) In an embodiment, the frequency determination engine 131 predicts the average throughput, where the average throughput is determined based on an average TB size of sub frames. The TB size determination engine 133 determines the average TB size over several subframes using parameters based on the learning technique.
(55) Based on the average load (i.e., TB size) predicted at the processor 110, the frequency determination engine 131 determines the average frequency. Further, the operating frequency controller 130 operates the processor 110 with the determined average frequency for the predetermined time interval.
(56) In an embodiment, the TB size determination engine 133 monitors the TB size for the first set of subframes. Further, the TB size determination engine 133 predicts the average TB size for the second set of subframes based on the learning technique. Further, the frequency determination engine 131 determines the average frequency for operating the processor 110 for the predetermined time interval based on the predicted average TB size. Further, the operating frequency controller 130 operates the processor 110 with the determined average frequency for the predetermined time interval for processing the second set of subframes.
(57) In an embodiment, the frequency determination engine 131 determines whether the average frequency meets the load required for the processor 110. Further, the operating frequency controller 130 dynamically vary the average frequency to meet the load in response to determining that the average frequency fails to meet the predicted load.
(58) In another embodiment, the frequency determination engine 131 determines the average frequency for operating the processor 110 for the predetermined time interval using the deterministic technique. In the deterministic technique, the packet size determination engine 134 collects the plurality of packets for the plurality of subframes over the predetermined time interval, where the plurality of packets are stored in the memory 120. Further, the packet size determination engine 134 determines the average size of the plurality of packets collected from the plurality of subframes. Further, the frequency determination engine 131 determines the average frequency based on the determined average size. Furthermore, the operating frequency controller 130 operates the processor 110 with the determined average frequency for the predetermined time interval.
(59)
(60) At 510, the method includes determining the average frequency for operating the processor 110 for the predetermined time interval. In an embodiment, the method allows the frequency determination engine 131 to determine the average frequency for operating the processor 110 for the predetermined time interval.
(61) At 520, the method includes operating the processor 110 with the determined average frequency for the predetermined time interval. In an embodiment, the method allows the operating frequency controller 130 to operate the processor 110 with the determined average frequency for the predetermined time interval.
(62) The various actions, acts, blocks, steps, or the like in the flow diagram 500 may be performed in the order presented, in a different order or simultaneously. Further, in some embodiments, some of the actions, acts, blocks, steps, or the like may be omitted, added, modified, skipped, or the like without departing from the scope of the invention.
(63)
(64) At 610, the method includes determining the average frequency for operating the processor 110 for the predetermined time interval. In an embodiment, the method allows the frequency determination engine 131 to determine the average frequency for operating the processor 110 for the predetermined time interval.
(65) At 620, the method includes operating the processor 110 with the determined average frequency for the predetermined time interval. In an embodiment, the method allows the operating frequency controller 130 to operate the processor 110 with the determined average frequency for the predetermined time interval.
(66) At 630, the method includes determining the average frequency meets the load required for the processor 110. In an embodiment, the method allows the frequency determination engine 131 to determine whether the average frequency meets the load on the processor 110.
(67) If the determined average frequency meets the load on the processor 110 then, at 640, the method includes continuing to operate the processor 110 with the determined average frequency for the predetermined time interval. In an embodiment, the method allows the operate frequency controller 130 to continue to operate the processor 110 with the determined average frequency for the predetermined time interval.
(68) If the determined average frequency does meets the load on the processor 110 then, at 650, the method includes dynamically varying the average frequency to meet the load. In an embodiment, the method allows the operate frequency controller 130 to dynamically vary the average frequency to meet the load.
(69) The various actions, acts, blocks, steps, or the like in the flow diagram 600 may be performed in the order presented, in a different order or simultaneously. Further, in some embodiments, some of the actions, acts, blocks, steps, or the like may be omitted, added, modified, skipped, or the like without departing from the scope of the invention.
(70)
(71) At 710, the method includes monitoring the average TB size for the first set of subframes. In an embodiment, the method allows the TB size determination engine 133 to monitor the TB size for the first set of subframes. At 720, the method includes predicting the average TB size for the second set of subframes based on the learning technique. In an embodiment, the method allows the TB size determination engine 133 to predict the average TB size for the second set of subframes based on the learning technique.
(72) At 730, the method includes determining the average frequency for operating the processor 110 for the predetermined time interval based on the predicted average TB size. In an embodiment, the method allows the frequency determination engine 131 to determine the average frequency for operating the processor 110 for the predetermined time interval based on the predicted average TB size.
(73) At 740, the method includes operating the processor 110 with the determined average frequency for the predetermined time interval for processing the second set of subframes. In an embodiment, the method allows the operating frequency controller 130 to operate the processor 110 with the determined average frequency for the predetermined time interval for processing the second set of subframes.
(74) The various actions, acts, blocks, steps, or the like in the flow diagram 700 may be performed in the order presented, in a different order or simultaneously. Further, in some embodiments, some of the actions, acts, blocks, steps, or the like may be omitted, added, modified, skipped, or the like without departing from the scope of the invention.
(75)
(76) At 820, the method includes determining the average size of the plurality of packets collected from the plurality of subframes. In an embodiment, the method allows the TB size determination engine 133 to determine the average size of the plurality of packets collected from the plurality of subframes. At 830, the method includes determine the average frequency based on the determined average size. In an embodiment, the method allows the frequency determination engine 131 to determine the average frequency based on the determined average size.
(77) The various actions, acts, blocks, steps, or the like in the flow diagram 800 may be performed in the order presented, in a different order or simultaneously. Further, in some embodiments, some of the actions, acts, blocks, steps, or the like may be omitted, added, modified, skipped, or the like without departing from the scope of the invention.
(78)
(79)
(80)
(81) As shown in the
(82)
(83)
(84) As shown in the
(85)
(86)
(87)
f.sub.required,i≤f.sub.i Equation 3
(88) In an embodiment, a minimum frequency required to process the total CPU load over n frames to meet the deadline is f.sub.average given by below Math
(89)
(90) In an embodiment, an average of frequencies applied in each sub frame over n frames P.sub.effective given by below Math
(91)
(92) In an embodiment, operating frequency controller 130 configured to apply the average frequency for reducing power consumption. Based on the Math
(93)
(94) At 1510, the method includes determining whether the determined average frequency falls between two discrete frequency levels. In an embodiment, the method allows the operating frequency controller 130 to determine whether the determined average frequency falls between two discrete frequency levels.
(95) If the determined average frequency falls between two discrete frequency levels then, at 1520, the method includes operating the processor 110 of the electronic device 100 between the higher frequency level and the lower frequency level in proportions of a ratio of difference between the higher frequency level and the average frequency level to the difference between the average frequency level and the lower frequency level over the predetermined time interval. In an embodiment, the method allows the operating frequency controller 130 to operate the processor 110 between the higher frequency level and the lower frequency level in proportions of a ratio of difference between the higher frequency level and the average frequency level to the difference between the average frequency level and the lower frequency level over the predetermined time interval.
(96) In an example, the operating frequency controller 130 applies the higher frequency level during a time duration of difference between the higher frequency level and the average frequency level over the predetermined time interval. Similarly, the operating frequency controller 130 applies the lower frequency level during the time duration of difference between the average frequency level and the lower frequency level over the predetermined time interval.
(97) In an embodiment, the proportions of a ratio of difference between the higher frequency level and the average frequency level to the difference between the average frequency level and the lower frequency level over the predetermined time interval indicates the two timer instance in the predetermined time interval. Consider the average frequency falls between exactly a center of the two discrete frequency levels such as the higher frequency level and the lower frequency level. Then, the operating frequency controller 130 operates the processor 110 at the lower frequency level during the time interval (T.sub.1) where the T.sub.1 is the time interval between the lower frequency level and the average frequency level. Similarly, the operating frequency controller 130 operates the processor 110 at the higher frequency level during the time interval (T.sub.2) where the T.sub.2 is the time interval between the higher frequency level and the average frequency level.
(98) If the determined average frequency does not falls between two discrete frequency levels then, at 1530, the method includes detecting whether the average frequency is less than the minimum frequency level of the discrete frequency levels. In an embodiment, the method allows the operating frequency controller 130 to detect whether the average frequency is less than the minimum frequency level of the discrete frequency levels.
(99) Further, at 1540, the method includes operating the processor 110 of the electronic device 100 between the minimum frequency level and an idle frequency level in proportions of a difference between the minimum frequency level and the average frequency level over the predetermined time interval. In an embodiment, the method allows the operating frequency controller 130 to operate the processor 110 of the electronic device 100 between the minimum frequency level and an idle frequency level in proportions of a difference between the minimum frequency level and the average frequency level over the predetermined time interval.
(100) The various actions, acts, blocks, steps, or the like in the flow diagram 1500 may be performed in the order presented, in a different order or simultaneously. Further, in some embodiments, some of the actions, acts, blocks, steps, or the like may be omitted, added, modified, skipped, or the like without departing from the scope of the invention.
(101)
(102) As shown in the
(103) Further, if f.sub.averagef.sub.min, then f.sub.average can be generated by switching between f.sub.min and idle in proportions of (f.sub.average):(f−f.sub.average) over the period for saving power. If f.sub.average is same as available frequency then, the operating frequency controller 130 can apply f.sub.average for entire time duration.
(104)
(105) At 1710, the method includes determining whether the determined average frequency falls between two discrete frequency levels. In an embodiment, the method allows the operating frequency controller 130 to determine whether the determined average frequency falls between two discrete frequency levels.
(106) If the determined average frequency falls between two discrete frequency levels then, at 1720, the method includes operating the processor 110 between the higher frequency level and an idle frequency level in proportions of a difference between the higher frequency level and the average frequency level over the predetermined time interval. In an embodiment, the method allows the operating frequency controller 130 to operate the processor 110 between the higher frequency level and an idle frequency level in proportions of a difference between the higher frequency level and the average frequency level over the predetermined time interval.
(107) If the determined average frequency does not falls between two discrete frequency levels then, at 1730, the method includes detecting whether the average frequency is less than the minimum frequency level of the discrete frequency levels. In an embodiment, the method allows the operating frequency controller 130 to detect whether the average frequency is less than the minimum frequency level of the discrete frequency levels.
(108) Further, at 1740, the method includes operating the processor 110 of the electronic device 100 between the minimum frequency level and the idle frequency level in proportions of a difference between the minimum frequency level and the average frequency level over the predetermined time interval. In an embodiment, the method allows the operating frequency controller 130 to operate the processor 110 of the electronic device 100 between the minimum frequency level and the idle frequency level in proportions of the difference between the minimum frequency level and the average frequency level over the predetermined time interval.
(109) The various actions, acts, blocks, steps, or the like in the flow diagram 1700 may be performed in the order presented, in a different order or simultaneously. Further, in some embodiments, some of the actions, acts, blocks, steps, or the like may be omitted, added, modified, skipped, or the like without departing from the scope of the invention.
(110)
(111)
(112) At 2010, the method includes determining whether the determined average frequency falls between two discrete frequency levels. In an embodiment, the method allows the operating frequency controller 130 to determine whether the determined average frequency falls between two discrete frequency levels.
(113) If the determined average frequency falls between two discrete frequency levels then, at 2020, the method includes determining whether a ratio between a power and a frequency associated with the higher frequency level is comparatively greater than the ratio between the power and the frequency associated with the lower frequency level. In an embodiment, the method allows the operating frequency controller 130 to determine whether a ratio between a power and a frequency associated with the higher frequency level is comparatively greater than the ratio between the power and the frequency associated with the lower frequency level. For example, if f.sub.L<f.sub.average<f.sub.H, then the operating frequency controller 130 is configured to determine whether P.sub.H/F.sub.H>P.sub.L/F.sub.L.
(114) If the ratio between the power and the frequency associated with the higher frequency level is comparatively greater than the ratio between the power and the frequency associated with the lower frequency level i.e., P.sub.H/F.sub.H>P.sub.L/F.sub.L. then at 2030, the method includes operating the processor 110 between the higher frequency level and the lower frequency level (f.sub.H and f.sub.L) in proportions of the ratio of difference between the higher frequency level and the average frequency level to the difference between the average frequency level and the lower frequency level (f.sub.H−f.sub.avg:f.sub.avg−f.sub.L) over the predetermined time interval. In an embodiment, the method allows the operating frequency controller 130 to operate the processor 110 between the higher frequency level and the lower frequency level in proportions of the ratio of difference between the higher frequency level and the average frequency level to the difference between the average frequency level and the lower frequency level over the predetermined time interval.
(115) If the ratio between the power and the frequency associated with the higher frequency level is not greater than the ratio between the power and the frequency associated with the lower frequency level i.e., P.sub.H/F.sub.H<P.sub.L/F.sub.L. then at 2040, the method includes operating the processor 110 of the electronic device 100 between the higher frequency level and an idle frequency level f.sub.H and f.sub.idle in proportions of a difference between the higher frequency level and the average frequency level (f.sub.H−f.sub.avg) over the predetermined time interval. In an embodiment, the method allows the operating frequency controller 130 to operate the processor 110 of the electronic device 100 between the higher frequency level and the idle frequency level in proportions of a difference between the higher frequency level and the average frequency level over the predetermined time interval.
(116) If the determined average frequency does not falls between two discrete frequency levels then, at 2050, the method includes detecting whether the average frequency is less than the minimum frequency level of the discrete frequency levels i.e., f.sub.average<f.sub.min. In an embodiment, the method allows the frequency determination engine 131 to detect whether the average frequency is less than the minimum frequency level of the discrete frequency levels.
(117) Further, at 2060, the method includes operating the processor 110 of the electronic device 100 between the minimum frequency level and the idle frequency level (f.sub.min and f.sub.idle) in proportions of a difference between the minimum frequency level and the average frequency level (f.sub.min−f.sub.avg) over the predetermined timer interval. In an embodiment, the method allows the operating frequency controller 130 to operate the processor 110 of the electronic device 100 between the minimum frequency level and the idle frequency level in proportions of a difference between the minimum frequency level and the average frequency level over the predetermined timer interval.
(118) The various actions, acts, blocks, steps, or the like in the flow diagram 2000 may be performed in the order presented, in a different order or simultaneously. Further, in some embodiments, some of the actions, acts, blocks, steps, or the like may be omitted, added, modified, skipped, or the like without departing from the scope of the invention.
(119)
(120)
(121) The embodiments disclosed herein can be implemented through at least one software program running on at least one hardware device and performing network management functions to control the elements. The elements shown in the
(122) The foregoing description of the specific embodiments will so fully reveal the general nature of the embodiments herein that others can, by applying current knowledge, readily modify or adapt for various applications such specific embodiments without departing from the generic concept, and, therefore, such adaptations and modifications should and are intended to be comprehended within the meaning and range of equivalents of the disclosed embodiments. It is to be understood that the phraseology or terminology employed herein is for the purpose of description and not of limitation. Therefore, while the embodiments herein have been described in terms of preferred embodiments, those skilled in the art will recognize that the embodiments herein can be practiced with modification within the spirit and scope of the embodiments as described herein.