WO2012117455A1 - 電力制御装置及び電力制御方法 - Google Patents

電力制御装置及び電力制御方法 Download PDF

Info

Publication number
WO2012117455A1
WO2012117455A1 PCT/JP2011/003668 JP2011003668W WO2012117455A1 WO 2012117455 A1 WO2012117455 A1 WO 2012117455A1 JP 2011003668 W JP2011003668 W JP 2011003668W WO 2012117455 A1 WO2012117455 A1 WO 2012117455A1
Authority
WO
WIPO (PCT)
Prior art keywords
power state
processor
logical
logical processor
power
Prior art date
Application number
PCT/JP2011/003668
Other languages
English (en)
French (fr)
Inventor
谷 丈暢
Original Assignee
パナソニック株式会社
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 パナソニック株式会社 filed Critical パナソニック株式会社
Publication of WO2012117455A1 publication Critical patent/WO2012117455A1/ja
Priority to US13/972,468 priority Critical patent/US20130346766A1/en

Links

Images

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/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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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/329Power saving characterised by the action undertaken by task scheduling
    • 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

  • the present invention relates to a power control apparatus and a power control method for determining power state information indicating a power state of a physical processor in a multiprocessor.
  • Information processing devices such as microprocessors are generally used to implement these processes. However, as the demand for applications increases, the circuit scale, operating frequency, or number of installed processors increases, and power consumption increases. It is going on.
  • a plurality of OSs are executed on each physical processor. For this reason, a plurality of logical processors are allocated to each physical processor in a time-sharing manner, but it is assumed that the processing load differs between the logical processors.
  • the present invention has been made to solve the above-described problems, and an object of the present invention is to provide a power control apparatus capable of performing optimal power control in a virtualized processor.
  • a power control apparatus is configured such that each of a plurality of logical processors is allocated in time division to a physical processor whose power consumption dynamically changes according to a processing amount.
  • the power control device that controls the power consumption of the physical processor, wherein the plurality of logical processors are grouped into a plurality of logical processor groups,
  • the power control device is a power indicating the power consumption of the physical processor to which the logical processor belonging to the target logical processor group that is the logical processor group to which the changed logical processor belongs is assigned.
  • the changed logic A power state information determining unit that determines power state information at the time of allocation of the processor to the physical processor, and the power supplied to the physical processor is changed based on the power state information determined by the power state information determining unit.
  • a power state changing unit A power state changing unit.
  • logical processors that are correlated with each other such as executing processing of the same level of load, are grouped, and based on the power state information of the logical processors that belong to the target logical processor group, The power status information (the power status information of the physical processor to which the changed logical processor is allocated) is determined.
  • the power status information (the power status information of the physical processor to which the changed logical processor is allocated) is determined.
  • the power state information determination unit determines the power of the logical processor after the change based on power state information of a logical processor different from the logical processor after the change among the logical processors belonging to the target logical processor group. Determine state information.
  • This configuration makes it possible to predict power state information using the correlation of power state information when there is a correlation among a plurality of logical processors.
  • the power control apparatus described above further includes the physical processor among the logical processors belonging to the logical processor group.
  • a power state control information storage unit that stores prediction information on whether or not to predict in a logical processor group whether to use power state information of a logical processor other than the logical processor to be assigned to the logical processor.
  • the power state information determination unit refers to the intra-logical processor group prediction feasibility information stored in the power state control information storage unit, and the target only when the intra-logical processor group prediction feasibility information permits.
  • the logical processor after serial changed based on the power state information of the different logical processors, to determine the power state information of the replacing logical processor.
  • the power state information determination unit may determine an average of values indicated by the power state information of the different logical processors as a value indicated by the power state information of the logical processor after the change.
  • the above-described power control apparatus further includes, for each logical processor group, a logical processor group indicating a logical processor group different from the logical processor group referred to when determining the power state information of the logical processors belonging to the logical processor group.
  • a power state control information storage unit storing inter prediction target logical processor group information, wherein the power state information determination unit includes logical processors belonging to the logical processor group indicated by the inter logical processor group prediction target logical processor group information. Based on the power state information and the power state information of a logical processor that is different from the logical processor after the change among the logical processors belonging to the target logical processor group, the power state information of the logical processor after the change is determined. Good.
  • the power state information determination unit may determine the power state information of the logical processor after the change based on the past power state information of the logical processor after the change.
  • the power state information determination unit when the value indicated by the past power state information of the logical processors belonging to the target logical processor group allocated to the physical processor monotonously increases or decreases over time,
  • the changed power state information of the logical processor may be determined by extrapolating a value indicated by past power state information of the logical processor belonging to the target logical processor group.
  • a power state control information storage unit that stores power prediction history information indicating whether the power state information determination unit refers to the power prediction history information stored in the power state control information storage unit,
  • the changed power state information of the logical processor may be determined only when the power state information of the physical processor corresponding to the target logical processor group is hit.
  • the power control apparatus described above further includes a power state control information storage unit that stores condition information indicating responsiveness of processing executed by the logical processors belonging to the logical processor group for each logical processor group.
  • the power state information determination unit is stored in the power state information of a logical processor different from the logical processor after the change among the logical processors belonging to the target logical processor group, and the power state control information storage unit. Based on the condition information corresponding to the target logical processor group, the changed power state information of the logical processor may be determined such that the higher the responsiveness indicated by the condition information, the higher the power.
  • the power reflecting the responsiveness specified by the condition information is determined by determining the power state information to increase the power. State information can be determined.
  • the above-described power control apparatus further stores, for each logical processor group, the emergency processor non-information indicating whether the responsiveness of the process executed by the logical processor belonging to the logical processor group requires the maximum responsiveness.
  • a power state control information storage unit wherein the power state information determination unit has a maximum responsiveness of the emergency processor corresponding to the target logical processor group stored in the power state control information storage unit. May be determined as the value indicated by the power state information of the logical processor after the change.
  • a logical processor corresponding to an emergency processor that requires maximum responsiveness can be activated with maximum power.
  • the present invention can be realized not only as a power control apparatus including such a characteristic processing unit, but also as a power control method including steps executed by the characteristic processing unit included in the power control apparatus. Can be realized. Further, it can be realized as a program for causing a computer to function as a characteristic processing unit included in the power control apparatus or a program for causing a computer to execute characteristic steps included in the power control method. Such a program can be distributed via a computer-readable non-transitory recording medium such as a CD-ROM (Compact Disc-Read Only Memory) or a communication network such as the Internet. .
  • a computer-readable non-transitory recording medium such as a CD-ROM (Compact Disc-Read Only Memory) or a communication network such as the Internet.
  • optimal power control can be performed in a virtualized processor.
  • FIG. 1 is a diagram illustrating a general software structure in a single physical processor.
  • FIG. 2 is a block diagram illustrating a time transition example of power control in a single physical processor.
  • FIG. 3 is a diagram illustrating a general software structure in a multiprocessor including a plurality of physical processors.
  • FIG. 4 is a diagram illustrating a time transition example of power control in the multiprocessor.
  • FIG. 5 is a diagram showing a general software structure in the virtual multiprocessor.
  • FIG. 6 is a diagram illustrating a time transition example of logical processor allocation in the virtual multiprocessor.
  • FIG. 7 is a block diagram showing the configuration of a system LSI for digital consumer equipment.
  • FIG. 8 shows an example of a processing load situation in each processor of the system LSI.
  • FIG. 9A is a diagram illustrating an example of time transition of the power state information of the logical processor in the domain A in the virtual multiprocessor illustrated in FIG.
  • FIG. 9B is a diagram illustrating a time transition example of the power state information of the logical processor in the domain B in the virtual multiprocessor illustrated in FIG. 5.
  • FIG. 9C is a diagram illustrating a time transition example of the power state information of the physical processor in the virtual multiprocessor illustrated in FIG. 5.
  • FIG. 10 is a diagram illustrating a time transition example of power control in the logical processor group when the total processing amount is monotonically increasing.
  • FIG. 11 is a block diagram showing a hardware configuration of a multiprocessor system including virtualized multiprocessors according to the embodiment of the present invention.
  • FIG. 11 is a block diagram showing a hardware configuration of a multiprocessor system including virtualized multiprocessors according to the embodiment of the present invention.
  • FIG. 12 is a diagram illustrating a configuration example of logical processor group mapping information.
  • FIG. 13 is a diagram illustrating a configuration example of a physical processor power state table.
  • FIG. 14 is a diagram illustrating an example of a physical processor power state table.
  • FIG. 15 is a diagram illustrating a configuration example of a logical processor power state table.
  • FIG. 16 is a diagram illustrating an example of a logical processor power state table.
  • FIG. 17 is a diagram illustrating a configuration example of a voltage control device configuring the power state change device.
  • FIG. 18 is a diagram illustrating a configuration example of a clock control device constituting the power state changing device.
  • FIG. 19 is a hierarchical diagram showing a software structure related to the power control method by the multiprocessor system shown in FIG. FIG.
  • FIG. 20 is a diagram illustrating a configuration example of a logical processor group correspondence table.
  • FIG. 21 is a diagram illustrating a configuration example of a logical processor group power state control table.
  • FIG. 22 is a diagram illustrating a configuration example of the power state control information of the logical processor group power state control table.
  • FIG. 23 is a diagram illustrating an example of the power state history information.
  • FIG. 24 is a flowchart of the power control method in the multiprocessor system according to the embodiment of the present invention.
  • FIG. 25 is another flowchart of the power control method in the multiprocessor system according to the embodiment of the present invention.
  • FIG. 26 is a detailed flowchart of the power state prediction process (procedure ZA2106 in FIG. 25).
  • FIG. 27 is a block diagram showing a logical control structure of the multiprocessor system according to the embodiment of the present invention.
  • FIG. 28 is a diagram illustrating power state information of logical processors included in the same logical processor group.
  • FIG. 29 is a diagram illustrating a time transition example of power control of a logical processor.
  • FIG. 1 is a diagram showing a general software structure in a single physical processor.
  • FIG. 2 is a diagram illustrating a time transition example of power control in a single physical processor.
  • an OS (Operating System) 102 is executed on the physical processor 101, the OS 102 performs resource management, and provides the resources of the physical processor 101 to a process 103 that is a software execution body. That is, the OS 102 assigns any one of the plurality of processes 103 (processes P0 to Pn) to the physical processor 101 in a time division manner. As a result, the process 103 is executed on the physical processor 101 in a time division manner.
  • physical resources such as frequency and memory required by the physical processor 101 change. For example, when the processing amount of the process 103 is large or when a high-speed response is required, it is necessary to increase the operating frequency of the physical processor 101 or increase the capacity of the memory used by the physical processor 101.
  • the next power state information is predictedly changed based on the current processing load status of the physical processor 101 itself and the past processing load status.
  • the power state information includes a value (hereinafter referred to as “power state”) that is one-to-one associated with each of the operating voltage and operating frequency of the physical processor, and as the power state increases. It is assumed that the operating voltage and operating frequency of the physical processor increase (as the power state increases).
  • FIG. 3 is a diagram illustrating a general software structure in a multiprocessor including a plurality of physical processors.
  • FIG. 4 is a diagram illustrating a time transition example of power control in the multiprocessor.
  • a plurality of processes 103 are executed on the multiprocessor OS 102 that commonly manages a plurality of physical processors 101 (physical processors PP # 0 to PP # 3). On each physical processor 101, a process 103 assigned by the OS 102 is executed.
  • FIG. 4 it is assumed that three physical processors PP # 0 to PP # 2 are operating in a high power state due to a high processing load. There will be described a case where the fourth physical processor PP # 3 is woken up for the purpose of reducing the processing amount of the entire multiprocessor.
  • the power state of the next physical processor PP # 3 is predicted from the current and past power states of the physical processor PP # 3, the physical processor PP # 3 has been stopped so far. For this reason, it is not possible to predict that the physical processor PP # 3 will transition to a power state that allows high-load processing at a time. Therefore, if the power state of the physical processor PP # 3 is predicted by referring to the power states of the other physical processors PP # 0 to PP # 2 operating in the same time zone, the power state can be quickly and appropriately set. It is possible to make a transition.
  • the physical processor PP # 3 can be set in a power state capable of high-load processing. Can be activated.
  • the power state of the physical processor 101 that is the prediction target is determined using the power state of the other physical processor 101 that has a correlation with the physical processor 101 that is the power state prediction target. Can be predicted.
  • the physical processors 101 correlated with each other are physical processors 101 having similar processing characteristics such as processing load, responsiveness required for processing, or processing content.
  • FIG. 5 is a diagram showing a general software structure in the virtual multiprocessor. Here, a case where two OS domains exist is illustrated.
  • Each OS 102 runs on a virtual processor called a logical processor 104 or a virtual processor 104, and each logical processor 104 occupies the physical processor 101 as follows. To work.
  • the logical processor 104 is assigned to the physical processor 101 in a time-sharing manner by software or hardware of a virtualization layer, called a hypervisor 105 or a virtual machine monitor 105, or a cooperative operation of both.
  • the OS 102 of the domain A runs on four logical processors 104 (logical processors LP # A0 to LP # A3), and four logical processors 104 (logical processors LP # B4 to LP ##).
  • the OS 102 of the domain B operates on four logical processors 104 (logical processors LP # A0 to LP # A3), and four logical processors 104 (logical processors LP # B4 to LP ##).
  • the OS 102 of the domain B operates on four logical processors 104 (logical processors LP # A0 to LP # A3), and four logical processors 104 (logical processors LP # B4 to LP ##).
  • the OS 102 of the domain B operates on four logical processors 104 (logical processors LP # A0 to LP # A3), and four logical processors 104 (logical processors LP # B4 to LP ##).
  • the OS 102 of the domain B operates on four logical processors 104 (logical processors
  • the OS 102 in the domain A assigns the processes Pa0 to Pan to the logical processors LP # A0 to # A3, and the OS 102 in the domain B assigns the processes Pb0 to Pbn to the logical processors LP # B4 to # B7.
  • the hypervisor 105 assigns the eight logical processors 104 to the four physical processors 101 while switching them in a time division manner. As a result, the processes 103 executed on the two OSs 102 are executed in a time division manner.
  • FIG. 6 shows a state in which each logical processor 104 is allocated to the physical processor 101 in a time division manner. For example, it is shown that the logical processor LP # A0 is assigned to the physical processor PP # 0 by the hypervisor 105, and then the logical processor LP # B5 is assigned by the hypervisor 105.
  • Fig. 7 shows an example of a system LSI for a digital consumer device. As shown in this example, a large number of processors having different structures and applications are integrated in a recent system LSI. Each processor is optimally designed for each process and offers the greatest capacity in the field.
  • a large number of physical processors 101 such as a user interface CPU, a device controller processor, a video DSP, and an audio DSP are integrated.
  • each physical processor 101 does not always operate at the maximum processing capacity.
  • the operating ratios of the respective processor groups are different when browsing a web browser on the Internet, watching AV (Audio / Visual) such as a digital TV, or in a standby state of the network. That is, as shown in FIG. 8A, the processing load of the user interface CPU is large when browsing a Web browser on the Internet, but the processing loads of other CPUs are small. Further, as shown in FIG. 8B, the processing load of the video DSP and the audio DSP becomes large during AV viewing, but the processing load of the other CPUs is small. Further, as shown in FIG. 8C, in the standby state of the network, the processing load of all the CPUs is small.
  • each processor group is implemented so as to supply the capability that requires the maximum processing individually, and generally raises the problem of increasing the cost.
  • the virtualization system described above is being applied as a measure to solve this cost problem and performance supply. That is, using a virtual multiprocessor as shown in FIG. 5, a high-performance system can be constructed at a low cost.
  • FIG. 9A is a diagram illustrating a time transition example of the power state of the logical processor in the domain A.
  • FIG. 9B is a diagram illustrating a time transition example of the power state of the logical processor in the domain B.
  • the horizontal axis represents time
  • the vertical axis represents the power state.
  • the processing of the process 103 executed by the logical processors LP # A0 to LP # A3 is light as shown in FIG. 9A, and the processing of the process 103 executed by the logical processors LP # B4 to LP # B7 is shown in FIG. 9B. It is heavy.
  • FIG. 9C is a diagram illustrating a time transition example of the power state of the physical processor 101.
  • the horizontal and vertical axes are the same as those shown in FIGS. 9A and 9B.
  • the logical processor LP # B5 of the domain B with high load is assigned to the physical processor PP # 0
  • the logical processor LP # A0 of the OS domain A with low load is assigned to the physical processors PP # 1 to PP # 3.
  • the logical processor assigned to the physical processor PP # 1 changes from the low-load OS domain A logical processor LP # A0 to the high-load OA domain B logical processor LP # B4.
  • power control that is not originally appropriate is performed. That is, since the physical processor PP # 1 is assigned the logical processor LP # B4 in the OA domain B with a high load, it is originally desirable to start the operation in the high power state 901.
  • the low power state 902 is predicted due to the strong influence of the low power states of the physical processors PP # 1 to PP # 3.
  • the low power state 902 is predicted. End up.
  • the power state related to its own logical processor 104 is held for each logical processor 104.
  • the last power state at the time of previous execution is used to assign the current power state to the physical processor 101.
  • a method of using the predicted value of the power state is conceivable.
  • the logical processor 104 when the load increases due to an increase in the number of processes that must be processed in the entire OS as time progresses, the logical processor 104 of its own at the end of the previous startup. The latest power state of the entire OS is not reflected in the power state. That is, as shown in FIG. 10C, the logical processor 104 is assigned to the physical processor PP # 0 in the order of the logical processor LP # A0, the logical processor LP # A1, and the logical processor LP # A2. Assume that # A0 is assigned. In this case, as shown in FIG. 10 (b), if the power state 1002 of the logical processor LP # A0 at the end of the previous startup is the power state 1001 of the logical processor LP # A0 at the current startup, The prediction fails.
  • the power state reflecting a more accurate load state as the entire OS is the power state 1003 of the logical processor LP # A2.
  • the OS as a whole reflects the state of the latest OS, although it is advantageous to finish the entire process quickly with appropriate power. I can't let you.
  • FIG. 11 is a block diagram showing a hardware configuration of a multiprocessor system including a virtualized multiprocessor according to the embodiment of the present invention.
  • the multiprocessor in this embodiment includes a microprocessor, a microcomputer, a microcontroller, and a digital signal processor.
  • the multiprocessor system includes a plurality of physical processors 101 (physical processors PP # 0 to PP # 3), a plurality of level 1 caches 121, a level 2 cache and shared bus 122, a power state changing unit 107, and an input / output device. 123, a storage device 124, and an external device 125.
  • a plurality of physical processors 101, a plurality of level 1 caches 121, a level 2 cache and a shared bus 122 constitute a multiprocessor.
  • other components may be added to the multiprocessor.
  • the plurality of physical processors 101 are connected to each other via the level 2 cache and the shared bus 122.
  • Each physical processor 101 is connected to a level 1 cache 121.
  • the physical processor 101 is connected to the power state changing unit 107, the input / output device 123, the storage device 124, and other external devices 125 via the level 2 cache and the shared bus 122.
  • Each physical processor 101 holds logical processor group identification information 108 for identifying the logical processor group to which the logical processor 104 assigned to the physical processor 101 belongs. As a result, each physical processor 101 can confirm which logical processor group 104 of the logical processor group is assigned to the physical processor 101.
  • the logical processor groups are determined in advance, and the processing executed by the logical processors 104 belonging to the same processor group seems to have similar processing characteristics such as processing load, responsiveness required for processing, or processing content. To be determined.
  • Each physical processor 101 is assumed to be operating according to the operating voltage and the operating frequency associated with the power state indicated by the power state information 109.
  • FIG. 12 is a diagram illustrating an example of logical processor group mapping information which is data indicating a correspondence relationship between the physical processor 101 and a logical processor group.
  • the logical processor group mapping information 110 is information that stores, for each physical processor 101, the number of the logical processor group to which the logical processor 104 assigned to the physical processor 101 belongs. According to the logical processor group mapping information 110 shown in FIG. 12, the physical processors PP # 0, PP # 2 and PP # 3 are assigned the logical processors 104 belonging to the logical processor group with the number 1, and the physical processors PP # 1 indicates that the logical processor 104 belonging to the logical processor group number 0 is assigned.
  • a physical processor power state table 111 indicating the power state information 109 for each physical processor 101 as shown in FIG. 13 may be stored in the storage device 124.
  • FIG. 14 is a diagram illustrating an example of the physical processor power state table 111.
  • the power status information 109 of each physical processor 101 includes the power status at the start of allocation of the logical processor 104, the power status at the end of allocation of the logical processor 104, and the average power status at the time when the logical processor 104 was allocated. including.
  • the storage device 124 stores a logical processor power state table 126 indicating the power state information for each logical processor 104 as shown in FIG.
  • the power state of the logical processor 104 is the power state of the physical processor 101 currently assigned to the logical processor 104 or the physical processor 101 assigned closest in time.
  • FIG. 16 is a diagram showing an example of the logical processor power state table 126.
  • the power status information of each logical processor 104 includes the power status at the start of allocation of the logical processor 104, the power status at the end of allocation of the logical processor 104, and the average power status at the time when the logical processor 104 was allocated. Including.
  • the power state change unit 107 changes the power state of each physical processor 101 in accordance with an external power state change request.
  • FIG. 17 and 18 show an example of the power state changing unit 107.
  • FIG. FIG. 17 is a circuit example in which the supply voltage is changed using a DC-DC converter for given power supply voltage conditions and threshold voltage conditions.
  • FIG. 18 is a circuit example in which the supplied clock is changed according to the multiplication rate condition and the division ratio condition as clock frequency information.
  • each circuit changes the voltage value or the clock frequency for each physical processor 101 based on the received power state change request information.
  • the power state changing unit 107 may be mounted on the same LSI as the physical processor 101 group or may be mounted outside the LSI.
  • the power state change request to the power state changing unit 107 may be performed by hardware or may be performed by software.
  • FIG. 19 is a hierarchical diagram showing a software structure related to the power control method by the multiprocessor system shown in FIG.
  • This hierarchical diagram is the same as the diagram showing the software structure in the virtual multiprocessor shown in FIG.
  • the hypervisor 105 includes a logical processor group correspondence table 112, a logical processor group power state control table 113, a power state history information 117, a logical processor power state table 126, logical processor group mapping information 110, and a physical processor. And a power state table 111. These pieces of information are stored in the storage device 124.
  • the logical processor group correspondence table 112 is data associating the logical processor 104 with the logical processor group as shown in FIG.
  • logical processors LP # A0 to LP # A3 belong to the logical processor group (logical processor group 0) with group number 0, and logical processors LP # B4 to LP # B7 have logical numbers with group number 1. It belongs to the processor group (logical processor group 1).
  • a logical processor group is set so that logical processors 104 belonging to a certain OS domain belong to a common logical processor group.
  • a logical processor group is set so that the logical processors 104 in the OS domain belong to a plurality of logical processor groups, or the logical processors 104 in a plurality of OSs belong to a common logical processor group. It is also possible to set a logical processor group as described above.
  • eight logical processors 104 are divided into two general-purpose OS domains composed of four logical processors 104, but there are cases where power control is desired to be applied in common.
  • the logical processor group may be set so that eight logical processors 104 belong to one logical processor group.
  • a logical processor group to which only a specific logical processor 104 belongs may be set.
  • the relationship between the logical processor 104 and the logical processor group can be arbitrarily set according to the characteristics of the system.
  • FIG. 21 shows an example of the logical processor group power state control table 113.
  • the logical processor group power state control table 113 is data storing power state control information 114 for each logical processor group.
  • the power state control information 114 is data indicating the power state and power control specifications of the logical processor group.
  • FIG. 22 is a diagram illustrating an example of the power state control information 114.
  • the power state control information 114 includes voltage state information, clock state information, intra-LP group prediction enable / disable information, LP group prediction target LP group information, power prediction history information, power control prohibition information, power control change, and the like. Width information, responsiveness condition information, power upper limit condition information, emergency processor non-information, and minimum processor condition information.
  • the voltage state information is information indicating the power state of the logical processors included in the target logical processor group.
  • the voltage state information includes a power supply voltage and a threshold voltage.
  • the clock state information is information indicating the clock state of the logical processors included in the target logical processor group.
  • the clock state information includes, for example, information regarding the clock frequency and whether or not the current clock is stopped.
  • the intra-LP group predictability information is information indicating whether or not the power state is predicted based on the power state of the logical processors 104 included in the logical processor group of interest.
  • the inter-LP group prediction target LP group information is identification information of another logical processor group that is regarded as the same logical processor group as the logical processor group focused on when the power state is predicted. For example, when three OSs are operating on a multiprocessor, two of them are the same type of OS and the other is a different type of OS, and each OS has a logical processor group. If set, two logical processor groups corresponding to the same type of OS are regarded as the same logical processor group.
  • the power prediction history information is information indicating whether or not a power state prediction has been made for a logical processor belonging to the logical processor group of interest.
  • the power control prohibition information is flag information indicating whether or not to predict the power state.
  • the power control change width information is information indicating a change width when the power is changed. If this change width is set to be small, the responsiveness to the power change is deteriorated, but fine control is possible. On the other hand, if the change width is set large, fine control becomes difficult, but the responsiveness of the power change is improved.
  • Responsiveness condition information is information indicating the level of responsiveness during power control.
  • control is performed such that the voltage and frequency are lowered slowly and lowered rapidly when raising the voltage and frequency. Accordingly, in order to increase the voltage and frequency as much as possible, the responsiveness of the physical processor 101 to which the logical processor 104 belonging to the logical processor group of interest is allocated can be increased.
  • the range of change when the power is changed may be increased.
  • the power upper limit condition information is information indicating the upper limit value of power during power control. By setting the upper limit value of power to a small value, the physical processor 101 can be operated with low power.
  • the non-information is information indicating whether or not the logical processor 104 belonging to the target logical processor group corresponds to the emergency processor.
  • An emergency processor is a processor that requires maximum responsiveness. When a logical processor 104 corresponding to an emergency processor is assigned to a physical processor 101, the voltage and frequency of the physical processor 101 are maximized. Such power state control is performed.
  • the minimum processor condition information is information indicating the maximum number of logical processors 104 that are simultaneously allocated to a plurality of physical processors 101.
  • the maximum number is set small. As a result, it is possible to prevent the physical processor 101 from operating wastefully and to stop the power while the physical processor 101 is not operating.
  • the hypervisor 105 performs power control on the physical processor 101 based on each information included in the power state control information 114 described above.
  • hypervisor 105 may be configured by software or hardware, or may be configured by software and hardware so as to execute processing by cooperative operation of both.
  • FIG. 23 is a diagram illustrating an example of the power state history information 117.
  • the power status history information 117 stores power status information in a FIFO format for each logical processor group.
  • power state information N-1 to N-4 four pieces of power state information (power state information N-1 to N-4) are stored as history.
  • Each power status information includes the power status at the start of allocation of the logical processor 104, the power status at the end of allocation of the logical processor 104, the average power status at the time when the logical processor 104 was allocated, and the logical processor 104 It includes information indicating the allocated time.
  • FIG. 24 is a flowchart of the power control method in the multiprocessor system according to the present embodiment.
  • step ZA2001 the hypervisor 105 determines the logical processor 104 to be assigned to the physical processor 101 next. Since the determination of the logical processor 104 is performed by scheduling processing and is not the main point of the present application, detailed description thereof is omitted.
  • step ZA2002 the hypervisor 105 acquires the power state information of the logical processor 104 to be assigned to the physical processor 101 next from the logical processor power state table 126.
  • the hypervisor 105 refers to the logical processor group mapping information 110, and then has a physical processor group number that matches the logical processor group number of the logical processor group to which the logical processor 104 to be assigned to the physical processor 101 belongs.
  • the processor 101 is extracted.
  • the hypervisor 105 acquires the power state information 109 for the extracted physical processor 101 from the physical processor power state table 111.
  • step ZA2005 the hypervisor 105 determines whether there is a physical processor 101 whose logical processor group matches the logical processor 104 to be assigned to the physical processor 101 next. That is, the hypervisor 105 determines that the physical processor 101 exists in the procedure ZA2003, and determines that it does not exist if the physical processor 101 cannot be extracted.
  • the hypervisor 105 determines the logical processor 104 to be assigned. Based on the past power state information, the power state when the logical processor 104 is allocated to the physical processor 101 is predicted. For example, the hypervisor 105 refers to the power state information acquired from the logical processor power state table 126, and determines the power state of the physical processor 101 when the logical processor 104 to be allocated has been recently allocated to the physical processor 101. Is predicted as a power state when the logical processor 104 is assigned to the physical processor 101.
  • step ZA2007 when there is a physical processor 101 whose logical processor group matches the logical processor 104 to be allocated to the physical processor 101 (YES in step ZA2005), in step ZA2007, the hypervisor 105 uses the physical acquired in step ZA2004. From the power state information 109 of the processor 101, the power state when assigning the allocation target logical processor 104 to the physical processor 101 is predicted. For example, the hypervisor 105 predicts the average value of the power state of the physical processor as the power state when assigning the allocation target logical processor 104 to the physical processor 101.
  • the physical processor 101 whose logical processor group matches the logical processor LP # B4 is only the physical processor PP # 0.
  • the physical processor PP # 0 power state is predicted as the power state when the logical processor LP # B4 is assigned to the physical processor PP # 1.
  • the prediction may be performed using not only the power state of the physical processor but also the power state of the logical processor 104 to be allocated.
  • the hypervisor 105 requests the power state change unit 107 to change to the predicted power state, and the power state change unit 107 is a physical processor to which the logical processor 104 is assigned based on the predicted power state. 101 changes the power state.
  • FIG. 25 is another flowchart of the power control method in the multiprocessor system according to the present embodiment.
  • the power control method shown in FIG. 24 and the power control method shown in FIG. 25 are alternatively implemented. Which power control method is implemented depends on the design of the multiprocessor system.
  • step ZA2100 the hypervisor 105 determines the logical processor 104 to be assigned to the physical processor 101 next. Since the determination of the logical processor 104 is performed by scheduling processing and is not the main point of the present application, detailed description thereof is omitted.
  • step ZA2101 the hypervisor 105 acquires the power state control information 114 of the logical processor group to which the logical processor 104 to be assigned belongs from the logical processor group power state control table 113.
  • the hypervisor 105 refers to the intra-LP group prediction availability information in the acquired power state control information 114, and determines whether or not the power state prediction between the logical processors 104 in the logical processor group is prohibited.
  • step ZA2101 If prediction of the power state between the logical processors 104 is prohibited (YES in step ZA2101), the hypervisor 105 does not make a power state change request to the power state change unit 107, and the current physical processor 101 Maintain the power state.
  • step ZA2102 the hypervisor 105 displays the power prediction history information in the power state control information 114 acquired in step ZA2101. It is determined whether or not the prediction of the power state of the logical processors 104 belonging to the logical processor group is wrong.
  • the hypervisor 105 If it is a period during which power control based on power state prediction is prohibited because the power state is not predicted (YES in step ZA2101), the hypervisor 105 notifies the power state changing unit 107 of the power state. The current power state of the physical processor 101 is maintained without making a change request.
  • step ZA2103 the hypervisor 105 refers to the logical processor group mapping information 110, and the logical processor 104 to be assigned to the physical processor 101 next belongs.
  • the physical processor 101 having the logical processor group number that matches the logical processor group number of the logical processor group is extracted.
  • the hypervisor 105 acquires the power state information of the logical processor group to which the logical processor 104 to be assigned belongs from the power state history information 117.
  • step ZA2105 the hypervisor 105 acquires the power state information of the logical processor 104 to be assigned to the physical processor 101 next from the logical processor power state table 126.
  • step ZA2106 the hypervisor 105 predicts the power state of the physical processor 101 to which the logical processor 104 is assigned next using the acquired power state information group. Details of the procedure ZA2106 will be described later.
  • step ZA2107 the hypervisor 105 requests the power state changing unit 107 to change to the predicted power state, and the power state changing unit 107 is a physical processor to which the logical processor 104 is assigned based on the predicted power state. 101 changes the power state.
  • FIG. 26 is a detailed flowchart of the power state prediction process (procedure ZA2106 in FIG. 25).
  • the hypervisor 105 refers to the logical processor group mapping information 110, and among the physical processors 101 being executed, there are two or more physical processors 101 belonging to the logical processor group of the assigned logical processor 104. It is determined whether or not.
  • step ZA2206 the hypervisor 105 determines the average power state of the physical processors 101 belonging to the same logical processor group.
  • the value is predicted as the power state when the logical processor 104 to be allocated is allocated to the physical processor 101.
  • the power state of the physical processor 101 is acquired from the physical processor power state table 111.
  • a specific example is the same as that described with reference to FIG. 9C in the description of the procedure ZA2007.
  • step ZA2202 the hypervisor 105 assigns the allocation shown in the power state history information 117
  • the power state change tendency is calculated from the power state information of the logical processor group to which the target logical processor 104 belongs.
  • step ZA2203 it is determined that the power state is increasing in one direction. If any of these shows a tendency that the power state decreases, that is, the voltage or frequency tends to decrease, it is determined in step ZA2203 that the power state is unidirectionally decreasing.
  • the hypervisor 105 physically assigns the logical processor 104 to be allocated. Even when assigned to the processor 101, the power state of the physical processor 101 is set so that the changing direction of the power state is maintained. For example, the prediction is performed by extrapolating the power state of the next physical processor 101 from the power state values for four times. Specifically, the power state of the next physical processor 101 may be predicted by applying the least square method to the power state values for four times. For example, in the case of the example shown in FIG.
  • step ZA2204 the hypervisor 105 Based on the past power state information of the logical processor 104, the power state when the logical processor 104 is allocated to the physical processor 101 is predicted.
  • the hypervisor 105 refers to the power state information acquired from the logical processor power state table 126, and determines the power state of the physical processor 101 when the logical processor 104 to be allocated has been recently allocated to the physical processor 101. Is predicted as a power state when the logical processor 104 is assigned to the physical processor 101.
  • the latest power state of the physical processor 101 of the same logical processor group, the latest power state history of the same logical processor group in the past, and the power state of its own logical processor 104 are appropriately combined to obtain the following By predicting the power state, more appropriate power state prediction control can be applied.
  • FIG. 27 is a diagram showing a logical operation relationship of the multiprocessor system according to the present embodiment.
  • the hypervisor 105 realizes the hypervisor 105 as software, and when the software is executed, the hypervisor 105 functionally includes a logical processor scheduler 115, a power state information determination unit 116, a logical processor group correspondence table 112, and a logical processor.
  • a group power state control table 113 and power state history information 117 are included.
  • the hypervisor 105 and the power state changing unit 107 serve as a power control device.
  • the power control apparatus allocates a plurality of processes on the plurality of logical processors 104 by allocating each of the plurality of logical processors 104 to the physical processor 101 whose power consumption dynamically changes according to the processing amount in a time division manner. In the virtualized processor to be executed, the power consumption of the physical processor 101 is controlled.
  • the plurality of logical processors 104 are grouped into a plurality of logical processor groups.
  • the power state information determination unit 116 is assigned the physical processor 104 to which the logical processor 104 belonging to the target logical processor group that is the logical processor group to which the changed logical processor 104 belongs. Based on the power state information indicating the power consumption of 101, the power state information at the time of allocation of the logical processor 104 after the change to the physical processor 101 is determined.
  • the power state changing unit 107 changes the power supplied to the physical processor 101 based on the power state information determined by the power state information determining unit 116.
  • Each physical processor 101 updates the power state information 109 in accordance with a change in the power state such as the power supply voltage or the operating frequency of the physical processor 101.
  • the logical processor scheduler 115 executes a scheduling process for assigning the logical processor 104 to the physical processor 101.
  • the power state information 109 of the physical processor 101 is written in the power state history information 117. It is.
  • Any number of power state information 109 can be stored in the power state history information 117, and when new writing occurs, the oldest power state information 109 is pushed out and deleted.
  • the power state information determination unit 116 determines from the logical processor group correspondence table 112 that the logical processor 104 to which the logical processor 104 belongs. Identify the group.
  • the power state information determination unit 116 identifies the physical processors 101 having the same logical processor group among the currently executing physical processors 101 based on the logical processor group mapping information 110.
  • the power state information determination unit 116 acquires the power state information 109 from the physical processors 101 having the same logical processor group.
  • the power state information determination unit 116 predicts the next power state based on this information and the power state history information 117 for each logical processor 104 for the newly assigned logical processor 104.
  • the power state information determination unit 116 causes the power state change unit 107 to generate a power state change request based on the predicted power state, and changes the power of the physical processor 101 to which the power state change unit 107 corresponds.
  • FIG. 28 shows the power state of four logical processors 104 (logical processors LP # A0 to LP # A3) in the same logical processor group at a certain time.
  • the processing is heavy because the processor is dragged to the power state of the logical processor 104 not burdening the processing.
  • 104 power state is erroneously predicted to be low.
  • the power state of the logical processor 104 that is lightly processed is erroneously predicted to be high due to being dragged to the power state of the logical processor 104 that is heavyly processed. This is not a good idea for the power state of a multiprocessor system.
  • the OS can manage the number of processes and the idle state of each processor, the reflection of the load state can be realized by cooperating with the hypervisor 105 by diverting the function of the existing OS.
  • the system software designer can suppress the influence of the power state prediction which is not originally desired by prohibiting the power state prediction based on the power state of the logical processor 104 in the logical processor group in advance. .
  • FIG. 29 shows the time transition of the power state on the physical processor 101 of the four logical processors 104 included in a certain logical processor group.
  • the hypervisor 105 predicts the power state of the fourth logical processor 104 based on the power state of the logical processor 104 executing the process 103. . As a result of such prediction, the power state of the fourth logical processor 104 is set lower than the power state in which it has been operating.
  • the process 103 having a single high load is operating, and a power state higher than the predicted power state is required. In some cases, the power state prediction has been missed.
  • a physical processor 101 generates a prediction error in which a predicted power state and a required power state are different from each other within a certain time after the logical processor 104 is assigned to the physical processor 101, the logical processor 104 is assigned to the physical processor 101.
  • the power state prediction is prohibited in the logical processor group to which the selected logical processor 104 belongs. Whether or not the dynamic power state prediction is prohibited can be changed to a prohibited state by a predetermined number of prediction errors. Thereafter, the prediction is permitted again by a setting by software or a predetermined time elapses.
  • logical processors 104 that are correlated with each other, such as executing processing of a similar load, are grouped and assigned to physical processors 101.
  • the power state information of the physical processor 101 to which the logical processor 104 is assigned is determined based on the power state information of the logical processor 104 belonging to the same logical processor group to which the logical processor 104 belongs.
  • the number of physical processors 101 may be one.
  • the power state of the physical processor 101 when the power state of the physical processor 101 is predicted using the power state of the logical processor 104, the power state is predicted by calculation.
  • the present invention is not necessarily limited to this method. Absent.
  • the power state of the logical processor 104 used for prediction is divided into levels, and the power state of the physical processor 101 is determined by referring to table data indicating the power state of the physical processor 101 at the time of startup for each level. May be.
  • the power state information determination unit 116 determines the power state information of the logical processors belonging to the logical processor group indicated by the LP group prediction target LP group information included in the power state control information 114 of FIG. Based on the power state information of a logical processor that is different from the logical processor after the change among the logical processors belonging to the target logical processor group that is the logical processor group to which it belongs, the power state information of the logical processor after the change may be determined. .
  • the power state information determination unit 116 also includes power state information of a logical processor different from the logical processor after the change among the logical processors belonging to the target logical processor group, and the target logic included in the power state control information 114 of FIG. Based on the responsiveness condition information corresponding to the processor group, the changed power state information of the logical processor may be determined such that the higher the responsiveness indicated by the responsiveness condition information is, the higher the power is.
  • the power state information determination unit 116 determines the maximum value that the power state information can take when the emergency processor corresponding to the target logical processor group included in the power state control information 114 in FIG. 22 requires the maximum responsiveness. May be determined as a value indicated by the power state information of the logical processor after the change.
  • the present invention may be the method described above. Further, the present invention may be a computer program that realizes these methods by a computer, or may be a digital signal composed of the computer program.
  • the present invention provides a non-transitory recording medium that can read the computer program or the digital signal, such as a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, a BD ( It may be recorded on a Blu-ray Disc (registered trademark), a semiconductor memory, or the like.
  • the digital signal may be recorded on these non-temporary recording media.
  • the computer program or the digital signal may be transmitted via an electric communication line, a wireless or wired communication line, a network represented by the Internet, a data broadcast, or the like.
  • the present invention may also be a computer system including a microprocessor and a memory.
  • the memory may store the computer program, and the microprocessor may operate according to the computer program.
  • the present invention can be applied to an information processing system including a multiprocessor (including a microprocessor, a microcomputer, a microcontroller, and a digital signal processor).
  • a multiprocessor including a microprocessor, a microcomputer, a microcontroller, and a digital signal processor.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)

Abstract

 複数の論理プロセッサは、複数の論理プロセッサグループにグループ分けされており、電力制御装置は、物理プロセッサ(101)に割り当てられる論理プロセッサが変更されるにあたり、変更後の論理プロセッサが属する論理プロセッサグループである対象論理プロセッサグループに属する論理プロセッサが割り当てられる物理プロセッサ(101)の消費電力を示す電力状態情報に基づいて、変更後の論理プロセッサの物理プロセッサ(101)への割り当て時の電力状態情報を決定する電力状態情報決定部(116)と、電力状態情報決定部(116)が決定した電力状態情報に基づいて、物理プロセッサ(101)へ供給する電力を変更する電力状態変更部(107)とを備える。

Description

電力制御装置及び電力制御方法
 本発明は、マルチプロセッサにおける、物理プロセッサの電力状態を示す電力状態情報を決定する電力制御装置及び電力制御方法に関する。
 近年、デジタルテレビ、ビデオレコーダ又は携帯電話等のデジタル機器において、音声処理、オーディオ処理、動画像処理又は符号化処理などのデジタル処理、GUI(Graphical User Interface)操作、又はインターネット上でのWebブラウザ閲覧対応等の様々な需要が増加している。これら処理の実現の為には、マイクロプロセッサなどの情報処理装置が一般に利用されているが、アプリケーション需要の増大に応じて処理能力を向上するために、プロセッサの動作周波数の向上、マルチスレッド化及びマルチコア化が行われている。
 これら処理の実現の為には、マイクロプロセッサなどの情報処理装置が一般に利用されているが、アプリケーション需要の増大に応じて、回路規模、動作周波数又は搭載プロセッサ数が増加し、消費電力は増加の一途をたどっている。
 消費電力の増加は、エネルギー消費に関する環境問題及びバッテリの動作時間に伴う機器の稼働時間の低下を招く上、熱の発生による誤動作、冷却機器の高コスト化及び長期間使用における信頼性低下などの重大な問題を生じる。
 これに対し従来、消費電力削減のため様々な取り組みが行われており、近年はプロセッサの実行状態の長周期の平均負荷状況に応じて、周波数又は電圧状態を変更する電力制御が行われている(例えば、特許文献1参照)。
 一方、高い処理性能とソフトウェア生産性を低コストで提供する新たな試みとして、マルチプロセッサにおいて複数のOS(Operating System)を稼働させる仮想化マルチプロセッサが実用的になってきている(例えば、特許文献2及び3参照)。
国際公開第2006/117950号 特許第3927533号公報 特許第4181554号公報
 仮想化マルチプロセッサにおいては、各物理プロセッサ上で複数のOSが実行される。このため、各物理プロセッサに複数の論理プロセッサが時分割で割り当てられるが、論理プロセッサ間で処理負荷が異なる場合が想定される。
 しかしながら、従来の電力制御は、物理プロセッサ単位で行われている。このため、同一の物理プロセッサに処理負荷の異なる論理プロセッサが時分割で割り当てられると、論理プロセッサの切り替えに伴う処理負荷の変化に追随することができず、最適な電力制御を行うことができないという課題がある。
 本発明は、上述の課題を解決するためになされたものであり、仮想化されたプロセッサにおいて最適な電力制御を行うことができる電力制御装置を提供することを目的とする。
 本発明のある局面に係る電力制御装置は、複数の論理プロセッサの各々が、処理量に応じて消費電力が動的に変化する物理プロセッサに時分割で割り当てられることにより、前記複数の論理プロセッサ上で複数のプロセスを実行する仮想化されたプロセッサにおいて、前記物理プロセッサの消費電力を制御する電力制御装置であって、前記複数の論理プロセッサは、複数の論理プロセッサグループにグループ分けされており、前記電力制御装置は、前記物理プロセッサに割り当てられる論理プロセッサが変更されるにあたり、変更後の論理プロセッサが属する論理プロセッサグループである対象論理プロセッサグループに属する論理プロセッサが割り当てられる物理プロセッサの消費電力を示す電力状態情報に基づいて、前記変更後の論理プロセッサの前記物理プロセッサへの割り当て時の電力状態情報を決定する電力状態情報決定部と、前記電力状態情報決定部が決定した前記電力状態情報に基づいて、前記物理プロセッサへ供給する電力を変更する電力状態変更部とを備える。
 この構成では、同程度の負荷の処理を実行するなどのように互いに相関のある論理プロセッサ同士をグループ化し、対象論理プロセッサグループに属する論理プロセッサの電力状態情報に基づいて、変更後の論理プロセッサの電力状態情報(変更後の論理プロセッサが割り当てられる物理プロセッサの電力状態情報)を決定している。これにより、各物理プロセッサに時分割で割り当てられる複数の論理プロセッサの間で処理負荷が異なる場合であっても、論理プロセッサの切り替えに伴う処理負荷の変化に追随することができ、最適な電力制御を行うことができる。
 好ましくは、前記電力状態情報決定部は、前記対象論理プロセッサグループに属する論理プロセッサのうち、前記変更後の論理プロセッサとは異なる論理プロセッサの電力状態情報に基づいて、前記変更後の論理プロセッサの電力状態情報を決定する。
 この構成により、複数の論理プロセッサに相関性がある場合に、電力状態情報の相関性を利用した電力状態情報の予測を行うことができる。
 さらに好ましくは、上述の電力制御装置は、さらに、論理プロセッサグループごとに、当該論理プロセッサグループに属する論理プロセッサの電力状態情報を決定するに当たり、当該論理プロセッサグループに属する論理プロセッサのうち、前記物理プロセッサへの割り当て対象とされる論理プロセッサ以外の論理プロセッサの電力状態情報を用いることを許可するか否かを示す論理プロセッサグループ内予測可否情報を記憶している電力状態制御情報記憶部を備え、前記電力状態情報決定部は、前記電力状態制御情報記憶部に記憶されている前記論理プロセッサグループ内予測可否情報を参照し、前記論理プロセッサグループ内予測可否情報が許可している場合にのみ、前記対象論理プロセッサグループに属する論理プロセッサのうち、前記変更後の論理プロセッサとは異なる論理プロセッサの電力状態情報に基づいて、前記変更後の論理プロセッサの電力状態情報を決定する。
 また、前記電力状態情報決定部は、前記異なる論理プロセッサの電力状態情報が示す値の平均を、前記変更後の論理プロセッサの電力状態情報が示す値として決定しても良い。
 また、上述の電力制御装置は、さらに、論理プロセッサグループごとに、当該論理プロセッサグループに属する論理プロセッサの電力状態情報を決定するに当たって参照する当該論理プロセッサグループとは異なる論理プロセッサグループを示す論理プロセッサグループ間予測対象論理プロセッサグループ情報を記憶している電力状態制御情報記憶部を備え、前記電力状態情報決定部は、前記論理プロセッサグループ間予測対象論理プロセッサグループ情報が示す論理プロセッサグループに属する論理プロセッサの電力状態情報と、前記対象論理プロセッサグループに属する論理プロセッサのうち前記変更後の論理プロセッサとは異なる論理プロセッサの電力状態情報とに基づいて、前記変更後の論理プロセッサの電力状態情報を決定しても良い。
 この構成により、対象論理プロセッサグループに含まれる論理プロセッサと相関性を有する他の論理プロセッサグループに含まれる論理プロセッサの電力状態情報を用いて、変更後の論理プロセッサの電力状態情報を決定することができる。例えば、2つの論理プロセッサグループが同種のOS上で動作する論理プロセッサを含んでいる場合に、このような処理は有効である。
 また、前記電力状態情報決定部は、前記変更後の論理プロセッサの過去の電力状態情報に基づいて、前記変更後の論理プロセッサの電力状態情報を決定しても良い。
 対象論理プロセッサグループに属する変更後の論理プロセッサのみが物理プロセッサに割り当てられており、対象論理プロセッサグループに属する変更後の論理プロセッサ以外の論理プロセッサが物理プロセッサに割り当てられていない場合に、少なくとも、変更後の論理プロセッサの過去の電力状態情報を用いて、変更後の論理プロセッサの現在の電力状態情報を決定することにより、予測の誤りを最小限に抑えることができる。
 また、前記電力状態情報決定部は、前記物理プロセッサに割り当てられた前記対象論理プロセッサグループに属する論理プロセッサの過去の電力状態情報が示す値が時間の経過とともに単調に増加又は減少する場合に、前記対象論理プロセッサグループに属する前記論理プロセッサの過去の電力状態情報が示す値を外挿することにより、前記変更後の論理プロセッサの電力状態情報を決定しても良い。
 この構成によると、論理プロセッサグループ内で処理負荷が徐々に増大又は減少している場合に、適切な電力状態情報を決定することができる。
 また、上述の電力制御装置は、さらに、論理プロセッサグループごとに、当該論理プロセッサグループに属する論理プロセッサが前記物理プロセッサに割り当てられた際に決定された前記物理プロセッサの電力状態情報が当たっているか否かを示す電力予測履歴情報を記憶している電力状態制御情報記憶部を備え、前記電力状態情報決定部は、前記電力状態制御情報記憶部に記憶されている前記電力予測履歴情報を参照し、前記対象論理プロセッサグループに対応する前記物理プロセッサの電力状態情報が当たっている場合にのみ、前記変更後の論理プロセッサの電力状態情報を決定しても良い。
 決定した電力状態情報が外れている場合に、電力状態情報の予測を禁止することができる。これにより、不必要に電力状態情報の予測が外れるのを減らしながら、電力状態情報を決定することができる。
 また、上述の電力制御装置は、さらに、論理プロセッサグループごとに、当該論理プロセッサグループに属する論理プロセッサが実行する処理の応答性を示す条件情報を記憶している電力状態制御情報記憶部を備え、前記電力状態情報決定部は、前記対象論理プロセッサグループに属する論理プロセッサのうち、前記変更後の論理プロセッサとは異なる論理プロセッサの電力状態情報と、前記電力状態制御情報記憶部に記憶されている前記対象論理プロセッサグループに対応する前記条件情報とに基づいて、前記条件情報が示す応答性が高いほど電力が大きくなるように前記変更後の論理プロセッサの電力状態情報を決定しても良い。
 高い応答性が求められる論理プロセッサグループの論理プロセッサが物理プロセッサに割り当てられる場合には、電力を大きくするように電力状態情報を決定することにより、条件情報で指定される応答性を反映させた電力状態情報を決定することができる。
 また、上述の電力制御装置は、さらに、論理プロセッサグループごとに、当該論理プロセッサグループに属する論理プロセッサが実行する処理の応答性が最大の応答性を要するか否かを示す緊急プロセッサ該非情報を記憶している電力状態制御情報記憶部を備え、前記電力状態情報決定部は、前記電力状態制御情報記憶部に記憶されている前記対象論理プロセッサグループに対応する前記緊急プロセッサ該非情報が最大の応答性を要する場合に、電力状態情報が取り得る最大値を前記変更後の論理プロセッサの電力状態情報が示す値として決定しても良い。
 この構成によると、最大の応答性が要求される緊急プロセッサに該当する論理プロセッサについては、最大の電力で起動させることができる。
 なお、本発明は、このような特徴的な処理部を備える電力制御装置として実現することができるだけでなく、電力制御装置に含まれる特徴的な処理部が実行する処理をステップとする電力制御方法として実現することができる。また、電力制御装置に含まれる特徴的な処理部としてコンピュータを機能させるためのプログラム又は電力制御方法に含まれる特徴的なステップをコンピュータに実行させるプログラムとして実現することもできる。そして、そのようなプログラムを、CD-ROM(Compact Disc-Read Only Memory)等のコンピュータ読取可能な非一時的な記録媒体やインターネット等の通信ネットワークを介して流通させることができるのは、言うまでもない。
 本発明によると、仮想化されたプロセッサにおいて最適な電力制御を行うことができる。
図1は、単一の物理プロセッサにおける一般的なソフトウェア構造を示す図である。 図2は、単一の物理プロセッサにおける電力制御の時間遷移例を示すブロック図である。 図3は、複数の物理プロセッサを備えるマルチプロセッサにおける一般的なソフトウェア構造を示す図である。 図4は、マルチプロセッサにおける電力制御の時間遷移例を示す図である。 図5は、仮想化マルチプロセッサにおける一般的なソフトウェア構造を示す図である。 図6は、仮想化マルチプロセッサにおける論理プロセッサの割当の時間遷移例を示す図である。 図7は、デジタル民生機器用のシステムLSIの構成を示すブロック図である。 図8は、システムLSIの各プロセッサにおける処理負荷状況例を示すである。 図9Aは、図5に示した仮想化マルチプロセッサにおけるドメインAの論理プロセッサの電力状態情報の時間遷移例を示す図である。 図9Bは、図5に示した仮想化マルチプロセッサにおけるドメインBの論理プロセッサの電力状態情報の時間遷移例を示す図である。 図9Cは、図5に示した仮想化マルチプロセッサにおける物理プロセッサの電力状態情報の時間遷移例を示す図である。 図10は、全処理量が単調増加している場合の論理プロセッサ群における電力制御の時間遷移例を示す図である。 図11は、本発明の実施の形態に係る仮想化されたマルチプロセッサを含むマルチプロセッサシステムのハードウェア構成を示すブロック図である。 図12は、論理プロセッサグループマッピング情報の構成例を示す図である。 図13は、物理プロセッサ電力状態表の構成例を示す図である。 図14は、物理プロセッサ電力状態表の一例を示す図である。 図15は、論理プロセッサ電力状態表の構成例を示す図である。 図16は、論理プロセッサ電力状態表の一例を示す図である。 図17は、電力状態変更装置を構成する電圧制御装置の構成例を示す図である。 図18は、電力状態変更装置を構成するクロック制御装置の構成例を示す図である。 図19は、図11に示したマルチプロセッサシステムによる電力制御方法に関するソフトウェア構造を示す階層図である。 図20は、論理プロセッサグループ対応表の構成例を示す図である。 図21は、論理プロセッサグループ電力状態制御表の構成例を示す図である。 図22は、論理プロセッサグループ電力状態制御表の電力状態制御情報の構成例を示す図である。 図23は、電力状態履歴情報の一例を示す図である。 図24は、本発明の実施の形態に係るマルチプロセッサシステムにおける電力制御方法のフローチャートである。 図25は、本発明の実施の形態に係るマルチプロセッサシステムにおける電力制御方法の他のフローチャートである。 図26は、電力状態予測処理(図25の手順ZA2106)の詳細なフローチャートである。 図27は、本発明の実施の形態に係るマルチプロセッサシステムの論理的な制御構造を示すブロック図である。 図28は、同一の論理プロセッサグループに含まれる論理プロセッサの電力状態情報を示す図である。 図29は、論理プロセッサの電力制御の時間遷移例を示す図である。
 本実施の形態に係るマルチプロセッサについて説明する前に、本発明を行うに至った背景について説明する。
 図1は、単一の物理プロセッサ(Physical Processor)における一般的なソフトウェア構造を示す図である。図2は、単一の物理プロセッサにおける電力制御の時間遷移例を示す図である。
 図1に示すように、物理プロセッサ101上ではOS(Operating System)102が実行され、OS102が資源管理を行い、物理プロセッサ101の資源をソフトウェア実行体であるプロセス103に提供する。つまり、OS102は、複数のプロセス103(プロセスP0~Pn)のうちのいずれか1つを物理プロセッサ101に時分割で割り当てる。これにより、プロセス103が物理プロセッサ101上で、時分割で実行される。
 物理プロセッサ101上で実行されるプロセス103の処理状況に応じて、物理プロセッサ101で必要とされる周波数やメモリなどの物理資源が変化する。例えば、プロセス103の処理量が大きい場合や高速な応答が求められる場合には、物理プロセッサ101の動作周波数を大きくしたり物理プロセッサ101が利用するメモリの容量を大きくしたりする必要がある。
 この際、物理プロセッサ101上の処理負荷に応じて、物理プロセッサ101の周波数や物理プロセッサ101の電源電圧などの電力条件を変化させることで、物理プロセッサ101の消費電力の削減を図ることが一般的に行われる。
 例えば、図2に示すように、物理プロセッサ101自身の現在の処理負荷状況や過去の処理負荷状況から、次の電力状態情報を予測的に変化させる。このような方法により、より積極的で効果的な電力制御を実現することが可能となっている。なお、本実施の形態において電力状態情報は、物理プロセッサの動作電圧及び動作周波数のそれぞれと一対一に対応付けられる値(以下、「電力状態」という。)を含むものとし、電力状態が高くなるにつれ(電力状態が大きくなるにつれ)、物理プロセッサの動作電圧及び動作周波数が大きくなるものとする。
 なお、動的に周波数や電圧を可変にする電力制御は、リアルタイム性の実現に課題を与える。このため、デジタルテレビや携帯電話などのようにリアルタイム性が要求される機器においては、これが阻害されないような電力制御の実現が不可欠となる。
 また近年はプロセッサの処理能力を増大させるために、プロセッサにおいてマルチプロセッサ構成を採ることが多くなってきている。図3は、複数の物理プロセッサを備えるマルチプロセッサにおける一般的なソフトウェア構造を示す図である。図4は、マルチプロセッサにおける電力制御の時間遷移例を示す図である。
 図3に示すように、複数の物理プロセッサ101(物理プロセッサPP#0~PP#3)を共通に管理するマルチプロセッサ用のOS102上で複数のプロセス103(プロセスP0~Pn)が実行される。各々の物理プロセッサ101上では、OS102が割当てたプロセス103が実行される。
 このようなマルチプロセッサにおいては、図2に示したような単一プロセッサを前提とした電力制御方法に加えて、図4に示すようなより積極的な電力制御が可能となる。つまり、各物理プロセッサ101の電力制御において、他の物理プロセッサ101の電力状態を反映させることで、より最新の時刻情報を活かしながら、効果的な電力制御が可能となる。
 具体的には、例えば図4のように、3つの物理プロセッサPP#0~PP#2が、処理負荷が高いために高い電力状態で稼働しているものとする。そこへ4つ目の物理プロセッサPP#3を、マルチプロセッサ全体の処理量を低減させる目的で起床させる場合について説明する。
 この場合、物理プロセッサPP#3の現在と過去の電力状態から、次の物理プロセッサPP#3の電力状態を予測しても、物理プロセッサPP#3はこれまで停止していた。このため、物理プロセッサPP#3を一度に高負荷の処理が可能な電力状態に遷移させる予測はできない。そこで、同時刻帯に稼働している他の物理プロセッサPP#0~PP#2の電力状態を参照することにより、物理プロセッサPP#3の電力状態を予測すれば、より素早く適切な電力状態に遷移させる事が可能となる。例えば、他の物理プロセッサPP#0~PP#2の電力状態の平均値を物理プロセッサPP#3の電力状態として予測することにより、物理プロセッサPP#3を高負荷の処理が可能な電力状態で起動させることができる。
 このように、マルチプロセッサにおいては、電力状態の予測対象となっている物理プロセッサ101と相関のある他の物理プロセッサ101の電力状態を用いて、予測対象となっている物理プロセッサ101の電力状態を予測することができる。なお、互いに相関する物理プロセッサ101とは、処理負荷、処理に対して要求される応答性、又は処理内容などの処理の特性が類似する物理プロセッサ101同士のことを言う。
 次に、仮想化マルチプロセッサについて説明する。
 図5は、仮想化マルチプロセッサにおける一般的なソフトウェア構造を示す図である。ここでは2つのOSドメインが存在する場合を例示している。
 各々のOS102は、論理プロセッサ(Logical Processor)104又は仮想プロセッサ(Virtual Processor)104と呼ばれる仮想的なプロセッサ上で稼働し、各々の論理プロセッサ104はあたかも自分が物理プロセッサ101を占有して以下のように動作する。
 論理プロセッサ104は、ハイパーバイザ(Hypervisor)105又はバーチャルマシンモニタ(Virtual Machine Monitor)105と呼ばれる、仮想化レイヤのソフトウェア又はハードウェア又は両者の協調動作によって、物理プロセッサ101に時分割的に割り当てられる。
 例えば、図5に示されるように、4つの論理プロセッサ104(論理プロセッサLP#A0~LP#A3)上でドメインAのOS102が稼働し、4つの論理プロセッサ104(論理プロセッサLP#B4~LP#B7)上でドメインBのOS102が稼働する。
 ドメインAのOS102は、プロセスPa0~Panを論理プロセッサLP#A0~#A3に割り当て、ドメインBのOS102は、プロセスPb0~Pbnを論理プロセッサLP#B4~#B7に割り当てる。
 ハイパーバイザ105は、4つの物理プロセッサ101に、8つの論理プロセッサ104を時分割で切り替えながら割り当てる。これにより、2つのOS102上で実行されるプロセス103を時分割で実行する。
 図6には、各々の論理プロセッサ104が、時分割で物理プロセッサ101に割当てられる様子を示す。例えば、物理プロセッサPP#0には、ハイパーバイザ105により論理プロセッサLP#A0が割り当てられており、その後、ハイパーバイザ105により論理プロセッサLP#B5が割り当てられることが示されている。
 また、近年のLSI(Large Scale Integration)は高度に集積化され、システムの大きな部分をLSIに集積できるに至っている。
 図7に、デジタル民生機器用のシステムLSIの例を示す。本例に示すように、近年のシステムLSIには、構造や用途が異なる多数のプロセッサが集積されている。各プロセッサは各々の処理に最適に設計されており、その分野において最大の能力を提供する。
 例えば、図7に示すシステムLSI106には、ユーザインタフェースCPU、デバイスコントローラプロセッサ、ビデオDSP、オーディオDSPなどの多数の物理プロセッサ101が集積されている。
 しかしながら、各物理プロセッサ101は常に最大の処理能力で稼働する訳ではない。図8に一例を示すように、インターネットのWebブラウザ閲覧時や、デジタルTVなどのAV(Audio/Visual)視聴時や、ネットワークの待機状態では、それぞれのプロセッサ群の稼働割合は異なる。つまり、図8(a)に示すようにインターネットのWebブラウザ閲覧時には、ユーザインタフェースCPUの処理負荷が大きくなるが、その他のCPUの処理負荷は小さい。また、図8(b)に示すようにAV視聴時にはビデオDSP及びオーディオDSPの処理負荷が大きくなるが、その他のCPUの処理負荷は小さい。さらに、図8(c)に示すようにネットワークの待機状態では、すべてのCPUの処理負荷が小さい。
 システムでは各プロセッサ群が個別に最大処理を必要とする能力を供給すべく実装されており、一般的にはコストが大きくなるという課題を誘発する。
 このコスト課題と性能供給を解決する策として、先に述べた仮想化システムが適用されつつある。すなわち、図5のような仮想化マルチプロセッサを用いて、低コストながら高性能なシステムを構築する事ができる。
 しかしながら、仮想化マルチプロセッサにおいては、異なる処理負荷や処理特性をもつ複数のOSドメイン上の処理が混在して物理プロセッサ101群上で実行される。このため、効率の良い電力制御による消費電力削減を行うことができない。
 例えば、先に図4で示したような他の物理プロセッサ101の現在の稼働状況を利用して電力状態を予測することによる積極的な電力削減を行うことができない。以下、この理由について説明する。
 例えば、図5のように2つのOSドメインが存在する仮想化マルチプロセッサを考える。2つのOSドメインのうち、ドメインAのOS102で実行されるプロセス103の処理は軽く、ドメインBのOS102で実行されるプロセス103の処理は重い状態を考える。図9Aは、ドメインAの論理プロセッサの電力状態の時間遷移例を示す図である。図9Bは、ドメインBの論理プロセッサの電力状態の時間遷移例を示す図である。図9A及び図9Bともに、横軸は時間を示し、縦軸は電力状態を示す。図9Aに示すように論理プロセッサLP#A0~LP#A3で実行されるプロセス103の処理は軽く、図9Bに示すように論理プロセッサLP#B4~LP#B7で実行されるプロセス103の処理は重いものとする。
 図9Cは、物理プロセッサ101の電力状態の時間遷移例を示す図である。横軸及び縦軸は、図9A及び図9Bに示したものと同じである。
 ここでは、物理プロセッサPP#0に、高負荷なドメインBの論理プロセッサLP#B5が割り当てられており、物理プロセッサPP#1~PP#3に、低負荷なOSドメインAの論理プロセッサLP#A0~#A2がそれぞれ割り当てられている時間帯を考える。
 このとき、物理プロセッサPP#1に割り当てられる論理プロセッサが、低負荷なOSドメインAの論理プロセッサLP#A0から高負荷なOAドメインBの論理プロセッサLP#B4に変化するものとする。この場合に、図4で示したような物理プロセッサ101間の相関を使用した電力状態予測を適用すると、本来は適切ではない電力制御が行われることになる。つまり、物理プロセッサPP#1には高負荷なOAドメインBの論理プロセッサLP#B4が割り当てられるため、本来、高い電力状態901で動作を開始するのが望ましい。しかし、物理プロセッサ101間の相関を利用して電力状態予測を行うと、物理プロセッサPP#1~PP#3の低い電力状態の影響を強く受け、低い電力状態902を予測してしまう。例えば、物理プロセッサPP#0の高い電力状態と、物理プロセッサPP#1~PP#3の低い電力状態との平均により、物理プロセッサPP#1の電力状態を予測すると、低い電力状態902を予測してしまう。
 このような予測を行ってしまうと、不要な周波数低減及び電圧低減が発生する。これは必要な処理能力を物理プロセッサ101に供給することを妨げるため、処理の応答性及びリアルタイム性の悪化を招いてしまう。
 他の電力状態の制御方法としては、論理プロセッサ104毎に自身の論理プロセッサ104に関する電力状態を保持し、例えば前回実行時の最後の電力状態を用いて、今回の物理プロセッサ101への割当て時の電力状態の予測値とする方法が考えられる。
 これは単一の論理プロセッサ104の予測方式として適切であるが、複数の論理プロセッサ104間で電力状態が相関をもつ場合には、その相関を利用する事ができない。
 例えば、図10に示すように、3つの論理プロセッサLP#A0~LP#A2が同一OSドメインで稼働し、物理プロセッサPP#0上で動作しているものとする。これは、SMP(対称マルチプロセッサ)上において汎用OSが稼働している場合に相当する。
 図10(a)に示すように、時間の進行とともにあるOS全体で処理しなければならないプロセス数が増大するなどの理由により負荷が増大する場合、前回起動時の終了時の自身の論理プロセッサ104の電力状態は、OS全体としての最新の状態は反映していない。つまり、図10(c)に示すように、物理プロセッサPP#0に、論理プロセッサLP#A0、論理プロセッサLP#A1、論理プロセッサLP#A2の順に論理プロセッサ104が割り当てられ、再度、論理プロセッサLP#A0が割り当てられるものとする。この場合、図10(b)に示すように、前回起動時の終了時の論理プロセッサLP#A0の電力状態1002を、今回起動時の論理プロセッサLP#A0の電力状態1001とすると、電力状態の予測に失敗してしまう。
 つまり、論理プロセッサLP#A0が再び物理プロセッサPP#0に割当てられる時に、OS全体としてより的確な負荷状態を反映した電力状態は、論理プロセッサLP#A2の電力状態1003である。しかしながら、前回の論理プロセッサLP#A0の電力状態1002を使用すると、OS全体としては、適切な電力で早く処理全体を終わらせる方が有利であるにも関わらず、この最新のOSの状態を反映させる事ができない。
 このように、電力制御が論理プロセッサ104単位、又は物理プロセッサ101単位で行われる限り、システム全体を考慮した消費電力の削減は充分に行うことができない。
 以下、本発明の実施の形態を、図面を参照して詳しく説明する。なお、図面において同一又は相当する部分には同一の参照符号を付してその説明は繰り返さない。
 図11は、本発明の実施の形態に係る仮想化されたマルチプロセッサを含むマルチプロセッサシステムのハードウェア構成を示すブロック図である。本実施の形態におけるマルチプロセッサは、マイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ及びディジタル・シグナル・プロセッサを含むものとする。
 マルチプロセッサシステムは、複数の物理プロセッサ101(物理プロセッサPP#0~PP#3)と、複数のレベル1キャッシュ121と、レベル2キャッシュ及び共有バス122と、電力状態変更部107と、入出力装置123と、記憶装置124と、外部装置125とを備える。このうち、複数の物理プロセッサ101と、複数のレベル1キャッシュ121と、レベル2キャッシュ及び共有バス122とがマルチプロセッサを構成する。ただし、その他の構成部がマルチプロセッサに加えられていても良い。
 複数の物理プロセッサ101は、レベル2キャッシュ及び共有バス122を経由して互いに接続されている。各物理プロセッサ101には、レベル1キャッシュ121が接続されている。また、物理プロセッサ101は、レベル2キャッシュ及び共有バス122を経由して、電力状態変更部107、入出力装置123、記憶装置124、及びその他の外部装置125と接続されている。
 各物理プロセッサ101は、当該物理プロセッサ101に割り当てられる論理プロセッサ104が属している論理プロセッサグループを識別するための論理プロセッサグループ識別情報108を保持している。これにより、各物理プロセッサ101は、当該物理プロセッサ101にいずれの論理プロセッサグループの論理プロセッサ104が割当てられているかを確認することができる。論理プロセッサグループは、予め定められており、同じプロセッサグループに属する論理プロセッサ104が実行する処理は、処理負荷、処理に対して要求される応答性、又は処理内容などの処理の特性が類似するように決定される。
 また、各物理プロセッサ101は、電力状態情報109が示す電力状態に対応付けられた動作電圧及び動作周波数に従い、動作しているものとする。
 なお、物理プロセッサ101と論理プロセッサグループとの対応関係を示すデータを、記憶装置124に記憶するようにしても良い。図12は、物理プロセッサ101と論理プロセッサグループとの対応関係を示すデータである論理プロセッサグループマッピング情報の一例を示す図である。
 論理プロセッサグループマッピング情報110は、物理プロセッサ101ごとに、その物理プロセッサ101に割り当てられている論理プロセッサ104の属する論理プロセッサグループの番号を記憶している情報である。図12に示す論理プロセッサグループマッピング情報110によると、物理プロセッサPP#0、PP#2及びPP#3には、番号が1番の論理プロセッサグループに属する論理プロセッサ104が割り当てられており、物理プロセッサPP#1には、番号が0番の論理プロセッサグループに属する論理プロセッサ104が割り当てられていることが示されている。
 論理プロセッサグループマッピング情報110と同様に、図13に示すような物理プロセッサ101ごとに電力状態情報109を示した物理プロセッサ電力状態表111を記憶装置124に記憶するようにしても良い。
 図14は、物理プロセッサ電力状態表111の一例を示す図である。各物理プロセッサ101の電力状態情報109は、論理プロセッサ104の割り当て開始時の電力状態と、論理プロセッサ104の割り当て終了時の電力状態と、論理プロセッサ104が割り当てられていた時間における平均の電力状態とを含む。
 また、記憶装置124には、図15に示すような論理プロセッサ104ごとの電力状態情報を示した論理プロセッサ電力状態表126が記憶されているものとする。論理プロセッサ104の電力状態とは、論理プロセッサ104に現在割り当てられている物理プロセッサ101又は最も時間的に近くに割り当てられた物理プロセッサ101の電力状態のことである。
 図16は、論理プロセッサ電力状態表126の一例を示す図である。各論理プロセッサ104の電力状態情報は、論理プロセッサ104の割り当て開始時の電力状態と、論理プロセッサ104の割り当て終了時の電力状態と、論理プロセッサ104が割り当てられていた時間における平均の電力状態とを含む。
 電力状態変更部107は、外部からの電力状態の変更要求に従って、各物理プロセッサ101の電力状態を変更する。
 図17と図18には、電力状態変更部107の一例を示す。図17は、与えられた電源電圧条件や閾値電圧条件に対し、DC-DCコンバータを用いて供給電圧を変更する回路例である。図18は、クロック周波数情報としての逓倍率条件と分周率条件により、供給クロックを変更する回路例である。
 つまり、各回路は、受け取った電力状態変更要求情報をもとに、各物理プロセッサ101に対する電圧値の変更又はクロック周波数の変更を行う。電力状態変更部107は、物理プロセッサ101群と同一のLSI上に実装されても良いし、LSI外部に実装されても良い。
 また、電力状態変更部107に対する電力状態の変更要求は、ハードウェアにより行われても良いし、ソフトウェアにより行われても良い。
 図19は、図11に示したマルチプロセッサシステムによる電力制御方法に関するソフトウェア構造を示す階層図である。
 この階層図は、図5に示した仮想化マルチプロセッサにおけるソフトウェア構造を示す図と同じである。
 なお、ハイパーバイザ105は、論理プロセッサグループ対応表112と、論理プロセッサグループ電力状態制御表113と、電力状態履歴情報117と、論理プロセッサ電力状態表126と、論理プロセッサグループマッピング情報110と、物理プロセッサ電力状態表111とを有する。これらの情報は、記憶装置124に記憶されている。
 論理プロセッサグループ対応表112は、図20に示すように、論理プロセッサ104と論理プロセッサグループとを対応付けるデータであある。図20の例によると、論理プロセッサLP#A0~LP#A3がグループ番号0番の論理プロセッサグループ(論理プロセッサグループ0)に属し、論理プロセッサLP#B4~LP#B7がグループ番号1番の論理プロセッサグループ(論理プロセッサグループ1)に属している。
 一般的には、あるOSドメインに属する論理プロセッサ104が共通の論理プロセッサグループに属するように論理プロセッサグループを設定する。
 但し、システムの処理特性によっては、OSドメイン内の論理プロセッサ104が複数の論理プロセッサグループに属するように論理プロセッサグループを設定したり、複数のOS内の論理プロセッサ104を共通の論理プロセッサグループに属するように論理プロセッサグループを設定したりすることも可能である。
 例えば、ソフトウェア保守性やセキュリティの観点から、8つの論理プロセッサ104を4つの論理プロセッサ104からなる2つの汎用OSドメインに分割するが、電力制御は共通に適用したいケースも存在する。このような場合には、1つの論理プロセッサグループに8つの論理プロセッサ104が属するように論理プロセッサグループを設定すれば良い。
 逆に、あるOSドメイン内において、特定の論理プロセッサ104のみ、電力制御特性を区別したいケースも存在する。このような場合には、特定の論理プロセッサ104のみが属する論理プロセッサグループを設定すれば良い。
 このように、システムの特性によって、論理プロセッサ104と論理プロセッサグループとの関係を任意に設定可能とする。
 図21には、論理プロセッサグループ電力状態制御表113の例を示す。論理プロセッサグループ電力状態制御表113は、論理プロセッサグループごとに、電力状態制御情報114を記憶しているデータである。電力状態制御情報114は、論理プロセッサグループの電力状態及び電力制御仕様を示すデータである。
 図22は、電力状態制御情報114の一例を示す図である。
 電力状態制御情報114は、電圧状態情報と、クロック状態情報と、LPグループ内予測可否情報と、LPグループ間予測対象LPグループ情報と、電力予測履歴情報と、電力制御禁止情報と、電力制御変化幅情報と、応答性条件情報と、電力上限条件情報と、緊急プロセッサ該非情報と、最小プロセッサ条件情報とを含む。
 電圧状態情報は、着目している論理プロセッサグループに含まれる論理プロセッサの電力状態を示す情報である。例えば、電圧状態情報は、電源電圧や閾値電圧を含む。
 クロック状態情報は、着目している論理プロセッサグループに含まれる論理プロセッサのクロック状態を示す情報である。クロック状態情報は、例えば、クロック周波数や現在のクロックが停止しているか否かに関する情報を含む。
 LPグループ内予測可否情報は、着目している論理プロセッサグループに含まれる論理プロセッサ104の電力状態に基づいて、電力状態の予測を行うか否かを示す情報である。
 LPグループ間予測対象LPグループ情報は、電力状態の予測を行う際に着目している論理プロセッサグループと同一の論理プロセッサグループとみなす他の論理プロセッサグループの識別情報である。例えば、マルチプロセッサ上で3つのOSが動作している場合に、そのうちの2つが同一の種類のOSで他の1つがそれとは異なる種類のOSの場合であって、OSごとに論理プロセッサグループが設定されている場合には、同一の種類のOSに対応する2つの論理プロセッサグループを同一の論理プロセッサグループとみなす。
 電力予測履歴情報は、着目している論理プロセッサグループに属する論理プロセッサに対する電力状態の予測が当たっていたか否かを示す情報である。なお、予測した電力状態で論理プロセッサが割り付けられた物理プロセッサを動作させた際に、その後の一定時間の間、予測した電力状態が保たれていれば予測が当たっていると判断され、上記一定時間の間に電力状態が変更されると予測が外れたと判断される。
 電力制御禁止情報は、電力状態の予測を禁止するか否かを示すフラグ情報である。
 電力制御変化幅情報は、電力を変化させるときの変化幅を示す情報である。この変化幅を小さく設定すれば、電力変化の応答性が悪くなるが、決め細やかな制御が可能となる。一方、変化幅を大きく設定すれば、決め細やかな制御がし難くなるが、電力変化の応答性が良くなる。
 応答性条件情報は、電力制御の際の応答性のレベルを示す情報である。高い応答性が望まれるレベルの場合には、電圧及び周波数を下げる際にはゆっくりと下げ、上げる際には急激に上げる制御が行われる。これにより、電圧及び周波数をできるだけ上げようとするため、着目している論理プロセッサグループに属する論理プロセッサ104が割り当てられる物理プロセッサ101の応答性を高くすることができる。なお、高い応答性が望まれるレベルの場合に、電力を変化されるときの変化幅を大きくするようにしても良い。
 電力上限条件情報は、電力制御の際の電力の上限値を示す情報である。電力の上限値を小さく設定することにより、上記物理プロセッサ101を低電力で動作させることができる。
 緊急プロセッサ該非情報は、着目している論理プロセッサグループに属する論理プロセッサ104が緊急プロセッサに該当するか否かを示す情報である。緊急プロセッサとは、最大の応答性が必要とされるプロセッサのことであり、緊急プロセッサに該当する論理プロセッサ104が物理プロセッサ101に割り当てられる際には、その物理プロセッサ101の電圧及び周波数を最大にするような電力状態の制御が行われる。
 最小プロセッサ条件情報は、複数の物理プロセッサ101に同時に割り当てる論理プロセッサ104の最大個数を示す情報である。着目している論理プロセッサグループに属する論理プロセッサ104が実行するプロセス103の処理負荷が低く、高い応答性を要求しない場合には、最大個数を小さく設定する。これにより、無駄に物理プロセッサ101が稼働することを防ぐことができ、物理プロセッサ101が稼働していない間、電力を停止させることができる。
 ハイパーバイザ105は、以上説明した電力状態制御情報114に含まれる各情報に基づいて、物理プロセッサ101に対する電力制御を行う。
 なお、ハイパーバイザ105は、ソフトウェア又はハードウェアにより構成されていても良いし、両者の協調動作によって処理を実行するようにソフトウェア及びハードウェアにより構成されていても良い。
 図23は、電力状態履歴情報117の一例を示す図である。
 電力状態履歴情報117は、論理プロセッサグループごとに、FIFO形式で電力状態情報を記憶している。図23に示す例では、4つの電力状態情報(電力状態情報N-1~N-4)が履歴として記憶されている。各電力状態情報は、論理プロセッサ104の割り当て開始時の電力状態と、論理プロセッサ104の割り当て終了時の電力状態と、論理プロセッサ104が割り当てられていた時間における平均の電力状態と、論理プロセッサ104が割り当てられていた時間とを示す情報を含む。
 図24は、本実施の形態に係るマルチプロセッサシステムにおける電力制御方法のフローチャートである。
 手順ZA2001において、ハイパーバイザ105は、次に物理プロセッサ101に割当てるべき論理プロセッサ104を決定する。論理プロセッサ104の決定は、スケジューリング処理により行なわれ、本願の主眼ではないため、その詳細な説明は省略する。
 手順ZA2002では、ハイパーバイザ105は、次に物理プロセッサ101に割当てるべき論理プロセッサ104の電力状態情報を、論理プロセッサ電力状態表126から取得する。
 手順ZA2003で、ハイパーバイザ105は、論理プロセッサグループマッピング情報110を参照し、次に物理プロセッサ101に割当てるべき論理プロセッサ104が属する論理プロセッサグループの論理プロセッサグループ番号と一致する論理プロセッサグループ番号を有する物理プロセッサ101を抽出する。
 続く手順ZA2004にて、ハイパーバイザ105は、物理プロセッサ電力状態表111から、抽出した物理プロセッサ101についての、電力状態情報109を取得する。
 手順ZA2005では、ハイパーバイザ105は、次に物理プロセッサ101に割当てるべき論理プロセッサ104と論理プロセッサグループが一致する物理プロセッサ101が存在するかを判定する。つまり、ハイパーバイザ105は、手順ZA2003で物理プロセッサ101が抽出できた場合には存在すると判定し、抽出できなかった場合には存在しないと判定する。
 次に物理プロセッサ101に割当てるべき論理プロセッサ104と論理プロセッサグループが一致する物理プロセッサ101が存在しない場合には(手順ZA2005でNO)、手順ZA2006において、ハイパーバイザ105は、割り当て対象の論理プロセッサ104の過去の電力状態情報に基づいて、論理プロセッサ104を物理プロセッサ101に割当てる際の電力状態を予測する。例えば、ハイパーバイザ105は、論理プロセッサ電力状態表126から取得した電力状態情報を参照し、割り当て対象の論理プロセッサ104が物理プロセッサ101に最近割り当てられた際の物理プロセッサ101の電力状態を、割り当て対象の論理プロセッサ104を物理プロセッサ101に割り当てる際の電力状態として予測する。
 次に物理プロセッサ101に割当てるべき論理プロセッサ104と論理プロセッサグループが一致する物理プロセッサ101が存在する場合には(手順ZA2005でYES)、手順ZA2007において、ハイパーバイザ105は、手順ZA2004で取得された物理プロセッサ101の電力状態情報109から、割り当て対象の論理プロセッサ104を物理プロセッサ101に割り当てる際の電力状態を予測する。例えば、ハイパーバイザ105は、物理プロセッサの電力状態の平均値を、割り当て対象の論理プロセッサ104を物理プロセッサ101に割り当てる際の電力状態として予測する。
 例えば、図9Cにおいて、論理プロセッサLP#B4が物理プロセッサPP#1に割り当てられる場合を考えると、論理プロセッサLP#B4と論理プロセッサグループが一致する物理プロセッサ101は物理プロセッサPP#0のみである。このため、物理プロセッサPP#0電力状態が、論理プロセッサLP#B4を物理プロセッサPP#1に割り当てられる際の電力状態として予測される。
 なお、電力状態の予測の際に、物理プロセッサの電力状態のみならず、割り当て対象の論理プロセッサ104の電力状態を用いて予測を行っても良い。
 手順ZA2008では、ハイパーバイザ105が電力状態変更部107に対して予測した電力状態への変更要求を行い、電力状態変更部107が、予測した電力状態に基づいて、論理プロセッサ104が割り当てられる物理プロセッサ101の電力状態を変更する。
 図25は、本実施の形態に係るマルチプロセッサシステムにおける電力制御方法の他のフローチャートである。図24に示す電力制御方法及び図25に示す電力制御方法は、択一的に実施される。どちらの電力制御方法を実施するかは、マルチプロセッサシステムの設計による。
 手順ZA2100において、ハイパーバイザ105は、次に物理プロセッサ101に割当てるべき論理プロセッサ104を決定する。論理プロセッサ104の決定は、スケジューリング処理により行なわれ、本願の主眼ではないため、その詳細な説明は省略する。
 手順ZA2101において、ハイパーバイザ105は、論理プロセッサグループ電力状態制御表113から、割り当て対象の論理プロセッサ104が属する論理プロセッサグループの電力状態制御情報114を取得する。ハイパーバイザ105は、取得した電力状態制御情報114のうちLPグループ内予測可否情報を参照し、論理プロセッサグループ内の論理プロセッサ104間の電力状態予測が禁止されているか否かを判別する。
 論理プロセッサ104間の電力状態予測が禁止されている場合には(手順ZA2101でYES)、ハイパーバイザ105は、電力状態変更部107に対して電力状態の変更要求を行わず、現在の物理プロセッサ101の電力状態を維持する。
 論理プロセッサ104間の電力状態予測が禁止されていない場合には(手順ZA2101でNO)、手順ZA2102において、ハイパーバイザ105は、手順ZA2101で取得した電力状態制御情報114のうち、電力予測履歴情報を参照し、上記論理プロセッサグループに属する論理プロセッサ104の電力状態の予測が外れているか否かを判断する。
 電力状態の予測が外れていることにより電力状態予測による電力制御が禁止されている期間である場合には(手順ZA2101でYES)、ハイパーバイザ105は、電力状態変更部107に対して電力状態の変更要求を行わず、現在の物理プロセッサ101の電力状態を維持する。
 電力状態の予測が当たっている場合には(手順ZA2101でNO)、手順ZA2103において、ハイパーバイザ105は、論理プロセッサグループマッピング情報110を参照し、次に物理プロセッサ101に割当てるべき論理プロセッサ104が属する論理プロセッサグループの論理プロセッサグループ番号と一致する論理プロセッサグループ番号を有する物理プロセッサ101を抽出する。
 続く手順ZA2104で、ハイパーバイザ105は、電力状態履歴情報117から、割り当て対象の論理プロセッサ104が属する論理プロセッサグループの電力状態情報を取得する。
 手順ZA2105では、ハイパーバイザ105は、次に物理プロセッサ101に割当てるべき論理プロセッサ104の電力状態情報を、論理プロセッサ電力状態表126から取得する。
 手順ZA2106で、ハイパーバイザ105は、取得した電力状態情報群を用いて、次に論理プロセッサ104が割り当てられる物理プロセッサ101の電力状態を予測する。手順ZA2106の詳細については後述する。
 手順ZA2107で、ハイパーバイザ105は、電力状態変更部107に対して予測した電力状態への変更要求を行い、電力状態変更部107は、予測した電力状態に基づき、論理プロセッサ104が割り当てられる物理プロセッサ101の電力状態を変更する。
 図26は、電力状態予測処理(図25の手順ZA2106)の詳細なフローチャートである。
 手順ZA2201において、ハイパーバイザ105は、論理プロセッサグループマッピング情報110を参照し、実行中の物理プロセッサ101のうち、割り当てられている論理プロセッサ104の論理プロセッサグループに属する物理プロセッサ101が2つ以上存在するか否かを判定する。
 同一の論理プロセッサグループに属する物理プロセッサ101が2つ以上存在する場合は(手順ZA2201でYES)、手順ZA2206にて、ハイパーバイザ105は、同一の論理プロセッサグループに属する物理プロセッサ101の電力状態の平均値を、割り当て対象の論理プロセッサ104を物理プロセッサ101に割り当てる際の電力状態として予測する。なお、物理プロセッサ101の電力状態は、物理プロセッサ電力状態表111から取得する。具体例は、手順ZA2007の説明において図9Cを参照して説明したものと同様である。
 ここでは瞬時的な電力状態の誤差の影響を取り除くために論理プロセッサグループが同一の物理プロセッサ101が2つ以上存在するか否かを判定基準にしたが、これは一例である。また、平均値による電力状態の予測例を示したが、重みづけ演算を行うなど、電力状態の予測には、システムに適した任意の方法を選択することが可能である。
 同一の論理プロセッサグループに属する物理プロセッサ101が1つしか存在しない場合又は全く存在しない場合は(手順ZA2201でNO)、手順ZA2202で、ハイパーバイザ105は、電力状態履歴情報117に示されている割り当て対象の論理プロセッサ104が属する論理プロセッサグループの電力状態情報から、電力状態の変化傾向を算出する。
 例えば、電力状態履歴情報117に過去の4回分の履歴が記録されており、時間の経過につれて、そのいずれもが電力状態が増加する、すなわち電圧又は周波数が大きくなる傾向を示している場合は、手順ZA2203にて電力状態が単方向増加中であると判定する。また、そのいずれもが電力状態が減少する、すなわち電圧又は周波数が小さくなる傾向を示している場合は、手順ZA2203にて電力状態が単方向減少中であると判定する。
 電力状態の変化傾向が単方向増加中又は単方向減少中であると判定される場合には(手順ZA2203でYES)、次の手順ZA2205において、ハイパーバイザ105は、割り当て対象の論理プロセッサ104を物理プロセッサ101に割り当てた際においても、その電力状態の変化方向が維持されるように物理プロセッサ101の電力状態を設定する。例えば、4回分の電力状態の値から次の物理プロセッサ101の電力状態を外挿することにより予測する。具体的には、4回分の電力状態の値に最小二乗法を適用することにより、次の物理プロセッサ101の電力状態を予測するようにしても良い。例えば、図10に示した例の場合に、過去の論理プロセッサLP#A0、LP#A1、LP#A2のそれぞれの電力状態から次の物理プロセッサPP#0の電力状態を外挿することにより、物理プロセッサPP#0の電力状態1003が予測される。
 つまり、論理プロセッサグループ内で処理負荷が徐々に増大又は減少している場合に、適切な電力状態の予測を行うことができる。
 電力状態の変化傾向が単方向増加中でもなく単方向減少中でもない場合、すなわち電力状態がランダムに変化している場合には(手順ZA2203でNO)、手順ZA2204において、ハイパーバイザ105は、割り当て対象の論理プロセッサ104の過去の電力状態情報に基づいて、論理プロセッサ104を物理プロセッサ101に割当てる際の電力状態を予測する。例えば、ハイパーバイザ105は、論理プロセッサ電力状態表126から取得した電力状態情報を参照し、割り当て対象の論理プロセッサ104が物理プロセッサ101に最近割り当てられた際の物理プロセッサ101の電力状態を、割り当て対象の論理プロセッサ104を物理プロセッサ101に割り当てる際の電力状態として予測する。この場合、同一論理プロセッサグループの他の論理プロセッサ104の電力状態や、実行中の物理プロセッサ101の電力状態を使用した電力状態予測は行うことができないが、少なくとも、自身の最終電力状態から処理を開始することで、予測誤差の拡大を防ぐことができる。
 このように、同一の論理プロセッサグループの物理プロセッサ101の最新の電力状態と、過去最近の同一の論理プロセッサグループの電力状態履歴と、自身の論理プロセッサ104の電力状態とを適切に組み合わせて次の電力状態を予測することで、より適切な電力状態予測制御を適用する事ができる。
 図27は、本実施の形態に係るマルチプロセッサシステムの論理的な動作関係を示す図である。
 ハイパーバイザ105は、ハイパーバイザ105をソフトウェアとして実現し、そのソフトウェアを実行した際に、機能的に、論理プロセッサスケジューラ115と、電力状態情報決定部116と、論理プロセッサグループ対応表112と、論理プロセッサグループ電力状態制御表113と、電力状態履歴情報117とを含む。
 ハイパーバイザ105及び電力状態変更部107は、電力制御装置としての役割を果たす。電力制御装置は、複数の論理プロセッサ104の各々が、処理量に応じて消費電力が動的に変化する物理プロセッサ101に時分割で割り当てられることにより、複数の論理プロセッサ104上で複数のプロセスを実行する仮想化されたプロセッサにおいて、物理プロセッサ101の消費電力を制御する。複数の論理プロセッサ104は、複数の論理プロセッサグループにグループ分けされている。
 電力状態情報決定部116は、物理プロセッサ101に割り当てられる論理プロセッサ104が変更されるにあたり、変更後の論理プロセッサ104が属する論理プロセッサグループである対象論理プロセッサグループに属する論理プロセッサ104が割り当てられる物理プロセッサ101の消費電力を示す電力状態情報に基づいて、変更後の論理プロセッサ104の物理プロセッサ101への割り当て時の電力状態情報を決定する。
 電力状態変更部107は、電力状態情報決定部116で決定された電力状態情報に基づいて、物理プロセッサ101へ供給する電力を変更する。
 以下、電力状態の予測時の動作の一例を示す。
 各物理プロセッサ101は、当該物理プロセッサ101の電源電圧や動作周波数などの電力状態の変更に応じて、電力状態情報109を更新する。
 論理プロセッサスケジューラ115は、論理プロセッサ104を物理プロセッサ101に割り当てるスケジューリング処理を実行する。
 論理プロセッサスケジューラ115による論理プロセッサ104のスケジューリングが新たに行われ、物理プロセッサ101上で論理プロセッサ104の入れ替えが発生する際に、当該物理プロセッサ101の電力状態情報109が、電力状態履歴情報117に書き込まれる。
 電力状態履歴情報117には任意個数の電力状態情報109を蓄えることができ、新たな書き込みが発生した場合には、最も古い電力状態情報109は押し出され削除される。
 一方、論理プロセッサ104のスケジューリングが行われ、物理プロセッサ101に割当てるべき新たな論理プロセッサ104が確定すると、電力状態情報決定部116は、論理プロセッサグループ対応表112からその論理プロセッサ104が所属する論理プロセッサグループを特定する。
 さらに、電力状態情報決定部116は、論理プロセッサグループマッピング情報110をもとに、現在実行中の物理プロセッサ101のうち、論理プロセッサグループが同一の物理プロセッサ101を特定する。
 電力状態情報決定部116は、同一の論理プロセッサグループをもつ物理プロセッサ101から電力状態情報109を取得する。
 電力状態情報決定部116は、この情報と新たに割り当てられる論理プロセッサ104用の論理プロセッサ104毎の電力状態履歴情報117をもとに、次の電力状態を予測する。
 電力状態情報決定部116は、予測した電力状態をもとに、電力状態変更部107に電力状態変更要求を発生させ、電力状態変更部107が対応する物理プロセッサ101の電力を変更する。
 図28を用いて、図22に示した電力状態制御情報114のLPグループ内予測可否情報に基づいた同一の論理プロセッサグループ内の論理プロセッサ104の電力状態に基づいた電力状態予測の禁止の意図について説明する。
 図28は、ある時刻における、同一の論理プロセッサグループの4つの論理プロセッサ104(論理プロセッサLP#A0~LP#A3)の電力状態を示している。
 これは、例えばあるOS102上で、唯一つのプロセスのみが高負荷で稼働しており、他のプロセスは起動されていない場合である。例えば、バックグラウンドで行われる負荷の高いデータ処理ソフトウェアのプロセスが唯一つ実行されている場合である。
 この場合に、同一論理プロセッサグループに含まれる論理プロセッサ104の電力状態を用いて電力状態の予測を行うと、処理を負担していない論理プロセッサ104の電力状態に引きずられて、処理が重い論理プロセッサ104の電力状態が誤って低く予測されてしまう。あるいは、処理が重い論理プロセッサ104の電力状態に引きずられて、処理が軽い論理プロセッサ104の電力状態が誤って高く予測されてしまう。これはマルチプロセッサシステムの電力状態として得策でない。
 このため、各OSレベルで(論理プロセッサグループごとに)、論理プロセッサ104の負荷状況から明らかな負荷のアンバランスが発生している事を検知し、ハイパーバイザ105経由で論理プロセッサグループ電力状態制御表113のLPグループ内予測可否情報を禁止設定にすることで、この状況を防ぐことができる。
 一般にOSは、プロセスの個数及び各プロセッサのアイドル状態を管理可能であるため、この負荷状況の反映は既存のOSの機能を流用することで、ハイパーバイザ105との連携動作により実現可能である。
 また、システムによっては、OS内の各プロセスの負荷状況がアンバランスになることがあらかじめ既知であるケースが存在する。例えば、散発的に発生するバースト的なデバイス制御の場合である。この場合にも、システムソフトウェア設計者が、あらかじめ論理プロセッサグループ内の論理プロセッサ104の電力状態に基づいた電力状態予測を禁止設定することで、本来望まない電力状態予測の影響を抑制する事ができる。
 次に、図29を用いて、図22に示した電力状態制御情報114の電力予測履歴情報に基づいた電力状態予測について説明する。
 図29は、ある同一の論理プロセッサグループに含まれる4つの論理プロセッサ104の物理プロセッサ101上における電力状態の時間遷移を示している。
 時刻ZA2501にて、最も電力状態の大きい論理プロセッサ104が物理プロセッサ101から追い出される。その後、時刻ZA2502において、退避された論理プロセッサ104が再び物理プロセッサ101に割当てられる際の電力状態予測について説明する。
 この場合、時刻ZA2502では、同一の論理プロセッサグループに含まれる3つの論理プロセッサ104がプロセス103を実行しており、そのいずれもが低負荷状態に遷移しつつある。4つ目の論理プロセッサ104を物理プロセッサ101に割当てる際に、ハイパーバイザ105は、プロセス103を実行中の論理プロセッサ104の電力状態に基づいて、4つの目の論理プロセッサ104の電力状態を予測する。このような予測により、4つ目の論理プロセッサ104の電力状態は、以前自身が稼働していた電力状態より低めに設定される。
 しかしながら、たまたま4つ目の論理プロセッサ104では、前述の図28の例のように、唯一つだけ負荷が高いプロセス103が稼働しており、予測設定された電力状態よりさらに高い電力状態が必要である場合は、電力状態予測が外れたことになる。
 このような状態を繰り返すと、電力的な損失に加えて、処理に必要な周波数が適切な時間帯に得られないことによる処理時間の損失も発生する。リアルタイム性の高い応用ではこの処理時間の損失が許されない場合がある。
 そこで、論理プロセッサ104を物理プロセッサ101に割り当ててから一定時間内に、予測した電力状態とその後必要とした電力状態とが異なる予測外れを物理プロセッサ101が発生させた場合、その物理プロセッサ101に割り当てられた論理プロセッサ104が属する論理プロセッサグループにおいて電力状態予測を禁止させる。この動的な電力状態予測の禁止の可否は、あらかじめ規定した所定回数の予測外れにより禁止状態に遷移させる事ができる。その後、所定時間が経過するかソフトウェアによる設定により再び予測を許可させる。
 これにより、ソフトウェアの介在を極力減らしながら、より積極的な電力状態予測を可能にできる。
 以上説明したように、本実施の形態に係るマルチプロセッサシステムによると、同程度の負荷の処理を実行するなどのように互いに相関のある論理プロセッサ104同士をグループ化し、物理プロセッサ101への割り当て対象となっている論理プロセッサ104が属する論理プロセッサグループと同一の論理プロセッサグループに属する論理プロセッサ104の電力状態情報に基づいて、論理プロセッサ104が割り当てられる物理プロセッサ101の電力状態情報を決定している。これにより、各物理プロセッサ101に時分割で割り当てられる複数の論理プロセッサ104の間で処理負荷が異なる場合であっても、論理プロセッサ104の切り替えに伴う処理負荷の変化に追随することができ、最適な電力制御を行うことができる。
 以上、本発明の実施の形態に係るマルチプロセッサシステムについて説明したが、本発明は、この実施の形態に限定されるものではない。
 例えば、物理プロセッサ101の個数は1つであっても構わない。
 また、上述の実施の形態では、論理プロセッサ104の電力状態を用いて、物理プロセッサ101の電力状態を予測する際に、計算により電力状態を予測していたが、必ずしもこの方法に限られるものではない。例えば、予測に用いる論理プロセッサ104の電力状態をレベル分けし、レベルごとに起動時の物理プロセッサ101の電力状態を示したテーブルデータを参照することにより、物理プロセッサ101の電力状態を決定するようにしても良い。
 また、電力状態情報決定部116は、図22の電力状態制御情報114に含まれるLPグループ間予測対象LPグループ情報が示す論理プロセッサグループに属する論理プロセッサの電力状態情報と、変更後の論理プロセッサが属する論理プロセッサグループである対象論理プロセッサグループに属する論理プロセッサのうち変更後の論理プロセッサとは異なる論理プロセッサの電力状態情報とに基づいて、変更後の論理プロセッサの電力状態情報を決定しても良い。
 また、電力状態情報決定部116は、対象論理プロセッサグループに属する論理プロセッサのうち、変更後の論理プロセッサとは異なる論理プロセッサの電力状態情報と、図22の電力状態制御情報114に含まれる対象論理プロセッサグループに対応する応答性条件情報とに基づいて、応答性条件情報が示す応答性が高いほど電力が大きくなるように変更後の論理プロセッサの電力状態情報を決定しても良い。
 また、電力状態情報決定部116は、図22の電力状態制御情報114に含まれる対象論理プロセッサグループに対応する緊急プロセッサ該非情報が最大の応答性を要する場合に、電力状態情報が取り得る最大値を変更後の論理プロセッサの電力状態情報が示す値として決定しても良い。
 また、本発明は、上記に示す方法であるとしても良い。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしても良いし、前記コンピュータプログラムからなるデジタル信号であるとしても良い。
 さらに、本発明は、上記コンピュータプログラム又は上記デジタル信号をコンピュータ読み取り可能な非一時的な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray Disc(登録商標))、半導体メモリなどに記録したものとしても良い。また、これらの非一時的な記録媒体に記録されている上記デジタル信号であるとしても良い。
 また、本発明は、上記コンピュータプログラム又は上記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。
 また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、上記メモリは、上記コンピュータプログラムを記憶しており、上記マイクロプロセッサは、上記コンピュータプログラムに従って動作するとしても良い。
 また、上記プログラム又は上記デジタル信号を上記非一時的な記録媒体に記録して移送することにより、又は上記プログラム又は上記デジタル信号を上記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
 本発明は、マルチプロセッサ(マイクロプロセッサやマイクロコンピュータやマイクロコントローラやディジタル・シグナル・プロセッサを含む)を含む情報処理システムに適用可能である。
101 物理プロセッサ
102 OS
103 プロセス
104 論理プロセッサ
105 ハイパーバイザ
106 システムLSI
107 電力状態変更部
108 論理プロセッサグループ識別情報
109 電力状態情報
110 論理プロセッサグループマッピング情報
111 物理プロセッサ電力状態表
112 論理プロセッサグループ対応表
113 論理プロセッサグループ電力状態制御表
114 電力状態制御情報
115 論理プロセッサスケジューラ
116 電力状態情報決定部
117 電力状態履歴情報
121 レベル1キャッシュ
122 レベル2キャッシュ及び共有バス
123 入出力装置
124 記憶装置
125 外部装置
126 論理プロセッサ電力状態表

Claims (12)

  1.  複数の論理プロセッサの各々が、処理量に応じて消費電力が動的に変化する物理プロセッサに時分割で割り当てられることにより、前記複数の論理プロセッサ上で複数のプロセスを実行する仮想化されたプロセッサにおいて、前記物理プロセッサの消費電力を制御する電力制御装置であって、
     前記複数の論理プロセッサは、複数の論理プロセッサグループにグループ分けされており、
     前記電力制御装置は、
     前記物理プロセッサに割り当てられる論理プロセッサが変更されるにあたり、変更後の論理プロセッサが属する論理プロセッサグループである対象論理プロセッサグループに属する論理プロセッサが割り当てられる物理プロセッサの消費電力を示す電力状態情報に基づいて、前記変更後の論理プロセッサの前記物理プロセッサへの割り当て時の電力状態情報を決定する電力状態情報決定部と、
     前記電力状態情報決定部が決定した前記電力状態情報に基づいて、前記物理プロセッサへ供給する電力を変更する電力状態変更部と
     を備える電力制御装置。
  2.  前記電力状態情報決定部は、前記対象論理プロセッサグループに属する論理プロセッサのうち、前記変更後の論理プロセッサとは異なる論理プロセッサの電力状態情報に基づいて、前記変更後の論理プロセッサの電力状態情報を決定する
     請求項1記載の電力制御装置。
  3.  さらに、
     論理プロセッサグループごとに、当該論理プロセッサグループに属する論理プロセッサの電力状態情報を決定するに当たり、当該論理プロセッサグループに属する論理プロセッサのうち、前記物理プロセッサへの割り当て対象とされる論理プロセッサ以外の論理プロセッサの電力状態情報を用いることを許可するか否かを示す論理プロセッサグループ内予測可否情報を記憶している電力状態制御情報記憶部を備え、
     前記電力状態情報決定部は、前記電力状態制御情報記憶部に記憶されている前記論理プロセッサグループ内予測可否情報を参照し、前記論理プロセッサグループ内予測可否情報が許可している場合にのみ、前記対象論理プロセッサグループに属する論理プロセッサのうち、前記変更後の論理プロセッサとは異なる論理プロセッサの電力状態情報に基づいて、前記変更後の論理プロセッサの電力状態情報を決定する
     請求項2記載の電力制御装置。
  4.  前記電力状態情報決定部は、前記異なる論理プロセッサの電力状態情報が示す値の平均を、前記変更後の論理プロセッサの電力状態情報が示す値として決定する
     請求項2又は3記載の電力制御装置。
  5.  さらに、
     論理プロセッサグループごとに、当該論理プロセッサグループに属する論理プロセッサの電力状態情報を決定するに当たって参照する当該論理プロセッサグループとは異なる論理プロセッサグループを示す論理プロセッサグループ間予測対象論理プロセッサグループ情報を記憶している電力状態制御情報記憶部を備え、
     前記電力状態情報決定部は、前記論理プロセッサグループ間予測対象論理プロセッサグループ情報が示す論理プロセッサグループに属する論理プロセッサの電力状態情報と、前記対象論理プロセッサグループに属する論理プロセッサのうち前記変更後の論理プロセッサとは異なる論理プロセッサの電力状態情報とに基づいて、前記変更後の論理プロセッサの電力状態情報を決定する
     請求項2記載の電力制御装置。
  6.  前記電力状態情報決定部は、前記変更後の論理プロセッサの過去の電力状態情報に基づいて、前記変更後の論理プロセッサの電力状態情報を決定する
     請求項1記載の電力制御装置。
  7.  前記電力状態情報決定部は、前記物理プロセッサに割り当てられた前記対象論理プロセッサグループに属する論理プロセッサの過去の電力状態情報が示す値が時間の経過とともに単調に増加又は減少する場合に、前記対象論理プロセッサグループに属する前記論理プロセッサの過去の電力状態情報が示す値を外挿することにより、前記変更後の論理プロセッサの電力状態情報を決定する
     請求項1記載の電力制御装置。
  8.  さらに、
     論理プロセッサグループごとに、当該論理プロセッサグループに属する論理プロセッサが前記物理プロセッサに割り当てられた際に決定された前記物理プロセッサの電力状態情報が当たっているか否かを示す電力予測履歴情報を記憶している電力状態制御情報記憶部を備え、
     前記電力状態情報決定部は、前記電力状態制御情報記憶部に記憶されている前記電力予測履歴情報を参照し、前記対象論理プロセッサグループに対応する前記物理プロセッサの電力状態情報が当たっている場合にのみ、前記変更後の論理プロセッサの電力状態情報を決定する
     請求項1記載の電力制御装置。
  9.  さらに、
     論理プロセッサグループごとに、当該論理プロセッサグループに属する論理プロセッサが実行する処理の応答性を示す条件情報を記憶している電力状態制御情報記憶部を備え、
     前記電力状態情報決定部は、前記対象論理プロセッサグループに属する論理プロセッサのうち、前記変更後の論理プロセッサとは異なる論理プロセッサの電力状態情報と、前記電力状態制御情報記憶部に記憶されている前記対象論理プロセッサグループに対応する前記条件情報とに基づいて、前記条件情報が示す応答性が高いほど電力が大きくなるように前記変更後の論理プロセッサの電力状態情報を決定する
     請求項1記載の電力制御装置。
  10.  さらに、
     論理プロセッサグループごとに、当該論理プロセッサグループに属する論理プロセッサが実行する処理の応答性が最大の応答性を要するか否かを示す緊急プロセッサ該非情報を記憶している電力状態制御情報記憶部を備え、
     前記電力状態情報決定部は、前記電力状態制御情報記憶部に記憶されている前記対象論理プロセッサグループに対応する前記緊急プロセッサ該非情報が最大の応答性を要する場合に、電力状態情報が取り得る最大値を前記変更後の論理プロセッサの電力状態情報が示す値として決定する
     請求項1記載の電力制御装置。
  11.  複数の論理プロセッサの各々が、処理量に応じて消費電力が動的に変化する物理プロセッサに時分割で割り当てられることにより、前記複数の論理プロセッサ上で複数のプロセスを実行する仮想化されたプロセッサにおいて、前記物理プロセッサの消費電力を制御する電力制御方法であって、
     前記複数の論理プロセッサは、複数の論理プロセッサグループにグループ分けされており、
     前記電力制御方法は、
     前記物理プロセッサに割り当てられる論理プロセッサが変更されるにあたり、変更後の論理プロセッサが属する論理プロセッサグループである対象論理プロセッサグループに属する論理プロセッサが割り当てられる物理プロセッサの消費電力を示す電力状態情報に基づいて、前記変更後の論理プロセッサの前記物理プロセッサへの割り当て時の電力状態情報を決定するステップと、
     決定された前記電力状態情報に基づいて、前記物理プロセッサへ供給する電力を変更するステップと
     を含む電力制御方法。
  12.  複数の論理プロセッサの各々が、処理量に応じて消費電力が動的に変化する物理プロセッサに時分割で割り当てられることにより、前記複数の論理プロセッサ上で複数のプロセスを実行する仮想化されたプロセッサにおいて、前記物理プロセッサの消費電力を制御するための前記物理プロセッサで実行可能なプログラムであって、
     前記複数の論理プロセッサは、複数の論理プロセッサグループにグループ分けされており、
     前記物理プロセッサに割り当てられる論理プロセッサが変更されるにあたり、変更後の論理プロセッサが属する論理プロセッサグループである対象論理プロセッサグループに属する論理プロセッサが割り当てられる物理プロセッサの消費電力を示す電力状態情報に基づいて、前記変更後の論理プロセッサの前記物理プロセッサへの割り当て時の電力状態情報を決定するステップと、
     決定された前記電力状態情報に基づいて、前記物理プロセッサへ供給する電力を変更するステップと
     を前記物理プロセッサに実行させるためのプログラム。
PCT/JP2011/003668 2011-02-28 2011-06-28 電力制御装置及び電力制御方法 WO2012117455A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/972,468 US20130346766A1 (en) 2011-02-28 2013-08-21 Power control device and power control method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-043196 2011-02-28
JP2011043196A JP5681527B2 (ja) 2011-02-28 2011-02-28 電力制御装置及び電力制御方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/972,468 Continuation US20130346766A1 (en) 2011-02-28 2013-08-21 Power control device and power control method

Publications (1)

Publication Number Publication Date
WO2012117455A1 true WO2012117455A1 (ja) 2012-09-07

Family

ID=46757428

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/003668 WO2012117455A1 (ja) 2011-02-28 2011-06-28 電力制御装置及び電力制御方法

Country Status (3)

Country Link
US (1) US20130346766A1 (ja)
JP (1) JP5681527B2 (ja)
WO (1) WO2012117455A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9311209B2 (en) * 2012-11-27 2016-04-12 International Business Machines Corporation Associating energy consumption with a virtual machine
KR101433030B1 (ko) * 2012-12-18 2014-08-22 서강대학교산학협력단 가상환경 내 중앙처리장치의 전력 스케줄링 방법 및 시스템
JP6079476B2 (ja) * 2013-06-26 2017-02-15 富士通株式会社 分析支援プログラム、分析支援装置、および分析支援方法
US10289437B2 (en) 2014-01-07 2019-05-14 Red Hat Israel, Ltd. Idle processor management in virtualized systems via paravirtualization
US10365936B2 (en) 2014-02-27 2019-07-30 Red Hat Israel, Ltd. Idle processor management by guest in virtualized systems
CN105467202B (zh) * 2014-08-22 2020-07-10 深圳市中兴微电子技术有限公司 一种电量检测方法及装置、终端
US10652594B2 (en) 2016-07-07 2020-05-12 Time Warner Cable Enterprises Llc Apparatus and methods for presentation of key frames in encrypted content
US10958948B2 (en) * 2017-08-29 2021-03-23 Charter Communications Operating, Llc Apparatus and methods for latency reduction in digital content switching operations
US10939142B2 (en) 2018-02-27 2021-03-02 Charter Communications Operating, Llc Apparatus and methods for content storage, distribution and security within a content distribution network
US11126245B2 (en) * 2019-06-21 2021-09-21 Intel Corporation Device, system and method to determine a power mode of a system-on-chip
JP2023021662A (ja) 2021-08-02 2023-02-14 富士通株式会社 プログラムおよび管理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006127462A (ja) * 2004-09-29 2006-05-18 Sony Corp 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
JP2009238024A (ja) * 2008-03-27 2009-10-15 Panasonic Corp 仮想マルチプロセッサ、システムlsi、携帯電話機器、及び仮想マルチプロセッサの制御方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7360103B2 (en) * 2004-05-21 2008-04-15 Intel Corporation P-state feedback to operating system with hardware coordination
JP4322232B2 (ja) * 2005-06-14 2009-08-26 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006127462A (ja) * 2004-09-29 2006-05-18 Sony Corp 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
JP2009238024A (ja) * 2008-03-27 2009-10-15 Panasonic Corp 仮想マルチプロセッサ、システムlsi、携帯電話機器、及び仮想マルチプロセッサの制御方法

Also Published As

Publication number Publication date
JP5681527B2 (ja) 2015-03-11
JP2012181627A (ja) 2012-09-20
US20130346766A1 (en) 2013-12-26

Similar Documents

Publication Publication Date Title
JP5681527B2 (ja) 電力制御装置及び電力制御方法
JP5433837B2 (ja) 仮想計算機システム、仮想計算機の制御方法及びプログラム
KR102641520B1 (ko) 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 태스크 스케줄링 방법
US10416932B2 (en) Dirty data management for hybrid drives
US9619287B2 (en) Methods and system for swapping memory in a virtual machine environment
US8140876B2 (en) Reducing power consumption of components based on criticality of running tasks independent of scheduling priority in multitask computer
EP2758852B1 (en) System and method for managing thermal energy generation in a heterogeneous multi-core processor
US8429666B2 (en) Computing platform with resource constraint negotiation
US8752060B2 (en) Multi-CPU domain mobile electronic device and operation method thereof
WO2017176534A1 (en) Managing container pause and resume
EP2725862A1 (en) Resource allocation method and resource management platform
CN108228482B (zh) 用于管理存储系统中的缓存设备的方法和系统
WO2013077972A1 (en) Thermally driven workload scheduling in a heterogeneous multi - processor system on a chip
US20120239952A1 (en) Information processing apparatus, power control method, and recording medium
US20180129534A1 (en) Thread Importance Based Processor Core Partitioning
US10768684B2 (en) Reducing power by vacating subsets of CPUs and memory
JP2013222321A (ja) メモリ制御装置、メモリ制御方法、情報処理装置、およびプログラム
JP2010211644A (ja) メモリ消費電力削減システム、方法及びプログラム
WO2014188642A1 (ja) スケジュールシステム、スケジュール方法、及び、記録媒体
JP2007041771A (ja) プロセススケジューリングシステム、プロセススケジューリング方法およびプログラム
JP2014078214A (ja) スケジュールシステム、スケジュール方法、スケジュールプログラム、及び、オペレーティングシステム
JP2010160552A (ja) リソース配分装置、その方法及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11859983

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11859983

Country of ref document: EP

Kind code of ref document: A1