WO2005106623A1 - Cpuクロック制御装置、cpuクロック制御方法、cpuクロック制御プログラム、記録媒体、及び伝送媒体 - Google Patents

Cpuクロック制御装置、cpuクロック制御方法、cpuクロック制御プログラム、記録媒体、及び伝送媒体 Download PDF

Info

Publication number
WO2005106623A1
WO2005106623A1 PCT/JP2005/007540 JP2005007540W WO2005106623A1 WO 2005106623 A1 WO2005106623 A1 WO 2005106623A1 JP 2005007540 W JP2005007540 W JP 2005007540W WO 2005106623 A1 WO2005106623 A1 WO 2005106623A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
time
cpu
unit
execution
Prior art date
Application number
PCT/JP2005/007540
Other languages
English (en)
French (fr)
Inventor
Katsushige Amano
Masashige Mizuyama
Original Assignee
Matsushita Electric Industrial Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co., Ltd. filed Critical Matsushita Electric Industrial Co., Ltd.
Priority to JP2006512749A priority Critical patent/JPWO2005106623A1/ja
Priority to US10/583,657 priority patent/US20080307248A1/en
Publication of WO2005106623A1 publication Critical patent/WO2005106623A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • CPU clock control device CPU clock control method, CPU clock control program, recording medium, and transmission medium
  • the present invention relates to a CPU clock control device, a CPU clock control method, a CPU clock control program, a recording medium, and a transmission medium that reduce the power consumption by controlling the operating frequency of a CPU in an information processing device. .
  • Information processing devices operate by the central processing unit (CPU) interpreting and executing instructions, but the power consumed by the CPU varies according to its operating frequency (the number of clocks input per unit time). I do.
  • Various methods for reducing CPU power consumption by controlling the operating frequency have been devised and put into practical use.
  • the processing required by driving the CPU at the maximum operating frequency is performed as quickly as possible, and no processing is required!
  • the clock is stopped during the time (idle time). There is a way to do that. For example, consider the case where a CPU with a maximum operating frequency of 100MHz needs to process 50M (mega) clocks within one second. In this case, the CPU is driven for 0.5 seconds at the operating frequency of 100MHz to complete the process, and for the remaining 0.5 seconds, the process is performed when the clock is completely stopped. Another method is to calculate the minimum operating frequency at which processing can be completed within the required time, and drive the CPU at that operating frequency. For example, if it is necessary to perform processing for 50M clocks within 1 second, drive the CPU at 50M Hz operating frequency for 1 second. Both of these methods reduce unnecessary clocks by using only the minimum number of clocks required for processing and reduce CPU power consumption.
  • power consumption is reduced by driving the CPU at a constant operating frequency without changing the operating frequency as much as possible. For example, driving at 150 MHz for 1 second will consume less power than driving the first 0.5 seconds at 200 MHz and the remaining 0.5 seconds at 100 MHz.
  • the relationship between the power supply voltage and the operating frequency depends on the CPU design, but as described above, driving the CPU at the same operating frequency without creating an idle period as much as possible to meet the processing demands has a significant power reduction effect. Often.
  • an execution time such as a start time and an end time of the processing or an execution cycle is often specified.
  • an execution time such as a start time and an end time of the processing or an execution cycle.
  • Such a process in which the time is designated can be realized, for example, by using a timer event managed by the operating system (OS) of the information processing apparatus, or by activating a task from the timer event.
  • OS operating system
  • Patent document 1 JP-A-8-76874
  • Patent Document 2 JP-A-2002-99433
  • Non-Patent Document 1 Transactions of the Institute of Electronics, Information and Communication Engineers D- I Vol. J83 -D-I No. 12 pp. 1 249-1259.
  • the present invention has been made in view of the above problems, and aims to reduce power consumption of a CPU by smoothing a processing amount required of the CPU in an information processing device.
  • a CPU clock control device is a CPU clock control device that controls a clock of a CPU of the CPU clock control device, and a request related to an execution time of a program executed by the CPU.
  • a program execution time registration unit for registering a permissible range of a request regarding the execution time of the program, a program processing amount detection unit for detecting a processing amount required for executing the program, and a program execution time registration unit.
  • the processing amount detected by the program processing amount detection unit is equalized within a predetermined time range so that the processing amount is equalized.
  • a program execution time determination unit for determining an execution start time and a processing amount per unit time, and the program determined by the program execution time determination unit Fruit A CPU operating frequency setting unit that determines an operating frequency of the CPU at each time based on a row start time and a processing amount per unit time, and sets the operating frequency to the CPU; and a CPU operating frequency setting unit. And a program execution unit for executing the program at the execution start time determined by the program execution time determination unit and the processing amount per unit time.
  • FIG. 1 is a schematic configuration diagram of an information processing device that constructs a CPU clock control device according to a first embodiment of the present invention.
  • FIG. 2 is a flowchart illustrating an operation at the time of CPU operating frequency control in Embodiment 1 of the present invention.
  • FIG. 3 is a diagram illustrating an example of a process according to Embodiment 1 of the present invention.
  • FIG. 4 is a diagram illustrating an example of a process according to the first embodiment of the present invention.
  • FIG. 5 is a schematic configuration diagram of an information processing device that constructs a CPU clock control device according to a second embodiment of the present invention.
  • FIG. 6 is a flowchart illustrating an operation at the time of CPU operating frequency control in Embodiment 2 of the present invention.
  • FIG. 7 is a diagram illustrating an example of a process according to Embodiment 2 of the present invention.
  • FIG. 8 is a schematic configuration diagram of an information processing device that constructs a CPU clock control device according to a third embodiment of the present invention.
  • FIG. 9 is a flowchart illustrating an operation at the time of CPU operating frequency control in Embodiment 3 of the present invention.
  • FIG. 10 is a diagram illustrating an example of a process according to Embodiment 3 of the present invention.
  • FIG. 11 is a schematic configuration diagram of an information processing device that constructs a CPU clock control device according to a fourth embodiment of the present invention.
  • FIG. 12 is a flowchart illustrating an operation at the time of CPU operating frequency control in Embodiment 4 of the present invention.
  • FIG. 13 is a diagram illustrating an example of a process according to Embodiment 4 of the present invention.
  • FIG. 14 is a diagram illustrating an example of a process according to Embodiment 4 of the present invention.
  • FIG. 1 is a diagram illustrating an information processing apparatus that performs CPU operation frequency control according to Embodiment 1 of the present invention.
  • the information processing device 51 includes at least one or more central processing units (CPU) 1 and a memory device 2.
  • the information processing device 51 includes the operation unit 3 as an input device. Further, the information processing device 51 may include another device such as an output device (not shown). The same applies to the input device and the output device in other embodiments.
  • Any type of CPU 1 can be used as long as the operating frequency can be changed.
  • the operating frequency of the CPU 1 is changed by an operating system (OS) 100, more precisely, by a CPU operating frequency setting unit 104 in the OS 100 described later.
  • OS operating system
  • the memory device 2 stores at least one or more programs 10 and the OS 100 of the information processing device 51.
  • Any type of memory device 2 such as a random access memory (RAM) and a flash memory can be used as long as the memory device 2 has a sufficient function and capacity.
  • the memory device 2 may be a combination of different types of memory devices, including a plurality of memory devices of the same type, which need not be constituted by a single memory device, or a read only memory (ROM). Is also good.
  • an external storage device such as a node disk may be provided in addition to the memory device 2, and the contents of the memory device 2 may be moved to the external storage device within a range in which the operation of the information processing device 51 does not cause any problem! ,.
  • the program 10 describes each process executed by the information processing device 51 as a program of the information processing device 51. That is, each program # 1, # 2, etc. included in the program 10 may have any size and form as long as it can be divided as an execution unit. In the present embodiment, the information processing device 51 performs various processes by executing the program 10 under the control of the OS 100.
  • the above program 10 and the like can be supplied through a recording medium 31 such as a ROM, a flexible disk, or a CD-ROM, or can be supplied through a transmission medium 33 such as a telephone line or a network. It is also possible.
  • a CD-ROM is depicted as the recording medium 31, and a telephone line is depicted as the transmission medium 33.
  • the program 10 and the like recorded on the CD-ROM can be read out, for example, by connecting a CD-ROM reader 32 as an external device of the information processing device 51 to the main body of the information processing device 51, such as a RAM or a hard disk (not shown). Etc. can be stored.
  • the program 10 or the like When the program 10 or the like is supplied in the form of a ROM as the recording medium 31, by mounting the ROM in the information processing apparatus 51, the information processing apparatus 51 can execute processing according to the program 10 or the like.
  • the ROM is included in the memory device 2.
  • the program 10 and the like supplied through the transmission medium 33 are received through the communication device 34 and stored in, for example, a RAM or a hard disk (not shown).
  • the transmission medium 33 is not limited to a wired transmission medium, but may be a wireless transmission medium.
  • the OS 100 performs the CPU clock control according to the present embodiment, and thus the program management unit 110, the program execution time registration unit 101, the program processing amount detection unit 102, the program execution time determination unit 103, the CPU operation frequency A setting unit 104 and a program execution unit 105 are provided.
  • the program management unit 110, the program execution time registration unit 101, the program processing amount detection unit 102, the program execution time determination unit 103, the CPU operating frequency setting unit 104, the program execution unit 105, and the CPU 1 Have a function as the CPU clock control device 11.
  • the program management unit 110 has a management table 111.
  • the management table 111 stores the execution start time, the permissible range, and the like of each program in association with each of the programs # 1, # 2, and the like included in the program 10.
  • the program management unit 110 notifies the program execution time registration unit 101 of an execution start time, an allowable range, and the like corresponding to each of the programs # 1, # 2, and the like that the user instructed to execute via the operation unit 3, for example. Register.
  • the program management unit 110 does not necessarily store the execution start time of the program, the allowable range, and the like, the individual programs, the request regarding the execution time of the program, and the allowable range of the request regarding the execution time of the program. It is only necessary to have a function for associating with.
  • the program execution time registration unit 101 specifies execution according to an instruction from the program management unit 110. Registers information about the required execution time of the indicated program and its allowable range. The program execution time registration unit 101 notifies the program execution time determination unit 103 of a request regarding the execution time of the registered program and an allowable range thereof.
  • the request for the execution time of a program is, for example, a request for a start time, that is, a request for when to start the execution of the program.
  • the request may be a request regarding an end time such as when the process must be completed, or an execution cycle when the program is executed periodically.
  • What kind of request can be registered can be designed according to the purpose and environment of use of the information processing device 51.
  • the allowable range is information indicating how much variation is allowed for a request related to the execution time. For example, for a request related to the start time, an allowable delay of the start time is an example of an allowable range. Force to request execution start after 1 second 0.1 Start of 1 second If the time delay is allowed, the request for execution time will be 1 second later, and the allowable range will be +0.1 second. Also, if periodic execution is required every 10 seconds and fluctuations such as an advance or delay of the 1-second cycle can be tolerated, the request for the execution time is a 10-second cycle, and the allowable range is 1 second. What kind of permissible range can be registered and the method of notation can be designed according to the purpose and environment of use of the information processing device 51 as well as the requirement regarding the execution time.
  • the execution time request and the allowable range, which are information registered in the program execution time registration unit 101, are, for example, when a program is registered or installed in the information processing apparatus 51, a function for registering an execution time request is called. Pass it as an argument.
  • the information processing device 51 usually has a dedicated program for performing registration and installation. Therefore, by the program calling the function for registering the execution time request described above, the registration processing to the program execution time registration unit 101 can be realized under the control of the program management unit 110.
  • the present invention is not limited to this, and the user of the information processing device 51 may specify a request for an execution time and an allowable range when giving an instruction to execute a certain program. Furthermore, a form in which a request regarding the execution time and an allowable range are written as a code in the program may be used. Requirement and permission regarding the execution time of the above program The form of registering the acceptable range is also applicable when registering the request and the allowable range regarding the execution time of the task or the timer event in the following embodiments.
  • the program processing amount detection unit 102 detects a processing amount required when each of the programs # 1, # 2, and the like included in the program 10 is executed, and notifies the program execution time determination unit 103. To detect the processing amount, for example, describe the required processing amount in each program # 1, # 2, etc., and pass it as an argument of each program # 1, # 2 force function before execution. It is possible. Alternatively, the processing amount may be described in a header or the like of each program # 1, # 2, etc., and the program processing amount detection unit 102 may read the value.
  • the time taken until the program is actually executed and completed is recorded, and the operating frequency of the CPU is integrated over that time (when the CPU operating frequency is constant,
  • the amount of processing required by multiplying may be measured.
  • a method in which the actual measurement of the processing amount is performed several times and the average of the data is taken may be used.
  • any method can be used as long as it can be actually detected.
  • the effect can be obtained even if the processing amount required by the program is not necessarily required to be an accurate value and the processing amount is roughly classified as large, medium, or small. This is not limited to the present embodiment, and is the same in other embodiments.
  • the program execution time determination unit 103 is based on the request for the execution time of the program 10 notified from the program execution time registration unit 101 and the allowable range, and the necessary processing amount notified from the program processing amount detection unit 102.
  • the execution time of each of the programs # 1, # 2, etc. included in the program 10 is determined.
  • the program execution time determination unit 103 determines the execution time of each of the programs # 1, # 2, etc. included in each program 10 within a range that satisfies the requirement regarding the execution time and the allowable range.
  • the execution time is determined for each predetermined unit time so that the total required processing amount of the program to be executed becomes as constant as possible.
  • the program execution time is determined so that the required processing amount of the program per unit time becomes as equal as possible (equalization).
  • the required processing amount for each time is smoothed.
  • the program execution time determining unit 103 notifies the CPU operating frequency setting unit 104 of the smoothed processing amount.
  • the CPU operating frequency setting unit 104 is smoothed by the program execution time determining unit 103.
  • the operating frequency of the CPU is determined based on the processing amount.
  • the CPU operating frequency setting unit 104 sets the operating frequency to the CPU 1 by controlling the voltage applied to the CPU 1 or the like. Further, for example, the CPU operating frequency setting unit 104 may be configured to set the operating frequency by rewriting the value of a register for determining the operating frequency provided in the CPU 1.
  • the set frequency is, for example, the minimum operating frequency that does not end the required processing in each unit time and makes an idle time. If the unit time is 1 second and processing of 100M clocks is required during a certain unit time (here 1 second), set the operating frequency to 1 OOMHz for this 1 second. Alternatively, the operating frequency may be set to a value obtained by adding a certain amount to the minimum required operating frequency in order to have a margin in the actual processing amount.
  • the processing amount In the case of V or deviation, the processing amount must be performed for each unit time, and the processing amount is smoothed by the program execution time determination unit 103. Therefore, the variation in the operating frequency set by the CPU operating frequency setting unit 104 is smaller than when no smoothing is performed. As described above, even with the same processing amount, the fluctuation of the operating frequency of the CPU is small, and the power consumption is smaller. Therefore, the power consumed by the CPU is smaller than when the smoothing is not performed.
  • the program execution unit 105 uses the CPU 1 that operates at the operating frequency set by the CPU operating frequency setting unit 104, and executes the individual programs included in the program 10 with the execution time determined by the program execution time determination unit 103. Perform # 1, # 2, etc.
  • FIG. 2 is a flowchart illustrating the operation of the CPU clock control device according to the present embodiment.
  • Steps S2-1 to S2-5 are operations with the program management unit 110, the program execution time registration unit 101 and the program throughput detection unit 102.
  • Steps S2-6 to S2-9 are the program execution times. This is the operation of the determination unit 103, the CPU operating frequency setting unit 104, and the program execution unit 105.
  • step S2-1 when the user operates the operation unit 3, the program management unit 110 loads the program to be executed by the information processing device 51 into the memory device 2 from the above-described ROM or the like, for example. And register.
  • step S2-2 the program management unit 110 refers to the management table 111 and requests for the execution time of the registered program 10. And the allowable range are registered in the program execution time registration unit 101.
  • step S2-3, the program execution time registration unit 101 notifies the program execution time determination unit 103 of the registered execution time request and the allowable range.
  • step S2-4 the program processing amount detection unit 102 detects a processing amount required for the program requested to be executed. As described above, step S2-4 is performed by detecting a required processing amount by calling a function for registering a program execution time request dedicated to registration and installation, for example, provided in the information processing apparatus 51, and Wait for the program to execute and measure the required processing amount.
  • step S2-5 the program processing amount detection unit 102 notifies the program execution time determination unit 103 of the required processing amount of the detected program.
  • the registration of the request for the time and the allowable range and the notification S2-2, S2-3) are performed before the detection and notification of the required processing amount (S2-4, S2-5). However, it is not necessary. These are independent and can be executed in any order.
  • Step S2-6 is a call of the program execution time determination unit 103.
  • the call of the program execution time determination unit 103 is performed immediately after a new program is registered, that is, the request and allowable range regarding the execution time from the program execution time registration unit 101 and the required processing amount from the program processing amount detection unit 102. This may be after notification to the program execution time determination unit 103 (immediately after step S2-5). Alternatively, it may be performed periodically at a specific cycle, or may be called when one program has completed processing.
  • step S2-7 the execution time of all programs for which execution has been requested and for which a request regarding the execution time has been notified to the program execution time determination unit 103 is determined.
  • the program execution time determination unit 103 determines the necessity of each program notified in step S2-5 within a range that satisfies the execution time requirement and allowable range of each program notified in step S2-3. Determine the execution time so that the total of the processing amount per unit time is equalized as much as possible.
  • the determination of the execution time in step S2-7 is a general problem of allocating the execution time of a program while satisfying the constraint, and various algorithms can be used. For example, if the number of target programs 10 is relatively small, all possible execution time patterns are listed. The variation of the processing amount may be compared. However, in the present invention, it is not always necessary to perform complete equalization. Since the power consumption can be reduced by reducing the fluctuation of the CPU operating frequency, the power consumption can be reduced by the equalized amount even if it is not perfect. Therefore, for example, moving the execution of one program to another time from the time when the required processing amount becomes the largest is effective.
  • the required processing amount of the program is not an accurate value but an approximate value, a certain level of equalization is possible, so that the effect of reducing power consumption can be obtained. Furthermore, it is not necessary to determine the execution time of all programs here, but only the execution time from the current time to a certain point in time may be determined. Since calculation time is required for equalization, the degree of accurate equalization may be designed according to the purpose and environment of use of the information processing device 51.
  • step S2-8 the CPU operating frequency setting unit 104 receives the execution time determined by the program execution time determining unit 103, determines the operating frequency of the CPU1, and sets the operating frequency to the CPU1.
  • the program execution unit 105 executes the requested program. The program is executed at the time determined by the program execution time determination unit 103. Therefore, step S2-9 is not actually executed immediately after step S2-8 is completed, but is executed when the determined execution time comes.
  • FIG. 3 shows an example of processing performed by the CPU clock control device in the present embodiment.
  • FIG. 3 (al) is a schematic diagram in which the program requested to be executed and the execution time requested by the program are arranged on the time axis as they are.
  • (Al) is information notified to the program execution time determination unit 103 as a result of steps S2-1 to S2-5 in FIG. 2, and the horizontal axis represents time (arbitrary unit), and the vertical axis represents the time.
  • the square blocks represent programs, and the vertical size of each block corresponds to the required processing amount of each program.
  • four programs from A to D are registered.
  • the value after the alphabet that is the program name is the required processing amount (unit is M clocks) of the program, and the value after it is the requested execution start time and allowable range.
  • the required processing amount is 100
  • the execution start time is 0, and the allowable range is +2.
  • the request for the execution time requests the execution and the completion of the process from the time of the value to the next time.
  • the execution start time is 0, which means that the execution between the times 0 and 1 and the completion of the process are requested. In the following, this is described as "requesting execution at time 0".
  • the execution is requested between times 2 and 3 and the processing is completed, so the execution is requested at time 2.
  • the value of the permissible range indicates the range of the fluctuation of the execution time. In the case of +1, it is permissible until the execution delay of time 1 and in the case of +2, it is permissible until the delay of time 2. In the case of program A, the allowable range is +2, so execution at request time 0 is requested, but execution at time 1 or 2 is also acceptable. Since program B requires execution at time 0 and the allowable range is 0, it cannot be executed at other times. Programs C and D require execution at time 2 and must be executed at this time because the tolerance is zero.
  • Fig. 3 (bl) shows that the program A executes the program D at the execution time of (al), and completes each processing at the minimum necessary operating frequency at each time, that is, to make no idle period. This shows the case where the CPU operating frequency is set.
  • the horizontal axis of this (bl) is the force, which is the same time as (al).
  • the vertical axis is the operating frequency of CPU1 (M clock Z unit time).
  • FIG. 3 (a2) shows the actual execution time of the program executed by steps S2-6 and S2-7 and determined by the program execution time determination unit 103.
  • the program execution time determination unit 103 determines that the program A is to be executed at time 1 so that the required frequency for each time is equalized.
  • the program execution up to three times ahead of the current time is equalized. In other words, only the time range in FIG. 3 is considered.
  • FIG. 3B2 shows the CPU operating frequency determined by the CPU operating frequency setting unit 104 in order to achieve the program execution time of (a2) determined by the program execution time determining unit 103.
  • the fluctuation of the operating frequency is smaller than that in (bl), and the power consumption of the CPU during this period is reduced.
  • each program is executed to meet its respective tolerance.
  • FIG. 4 shows another example of the processing performed by the CPU clock control device in the present embodiment.
  • the Fig. 4 (al) is a schematic diagram in which, similarly to Fig. 3 (al), the program requested to be executed and the execution time requested by the program are directly arranged on the time axis. .
  • Program A requires periodic execution in cycle 2, which is denoted as P2 in the execution time request in Fig. 4 (al). Because of the periodic execution, program A is required to execute at times 0, 2, and 4. However, since the allowable range of program A is +1, it is acceptable if the execution time is delayed by one.
  • (A2) is a schematic diagram showing a state after the execution time is determined by the program execution time determination unit 103. In the example shown in (a2), program A requesting execution at time 2 is delayed by 1 because the allowable range is +1 and actually executed at time 3 Be executed.
  • FIGS. 4B and 4B show the operating frequency of the CPU 1 when the minimum operating frequency necessary for the program execution process is used, which is determined by the CPU operating frequency setting unit 104. Also in (b 2), the operating frequencies are not completely equalized, but the fluctuations in the operating frequency are smaller than in (bl), and the power consumption of the CPU is correspondingly reduced. Further, each of the programs A to E satisfies the respective allowable ranges and is executed.
  • the present invention it is possible to reduce the power consumption of the CPU after satisfying the requirement regarding the execution time of the program within an allowable range.
  • the program 10 in the present embodiment does not need to be all the processing executed by the information processing device 51, and may be a specific part of the processing. Similarly, not all programs 10 need to register time requirements and tolerances. Even if the processing amount is smoothed for a part of all the processing, it is possible to obtain the effect of reducing power consumption according to the smoothed amount.
  • the program execution time registration unit 101 In the embodiment of the present invention, in the OS 100, the program execution time registration unit 101, the program processing amount detection unit 102, the program execution time determination unit 103, the CPU operation frequency setting unit 104, and the program execution unit 105 It is also possible to provide the power outside the OS 100.
  • FIG. 5 is a diagram illustrating an information processing apparatus that performs CPU operating frequency control according to Embodiment 2 of the present invention.
  • the configuration including a CPU 1 and a memory device 2 is the same as that of the first embodiment.
  • the program 20 is the same as the program 10 of the first embodiment,
  • Each process executed by the device 51 is described as a program of the information processing device 52.
  • the change of the operating frequency of the CPU 1 is performed by the CPU operating frequency setting unit 207 in the OS 200.
  • the OS 200 performs the CPU clock control according to the present embodiment, so that the program management unit 210, the program execution time registration unit 201, the program processing amount detection unit 202, the program execution time determination unit 203, the interrupt processing amount detection A section 204, an interrupt processing section 205, an interrupt-time execution time adjustment section 206, a CPU operating frequency setting section 207, and a program execution section 208.
  • the adjustment unit 206, the CPU operation frequency setting unit 207, the program execution unit 208, and the CPU 1 have a function as the CPU clock control device 12.
  • the program management section 210 has a management table 211.
  • the management table 211 stores the execution start time of each program, the permissible range, and the like corresponding to each program # 1, # 2, etc. included in the program 20.
  • the program management unit 210 notifies the program execution time registration unit 201 of an execution start time, an allowable range, and the like corresponding to each of the programs # 1, # 2, and the like that the user instructed to execute via the operation unit 3, for example. Register.
  • the program management unit 210 stores each program that does not necessarily need to store the execution start time of the program, the allowable range, and the like, the request regarding the execution time of the program, and the allowable range of the request regarding the execution time of the program. It is only necessary to have a function for associating with.
  • the program execution time registration unit 201 receives a request for the time from the program 20 and information on the allowable range, and Notify to the interrupt execution time adjustment unit 206.
  • the program processing amount detection unit 202 adjusts the processing amount required to execute the program 20 by the program execution time determination unit 203 and the execution time adjustment at the time of interruption, similarly to the program processing amount detection unit 102 of the first embodiment. Notify part 206.
  • the program execution time determination unit 203 is the program execution time adjustment unit 10 according to the first embodiment. As in step 3, determine the program execution time based on the requirements for the program execution time, the permissible range, and the required processing amount so that the total required processing amount of the program at certain time intervals is as equal as possible. .
  • the interrupt processing amount detection unit 204 notifies the interruption time adjustment unit 206 of the processing amount required for the processing (interrupt handler) executed when an interrupt occurs.
  • the amount of processing required for interrupt processing can be detected, for example, by estimating the processing amount in advance and passing the value when registering the interrupt handler in the OS 200. Alternatively, the processing amount required when the interrupt processing is actually performed may be measured and detected based on the measured processing amount.
  • the interrupt processing unit 205 executes a corresponding interrupt process, and also notifies the interrupt execution time adjustment unit 206 that the interrupt process has occurred.
  • the interruption execution time adjustment unit 206 based on the request regarding the execution time of the program, the allowable range, and the required processing amount, processes the required processing amount of the program at regular time intervals.
  • the program execution time is determined so that the sum of the values is as constant as possible regardless of time.
  • the interrupt-time execution time adjustment unit 206 determines the program execution time only when an interrupt occurrence is notified from the interrupt processing unit 205.
  • the program execution time is determined by adding the processing amount of the interrupt processing notified from the interrupt processing amount detection unit 204 as processing to be performed at the time of the occurrence of the interrupt, and further equalizing the processing amount per unit time as much as possible. In this way, the program execution time is determined. In other words, after taking into account the amount of processing expended in interrupt processing, the execution time of the program is determined again so that the amount of processing is smoothed.
  • CPU operating frequency setting section 207 is based on the processing amount required for each unit time smoothed by program execution time determining section 203. To determine the operating frequency of the CPU. Then, the CPU operating frequency setting unit 207 sets the operating frequency to the CPU1 by controlling the voltage applied to the CPU1. Further, when the interrupt execution time adjustment unit 206 redetermines the program execution time, the CPU operation frequency setting unit 207 performs smoothing by the interrupt execution time adjustment unit 206. CPU operating frequency is determined based on the converted processing amount. That is, the CPU operating frequency setting unit 207 sets the CPU operating frequency based on the latest smoothing result.
  • the CPU operating frequency setting unit 207 determines the CPU operating frequency based on the smoothed required processing amount after adding the interrupt processing. Even if it occurs, an appropriate CPU operating frequency can be used.
  • the program execution unit 208 uses the CPU 1 that operates at the operating frequency set by the CPU operating frequency setting unit 207, and executes the individual programs included in the program 20 with the execution time determined by the program execution time determination unit 203. Perform # 1, # 2, etc. However, when the interrupt execution time adjustment unit 206 redetermines the program execution time, the program execution unit 208 executes the program 10 with the redetermined execution time. That is, the program execution unit 208 executes the program 10 based on the latest decision including the occurrence of the interrupt.
  • FIG. 6 is a flowchart illustrating the operation of the CPU clock control device according to the present embodiment. Steps S6-1 to S6-5 are for registering the time requirement and allowable range of the program and for detecting the processing amount, and are the same as steps S2-1 to S2-5 (FIG. 2) of the first embodiment. is there.
  • Step S6-6 is a call of the program execution time determination unit 203, which is the same as step S2-6 of the first embodiment.
  • Step S6-7 is the same as step S2-7 of the first embodiment.
  • the program execution time determination unit 203 notifies the CPU operation frequency setting unit 207 and the program execution unit 208 of the determined execution time and the required processing amount.
  • Steps S6-9 to S6-11 are the flow of processing performed by the interrupt processing unit 205 and the execution time adjustment unit 206 at the time of interruption. Here, it is not shown that the processing amount of the interrupt processing is detected in advance.
  • step S6-9 an interrupt is generated.
  • the CPU 1 reads the register 4 and notifies the interrupt processing unit 205 of the requested interrupt.
  • the interrupt processing unit 205 Upon receiving the notification, the interrupt processing unit 205 makes a request in step S6-20. Executes the interrupt processing.
  • Steps S6-10 and S6-11 are processes performed upon an interrupt.
  • Step S6-10 is the determination of the program execution time including the processing amount necessary for the interrupt processing, which is performed by the interrupt-time execution time adjustment unit 206.
  • step S6-10 is the same as step S6-7, except that the interrupt process is regarded as a process necessary for the current time.
  • the interrupt-time execution time adjustment unit 206 notifies the CPU execution frequency setting unit 207 and the program execution unit 208 of the determined execution time and the required processing amount.
  • Steps S 6-12 to S 6-14 are a flow of processing performed by the CPU operating frequency 207 and the program execution unit 208.
  • Step S6-12 is the notification of the program execution time and the required processing amount in step S6-8 (when an interrupt has not occurred) or S6-11 (when an interrupt has occurred).
  • S6-14 are executed on this occasion.
  • S6-13 is the determination of the CPU operating frequency performed by the CPU operating frequency setting unit 207 based on the notified required processing amount.
  • the program execution unit 208 executes the program 20 at the execution time determined in step S6-8 or S6-11.
  • FIG. 7 shows an example of a process performed by the CPU clock control device in the present embodiment.
  • the vertical axis represents the required processing amount (M clock) and the horizontal axis represents time (arbitrary unit).
  • the vertical axis represents the operating frequency (M clock Z unit time), and the horizontal axis represents time (the unit is arbitrary).
  • FIG. 7 (al) shows a state in which an interrupt process with a required processing amount of 150 has occurred after the execution time of the program has been determined as a result of steps S6-1 to S6-8 in FIG. . Due to this interrupt, steps S6-9, S6-20, and S6-10 are executed, and the execution time of the program is again determined by the interrupt execution time adjustment unit 206.
  • both programs A and B have an execution start time of 0 and an allowable range of +2. Therefore, it can be seen that “requesting execution at time 0” is allowed up to a delay of time 2 and execution should be performed by time 2.
  • both programs C and D must be executed at time 1 and time 2, respectively, because the tolerance is zero.
  • the interrupt-time execution time adjustment unit 206 changes the execution times of the programs A and B as shown in (a2), and executes the programs at time 1 and time 2, respectively.
  • FIGS. 7 (bl) and 7 (b2) show the required processing amounts on the vertical axis shown in FIGS. 7 (a) and 7 (a2) converted to the operating frequency of the CPU 1, respectively.
  • FIG. 7 (bl) when an interrupt to be executed between times 0 and 1 occurs, the operating frequency of CPU 1 needs to be “250” as it is. However, since the interrupt processing has been completed after time 1, "100" is set as the operating frequency of CPU1.
  • the interrupt-time execution time adjustment unit 206 does not change the execution times of the programs A and B, the operating frequency of the CPU 1 fluctuates greatly and the power consumption of the CPU 1 increases accordingly.
  • the program 20 need not be all the processing executed by the information processing apparatus, but may be a specific part of the processing. No. The time request and the allowable range may be registered in some programs.
  • the program management unit 210 in the OS 200, the program management unit 210, the program execution time registration unit 201, the program processing amount detection unit 202, the program execution time determination unit 203, the interruption processing amount detection unit 204, The interrupt processing unit 205, the execution time adjustment unit 206 at the time of interruption, the CPU operating frequency setting unit 207, and the program execution unit 208 can be provided outside the OS 200.
  • FIG. 8 is a diagram illustrating an information processing device that performs CPU operating frequency control according to Embodiment 3 of the present invention.
  • the configuration including a CPU 1 and a memory device 2 is the same as that of the first embodiment.
  • Each of the tasks # 1, # 2, etc. included in the task 30 is a unit in which the information processing apparatus performs processing, and is executed by the OS 300 in a time-division manner in an order according to the priority of each.
  • tasks are classified into “processes” or “threads” according to the OS.
  • a process is a processing unit controlled so as not to interfere with each other, and a general personal computer includes a word processor and a spreadsheet program.
  • a thread is the minimum unit of processing when the OS performs processing in one application in parallel, and is the unit of sequential processing in a process.
  • One process can be composed of multiple threads.
  • a processing mode in which a plurality of tasks are operated in parallel is called a multi-task processing, and is a generally used processing mode.
  • the information processing apparatus according to the present embodiment is described as performing this multitask processing.
  • the programs according to the first and second embodiments are comprehensive including the tasks and the like according to the present embodiment, and do not necessarily have to be the minimum execution unit. In other words, both a single task and a set of multiple tasks can be called programs.
  • the OS 300 performs the CPU clock control according to the present embodiment. Therefore, the task management unit 310, the task execution time registration unit 301, the task processing amount detection unit 302, the task scheduling unit 303, the CPU operating frequency setting unit 304, And a task execution unit 305.
  • the task management section 310 has a management table 311.
  • the management table 311 stores an execution start time, an allowable range, and the like of each task in association with each of the tasks # 1, # 2, and the like included in the task 30.
  • the task management unit 310 notifies the task execution time registration unit 301 of the execution start time, the allowable range, and the like corresponding to each of the tasks # 1, # 2, and the like that the user has instructed to execute via the operation unit 3, for example. , Let me register.
  • the task management unit 310 determines the individual tasks that do not necessarily need to store the task execution start time, the permissible range, etc., as well as the request for the task execution time and the request for the task execution time. It would be nice if it had a function to associate with the range.
  • the task execution time registration unit 301 registers a request for the task execution time and information on the permissible range according to an instruction from the task management unit 310, and notifies the task scheduling unit 303 of the information.
  • the request related to the task execution time is, for example, , A request for a task start time, a request for an end time, an execution cycle, and the like.
  • the types of requests that can be registered can be designed according to the task scheduling method of OS300. Similarly, what allowable range can be registered, or the method of notation, is designed in accordance with the task scheduling method of OS300.
  • the task processing amount detection unit 302 detects the processing amount required for each task and notifies the task scheduling unit 303 of the processing amount.
  • the processing amount can be detected by, for example, passing the estimated processing amount to the OS 300 when designating a task scheduling method. Alternatively, the amount of processing required by actually executing a task may be obtained, and the determination may be made based on the obtained amount.
  • the multitask information processing device 53 often has an interface for specifying a task scheduling method.
  • This interface requests, for example, a periodic task to be executed by a function call, and specifies the period by an argument of the function.
  • the task scheduling unit 303 performs task scheduling.
  • the task scheduling unit 303 schedules the tasks within a range that satisfies the time requirement and the allowable range, but at the same time, schedules the tasks so that the total required processing amount of the tasks at certain time intervals is as equal as possible. I do.
  • the CPU operating frequency setting unit 304 determines the operating frequency of the CPU based on the processing amount required for each unit time smoothed by the task scheduling unit 303. Then, the CPU operating frequency setting unit 304 controls the voltage applied to the CPU 1 to set the operating frequency to the CPU 1. The amount of processing required to execute the task 30 per unit time is smoothed by the task scheduling unit 303. Therefore, the fluctuation of the operating frequency set by the CPU operating frequency setting unit 304 is smaller than in the case where the smoothing is not performed, and the power consumed by the CPU 1 is reduced.
  • the task execution unit 305 executes the task 30 based on the scheduling performed by the task scheduling unit 303.
  • FIG. 9 is a flowchart showing the flow of processing in the present embodiment.
  • step S9-1 first, for example, when the user operates the operation unit 3, the task management unit 310 loads the task to be executed by the information processing device 53 into the memory device 2 from, for example, the aforementioned ROM or the like. And register. Subsequently, in step S9-2, the task management unit 310 registers the registered request for the execution time of the task 30 and the allowable range in the task execution time registration unit 301. In step S9-3, the task execution time registration unit 301 notifies the task scheduling unit 103 of the registered execution time request and the allowable range.
  • step S9-4 the task processing amount detection unit 302 detects the processing amount required for the task requested to be executed. As described above, in step S9-4, for example, a function is called from the task to detect the required processing amount, or the actual processing amount is measured after waiting for the execution of the actual program.
  • step S9-5 the task processing amount detection unit 102 notifies the task scheduling unit 303 of the required processing amount of the detected task.
  • the registration of the request for the time and the permissible range, and the notification (S9-2, S9-3) are required. The detection and notification of the processing amount are required before the processing (S9-4, S9-5). You don't have to. Since these are independent, they can be executed in any order.
  • Step S 9-6 is a call of the task scheduling unit 303.
  • the calling of the task scheduling unit 303 may be performed at a normal task scheduling timing. Alternatively, it may be performed periodically at a specific cycle, or may be called when one task has completed processing.
  • the execution time is determined for all the tasks for which execution has been requested and the task scheduling unit 303 has been notified of the request regarding the execution time.
  • the task scheduling unit 303 calculates the required processing amount of each task notified in step S9-5 within a range that satisfies the execution time requirement and allowable range of each task notified in step S9-3. Total power per unit time Schedule to equalize as much as possible.
  • the determination of the execution time in step S9-7 is a general problem of allocating the task execution time while satisfying the constraint, and various algorithms can be used. For example, if the number of target tasks 30 is relatively small, all possible execution time patterns may be enumerated to compare variations in the processing amount. However, in the present invention, it is not necessary to completely equalize. There is no need. Since the power consumption can be reduced by reducing the fluctuation of the CPU operating frequency, the power consumption can be reduced by the equalized amount even if it is not perfect. Therefore, for example, moving the execution of one program to another time from the time when the required processing amount becomes the largest is effective.
  • the required processing amount of the program is not an accurate value but an approximate value, a certain level of equalization is possible, so that the effect of reducing power consumption can be obtained. Furthermore, here, it is not necessary to determine the execution time of all the tasks, but it is sufficient to determine the execution time from the current time to a certain point in time. Since the calculation time is required for the equalization, how accurate the equalization is to be performed may be designed in accordance with the purpose of use of the information processing device 53 and the environment.
  • step S9-8 upon receiving the execution time determined by the task scheduling unit 303, the CPU operating frequency setting unit 304 determines the operating frequency of the CPU1, and sets the operating frequency to the CPU1.
  • the task execution unit 305 executes the task requested to be executed. The task is executed at the time determined by the task scheduling unit 303. Therefore, in practice, step S9-9 is not executed immediately after the end of step S9-8, but is executed at the determined execution time.
  • the task with the specified execution time can be scheduled in the same way as in Figs.
  • the scheduling similar to that in Fig. 4 is a scheduling that periodically executes a specific task (program A in Fig. 4). It is also a scheduling that performs the processing amount (50 in Fig. 4).
  • FIG. 10 shows another example of the processing performed by the CPU clock control device in the present embodiment.
  • a description will be given assuming that a deadline schedule of a task is performed.
  • the deadline schedule specifies the time at which the processing of the task must be completed, and the time (deadline) is earlier and the task power is also executed.
  • FIG. 10 (al) is a schematic diagram showing a normal scheduling in which tasks are executed in order from the earliest deadline.
  • the square blocks represent tasks, and (al)
  • two tasks, A and B are the targets of scheduling.
  • the value after the alphabet that is the task name is the required processing amount of the task, and the next value is the execution time requirement and the allowable range.
  • the execution time request is a deadline, and the deadline is indicated by an alphabetical letter E.
  • the tolerance is the tolerance of the debt line, ie how far ahead or behind the debt line is acceptable.
  • the required processing amount is 200, the deadline is 1, and the allowable range is +2. This means that task A will accept the end of time 1 at worst.
  • the required processing amount is 100, the deadline is 2, and the allowable range is (1-1, 0).
  • a value of (-1, 0) in this allowable range means that the task only needs to be completed between the time at which the deadline is advanced by one and the time of the designated deadline. In other words, task B requests the end before time 2, but only needs to end between time 1 and time 2.
  • (Al) is information notified to the task scheduling unit 303 as a result of steps S9-1 to S9-5 in FIG.
  • FIG. 10 (bl) shows the CPU when tasks A and B are executed in the scheduling of (al), each process is completed at the minimum necessary operating frequency, and no idle period is created. Represents the operating frequency.
  • FIG. 10 (a2) shows the result of the scheduling performed by task scheduling section 303 in steps S9-6 and S9-7.
  • scheduling is performed to smooth the processing amount required for each time as much as possible.
  • FIG. 10 (b2) shows the CPU operating frequency when executing the task (a2).
  • the fluctuation of the operating frequency is smaller than that in (bl), and the power consumption of the CPU during this period is reduced.
  • tasks A and B are executed with their respective tolerances satisfied.
  • various scheduling can be performed by specifying the execution time requirement, the allowable range, and the required processing amount.
  • an interrupt processing amount detection unit It is also possible to provide an interrupt processing unit and an interrupt execution time adjustment unit that reschedules tasks when an interrupt occurs. In this case, when an interrupt occurs, the task is rescheduled so that the processing amount is equalized after adding the amount of the interrupt processing. This makes it possible to cope with the occurrence of an interrupt.
  • a task management unit 310 In the embodiment of the present invention, a task management unit 310, a task execution time registration unit 301, a task processing amount detection unit 302, a task scheduling unit 303, a CPU operation frequency setting unit 304, and a task
  • the power provided with the execution unit 305 can be provided outside the OS 300.
  • FIG. 11 is a diagram illustrating an information processing device that performs CPU operating frequency control according to Embodiment 4 of the present invention.
  • the information processing device 54 includes at least one or more CPUs 1 and a memory device 2.
  • the configuration including a CPU 1 and a memory device 2 is the same as that of the first embodiment.
  • the configuration in which the memory device 2 includes the task 40 is the same as that of the third embodiment.
  • the change of the operating frequency of the CPU 1 and the control of the task 40 are performed by the OS 400.
  • the timer event 41 is a process of specifying the time for executing the timer event 41 and registering it in the OS400.
  • the function of registering and executing the timer event 41 is realized in many OSs because it performs processing according to real time.
  • Timer event 41 is a power that can be used by itself
  • individual timer events # 1, # 2 included in timer event 41 wake up individual tasks # 1, # 2, etc. included in corresponding task 40 It will be described as what is done.
  • the OS 400 controls the CPU clock according to the present embodiment. Therefore, the task management unit 410, the timer / event management unit 420, the task execution time registration unit 401, the task execution time request interpretation unit 402, the task processing amount detection unit 403, a timer event processing amount detection unit 404, a timer event registration unit 405, a timer event adjustment unit 406, a CPU operating frequency setting unit 407, a timer event execution unit 408, and a task execution unit 409.
  • the execution unit 409 and the CPU 1 have a function as the CPU clock control device 14.
  • the task management section 410 includes a management table 411.
  • the management table 411 stores an execution start time, an allowable range, and the like of each task in association with each of the tasks # 1, # 2, and the like included in the task 40.
  • the task management unit 410 for example, notifies the task execution time registration unit 401 of the execution start time, the allowable range, and the like corresponding to each of the tasks # 1, # 2, etc. that the user has instructed to execute via the operation unit 3. , Let me register.
  • the task management unit 410 determines whether each task does not necessarily need to store the execution start time of the task, the permissible range, and the like, requests for the execution time of the task, and requests for the execution time of the task. It would be nice if it had a function to associate with the range.
  • the timer event management section 420 has a management table 421.
  • the management table 421 stores whether the timer event wakes up the task or not.
  • the timer event management unit 420 instructs the timer event registration unit 405, refers to the processing amount required by the timer event from the timer event processing amount detection unit 404, and refers to the management table 421.
  • the task processing amount detection unit 403 further receives the processing amount required by the task corresponding to the timer event.
  • the task execution time registration unit 401 has the same function as the task execution time registration unit 301 of the third embodiment.
  • the task execution time registration unit 401 registers a request for the task execution time and information on the allowable range according to an instruction from the task management unit 410, and notifies the task execution time request interpretation unit 402 of the information.
  • the task execution time request interpretation unit 402 determines the timer event 41 for performing task control so as to satisfy the request on the execution time of the task 40 notified from the task execution time registration unit 401. For example, if execution of task # 1 is requested at a specific time, a timer event # 1 that wakes up task # 1 is executed at that time. Since control of task 40 by such a timer event 41 is currently generally performed, The timer event of the task control in the embodiment may be set in the same manner.
  • the task execution time request interpretation unit 402 determines the allowable range of the execution time of the task control timer event 41 from the allowable range of the request related to the execution time of the task 40 notified from the task execution time registration unit 401. Ask for. For example, if a certain time delay is allowed as the allowable range of the execution start time of the task 40, the time is set as the allowable range of the execution start time of the timer event 41 that wakes up the task 40. If periodic task execution is requested, the timer event 41 that wakes up the task 40 at the requested interval is executed, and if there is an allowable range in the task execution cycle, the allowable range is set to the timer event execution cycle. Acceptable. The task execution time request interpretation unit 402 requests the timer event registration unit 405 to register the determined task control timer event 41 together with the execution time and the allowable range.
  • the task processing amount detection unit 403 has the same function as the task processing amount detection unit 302 of the third embodiment. When there is a request from the timer event registration unit 405, the task processing amount detection unit 403 notifies the timer event registration unit 405 of the processing amount required by the detected task.
  • the timer event processing amount detection unit 404 detects the processing amount required by the timer event and notifies the timer event registration unit 405 of the processing amount.
  • the required processing amount is detected, for example, by notifying the required processing amount estimated in advance in each timer event, or by actually measuring the processing amount required by actually executing the processing. It is possible to make a decision based on this.
  • the timer event registration unit 405 registers the timer event requested by the task execution time request interpretation unit 402 together with the request for the execution time of the timer event and the allowable range. Further, the timer event registration unit 405 may have a form in which a timer event unrelated to a task can be registered based on a request from an external force. In this case as well, the request and the allowable range for the timer event execution time may be registered.
  • the timer event registration unit 405 receives the processing amount required by the timer event from the timer event processing amount detection unit 404 according to an instruction from the timer event management unit 420, and the timer event wakes up the task. If the task corresponding to the timer event is required, the task processing amount detection unit 403 further calculates the processing amount required by the task corresponding to the timer event. receive. Then, the timer event registration unit 405 calculates the processing amount obtained by adding the required processing amount of the timer event itself and the required processing amount of the task executed by the timer event, and stores information on the timer event including the processing amount. Notify timer event decision unit 406.
  • the timer event determination unit 406 includes a request and an allowable range regarding the execution time of one timer event notified from the timer event registration unit 405, and a processing amount required for the task when the task is executed by the timer event. In addition, the time to actually execute the timer event is determined based on the processing amount required by the timer event itself. At this time, the timer-one event determination unit 406 determines the time to execute the timer event within a range that satisfies the request for the execution time of the timer event and the allowable range.
  • the timer event determining unit 406 determines that the processing amount of the timer event itself and the task executed by the timer event is changed at regular intervals. Determine the time to execute the timer event so that it is as even as possible. Therefore, the whole of the sum of the timer event and the processing amount required for the task execution by the timer event at regular intervals is smoothed.
  • CPU operating frequency setting section 407 determines the operating frequency of the CPU based on the processing amount smoothed by timer event determining section 406. Then, CPU operating frequency setting section 407 sets the operating frequency to CPU1 by controlling the voltage applied to CPU1.
  • the timer event execution unit 408 executes the timer event 41 at the execution time determined by the timer event determination unit 406 using the CPU 1 operating at the operation frequency set by the operation frequency setting unit 407.
  • the task execution unit 409 executes the task 40.
  • FIG. 12 is a flowchart illustrating the operation of the CPU clock control device according to the present embodiment.
  • Steps S12-1 to S12-5 show the processing flow of the task management unit 410, the task execution time registration unit 401, the task execution time request interpretation unit 402, and the task processing amount detection unit 403.
  • step S12-6 to step S12-7 the timer event management unit 420, timer event registration unit 405, timer event determination unit 406, CPU operation
  • the processing flow of the wave number setting unit 407 and the timer event execution unit 408 will be described.
  • step S 12-1 for example, when the user operates the operation unit 4, the task 40 executed by the information processing device 54 is loaded and registered in, for example, the ROM-equivalent memory device 2 described above.
  • step S12-2 the task management unit 410 registers the request regarding the execution time of the registered task 40 and the allowable range in the task execution time registration unit 401.
  • step S12-3 the task execution time request interpretation unit 402 includes a timer event 41 for controlling the task 40 so as to satisfy a request and an allowable range of the execution time of the task 40 registered in the task execution time registration unit 401, Determine the requirements for the execution time of timer event 41 and the allowable range.
  • the task execution time request interpretation unit 402 sets the timer event to wake up the task for one second. Later, it is decided to execute within the delay of 0.1 second.
  • Step S12-6 is a timer event registration request, and steps S12-7 to S12-13 are executed in response to the timer event registration request.
  • step S12-7 the processing amount of the timer event for which registration is requested is detected. This is realized by the timer event registration unit 405 receiving the processing amount of the timer event from the timer event processing amount detection unit 404.
  • step S12-7 does not necessarily need to be performed at this time, but may be performed at any time before information on the processing amount of the timer event is needed.
  • step 12-8 the timer event management unit 420 requests registration in the timer event registration unit 405, and refers to the management table 421 to determine whether or not the timer event wakes up the task. It is determined by this.
  • the timer event registration unit 405 receives the processing amount necessary for executing the task from the task processing amount detection unit 403. .
  • step S12-20 may be executed at any time before the information on the required processing amount of the task that does not need to be executed at this time is needed.
  • step 12-9 the timer event registration unit 405 calculates the total required processing amount by adding the required processing amount of the task to be woken up to the required processing amount of the timer event itself. To do. That is, the required processing amount of the task is also calculated as the processing amount required for executing the timer event. Then, in step S12-10, timer event registration section 405 registers the timer event transmitted from timer event management section 420, the execution time request thereof, and the allowable range. Then, the timer event registration unit 405 notifies the timer event determination unit 406 of information including the calculated total required processing amount.
  • the timer event determination unit 406 equalizes the sum of the required processing amount of each timer event per unit time as much as possible within a range that satisfies the time requirement and the allowable range of each timer event. To determine the execution time. In other words, the required processing amount of the timer event is added to the processing amount required by the task as a result of waking up the task! /, So in Steps 12-11, the timer event and all the tasks woken up by it are executed. Processing volume is equalized.
  • step S12-12 CPU operating frequency setting section 407 determines the CPU operating frequency based on the processing amount smoothed by timer event determining section 406. Then, the CPU operating frequency setting unit 407 sets the operating frequency to the CPU1 by controlling the voltage applied to the CPU1. Finally, in step S12-13, the timer event execution unit 408 executes the registered timer event. However, since the execution of the timer event occurs at a specified time, the steps S12-13 are not actually executed immediately after steps S12-12, but after a suitable time. Be executed.
  • a timer event may be managed by a queue for each time to be executed.
  • the execution time, the allowable range, and the required processing amount are also recorded (step S12 1 to S12-5, S12-6 to S12). - Ten).
  • new! / ⁇ Timer event power The queue is scanned each time it is registered, and the queue is rearranged within the permissible range so that the required processing amount at each time is equalized. Determine the CPU operating frequency (steps S12-11, S12-12).
  • the timer events are executed in the order according to the rearranged queues (step S12-13), and the CPU is driven at the operating frequency of each time determined together.
  • FIG. 13 shows an example of processing performed by the CPU clock control device in the present embodiment.
  • Fig. 13 (al) shows the timer event requested to be executed and the It is a schematic diagram in which the execution time requested by the mar event is arranged on the time axis as it is.
  • square blocks represent timer events.
  • three timer events of A, B, and C are required.
  • the value after the alphabet that is the timer event name is the required processing amount of the timer event, and the value after it is the execution time requirement and the allowable range.
  • the processing amount of the task is indicated with a sign “+” after the processing amount of the timer event itself. Therefore, in the case of timer event A, the required processing amount of the timer event itself is 50, the processing amount of the task to be woken up is 50, the execution time request is 0, and the allowable range is +2.
  • Fig. 13 (bl) shows that timer events A, B, and C are executed at the execution time of (al), and each processing is performed at each time so that an idle period is not created with the minimum necessary operating frequency.
  • the operating frequency when the CPU operating frequency is set.
  • FIG. 13 (a2) shows the actual execution time of the timer event determined by executing steps S12-11.
  • FIG. 13 (b2) shows the CPU operating frequency when the timer event of (a2) is executed.
  • the fluctuation of the operating frequency is smaller than in (bl), and the power consumption of the CPU during this period is reduced.
  • each timer event is executed while satisfying its allowable range.
  • FIG. 14 shows another example of the processing performed by the CPU clock control device in the present embodiment.
  • FIG. 14 (a) is a schematic diagram in which, similarly to FIG. 13, the timer event requested to be executed and the execution time requested by the timer event are arranged on the time axis as they are.
  • Timer event A requires periodic execution in period 3
  • B requires periodic execution in period 2.
  • the execution time requirements are described as P3 and P2.
  • Both timer events A and B activate the 50-volume task in addition to the 50-volume timer event itself.
  • timer event A has an allowable range of +1.
  • the allowable range of timer event B is zero.
  • FIG. 14 (a2) shows the state after the execution time of the timer event performed by the timer event determination unit 406 has been smoothed.
  • the execution time of the timer event A is originally It was requested to be executed and changed from the time it was set.
  • (Bl) and (b2) are schematic diagrams showing operating frequencies when the minimum operating frequency required for processing is used.
  • the fluctuation of the operating frequency is smaller than that of the power (bl) in which the operating frequencies are not completely equalized, and the power consumption of the CPU is reduced accordingly.
  • the timer event and the task are executed while satisfying their respective allowable ranges.
  • the present embodiment it is possible to reduce the power consumption of the CPU after satisfying the requirements and the permissible range regarding the execution time of the task and the timer event. Note that, as in the other embodiments, it is not necessary that the permissible range be registered for all timer events. Even if the processing amount is part of all the processing, the processing amount is smoothed, so that the effect of reducing power consumption can be obtained. Further, in the present embodiment, the required processing amounts of both the task and the timer event are smoothed, but this is not always necessary. If any of the required processing amounts is sufficiently small, it may be ignored because the effect is small. For example, in the case where the required processing amount of the timer event is sufficiently smaller than the task! /, The required processing amount of the timer event may be substantially set to “0” and only the required processing amount of the task may be smoothed.
  • an interrupt processing amount detection unit, an interrupt processing unit, and an interrupt execution time adjustment unit that redetermines a timer event execution time when an interrupt occurs. Can also be provided. In this case, when an interrupt occurs, the timer event is executed so that the amount of interrupt processing is reduced and the processing amount is equalized. Redetermine between. This makes it possible to reduce the power consumption of the CPU while responding to the occurrence of interrupts.
  • the task management unit 410, the timer event management unit 420, the task execution time registration unit 401, the task execution time request interpretation unit 402, the task processing amount detection unit 403, A timer event processing amount detection unit 404, a timer event registration unit 405, a timer event determination unit 406, a CPU operating frequency setting unit 407, a timer event execution unit 408, and a task execution unit 409 can be provided outside the OS 400.
  • the CPU clock control device is a CPU clock control device that controls the clock of the CPU of the CPU itself, and loads a program executed by the CPU, and A program management unit for associating a program with a request relating to the execution time of the program and an allowable range of the request relating to the execution time of the program; and receiving, from the program management unit, the request relating to the execution time of the program and the allowable range, A program execution time registration unit for registering the program in association with the program, a program processing amount detection unit for detecting a processing amount required for executing the program, and a request and allowance regarding the execution time registered in the program execution time registration unit.
  • a program execution time determining unit that determines the execution start time of the program and the amount of processing per unit time so as to be equalized in the interval, and the execution of the program determined by the program execution time determining unit
  • a CPU operating frequency setting unit that determines an operating frequency of the CPU at each time based on a start time and a processing amount per unit time, and sets the operating frequency to the CPU, and a CPU operating frequency setting unit. It is preferable that the CPU operating at the determined operation frequency include a program execution unit that executes the program at the execution start time and the processing amount per unit time determined by the program execution time determination unit.
  • the program execution time registration unit under the control of the program management unit, Register the request for the execution time of the program executed by the CPU and the allowable range of the request for the execution time of the program.
  • the request regarding the execution time is defined as an execution start time specifying whether the program is to be executed, V, a force required to finish the processing by one time S, an end time specifying a certain force, and a periodic time.
  • the execution cycle when the program is executed is executed.
  • the allowable range is information indicating how much variation is allowed in response to a request regarding the execution time. For example, it indicates how much earlier or later execution start and end times are allowed.
  • the program processing amount detection unit detects the processing amount necessary for executing the program executed by the CPU. Then, the program execution time registration unit notifies the program execution time determination unit of the request for the execution time and the allowable range, and the program processing amount detection unit notifies the required processing amount of the program execution time determination unit. Based on the information, the program execution time determination unit starts the execution so that the processing amount in the predetermined time range is equalized as much as possible, if not completely, within a range that satisfies the execution time requirement and the allowable range. Determine the amount of processing per time and per unit time. For example, if the two programs requiring the same amount of processing request execution start at the same time and the execution of other programs is not requested, the program execution time determination unit Adjust the execution start time so that it will be performed after the program ends.
  • the CPU operating frequency setting unit determines the operating frequency at each time of the CPU based on the program execution start time and the processing amount per unit time determined by the program execution time determining unit, and sets I do. Since the program execution unit causes the CPU to execute the program, as a result, the program can be executed within a range that satisfies the request for the execution time of the program and the allowable range. Further, since the processing amount required for the CPU is equalized, it is possible to reduce the power consumption of the CPU accordingly.
  • the CPU clock control device is the CPU clock control device (1), which is an interrupt processing unit that performs an interrupt process executed when an interrupt occurs, and an interrupt that detects an amount of processing required for the interrupt process. If the processing amount detection unit and the interrupt processing unit perform the interrupt processing at the time of the occurrence of the interrupt, register in the program execution time registration unit. The execution of the program is started so that the amount of processing required for executing the program and the amount of processing for the interrupt processing are equalized within a predetermined time range within a range that satisfies the required execution time requirement and the allowable range.
  • An interrupt execution time adjustment unit for re-determining the processing amount per time and per unit time, wherein the CPU operating frequency setting unit is configured to execute the processing amount equalized by the program execution time determining unit, or The operating frequency of the CPu is determined based on the amount of processing equalized by the execution time adjustment unit at the time of interruption and the processing amount, and the program execution unit is determined by the program execution time determination unit.
  • the execution start time and the processing amount per unit time, or the execution start time and the processing amount per unit time re-determined by the interrupt-time execution time adjustment unit.
  • the program is executed with a difference of V ⁇ , a new U, an execution start time, and a processing amount per unit time.
  • the interrupt processing unit when an interrupt occurs, the interrupt processing unit performs the interrupt processing at the time of occurrence.
  • the amount of processing required for the interrupt processing is detected by the interrupt processing amount detection unit. In this case, only the processing amount at the time of the occurrence of the interrupt increases! / There is a concern that the power consumption of the CPU will increase accordingly. Therefore, when an interrupt occurs, the interrupt execution time adjustment unit redetermines the program execution start time and the processing amount per unit time, including the interrupt processing amount at the time when the interrupt occurs. At this time, the execution time adjustment unit at the time of interruption determines again within a range that satisfies the request for the execution time and the allowable range, similarly to the program execution time determination unit. As a result, even when an interrupt occurs, the amount of processing required of the CPU can be equalized, and the power consumption of the CPU can be reduced accordingly.
  • the CPU clock control device is a CPU clock control device that controls the clock of its own CPU, and loads a task to be executed by the CPU.
  • a task management unit for associating a request for the execution time of the task and an allowable range of the request for the execution time of the task, and receiving the request and the allowable range for the execution time of the task,
  • a task execution time registration unit that registers in association with a task, a task processing amount detection unit that detects a processing amount required to execute the task, and an execution time registered in the task execution time registration unit.
  • the processing amount detected by the task processing amount detection unit is equalized within a predetermined time range, and the execution time of the task and the time per unit time are equalized.
  • a task scheduling unit that schedules the processing amount of the task; and an operation frequency of the CPU based on the execution start time and the processing amount per unit time of the task scheduled by the task scheduling unit.
  • a CPU operating frequency setting unit that sets the CPU to operate at the operating frequency set by the CPU operating frequency setting unit, and executes the task based on the scheduling by the task scheduling unit. And a unit.
  • the task execution time registration unit registers, under the control of the task management unit, the request regarding the execution time of the task executed by the CPU and the allowable range of the request regarding the execution time of the task.
  • the request for the execution time is defined as an execution start time for specifying when the task is to be executed, an end time for specifying whether the processing needs to be completed by V, and a task periodically. Is an execution cycle when the execution is performed.
  • the allowable range is information indicating how much variation is allowed for a request regarding the execution time. For example, it indicates how much earlier or later execution start and end times are allowed.
  • the task processing amount detection unit detects the processing amount necessary for executing the task executed by the CPU. Then, the task execution time registration unit notifies the task scheduling unit of the request and the permissible range regarding the execution time, and the task processing amount detection unit notifies the required processing amount.
  • the task scheduling unit starts execution based on the information so that the processing amount in a predetermined time range is not perfect, but is equalized as much as possible within a range that satisfies the execution time requirement and the allowable range.
  • the time and the processing amount per unit time are determined. For example, if two tasks requiring the same amount of processing request execution to start at the same time, and no other tasks are requested to execute, the task scheduling unit Adjust the execution start time as you would after the end.
  • the CPU operating frequency setting unit sets the CPU operation frequency at each time based on the task execution start time and the processing amount per unit time determined by the task scheduling unit. Determine and set the operation frequency. Since the task execution unit causes the CPU to execute the task, as a result, the task can be executed within a range that satisfies the task execution time requirement and the allowable range. Furthermore, since the processing amount required for the CPU is equalized, it is possible to reduce the power consumption of the CPU accordingly.
  • the CPU clock control device is a CPU clock control device that controls the clock of the CPU of the CPU, loads a task to be executed by the CPU, and A task management unit that associates a request related to a task execution time with a permissible range of a request related to the execution time of the task, and receives the request and permissible range related to the execution time of the task from the task management unit.
  • a task execution time registration unit that registers the task execution time, a task processing amount detection unit that detects the amount of processing required to execute the task, and a request and allowance regarding the execution time registered in the task execution time registration unit.
  • the task execution time request interpretation unit that determines the timer event controlling the task and the task execution time request interpretation unit are determined so as to satisfy the range.
  • Timer A timer event registration unit for registering a request for the execution time of a timer event including one event and an allowable range of the execution time of the timer event, and a timer event processing amount for detecting a processing amount required for execution of the timer event.
  • a detection unit and a task processing amount detection unit that detects a task to be executed by a timer event within a range that satisfies a requirement and an allowable range regarding the execution time of the timer event registered in the timer event registration unit.
  • the execution start time of the timer event and the processing amount per unit time are set so that the total of the processing amount and the processing amount of the timer event detected by the timer event processing amount detection unit is equalized in a predetermined time range.
  • a CPU operating frequency setting unit that determines the operating frequency of the CPU based on the execution start time of the timer event and the amount of processing per unit time, and sets the operating frequency to the CPU;
  • a timer event execution unit that causes the CPU operating at the operating frequency set by the frequency setting unit to execute the timer event based on the execution start time and the processing amount per unit time determined by the timer event determination unit; It is preferable to provide According to this configuration, the task execution time registration unit registers, under the control of the task management unit, a request related to the execution time of the task executed by the CPU and an allowable range of the request related to the execution time of the task. .
  • the request for the execution time is defined as an execution start time for specifying when the task is to be executed, an end time for specifying whether the processing needs to be completed by V, or a task that is periodically executed. Is an execution cycle when the execution is performed.
  • the allowable range is information indicating how much variation is allowed for a request regarding the execution time. For example, it indicates how much earlier or later execution start and end times are allowed.
  • the task execution time request interpretation unit determines a timer event that controls the task so as to satisfy the request and the allowable range regarding the execution time registered in the task execution time registration unit.
  • the task processing amount detection unit detects the processing amount required to execute the task executed by the CPU
  • the timer event processing amount detection unit detects the processing amount required to execute the timer event executed by the CPU.
  • the timer event registration unit receives a processing amount required for execution of the timer event by the timer event processing amount detection unit according to the instruction of the timer event management unit.
  • the timer event registration unit receives a processing amount required for executing the task from the task processing amount detection unit.
  • the timer event determining unit receives the processing amount of the timer event (and the task), the request regarding the execution time of the timer event, the allowable range, and the like, and executes the timer event execution start time and the unit time. Is determined. That is, the timer event determination unit equalizes the processing amount of only the timer event when the timer event does not wake up the task, and the processing amount of the timer event and the task processing amount when the timer event wakes up the task. .
  • the CPU operating frequency setting unit determines and sets the operating frequency of the CPU at each time based on the execution start time of the timer event and the processing amount per unit time determined by the timer event determining unit. I do.
  • the timer event execution unit executes the timer event using the CPU, and consequently executes the timer event within a range that satisfies the request for the execution time of the timer event and the allowable range. be able to. Further, since the processing amount required of the CPU is equalized, it is possible to reduce the power consumption of the CPU accordingly.
  • the CPU clock control method sets the request regarding the execution time of the program executed by the CPU and the allowable range of the request regarding the execution time of the program as the program
  • a program execution time registration step for registering the program execution time
  • a program processing amount detection step for detecting a processing amount required for executing the program
  • a request and an allowable range regarding the execution time registered by the program execution time registration step Program execution for determining the execution start time of the program and the processing amount per unit time so that the processing amount detected by the program processing amount detecting step is equalized in a predetermined time range within a range satisfying the following.
  • the CPU clock control program is a CPU clock control program that causes a computer to function as a CPU clock control device that controls the clock of a CPU included in the CPU clock control program.
  • Program execution time registration means for registering, in association with the program, a request relating to the execution time of the program to be executed and an allowable range of the request relating to the execution time of the program, and a process required for executing the program.
  • a program processing amount detecting means for detecting the amount of processing, and a processing amount detected by the program processing amount detecting means within a range satisfying a request and an allowable range relating to the execution time registered by the program execution time registering means.
  • the execution start time of the program and the amount of processing per unit time so as to equalize in a predetermined time range.
  • Decide Determining the operating frequency of the CPU at each time based on the program execution time determining means to be executed and the amount of processing per unit time and the execution start time of the program determined by the program execution time determining means.
  • CPU operating frequency setting means for setting a frequency to the CPU; and an execution start time and unit determined by the program execution time determining step for the CPU operating at the operating frequency set by the CPU operating frequency setting means.
  • the computer is caused to function as program execution means for executing the program with a processing amount per time.
  • the recording medium according to the present invention is a computer-readable recording recording a CPU clock control program that causes a computer to function as a CPU clock control device that controls the clock of the CPU of the recording medium.
  • Program execution time registration means for registering a request relating to the execution time of a program executed by the CPU and an allowable range of the request relating to the execution time of the program in association with the program;
  • a program processing amount detecting means for detecting a processing amount required for execution, and a program processing amount detecting means for detecting a processing amount necessary for execution time registered by the program execution time registering means and within an allowable range.
  • a program execution time determining means for determining a time and a processing amount per unit time; and an execution start time of the program and a processing amount per unit time determined by the program execution time determining means.
  • CPU operating frequency setting means for determining an operating frequency at each time and setting the operating frequency to the CPU; and determining the program execution time for the CPU operating at the operating frequency set by the CPU operating frequency setting means.
  • a CPU clock control program for causing the computer to function as a program executing means for executing the program at the execution start time and the processing amount per unit time determined by the process.
  • This configuration is based on the processing required for the CPU for the same reason as described for the device (1). Since the amounts are equalized, it is possible to reduce the power consumption of the CPU accordingly.
  • the transmission medium according to the present invention is a transmission medium that holds a CPU clock control program that causes a computer to function as a CPU clock control device that controls the clock of a CPU of the transmission medium.
  • Program execution time registration means for registering a request relating to the execution time of the program executed by the CPU and an allowable range of the request relating to the execution time of the program in association with the program, and a program execution time necessary for executing the program.
  • a program processing amount detecting means for detecting a processing amount, and a processing amount detected by the program processing amount detecting means within a range satisfying a request and an allowable range relating to the execution time registered by the program execution time registering means.
  • a program execution time determining means for determining the amount, and an operating frequency of the CPU at each time based on the program execution start time and the processing amount per unit time determined by the program execution time determining means.
  • a CPU operating frequency setting means for setting the operating frequency in the CPU; and an execution start time and a start time determined in the program execution time determining step, for the CPU operating at the operating frequency set by the CPU operating frequency setting means.
  • a CPU clock control program for causing the computer to function as program execution means for executing the program with a processing amount per unit time is held.
  • the CPU clock control device and method according to the present invention are effective in a wide range of fields as long as they use an information processing device.
  • large computers and personal computers It can be used not only in the form of data, but also in various home appliances, communication equipment such as mobile phones, industrial equipment, and passenger equipment.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

 プログラム実行時間決定部は、登録された実行時間に関する要求と許容範囲とを満たす範囲で、所定時間範囲における、プログラムの実行に必要な処理量が均等化するように、プログラムの実行開始時刻及び単位時間当りの処理量を決定する。その結果、プログラムの実行時間に関する要求の許容範囲内で必要とする処理量を極力均等化するプログラムの実行時間を決定することができ、CPUの動作周波数の変動を抑えるクロック制御が行える。これにより、CPUの消費電力を削減することが可能となる。

Description

明 細 書
CPUクロック制御装置、 CPUクロック制御方法、 CPUクロック制御プログ ラム、記録媒体、及び伝送媒体
技術分野
[0001] 本発明は、情報処理装置における CPUの動作周波数を制御して消費電力の削減 を行う CPUクロック制御装置、 CPUクロック制御方法、 CPUクロック制御プログラム、 記録媒体、及び伝送媒体に関するものである。
背景技術
[0002] 情報処理装置 (コンピュータ)は中央演算装置 (CPU)が命令を解釈、実行すること で動作するが、 CPUが消費する電力はその動作周波数 (単位時間あたりに入力する クロック数)により変化する。動作周波数の制御により CPUの消費電力を削減する方 法は、様々なものが考案、実用化されている。
[0003] 代表的な電力削減方法として、 CPUを最大動作周波数で駆動することで要求され る処理をなるベく早く行 、、処理の必要の無!、時間(アイドル時間)ではクロックを停 止する方法がある。例えば、最大動作周波数が 100MHzの CPUで 50M (メガ)クロ ック分の処理を 1秒以内に行う必要が有る場合を考える。この場合は、まず 100MHz の動作周波数で 0. 5秒間 CPUを駆動して処理を完了させ、残りの 0. 5秒間はクロッ クを完全に停止するといつた処理を行う。また別の方法として、要求される時間内で 処理を完了できる最小の動作周波数を算出し、その動作周波数で CPUを駆動する 方法がある。例えば、 50Mクロック分の処理を 1秒以内に行う必要が有る場合、 50M Hzの動作周波数で 1秒間 CPUを駆動する。この 2つの方法は、いずれも処理に必 要な最小限のクロックだけを使うことで無駄なクロックを削減し、 CPUの消費電力を抑 えるものである。
[0004] 要求される時間内で処理を完了できる最小動作周波数を算出して用いる技術とし て、タスク毎に要求する CPUの性能情報を用いて、必要最小限の動作周波数で CP Uを動作させるクロック制御装置が開示されている (特許文献 1参照)。また、 CPUを 複数備えたシステムにおいて、タスクを遅延なく処理するように動作周波数を変化さ せる演算処理システムが発明されて 、る (特許文献 2参照)。
[0005] 1クロックの入力で CPUが消費する電力は、その電源電圧の 2乗に比例することが 知られている。また、 CPUの動作周波数を上げる為には、同時に電源電圧を上げる 必要があることが多い。従って、このような CPUでは、 1クロックあたりに消費する電力 が動作周波数によって異なるため、同じだけの処理量でも合計消費電力が異なる。 例えば、動作周波数に比例した電源電圧が必要となる CPUを用いると、前記従来の 2つの電力削減方法では 1秒間の総クロック数(=処理量)は同じだが、この 1秒間の 消費電力は後者が前者の 1Z4になる。また、同様に、同じ量の処理を同じ時間内に 行う場合では、なるべく動作周波数は変えずに一定の動作周波数で CPUを駆動し た方が消費電力は少なくなる。例えば最初の 0. 5秒間を 200MHzで駆動し、残りの 0. 5秒間を 100MHzで駆動するより、 150MHzで 1秒間駆動する方が消費電力は 少なくなる。電源電圧と動作周波数の関係は CPUの設計によるが、前述した様に、 処理量の要求を満たす範囲でなるべくアイドルの期間を作らず、同一の動作周波数 で CPUを駆動すると大きな電力削減効果を得られる場合が多い。
[0006] また、電力の供給に電池を用いる場合、単位時間当りの電力消費が安定している 方が電池内のエネルギーを有効に利用できることが報告されている。また、これを利 用したタスクスケジューリングアルゴリズムが開示されている (非特許文献 1参照)。
[0007] し力しながら、情報処理装置で処理を行う場合、処理の開始時刻や終了時刻、ある いは実行の周期といった実行時間が指定される場合が多い。例えば、映像の描画を 行う場合、映像 1フレームに相当する時間毎に周期的に処理を行う必要がある。状況 によっては、周期の異なる複数の周期的処理や、周期的ではないが実行する時間を 指定された処理を多数同時に実行することもある。このような時間を指定された処理 は、例えば、情報処理装置のオペレーティングシステム(OS)が管理するタイマーィ ベントを用いたり、あるいはタイマーイベントからタスクを起動したりする形で実現する ことができる。
[0008] 前述した従来の CPUでは、動作周波数を制御して、なるべくアイドルの期間を作ら ずかつ同一の動作周波数で動作させると、大きな電力削減効果を得られる。しかしな がら、一般に、時間を指定された処理、例えばタイマーイベントやそれによって起動さ れるタスクは、特定の時間に集中することがある。また、それとは逆に特定の時間は 処理が存在せずアイドル期間になることがある。つまり、 CPUに要求される処理量は 時間により変動するので、前記特許文献 1に係る発明を用いても、 CPUの動作周波 数はその時間に要求される処理量に応じて大きく変動することになる。このように、動 作周波数が大きく変動するため、前記特許文献 1に係る発明の電力削減効果は減 少すると ヽぅ課題を有して 、た。
[0009] 一方、タイマーイベントなどの実行時間を指定する処理において、その要求の厳密 さは様々である。例えば、実行開始時刻を指定している場合でも、一定の範囲内なら 実行開始時刻が遅れても許容できるものもある。しかし、このような実行時間要求の 許容範囲を利用して、 CPUが行うべき処理量を平滑ィ匕し、 CPU動作周波数の変動 を抑える制御は、前記特許文献 1、特許文献 2、及び非特許文献 1に記載の発明や 技術では考慮されておらず、実現することが不可能であった。
特許文献 1:特開平 8— 76874号公報
特許文献 2:特開 2002— 99433号公報
非特許文献 1 :電子情報通信学会論文誌 D— I Vol. J83 -D-I No. 12 pp. 1 249- 1259.
発明の開示
[0010] 本発明は、上記課題を鑑みて成されたものであり、情報処理装置において CPUに 要求される処理量を平滑ィ匕することにより CPUの消費電力の削減を行うものである。
[0011] この目的のために本発明の一態様に係る CPUクロック制御装置は、自身が有する CPUのクロックを制御する CPUクロック制御装置であって、前記 CPUが実行するプ ログラムの実行時間に関する要求と、前記プログラムの実行時間に関する要求の許 容範囲とを登録するプログラム実行時間登録部と、前記プログラムの実行に必要な 処理量を検知するプログラム処理量検知部と、前記プログラム実行時間登録部に登 録された実行時間に関する要求と許容範囲とを満たす範囲内で、前記プログラム処 理量検知部により検知された処理量が所定時間範囲にお!、て均等化するように、前 記プログラムの実行開始時刻及び単位時間当りの処理量を決定するプログラム実行 時間決定部と、前記プログラム実行時間決定部により決定された前記プログラムの実 行開始時刻及び単位時間当りの処理量に基づき、前記 CPUの各時刻における動作 周波数を決定し、当該動作周波数を前記 CPUに設定する CPU動作周波数設定部 と、前記 CPU動作周波数設定部により設定された動作周波数で動作する前記 CPU に、前記プログラム実行時間決定部により決定された実行開始時刻及び単位時間当 りの処理量で前記プログラムを実行させるプログラム実行部と、を備えるものである。
[0012] 本発明の目的、特徴、局面、及び利点は、以下の詳細な説明と添付図面とによつ て、より明白となる。
図面の簡単な説明
[0013] [図 1]本発明の実施の形態 1における CPUクロック制御装置を構築する情報処理装 置の概略構成図である。
[図 2]本発明の実施の形態 1における CPU動作周波数制御時の動作を説明するフロ 一チャートである。
[図 3]本発明の実施の形態 1における処理の一例を説明する図である。
[図 4]本発明の実施の形態 1における処理の一例を説明する図である。
[図 5]本発明の実施の形態 2における CPUクロック制御装置を構築する情報処理装 置の概略構成図である。
[図 6]本発明の実施の形態 2における CPU動作周波数制御時の動作を説明するフロ 一チャートである。
[図 7]本発明の実施の形態 2における処理の一例を説明する図である。
[図 8]本発明の実施の形態 3における CPUクロック制御装置を構築する情報処理装 置の概略構成図である。
[図 9]本発明の実施の形態 3における CPU動作周波数制御時の動作を説明するフロ 一チャートである。
[図 10]本発明の実施の形態 3における処理の一例を説明する図である。
[図 11]本発明の実施の形態 4における CPUクロック制御装置を構築する情報処理装 置の概略構成図である。
[図 12]本発明の実施の形態 4における CPU動作周波数制御時の動作を説明するフ ローチャートである。 [図 13]本発明の実施の形態 4における処理の一例を説明する図である。
[図 14]本発明の実施の形態 4における処理の一例を説明する図である。
発明を実施するための最良の形態
[0014] 以下本発明の実施の形態について、図面を参照しながら説明する。
[0015] (実施の形態 1)
図 1は、本発明の実施の形態 1の CPU動作周波数制御を行う情報処理装置を示 す図である。情報処理装置 51は少なくても一つ以上の中央演算装置 (CPU) 1とメモ リ装置 2とを備えている。また、情報処理装置 51は入力装置としての操作部 3を備え ている。さらに、情報処理装置 51は、図示しないが出力装置のような他の機器を備え ていても良い。入力装置、出力装置については、他の実施の形態でも同様である。
[0016] CPU1は、動作周波数を変更可能であれば任意のタイプのものを用いることができ る。 CPU1の動作周波数の変更はオペレーティングシステム(OS) 100、より正確に は後述する OS100内の CPU動作周波数設定部 104により行われる。
[0017] メモリ装置 2には、少なくとも一つ以上のプログラム 10、情報処理装置 51の OS100 が格納されている。メモリ装置 2は、十分な機能及び容量があればランダムアクセスメ モリ(RAM)、フラッシュメモリのような任意のタイプのものを使用することができる。ま た、メモリ装置 2は単一のメモリ装置で構成されている必要はなぐ同種の複数のメモ リ装置、またはリードオンリーメモリ(ROM)を含む、異なる種類のメモリ装置の組み合 わせであっても良い。さらに、メモリ装置 2以外に、例えばノヽードディスクのような外部 記憶装置を設け、情報処理装置 51の動作に問題の無い範囲で外部記憶装置にメ モリ装置 2の内容を移動させても良!、。
[0018] 本実施の形態でのプログラム 10とは、情報処理装置 51で実行される各々の処理を 情報処理装置 51のプログラムとして記述したものである。つまり、プログラム 10に含ま れる個々のプログラム # 1、 # 2等は、実行単位として分けられるものであればサイズ や形態等は任意で良い。また、本実施の形態では、 OS 100の制御の元でプログラム 10を実行することで、情報処理装置 51は各種の処理を行う。
[0019] 上記のプログラム 10等は、 ROM、フレキシブルディスク、 CD— ROM等の記録媒 体 31を通じて供給することも、電話回線、ネットワーク等の伝送媒体 33を通じて供給 することも可能である。図 1には、記録媒体 31として CD— ROMが描かれており、伝 送媒体 33として電話回線が描かれている。 CD— ROMに記録されたプログラム 10 等は、例えば情報処理装置 51の外部装置としての CD— ROM読取装置 32を情報 処理装置 51本体へ接続することによって読み出すことができ、例えば RAMあるいは 図示しないハードディスク等に格納することができる。記録媒体 31として ROMの形 態でプログラム 10等が供給される場合には、当該 ROMを情報処理装置 51に搭載 することにより、情報処理装置 51はプログラム 10等に従った処理を実行可能となる。 この場合、当該 ROMは、メモリ装置 2に含まれる。伝送媒体 33を通じて供給されるプ ログラム 10等は、通信装置 34を通じて受信され、例えば RAMあるいは図示しない ハードディスク等に格納される。伝送媒体 33は、有線の伝送媒体に限らず無線の伝 送媒体であっても良い。
[0020] OS 100は、本実施の形態の CPUクロック制御を行う為、プログラム管理部 110、プ ログラム実行時間登録部 101、プログラム処理量検知部 102、プログラム実行時間決 定部 103、 CPU動作周波数設定部 104、及びプログラム実行部 105を備えている。 本実施の形態においては、このプログラム管理部 110、プログラム実行時間登録部 1 01、プログラム処理量検知部 102、プログラム実行時間決定部 103、 CPU動作周波 数設定部 104、プログラム実行部 105、及び CPU1が CPUクロック制御装置 11とし ての機能を有する。
[0021] プログラム管理部 110は、管理テーブル 111を備えている。管理テーブル 111は、 プログラム 10に含まれる個々のプログラム # 1、 # 2等に対応させて、個々のプロダラ ムの実行開始時刻、許容範囲等を記憶している。プログラム管理部 110は、例えば、 操作部 3を介してユーザが実行を指示した個々のプログラム # 1、 # 2等に対応する 実行開始時刻、許容範囲等をプログラム実行時間登録部 101に通知し、登録させる 。ここで、プログラム管理部 110は、必ずしもプログラムの実行開始時刻、許容範囲等 を記憶している必要はなぐ個々のプログラムと、当該プログラムの実行時間に関する 要求及び当該プログラムの実行時間に関する要求の許容範囲とを対応づける機能 を有していれば良い。
[0022] プログラム実行時間登録部 101は、プログラム管理部 110の指示により、実行が指 示されたプログラムの実行時間に関する要求とその許容範囲についての情報を登録 する。プログラム実行時間登録部 101は、登録されたプログラムの実行時間に関する 要求とその許容範囲とをプログラム実行時間決定部 103に通知する。
[0023] プログラムの実行時間に関する要求とは、例えば、開始時刻に関する要求、つまり いつプログラムの実行を開始するかの要求である。あるいは、いつまでに処理を終え る必要があるかといった終了時刻に関する要求や、周期的にプログラムを実行する 場合の実行周期等である。どのような要求を登録可能にするかは、情報処理装置 51 の使用の目的や環境に合わせて設計することが出来る。
[0024] また、許容範囲とは、実行時間に関する要求に対してどの程度の変動が許されるか を示す情報である。例えば、開始時刻に関する要求に対しては、許される開始時刻 の遅れ等が許容範囲の一例である。 1秒後の実行開始を要求する力 0. 1秒の開始 時刻の遅れが許される場合は、実行時間に関する要求が 1秒後、許容範囲が + 0. 1 秒となる。また、 10秒ごとの周期的な実行を要求し 1秒の周期の早まりあるいは遅れ 等の変動が許容できる場合は、実行時間に関する要求が 10秒周期、許容範囲は士 1秒となる。どのような許容範囲を登録可能にする力 あるいはその表記の方法は、 実行時間に関する要求と同様に、情報処理装置 51の使用の目的や環境に合わせ て設計することが出来る。
[0025] プログラム実行時間登録部 101に登録される情報である実行時間に関する要求と 許容範囲とは、例えば、プログラムを情報処理装置 51に登録またはインストールする 時に、実行時間要求を登録する関数を呼び出して引数として渡せば良い。情報処理 装置 51は、登録やインストールを行う専用のプログラムを備えているのが普通である 。そのため、当該プログラムが前述した実行時間要求を登録する関数を呼び出すこと で、プログラム管理部 110の制御のもとに、プログラム実行時間登録部 101への登録 処理を実現できる。
[0026] あるいは、それに限られず、情報処理装置 51のユーザが、あるプログラムの実行指 示を行った際に実行時間に関する要求と許容範囲とを指定する形態であっても良い 。さらには、プログラム中にコードとして、実行時間に関する要求と許容範囲とが書き 込まれている形態であっても良い。以上のプログラムの実行時間に関する要求と許 容範囲とを登録する形態は、以下の実施の形態におけるタスクやタイマーイベントの 実行時間に関する要求と許容範囲とを登録する際においても適用可能である。
[0027] プログラム処理量検知部 102は、プログラム 10に含まれる個々のプログラム # 1、 # 2等の実行時に必要とされる処理量を検知し、プログラム実行時間決定部 103に通 知する。処理量の検知は、例えば、各プログラム # 1、 # 2等の中に必要とされる処理 量を記述しておき、実行前に各プログラム # 1、 # 2等力 関数の引数として渡すこと で可能である。あるいは各プログラム # 1、 # 2等のヘッダ等に処理量を記述しておき 、プログラム処理量検知部 102がその値を読み出しても良い。
[0028] あるいは、複数回実行されるプログラムでは、プログラムを実際に実行して終了まで にかかった時間を記録し、その時間に亘つて CPUの動作周波数を積分 (CPU動作 周波数が一定の場合は乗算することと等価)して要した処理量を実測しても良い。さ らには、処理量の実測を複数回行い、そのデータの平均を取るといった方法でも良 い。処理量の検知方法は、実際に検知が可能であれば任意の方法を用いることが出 来る。また、本発明ではプログラムが必要とする処理量は正確な値である必要は必ず しもなぐ処理量を大、中、あるいは小のようにおおまかに分類したものでも効果を得 ることが出来る。これは本実施の形態に限らず、他の実施の形態でも同様である。
[0029] プログラム実行時間決定部 103は、プログラム実行時間登録部 101から通知された プログラム 10の実行時間に関する要求と許容範囲、及びプログラム処理量検知部 1 02から通知された必要な処理量に基づき、プログラム 10に含まれる個々のプロダラ ム # 1、 # 2等の実行の時間を決定する。ここで、プログラム実行時間決定部 103は、 実行時間に関する要求とその許容範囲を満たす範囲で各プログラム 10に含まれる 個々のプログラム # 1、 # 2等の実行時間を決定する。同時に、予め定められた単位 時間毎で、実行されるプログラムの必要処理量の合計がなるべく一定になるように実 行の時間を決定する。つまり、単位時間当りのプログラムの必要処理量が極力等しく なる(均等化)ようにプログラムの実行時間を決定する。これにより、時間毎の必要処 理量は平滑ィ匕されたことになる。そして、プログラム実行時間決定部 103は、平滑ィ匕 した処理量を CPU動作周波数設定部 104に通知する。
[0030] CPU動作周波数設定部 104は、プログラム実行時間決定部 103により平滑ィ匕され た処理量に基づいて CPUの動作周波数を決定する。そして、 CPU動作周波数設定 部 104は、 CPU1に印加される電圧を制御すること等で当該動作周波数を CPU1に 設定する。また、例えば、 CPU動作周波数設定部 104が、 CPU1内に設けられてい る、動作周波数を決定するレジスタの値を書き換えることで動作周波数を設定する形 態であっても良い。
[0031] 設定される周波数は、例えば、必要とされる処理を各単位時間で丁度終了し、アイ ドル時間を作らな 、最小の動作周波数である。単位時間が 1秒間で、ある単位時間 の間(ここでは 1秒間)に 100Mクロック分の処理が必要とされる場合、この 1秒間は 1 OOMHzの動作周波数に設定する。あるいは、実際の処理量に余裕を持たす為、最 低限必要な動作周波数に一定量を加えた動作周波数に設定しても良い。
[0032] V、ずれの場合も、単位時間毎に行わなければならな 、処理量は、プログラム実行 時間決定部 103により平滑ィ匕されている。そのため、 CPU動作周波数設定部 104に より設定される動作周波数の変動は、平滑ィ匕を行わない場合に比べて少なくなる。前 述した様に、同じだけの処理量でも CPUの動作周波数の変動は少な 、方が消費電 力は少なくなる。従って、平滑ィ匕を行わない場合に比べ、 CPUが消費する電力は少 なくなる。
[0033] プログラム実行部 105は、 CPU動作周波数設定部 104により設定された動作周波 数で動作する CPU1を用いて、プログラム実行時間決定部 103の決定した実行時間 でプログラム 10に含まれる個々のプログラム # 1、 # 2等を実行する。
[0034] 図 2は、本実施の形態の CPUクロック制御装置の動作を説明するフローチャートで ある。ステップ S2— 1からステップ S2— 5までは、プログラム管理部 110、プログラム 実行時間登録部 101及びプログラム処理量検知部 102との動作、ステップ S2— 6か らステップ S2— 9までは、プログラム実行時間決定部 103、 CPU動作周波数設定部 104、及びプログラム実行部 105の動作である。
[0035] ステップ S2— 1では、例えばユーザが操作部 3を操作することにより、プログラム管 理部 110は情報処理装置 51が実行するプログラムを、例えば前述の ROM等からメ モリ装置 2内にロードし、登録する。続いてステップ S2— 2では、プログラム管理部 11 0は管理テーブル 111を参照し、登録されたプログラム 10の実行時間に関する要求 と許容範囲とをプログラム実行時間登録部 101に登録する。ステップ S2— 3では、プ ログラム実行時間登録部 101は、登録された実行時間に関する要求と許容範囲とを プログラム実行時間決定部 103に通知する。
[0036] ステップ S2— 4では、プログラム処理量検知部 102は、実行を要求されたプロダラ ムに必要な処理量の検知を行う。前述の通り、ステップ S2— 4は、例えば情報処理装 置 51が備えている、登録やインストールを行う専用のプログラム力 実行時間要求を 登録する関数を呼び出して必要処理量を検知したり、実際のプログラムの実行を待 つて必要処理量の実測をしたりする。ステップ S2— 5では、プログラム処理量検知部 102は、検知したプログラムの必要処理量をプログラム実行時間決定部 103に通知 する。なお、図 2のフローチャートでは、時間に関する要求と許容範囲との登録、及び 通知(S2— 2、 S2— 3)を必要処理量の検知と通知(S2— 4、 S2— 5)より先に行って いるが、必ずしもその必要は無い。これらは独立したものなので、任意の順番で実行 することが可能である。
[0037] ステップ S2— 6は、プログラム実行時間決定部 103の呼び出しである。プログラム 実行時間決定部 103の呼び出しは、新しいプログラムが登録された直後、つまりプロ グラム実行時間登録部 101からの実行時間に関する要求と許容範囲、及びプロダラ ム処理量検知部 102からの必要処理量がプログラム実行時間決定部 103に通知さ れた後 (ステップ S2— 5の直後)で良い。あるいは、特定の周期で周期的に行ったり、 一つのプログラムが処理を完了した時に呼び出したりしても良い。
[0038] S2— 7は、実行が要求され、プログラム実行時間決定部 103に実行時間に関する 要求等が通知されている全てのプログラムの実行時間の決定を行う。前述の通り、プ ログラム実行時間決定部 103は、ステップ S2— 3で通知されている各プログラムの実 行時間要求と許容範囲とを満たす範囲で、ステップ S2— 5で通知された各プログラム の必要処理量の単位時間当りの合計が、極力均等化するように実行時間を決定する
[0039] ステップ S2— 7の実行時間の決定は、制約を満たしながらプログラムの実行時間を 配置する一般的な問題であり、様々なアルゴリズムを用いることが出来る。例えば、対 象となるプログラム 10が比較的少数なら、考えられる全ての実行時間のパターンを列 挙して処理量の変動を比較しても良い。ただし、本発明では完全な均等化を行う必 要は必ずしも無 、。 CPU動作周波数の変動を少なくした分だけ消費電力を少なく出 来るので、完全でなくても均等化した分だけの消費電力削減効果を得られる。従って 、例えば、最も必要処理量の大きくなる時間から、一つのプログラムの実行を別の時 間へ移動させるだけでも効果がある。
[0040] また、プログラムの必要処理量が正確な値でなく近似値の場合でも、ある程度の均 等化は可能なので、消費電力削減の効果を得ることが出来る。さらに、ここでは全て のプログラムの実行時間を決定する必要はなく、現在時刻から一定先の時刻までの 実行時間を決定するだけでも良い。均等化には計算時間が必要となるので、どの程 度正確な均等化を行うかは、情報処理装置 51の使用の目的や環境に合わせて設計 すれば良い。
[0041] ステップ S2— 8では、プログラム実行時間決定部 103により決定された実行時間を 受けて、 CPU動作周波数設定部 104は CPU1の動作周波数を決定し、当該動作周 波数を CPU1に設定する。 S2— 9では、プログラム実行部 105が実行を要求された プログラムを実行する。プログラムはプログラム実行時間決定部 103により決定された 時間に実行される。従って、実際は、ステップ S2— 9はステップ S2— 8終了後直ちに 実行されるわけではなぐ決定された実行時間を迎えた時に実行される。
[0042] 図 3は、本実施の形態において、 CPUクロック制御装置が行う処理の一例である。
図 3 (al)は、実行が要求されているプログラムと、当該プログラムが要求している実行 時間とをそのまま時間軸上に配置した模式図である。(al)は、図 2のステップ S2—1 からステップ S2— 5の結果、プログラム実行時間決定部 103に通知される情報であり 、横軸は時刻(単位は任意)、縦軸はその時間に必要される処理量 (Mクロック)であ る。四角のブロックはプログラムを表しており、ブロックの縦の大きさはそれぞれのプロ グラムの必要処理量に対応する。(al)では、 Aから Dまでの 4つのプログラムが登録 されている。プログラム名であるアルファベットの後の値はプログラムの必要処理量( 単位は Mクロック)であり、その後ろの値は要求された実行開始時刻と許容範囲であ る。プログラム Aの場合、必要処理量が 100、実行開始時刻が 0、許容範囲が + 2と なる。 [0043] 図 3の例では、実行時間の要求は、その値の時刻からその次の時刻までの間での 実行と処理の完了とを要求しているとする。つまり、 Aの場合は実行開始時刻が 0で あるから、時刻 0から 1の間での実行と処理の完了とを要求していることになる。以下 では、これを「時刻 0での実行を要求している」という様に表記する。 Cの場合は、時 刻 2から 3の間での実行と処理の完了とを要求しているので、「時刻 2での実行を要求 している」となる。
[0044] 許容範囲の値は、実行時間の変動の範囲を表しており、 + 1の場合は時間 1の実 行の遅れまで許容、 + 2なら時間 2の遅れまで許容となる。プログラム Aの場合は許 容範囲が + 2なので、要求時刻 0での実行を要求して ヽるが時刻 1や 2での実行でも 許容できる。プログラム Bは時刻 0での実行を要求しており、かつ許容範囲が 0なので 、他の時刻での実行は出来ない。プログラム C及び Dは時刻 2での実行を要求してお り、かつ許容範囲が 0なので、この時刻で実行しなければならない。
[0045] 図 3 (bl)は、(al)の実行時間でプログラム A力も Dを実行し、各時間でそれぞれの 処理を必要最小限の動作周波数で完了する、つまりアイドル期間をつくらないように CPU動作周波数を設定した場合を表している。この(bl)の横軸は (al)と同じく時刻 である力 縦軸は CPU1の動作周波数 (Mクロック Z単位時間)である。
[0046] 図 3 (a2)は、ステップ S2— 6、 S2— 7力実行され、プログラム実行時間決定部 103 により決定されたプログラムの実際の実行時間を表している。ステップ S2— 7の結果 、プログラム実行時間決定部 103は、時間毎の必要周波数が均等化するように、プロ グラム Aを時刻 1で実行することを決定する。なお、ここでは計算に必要な処理量を 考えて、現在時刻より 3時刻先までのプログラム実行のみを均等化している。つまり図 3中の時刻の範囲のみで考えている。
[0047] 図 3 (b2)は、プログラム実行時間決定部 103により決定された (a2)のプログラム実 行時間を達成するために、 CPU動作周波数設定部 104が決定した CPU動作周波 数である。(b2)は (bl)と比較すると動作周波数の変動が少なくなつており、この期間 での CPUの消費電力が削減される。また、各プログラムはそれぞれの許容範囲を満 たして実行されている。
[0048] 図 4は、本実施の形態にお!、て、 CPUクロック制御装置が行う処理の他の一例であ る。図 4 (al)は、図 3 (al)と同様、実行が要求されているプログラムと、当該プロダラ ムが要求して!/、る実行時間とをそのまま時間軸上に配置した模式図である。プロダラ ム Aは周期 2での周期的実行を要求しており、図 4 (al)ではこれを実行時間要求に おいて P2と表記している。周期的実行なので、プログラム Aは時刻 0、 2、 4での実行 を要求していることになる。ただしプログラム Aの許容範囲は + 1なので、実行される 時刻が 1だけ遅れても許容できる。(a2)は、プログラム実行時間決定部 103により実 行時間が決定された後の状態を示す模式図である。この(a2)に示した例では、時刻 2での実行を要求して ヽるプログラム Aは、許容範囲が + 1であるため実行される時 刻が 1だけ遅れて、実際には時刻 3で実行される。
[0049] 図 4 (bl)、 (b2)は、 CPU動作周波数設定部 104により決定された、プログラム実 行処理に必要な最小の動作周波数を用いる場合の CPU1の動作周波数である。 (b 2)においても、動作周波数が完全に均等化されている訳ではないが、 (bl)に比べ て動作周波数の変動が少なくなり、 CPUの消費電力はその分だけ削減される。また 、各プログラム A〜Eはそれぞれの許容範囲を満たして実行されて ヽる。
[0050] 以上の様に、本発明ではプログラムの実行時間に関する要求を許容範囲内で満た した上で、 CPUの消費電力を削減することが可能である。なお、本実施の形態での プログラム 10は、情報処理装置 51で実行される全ての処理である必要はなぐその 内の特定の一部でも良い。同様に、全てのプログラム 10が、時間要求と許容範囲と を登録する必要は無 、。処理量を平滑化されるのが全ての処理のうちの一部であつ ても、平滑化された分に応じた消費電力の削減効果を得ることが可能である。
[0051] なお、本発明の実施の形態では OS100内に、プログラム実行時間登録部 101、プ ログラム処理量検知部 102、プログラム実行時間決定部 103、 CPU動作周波数設定 部 104、及びプログラム実行部 105を設けた力 OS 100の外部に設けることも可能 である。
[0052] (実施の形態 2)
図 5は、本発明の実施の形態 2の CPU動作周波数制御を行う情報処理装置を示 す図である。この図において、 CPU1及びメモリ装置 2を備える構成は実施の形態 1 と同じである。また、プログラム 20は実施の形態 1のプログラム 10と同様に、情報処理 装置 51で実行される各々の処理を情報処理装置 52のプログラムとして記述したもの である。 CPU1の動作周波数の変更等は、 OS200内の CPU動作周波数設定部 20 7により行われる。
[0053] OS200は、本実施の形態の CPUクロック制御を行う為、プログラム管理部 210、プ ログラム実行時間登録部 201、プログラム処理量検知部 202、プログラム実行時間決 定部 203、割り込み処理量検知部 204、割り込み処理部 205、割り込み時実行時間 調整部 206、 CPU動作周波数設定部 207、及びプログラム実行部 208を備えている 。本実施の形態においては、このプログラム管理部 210、プログラム実行時間登録部 201、プログラム処理量検知部 202、プログラム実行時間決定部 203、割り込み処理 量検知部 204、割り込み処理部 205、割り込み時実行時間調整部 206、 CPU動作 周波数設定部 207、プログラム実行部 208、及び CPU1が CPUクロック制御装置 12 としての機能を有する。
[0054] プログラム管理部 210は、管理テーブル 211を備えている。管理テーブル 211は、 プログラム 20に含まれる個々のプログラム # 1、 # 2等に対応させて、個々のプロダラ ムの実行開始時刻、許容範囲等を記憶している。プログラム管理部 210は、例えば、 操作部 3を介してユーザが実行を指示した個々のプログラム # 1、 # 2等に対応する 実行開始時刻、許容範囲等をプログラム実行時間登録部 201に通知し、登録させる 。ここで、プログラム管理部 210は、必ずしもプログラムの実行開始時刻、許容範囲等 を記憶している必要はなぐ個々のプログラムと、当該プログラムの実行時間に関する 要求及び当該プログラムの実行時間に関する要求の許容範囲とを対応づける機能 を有していれば良い。
[0055] プログラム実行時間登録部 201は実施の形態 1のプログラム実行時間登録部 101 と同様に、プログラム 20からその時間に対する要求と、許容範囲についての情報とを 受け取り、プログラム実行時間決定部 203と割り込み時実行時間調整部 206とに通 知する。同様に、プログラム処理量検知部 202は実施の形態 1のプログラム処理量検 知部 102と同様に、プログラム 20の実行に必要な処理量を、プログラム実行時間決 定部 203と割り込み時実行時間調整部 206とに通知する。
[0056] プログラム実行時間決定部 203は、実施の形態 1のプログラム実行時間調整部 10 3と同様に、プログラムの実行時間に関する要求、許容範囲、及び必要な処理量に 基づき、一定時間毎のプログラムの必要処理量の合計がなるべく均等になるようにプ ログラムの実行の時間を決定する。
[0057] 割り込み処理量検知部 204は、割り込み発生時に実行される処理 (割り込みハンド ラ)が必要とする処理量を、割り込み時実行時間調整部 206に通知する。割り込み処 理が必要とする処理量の検知は、例えば、予め処理量を見積もっておき、割り込み ハンドラを OS200に登録する時にその値を渡せば可能である。あるいは、実際に割 り込み処理が行われた際に要した処理量を実測して、それに基づき検知しても良い
[0058] 割り込み処理部 205は、割り込み信号が発生した際に、対応する割り込み処理を 実行し、合わせて割り込み処理が発生したことを割り込み時実行時間調整部 206〖こ 通知する。
[0059] 割り込み時実行時間調整部 206は、プログラム実行時間決定部 203と同様に、プロ グラムの実行時間に関する要求、許容範囲、及び必要な処理量に基づき、一定時間 毎のプログラムの必要処理量の合計が時間に依らずなるべく一定になるようにプログ ラムの実行の時間を決定する。ただし、割り込み時実行時間調整部 206は、割り込み 処理部 205より割り込み発生が通知された場合にのみプログラム実行時間の決定を 行う。また、プログラム実行時間の決定は、割り込み処理量検知部 204より通知され ている割り込み処理の処理量を、割り込み発生時間に行う処理として追加した上で、 単位時間毎の処理量を極力均等化するようにプログラムの実行の時間を決定するも のである。つまり、割り込み処理に費やした処理量を計算に入れた上で処理量が平 滑ィ匕するようにプログラムの実行時間を再決定する。
[0060] CPU動作周波数設定部 207は、実施の形態 1の CPU動作周波数設定部 104と同 様に、プログラム実行時間決定部 203により平滑ィ匕された単位時間毎に必要になる 処理量に基づいて CPUの動作周波数を決定する。そして、 CPU動作周波数設定部 207は、 CPU1に印加される電圧を制御することで当該動作周波数を CPU1に設定 する。さらに、割り込み時実行時間調整部 206がプログラム実行時間を再決定した場 合は、 CPU動作周波数設定部 207は、割り込み時実行時間調整部 206により平滑 化された処理量に基づいて CPU動作周波数を決定する。つまり、 CPU動作周波数 設定部 207は、最新の平滑ィ匕の結果に基づき CPU動作周波数を設定する。その結 果、 CPU動作周波数設定部 207が平滑ィ匕を行わない場合に比べて、設定される動 作周波数の変動は少なくなるため、 CPUが消費する電力は削減される。また、割り込 み処理が実行された場合は、それを加えた上で、 CPU動作周波数設定部 207は平 滑化された必要処理量に基づ 、て CPU動作周波数を決定するので、割り込みが発 生した場合でも適切な CPU動作周波数を用いることが出来る。
[0061] プログラム実行部 208は、 CPU動作周波数設定部 207により設定された動作周波 数で動作する CPU1を用いて、プログラム実行時間決定部 203の決定した実行時間 でプログラム 20に含まれる個々のプログラム # 1、 # 2等を実行する。しかしながら、 割り込み時実行時間調整部 206がプログラム実行時間を再決定した場合は、プログ ラム実行部 208は、再決定された実行時間でプログラム 10を実行する。つまり、プロ グラム実行部 208は、割り込み発生も含めた最新の決定に基づきプログラム 10を実 行する。
[0062] 図 6は本実施の形態の CPUクロック制御装置の動作を説明するフローチャートであ る。ステップ S6— 1からステップ S6— 5は、プログラムの時間要求と許容範囲の登録 、及び処理量の検知であり、実施の形態 1のステップ S2—1からステップ S2— 5 (図 2 )と同様である。
[0063] ステップ S6— 6はプログラム実行時間決定部 203の呼び出しであり、実施の形態 1 のステップ S2— 6と同様である。また、ステップ S6— 7は、実施の形態 1のステップ S2 —7と同様である。ステップ S6— 8では、プログラム実行時間決定部 203は、決定した 実行時間と必要な処理量とを CPU動作周波数設定部 207とプログラム実行部 208と に通知する。
[0064] ステップ S6— 9からステップ S6— 11は割り込み処理部 205及び割り込み時実行時 間調節部 206が行う処理の流れである。ここでは、割り込み処理の処理量は、事前に 検知されているとし図示していない。ステップ S6— 9は割り込みの発生であり、 CPU1 はレジスタ 4を読みに行き、要求された割り込みを割り込み処理部 205に通知する。 その通知を受け取ると、割り込み処理部 205は、ステップ S6— 20において要求され た割り込み処理を実行する。そして、ステップ S6— 10及び S6— 11は割り込みを契 機に行なわれる処理である。ステップ S6— 10は、割り込み時実行時間調整部 206が 行う、割り込み処理に必要な処理量を含めた上でのプログラム実行時間の決定であ る。このステップ S6— 10は、割り込み処理を現在の時間に必要な処理とみなす以外 は、ステップ S6— 7と同様である。ステップ S6— 11では、割り込み時実行時間調整 部 206は、決定した実行時間と必要な処理量とを CPU動作周波数設定部 207とプロ グラム実行部 208とに通知する。
[0065] ステップ S6— 12からステップ S6— 14は、 CPU動作周波数 207とプログラム実行 部 208とが行う処理の流れである。ステップ S6— 12は、ステップ S6— 8 (割り込みが 発生しなかった場合)、または S6— 11 (割り込みが発生した場合)におけるプロダラ ム実行時間と必要処理量との通知であり、ステップ S6— 13及び S6— 14はこれを契 機に実行される。 S6— 13は、 CPU動作周波数設定部 207が、通知された必要処理 量に基づいて行う CPU動作周波数の決定である。また、ステップ S6— 14では、プロ グラム実行部 208は、ステップ S6— 8またはステップ S6— 11において決定された実 行時間でプログラム 20を実行する。
[0066] 図 7は、本実施の形態において、 CPUクロック制御装置が行う処理の一例である。
図 7 (al)及び (a2)は、図 3 (al)及び (a2)と同様に、縦軸が必要処理量 (Mクロック) であり、横軸が時刻(単位は任意)を表す。また、図 7 (bl)及び (b2)は、図 3 (bl)及 び (b2)と同様に、縦軸が動作周波数 (Mクロック Z単位時間)であり、横軸が時刻( 単位は任意)を表す。
[0067] 図 7 (al)は、図 6のステップ S6— 1から S6— 8の結果として、プログラムの実行時間 が決定された後に、必要処理量 150の割り込み処理が発生した状態を示している。 この割り込み発生により、ステップ S6— 9、 S6— 20及び S6— 10が実行され、割り込 み時実行時間調整部 206にお 、てプログラムの実行時間が再決定される。この例で は、プログラム A、 Bは共に、実行開始時刻が 0であり、許容範囲は + 2である。その ため、「時刻 0での実行を要求している」が時間 2の遅れまでが許容され、時刻 2まで に実行すればよいことがわかる。それに対して、プログラム C、 Dは共に許容範囲が 0 であるために、それぞれ時刻 1及び時刻 2で実行されなければならな 、。 [0068] 以上により、割り込み時実行時間調整部 206は、(a2)に示したように、プログラム A 、 Bの実行の時刻を変更し、それぞれ時刻 1及び時刻 2での実行とする。この図 7 (al )及び (a2)に示した縦軸の必要処理量を CPU1の動作周波数に直したもの力 それ ぞれ図 7 (bl)及び (b2)である。図 7 (bl)からわ力るように、時刻 0と 1との間で実行さ せる割り込みが発生した場合、そのままでは CPU1の動作周波数として「250」が必 要となる。しかしながら、時刻 1以降は割り込み処理が終了しているため、 CPU1の動 作周波数としては「100」が設定される。このように、割り込み時実行時間調整部 206 がプログラム A、 Bの実行の時刻を変更しなければ、 CPU1の動作周波数の変動が 大きぐそれに伴って CPU1の消費電力も大きいものとなる。
[0069] それに対して、割り込み時実行時間調整部 206がプログラム A、 Bの実行の時刻を 変更すると、図 7 (b2)に示したように、プログラムの実行に必要な処理量が均等化さ れるため、 CPU1の動作周波数の変動が少なくなる。これにより、 CPU1の消費電力 は削減される。またこのとき、各プログラムはそれぞれの許容範囲を満たして実行され ている。
[0070] なお、本実施の形態においても、実施の形態 1と同様に、プログラム 20は情報処理 装置で実行される全ての処理である必要はなぐその内の特定の一部であっても良 い。また、時間要求と許容範囲を登録するのは一部のプログラムでも良い。
[0071] なお、本発明の実施の形態では OS200内に、プログラム管理部 210、プログラム 実行時間登録部 201、プログラム処理量検知部 202、プログラム実行時間決定部 20 3、割り込み処理量検知部 204、割り込み処理部 205、割り込み時実行時間調整部 2 06、 CPU動作周波数設定部 207、プログラム実行部 208を設けた力 OS200の外 部に設けることも可能である。
[0072] (実施の形態 3)
図 8は、本発明の実施の形態 3の CPU動作周波数制御を行う情報処理装置を示 す図である。この図において、 CPU1及びメモリ装置 2を備える構成は実施の形態 1 と同じである。
[0073] タスク 30に含まれる各タスク # 1、 # 2等は、情報処理装置が処理を行う単位であり 、 OS300により、それぞれが持つ優先度に応じた順番で時分割的に実行される。こ こで、タスクは、 OSによって「プロセス」または「スレッド」に分類される。プロセスとは、 お互いに相互干渉しな 、ように制御される処理単位であり、一般的なパソコンでは、 ワープロや表計算プログラムなどがある。スレッドとは、 OSが 1つのアプリケーション内 の処理を並列して行う場合の処理の最小単位であり、プロセス内の逐次処理の単位 である。一つのプロセスは複数のスレッドで構成することができる。
[0074] また、このように複数のタスクを並行して動作させる処理形態はマルチタスク処理と 呼ばれ、一般的に用いられる処理形態である。本実施の形態の情報処理装置は、こ のマルチタスク処理を行うものとして説明する。また、本明細書においては、実施の 形態 1及び 2におけるプログラムは、本実施の形態におけるタスク等を含んだ包括的 なものであり、必ずしも最小の実行単位である必要はない。つまり、単独のタスクも、 複数のタスクをまとめたものも共にプログラムということができる。
[0075] OS300は、本実施の形態の CPUクロック制御を行う為、タスク管理部 310、タスク 実行時間登録部 301、タスク処理量検知部 302、タスクスケジューリング部 303、 CP U動作周波数設定部 304、及びタスク実行部 305を備えている。本実施の形態にお いては、このタスク管理部 310、タスク実行時間登録部 301、タスク処理量検知部 30 2、タスクスケジューリング部 303、 CPU動作周波数設定部 304、タスク実行部 305、 及び CPU1が CPUクロック制御装置 13としての機能を有する。
[0076] タスク管理部 310は、管理テーブル 311を備えている。管理テーブル 311は、タスク 30に含まれる個々のタスク # 1、 # 2等に対応させて、個々のタスクの実行開始時刻 、許容範囲等を記憶している。タスク管理部 310は、例えば、操作部 3を介してユー ザが実行を指示した個々のタスク # 1、 # 2等に対応する実行開始時刻、許容範囲 等をタスク実行時間登録部 301に通知し、登録させる。ここで、タスク管理部 310は、 必ずしもタスクの実行開始時刻、許容範囲等を記憶している必要はなぐ個々のタス クと、当該タスクの実行時間に関する要求及び当該タスクの実行時間に関する要求 の許容範囲とを対応づける機能を有して 、れば良 、。
[0077] タスク実行時間登録部 301は、タスク管理部 310の指示により、タスクの実行時間に 対する要求と、その許容範囲についての情報とを登録し、それらの情報をタスクスケ ジユーリング部 303に通知する。ここで、タスクの実行時間に関する要求とは、例えば 、タスクの開始時刻に関する要求、終了時刻に関する要求、実行周期等である。どの ような要求を登録可能にするかは、 OS300のタスクスケジューリングの方法に合わせ て設計することが出来る。また、同様に、どのような許容範囲を登録可能にするか、あ るいはその表記の方法は、 OS300のタスクスケジューリングの方法に合わせて設計 される。
[0078] タスク処理量検知部 302は、各タスクの必要とする処理量を検知し、タスクスケジュ 一リング部 303に通知する。処理量の検知は、例えば、タスクのスケジューリングの方 法を指定する際に、予め見積もられた処理量を合わせて OS300に渡すことで可能 である。あるいは、実際にタスクを実行して要した処理量を求めて、それに基づき決 定しても良い。
[0079] 一般的にマルチタスクの情報処理装置 53は、タスクのスケジューリングの方法を指 定するインターフェイスを備えていることが多い。このインターフェイスは、例えば、周 期的なタスクの実行を関数呼び出しで要求し、関数の引数で周期を指定するもので ある。また、それとは異なり、特定のタスクに関し、特定の時間毎にかならず一定量の 処理を行うといった指定などもある。そのようなインターフェイスを備えている場合、そ の指定を実行時間に関する要求や処理量の検知に用いることが出来る。
[0080] タスクスケジューリング部 303はタスクのスケジューリングを行う。タスクスケジユーリ ング部 303は、時間に関する要求とその許容範囲とを満たす範囲でタスクをスケジュ 一リングするが、同時に一定時間毎のタスクの必要処理量の合計がなるべく均等に なるようにタスクをスケジューリングする。
[0081] CPU動作周波数設定部 304は、タスクスケジューリング部 303により平滑化された 単位時間毎に必要になる処理量に基づいて CPUの動作周波数を決定する。そして 、 CPU動作周波数設定部 304は、 CPU1に印加される電圧を制御することで当該動 作周波数を CPU1に設定する。タスク 30が単位時間毎に実行を要求される処理量 はタスクスケジューリング部 303により平滑ィ匕される。そのため、 CPU動作周波数設 定部 304により設定される動作周波数の変動は平滑ィ匕を行わない場合に比べて少 なくなり、 CPU1の消費する電力は削減される。タスク実行部 305は、タスクスケジュ 一リング部 303の行ったスケジューリングに基づきタスク 30を実行する。 [0082] 図 9は本実施の形態での処理の流れを示すフローチャートである。ステップ S9— 1 では、まず、例えばユーザが操作部 3を操作することにより、タスク管理部 310は、情 報処理装置 53が実行するタスクを、例えば前述の ROM等からメモリ装置 2内にロー ドし、登録する。続いてステップ S9— 2では、タスク管理部 310は、登録されたタスク 3 0の実行時間に関する要求と許容範囲とをタスク実行時間登録部 301に登録する。 ステップ S9— 3では、タスク実行時間登録部 301は、登録された実行時間に関する 要求と許容範囲とをタスクスケジューリング部 103に通知する。
[0083] ステップ S9— 4では、タスク処理量検知部 302は、実行を要求されたタスクに必要 な処理量の検知を行う。前述の通り、ステップ S9— 4は、例えばタスクから関数を呼 び出して必要処理量を検知したり、実際のプログラムの実行を待って必要処理量の 実測をしたりする。ステップ S9— 5では、タスク処理量検知部 102は、検知したタスク の必要処理量をタスクスケジューリング部 303に通知する。なお、図 9のフローチヤ一 トでは、時間に関する要求と許容範囲との登録、及び通知(S9— 2、 S9— 3)を必要 処理量の検知と通知(S9— 4、 S9— 5)より先に行っている力 必ずしもその必要は 無い。これらは独立したものなので、任意の順番で実行することが可能である。
[0084] ステップ S9— 6は、タスクスケジューリング部 303の呼び出しである。タスクスケジュ 一リング部 303の呼び出しは、通常のタスクスケジューリングのタイミングで行えば良 い。あるいは、特定の周期で周期的に行ったり、一つのタスクが処理を完了した時に 呼び出したりしても良い。
[0085] S9— 7では、実行が要求され、タスクスケジューリング部 303に実行時間に関する 要求等が通知されている全てのタスクの実行時間の決定を行う。前述の通り、タスク スケジューリング部 303は、ステップ S9— 3で通知されている各タスクの実行時間要 求と許容範囲とを満たす範囲で、ステップ S9— 5で通知された各タスクの必要処理 量の単位時間当りの合計力 極力均等化するようにスケジューリングする。
[0086] ステップ S9— 7の実行時間の決定は、制約を満たしながらタスクの実行時間を配置 する一般的な問題であり、様々なアルゴリズムを用いることが出来る。例えば、対象と なるタスク 30が比較的少数なら、考えられる全ての実行時間のパターンを列挙して 処理量の変動を比較しても良い。ただし、本発明では完全な均等化を行う必要は必 ずしも無い。 CPU動作周波数の変動を少なくした分だけ消費電力を少なく出来るの で、完全でなくても均等化した分だけの消費電力削減効果を得られる。従って、例え ば、最も必要処理量の大きくなる時間から、一つのプログラムの実行を別の時間へ移 動させるだけでも効果がある。
[0087] また、プログラムの必要処理量が正確な値でなく近似値の場合でも、ある程度の均 等化は可能なので、消費電力削減の効果を得ることが出来る。さらに、ここでは全て のタスクの実行時間を決定する必要はなぐ現在時刻から一定先の時刻までの実行 時間を決定するだけでも良い。均等化には計算時間が必要となるので、どの程度正 確な均等化を行うかは、情報処理装置 53の使用の目的や環境に合わせて設計すれ ば良い。
[0088] ステップ S9— 8では、タスクスケジューリング部 303により決定された実行時間を受 けて、 CPU動作周波数設定部 304は CPU1の動作周波数を決定し、当該動作周波 数を CPU1に設定する。 S9— 9では、タスク実行部 305が実行を要求されたタスクを 実行する。タスクはタスクスケジューリング部 303により決定された時間に実行される。 従って、実際は、ステップ S9— 9はステップ S9— 8終了後直ちに実行されるわけでは なぐ決定された実行時間を迎えた時に実行される。
[0089] 本実施の形態での実際の処理の例としては、実施の形態 1の例で示したもの(図 3 、図 4)と同様のものがある。つまり、実行時間を指定されたタスクのスケジューリング を図 3、図 4と同様に行うことが可能である。特に、図 4と同様なスケジューリングは、特 定のタスク(図 4ではプログラム A)を周期的に実行するスケジューリングである力 同 時に一定周期毎(図 4では周期 2)に必ず定められた量の処理量(図 4では 50)を行う ようなスケジューリングでもある。
[0090] 図 10は本実施の形態において、 CPUクロック制御装置が行う処理の他の一例であ る。図 10の例では、タスクのデットラインスケジュールを行うものとして説明する。デッ トラインスケジュールは、タスクの処理が完了しなければならない時刻を指定し、その 時刻(デットライン)が早 、タスク力も実行するものである。
[0091] 図 10 (al)は、要求して 、るデットラインが早 、ものから順にタスクを実行する通常 のスケジューリングを表す模式図である。四角のブロックはタスクを表しており、 (al) では、 Aと Bの 2つタスクがスケジューリングの対象である。タスク名であるアルファべッ トの後の値はタスクの必要処理量であり、その次の値は実行時間要求と許容範囲で ある。この例では、実行時間の要求はデットラインであり、デットラインであることをアル ファベットの Eで表す。許容範囲はデットラインの許容範囲、つまりデットラインからど の位の進みまたは遅れが許容できるかである。
[0092] タスク Aの場合、必要処理量が 200、デットラインが 1、許容範囲が + 2となる。これ は、タスク Aは時刻 1までの終了を要求する力 最悪時刻 3までの終了を認めることを 意味する。タスク Bの場合、必要処理量が 100、デットラインが 2、許容範囲が(一 1, 0 )となる。この許容範囲の(— 1, 0)は、デットラインを 1だけ早めた時刻から指定され たデットラインの時刻の間にタスクが終了すればよいことを意味する。つまり、タスク B は時刻 2までの終了を要求するが、時刻 1から時刻 2までの間に終了すればよい。ま た、(al)は、図 9のステップ S9— 1からステップ S9— 5の結果、タスクスケジユーリン グ部 303に通知される情報である。
[0093] 図 10 (bl)は、(al)のスケジューリングでタスク A、 Bを実行し、それぞれの処理を 必要最小限の動作周波数で完了し、アイドル期間をつくらないようにした場合の CP U動作周波数を表して 、る。
[0094] 図 10 (a2)は、タスクスケジューリング部 303がステップ S9— 6及び S9— 7において 行ったスケジューリングの結果である。ここでは、時間毎に要求される処理量を極力 平滑ィ匕するスケジューリングが行なわれて 、る。
[0095] 図 10 (b2)は、(a2)のタスクを実行する際の CPU動作周波数である。 (b2)は (bl) と比較すると動作周波数の変動が少なくなつており、この期間での CPUの消費電力 が削減される。またこのとき、タスク A、 Bはそれぞれの許容範囲を満たして実行され ている。
[0096] このように本実施の形態では、実行時間の要求と許容範囲、必要処理量の指定に より様々なスケジューリングが可能である。なお、本実施の形態でタスク 30の全てが 実行時間に関する要求を登録する必要は無い。処理量を平滑化されるのが全てのタ スクの一部であっても、限定的ではあるがある程度の効果を得ることが可能である。
[0097] また、本実施の形態においても実施の形態 2と同様に、割り込み処理量検知部と、 割り込み処理部と、割り込み発生時にタスクの再スケジューリングを行う割り込み時実 行時間調整部とを設けることも可能である。この場合は、割り込み発生時に、割り込 み処理の分を加えた上で処理量が均等化するようにタスクを再スケジューリングする 。これにより、割り込みの発生にも対応することが出来る。
[0098] なお、本発明の実施の形態では OS300内に、タスク管理部 310、タスク実行時間 登録部 301、タスク処理量検知部 302、タスクスケジューリング部 303、 CPU動作周 波数設定部 304、及びタスク実行部 305を設けた力 OS300の外部に設けることも 可能である。
[0099] (実施の形態 4)
図 11は、本発明の実施の形態 4の CPU動作周波数制御を行う情報処理装置を示 す図である。情報処理装置 54は少なくても一つ以上の CPU1とメモリ装置 2とを備え ている。この図において、 CPU1及びメモリ装置 2を備える構成は実施の形態 1と同じ である。またこの図において、メモリ装置 2がタスク 40を備える構成は実施の形態 3と 同じである。 CPU1の動作周波数の変更、及びタスク 40の制御は OS400により行わ れる。
[0100] タイマーイベント 41は、当該タイマーイベント 41を実行する時間を指定して OS400 に登録される処理である。タイマーイベント 41の登録と実行の機能は、実時間に応じ た処理を行うため、多くの OSにおいて実現されている。タイマーイベント 41は単体で も利用できる力 本実施の形態ではタイマーイベント 41に含まれる個々のタイマーィ ベント # 1、 # 2等力 対応するタスク 40に含まれる個々のタスク # 1、 # 2等を起床 するものとして説明する。ただし、タイマーイベント # Nとタスク # N (N= 1, 2, 3 · · ·) とが対応して 、る必要はなぐ対応する組み合わせは任意でよ!、。
[0101] OS400は、本実施の形態の CPUクロック制御を行う為、タスク管理部 410、タイマ 一イベント管理部 420、タスク実行時間登録部 401、タスク実行時間要求解釈部 402 、タスク処理量検知部 403、タイマーイベント処理量検知部 404、タイマーイベント登 録部 405、タイマーイベント調整部 406、 CPU動作周波数設定部 407、タイマーィべ ント実行部 408、及びタスク実行部 409を備えている。本実施の形態においては、こ のタスク管理部 410、タイマーイベント管理部 420、タスク実行時間登録部 401、タス ク実行時間要求解釈部 402、タスク処理量検知部 403、タイマーイベント処理量検知 部 404、タイマーイベント登録部 405、タイマーイベント調整部 406、 CPU動作周波 数設定部 407、タイマーイベント実行部 408、タスク実行部 409、及び CPU1が CPU クロック制御装置 14としての機能を有する。
[0102] タスク管理部 410は、管理テーブル 411を備えている。管理テーブル 411は、タスク 40に含まれる個々のタスク # 1、 # 2等に対応させて、個々のタスクの実行開始時刻 、許容範囲等を記憶している。タスク管理部 410は、例えば、操作部 3を介してユー ザが実行を指示した個々のタスク # 1、 # 2等に対応する実行開始時刻、許容範囲 等をタスク実行時間登録部 401に通知し、登録させる。ここで、タスク管理部 410は、 必ずしもタスクの実行開始時刻、許容範囲等を記憶している必要はなぐ個々のタス クと、当該タスクの実行時間に関する要求及び当該タスクの実行時間に関する要求 の許容範囲とを対応づける機能を有して 、れば良 、。
[0103] タイマーイベント管理部 420は、管理テーブル 421を備えている。管理テーブル 42 1は、タイマーイベントがタスクを起床するもの力否か等を記憶している。タイマーィべ ント管理部 420は、タイマーイベント登録部 405に指示し、タイマーイベント処理量検 知部 404からはタイマーイベントが必要とする処理量を、そして管理テーブル 421を 参照し、当該タイマーイベントがタスクを起床するものであった場合、タスク処理量検 知部 403からは当該タイマーイベントに対応するタスクが必要とする処理量をさらに 受け取らせる。
[0104] タスク実行時間登録部 401は、実施の形態 3のタスク実行時間登録部 301と同様の 機能を有する。タスク実行時間登録部 401は、タスク管理部 410の指示により、タスク の実行時間に関する要求と許容範囲についての情報を登録し、その情報をタスク実 行時間要求解釈部 402に通知する。
[0105] タスク実行時間要求解釈部 402は、タスク実行時間登録部 401から通知されたタス ク 40の実行時間に関する要求を満たすように、タスク制御を行うタイマーイベント 41 を決定する。例えば、特定時間にタスク # 1の実行開始が要求されている場合は、タ スク # 1を起床するタイマーイベント # 1をその時間に実行するようにする。この様なタ イマ一イベント 41によるタスク 40の制御は現在一般的に行なわれているので、本実 施の形態でのタスク制御のタイマーイベントもそれと同様にすれば良い。
[0106] 合わせて、タスク実行時間要求解釈部 402は、タスク実行時間登録部 401から通知 されたタスク 40の実行時間に関する要求の許容範囲から、タスク制御のタイマーィべ ント 41の実行時間の許容範囲を求める。例えば、タスク 40の実行開始時刻の許容範 囲として一定時間の遅れが許されるなら、その時間をタスク 40を起床するタイマーィ ベント 41の実行開始時刻の許容範囲とする。周期的タスク実行が要求されるならば、 要求されて!ヽる周期でタスク 40を起床するタイマーイベント 41を実行し、タスク実行 周期に許容範囲があればその許容範囲をタイマーイベントの実行周期の許容範囲と する。タスク実行時間要求解釈部 402は、その実行時間、許容範囲とともに、決定し たタスク制御のタイマーイベント 41の登録をタイマーイベント登録部 405に要求する。
[0107] タスク処理量検知部 403は、実施の形態 3のタスク処理量検知部 302と同様の機能 を有する。タスク処理量検知部 403は、タイマーイベント登録部 405からの要求があ つた場合、検知したタスクが必要とする処理量をタイマーイベント登録部 405に通知 する。
[0108] タイマーイベント処理量検知部 404は、タイマーイベント登録部 405からの要求があ つた場合、タイマーイベントが必要とする処理量を検知し、タイマーイベント登録部 40 5に通知する。必要な処理量の検知は、タスク処理量検知部 403と同様に、例えば、 各タイマーイベント内で予め見積もった必要処理量を通知したり、実際に実行して要 した処理量を実測してそれに基づき決定したりすることで可能である。
[0109] タイマーイベント登録部 405は、タスク実行時間要求解釈部 402より要求されたタイ マーイベントを、タイマーイベントの実行時間に対する要求と許容範囲と共に登録す る。また、タイマーイベント登録部 405は、タスクとは無関係なタイマーイベントを外部 力 の要求に基づき登録できる形態であっても良い。この場合も、タイマーイベント実 行時間に対する要求及び許容範囲を登録可能としても良 、。
[0110] さらにタイマーイベント登録部 405は、タイマーイベント管理部 420からの指示によ り、タイマーイベント処理量検知部 404からはタイマーイベントが必要とする処理量を 、そして当該タイマーイベントがタスクを起床するものであった場合、タスク処理量検 知部 403からは当該タイマーイベントに対応するタスクが必要とする処理量をさらに 受け取る。そして、タイマーイベント登録部 405は、タイマーイベント自身の必要処理 量と、タイマーイベントにより実行されるタスクの必要処理量とを合わせた処理量を算 出し、当該処理量を含めたタイマーイベントに関する情報をタイマーイベント決定部 4 06に通知する。
[0111] タイマーイベント決定部 406は、タイマーイベント登録部 405から通知されたタイマ 一イベントの実行時間に関する要求と許容範囲、さらにタイマーイベントによりタスク が実行される場合はタスクに必要となる処理量、及びタイマーイベント自身が必要な 処理量に基づき、タイマーイベントを実際に実行する時間を決定する。この時、タイマ 一イベント決定部 406は、タイマーイベントの実行時間に関する要求とその許容範囲 とを満たす範囲で、タイマーイベントを実行する時間を決定する。また、同時にタイマ 一イベントを実行することで必要となる処理量、つまり、タイマーイベント決定部 406 は、タイマーイベント自身と、タイマーイベントにより実行されるタスクとを合わせた処 理量が一定時間毎でなるべく均等になるようにタイマーイベントを実行する時間を決 定する。従って、タイマーイベントとそれによるタスク実行が一定時間毎に必要とする 処理量を合わせた全体が平滑化される。
[0112] CPU動作周波数設定部 407は、タイマーイベント決定部 406により平滑ィ匕された 処理量に基づいて、 CPUの動作周波数を決定する。そして、 CPU動作周波数設定 部 407は、 CPU1に印加される電圧を制御することで当該動作周波数を CPU1に設 定する。タイマーイベント実行部 408は、動作周波数設定部 407により設定された動 作周波数で動作する CPU1を用いて、タイマーイベント決定部 406が決定した実行 時間でタイマーイベント 41を実行する。タスク実行部 409は、タイマーイベント実行部 408が実行するタイマーイベントがタスク 40を起床するものであった場合、当該タスク 40を実行する。
[0113] 図 12は本実施の形態の CPUクロック制御装置の動作を説明するフローチャートで ある。ステップ S12— 1からステップ S12— 5は、タスク管理部 410、タスク実行時間登 録部 401、タスク実行時間要求解釈部 402、及びタスク処理量検知部 403の処理の 流れを示している。ステップ S 12— 6からステップ S 12— 7までは、タイマーイベント管 理部 420、タイマーイベント登録部 405、タイマーイベント決定部 406、 CPU動作周 波数設定部 407、及びタイマーイベント実行部 408の処理の流れを示して 、る。
[0114] ステップ S12— 1では、例えばユーザが操作部 4を操作することにより、情報処理装 置 54が実行するタスク 40が例えば前述の ROM等力 メモリ装置 2内にロードされ、 登録される。ステップ S12— 2では、タスク管理部 410は、登録されたタスク 40の実行 時間に関する要求と許容範囲とをタスク実行時間登録部 401に登録する。ステップ S 12— 3では、タスク実行時間要求解釈部 402は、タスク実行時間登録部 401に登録 されたタスク 40の実行時間に関する要求と許容範囲を満たすようにタスク 40を制御 するタイマーイベント 41と、タイマーイベント 41の実行時間に関する要求、及び許容 範囲を決定する。
[0115] 例えば、タスクが 1秒後の起床を要求し、許容できる起床時間の遅れを 0. 1秒とし ている場合、タスク実行時間要求解釈部 402は、タスクを起床するタイマーイベントを 1秒後に 0. 1秒の遅れの範囲内で実行するように決定する。
[0116] ステップ S12— 6は、タイマーイベントの登録要求であり、ステップ S12— 7からステ ップ S 12- 13はタイマーイベントの登録要求を契機に実行される。ステップ S 12- 7 では、登録要求されているタイマーイベントの処理量の検知が行なわれる。これは、 タイマーイベント登録部 405がタイマーイベント処理量検知部 404から当該タイマー イベントの処理量を受け取ることで実現される。ただし、ステップ S 12— 7は必ずしもこ の時点で行う必要は無ぐタイマーイベントの処理量の情報が必要になる前ならどの 時点でも良い。
[0117] ステップ 12— 8では、タイマーイベント管理部 420は、タイマーイベント登録部 405 への登録を要求して 、るタイマーイベントがタスクを起床するものかどうかを、管理テ 一ブル 421を参照することで判定する。その結果、登録を要求しているタイマーィべ ントがタスクを起床する場合は、ステップ S 12— 20において、タイマーイベント登録部 405はタスク処理量検知部 403からタスクの実行に必要な処理量を受け取る。ただし 、ステップ S12— 20は必ずしもこの時点で実行される必要はなぐタスクの必要処理 量の情報が必要となる前なら、任意の時点で実行されても良い。
[0118] 次にステップ 12— 9において、タイマーイベント登録部 405は、タイマーイベント自 身の必要処理量に起床されるタスクの必要処理量を加え、全体の必要処理量を算出 する。つまり、タスクの必要処理量もタイマーイベント実行に必要な処理量として計算 される。そして、ステップ S12— 10では、タイマーイベント登録部 405は、タイマーィ ベント管理部 420から送出されたタイマーイベントとその実行時間要求、及び許容範 囲を登録する。そして、タイマーイベント登録部 405は、算出された全体の必要処理 量を含めた情報を、タイマーイベント決定部 406に通知する。
[0119] ステップ 12— 11では、タイマーイベント決定部 406は、各タイマーイベントの時間 要求と許容範囲とを満たす範囲で、各タイマーイベントの必要処理量の単位時間当 りの合計が極力均等化するように実行時間を決定する。つまり、タイマーイベントの必 要処理量にはタスクの起床の結果、タスクが必要とする処理量が加わって!/、るので、 ステップ 12— 11ではタイマーイベントとそれによつて起床されるタスクの全ての処理 量が均等化される。
[0120] ステップ S 12— 12では、 CPU動作周波数設定部 407は、タイマーイベント決定部 4 06により平滑ィ匕された処理量に基づいて CPUの動作周波数を決定する。そして、 C PU動作周波数設定部 407は、 CPU1に印加される電圧を制御することで当該動作 周波数を CPU1に設定する。最後に、ステップ S12— 13では、タイマーイベント実行 部 408は、登録されたタイマーイベントを実行する。し力しながら、タイマーイベントの 実行は指定されて 、る時間に起こるので、実際にはステップ S 12- 13はステップ S 1 2— 12の直後に実行されるわけではなぐ適切な時間の経過後に実行される。
[0121] 本実施の形態の実装としては、例えば、タイマーイベントを実行すべき時間ごとのキ ユーで管理することが挙げられる。キューには、タイマーイベントを登録する際に、実 行時間、許容範囲、必要処理量 (タスク分を含む)を合わせて記録する (ステップ S 12 1力ら S12— 5、 S12— 6力ら S12— 10)。その上で、新し!/ヽタイマーイベント力 ^登 録される毎に、キューを走査し、各時間での必要処理量が均等化するように許容範 囲内でキューを組替え、各時間での CPU動作周波数を決定する (ステップ S 12— 11 、 S12— 12)。そして、タイマーイベントを組替えられたキューに従った順番で実行し (ステップ S12— 13)、合わせて決定した各時間の動作周波数で CPUを駆動する。
[0122] 図 13は本実施の形態において、 CPUクロック制御装置が行う処理の一例である。
図 13 (al)は、図 3 (al)と同様、実行が要求されているタイマーイベントと、当該タイ マーイベントが要求している実行時間とをそのまま時間軸上に配置した模式図である
。 (al) iま、図 12のステップ S12— 1力らステップ S12— 5、及びステップ S12— 6力ら ステップ S 12— 10までが実行された結果、タイマーイベント決定部 406に通知される 情報である。
[0123] この図において、四角のブロックはタイマーイベントを表している。つまり、(al)では 、 A、 B、 Cの 3つのタイマーイベントが要求されている。タイマーイベント名であるアル ファベットの後の値はタイマーイベントの必要処理量であり、その後ろの値は実行時 間要求と許容範囲である。タスクを起床するタイマーイベントの場合は、タイマーィべ ント自身の処理量の後ろに、符号「 +」と共にタスクの処理量を表記している。従って 、タイマーイベント Aの場合、タイマーイベント自身の必要処理量が 50、起床されるタ スクの処理量が 50、実行時間要求が 0、許容範囲が + 2となる。
[0124] また、図 13の例では、タイマーイベントとタスクは、実行時間要求の値の時間からそ の次の時間までの間隔での実行と処理の完了とを要求しているとする。つまり、 Aの 場合は、時刻 0から 1の間での実行と処理の完了とを要求している。実施の形態 1の 例(図 3、図 4)と同様に、これを「時刻 0での実行を要求している」という様に表記する 。許容範囲の値も、同様に実行時間の変動の範囲を表している。
[0125] 図 13 (bl)は、(al)の実行時間でタイマーイベント A、 B及び Cを実行し、各時間で それぞれの処理を必要最小限の動作周波数で、アイドル期間をつくらないように CP U動作周波数を設定した場合の動作周波数を表して 、る。
[0126] 図 13 (a2)は、ステップ S 12— 11が実行されて決定されたタイマーイベントの実際 の実行時間を表している。そして、図 13 (b2)は、(a2)のタイマーイベント実行時の C PU動作周波数を表している。図 13 (b2)は、(bl)と比較すると動作周波数の変動が 少なくなつており、この期間での CPUの消費電力が削減される。またこのとき、各タイ マーイベントはそれぞれの許容範囲を満たして実行されている。
[0127] 図 14は、本実施の形態において、 CPUクロック制御装置が行う処理の他の一例で ある。図 14 (al)は、図 13と同様に、実行が要求されているタイマーイベントと、当該 タイマーイベントが要求している実行時間とをそのまま時間軸上に配置した模式図で ある。タイマーイベント Aは周期 3での周期的実行、 Bは周期 2での周期的実行を要 求しており、図 14 (al)ではこれを実行時間要求が P3、 P2と表記している。タイマー イベント A、 Bはいずれも、処理量 50のタイマーイベント自身に加えて処理量 50のタ スクを起動する。また、タイマーイベント Aで起動されるタスクは実行される時刻が 1遅 れても許容できるので、タイマーイベント Aは + 1の許容範囲を持つ。それに対して、 タイマーイベント Bで起動されるタスクは実行される時刻が遅れることは許容できない ので、タイマーイベント Bの許容範囲は 0である。
[0128] 図 14 (a2)は、タイマーイベント決定部 406が行うタイマーイベントの実行時間を平 滑化した後の状態を表しており、この例では、タイマーイベント Aの実行時間が、もと もと実行を要求されて 、た時刻から変更されて 、る。
[0129] (bl)、(b2)は処理に必要な最小の動作周波数を用いる場合の動作周波数を表す 模式図である。 (b2)においては、動作周波数が完全に均等化されている訳ではない 力 (bl)に比べて動作周波数の変動が少なくなり、その分 CPUの消費電力は削減 される。またこのとき、タイマーイベントとタスクとは、それぞれの許容範囲を満たして 実行されている。
[0130] 以上の様に、本実施の形態では、タスクとタイマーイベントの実行時間に関する要 求と許容範囲とを満たした上で、 CPUの消費電力を削減することが可能である。なお 、他の実施の形態と同様に、全てのタイマーイベントにおいて許容範囲が登録されて いる必要は無い。処理量を平滑ィ匕されるのが全ての処理の一部であったとしても、そ の分の処理量は平滑ィ匕されるので、消費電力の削減効果を得ることが可能である。 また、本実施の形態ではタスク及びタイマーイベントの両方の必要処理量を平滑化し ているが、必ずしもその必要は無い。いずれかの必要な処理量が十分小さい場合は 、影響が小さいとして無視しても良い。例えばタスクに比べてタイマーイベントの必要 処理量が十分小さ!/、場合は、タイマーイベントの必要処理量を実質上は「0」として、 タスクの必要処理量のみを平滑ィ匕しても良い。
[0131] また、本実施の形態においても実施の形態 2と同様に、割り込み処理量検知部と、 割り込み処理部と、割り込み発生時にタイマーイベント実行時間を再決定する割り込 み時実行時間調整部とを設けることも可能である。この場合は、割り込み発生時に、 割り込み処理の分をカ卩えた上で処理量が均等化するようにタイマーイベントの実行時 間を再決定する。これにより、割り込みの発生にも対応した上で、 CPUの消費電力を 削減することが可能となる。
[0132] なお、本発明の実施の形態では OS400内に、タスク管理部 410、タイマーイベント 管理部 420、タスク実行時間登録部 401、タスク実行時間要求解釈部 402、タスク処 理量検知部 403、タイマーイベント処理量検知部 404、タイマーイベント登録部 405 、タイマーイベント決定部 406、 CPU動作周波数設定部 407、タイマーイベント実行 部 408、及びタスク実行部 409を設けた力 OS400の外部に設けることも可能である
[0133] [実施の形態の概要]
本発明に係る実施の形態の概要を以下に記載する。
[0134] (1)上記したように、本願発明に係る CPUクロック制御装置は、自身が有する CPU のクロックを制御する CPUクロック制御装置であって、前記 CPUが実行するプロダラ ムをロードし、当該プログラムと、当該プログラムの実行時間に関する要求及び当該 プログラムの実行時間に関する要求の許容範囲とを対応づけるプログラム管理部と、 前記プログラムの実行時間に関する要求と許容範囲とを前記プログラム管理部から 受け取り、前記プログラムと対応づけて登録するプログラム実行時間登録部と、前記 プログラムの実行に必要な処理量を検知するプログラム処理量検知部と、前記プログ ラム実行時間登録部に登録された実行時間に関する要求と許容範囲とを満たす範 囲内で、前記プログラム処理量検知部により検知された処理量が所定時間範囲にお V、て均等化するように、前記プログラムの実行開始時刻及び単位時間当りの処理量 を決定するプログラム実行時間決定部と、前記プログラム実行時間決定部により決定 された前記プログラムの実行開始時刻及び単位時間当りの処理量に基づき、前記 C PUの各時刻における動作周波数を決定し、当該動作周波数を前記 CPUに設定す る CPU動作周波数設定部と、前記 CPU動作周波数設定部により設定された動作周 波数で動作する前記 CPUに、前記プログラム実行時間決定部により決定された実行 開始時刻及び単位時間当りの処理量で前記プログラムを実行させるプログラム実行 部と、を備えることが好ましい。
[0135] この構成によれば、プログラム実行時間登録部は、プログラム管理部の制御のもと、 CPUが実行するプログラムの実行時間に関する要求と、プログラムの実行時間に関 する要求の許容範囲とを登録する。ここで、実行時間に関する要求とは、当該プログ ラムを 、つ実行させるかを指定する実行開始時刻や、 V、つまでに処理を終える必要 力 Sある力を指定する終了時刻、さらには周期的にプログラムを実行する場合の実行 周期等である。また、許容範囲とは、実行時間に関する要求に対してどの程度の変 動が許されるかを示す情報である。例えば、実行開始時刻や終了時刻をどれだけ早 めるまたは遅くすることが許容されるかを表す。
[0136] また、プログラム処理量検知部は、 CPUが実行するプログラムの実行に必要な処 理量を検知する。そして、プログラム実行時間登録部は実行時間に関する要求と許 容範囲とを、プログラム処理量検知部は必要な処理量を、それぞれプログラム実行時 間決定部に通知する。プログラム実行時間決定部は、それらの情報に基づいて、実 行時間に関する要求と許容範囲とを満たす範囲内で、所定時間範囲における処理 量が、完全ではなくともできるだけ均等化するように、実行開始時刻及び単位時間当 りの処理量を決定する。例えば、プログラム実行時間決定部は、同じ処理量が必要 な 2つのプログラムが同じ時刻に実行開始を要求しており、かつそれ以外のプロダラ ムの実行が要求されていない場合、一方のプログラムを他方のプログラムが終了した 後に行うように実行開始時刻の調整を行う。
[0137] 続いて、 CPU動作周波数設定部は、プログラム実行時間決定部により決定された プログラムの実行開始時刻及び単位時間当りの処理量に基づき、 CPUの各時刻に おける動作周波数を決定し、設定する。プログラム実行部は、当該 CPUを用いてプ ログラムの実行を行わせるので、結果として、プログラムの実行時間に関する要求と 許容範囲とを満たす範囲内で、当該プログラムの実行を行うことができる。さらに、 CP Uに要求される処理量を均等化して 、るので、それに応じて CPUの消費電力の削減 を行うことが可能である。
[0138] (2) CPUクロック制御装置は、 CPUクロック制御装置(1)であって、割り込み発生 時に実行される割り込み処理を行う割り込み処理部と、前記割り込み処理に必要な 処理量を検知する割り込み処理量検知部と、前記割り込み処理部が割り込みの発生 時刻において当該割り込み処理を行う場合、前記プログラム実行時間登録部に登録 された実行時間に関する要求と許容範囲とを満たす範囲内で、前記プログラムの実 行に必要な処理量と前記割り込み処理の処理量とが所定時間範囲において均等化 するように、前記プログラムの実行開始時刻及び単位時間当りの処理量を再決定す る割り込み時実行時間調整部と、を更に備え、前記 CPU動作周波数設定部は、前 記プログラム実行時間決定部により均等化された処理量、または前記割り込み時実 行時間調整部により均等化された処理量の 、ずれか新 、処理量に基づき前記 CP uの動作周波数を決定し、前記プログラム実行部は、前記プログラム実行時間決定 部により決定された実行開始時刻及び単位時間当りの処理量、または前記割り込み 時実行時間調整部により再決定された実行開始時刻及び単位時間当りの処理量の
Vヽずれか新 U、実行開始時刻及び単位時間当りの処理量で、前記プログラムを実行 させることが好ましい。
[0139] この構成によれば、割り込み処理部は、割り込みが発生するとその発生時刻におい て当該割り込み処理を行う。そして、その割り込み処理に必要な処理量は、割り込み 処理量検知部により検知されている。このままでは、当該割り込みが発生した時刻に おける処理量だけが増加してしま!/、、 CPUの消費電力もその分増加することが懸念 される。そこで、割り込みが発生した場合は、割り込み時実行時間調整部が、割り込 み発生時刻における割り込み処理量を含めて、プログラムの実行開始時刻及び単位 時間当りの処理量を再決定する。このとき、割り込み時実行時間調整部は、プロダラ ム実行時間決定部と同様に、実行時間に関する要求と許容範囲とを満たす範囲内 で再決定する。これにより、割り込みが発生した場合にも、 CPUに要求される処理量 を均等化し、それに応じて CPUの消費電力の削減を行うことが可能となる。
[0140] (3)上記したように、本願発明に係る CPUクロック制御装置は、自身が有する CPU のクロックを制御する CPUクロック制御装置であって、前記 CPUが実行するタスクを ロードし、当該タスクと、当該タスクの実行時間に関する要求及び当該タスクの実行 時間に関する要求の許容範囲とを対応づけるタスク管理部と、前記タスクの実行時 間に関する要求と許容範囲とを前記タスク管理部力 受け取り、前記タスクと対応づ けて登録するタスク実行時間登録部と、前記タスクの実行に必要な処理量を検知す るタスク処理量検知部と、前記タスク実行時間登録部に登録された実行時間に関す る要求と許容範囲とを満たす範囲内で、前記タスク処理量検知部により検知された処 理量が所定時間範囲にぉ 、て均等化するように、前記タスクの実行開始時刻及び単 位時間当りの処理量をスケジューリングするタスクスケジューリング部と、前記タスクス ケジユーリング部によりスケジューリングされた前記タスクの実行開始時刻及び単位 時間当りの処理量に基づき、前記 CPUの動作周波数を決定し、当該動作周波数を 前記 CPUに設定する CPU動作周波数設定部と、前記 CPU動作周波数設定部によ り設定された動作周波数で動作する前記 CPUに、前記タスクスケジューリング部によ るスケジューリングに基づいて、前記タスクを実行させるタスク実行部と、を備えること が好ましい。
[0141] この構成によれば、タスク実行時間登録部は、タスク管理部の制御のもと、 CPUが 実行するタスクの実行時間に関する要求と、タスクの実行時間に関する要求の許容 範囲とを登録する。ここで、実行時間に関する要求とは、当該タスクをいつ実行させる かを指定する実行開始時刻や、 Vヽつまでに処理を終える必要があるかを指定する終 了時刻、さらには周期的にタスクを実行する場合の実行周期等である。また、許容範 囲とは、実行時間に関する要求に対してどの程度の変動が許されるかを示す情報で ある。例えば、実行開始時刻や終了時刻をどれだけ早めるまたは遅くすることが許容 されるかを表す。
[0142] また、タスク処理量検知部は、 CPUが実行するタスクの実行に必要な処理量を検 知する。そして、タスク実行時間登録部は実行時間に関する要求と許容範囲とを、タ スク処理量検知部は必要な処理量を、それぞれタスクスケジューリング部に通知する 。タスクスケジューリング部は、それらの情報に基づいて、実行時間に関する要求と許 容範囲とを満たす範囲内で、所定時間範囲における処理量が、完全ではなくともで きるだけ均等化するように、実行開始時刻及び単位時間当りの処理量を決定する。 例えば、タスクスケジューリング部は、同じ処理量が必要な 2つのタスクが同じ時刻に 実行開始を要求しており、かつそれ以外のタスクの実行が要求されていない場合、 一方のタスクを他方のタスクが終了した後に行うように実行開始時刻の調整を行う。
[0143] 続いて、 CPU動作周波数設定部は、タスクスケジューリング部により決定されたタス クの実行開始時刻及び単位時間当りの処理量に基づき、 CPUの各時刻における動 作周波数を決定し、設定する。タスク実行部は、当該 CPUを用いてタスクの実行を行 わせるので、結果として、タスクの実行時間に関する要求と許容範囲とを満たす範囲 内で、当該タスクの実行を行うことができる。さらに、 CPUに要求される処理量を均等 化しているので、それに応じて CPUの消費電力の削減を行うことが可能である。
(4)上記したように、本願発明に係る CPUクロック制御装置は、自身が有する CPU のクロックを制御する CPUクロック制御装置であって、前記 CPUが実行するタスクを ロードし、当該タスクと、当該タスクの実行時間に関する要求及び当該タスクの実行 時間に関する要求の許容範囲とを対応づけるタスク管理部と、前記タスクの実行時 間に関する要求と許容範囲とを前記タスク管理部力 受け取り、前記タスクと対応づ けて登録するタスク実行時間登録部と、前記タスクの実行に必要な処理量を検知す るタスク処理量検知部と、前記タスク実行時間登録部に登録された実行時間に関す る要求と許容範囲とを満たすように、前記タスクを制御するタイマーイベントを決定す るタスク実行時間要求解釈部と、前記タスク実行時間要求解釈部が決定したタイマ 一イベントを含むタイマーイベントの実行時間に関する要求と、前記タイマーイベント の実行時間の許容範囲とを登録するタイマーイベント登録部と、前記タイマーィベン トの実行に必要な処理量を検知するタイマーイベント処理量検知部と、前記タイマー イベント登録部に登録されたタイマーイベントの実行時間に関する要求と許容範囲と を満たす範囲内で、タイマーイベントにより実行に移されるタスクに関し前記タスク処 理量検知部が検知した必要処理量と、前記タイマーイベント処理量検知部が検知し たタイマーイベントの処理量との合計が、所定時間範囲において均等化するように、 前記タイマーイベントの実行開始時刻及び単位時間当りの処理量を決定するタイマ 一イベント決定部と、前記タイマーイベント決定部により決定された前記タイマーィべ ントの実行開始時刻及び単位時間当りの処理量に基づき、前記 CPUの動作周波数 を決定し、当該動作周波数を前記 CPUに設定する CPU動作周波数設定部と、前記 CPU動作周波数設定部により設定された動作周波数で動作する前記 CPUに、前記 タイマーイベント決定部により決定された実行開始時刻及び単位時間当りの処理量 に基づいて、前記タイマーイベントを実行させるタイマーイベント実行部と、を備える ことが好ましい。 [0145] この構成によれば、タスク実行時間登録部は、タスク管理部の制御のもと、 CPUが 実行するタスクの実行時間に関する要求と、タスクの実行時間に関する要求の許容 範囲とを登録する。ここで、実行時間に関する要求とは、当該タスクをいつ実行させる かを指定する実行開始時刻や、 Vヽつまでに処理を終える必要があるかを指定する終 了時刻、さらには周期的にタスクを実行する場合の実行周期等である。また、許容範 囲とは、実行時間に関する要求に対してどの程度の変動が許されるかを示す情報で ある。例えば、実行開始時刻や終了時刻をどれだけ早めるまたは遅くすることが許容 されるかを表す。
[0146] タスク実行時間要求解釈部は、タスク実行時間登録部に登録された実行時間に関 する要求と許容範囲とを満たすように、タスクを制御するタイマーイベントを決定する 。また、タスク処理量検知部は、 CPUが実行するタスクの実行に必要な処理量を検 知し、タイマーイベント処理量検知部は、 CPUが実行するタイマーイベントの実行に 必要な処理量を検知する。そして、タイマーイベント登録部は、タイマーイベント管理 部の指示により、タイマーイベント処理量検知部力 タイマーイベントの実行に必要な 処理量を受け取る。さらに、タイマーイベント登録部は、タイマーイベント管理部の指 示により、当該タイマーイベントがタスクを起床する場合には、タスク処理量検知部か らタスクの実行に必要な処理量を受け取る。
[0147] タイマーイベント決定部は、タイマーイベント(及びタスク)の処理量、及びタイマー イベントの実行時間に関する要求と許容範囲等をタイマーイベント登録部力 受け取 り、タイマーイベントの実行開始時刻及び単位時間当りの処理量を決定する。つまり 、タイマーイベント決定部は、タイマーイベントがタスクを起床しない場合にはタイマー イベントのみの、タイマーイベントがタスクを起床する場合にはタイマーイベントとタス クの処理量を加えた処理量を均等化する。
[0148] 続いて、 CPU動作周波数設定部は、タイマーイベント決定部により決定されたタイ マーイベントの実行開始時刻及び単位時間当りの処理量に基づき、 CPUの各時刻 における動作周波数を決定し、設定する。タイマーイベント実行部は、当該 CPUを用 いてタイマーイベントの実行を行わせるので、結果として、タイマーイベントの実行時 間に関する要求と許容範囲とを満たす範囲内で、当該タイマーイベントの実行を行う ことができる。さらに、 CPUに要求される処理量を均等化しているので、それに応じて CPUの消費電力の削減を行うことが可能である。
[0149] (5)上記したように、本願発明に係る CPUクロック制御方法は、 CPUが実行するプ ログラムの実行時間に関する要求と、前記プログラムの実行時間に関する要求の許 容範囲とを、前記プログラムに対応づけて登録するプログラム実行時間登録工程と、 前記プログラムの実行に必要な処理量を検知するプログラム処理量検知工程と、前 記プログラム実行時間登録工程により登録された実行時間に関する要求と許容範囲 とを満たす範囲内で、前記プログラム処理量検知工程により検知された処理量が所 定時間範囲において均等化するように、前記プログラムの実行開始時刻及び単位時 間当りの処理量を決定するプログラム実行時間決定工程と、前記プログラム実行時 間決定工程により決定された前記プログラムの実行開始時刻及び単位時間当りの処 理量に基づき、前記 CPUの各時刻における動作周波数を決定し、当該動作周波数 を前記 CPUに設定する CPU動作周波数設定工程と、前記 CPU動作周波数設定ェ 程により設定された動作周波数で動作する前記 CPUに、前記プログラム実行時間決 定工程により決定された実行開始時刻及び単位時間当りの処理量で前記プログラム を実行させるプログラム実行工程と、を備えることが好ま 、。
[0150] この構成は、装置(1)について述べたと同様の理由により、 CPUに要求される処理 量を均等化しているので、それに応じて CPUの消費電力の削減を行うことが可能で ある。
[0151] (6)上記したように、本願発明に係る CPUクロック制御プログラムは、自身が有する CPUのクロックを制御する CPUクロック制御装置としてコンピュータを機能させる CP Uクロック制御プログラムであって、前記 CPUが実行するプログラムの実行時間に関 する要求と、前記プログラムの実行時間に関する要求の許容範囲とを、前記プロダラ ムに対応づけて登録するプログラム実行時間登録手段と、前記プログラムの実行に 必要な処理量を検知するプログラム処理量検知手段と、前記プログラム実行時間登 録手段により登録された実行時間に関する要求と許容範囲とを満たす範囲内で、前 記プログラム処理量検知手段により検知された処理量が所定時間範囲において均 等化するように、前記プログラムの実行開始時刻及び単位時間当りの処理量を決定 するプログラム実行時間決定手段と、前記プログラム実行時間決定手段により決定さ れた前記プログラムの実行開始時刻及び単位時間当りの処理量に基づき、前記 CP Uの各時刻における動作周波数を決定し、当該動作周波数を前記 CPUに設定する CPU動作周波数設定手段と、前記 CPU動作周波数設定手段により設定された動 作周波数で動作する前記 CPUに、前記プログラム実行時間決定工程により決定さ れた実行開始時刻及び単位時間当りの処理量で前記プログラムを実行させるプログ ラム実行手段として前記コンピュータを機能させる。
[0152] この構成は、装置(1)について述べたと同様の理由により、 CPUに要求される処理 量を均等化しているので、それに応じて CPUの消費電力の削減を行うことが可能で ある。
[0153] (7)上記したように、本願発明に係る記録媒体は、自身が有する CPUのクロックを 制御する CPUクロック制御装置としてコンピュータを機能させる CPUクロック制御プ ログラムを記録したコンピュータ読み取り可能な記録媒体であって、前記 CPUが実行 するプログラムの実行時間に関する要求と、前記プログラムの実行時間に関する要 求の許容範囲とを、前記プログラムに対応づけて登録するプログラム実行時間登録 手段と、前記プログラムの実行に必要な処理量を検知するプログラム処理量検知手 段と、前記プログラム実行時間登録手段により登録された実行時間に関する要求と 許容範囲とを満たす範囲内で、前記プログラム処理量検知手段により検知された処 理量が所定時間範囲において均等化するように、前記プログラムの実行開始時刻及 び単位時間当りの処理量を決定するプログラム実行時間決定手段と、前記プロダラ ム実行時間決定手段により決定された前記プログラムの実行開始時刻及び単位時 間当りの処理量に基づき、前記 CPUの各時刻における動作周波数を決定し、当該 動作周波数を前記 CPUに設定する CPU動作周波数設定手段と、前記 CPU動作周 波数設定手段により設定された動作周波数で動作する前記 CPUに、前記プログラム 実行時間決定工程により決定された実行開始時刻及び単位時間当りの処理量で前 記プログラムを実行させるプログラム実行手段として前記コンピュータを機能させる C PUクロック制御プログラムを記録したものである。
[0154] この構成は、装置(1)について述べたと同様の理由により、 CPUに要求される処理 量を均等化しているので、それに応じて CPUの消費電力の削減を行うことが可能で ある。
[0155] (8)上記したように、本願発明に係る伝送媒体は、自身が有する CPUのクロックを 制御する CPUクロック制御装置としてコンピュータを機能させる CPUクロック制御プ ログラムを保持する伝送媒体であって、前記 CPUが実行するプログラムの実行時間 に関する要求と、前記プログラムの実行時間に関する要求の許容範囲とを、前記プロ グラムに対応づけて登録するプログラム実行時間登録手段と、前記プログラムの実行 に必要な処理量を検知するプログラム処理量検知手段と、前記プログラム実行時間 登録手段により登録された実行時間に関する要求と許容範囲とを満たす範囲内で、 前記プログラム処理量検知手段により検知された処理量が所定時間範囲において 均等化するように、前記プログラムの実行開始時刻及び単位時間当りの処理量を決 定するプログラム実行時間決定手段と、前記プログラム実行時間決定手段により決 定された前記プログラムの実行開始時刻及び単位時間当りの処理量に基づき、前記 CPUの各時刻における動作周波数を決定し、当該動作周波数を前記 CPUに設定 する CPU動作周波数設定手段と、前記 CPU動作周波数設定手段により設定された 動作周波数で動作する前記 CPUに、前記プログラム実行時間決定工程により決定 された実行開始時刻及び単位時間当りの処理量で前記プログラムを実行させるプロ グラム実行手段として前記コンピュータを機能させる CPUクロック制御プログラムを保 持するものである。
[0156] この構成は、装置(1)について述べたと同様の理由により、 CPUに要求される処理 量を均等化しているので、それに応じて CPUの消費電力の削減を行うことが可能で ある。
[0157] 本発明は詳細に説明されたが、上記した説明は、全ての局面において、例示であ つて、本発明がそれに限定されるものではない。例示されていない無数の変形例力 この発明の範囲力 外れることなく想定され得るものと解される。 産業上の利用可能性
[0158] 本発明に力かる CPUクロック制御装置及び方法は、情報処理装置を用いるもので あれば幅広い分野において有効である。例えば、大型計算機やパーソナルコンビュ ータのような形態のみならず、各種の家電機器、携帯電話のような通信機器、産業機 器、乗用機器などでも利用可能である。

Claims

請求の範囲
[1] 自身が有する CPUのクロックを制御する CPUクロック制御装置であって、
前記 CPUが実行するプログラムをロードし、当該プログラムと、当該プログラムの実 行時間に関する要求及び当該プログラムの実行時間に関する要求の許容範囲とを 対応づけるプログラム管理部と、
前記プログラムの実行時間に関する要求と許容範囲とを前記プログラム管理部から 受け取り、前記プログラムと対応づけて登録するプログラム実行時間登録部と、 前記プログラムの実行に必要な処理量を検知するプログラム処理量検知部と、 前記プログラム実行時間登録部に登録された実行時間に関する要求と許容範囲と を満たす範囲内で、前記プログラム処理量検知部により検知された処理量が所定時 間範囲において均等化するように、前記プログラムの実行開始時刻及び単位時間当 りの処理量を決定するプログラム実行時間決定部と、
前記プログラム実行時間決定部により決定された前記プログラムの実行開始時刻 及び単位時間当りの処理量に基づき、前記 CPUの各時刻における動作周波数を決 定し、当該動作周波数を前記 CPUに設定する CPU動作周波数設定部と、
前記 CPU動作周波数設定部により設定された動作周波数で動作する前記 CPUに
、前記プログラム実行時間決定部により決定された実行開始時刻及び単位時間当り の処理量で前記プログラムを実行させるプログラム実行部と、
を備えることを特徴とする CPUクロック制御装置。
[2] 割り込み発生時に実行される割り込み処理を行う割り込み処理部と、
前記割り込み処理に必要な処理量を検知する割り込み処理量検知部と、 前記割り込み処理部が割り込みの発生時刻において当該割り込み処理を行う場合 、前記プログラム実行時間登録部に登録された実行時間に関する要求と許容範囲と を満たす範囲内で、前記プログラムの実行に必要な処理量と前記割り込み処理の処 理量とが所定時間範囲において均等化するように、前記プログラムの実行開始時刻 及び単位時間当りの処理量を再決定する割り込み時実行時間調整部と、 を更に備え、
前記 CPU動作周波数設定部は、前記プログラム実行時間決定部により均等化され た処理量、または前記割り込み時実行時間調整部により均等化された処理量の!ヽず れカ新しい処理量に基づき前記 CPUの動作周波数を決定し、
前記プログラム実行部は、前記プログラム実行時間決定部により決定された実行開 始時刻及び単位時間当りの処理量、または前記割り込み時実行時間調整部により 再決定された実行開始時刻及び単位時間当りの処理量の!/、ずれか新 ヽ実行開始 時刻及び単位時間当りの処理量で、前記プログラムを実行させることを特徴とする請 求項 1記載の CPUクロック制御装置。
[3] 自身が有する CPUのクロックを制御する CPUクロック制御装置であって、
前記 CPUが実行するタスクをロードし、当該タスクと、当該タスクの実行時間に関す る要求及び当該タスクの実行時間に関する要求の許容範囲とを対応づけるタスク管 理部と、
前記タスクの実行時間に関する要求と許容範囲とを前記タスク管理部から受け取り 、前記タスクと対応づけて登録するタスク実行時間登録部と、
前記タスクの実行に必要な処理量を検知するタスク処理量検知部と、
前記タスク実行時間登録部に登録された実行時間に関する要求と許容範囲とを満 たす範囲内で、前記タスク処理量検知部により検知された処理量が所定時間範囲に ぉ ヽて均等化するように、前記タスクの実行開始時刻及び単位時間当りの処理量を スケジューリングするタスクスケジューリング部と、
前記タスクスケジューリング部によりスケジューリングされた前記タスクの実行開始時 刻及び単位時間当りの処理量に基づき、前記 CPUの動作周波数を決定し、当該動 作周波数を前記 CPUに設定する CPU動作周波数設定部と、
前記 CPU動作周波数設定部により設定された動作周波数で動作する前記 CPUに
、前記タスクスケジューリング部によるスケジューリングに基づいて、前記タスクを実行 させるタスク実行部と、
を備えることを特徴とする CPUクロック制御装置。
[4] 自身が有する CPUのクロックを制御する CPUクロック制御装置であって、
前記 CPUが実行するタスクをロードし、当該タスクと、当該タスクの実行時間に関す る要求及び当該タスクの実行時間に関する要求の許容範囲とを対応づけるタスク管 理部と、
前記タスクの実行時間に関する要求と許容範囲とを前記タスク管理部から受け取り
、前記タスクと対応づけて登録するタスク実行時間登録部と、
前記タスクの実行に必要な処理量を検知するタスク処理量検知部と、
前記タスク実行時間登録部に登録された実行時間に関する要求と許容範囲とを満 たすように、前記タスクを制御するタイマーイベントを決定するタスク実行時間要求解 釈部と、
前記タスク実行時間要求解釈部が決定したタイマーイベントを含むタイマーイベント の実行時間に関する要求と、前記タイマーイベントの実行時間の許容範囲とを登録 するタイマーイベント登録部と、
前記タイマーイベントの実行に必要な処理量を検知するタイマーイベント処理量検 知部と、
前記タイマーイベント登録部に登録されたタイマーイベントの実行時間に関する要 求と許容範囲とを満たす範囲内で、タイマーイベントにより実行に移されるタスクに関 し前記タスク処理量検知部が検知した必要処理量と、前記タイマーイベント処理量検 知部が検知したタイマーイベントの処理量との合計力 所定時間範囲において均等 化するように、前記タイマーイベントの実行開始時刻及び単位時間当りの処理量を決 定するタイマーイベント決定部と、
前記タイマーイベント決定部により決定された前記タイマーイベントの実行開始時 刻及び単位時間当りの処理量に基づき、前記 CPUの動作周波数を決定し、当該動 作周波数を前記 CPUに設定する CPU動作周波数設定部と、
前記 CPU動作周波数設定部により設定された動作周波数で動作する前記 CPUに
、前記タイマーイベント決定部により決定された実行開始時刻及び単位時間当りの
Figure imgf000046_0001
、て、前記タイマーイベントを実行させるタイマーイベント実行部と、 を備えることを特徴とする CPUクロック制御装置。
CPUが実行するプログラムの実行時間に関する要求と、前記プログラムの実行時 間に関する要求の許容範囲とを、前記プログラムに対応づけて登録するプログラム実 行時間登録工程と、 前記プログラムの実行に必要な処理量を検知するプログラム処理量検知工程と、 前記プログラム実行時間登録工程により登録された実行時間に関する要求と許容 範囲とを満たす範囲内で、前記プログラム処理量検知工程により検知された処理量 が所定時間範囲にぉ 、て均等化するように、前記プログラムの実行開始時刻及び単 位時間当りの処理量を決定するプログラム実行時間決定工程と、
前記プログラム実行時間決定工程により決定された前記プログラムの実行開始時 刻及び単位時間当りの処理量に基づき、前記 CPUの各時刻における動作周波数を 決定し、当該動作周波数を前記 CPUに設定する CPU動作周波数設定工程と、 前記 CPU動作周波数設定工程により設定された動作周波数で動作する前記 CP Uに、前記プログラム実行時間決定工程により決定された実行開始時刻及び単位時 間当りの処理量で前記プログラムを実行させるプログラム実行工程と、
を備えることを特徴とする CPUクロック制御方法。
[6] 自身が有する CPUのクロックを制御する CPUクロック制御装置としてコンピュータを 機能させる CPUクロック制御プログラムであって、
前記 CPUが実行するプログラムの実行時間に関する要求と、前記プログラムの実 行時間に関する要求の許容範囲とを、前記プログラムに対応づけて登録するプログ ラム実行時間登録手段と、
前記プログラムの実行に必要な処理量を検知するプログラム処理量検知手段と、 前記プログラム実行時間登録手段により登録された実行時間に関する要求と許容 範囲とを満たす範囲内で、前記プログラム処理量検知手段により検知された処理量 が所定時間範囲にぉ 、て均等化するように、前記プログラムの実行開始時刻及び単 位時間当りの処理量を決定するプログラム実行時間決定手段と、
前記プログラム実行時間決定手段により決定された前記プログラムの実行開始時 刻及び単位時間当りの処理量に基づき、前記 CPUの各時刻における動作周波数を 決定し、当該動作周波数を前記 CPUに設定する CPU動作周波数設定手段と、 前記 CPU動作周波数設定手段により設定された動作周波数で動作する前記 CP Uに、前記プログラム実行時間決定工程により決定された実行開始時刻及び単位時 間当りの処理量で前記プログラムを実行させるプログラム実行手段として前記コンビ ユータを機能させる CPUクロック制御プログラム。
[7] 自身が有する CPUのクロックを制御する CPUクロック制御装置としてコンピュータを 機能させる CPUクロック制御プログラムを記録したコンピュータ読み取り可能な記録 媒体であって、
前記 CPUが実行するプログラムの実行時間に関する要求と、前記プログラムの実 行時間に関する要求の許容範囲とを、前記プログラムに対応づけて登録するプログ ラム実行時間登録手段と、
前記プログラムの実行に必要な処理量を検知するプログラム処理量検知手段と、 前記プログラム実行時間登録手段により登録された実行時間に関する要求と許容 範囲とを満たす範囲内で、前記プログラム処理量検知手段により検知された処理量 が所定時間範囲にぉ 、て均等化するように、前記プログラムの実行開始時刻及び単 位時間当りの処理量を決定するプログラム実行時間決定手段と、
前記プログラム実行時間決定手段により決定された前記プログラムの実行開始時 刻及び単位時間当りの処理量に基づき、前記 CPUの各時刻における動作周波数を 決定し、当該動作周波数を前記 CPUに設定する CPU動作周波数設定手段と、 前記 CPU動作周波数設定手段により設定された動作周波数で動作する前記 CP Uに、前記プログラム実行時間決定工程により決定された実行開始時刻及び単位時 間当りの処理量で前記プログラムを実行させるプログラム実行手段として前記コンビ ユータを機能させる CPUクロック制御プログラムを記録したコンピュータ読み取り可能 な記録媒体。
[8] 自身が有する CPUのクロックを制御する CPUクロック制御装置としてコンピュータを 機能させる CPUクロック制御プログラムを保持する伝送媒体であって、
前記 CPUが実行するプログラムの実行時間に関する要求と、前記プログラムの実 行時間に関する要求の許容範囲とを、前記プログラムに対応づけて登録するプログ ラム実行時間登録手段と、
前記プログラムの実行に必要な処理量を検知するプログラム処理量検知手段と、 前記プログラム実行時間登録手段により登録された実行時間に関する要求と許容 範囲とを満たす範囲内で、前記プログラム処理量検知手段により検知された処理量 が所定時間範囲にぉ 、て均等化するように、前記プログラムの実行開始時刻及び単 位時間当りの処理量を決定するプログラム実行時間決定手段と、
前記プログラム実行時間決定手段により決定された前記プログラムの実行開始時 刻及び単位時間当りの処理量に基づき、前記 CPUの各時刻における動作周波数を 決定し、当該動作周波数を前記 CPUに設定する CPU動作周波数設定手段と、 前記 CPU動作周波数設定手段により設定された動作周波数で動作する前記 CP Uに、前記プログラム実行時間決定工程により決定された実行開始時刻及び単位時 間当りの処理量で前記プログラムを実行させるプログラム実行手段として前記コンビ ユータを機能させる CPUクロック制御プログラムを保持する伝送媒体。
PCT/JP2005/007540 2004-04-28 2005-04-20 Cpuクロック制御装置、cpuクロック制御方法、cpuクロック制御プログラム、記録媒体、及び伝送媒体 WO2005106623A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006512749A JPWO2005106623A1 (ja) 2004-04-28 2005-04-20 Cpuクロック制御装置、cpuクロック制御方法、cpuクロック制御プログラム、記録媒体、及び伝送媒体
US10/583,657 US20080307248A1 (en) 2004-04-28 2005-04-20 Cpu Clock Control Device, Cpu Clock Control Method, Cpu Clock Control Program, Recording Medium, and Transmission Medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004133102 2004-04-28
JP2004-133102 2004-04-28

Publications (1)

Publication Number Publication Date
WO2005106623A1 true WO2005106623A1 (ja) 2005-11-10

Family

ID=35241836

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/007540 WO2005106623A1 (ja) 2004-04-28 2005-04-20 Cpuクロック制御装置、cpuクロック制御方法、cpuクロック制御プログラム、記録媒体、及び伝送媒体

Country Status (3)

Country Link
US (1) US20080307248A1 (ja)
JP (1) JPWO2005106623A1 (ja)
WO (1) WO2005106623A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008015668A (ja) * 2006-07-04 2008-01-24 Toyota Infotechnology Center Co Ltd タスク管理装置
WO2009148472A2 (en) * 2008-06-04 2009-12-10 Sony Ericsson Mobile Communications Ab Power saving scheduler for timed events
CN102135911A (zh) * 2011-03-23 2011-07-27 中国工商银行股份有限公司 一种服务器进程启停方法、装置及系统
JP2013046115A (ja) * 2011-08-22 2013-03-04 Nippon Telegr & Teleph Corp <Ntt> マルチキャスト切替制御装置及びシステム及び方法
JP2013046114A (ja) * 2011-08-22 2013-03-04 Nippon Telegr & Teleph Corp <Ntt> マルチキャスト離脱制御装置及びシステム及び方法
JP5505517B2 (ja) * 2010-12-13 2014-05-28 富士通株式会社 情報処理装置、電力制御方法、および電力制御プログラム
JP2014219788A (ja) * 2013-05-07 2014-11-20 富士通株式会社 情報処理装置、省電力化制御方法および省電力化制御プログラム
US11762691B2 (en) 2019-09-11 2023-09-19 Fujitsu Limited Information processing system of task scheduling, method of task scheduling, and non-transitory computer-readable storage medium for storing program of task scheduling

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101163812B1 (ko) * 2006-02-02 2012-07-09 엘지전자 주식회사 휴대용컴퓨터의 절전 제어 장치 및 방법
US8316158B1 (en) * 2007-03-12 2012-11-20 Cypress Semiconductor Corporation Configuration of programmable device using a DMA controller
US20090140844A1 (en) * 2007-12-03 2009-06-04 Nokia Corporation Method and Apparatus for Timer Event Management
US9268389B2 (en) * 2010-03-23 2016-02-23 Sony Corporation Reducing power consumption on a processor system by masking actual processor load with insertion of dummy instructions
KR101744356B1 (ko) * 2011-03-17 2017-06-08 삼성전자주식회사 휴대단말기의 전류소모 감소장치 및 방법
CN103513748A (zh) * 2012-06-29 2014-01-15 联想(北京)有限公司 一种信息处理方法、信息处理器及电子设备
US9218045B2 (en) * 2012-06-30 2015-12-22 Intel Corporation Operating processor element based on maximum sustainable dynamic capacitance associated with the processor
US9164931B2 (en) 2012-09-29 2015-10-20 Intel Corporation Clamping of dynamic capacitance for graphics
US9250910B2 (en) 2013-09-27 2016-02-02 Intel Corporation Current change mitigation policy for limiting voltage droop in graphics logic
US9514715B2 (en) 2013-12-23 2016-12-06 Intel Corporation Graphics voltage reduction for load line optimization
DE102015226249A1 (de) * 2015-12-21 2017-06-22 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Bereitstellen einer Mehrzahl von reproduzierbaren Werten
CN105740020A (zh) * 2016-01-29 2016-07-06 宇龙计算机通信科技(深圳)有限公司 应用程序的启动方法、启动装置和终端
JP6751231B2 (ja) * 2016-07-07 2020-09-02 富士通株式会社 ジョブスケジューラ試験プログラム、ジョブスケジューラ試験方法及び並列処理装置
US10565079B2 (en) 2017-09-28 2020-02-18 Intel Corporation Determination of idle power state
US11567527B2 (en) * 2019-07-23 2023-01-31 Texas Instruments Incorporated Preemptive wakeup circuit for wakeup from low power modes

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003140787A (ja) * 2001-11-06 2003-05-16 Hitachi Ltd 電力制御装置及び方法並びに電力制御プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1157641C (zh) * 1997-09-03 2004-07-14 松下电器产业株式会社 处理器
JP2002099432A (ja) * 2000-09-22 2002-04-05 Sony Corp 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003140787A (ja) * 2001-11-06 2003-05-16 Hitachi Ltd 電力制御装置及び方法並びに電力制御プログラム

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008015668A (ja) * 2006-07-04 2008-01-24 Toyota Infotechnology Center Co Ltd タスク管理装置
WO2009148472A2 (en) * 2008-06-04 2009-12-10 Sony Ericsson Mobile Communications Ab Power saving scheduler for timed events
WO2009148472A3 (en) * 2008-06-04 2010-06-24 Sony Ericsson Mobile Communications Ab Power saving scheduler for timed events
US8020025B2 (en) 2008-06-04 2011-09-13 Sony Ericsson Mobile Communications Ab Power saving scheduler for timed events
JP5505517B2 (ja) * 2010-12-13 2014-05-28 富士通株式会社 情報処理装置、電力制御方法、および電力制御プログラム
CN102135911A (zh) * 2011-03-23 2011-07-27 中国工商银行股份有限公司 一种服务器进程启停方法、装置及系统
JP2013046115A (ja) * 2011-08-22 2013-03-04 Nippon Telegr & Teleph Corp <Ntt> マルチキャスト切替制御装置及びシステム及び方法
JP2013046114A (ja) * 2011-08-22 2013-03-04 Nippon Telegr & Teleph Corp <Ntt> マルチキャスト離脱制御装置及びシステム及び方法
JP2014219788A (ja) * 2013-05-07 2014-11-20 富士通株式会社 情報処理装置、省電力化制御方法および省電力化制御プログラム
US11762691B2 (en) 2019-09-11 2023-09-19 Fujitsu Limited Information processing system of task scheduling, method of task scheduling, and non-transitory computer-readable storage medium for storing program of task scheduling

Also Published As

Publication number Publication date
US20080307248A1 (en) 2008-12-11
JPWO2005106623A1 (ja) 2008-03-21

Similar Documents

Publication Publication Date Title
WO2005106623A1 (ja) Cpuクロック制御装置、cpuクロック制御方法、cpuクロック制御プログラム、記録媒体、及び伝送媒体
US10649935B2 (en) Deferred inter-processor interrupts
KR101029414B1 (ko) 프로세서 상태 천이를 검출하기 위해 제공되는 장치 및방법과 머신 액세스 가능 매체와 컴퓨팅 시스템
JP4490298B2 (ja) プロセッサ電力制御装置及びプロセッサ電力制御方法
EP2227727B1 (en) Data processor performance prediction
KR100864964B1 (ko) 연산처리시스템 및 연산처리 제어방법, 업무관리시스템 및업무관리방법과 기억매체
US7137117B2 (en) Dynamically variable idle time thread scheduling
US7849463B2 (en) Dynamically variable idle time thread scheduling
US7360103B2 (en) P-state feedback to operating system with hardware coordination
JP5982588B2 (ja) 保証された過渡期限とともに中央処理装置の電力を制御するためのシステムおよび方法
JP2002099433A (ja) 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体
TW201205441A (en) Multi-CPU domain mobile electronic device and operation method thereof
US20150378782A1 (en) Scheduling of tasks on idle processors without context switching
Kim et al. An event-driven power management scheme for mobile consumer electronics
US20140137122A1 (en) Modified backfill scheduler and a method employing frequency control to reduce peak cluster power requirements
JP3828112B2 (ja) 処理の実行を制御するスケジューリング方法およびシステム
JP2003271401A (ja) 負荷監視機能を有するマイクロプロセッサ
JP5930504B2 (ja) 保証された過渡期限とともに中央処理装置の電力を制御するためのシステムおよび方法
JP2008217628A (ja) Cpuの省電力システム及び省電力方法
KR101399758B1 (ko) 다수의 슬레이브 장치에서 실행되는 태스크의 주기 스케쥴링 장치 및 방법
JP4149992B2 (ja) 優先制御されたマルチプロセス計算システムにおける優先順位に依存する計算時間配分をもとめるための方法
JP6341066B2 (ja) タイマ制御プログラム、タイマ制御方法及び情報処理装置
JPH08314740A (ja) プロセスディスパッチ方法
JP2000066910A (ja) タスクスケジューリング方法及び記録媒体
EP2595057A2 (en) Modified backfill scheduler and a method employing frequency control to reduce peak cluster power requirements

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2006512749

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 10583657

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

122 Ep: pct application non-entry in european phase