This application is based upon and claims the benefit of priority from Japanese patent application No. 2017-067640, filed on Mar. 30, 2017, the disclosure of which is incorporated here in its entirety by reference.
The present invention relates to a power consumption reduction device, a power consumption reduction method, and a power consumption reduction program, and more particularly, to a power consumption reduction device, a power consumption reduction method, and a power consumption reduction program that reduce power consumption of a microprocessor.
A computer is equipped with a function for saving power by suspending the functions of the respective components of the computer. This function is normally called a C-state.
There are multiple levels in a C-state, such as C1, C3, and C6. A C-state at a higher level has a wider range of components to be suspended at the time of its execution, and thus, more effective power saving is realized. The state of a computer in which a C-state has not been executed and power saving has not been realized is called C0.
It should be noted that each component shown in
As described above, a C-state is a function for realizing power saving in a processor by suspending the functions of the components of the processor in a stepwise manner. Japanese Patent No. 5730999 discloses an example of a device that controls a C-state. The device disclosed in Japanese Patent No. 5730999 has a C-state control function, and determines a C-state level, taking into account the tolerable delay value in processing.
When a C-state is executed, some of the functions of a computer are suspended. That is, when a C-state is executed, part of the operation of a computer is suspended for a predetermined time. Further, the wider the range of the components whose functions are to be suspended, the longer the transition time to a power saving state and the return time from the power saving state. Furthermore, during the transition to the power saving state and the returning from the power saving state, the application running on the computer completely stops its operation.
In a case where software or a system that will obviously deteriorate in performance due to the delay time caused by execution of a C-state is operated in a computer, the only means to prevent degradation of software or system performance is to suspend the C-state and the other power saving functions.
For example, in an application whose performance is affected by a delay time, performance degradation caused by execution of a C-state at a higher level that is not suitable for the application becomes a serious problem. Therefore, in technical fields where a delay time in a network system or the like becomes an important factor, the functions of a C-state are often suspended to prioritize performance over power consumption.
An exemplary object of the invention is to provide a power consumption reduction device, a power consumption reduction method, and a power consumption reduction program that are capable of determining a C-state level at which application performance is not degraded.
A power consumption reduction device according to the present invention is a power consumption reduction device in which an application is operated, and includes: a processor; an output unit that is controlled by the processor in a user mode, and outputs a condition under which performance of the application is not degraded; and a determining unit that is controlled by the processor in a kernel mode, and determines a component to be operated among the components of the processor so that the output condition is satisfied.
A power consumption reduction device according to the present invention is a power consumption reduction device in which an application is operated, and includes: a processor; a determining unit that is controlled by the processor in a user mode, and determines a component to be operated among the components of the processor so that performance of the application is not degraded; and an instructing unit that is controlled by the processor in a kernel mode, and instructs the processor to operate only the determined component.
A power consumption reduction method according to the present invention is a power consumption reduction method that is implemented in a power consumption reduction device including a processor, an application being operated in the power consumption reduction device. The power consumption reduction method includes: outputting a condition under which performance of the application is not degraded, the processor in a user mode outputting the condition; and determining a component to be operated among the components of the processor so that the output condition is satisfied, the processor in a kernel mode determining the component.
A non-transitory computer-readable recording medium storing a power consumption reduction program according to the present invention. The power consumption reduction program is executed by a processor in a computer in which an application is operated, and causes the processor to: output a condition under which performance of the application is not degraded in a user mode; and determine a component to be operated among the components of the processor so that the output condition is satisfied in a kernel mode.
The following is a description of exemplary embodiments of the present invention, with reference to the accompanying drawings.
A determination process to be performed by the power consumption reduction device 100 is now described.
First, the output unit 102 under the control of the processor 101 in the user mode outputs a condition under which application performance is not degraded (step S11).
The determining unit 103 under the control of the processor 101 in the kernel mode then determines the components to be operated among the components of the processor 101 so that the output condition is satisfied (step S12). After the determination, the power consumption reduction device 100 ends the determination process.
With such a configuration, the power consumption reduction device can determine a C-state level at which application performance is not degraded.
The power consumption reduction device 100 may also include an instructing unit (the OS/C-state control unit 1200, for example) that is controlled by the processor 101 in the kernel mode and instructs the processor 101 to operate only the determined components.
With such a configuration, the power consumption reduction device can reduce power consumption of the processor so that application performance is not degraded.
Alternatively, as the condition under which application performance is not degraded, the output unit 102 may output such a maximum process delay time that performance is not degraded when the process being performed by the application is delayed.
With such a configuration, the power consumption reduction device can determine a C-state level, taking into account the tolerable delay time in a process according to an application.
Further, two or more applications may be operated in the power consumption reduction device 100, the output unit 102 may output, for the respective applications, conditions under which the performance of the respective applications is not degraded, and the determining unit 103 may determine the components to be operated among the components of the processor 101 so that the output conditions are satisfied.
With such a configuration, the power consumption reduction device can determine a C-state level at which the performance of the applications is not degraded.
The power consumption reduction device 100 may further include a PCI Express (registered trademark) device (a PCI Express device 2300, for example), and the determining unit 103 determines the components to be operated among the components of the PCI Express device so that the output condition is satisfied.
With such a configuration, the power consumption reduction device can reduce power consumption of the PCI Express device so that application performance is not degraded.
An instruction process to be performed by the power consumption reduction device 200 is now described.
First, the determining unit 202 under the control of the processor 201 in the user mode determines the components to be operated among the components of the processor 201 so that application performance is not degraded (step S21).
The instructing unit 203 under the control of the processor 201 in the kernel mode instructs the processor 201 to operate only the determined components (step S22). After the instruction, the power consumption reduction device 200 ends the instruction process.
With such a configuration, the power consumption reduction device can determine a C-state level at which application performance is not degraded.
[Description of a Configuration]
Next, a second exemplary embodiment of the present invention is described with reference to drawings.
A computer 1000 shown in
The computer 1000 shown in
Unlike the computer 9000 shown in
With the configuration shown in
The C-state control information output unit 1110 of the application 1100 inputs the C-state control information to the C-state operating unit 1220. The C-state operating unit 1220 then inputs the input C-state control information to the OS/C-state control unit 1200.
Using the input C-state control information, the OS/C-state control unit 1200 determines an appropriate C-state level. The information input to the C-state operating unit 1220 relates to the information shown in
The information shown in
Alternatively, the constraint conditions may be incorporated into the OS in advance. If the constraint conditions are incorporated into the OS in advance, the C-state operating unit 1220 can acquire and use the constraint conditions. The OS/C-state control unit 1200 and the like according to this exemplary embodiment control a C-state, using the constraint conditions for the C-state.
A computer 1001 shown in
The computer 1001 shown in
The application 1100 shown in
Using the tolerable delay value input by the tolerable delay value operating unit 1240 and the constraint conditions for a C-state, the OS/C-state control unit 1200 selects the C-state level at which the delay time to be caused by execution of the C-state is the longest among the C-states having tolerable delay values equal to or shorter than the delay times to be caused by execution of the respective C-states.
It should be noted that the interrupts each serving as a delay trigger may include not only interrupts caused by an application or the OS but also interrupts caused by hardware.
A computer 1002 shown in
As shown in
The computer 1002 shown in
As shown in
In the example shown in
[Description of Operation]
Referring now to
Referring first to
First, the OS/C-state control unit 1200 computes Cmax, which is Ci having the largest i among Ci indicating the C-state levels at which the sum of the transition time and the return time is shorter than the tolerable delay value (step S110).
The OS/C-state control unit 1200 then controls the C-state (step S120).
The OS/C-state control unit 1200 then checks whether the tolerable delay value has been changed (step S130). If the tolerable delay value has been changed (Yes in step S130), the OS/C-state control unit 1200 again performs the processing in step S110.
If the tolerable delay value has not been changed (No in step S130), the OS/C-state control unit 1200 stands by for a predetermined time (step S140). After standing by for the predetermined time, the OS/C-state control unit 1200 again performs the processing in step S120.
Referring now to
The respective delay tolerance values are input to the OS/C-state control unit 1200 from the first tolerable delay value operating unit 1241, the second tolerable delay value operating unit 1242, and the third tolerable delay value operating unit 1243. The OS/C-state control unit 1200 sets the smallest value among the input tolerable delay values as “lat” (step S111).
The OS/C-state control unit 1200 then computes Ci, which has the largest i among Ci of the C-state levels at which the sum of the transition time and the return time is smaller than “lat” (step S112).
The OS/C-state control unit 1200 then sets Ci computed in step S112 as Cmax (step S113). After the setting, the computer 1002 ends the computation process.
Referring now to
First, the OS/C-state control unit 1200 computes an optimum C-state level. The OS/C-state control unit 1200 sets the computed C-state level as Ccur (step S121).
The OS/C-state control unit 1200 compares Ccur set in step S121 with Cmax computed in step S110 (step S122). If Ccur is equal to or smaller than Cmax (False in step S122), the OS/C-state control unit 1200 moves on to the processing in step S124.
If Ccur is greater than Cmax (True in step S122), the OS/C-state control unit 1200 sets Cmax as Ccur (step S123). After the setting, the OS/C-state control unit 1200 moves on to the processing in step S124.
The OS/C-state control unit 1200 then executes the C-state at Ccur (step S124). After the execution, the computer 1002 ends the control process.
That is, when determining the C-state level that satisfies the respective constraint conditions in the C-state control process shown in
The OS/C-state control unit 1200 performs computation processes at predetermined time intervals, for example. That is, the OS/C-state control unit 1200 repeatedly performs an optimum C-state computation process.
[Description of Effects]
An application that is a program operating in the user mode in a computer of this exemplary embodiment is provided with an output unit that outputs information for performing C-state control. Further, the basic program called the kernel or the OS for controlling the computer is provided with an operating unit capable of performing C-state control.
A program that operates in the user mode is required to include a component that outputs a tolerable delay value indicating the delay time allowed for a C-state to cause, and information for performing C-state control. An appropriate application that is a user mode program designates a C-state control method in the basic program called the kernel or the OS for controlling the computer.
In a case where a delay time is caused by execution of a C-state in a computer, performance degradation occurs if an application whose performance is affected by the delay time is running on the computer.
The computer of this exemplary embodiment is designed to be able to set a C-state within such a range that application performance is not affected. That is, where the computer of this exemplary embodiment is used, C-state control to minimize the influence on performance can be performed.
The computer of this exemplary embodiment can reduce the influence of performance degradation due to execution of a power saving function more effectively than the computer shown in
The computer of this exemplary embodiment is particularly effective when used as a server computer that performs computation processes via computers.
The reason for this is that, in a desktop computer or a notebook computer that is used by an individual, a unit time that can be perceived by human beings is sufficiently longer than a delay time that is caused by execution of a C-state and is required for returning to the normal state. In other words, even if a C-state is executed, it is unlikely that trouble will be caused in an operation being performed in the computer.
However, a server computer operates in synchronization with a large number of computers. Therefore, the delay time that is caused by execution of a C-state and is required for returning to the normal state might have greater influence on computation processes than a computer that is used by an individual.
[Description of a Configuration]
Next, a third exemplary embodiment of the present invention is described with reference to drawings.
A computer 1003 shown in
The computer 1003 shown in
As shown in
In some applications, the time or the timing at which operation may be suspended is known in advance. The C-state determining unit 1130 of the application 1100 of this exemplary embodiment determines the C-state level for the next transition target, using the known time at which operation may be suspended and the input constraint conditions.
After the determination, the C-state determining unit 1130 inputs transition information indicating the determined C-state level for the transition target to the C-state operating unit 1220. After the transition information is input to the C-state operating unit 1220, the OS/C-state control unit 1200 immediately executes the C-state at the level indicated by the input transition information.
[Description of Operation]
Referring now to
Referring first to
First, the C-state determining unit 1130 of the application 1100 acquires C-state constraint conditions from the C-state condition output unit 1250 (step S201).
The C-state determining unit 1130 then computes the time at which the application 1100 can be stopped. The C-state determining unit 1130 sets the computed time as “st” (step S202).
The C-state determining unit 1130 then computes Ci, which has the largest i among Ci of the C-state levels at which the sum of the transition time and the return time is smaller than “st”. The C-state determining unit 1130 sets the computed Ci as Cnext (step S203).
The OS/C-state control unit 1200 then inputs Cnext to the C-state operating unit 1220 (step S204). After the input, the application 1100 again performs the processing in step S201.
As described above, the application 1100 computes an optimum C-state for the application 1100. The optimal C-state is computed by taking into account not only C-state levels such as C1, C3, and C6, but also C-state execution frequency. The application 1100 sets the value indicating the C-state level in the C-state operating unit 1220 of the OS at the timing when the C-state should be executed.
Referring now to
First, the OS/C-state control unit 1200 checks whether Cnext has been input to the C-state operating unit 1220 (step S211). If Cnext has not been input (No in step S211), the OS/C-state control unit 1200 stands by until Cnext is input.
If Cnext has been input (Yes in step S211), the OS/C-state control unit 1200 executes the C-state at Cnext (step S212). After the execution, the OS/C-state control unit 1200 again performs the processing in step S211.
As described above, the OS/C-state control unit 1200 of the computer 1003 monitors whether a value indicating a C-state level is set in the C-state operating unit 1220 from the application 1100. After the value is set in the C-state operating unit 1220, the OS/C-state control unit 1200 immediately executes the C-state at the level indicated by the set value.
[Description of Effects]
Where the computer of this exemplary embodiment is used, the C-state determining unit 1130 performs appropriate power saving control, so that power saving that does not degrade application performance can be realized even in a system that executes an application whose performance is affected by a delay.
[Description of a Configuration]
Next, a fourth exemplary embodiment of the present invention is described with reference to drawings.
The technology of the second exemplary embodiment or the technology of the third exemplary embodiment can also be applied to a function for realizing power saving of some other component of a computer besides a C-state that is a function for realizing power saving of a processor.
This exemplary embodiment concerns application of the technology of the second exemplary embodiment or the technology of the third exemplary embodiment to an L-state that is a function for realizing power saving of a PCI Express that is a general-purpose interface. Like a C-state, an L-state is a function for realizing power saving by suspending operation of a PCI Express interface of a computer or operation of a PCI Express device of the connection destination.
In this exemplary embodiment, application to a computer shown in
The delay time to be caused when the PCI Express device 2300 and the PCI Express device 2400 are stopped by an L-state has an unknown value. Therefore, a delay time caused by an L-state in a measurement environment shown in
The computer 2000 includes a PCI Express device 2300. Likewise, the computer 2001 includes a PCI Express device 2301. In the measurement environment shown in
As shown in
The computer 2000 changes the L-state provided in the computer in a stepwise manner from L0 to L1 to L2, for example. The computer 2001 measures the delay times caused by the L-state at the respective levels. In accordance with the measured information, the computer 2001 generates L-state constraint conditions corresponding to the constraint conditions shown in
The computer 2001 then transmits the generated L-state constraint conditions to the computer 2000. Through the above process, the computer 2000 can determine the L-state constraint conditions. In accordance with the determined constraint conditions, the computer 2000 can control the power saving function of the L-state in the same manner as the control of the power saving function of a C-state, using the OS and an application.
The computer of each exemplary embodiment is expected to be suitably used as a server computer, a personal computer, a portable computer, or a network device such as a router or a hub. Restrictions are imposed on exhaust heat quantities and power consumption of such computers and network devices. That is, the computer of each exemplary embodiment may be used not only as a server computer but also as a desktop computer or a notebook computer that is used by an individual.
The unidirectional arrows shown in the respective block diagrams indicate directions in which data flows. However, there remains a possibility of data flowing bidirectionally at the portions indicated by the arrows.
Furthermore, some or all of the above exemplary embodiments can also be described as noted below, but are not limited to the following configurations.
A power consumption reduction device in which an application is operated,
The power consumption reduction device according to supplementary note 1, further including
The power consumption reduction device according to supplementary note 1, wherein the output unit outputs a maximum delay time when processing by the application is delayed, the maximum delay time of the processing being output as a condition under which performance of the application is not degraded, the maximum delay time not degrading the performance.
The power consumption reduction device according to supplementary note 2, wherein the output unit outputs a maximum delay time when processing by the application is delayed, the maximum delay time of the processing being output as a condition under which performance of the application is not degraded, the maximum delay time not degrading the performance.
The power consumption reduction device according to supplementary note 1, wherein
The power consumption reduction device according to supplementary note 2, wherein
The power consumption reduction device according to supplementary note 3, wherein
The power consumption reduction device according to supplementary note 4, wherein
The power consumption reduction device according to supplementary note 1, further including
The power consumption reduction device according to supplementary note 2, further including
The power consumption reduction device according to supplementary note 3, further including
The power consumption reduction device according to supplementary note 4, further including
The power consumption reduction device according to supplementary note 5, further including
The power consumption reduction device according to supplementary note 6, further including
The power consumption reduction device according to supplementary note 7, further including
The power consumption reduction device according to supplementary note 8, further including
A power consumption reduction method implemented in a power consumption reduction device including a processor, an application being operated in the power consumption reduction device,
The power consumption reduction method according to supplementary note 17, wherein the processor operates only the determined component.
A non-transitory computer-readable recording medium storing a power consumption reduction program to be executed by a processor in a computer in which an application is operated,
The recording medium according to supplementary note 19, wherein only the determined component is operated when the power consumption reduction program is executed by the processor.
A power consumption reduction device in which an application is operated,
A power consumption reduction method implemented in a power consumption reduction device including a processor, an application being operated in the power consumption reduction device,
A non-transitory computer-readable recording medium storing a power consumption reduction program to be executed by a processor in a computer in which an application is operated,
To effectively use a C-state function, each application is required to be involved in controlling the C-state so that performance is not degraded. However, in a general computer in which a C-state is executed, any application is not involved in controlling the C-state. An example of a general computer in which a C-state is executed is now described.
The computer 9000 also includes an OS/C-state control unit 1200 and a BIOS 1210 that operate in a kernel mode. The OS of the computer is formed with components that operate in the kernel mode. The computer 9000 further includes a processor 1230.
In the computer 9000 shown in
To solve the above problem, there is a demand for a device in which an application can also be involved in controlling the C-state. Japanese Patent No. 5972981 discloses an example of a device in which an application can be involved in controlling the C-state.
Japanese Patent No. 5972981 discloses a device that has a C-state control function, and determines an optimum C-state level, using control information from an application.
However, Japanese Patent No. 5972981 does not disclose that the application side inputs a condition under which performance of the application is not degraded to the OS side, the condition being related to the constraint conditions for executing a C-state.
According to the present invention, it is possible to determine a C-state level at which application performance is not degraded.
While the invention has been particularly shown and described with reference to exemplary embodiments thereof, the invention is not limited to these embodiment. It will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present invention as defined by the claims.
Number | Date | Country | Kind |
---|---|---|---|
2017-067640 | Mar 2017 | JP | national |