Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DATA PROCESSING APPARATUS
Document Type and Number:
WIPO Patent Application WO/2008/075137
Kind Code:
A1
Abstract:
A data processing apparatus comprising a variable speed processor, a power management controller adapted to control the frequency of a clock signal provided to the processor, and a memory adapted to store power management data in respect of each of plural software applications, wherein the power management controller is configured to consult the memory and determine a suitable processor speed based on a determination of active applications and the power management data, and to control the frequency of the clock signal accordingly. The plural applications may comprise a packet-switched data application such as high speed Internet, email and video telephony. A method of operating and a method of manufacturing the data processing apparatus are also provided.

Inventors:
BAGGSTROM STEFAN (FI)
Application Number:
PCT/IB2006/055001
Publication Date:
June 26, 2008
Filing Date:
December 21, 2006
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
NOKIA CORP (FI)
BAGGSTROM STEFAN (FI)
International Classes:
G06F1/32; G06F9/50
Domestic Patent References:
WO2000038038A12000-06-29
Foreign References:
US20060123262A12006-06-08
US6986068B22006-01-10
Attorney, Agent or Firm:
DERRY, Paul et al. (London London EC1A 7DH, GB)
Download PDF:
Claims:

Claims

1. A data processing apparatus comprising: a variable speed processor; a power management controller adapted to control the frequency of a clock signal provided to the processor, and a memory adapted to store power management data in respect of each of plural software applications, wherein the power management controller is configured to consult the memory and determine a suitable processor speed based on a determination of active applications and the power management data, and to control the frequency of the clock signal accordingly.

2. A data processing apparatus according to claim 1, wherein the controller is further adapted to control a voltage supplied to the processor.

3. A data processing apparatus according to claim 1 or 2, wherein the memory comprises a table for storing status information for each application in the apparatus.

4. A data processing apparatus according to claim 3, wherein the table includes a field including an identifier for the application and a field indicating whether the application is active or inactive.

5. A data processing apparatus according to claim 3 or 4, wherein the power management controller is configured to receive a signal indicating that a status of an application has changed and, in response to said signal, update said table.

6. A data processing apparatus according to any one of the preceding claims, wherein the power management data is preloaded in said memory of the apparatus during manufacture.

7. A data processing apparatus according to any one of the preceding claims, wherein the data processing apparatus is operable to provide a new software application and wherein the memory is configured to be updated with power management data for said new software application.

8. A data processing apparatus according to any one of the preceding claims, wherein an actual computing power required for a software application of one of said plural software applications is variable and wherein the power management data for said software application indicate a power level higher than an expected average computing power required for the software application.

9. A data processing apparatus according to any one of the preceding claims, wherein the plural applications comprise at least one packet-switched data application.

10. A data processing apparatus according to any one of the preceding claims, wherein the plural of applications comprise one or more of high-speed Internet, video telephony, video teleconferencing and a wireless LAN communication application.

11. A mobile telephone comprising a data processing apparatus according to any one of the preceding claims.

12. A method of operating data processing apparatus, the method comprising: storing power management data in respect of each of plural software applications; determining a suitable processor speed based on a determination of active applications and the stored power management data; and controlling a frequency of a clock signal provided to a variable speed processor of the data processing apparatus in dependence on the determined processor speed.

13. A method according to claim 12 further comprising controlling the voltage supplied to the processor in dependence on the power management data.

14. A method according to claim 12 or 13, further comprising storing a table in memory indicating whether an application is active or inactive.

15. A method according to claim 14, further comprising receiving a signal in a power management controller indicating that a status of an application has changed and in response to receiving the signal updating said table.

16. A method according to any one of claims 12 to 15, wherein the method further comprises: updating the memory with power management data for a new software application.

17. A method according to any one of claims 12 to 16, wherein an actual computing power required for a software application is variable and wherein the power management data for said software application indicate a power level higher than an expected average computing power required for the software application

18. A method according to any one of claims 12 to 17, wherein said applications comprises at least one packet-switched data application.

19. A method according to any one of claims 12 to 18, comprising manufacturing the device with power management data preloaded in a memory.

20. A computer program product comprising computer readable code that when executed by a controller causes the controller to perform the method of any one of claims 12 to 18.

21. A computer readable medium storing the computer program product of claim 20.

22. A method of manufacturing a data processing apparatus according to any one of claims 1 to 11, the method comprising: providing a variable speed processor in the data processing apparatus; providing a memory adapted to store power management data in respect of each of plural software applications; providing a power management controller configured to consult the memory and determine a suitable processor speed based on a determination of active applications and the power management data and adapted to control the frequency of a clock signal provided to the processor in dependence on the determined processor speed; and loading the memory with the power management data.

Description:

Data processing apparatus

Technical Field

The invention relates to data processing apparatus, to a method of operating data processing apparatus, and to a method of manufacturing data processing apparatus.

Background Art

The more energy consuming the tasks carried out by a battery-powered device, the more often the battery needs to be recharged or changed. Battery powered devices, such as mobile telephones, mp3 players and PDAs, are nowadays expected to handle complex applications including, for example, high-resolution graphics and high speed network access. These types of applications typically require considerable computing power and, thus, tend to give rise to high power consumption. Consumers desire devices to be small, so designers aim to utilise small volume batteries.

The component of an electronic device that consumes the largest amount of power is typically the main processor. The power consumed is, simply speaking, proportional to the square of the voltage supplied to the processor multiplied by the speed at which the processor operates, which depends on the frequency of a clock signal supplied to the processor. However, the voltage cannot be lowered to reduce the power consumption without also lowering the processor speed. A high voltage is required to maintain a high processor speed. Therefore, to lower the energy consumption of the device, the speed of the processor normally must be lowered.

Conventionally, a battery-powered device comprises a clock that supplies a clock signal of fixed frequency to the processor. The frequency of the clock signal is high enough to allow the processor to handle the most power consuming applications. However, for most applications, the high operating speed is not required. In fact, a large proportion of the time, portable electronic devices such

as mobile phones and PDAs are in idle mode and the speed of the processor actually required is low compared to the actual speed of the processor. In such situations, considerably energy can be expended on unused processor cycles.

To minimise the waste of energy, processors operable at variable speeds have been developed for battery-powered devices such as mobile phones, PDAs and mp3 players. The speed of these processors can be adjusted dynamically while the device is being used. Different methods for determining and controlling the speed of the processors have been proposed.

Difficulties arise when attempting to estimate the speed of the processor required for some processing tasks, especially if the task is related to an application the computing power requirements of which are not constant and cannot be accurately predicted. High-speed Internet is an example of such an application. For instance, the computing power required if the application is used to download a simple text file is considerably different to the computing power required if the application is used to download a film clip comprising high-resolution graphics. Moreover, even if the computing power requirements of the system are monitored to allow the clock speed to be changed if more power is suddenly required, the time it takes to detect the increased power requirement, determine the clock speed and voltage required and adjust the clock speed and voltage accordingly may be sufficiently long to cause undesired delays and a less than satisfactory user experience.

The invention was made in this context.

Disclosure of Invention

According to the invention, there is provided a data processing apparatus comprising: a variable speed processor; a power management controller adapted to control the frequency of a clock signal provided to the processor, and a memory adapted to store power management data in respect of each of plural software applications, wherein the power management controller is configured to

consult the memory and determine a suitable processor speed based on a determination of active applications and the power management data, and to control the frequency of the clock signal accordingly.

Thus, the invention allows the power requirements to be determined based on the active applications and predetermined power requirements for the active applications. Monitoring of changing power requirements of a particular application with time can therefore be avoided. Moreover, since the processing power required can be determined based on stored power management data at the time the application becomes active, adjustment of the clock speed in response to changed processing requirements of the application after the application has been launched can be avoided. Accordingly, the invention can prevent delays due to adjustments of the clock speed to handle increased processing power requirements of the application.

The controller may further be adapted to control a voltage supplied to the processor. The invention therefore provides apparatus that allow the energy consumed to be reduced and the length of time before the battery needs to be recharged to be extended.

The power management data may be preloaded in said memory of the apparatus during manufacture. Therefore, the energy consumption of the apparatus can be reduced the first time the apparatus is powered up without any need to investigate the power consumption of different processing tasks first.

The data processing apparatus may be operable to provide a new software application and the memory may be configured to be updated with power management data for said new software application.

An actual computing power required for a software application of one of said plural software applications may be variable and the power management data for

said software application may indicate a required power level higher than an expected average computing power required for the software application.

Therefore, even if the optimal computing requirement of an application cannot be determined, the clock speed can be set at the launch of the application to allow the application to run whilst avoiding further changes to the clock speed as a result of changing computing power requirements of the application.

The applications may comprise at least one packet-switched data application. In more detail, the applications may comprise at least one out of high-speed Internet, video telephony, video teleconferencing and a wireless LAN communication application.

According to the invention, there is also provided a method of operating data processing apparatus, the method comprising: storing power management data in respect of each of plural software applications; determining a suitable processor speed based on a determination of active applications and the stored power management data; and controlling a frequency of a clock signal provided to a variable speed processor of the data processing apparatus in dependence on the determined processor speed.

The method may further comprise controlling the voltage supplied to the processor in dependence on the power management data.

The method may further comprise storing a table in memory indicating whether an application is active or inactive. Moreover, the method may comprise receiving a signal in a power management controller indicating that a status of an application has changed and in response to receiving the signal updating said table.

Additionally, the method may comprise manufacturing the device with power management data preloaded in a memory. The method may also comprise

updating the memory with power management data for a new software application.

Brief Description of Drawings Embodiments of the present invention will now be described, by way of example, with reference to the accompanying drawings, in which:-

Figure l is a view of a mobile telephone handset according to an embodiment of the invention;

Figure 2 is a schematic diagram of the major circuitry components of the handset of Figure 1;

Figure 3 is a schematic diagram of the components of the processing unit of

Figure 2;

Figure 4 illustrates an example of a table for storing data about the state of an application in the handset of Figure 1 ; Figure 5 illustrates an example of a table for storing an indication about the power requirements of applications resident in the handset of Figure 1 ;

Figure 6 illustrates a method of determining and setting the speed and voltage of the processor when the handset is first switched on according to one embodiment of the invention; Figure 7 illustrates a method of determining the overall power requirement of the handset according to one embodiment of the invention;

Figure 8 illustrates a method of determining and setting the speed and voltage of the processor when the power requirement of the handset changes, according to one embodiment of the invention; Figure 9 illustrates a method of determining the power requirement of an application of the handset according to one embodiment of the invention.

Detailed Description

Referring to Figure 1 , a mobile station in the form of a mobile telephone handset MS 1 includes a microphone 2, keypad 3, with soft keys 4 which can be programmed to perform different functions, an LCD display 5, an ear-piece 6, an antenna configuration 7 which is contained within its housing and a battery 8

behind a battery cover. The antenna configuration 7 may include one or more separate antennas for communicating signals of different frequencies.

The handset 1 is operable to communicate, through cellular radio apparatus 9 with one or more individual land mobile networks 10, some of which may be packet switched networks, such as, but not limited to GSM, GPRS and CDMA networks. The handset is also operable to connect, via an access point 11, to a Local Area Network (LAN) 12. Additionally, the handset is operable to connect to an ad-hoc Bluetooth™ network 13. Yet further, the handset may be operable to connect to the Internet via a server (not shown), accessed either through the mobile networks 10 or the LAN 12.

Figure 2 illustrates the major circuit components of the handset 1. Signal processing is carried out under the control of a processing unit 14, which will be described in more detail below, with respect to Figure 3. The processing unit 14 receives instruction signals from the keypad and soft keys 3, 4 and controls operation of the LCD display 5. Electrical analogue audio signals are produced by microphone 2 and amplified by amplifier 15. Similarly, analogue audio signals are fed to earpiece 6 through an amplifier 16.

Information concerning the identity of the user is held on a smart card 17 in the form of, for example, a GSM SIM. The SIM card is removably received in a SIM cardholder 18.

A camera module 19 is connected to the processing unit 14 for allowing a user to take photos and videos. A lens for capturing images is provided at the rear of the handset (not shown).

The processing unit 14 is also connected to a memory/ storage 20, which may include main memory, such as RAM, and removable memory in the form of, for example, a memory card such as a CompactFlash card, a Multimedia Card (MMC) or a Memory Stick. The main memory stores application programs such

as the operating system, the browser, software for the camera module, software for playing music files and software for various games. The main memory and/or the removable memory may store audio data for the music player and for playing games and image data for the games, browser and/or image data captured by the camera. The operating system may be the Symbian operating system with a Series 90 User Interface.

The handset circuitry includes a codec 21 and an RF stage 22 connected to the antenna configuration 7. The codec 21 receives analogue signals from the microphone amplifier 15, digitizes them into, for example, a GSM signal format and feeds them to the RF stage 22 for transmission through the antenna 7 to the networks 10, 12 and 13. Data signals are also fed to the RF stage 22 for transmission through the antenna 7 to the networks 10, 12 and 13. Signals received from the networks 10, 12, 13 are fed through the antenna configuration 7 to be demodulated in the RF stage 22. Audio signals are fed to codec 21 , so as to produce analogue signals fed to the amplifier 16 and the earpiece 6 and data signals are fed to the processor and the memory 20 and display 5. It should be understood that although only one RF stage is shown, the mobile handset typically comprises at least one separate RF stage for each communication protocol, such as a cellular communication, a Bluetooth™ communication and a wireless LAN communication protocols.

AU the components of Figure 2 draw power from a battery 8.

Referring to Figure 3, the processing unit 14 comprises a processing core 23 including a number of processor registers 24. The processing core is connected to an associated flash memory 25 and a Static Random Access Memory (SRAM) memory 26. The processing core is further connected to a power management controller (PMC) 27 and a processor clock 28. The processing core 23 may also have one or more associated caches (not shown).

The processing unit 14 may be implemented as an integrated circuit with on-chip SRAM and flash memory. For example, the processing unit may be an Intel XScale ® processor.

The clock 28 supplies a clock signal to the processing core 23. The clock is operable to provide clock signals of different frequencies. A suitable clock can supply a signal with a frequency high enough to allow the processing core to handle applications for which a high level of processing power is needed, such as video teleconferencing calls, gaming and high-speed Internet access. The clock 28 is also operable to generate signals of lower frequencies for supplying to the processing core 23 when tasks that do not require such high processing speeds are being handled. In one embodiment, signals with lower frequency than the maximum frequency are generated by frequency division. When the processing core 23 operates with a lower frequency, the voltage supplied to the processing core can also be reduced, and the overall power consumption of the processing core can be lowered. The clock may include but is not limited to a digitally controlled phase locked loop (PLL) or a digitally controlled clock divider. The frequency of the clock signal may be adjusted by the processing core 23 or PMC 27 by the processing core or the PMC writing a value to the clock register in the register 24.

The PMC 27 may be a logical unit responsive to input from the processing core 23 and applications resident in the device 1. It is configured to control the voltage supplied to the processing core 23 from the battery 8 and the speed with which the processing core 23 operates to maintain the processing power at a suitable level. The PMC 28 keeps track of which applications are active in the handset 1, determines the power requirements based on predetermined power requirements of the active applications and derives a suitable clock speed and voltage for meeting the power requirements. In one embodiment, the PMC 27 directly writes a value in the clock register in the register 24 for changing the frequency of the clock signal supplied to the processing core. In another

embodiment, the PMC instructs the processing core to write the value in the register 24.

In some embodiments, the PMC 27 consults a table 29 indicating which applications are active and which ones are not active, as shown in Figure 4. The instructions for maintaining the table may be stored in the non-volatile flash memory 25 when the mobile handset is switched off. When the mobile is switched on, the instructions are loaded into the volatile SRAM 26 and the table 29 is created. The table includes a number of records including a first field 30 for the name of the application and a second field 31 for the status of the application. For example, a 1 may be used to indicate that the application is active whereas a 0 may be used to indicate that the application is inactive, as shown in Figure 4. The applications listed in the table of Figure 4 include a number of packet switched applications including voice telephony, video telephone (SMS) application, an email application, a high-speed Internet application and a Bluetooth™ application. The applications further include radio, gaming and camera applications. The table 29 is exemplary only and more or fewer applications can be listed in the table. For example, for the Bluetooth™ application there may be a separate record for Bluetooth™ in idle mode and Bluetooth™ during transmission of data since the power requirement for the two tasks are different.

With reference to Figure 5, another table 32 may be consulted to determine the power requirements of each application. Each record in the table comprises a field 33 for the name of the application and a field 34 for the level of power consumed by the application. The power requirements of each application are predetermined at the design stage of the application and the handset. For example, the designer specifies the amount of power required for the application to run based on tests performed on a prototype of the handset. Alternatively, the power requirements may be determined based on simulations or an analysis of previous similar systems. The information about the power requirements of each application is then loaded into the memory of the handset before it is put

on the market. It is contemplated that instead of expressing the processing power requirement for each application as high/medium/low, as shown in table 32 of Figure 5, a scale from 1 to 10 may be used, or the levels can be specified in actual clock speeds or the minimum number of instructions that must be carried out per second to allow the application to run. The table 32 of Figure 5 is an example only and should not be interpreted as limiting the scope of the invention.

It should be realised that for many applications, the power requirements are not constant. The value specified in the table for a given application indicates a power level required to perform any processing task that is part of the application. Consequently, the power level specified in the table may correspond to a power level sufficiently high to handle the most processor intensive tasks of the application. Since the clock speed and voltage are set to handle the most processor intensive tasks of the application when the application becomes active, the clock speed and voltage need not be adjusted as a result of changing power requirements of the application during the run-time of the application and the user experience is not adversely affected by any delays caused by the time it takes to determine a suitable clock speed and voltage and adjust the clock speed and voltage accordingly. If more than one application is active at the same time, the clock speed and voltage are set to handle the combined computing power requirements of all the active applications.

The operation of the PMC 14, according to one embodiment of the invention, will now be described in more detail with respect to Figures 6 to 8. At step 601, the handset is switched on and the operating system is initialised. On initialisation the PMC 14 instructs the processing core 23 to generate a copy of table 29 at step 602. A separate field for each application supported by the handset is generated. In some embodiments of the invention, more than one field is generated for each application such as Bluetooth™ idle and Bluetooth™ transmitting/receiving. Moreover, in some embodiments, fields are only generated for some, and not all, of the applications supported by the device 1.

The status fields 31 of all the listed applications are then populated at step 603. When the handset is first switched on, provided no other information is available, all applications are set as inactive by default. However, some fields may be populated based on the settings of the handset when it was switched off. For example, the settings stored in main memory 20 may be consulted to check whether a Bluetooth™ function or a WLAN function is active.

When the table 29 has been populated with values for each application, the PMC 27 determines the total power requirement of the device in dependence on the information in tables 29 and 32 at step 604. This step will be described in more detail with respect to Figure 7.

At step 605, the PMC 27 determines an appropriate frequency and voltage level to achieve the total power level determined at step 604. For example, the range of processing power that the processing core can achieve may have been previously divided into a number of sub-ranges. A third table (not shown) may specify an appropriate clock speed for each sub-range. The clock speed may be the lowest clock speed possible for providing the highest processing power of the specific sub-range. When the PMC 27 has determined the total power level required at step 604, it may check to which sub-range the total power level required belongs and note the corresponding clock speed. Alternatively, the total power level requirement is expressed in the approximate number of Million Instructions per Second (MIPS) required and the PMC 27 selects the lowest frequency which the clock 28 can produce that also allows the processing core 23 to perform the number of MIPS required. Methods for determining the processing speed required based on the power level needed is known in the art and will not be described in detail here. Any suitable method may be used. When the clock speed has been determined, a voltage high enough to maintain the determined clock speed but low enough to reduce the power to a suitable level is chosen.

The process then continues to step 606 and the PMC 27 sets the appropriate values for the frequency of the clock signal and the voltage in the register 24 of the processor to ensure that the frequency of the clock signal and the voltage drawn from the battery 8 are adjusted.

Step 604 will now be described in more detail with respect to Figure 7. Each time step 604 is repeated, the PMC 14 sets an internal variable, the power level (PL), to a low value. The low value may be a non-zero value and correspond to the power requirement of the mobile phone when all applications are idle or switched off, i.e. the power required to keep the handset switched on. It may also be high enough to include a margin. For example, the power consumption of the handset varies slightly with temperature. A margin may be included to allow for variations from the mean temperature. Moreover, if not all the applications supported by the handset are listed in the tables of Figure 4 and 5, the margin may be high enough to allow for the highest processing power required by the applications not listed. Alternatively, the low value may be zero. PL is set to the low value at step 701.

The process then continues to step 702 and the PMC 27 consults the copy of the table 29 that indicates which applications are active to check if there are any active applications. If there are active applications, the process continues to step 703 and the first active application is identified. In Figure 4, the first active application is the email application. The PMC accordingly looks up the power level required to run the email application in the table 32, which lists the power requirements of the applications supported by the device, at step 704. The power requirement is indicated in the table 32 of Figure 5 as medium. At step 705, the PMC 27 then increases the value of the internal PL value with a value corresponding to a medium power requirement. The process then proceeds to step 706 and the table 29 is consulted to establish whether there are further active applications.

If there are further active applications the process proceeds to step 703 and the next active application is identified. In the table of Figure 4, the next active application is the Bluetooth™ application. The power requirement of the Bluetooth™ application is found to be medium, at step 704, in the table 32 of Figure 5. A value corresponding to a medium power requirement is therefore added to the value of PL at step 705. At step 706, it is found that there are still additional active applications in table 29 and at step 703 the remaining active application is identified as the radio. The power requirement of the radio is identified as low, at step 704, in the table 32 of Figure 5 and a value corresponding to a low power requirement is added to the value of PL. This time, no more active applications can be found at step 706 and, therefore, the process continues to step 707.

The total power requirement of the device is determined, at step 707, to correspond to the current value of PL.

If no active applications were found at step 702, steps 703 to 706 would be skipped and the process would continue to step 707. The total power level would then be set to low.

With reference to Figure 8, a process for managing the power level in response to a change in the number and details of the active applications will now be described with respect to Figure 8. At step 801 , a new application is launched or an active application is closed. At step 802, the application reports to the PMC 27, which updates the table 29 that indicates whether applications are active or inactive. The update may involve changing a zero to a one or vice versa. At step 803, the total power level required for the handset under the new conditions is then determined. This step corresponds to the process discussed with respect to Figure 7. At step 804 a suitable speed and voltage for the processor is determined and at step 805, values are written in the register 24 for changing the speed and voltage as described with respect to steps 605 and 606 of Figure 6.

As discussed above, the power requirements of each application is determined at the design stage and loaded in memory 25, in the form of a table 32, before the handset is put on the market. With reference to Figure 9, an engineer may design the application for the handset, step 901, and during that process the processing power of the application may be specified. It may not always be possible to determine the power requirements exactly. For example, the power requirement of an application for using high speed Internet may be dependent on the type of data communicated from/to the handset. However, the engineer can specify the lowest and the highest processing speed required by the application. Also, the engineer may determine whether the power requirement is high, medium or low with respect to the power requirement of other known applications and based on the range defined by the determined highest and lowers processing speed. At step 902, the application is tested in a prototype of the device or the power requirements are simulated and the specified power level is verified at step 903. An indication of the power level required is then programmed into memory of each device to go on the market at step 904.

It will be appreciated that many modifications may be made to the embodiments described above. For example, the table 29 for storing details of which applications are active and the table 32 for storing the power requirements of each application may be stored in main memory 20 instead of the memory 25, 26 of the processing unit 14. Moreover, they may be stored in a database provided in the handset. Moreover, if the handset is upgraded with new applications, the PMC 27 may be configured to upgrade the tables with information about the new applications. The instructions and data for upgrading the tables may be provided as part of the installation software for the new application. Alternatively, the power management data for the application may be downloaded from the Internet.

Additionally, although the power management method and apparatus has been described with respect to a mobile handset, it can be used in any type of electronic device including devices connected to the energy grid, such as PCs and

multimedia systems. Although a device connected to the energy grid is not subject to the same energy restrictions as a battery-powered device, the invention would still provide an advantage in that energy could be saved and energy costs could be reduced.

It should be realised that the foregoing examples should not be construed as limiting. Other variations and modifications will be apparent to persons skilled in the art upon reading the present application. Such variations and modifications extend to features already known in the field, which are suitable for replacing the features described herein, and all functionally equivalent features thereof. Moreover, the disclosure of the present application should be understood to include any novel features or any novel combination of features either explicitly or implicitly disclosed herein or any generalisation thereof and during the prosecution of the present application or of any application derived therefrom, new claims may be formulated to cover any such features and/or combination of such features.