WO2015019476A1 - 消費電力値が所定電力値以下である状態情報を、測定した処理性能値に基づいて選択する選択装置 - Google Patents

消費電力値が所定電力値以下である状態情報を、測定した処理性能値に基づいて選択する選択装置 Download PDF

Info

Publication number
WO2015019476A1
WO2015019476A1 PCT/JP2013/071568 JP2013071568W WO2015019476A1 WO 2015019476 A1 WO2015019476 A1 WO 2015019476A1 JP 2013071568 W JP2013071568 W JP 2013071568W WO 2015019476 A1 WO2015019476 A1 WO 2015019476A1
Authority
WO
WIPO (PCT)
Prior art keywords
power consumption
value
state information
consumption value
processing performance
Prior art date
Application number
PCT/JP2013/071568
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 富士通株式会社
Priority to PCT/JP2013/071568 priority Critical patent/WO2015019476A1/ja
Priority to JP2015530630A priority patent/JP6024828B2/ja
Publication of WO2015019476A1 publication Critical patent/WO2015019476A1/ja
Priority to US15/016,456 priority patent/US9846480B2/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
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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 selection method, a selection program, a selection device, and a recording medium.
  • Patent Document 1 a technique for controlling the frequency of a clock signal supplied to a processor in order to reduce the power consumption of the processor is known (for example, see Patent Document 1 below).
  • Patent Document 2 a technique for controlling the frequency of a clock signal supplied to a processor and a power supply voltage value in order to reduce the power consumption of the processor is known (for example, see Patent Document 2 below).
  • the management device of the virtual server system searches for a virtual server suitable for resources of CPU (Central Processing Unit) cores and memory capacity based on the hardware information of the server and the virtual server information built on the server.
  • a technique for reducing the power consumption of the virtual server system is known (see, for example, Patent Document 3 below).
  • Non-Patent Document 1 a technique for estimating the power consumption value and processing performance value of a processor by simulation is known (for example, see Non-Patent Document 1 below).
  • DFS Dynamic Frequency Scaling
  • the present invention provides a selection method, a selection program, a selection device, and a recording medium that allow a processor to execute a program in an operating state that satisfies a power consumption value condition and has high processing performance. With the goal.
  • the state information indicating the operating state is acquired, and for each of the acquired state information,
  • the processor after the change to the operating state indicated by the state information to execute the specific program, the power consumption value and the processing performance value of the processor after the change are measured, and for each of a plurality of different predetermined power consumption values.
  • a selection method, a selection program, and a selection device for selecting, from the acquired state information, any state information whose measured power consumption value is less than or equal to the predetermined power consumption value based on the measured processing performance value And a recording medium are proposed.
  • the processor for each of a plurality of operating states of the processor that can change the operating state of each element, to obtain the state information indicating the operating state, for each of the acquired state information,
  • the processor after the change to the operating state indicated by the state information to execute a specific program
  • the power consumption value and the processing performance value of the processor after the change are measured, and for each of a plurality of different specific power consumption values, Any state information of the acquired state information is selected based on a processing performance value corrected based on a ratio between the power consumption value obtained by measuring the measured processing performance value and the specific power consumption value.
  • a selection method, a selection program, a selection device, and a recording medium are proposed.
  • the processor can execute a program in an operating state that satisfies the condition of the power consumption value and has high processing performance.
  • FIG. 1 is an explanatory diagram showing an operation example 1 by the selection device according to the present invention.
  • FIG. 2 is an explanatory diagram showing an operation example 2 by the selection device according to the present invention.
  • FIG. 3 is a block diagram of a hardware configuration example of the selection device according to the embodiment.
  • FIG. 4 is an explanatory diagram showing a detailed example of the CPU.
  • FIG. 5 is a block diagram illustrating a functional configuration example of the selection device.
  • FIG. 6 is an explanatory diagram illustrating an example of a state list.
  • FIG. 7 is an explanatory diagram illustrating a detailed example of the power consumption value measurement unit.
  • FIG. 8 is an explanatory diagram showing an example of a state list in which measurement results are assigned to each state information.
  • FIG. 1 is an explanatory diagram showing an operation example 1 by the selection device according to the present invention.
  • FIG. 2 is an explanatory diagram showing an operation example 2 by the selection device according to the present invention.
  • FIG. 3 is a block
  • FIG. 9 is an explanatory diagram of an example of selecting state information according to the first embodiment.
  • FIG. 10 is an explanatory diagram showing an example of a control mode table.
  • FIG. 11 is a flowchart of a selection processing procedure example performed by the selection apparatus according to the first embodiment.
  • FIG. 12 is a flowchart illustrating an example of a state list generation processing procedure illustrated in FIG. 11.
  • FIG. 13 is a flowchart showing the measurement processing of the power consumption value and the processing performance value shown in FIG.
  • FIG. 14 is a flowchart showing a process for generating the control mode table shown in FIG.
  • FIG. 15 is an explanatory diagram of an example of selecting state information according to the second embodiment.
  • FIG. 16 is an explanatory diagram of an example of a control mode table according to the second embodiment.
  • FIG. 17 is an explanatory diagram illustrating a comparative example of the power consumption value and the processing performance value according to each of the DFS and the second embodiment.
  • FIG. 18 is a flowchart showing processing for generating the control mode table shown in FIG.
  • FIG. 19 is an explanatory diagram showing an example of power consumption value control based on the control mode table.
  • FIG. 20 is a flowchart illustrating a selection processing procedure example by the CPU.
  • FIG. 1 is an explanatory view showing an operation example 1 by the selection device according to the present invention.
  • the selection device 100 is a computer that generates a table for providing an operating state of each element of the processor that satisfies the upper limit of the power consumption value and increases the processing performance in executing the program by the processor.
  • the processor is, for example, the CPU 101 shown in FIG. 1, and the operating state of each element can be changed.
  • Each element of the CPU 101 is, for example, an element related to instruction execution such as a primary cache L1 and a secondary cache L2 as shown in FIG.
  • the primary cache L1 and the secondary cache L2 as shown in FIG. 1 are used to change the operating state of each element.
  • the number of ways of the cache is variable, and a plurality of ways corresponding to each way included in each cache are changed. It is to change the number of blocks to be activated among the blocks.
  • the CPU 101 has state information 111 indicating an operating state and a register capable of setting a frequency, and the operating state of the CPU 101 may be changed to an operating state indicated by the state information 111 set in the register. it can.
  • the frequency of the clock given to each element of the CPU 101 can be changed to the frequency set in the register.
  • the CPU 101 may be the CPU 101 included in the selection device 100, or may be the CPU 101 included in another device that can change the operating state of the selection device 100.
  • the selection device 100 acquires state information 111 indicating an operation state for each of a plurality of operation states of the CPU 101 whose operation state can be changed. More specifically, the state information 111 indicates a combination of operating states of each element.
  • a plurality of operation states can be obtained, for example, by obtaining an operation state suitable for a specific program by simulation based on a power consumption value or a processing performance value.
  • the specific program is, for example, a program prepared to be executed by the CPU 101, and may be an actual application program. Further, there may be a plurality of types of specific programs. A detailed example will be described later.
  • the four blocks B11 to B14 of the primary cache L1 in the CPU 101 are changed. Among them, the block B11 and the block B12 are in operation, but the block B13 and the block B14 are inactive. Of the two blocks B21 and B22 of the secondary cache L2 in the CPU 101, the block B21 is in operation, but the block B22 is inactive.
  • clock gating elements g11 to g14 capable of switching whether or not to supply a clock signal are provided between the clock signal line and the block of the primary cache L1.
  • the CPU 101 can control switching by controlling the clock gating elements g11 to g14.
  • power gating elements g21 and g22 capable of switching whether to supply power are provided between the power supply line and the block of the secondary cache L2.
  • the CPU 101 can control switching by controlling the power gating elements g21 and g22. In this way, the operating state of each element is changed.
  • the selection device 100 causes the CPU 101 after the change to the operating state indicated by the state information 111 to execute the specific program for a certain period of time for each of the acquired state information 111, and the power consumption value of the CPU 101 after the change and Measure the processing performance value.
  • the fixed time is a time sufficient to obtain a steady power consumption value and a performance value, and is specified by the user, for example.
  • a circuit capable of measuring a power consumption value and a processing performance value is provided in the CPU 101 in advance, and measurement is performed by executing a specific program.
  • the processing performance value is, for example, a MIPS (Million Instruction Per Second) value. In the case of a MIPS value, the larger the value, the higher the processing performance.
  • the power consumption value may be measured separately from the dynamic power value and the static power value consumed by the leakage current.
  • the selection apparatus 100 measures, for each of a plurality of different predetermined power consumption values, any state information 111 whose measured power consumption value is less than or equal to the predetermined power consumption value from the acquired state information 111. Select based on the processed performance value. Specifically, the selection device 100 acquires a plurality of different specific power consumption values. The plurality of specific power consumption values are different from each other by a predetermined width between the minimum value and the maximum value. The smaller the predetermined width interval, the greater the number of specific power consumption values.
  • the predetermined power consumption value may be the specific power consumption value itself, or may be a value obtained by adding an error to the specific power consumption value. In the example of FIG. 1, the predetermined power consumption value is a value obtained by adding a specific power consumption value and an error. Here, for example, the predetermined power consumption value is a value obtained by adding the specific power consumption value and the error, and the error is 5. In the example of FIG. 1, the specific power consumption value is a value that is different by 20 units.
  • the state information 111-A is selected as the state information 111 that is equal to or lower than the predetermined power consumption value and has the highest processing performance. For example, if the specific power consumption value is 75, the predetermined power consumption value is 80. Therefore, the state information 111-B is selected as the state information 111 that is equal to or lower than the predetermined power consumption value and has the highest processing performance. For example, if the specific power consumption value is 55, the predetermined power consumption value is 60. Therefore, the state information 111-C is selected as the state information 111 that is equal to or lower than the predetermined power consumption value and has the highest processing performance.
  • the selection device 100 generates a table 120 that associates each specific power consumption value with the state information 111 selected for the specific power consumption value. Thereby, at the time of operation, it is possible to switch to an operating state that satisfies the condition of the actual power consumption value and has high processing performance.
  • the condition of the power consumption value is, for example, a condition regarding the upper limit of the power consumption value.
  • DFS is a technique for reducing power consumption by lowering the CPU frequency during program execution.
  • DVFS Dynamic Voltage and Frequency Scaling
  • Power efficiency is the amount of processing per unit power consumption.
  • DFS since only the frequency is controlled and the power supply voltage is not changed, only the dynamic power value among the power consumption values decreases in proportion to the frequency.
  • DVFS since the power supply voltage value further decreases according to the frequency, the dynamic power value fluctuates on the order of the cube of the frequency.
  • the minimum operating voltage value of the transistor cannot be lowered due to the limit of technology scaling.
  • the minimum guaranteed operation voltage value of a RAM (Random Access Memory) macro or an analog macro embedded in a semiconductor integrated circuit cannot be lowered to the minimum guaranteed operation voltage value of a digital circuit. Therefore, the range of frequencies that can be controlled by DVFS is narrowed. Further, the power supply voltage value is complicated to control when compared with the frequency, and the time required for the control is long. In addition, the design and verification for guaranteeing the operation when the power supply voltage value fluctuates is more difficult than the design and verification for guaranteeing the operation when the frequency fluctuates.
  • the control of the power supply voltage value cannot be used as a means for controlling power consumption.
  • the selection device 100 according to the operation example 1 it is possible to improve the power efficiency when compared with the DFS without changing the power supply voltage value.
  • FIG. 2 is an explanatory diagram showing an operation example 2 by the selection device according to the present invention.
  • the operation example 2 is different from the operation example 1 shown in FIG. 1 in the case where the state information 111 is selected. Since the measurement is the same for each state information 111, detailed description thereof is omitted.
  • the selection apparatus 100 shown in FIG. 1 and the selection apparatus 100 shown in FIG. 2 may be different apparatuses, since the hardware configuration and the like may be the same, the same reference numerals are given here.
  • the selection device 100 sets any one of the acquired state information 111 between the power consumption value obtained by measuring the measured processing performance value and the specific power consumption value. The selection is made based on the processing performance value corrected based on the ratio.
  • the selection device 100 selects the state information 111 indicating the operating state in which the processing performance of the CPU 101 indicated by the corrected processing performance value is the highest. Specifically, the selection device 100 corrects the measured processing performance value by “measured processing performance value ⁇ (specific power consumption value / measured power consumption value)”.
  • the frequency at the time of measurement is the highest frequency that can be set and can be set lower than the frequency at the time of measurement, but cannot be set higher than the frequency at the time of measurement.
  • the correction processing performance value for the state information 111-A is “100 ⁇ (55/95)”, which is 57.9. .
  • the correction processing performance value for the status information 111-B is “80 ⁇ (55/75)”, which is 58.7.
  • the correction processing performance value for the state information 111-C is “40 ⁇ (55/60)”, which is 36.7.
  • the processing performance indicated by the processing performance value is lower than that of the state information 111-C, and the processing performance value cannot be corrected unless the frequency is changed high.
  • the processing performance value is the MIPS value
  • the specific power consumption value is 55
  • the selection device 100 indicates the state information 111 having the largest correction processing performance value.
  • -Select B More specifically, when the power consumption value is measured separately from a dynamic power value and a static power value that is a leakage current value, “dynamic power value / (specific power consumption value ⁇ Static power value) ”is the ratio. A detailed example in this case will be described later.
  • the selection device 100 corrects the frequency when the power consumption value and the processing performance value are measured for each of the plurality of specific power consumption values based on the ratio of the selected state information 111.
  • the selection device 100 generates a table 200 that associates each specific power consumption value, the state information 111 selected for the specific power consumption value, and the corrected frequency. This makes it possible to select an operating state with high processing performance while satisfying the upper limit of actual power consumption. Moreover, according to the selection apparatus 100 concerning the operation example 2, when compared with DFS, power efficiency can be improved.
  • FIG. 3 is a block diagram of a hardware configuration example of the selection device according to the embodiment.
  • the selection device 100 includes a CPU 101, a ROM (Read Only Memory) 301, a RAM 302, a disk drive 303, and a disk 304.
  • the selection device 100 includes an I / F (InterFace) 305, an input device 306, and an output device 307. Each unit is connected by a bus 300.
  • the CPU 101 controls the entire selection device 100.
  • the ROM 301 stores a program such as a boot program.
  • the RAM 302 is used as a work area for the CPU 101.
  • the disk drive 303 controls reading / writing of data with respect to the disk 304 according to the control of the CPU 101.
  • the disk 304 stores data written under the control of the disk drive 303. Examples of the disk 304 include a magnetic disk and an optical disk.
  • the I / F 305 is connected to a network NET such as a LAN (Local Area Network), a WAN (Wide Area Network), or the Internet through a communication line, and is connected to another device via the network NET.
  • the I / F 305 serves as an internal interface with the network NET, and controls data input / output from an external device.
  • a modem or a LAN adapter may be employed as the I / F 305.
  • the input device 306 is an interface for inputting various data by a user operation such as a keyboard, a mouse, and a touch panel.
  • the input device 306 can also capture images and moving images from the camera.
  • the input device 306 can also capture audio from a microphone.
  • the output device 307 is an interface that outputs data according to an instruction from the CPU 101. Examples of the output device 307 include a display and a printer.
  • FIG. 4 is an explanatory diagram showing a detailed example of the CPU.
  • the CPU 101 includes elements such as an instruction buffer 411, a decoder 412, a reservation station 413, an update buffer 414, a floating register file 415, and a register file 416. Further, the CPU 101 has elements such as various arithmetic pipelines 417 to 419, a primary cache L1, a secondary cache L2, a Move-out Buffer 420, and a Move-in Buffer 421.
  • the CPU 101 can change the operating state based on the state information.
  • the CPU 101 includes each element, a PLL (Phase Locked Loop) 404 that supplies a clock signal to each element, a power consumption control unit 403, a power consumption value measurement unit 401, and a control mode table storage buffer. 405 and a processing performance value measurement unit 402.
  • the control mode table storage buffer 405 stores the control mode table generated in the present embodiment.
  • the control mode table storage buffer 405 is provided inside the CPU 101 will be described.
  • the present invention is not limited to this, and a storage device such as the RAM 302 or the disk 304 outside the CPU 101 may be used. Details of the power consumption control unit 403, the power consumption value measurement unit 401, and the processing performance value measurement unit 402 will be described later.
  • a clock gating element that can switch whether or not to supply a clock signal to a partial element of each element is provided in each clock signal line of the partial element, and the CPU 101 controls the clock gating element, Change the operating status of each element.
  • a power gating element capable of switching whether or not to supply power to a partial element of each element from a power supply circuit is provided in each block power supply line, and the CPU 101 controls the power gating element, Change the operating status of each element.
  • FIG. 5 is a block diagram illustrating a functional configuration example of the selection device.
  • the selection apparatus 100 includes a control unit including a state information generation unit 501, an acquisition unit 502, a measurement unit 503, a selection unit 504, a frequency derivation unit 505, and a control mode table generation unit 506.
  • the processing of the control unit is coded in, for example, a selection program stored in a storage device accessible by the CPU 101. Then, the CPU 101 reads the information processing program from the storage device and executes the process coded in the selection program. Thereby, the process of each part is implement
  • Example 1 and Example 2 in which the selection processing by the selection unit 504 is different.
  • any state information whose measured power consumption value is equal to or lower than a specific power consumption value is selected from the plurality of state information.
  • state information having the highest processing performance value corrected by the measured power consumption value and the specific power consumption value is selected from the plurality of pieces of state information.
  • the first embodiment shows details of the first operation example shown in FIG. 1 described above, and the second embodiment shows details of the second operation example shown in FIG. 2 described above.
  • the processing by the frequency deriving unit 505 is processing performed in the second embodiment, and is not processing performed in the first embodiment.
  • Example 1 the processing performance value and the power consumption value of the CPU 101 are measured for each operating state.
  • each operation state in which the performance is increased with each of the plurality of predetermined power values as an upper limit is selected based on the measurement result. As a result, it is possible to specify an operating state with high processing performance for each upper limit of the power value during operation.
  • the state information generation unit 501 acquires state information indicating a specific operating state of the CPU 101.
  • the specific operating state is a reference operating state.
  • State information indicating a specific operating state is referred to as specific state information.
  • the state information generation unit 501 obtains, by simulation, a specific processing performance value when the CPU 101 executes a specific program in a specific operating state.
  • a simulation technique such as that described in Non-Patent Document 1 may be used.
  • the state information generation unit 501 performs a simulation when the CPU 101 executes a specific program for each of a plurality of different lower limit processing performance values within a predetermined range. As a result, the state information generation unit 501 generates state information indicating the operation state in which the power consumption value is the smallest from the operation state in which the processing performance value is equal to or greater than the lower limit processing performance value.
  • the predetermined range is, for example, a range from a specific processing performance value to a minimum processing performance value.
  • the minimum processing performance value is determined by the user and stored in advance in a storage device such as the RAM 302 or the disk 304.
  • the specific program uses the program whose power is adjusted in the generated control mode table, thereby generating an operating state in which the power efficiency is increased by the program.
  • the program to be adjusted for example, the use of any element of the CPU 101 such as a program that emphasizes integer arithmetic, a program that emphasizes floating point arithmetic, a program that emphasizes cache access, a program that emphasizes memory access, and the like.
  • a plurality of programs may be used.
  • the power efficiency is high in an operating state generated using a program similar to the program executed by the measurement unit 503 and the usage status of elements among the plurality of programs.
  • the specific program is stored in advance in a storage device such as the RAM 302 or the disk 304.
  • the state information generation unit 501 uses the entire operating state obtained as a combination of values that can be taken by each element taking a variable value for the CPU 101 as a search space and sets the minimum power consumption under the lower limit performance constraint. Determine the operating state to be.
  • the solution to be obtained may be an approximate solution.
  • the range of values that each element can take is, for example, the range of the number of blocks that the primary cache L1 can operate when the primary cache L1 is taken as an example. In the case of the primary cache L1, 1 to 4
  • a power / performance evaluation technique as described in Non-Patent Document 1 can be used.
  • a simple optimization method such as a sequential search in which the operation state in which the value of one specific element of the CPU is changed by one step is regarded as a neighborhood solution and the neighborhood search is repeated may be used.
  • an advanced algorithm for searching for a better quality approximate solution may be used.
  • the state information generation unit 501 registers the state information obtained for each of a plurality of different lower limit processing performance values in the state list 600.
  • FIG. 6 is an explanatory diagram showing an example of a state list.
  • the state list 600 includes state information 601 indicating an operation state for each of a plurality of operation states.
  • the status information 601 includes, for each element of the CPU 101, the number of partial elements to be activated in the element and the number of elements to be activated among the same elements.
  • the state list 600 includes fields such as the number of operation pipes, the number of primary caches L1Way, the instruction issue width, and the number of MIB entries. By setting information in each field, it is stored as state information (601-A to 601-D, etc.). For example, the number of calculation pipes to be operated is set in the calculation pipe number field.
  • the number of ways of the primary cache L1 to be operated is set in the field of the number of primary caches L1 Way.
  • an instruction issue width that is the number of instructions that can be issued in parallel from the decoder 412 to the reservation station 413 is set in the instruction issue width field.
  • the number of entries of Move-in Buffer 421 is set in the MIB entry number field.
  • the state list 600 is stored in a storage device such as the RAM 302 or the disk 304, for example.
  • the acquisition unit 502 acquires state information 601 indicating the operation state for each of a plurality of operation states of the CPU 101 whose operation state can be changed.
  • the acquisition unit 502 acquires the state list 600 generated by the state information generation unit 501.
  • the measurement unit 503 causes the CPU 101 after the change to the operating state indicated by the state information 601 for each of the acquired state information 601 to execute the specific program for a certain period of time, thereby changing the power consumption value and the processing performance value of the CPU 101 after the change. Measure.
  • the fixed time is determined by the user and stored in advance in a storage device such as the RAM 302 or the disk 304.
  • the measurement unit 503 causes the power consumption control unit 403, the power consumption value measurement unit 401, and the processing performance value measurement unit 402 to measure the power consumption value and the processing performance value.
  • the power consumption control unit 403 includes a current mode setting register 406 in which a frequency and state information 601 can be set, and a measured current power consumption value is set.
  • the measurement unit 503 sets the frequency and the state information 601.
  • the power consumption control unit 403 changes the set operating state of the CPU 101 to the operating state indicated by the state information 601 and changes the frequency of the clock signal supplied to the operating state of the CPU 101 to the set frequency.
  • the measurement unit 503 sets the measured power consumption value in the current mode setting register 406.
  • a reference frequency is set.
  • the execution time is, for example, a time during which the processing performance value and the power consumption value can be measured.
  • the processing performance value measuring unit 402 can measure the processing performance value by providing a circuit that integrates the number of instructions issued in each cycle at a certain period in the instruction issuing part in the CPU 101.
  • the instruction issue part is a part for transferring instruction information from the decoder 412 to the reservation station 413, and the above-described integrating circuit integrates the number of instructions transferred from the decoder 412 to the reservation station 413.
  • the power consumption value is measured by distinguishing between a static power value and a dynamic power value.
  • FIG. 7 is an explanatory diagram showing a detailed example of the power consumption value measuring unit.
  • the power consumption value measurement unit 401 estimates a dynamic power value based on the operation rate of each element in the CPU 101, and determines a static power value based on the static power value of the variable portion and the static power value of the non-variable portion. Estimate.
  • the power consumption value measuring unit 401 corrects the coefficient of each operation rate using the state information 601 by the coefficient correcting unit.
  • Each of the coefficients 1 to N is a value determined in advance by a technique such as regression analysis based on the operation rate indicated by the operation rate information of each element.
  • the coefficients 1 to N are set in advance in a register or the like in the CPU 101.
  • the status information 601 is acquired from the current mode setting register 406 of the CPU 101.
  • the power consumption value measurement unit 401 calculates the dynamic power value of each element by multiplying the corrected coefficients 1 'to N' by the operation rate indicated by the operation rate information.
  • the operating rate information 1 to N is information indicating the operating rate of each element in the CPU 101, for example.
  • the operation rate information is, for example, information indicating the operation rate of the primary cache L1, information indicating the operation rate of the arithmetic unit, and the like.
  • the operation rate of the primary cache L1 is the number of accesses per unit time to the primary cache L1.
  • a counter or the like that can measure access to each element is provided in advance in each element, and the operation rate is calculated based on the value of the counter.
  • the power consumption value measuring unit 401 calculates the sum of dynamic power values.
  • the power consumption value measurement unit 401 uses the frequency conversion unit to perform frequency conversion on the sum of the dynamic power values of each element to calculate the dynamic power value.
  • the power consumption value measuring unit 401 estimates the static power value of the CPU 101 under the average condition estimated in advance for the static power value by correcting the variation information and temperature information of each process. Specifically, the power consumption value measuring unit 401 uses the power correction unit to convert each of the variable portion 1 static power value to the variable portion M static power value based on the number of physical elements of each element by the power correction unit. Use to correct.
  • the static power value here is set in a register in the CPU 101 in advance. Taking the primary cache L1 as an example, when only two blocks are operated out of the four blocks, the half of the static power value of the primary cache L1 is the corrected static power value of the fluctuation portion. However, when power gating is not performed, the static power value of each element does not fluctuate. Therefore, all non-variable partial static power values are fixed values, and the static power value is not corrected by the state information 601.
  • the power consumption value measurement unit 401 adds the fluctuation part M static power value and the non-fluctuation part static power value from the corrected fluctuation part 1 static power value.
  • the power consumption value measuring unit 401 performs conversion such as variation conversion due to manufacturing variation, temperature conversion due to temperature, power supply voltage conversion, and the like, and outputs a static power value.
  • the variation information indicating the manufacturing variation is, for example, information previously provided in a register in the CPU 101 or information acquired via the input device 306.
  • the temperature information indicating the temperature is information acquired from an apparatus capable of measuring the temperature, for example.
  • the power supply voltage value is a value acquired from a circuit that supplies a power supply voltage to each element in the CPU 101.
  • the measurement result of the power consumption value is set in, for example, a storage device such as the RAM 302 or the disk 304, the current mode setting register 406, or the like.
  • Each power consumption value measurement unit 401 and processing performance value measurement unit 402 may be formed by an element such as a logical product circuit, a negative logic circuit, a logical sum circuit, or a latch circuit FF (Flip Flop).
  • each part is PLD (Programmable Gate Array) such as Standard Cell or Structured ASIC (Application Specific Integrated Circuit) or other application specific IC (hereinafter simply referred to as “ASIC”) or FPGA (Field Programmable Gate Array). It may be realized.
  • the functions of the power consumption value measuring unit 401 and the processing performance value measuring unit 402 described above are defined in a net list by a hardware description language or the like, and the net list is logically synthesized to perform ASIC or PLD. Each part may be realized by giving to.
  • the power consumption value measurement unit 401 and the processing performance value measurement unit 402 may be coded in a measurement program stored in a storage device accessible by the CPU 101. Then, the CPU 101 reads the measurement program from the storage device and executes the process coded in the measurement program. Thereby, the processing of the power consumption value measurement unit 401 and the processing performance value measurement unit 402 may be realized.
  • the measurement results by the power consumption value measurement unit 401 and the processing performance value measurement unit 402 may be stored in a storage device such as the RAM 302 and the disk 304, or a dedicated register is provided in the CPU 101 in advance. It may be set in the dedicated register.
  • FIG. 8 is an explanatory diagram showing an example of a state list in which measurement results are assigned to each state information.
  • each state information 601 in the state list 600 is given a dynamic power value, a static power value, and a processing performance value.
  • the selection device 100 For each of a plurality of different specific power consumption values, the selection device 100 includes the state information 601 in which the difference between the measured power consumption value and the specific power consumption value is equal to or less than a predetermined value from the acquired state information 601. Any state information 601 is selected based on the measured processing performance value. The plurality of specific power consumption values are determined in advance by the designer. Further, the selection apparatus 100 selects state information 601 indicating an operation state in which the processing performance indicated by the measured processing performance value is the highest among the state information 601 of the state information 601 that is equal to or less than a predetermined value. . Then, the selection device 100 outputs the selection result as a control mode table 1000.
  • FIG. 9 is an explanatory diagram of an example of selecting state information according to the first embodiment.
  • the horizontal axis indicates the processing performance value
  • the vertical axis indicates the power consumption value.
  • the points indicated by ⁇ are points plotted based on the processing performance value measured for each state information 601 and the measured power consumption value.
  • the points indicated by ⁇ are points plotted based on the processing performance values measured for the configuration information selected for the specific power consumption values P1 to P5 and the measured power consumption values.
  • the specific state information INI is selected for the specific power consumption value P0.
  • the selection unit 504 sorts the state information 601 in the state list 600 in descending order of the total value of the static power value and the dynamic power value. Then, the selection apparatus 100 deletes the state information 601 in which the processing performance values are not in descending order in the state list 600 after sorting from the state list 600. Thereby, the state information 601 indicating the low power efficiency operating state can be deleted.
  • the state information 601-B, the state information 601-C, the state information 601-E, and the state information 601-J are deleted from the state list 600.
  • the selection unit 504 selects, for each of the plurality of predetermined power consumption values, any state information 601 in which the measured power consumption value is equal to or lower than the predetermined power consumption value based on the processing performance value.
  • the plurality of predetermined power consumption values are, for example, specific power consumption values P1 to P5 themselves, or values including an allowable error in each of the specific power consumption values P1 to P5.
  • the selection unit 504 selects the state information 601 having the highest processing performance indicated by the processing performance value.
  • the selection unit 504 calculates the difference between the total value of the static power value and the dynamic power value for each state information 601 and the specific power consumption value. Then, the selection unit 504 detects the state information 601 in which the difference is within a predetermined value for each of the plurality of specific power consumption values P1 to P5. The predetermined value is an allowable error. Further, the selection unit 504 selects the state information 601 having the highest processing performance indicated by the processing performance value from among the state information 601 in which the difference is within a predetermined value. In addition, when there is no state information 601 in which the difference is within the predetermined value, the selection unit 504 has the highest processing performance indicated by the processing performance value among the state information 601 whose total value is equal to or less than the specific power consumption value. Select.
  • the selection unit 504 selects the state information 601-A for the specific power consumption value P1. For example, the selection unit 504 selects the state information 601-D for the specific power consumption value P2. For example, the selection unit 504 selects the state information 601-F for the specific power consumption value P3. For example, the selection unit 504 selects the state information 601-G for the specific power consumption value P4. For example, the selection unit 504 selects the state information 601-H for the specific power consumption value P5.
  • the control mode table generation unit 506 generates a table in which each of the plurality of specific power consumption values P0 to P5, the state information 601 selected for the specific power consumption value, and the frequency at the time of measurement are associated with each other.
  • This table is referred to as a control mode table 1000.
  • the generated control mode table 1000 is stored in a storage device such as the RAM 302 or the disk 304. Further, before the control process using the control mode table 1000 is performed, the CPU 101 stores the control mode table 1000 in the control mode table storage buffer 405.
  • FIG. 10 is an explanatory diagram showing an example of a control mode table.
  • the control mode table 1000 includes, for example, specific power consumption value, frequency, and status information 601 fields.
  • the specific power consumption value described above is set in the specific power consumption value field.
  • In the frequency field a frequency at the time of measurement is set.
  • the state information 601 field the selected state information 601 is set.
  • identification information indicating the state information 601 is set in the state information 601 field by omitting the state information 601, but in actuality, each state information 601 is illustrated as in the state information 601 illustrated in FIG. 6.
  • the operating status of the element is set. By setting information in each field, it is stored as records (1001-0 to 1001-5).
  • FIG. 11 is a flowchart of a selection processing procedure example performed by the selection apparatus according to the first embodiment.
  • the selection device 100 acquires a specific program (step S1101).
  • the selection apparatus 100 performs a process for generating the state list 600 based on the specific program (step S1102).
  • the selection device 100 performs measurement processing of the power consumption value and the processing performance value based on the specific program (step S1103).
  • the selection device 100 performs processing for generating the control mode table 1000 (step S1104).
  • the selection device 100 executes the specific program at the time of operation (step S1105) and ends a series of processing.
  • FIG. 12 is a flowchart showing an example of a state list generation processing procedure shown in FIG.
  • the selection apparatus 100 acquires specific state information INI indicating a specific operation state (step S1201).
  • the selection apparatus 100 derives the processing performance value when the specific program based on the model of the CPU 101 after the change to the operating state indicated by the acquired specific state information INI is executed by the performance evaluation simulation (step S1202).
  • the selection apparatus 100 acquires the processing performance step value x (step S1203).
  • the state information 601 indicating the operation state with the minimum power consumption value is generated (step S1208).
  • the selection device 100 determines whether or not the generated state information 601 is included in the state list 600 (step S1209).
  • step S1209: Yes When the generated state information 601 is included in the state list 600 (step S1209: Yes), the selection device 100 proceeds to step S1211.
  • step S1209: No When the generated state information 601 is not included in the state list 600 (step S1209: No), the selection device 100 adds the state information 601 to the state list 600 (step S1210).
  • step S1207 when the lower limit processing performance value ⁇ the minimum processing performance value y is not satisfied (step S1207: No), the selection device 100 ends the series of processing.
  • FIG. 13 is a flowchart showing the measurement processing of the power consumption value and the processing performance value shown in FIG.
  • the selection apparatus 100 determines whether there is unselected status information 601 in the status list 600 (step S1301). When there is unselected status information 601 (step S1301: Yes), the selection device 100 selects one status information 601 from the unselected status information 601 (step S1302). The selection device 100 changes the operation state of each element of the CPU 101 to the operation state indicated by the selected state information 601 (step S1303).
  • the selection apparatus 100 executes the specific program for a predetermined time according to the changed operating state, and measures the power consumption value and the processing performance value (step S1304).
  • the selection apparatus 100 assigns the measured power consumption value and processing performance value to the selected state information 601 (step S1305), and returns to step S1301.
  • step S1301 when there is no unselected status information 601 in the status list 600 (step S1301: No), the selection device 100 ends a series of processes.
  • FIG. 14 is a flowchart showing a process for generating the control mode table shown in FIG.
  • the selection apparatus 100 sorts the state information 601 in the state list 600 in descending order of the power consumption value (step S1401). Next, in the sorted state list 600, the selection apparatus 100 has state information whose processing performance value measured for each state information 601 is smaller than the processing performance value measured for the next state information 601 in the order of registration of the state information 601. 601 is deleted (step S1402). Although the state information 601 is sorted in descending order of the power consumption value, the state information 601 when the processing performance indicated by the processing performance value is not in the descending order is deleted.
  • the selection device 100 acquires a plurality of specific power consumption values (step S1403).
  • the selection apparatus 100 determines whether there is an unselected specific power consumption value among a plurality of specific power consumption values (step S1404). When there is an unselected specific power consumption value (step S1404: Yes), the selection apparatus 100 selects one specific power consumption value from the unselected specific power consumption values (step S1405). Then, the selection device 100 detects the state information 601 in the state list 600 where the difference between the measured power consumption value and the selected specific power consumption value is equal to or less than a predetermined value (step S1406).
  • the predetermined value is an allowable error as described above.
  • the selection apparatus 100 determines whether or not the state information 601 has been detected (step S1407).
  • step S1407: Yes the selection apparatus 100 selects the state information 601 having the highest processing performance indicated by (processing performance value / power consumption value) from the detected state information 601. (Step S1408), the process proceeds to step S1410.
  • step S1407: No the selection apparatus 100 performs processing indicated by the measured processing performance value in the state information 601 in which the measured power consumption value is equal to or less than the selected power consumption value.
  • the state information 601 with the highest performance is selected (step S1409).
  • the selection device 100 registers the selected specific power consumption value, the selected state information 601 and the frequency at the time of measurement as one element in the control mode table 1000 (step S1410), and returns to step S1404. .
  • step S1404 when there is no unselected specific power consumption value (step S1404: No), the selection device 100 ends a series of processes.
  • Example 2 In Example 2, the processing performance value and power consumption value of the CPU 101 are measured for each operating state, and the measured processing performance value is corrected based on the ratio between each of the plurality of specific power consumption values and the measured power consumption value. Each operating state with the highest corrected processing performance value is selected. Furthermore, in Example 2, the frequency at the time of measurement is corrected based on this ratio. Thereby, even if the number of the state information 601 is small, it is possible to select the state information 601 that provides the highest processing performance indicated by the processing performance value when the specific power consumption value is obtained by changing the frequency of the clock signal. Therefore, it is possible to specify an operating state with high processing performance for each upper limit of the power value during operation.
  • the selection unit 504 selects any one of the acquired state information 601 from the power consumption value obtained by measuring the measured processing performance value and the specific power consumption value. The selection is made based on the processing performance value corrected based on the ratio. In addition, the selection unit 504 selects state information 601 indicating an operation state in which the processing performance of the CPU 101 indicated by the corrected processing performance value is the highest. Specifically, the selection unit 504 corrects the processing performance value measured for each state information 601 based on the following formula (1) for each of a plurality of specific power consumption values.
  • Correction processing performance value Measured processing performance value ⁇ (specific power consumption value ⁇ static power value) / (dynamic power value) (1)
  • the selection unit 504 selects the state information 601 having the highest correction processing performance value for each of the plurality of specific power consumption values.
  • the ratio is (specific power consumption value ⁇ static power value) / (dynamic power value).
  • the frequency deriving unit 505 corrects the specific frequency when the power consumption value and the processing performance value are measured for each of the plurality of specific power consumption values based on the ratio of the selected state information 601.
  • FIG. 15 is an explanatory diagram of an example of selecting state information according to the second embodiment.
  • the frequency f0 at the time of measurement is the highest frequency that can be set in the CPU 101. Therefore, the state information 601 to be corrected for each of the plurality of specific power consumption values is state information 601 in which the measured power consumption value is larger than the specific power consumption value.
  • the horizontal axis indicates the processing performance value
  • the vertical axis indicates the power consumption value.
  • the points indicated by ⁇ are points plotted based on the processing performance value measured for each state information 601 and the measured power consumption value.
  • the points indicated by ⁇ are points plotted based on the processing performance value obtained by correcting the processing performance value measured for each state information 601 and the specific power consumption value.
  • Points a1 to a7 are points plotted based on the processing performance values obtained by correcting the processing performance values measured for the state information 601-A for the specific power consumption values P1 to P7, respectively.
  • Points b3 to b7 are points plotted based on the processing performance values obtained by correcting the processing performance values measured for the state information 601-B for the specific power consumption values P3 to P7, respectively.
  • Points c5 to c7 are points plotted based on the processing performance values obtained by correcting the processing performance values measured for the state information 601-C for the specific power consumption values P5 to P7, respectively.
  • Point d7 is a point plotted based on the processing performance value obtained by correcting the processing performance value measured for state information 601-D for each specific power consumption value P7.
  • the selection unit 504 selects state information 601 having the highest processing performance indicated by the corrected processing performance value for each specific power consumption value. For example, taking the specific power consumption value P7 as an example, according to the comparison between the point a7, the point b7, the point c7, and the point d7, since the point d7 has the highest processing performance, the selection unit 504 Status information 601-D is selected.
  • the control mode table generation unit 506 generates a table in which each of the plurality of specific power consumption values, the state information 601 selected for the specific power consumption value, and the correction frequency corrected for the specific power consumption value are associated with each other. To do.
  • the table generated in the same manner as in the first embodiment is referred to as a control mode table 1000.
  • the generated control mode table 1000 is stored in a storage device such as the RAM 302 or the disk 304.
  • the CPU 101 stores the control mode table 1000 in the control mode table storage buffer 405.
  • FIG. 16 is an explanatory diagram of an example of a control mode table according to the second embodiment. Since each field of the control mode table 1000 is the same as the example described in the first embodiment, detailed description thereof is omitted.
  • the state information 601-A is selected for the specific power consumption value P0, and the frequency is f0.
  • the state information 601-A is selected, and the frequency is f1.
  • the state information 601-B is selected, and the frequency is f0.
  • the state information 601-B is selected, and the frequency is f2.
  • the state information 601-C is selected, and the frequency is f0.
  • the state information 601-C is selected, and the frequency is f3.
  • the state information 601-D is selected, and the frequency is f0.
  • the state information 601-D is selected, and the frequency is f4.
  • FIG. 17 is an explanatory diagram illustrating a comparative example of the power consumption value and the processing performance value obtained by the DFS and the second embodiment.
  • the vertical axis represents the power consumption value
  • the horizontal axis represents the processing performance value.
  • the MIPS value is given as the processing performance value. This is an example where the points indicated by ⁇ and the dotted line are DFS. In the case of DFS, when the frequency is adjusted with one state information 601 set, the power consumption value and the processing performance value change as indicated by the dotted line.
  • the MIPS value when adjusted by DFS is 3.0, whereas when adjusted by Example 2, the MIPS value is 3.5.
  • the MIPS value is improved by 0.5.
  • the power consumption value is 20 [W] and 18 [W]
  • the MIPS value is improved by 0.8 and 1.3, respectively.
  • the power management mechanism of the system operates for 2 seconds when the upper limit value of the power consumption value is 22 [W], operates for 3 seconds when the upper limit value is 20 [W], and the upper limit value.
  • FIG. 18 is a flowchart showing a process for generating the control mode table shown in FIG.
  • the selection apparatus 100 sorts the state information 601 in the state list 600 in descending order of the power consumption value (step S1801).
  • the selection apparatus 100 deletes the state information 601 in which the processing performance value measured for each state information 601 is smaller than the processing performance value measured for the next state information 601 in the registration order from the sorted state list 600. (Step S1802).
  • the selection device 100 acquires a plurality of specific power consumption values (step S1803).
  • the selection apparatus 100 determines whether there is an unselected specific power consumption value among a plurality of specific power consumption values (step S1804). When there is an unselected specific power consumption value (step S1804: Yes), the selection device 100 selects one specific power consumption value from the unselected specific power consumption values (step S1805).
  • the selection device 100 registers the selected specific power consumption value, the selected state information 601 and the correction frequency as one element in the control mode table 1000 (step S1809), and returns to step S1804.
  • step S1804 when there is no unselected specific power consumption value (step S1804: No), the selection device 100 ends a series of processes.
  • FIG. 19 is an explanatory diagram showing an example of power consumption value control based on the control mode table.
  • the power consumption control unit 403 includes, for example, an upper limit power value register 1911, a current mode setting register 406, a power comparison unit 1912, a mode table search unit 1913, a setting change unit 1914, and a current mode setting register update unit 1915.
  • Each unit may be formed by an element such as an AND circuit, a NOT logic circuit, an OR circuit, or an FF that is a latch circuit.
  • Each unit may be realized by an ASIC such as a standard cell or a structured ASIC, or a PLD such as an FPGA.
  • the functions of each unit described above may be defined in a netlist using a hardware description language or the like, and each unit may be realized by logically synthesizing the netlist and giving it to an ASIC or PLD.
  • the current mode setting register 406 is a register that can set a power value, a frequency, and state information 601.
  • a current power consumption value measured by the power consumption value measuring unit 401 is set in the current mode setting register 406 that can set the power value.
  • the frequency of the clock supplied to each element is set in the current mode setting register 406 that can set the frequency.
  • the state information 601 indicating the operating state of each element of the CPU 101 is set in the register capable of setting the state information 601.
  • the power consumption control unit 403 sets the upper limit power value received from the system management mechanism 1900 in the upper limit power value register 1911.
  • the CPU 101 may be a processor included in a multiprocessor system. Therefore, the system management mechanism 1900 is a mechanism for causing the entire system to execute a job so as not to exceed the power consumption constraint of the system, for example.
  • the system management mechanism 1900 may be dedicated hardware, or may be software such as an OS executed on a CPU such as the CPU 101 or a non-control target 1901 or a non-control target 1902 other than the CPU 101. .
  • the system management mechanism 1900 determines an upper limit value of power consumption for each operating CPU 101 of the multiprocessor based on power restrictions of the system, a power management policy such as whether power is priority or performance priority, and the like. The power consumption of each CPU 101 is controlled.
  • the power comparison unit 1912 compares the upper limit power value set in the upper limit power value register 1911 with the power value set in the current mode setting register 406.
  • the mode table search unit 1913 stores the control mode stored in the control mode table storage buffer 405. From table 1000, state information 601 and frequency are retrieved. Further, when the power value set in the current mode setting register 406 is less than or equal to the upper limit power value set in the upper limit power value register 1911 and the difference between the power value and the upper limit power value is within a predetermined value, The mode table search unit 1913 searches for the state information 601 and the frequency.
  • the predetermined value is, for example, the difference between the nearest specific power consumption values.
  • the predetermined value is set in a register in the CPU 101, for example.
  • the mode table search unit 1913 searches the control mode table 1000 stored in the control mode table storage buffer 405 for the state information 601 and the frequency associated with the specific power consumption value that is equal to or lower than the upper limit power value. To do.
  • the control mode table 1000 is the control mode table 1000 generated in the first embodiment or the second embodiment.
  • the mode table search unit 1913 searches for the state information 601 and the frequency whose specific power consumption value is closest to the upper limit power value among the searched state information 601 and frequency. Further, the mode table search unit 1913 searches for state information 601 and frequency different from the state information 601 and frequency set in the current mode setting register 406.
  • the setting changing unit 1914 interrupts the program being executed, then changes the processor to the operating state indicated by the searched state information 601, and notifies the PLL 404 of the change so that the searched frequency is obtained. Then, the current mode setting register update unit 1915 sets the searched state information 601 and frequency in the current mode setting register 406 after the setting change unit 1914 changes. Then, the current mode setting register update unit 1915 resumes the execution of the suspended program due to the interrupt.
  • an interrupt may be generated using the update of the upper limit power value register 1911 as a trigger, and the functions such as the mode table search unit 1913 and the power comparison unit 1912 may be implemented as software as exception processing. Further, an interrupt may be generated with the comparison by the power comparison unit 1912 as a trigger, and the function of the mode table search unit 1913 may be realized as software as exception processing.
  • FIG. 20 is a flowchart illustrating an example of a selection processing procedure performed by the CPU 101.
  • the CPU 101 determines whether an upper limit power value has been received from the system management mechanism 1900 (step S2001). Specifically, the CPU 101 determines that the upper limit power value has been received when the value of the upper limit power value register 1911 is updated. If it is determined that the upper limit power value has not been received (step S2001: NO), the process returns to step S2001. When it is determined that the upper limit power value has been received (step S2001: Yes), the CPU 101 determines whether or not the measured power consumption value is greater than the upper limit power value (step S2002). When the measured power consumption value is larger than the upper limit power value (step S2002: Yes), the CPU 101 proceeds to step S2004.
  • step S2002 when the measured power consumption value is less than or equal to the upper limit power value (step S2002: No), the CPU 101 determines whether or not the difference between the measured power consumption value and the upper limit power value is greater than or equal to a predetermined value. (Step S2003). As described above, the predetermined value is a difference between the nearest specific power consumption values. If not the predetermined value or more (step S2003: No), the CPU 101 returns to step S2001.
  • step S2003 determines whether it is equal to or greater than the predetermined value. If it is equal to or greater than the predetermined value (step S2003: Yes), the CPU 101 is associated with the specific power consumption value closest to the upper limit power value among the specific power consumption values smaller than the upper limit power value from the control mode table 1000.
  • the retrieved frequency and state information 601 are searched (step S2004).
  • the CPU 101 generates an interrupt in the program being executed (step S2005).
  • the CPU 101 changes the operating state of each element of the CPU 101 or the frequency of the clock signal based on the difference between the frequency and state information 601 set in the current mode setting register 406 and the searched frequency and state information 601. (Step S2006).
  • the CPU 101 sets the searched frequency and state information 601 in the current mode setting register 406 (step S2007).
  • the CPU 101 resumes execution of the program interrupted by the interrupt (step S2008), and returns to step S2001.
  • the selection device measures the processing performance value and the power consumption value of the processor for each operating state. Then, the selection device specifies each operation state with high processing performance with each of a plurality of predetermined power values as an upper limit, based on the measurement result. As a result, the processor can execute the program in an operating state that satisfies the upper limit condition of the power consumption value and has high processing performance.
  • the selection device specifies an operating state in which the processing performance indicated by the processing performance value measured with each of the plurality of predetermined power consumption values as the upper limit is the highest.
  • the processor can execute the program in an operating state that satisfies the upper limit condition of the power consumption value and has high processing performance.
  • the selection device generates a control mode table in which the specific power value corresponding to the predetermined power consumption value, the operating state selected for the predetermined power consumption value, and the frequency at the time of measurement are associated with each other. As a result, it is possible to automatically generate a control mode table that allows the operating state estimated to have the highest performance for each upper limit of the power value to be specified during operation.
  • the selection device measures the processing performance value and the power consumption value of the processor for each operating state, and sets the ratio between each of the plurality of specific power consumption values and the measured power consumption value. The measured processing performance value is corrected. Then, the selection device selects each operation state in which the corrected processing performance value is the highest. Furthermore, the selection apparatus according to the second embodiment corrects the frequency at the time of measurement based on this ratio. Thereby, even if the number of state information is small, it is possible to select the state information that provides the highest processing performance indicated by the processing performance value when the specific power consumption value is obtained by changing the frequency of the clock signal. Therefore, during operation, it is possible to switch to an operating state with high processing performance while satisfying the power consumption upper limit condition.
  • the selection device selects an operating state in which the processing performance indicated by the correction processing performance value is the highest.
  • the processor can execute the program in an operating state with high processing performance that satisfies the upper limit of the power consumption value.
  • a CPU that can change the operating state of each element is identified as the closest to the upper limit power value among the specific power consumption values that are less than or equal to the upper limit power value, according to the control mode table generated by the selection device during operation. Search the operating status associated with the power consumption value. Thereby, during operation, it is possible to switch to an operating state that satisfies the upper limit condition of the power consumption value and increases the processing performance. Therefore, it is possible to improve the processing performance while reducing the power consumption of the CPU.
  • the CPU does not change the operating state when the measured current power consumption value is less than or equal to the upper limit power value received.
  • the operating state is not changed when the operating state is high processing performance, it is possible to prevent the program being executed from being interrupted due to the change of the operating state.
  • the CPU determines that the difference between the measured current power consumption value and the received upper limit power value is the closest difference between the specific power consumption values. If it is too large, the operating state is changed by the control mode table. Thereby, during operation, it is possible to switch to an operation state with the highest performance among the operation states that are equal to or lower than the upper limit value of the power value.
  • the selection method described in the present embodiment can be realized by executing a selection program prepared in advance on a computer such as a personal computer or a workstation.
  • This selection program is recorded on a computer-readable recording medium such as a magnetic disk, an optical disk, or a USB (Universal Serial Bus) flash memory, and is executed by being read from the recording medium by the computer.
  • the selection program may be distributed via a network such as the Internet.
  • 100 selection device 101 CPU 111-A to 111-G, 601-A to 601-J Status information 120, 200 Table 401 Power consumption value measurement unit 402 Processing performance value measurement unit 403 Power consumption control unit 404 PLL 405 Control mode table storage buffer 501 Status information generation unit 502 Acquisition unit 503 Measurement unit 504 Selection unit 505 Frequency derivation unit 506 Control mode table generation unit 600 Status list 1000 Control mode table 1911 Upper limit power value register 1912 Power comparison unit 1913 Mode table search unit 1914 Setting change unit 1915 Current mode setting register update unit

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)
  • Microcomputers (AREA)

Abstract

 選択装置(100)は、各要素(L1,L2)の稼働状態を変更可能なCPU(101)の複数通りの稼働状態の各々について、稼働状態を示す状態情報(111-A~111-G)を取得する。選択装置(100)は、取得した状態情報の各々について、状態情報が示す稼働状態に変更後のCPU(101)に特定プログラムを実行させることにより、変更後のCPU(101)の消費電力値および処理性能値を測定する。選択装置(100)は、異なる複数の所定消費電力値の各々について、取得した状態情報の中から、測定した消費電力値が所定消費電力値以下であるいずれかの状態情報を、測定した処理性能値に基づいて選択する。

Description

[規則37.2に基づきISAが決定した発明の名称] 消費電力値が所定電力値以下である状態情報を、測定した処理性能値に基づいて選択する選択装置
 本発明は、選択方法、選択プログラム、選択装置、および記録媒体に関する。
 従来、プロセッサの低消費電力化を図るため、プロセッサに供給するクロック信号の周波数を制御する技術が公知である(例えば、下記特許文献1参照。)。また、従来、プロセッサの低消費電力化を図るため、プロセッサに供給するクロック信号の周波数および電源電圧値を制御する技術が公知である(例えば、下記特許文献2参照。)。
 また、仮想サーバシステムの管理装置が、サーバなどのハードウェア情報やサーバ上に構築された仮想サーバ情報を元に、CPU(Central Processing Unit)コア数とメモリ容量のリソースに適した仮想サーバを検索することにより、仮想サーバシステムの低消費電力化を図る技術が公知である(例えば、下記特許文献3参照。)。
 また、従来、プロセッサの消費電力値および処理性能値をシミュレーションによって見積もる技術が公知である(例えば、下記非特許文献1参照。)。
 また、従来、プロセッサの各要素の稼働状態が変更される場合、周波数を制御するDFS(Dynamic Frequency Scaling)よりも低消費電力化を図れる場合があることは公知である(例えば、下記非特許文献2参照。)。
特開2007-317054号公報 特開2009-175788号公報 特開2010-61278号公報
David Brooks、他2名、「Wattch:A Framework for Architectural-Level Power Analysis and Optimizations」、ISCA、2000、p.83-94 Yasuko Eckert、他3名、「Something Old and Something New:P-states can Borrow Microarchitecture Techniques Too」、ISLPED、2012
 しかしながら、プログラムの実行においてプロセッサの消費電力値の条件が設定される場合、プロセッサが、その条件を満たしつつ処理性能が高くなる稼働状態を選択することは困難であるという問題点がある。
 1つの側面では、本発明は、消費電力値の条件を満たし処理性能の高い稼働状態によりプロセッサがプログラムを実行することを可能にする選択方法、選択プログラム、選択装置、および記録媒体を提供することを目的とする。
 本発明の一の側面によれば、各要素の稼働状態を変更可能なプロセッサの複数通りの稼働状態の各々について、前記稼働状態を示す状態情報を取得し、取得した前記状態情報の各々について、前記状態情報が示す稼働状態に変更後の前記プロセッサに特定プログラムを実行させることにより、変更後の前記プロセッサの消費電力値および処理性能値を測定し、異なる複数の所定消費電力値の各々について、取得した前記状態情報の中から、測定した前記消費電力値が前記所定消費電力値以下であるいずれかの状態情報を、測定した前記処理性能値に基づいて選択する選択方法、選択プログラム、選択装置、および記録媒体が提案される。
 本発明の他の側面によれば、各要素の稼働状態を変更可能なプロセッサの複数通りの稼働状態の各々について、前記稼働状態を示す状態情報を取得し、取得した前記状態情報の各々について、前記状態情報が示す稼働状態に変更後の前記プロセッサに特定プログラムを実行させることにより、変更後の前記プロセッサの消費電力値および処理性能値を測定し、異なる複数の特定消費電力値の各々について、取得した前記状態情報のうちのいずれかの状態情報を、測定した前記処理性能値を測定した前記消費電力値と前記特定消費電力値との比率とに基づき補正した処理性能値に基づいて選択する選択方法、選択プログラム、選択装置、および記録媒体が提案される。
 本発明の一態様によれば、消費電力値の条件を満たし処理性能の高い稼働状態によりプロセッサがプログラムを実行することを可能にする。
図1は、本発明にかかる選択装置による動作例1を示す説明図である。 図2は、本発明にかかる選択装置による動作例2を示す説明図である。 図3は、実施の形態にかかる選択装置のハードウェア構成例を示すブロック図である。 図4は、CPUの詳細例を示す説明図である。 図5は、選択装置の機能的構成例を示すブロック図である。 図6は、状態リスト例を示す説明図である。 図7は、消費電力値測定部の詳細例を示す説明図である。 図8は、測定結果を各状態情報に付与した状態リスト例を示す説明図である。 図9は、実施例1にかかる状態情報の選択例を示す説明図である。 図10は、制御用モード表例を示す説明図である。 図11は、実施例1にかかる選択装置による選択処理手順例を示すフローチャートである。 図12は、図11に示した状態リストの生成処理手順例を示すフローチャートである。 図13は、図11に示した消費電力値および処理性能値の測定処理を示すフローチャートである。 図14は、図11に示した制御用モード表の生成処理を示すフローチャートである。 図15は、実施例2にかかる状態情報の選択例を示す説明図である。 図16は、実施例2にかかる制御用モード表例を示す説明図である。 図17は、DFSと実施例2とのそれぞれによる消費電力値および処理性能値の比較例を示す説明図である。 図18は、図11に示した制御用モード表の生成処理を示すフローチャートである。 図19は、制御用モード表に基づく消費電力値制御例を示す説明図である。 図20は、CPUによる選択処理手順例を示すフローチャートである。
 以下に添付図面を参照して、本発明にかかる選択方法、選択プログラム、選択装置、および記録媒体の実施の形態を詳細に説明する。
 図1は、本発明にかかる選択装置による動作例1を示す説明図である。選択装置100は、プロセッサによるプログラムの実行において、消費電力値の上限を満たしつつ処理性能が高くなるようなプロセッサの各要素の稼働状態を提供するためのテーブルを生成するコンピュータである。ここで、プロセッサとは、例えば、図1に示すCPU101であり、各要素の稼働状態を変更可能である。CPU101の各要素とは、例えば、図1に示すような1次キャッシュL1や2次キャッシュL2、さらに、演算器などの命令実行に関する要素である。各要素の稼働状態を変更するとは、図1のような1次キャッシュL1や2次キャッシュL2を例に挙げると、例えばキャッシュのWay数を可変として各キャッシュに含まれる各Wayに対応する複数のブロックのうち、稼働させるブロックの数を変更させることである。具体的には、例えば、稼働状態を示す状態情報111と周波数を設定可能なレジスタをCPU101が有し、CPU101の稼働状態は当該レジスタに設定された状態情報111が示す稼働状態に変更させることができる。また、CPU101の各要素に与えるクロックの周波数は、当該レジスタに設定された周波数に変更させることができる。CPU101は、選択装置100が有するCPU101であってもよいし、選択装置100が稼働状態を変更可能な他の装置が有するCPU101であってもよい。
 まず、選択装置100は、稼働状態を変更可能なCPU101の複数通りの稼働状態の各々について、稼働状態を示す状態情報111を取得する。より具体的に、状態情報111は、各要素の稼働状態の組み合わせを示す。複数通りの稼働状態は、例えば、消費電力値や処理性能値に基づいて特定プログラムに対して適した稼働状態をシミュレーションで求めることにより得られる。特定プログラムは、例えば、CPU101に実行させるために用意されたプログラムであり、実際のアプリケーションのプログラムであってもよい。また、特定プログラムは、複数種類あってもよい。詳細例については、後述する。
 図1に示すように、状態情報111-Fを例に挙げると、状態情報111-Fが示す稼働状態にCPU101が変更された場合、CPU101内の1次キャッシュL1の4つのブロックB11~B14のうち、ブロックB11とブロックB12とは稼働されているが、ブロックB13とブロックB14とは非稼働となる。CPU101内の2次キャッシュL2の2つのブロックB21とブロックB22とのうち、ブロックB21は稼働されているが、ブロックB22は非稼働となる。図1に示す1次キャッシュL1の例では、クロック信号を供給するか否かを切り替え可能なクロックゲーティング素子g11~g14がそれぞれクロック信号線と1次キャッシュL1のブロックとの間に設けられる。CPU101は、クロックゲーティング素子g11~g14を制御することによって切り替えを制御可能である。図1に示す2次キャッシュL2の例では、電源を供給するか否かを切り替え可能なパワーゲーティング素子g21,g22が電源供給線と2次キャッシュL2のブロックとの間に設けられる。CPU101は、パワーゲーティング素子g21,g22を制御することにより切り替えを制御可能である。このようにして、各要素の稼働状態が変更される。
 つぎに、選択装置100は、取得した状態情報111の各々について、状態情報111が示す稼働状態に変更後のCPU101に特定プログラムを一定時間だけ実行させることにより、変更後のCPU101の消費電力値および処理性能値を測定する。一定時間は、定常的な消費電力値および性能値を取得するのに十分な時間であり、例えば利用者によって指定される。例えば、CPU101の内部に消費電力値および処理性能値を測定可能な回路が予め設けられ、特定プログラムを実行させることにより測定する。また、処理性能値は、例えば、MIPS(Million Instruction Per Second)値であり、MIPS値の場合、値が大きいほど処理性能が高いことを示す。また、消費電力値は、動的電力値と、リーク電流により消費される静的電力値と、に区別して測定してもよい。
 つぎに、選択装置100は、異なる複数の所定消費電力値の各々について、取得した状態情報111の中から、測定した消費電力値が所定消費電力値以下であるいずれかの状態情報111を、測定した処理性能値に基づいて選択する。具体的には、選択装置100は、異なる複数の特定消費電力値を取得する。複数の特定消費電力値は、最小値から最大値までの間で所定幅ずつ異なる値である。所定幅の間隔が小さいほど、特定消費電力値の数は多くなる。所定消費電力値は、特定消費電力値そのものであってもよいし、特定消費電力値に誤差を加算させた値であってもよい。図1の例では、所定消費電力値は、特定消費電力値と誤差とを加算させた値とする。ここでは、例えば、所定消費電力値は、特定消費電力値と誤差とを加算させた値とし、誤差は5とする。図1の例では、特定消費電力値は、20ずつ異なる値である。
 例えば、特定消費電力値が95であれば、所定消費電力値は100であるため、所定消費電力値以下であり最も処理性能が高くなる状態情報111として、状態情報111-Aが選択される。例えば、特定消費電力値が75であれば、所定消費電力値は80であるため、所定消費電力値以下であり最も処理性能が高くなる状態情報111として、状態情報111-Bが選択される。例えば、特定消費電力値が55であれば、所定消費電力値は60であるため、所定消費電力値以下であり最も処理性能が高くなる状態情報111として、状態情報111-Cが選択される。
 そして、選択装置100は、特定消費電力値の各々と、特定消費電力値について選択した状態情報111と、を関連付けたテーブル120を生成する。これにより、運用時に、実際の消費電力値の条件を満たし高処理性能な稼働状態に切り替えることが可能となる。消費電力値の条件とは、例えば、消費電力値の上限に関する条件である。
 また、動作例1にかかる選択装置100によれば、DFSと比較した場合に、電力効率を向上させることができる。DFSはプログラム実行時にCPUの周波数を下げることで消費電力を下げる技術である。類似の技術にDVFS(Dynamic Voltage and Frequency Scaling)があり、こちらはDFSに加えて周波数を下げることにより生じるタイミング余裕の分だけ動作電圧を下げることによってさらに消費電力を下げる技術である。電力効率とは、単位消費電力あたりの処理量である。
 CPU101の処理性能はクロック信号の周波数に比例するため、DFSやDVFSを利用した消費電力制御においても消費電力を同程度削減するならばなるべく周波数を下げずに電力を下げたほうがよい。DFSでは、周波数のみを制御し電源電圧は変化させないため、消費電力値のうち動的電力値のみが周波数に比例して減少する。これに対して、DVFSは、さらに電源電圧値が周波数に応じて下がるため、動的電力値は周波数の3乗程度のオーダーで変動する。また、配線幅およびゲート幅の微細化の進んだテクノロジではDIBL(Drain Induced Barrier Lowering)効果などにより電源電圧値が下がると、リーク電流も減少するため、動的電力値だけでなく静的電力値も同程度のオーダーで下がる。そのため、DVFSはDFSよりも効率よく消費電力値を下げることが可能である。
 一方、微細化が進むにつれて、テクノロジースケーリングの限界によりトランジスタの最低動作電圧値が下げられない。また、半導体集積回路に混載されるRAM(Random Access Memory)マクロやアナログマクロなどの動作保証最低電圧値がディジタル回路の動作保証最低電圧値のようには下げられない。そのため、DVFSによって制御可能な周波数の範囲が狭まっている。また、電源電圧値は周波数と比較した場合に制御が複雑であり、制御に要する時間が大きい。また、電源電圧値の変動時の動作を保証させるための設計や検証が周波数の変動時の動作を保証させるための設計や検証よりも困難である。そのため、電源電圧値の制御を消費電力制御の手段として利用できない場合もある。これに対して、動作例1にかかる選択装置100によれば、電源電圧値を変化させることなく、DFSと比較した場合に電力効率を向上させることができる。
 図2は、本発明にかかる選択装置による動作例2を示す説明図である。動作例2では、図1に示す動作例1と状態情報111を選択する場合の例が異なり、各状態情報111について測定については同一処理であるため、詳細な説明を省略する。また、図1に示す選択装置100と、図2に示す選択装置100とは、異なる装置であってもよいが、ハードウェア構成などが同一であってよいため、ここでは同一符号を付す。選択装置100は、異なる複数の特定消費電力値の各々について、取得した状態情報111のうちのいずれかの状態情報111を、測定した処理性能値を測定した消費電力値と特定消費電力値との比率とに基づき補正した処理性能値に基づいて、選択する。また、選択装置100は、補正した処理性能値が示すCPU101の処理性能が最も高くなる稼働状態を示す状態情報111を選択する。具体的には、選択装置100は、「測定した処理性能値×(特定消費電力値/測定した消費電力値)」により測定した処理性能値を補正する。
 ここでは、例えば、測定時の周波数が設定可能な最も高い周波数とし、測定時の周波数よりも低く設定できるが、測定時の周波数よりも高く設定できないこととする。図2に示すように特定消費電力値が55の場合を例に挙げると、状態情報111-Aについての補正処理性能値は、「100×(55/95)」であり、57.9である。状態情報111-Bについての補正処理性能値は、「80×(55/75)」であり、58.7である。状態情報111-Cについての補正処理性能値は、「40×(55/60)」であり、36.7である。状態情報111-D~状態情報111-Eについては、処理性能値が示す処理性能が状態情報111-Cよりも低く、周波数を高く変更しなければ、処理性能値を補正できないため、補正対象から除外される。そして、図1の例では、上述したように、処理性能値がMIPS値であれば、選択装置100は、特定消費電力値が55の場合、補正処理性能値が最も大きい値である状態情報111-Bを選択する。また、より具体的には、消費電力値が、動的電力値と、リーク電流値である静的電力値と、に区別して測定された場合、「動的電力値/(特定消費電力値-静的電力値)」を比率とする。この場合の詳細例は、後述する。
 さらに、選択装置100は、複数の特定消費電力値の各々について、消費電力値および処理性能値を測定した時の周波数を、選択した状態情報111についての比率に基づいて補正する。
 このように、測定した消費電力値が特定消費電力値に近い状態情報111がなくとも、周波数を変更させることが可能であれば、周波数を変更させて処理性能が高くなる状態情報111を選択することができる。そして、選択装置100は、特定消費電力値の各々と、特定消費電力値について選択した状態情報111と、補正した周波数と、を関連付けたテーブル200を生成する。これにより、実際の消費電力の上限を満たしつつ高処理性能な稼働状態を選択させることが可能となる。また、動作例2にかかる選択装置100によれば、DFSと比較した場合に、電力効率を向上させることができる。
(選択装置100のハードウェア稼働状態例)
 図3は、実施の形態にかかる選択装置のハードウェア構成例を示すブロック図である。図3において、選択装置100は、CPU101と、ROM(Read Only Memory)301と、RAM302と、ディスクドライブ303と、ディスク304と、を有する。選択装置100は、I/F(InterFace)305と、入力装置306と、出力装置307と、を有している。また、各部はバス300によってそれぞれ接続される。
 ここで、CPU101は、選択装置100の全体の制御を司る。ROM301は、ブートプログラムなどのプログラムを記憶している。RAM302は、CPU101のワークエリアとして使用される。ディスクドライブ303は、CPU101の制御にしたがってディスク304に対するデータのリード/ライトを制御する。ディスク304は、ディスクドライブ303の制御で書き込まれたデータを記憶する。ディスク304としては、磁気ディスク、光ディスクなどが挙げられる。
 I/F305は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワークNETに接続され、このネットワークNETを介して他の装置に接続される。そして、I/F305は、ネットワークNETと内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F305には、例えばモデムやLANアダプタなどを採用することができる。
 入力装置306は、キーボード、マウス、タッチパネルなど利用者の操作により、各種データの入力を行うインターフェースである。また、入力装置306は、カメラから画像や動画を取り込むこともできる。また、入力装置306は、マイクから音声を取り込むこともできる。出力装置307は、CPU101の指示により、データを出力するインターフェースである。出力装置307には、ディスプレイやプリンタが挙げられる。
 図4は、CPUの詳細例を示す説明図である。図4の例では、CPU101は、命令バッファ411、デコーダ412、リザベーションステーション413、アップデートバッファ414、Floatingレジスタファイル415、レジスタファイル416等の要素を有する。また、CPU101は、各種演算パイプライン417~419、1次キャッシュL1、2次キャッシュL2、Move-out Buffer420、Move-in Buffer421などの要素を有する。CPU101は、状態情報に基づいて稼働状態を変更可能である。具体的には、CPU101は、各要素と、各要素にクロック信号を供給するPLL(Phase Locked Loop)404と、消費電力制御部403と、消費電力値測定部401と、制御用モード表格納バッファ405と、処理性能値測定部402と、を有する。PLL404は、消費電力制御部403によってクロック信号の周波数が調整される。制御用モード表格納バッファ405は、本実施の形態において生成される制御用モード表が格納される。実施の形態では、制御用モード表格納バッファ405をCPU101の内部に設ける例を挙げるが、これに限らず、CPU101外部のRAM302やディスク304などの記憶装置であってもよい。消費電力制御部403と、消費電力値測定部401と、処理性能値測定部402と、の詳細については、後述する。
 また、例えば、各要素の部分要素へクロック信号を供給するか否かを切り替え可能なクロックゲーティング素子が部分要素のクロック信号線にそれぞれ設けられ、CPU101がクロックゲーティング素子を制御することにより、各要素の稼働状態を変更する。また、例えば、電源供給回路から各要素の部分要素へ電源を供給するか否かを切り替え可能なパワーゲーティング素子がブロックの電源供給線にそれぞれ設けられ、CPU101がパワーゲーティング素子を制御することにより、各要素の稼働状態を変更する。
(選択装置100の機能的構成例)
 図5は、選択装置の機能的構成例を示すブロック図である。選択装置100は、状態情報生成部501と、取得部502と、測定部503と、選択部504と、周波数導出部505と、制御用モード表生成部506と、の制御部を有する。制御部(測定部503から制御用モード表生成部506)の処理は、例えば、CPU101がアクセス可能な記憶装置に記憶された選択プログラムにコーディングされる。そして、CPU101が記憶装置から情報処理プログラムを読み出して、選択プログラムにコーディングされた処理を実行する。これにより、各部の処理が実現される。また、制御部(測定部503から制御用モード表生成部506)の処理結果は、例えば、RAM302、ディスク304などの記憶装置に記憶される。
 また、本実施の形態については、選択部504による選択処理が異なる実施例1と実施例2とに分けて説明する。実施例1では、複数の状態情報から、測定した消費電力値が特定消費電力値以下であるいずれかの状態情報を選択する。実施例2では、複数の状態情報から、測定した処理性能値を測定した消費電力値と特定消費電力値によって補正した処理性能値が最も高くなる状態情報を選択する。なお、実施例1では、上述した図1に示す動作例1の詳細を示し、実施例2では、上述した図2に示す動作例2の詳細を示す。また、周波数導出部505による処理は、実施例2において行われる処理であり、実施例1において行われる処理でない。
(実施例1)
 実施例1では、各稼働状態についてCPU101の処理性能値および消費電力値を測定する。そして、実施例1では、複数の所定電力値のそれぞれを上限として性能が高くなる各稼働状態を測定結果により選択する。これにより、電力値の上限ごとに高処理性能な稼働状態を運用時に特定することが可能となる。
 状態情報生成部501は、CPU101の特定の稼働状態を示す状態情報を取得する。特定の稼働状態とは、基準となる稼働状態である。特定の稼働状態を示す状態情報を特定状態情報と称する。
 状態情報生成部501は、特定の稼働状態においてCPU101が特定プログラムを実行した場合の特定処理性能値をシミュレーションによって得る。ここでのシミュレーションは、例えば、上述した非特許文献1などのシミュレーション技術を用いればよい。
 状態情報生成部501は、所定範囲内の異なる複数の下限処理性能値の各々について、CPU101が特定プログラムを実行した場合のシミュレーションを行う。これにより、状態情報生成部501は、処理性能値が下限処理性能値以上となる稼働状態から、消費電力値が最も小さくなる稼働状態を示す状態情報を生成する。所定範囲は、例えば、特定処理性能値から最低処理性能値までの範囲である。最低処理性能値については、利用者によって定められ、予めRAM302やディスク304などの記憶装置に記憶される。また、特定プログラムは、生成された制御用モード表で電力を調整されるプログラムを用いることによりそのプログラムで電力効率が高くなる稼働状態が生成される。また、調整対象となるプログラムを用いずに、例えば、整数演算重視のプログラム、浮動小数点演算重視のプログラム、キャッシュアクセス重視のプログラム、メモリアクセス重視のプログラムなどのCPU101のいずれかの要素の利用に特徴がある複数のプログラムを用いてもよい。この場合、この複数のプログラムのうち測定部503で実行されるプログラムと要素の利用状況が類似したプログラムを用いて生成された稼働状態において高い電力効率となる。特定プログラムは、予めRAM302やディスク304などの記憶装置に記憶される。
 具体的には、状態情報生成部501は、CPU101について、可変値を取る各要素が取りうる値の組み合わせとして得られる全稼働状態を探索空間としてその範囲で下限性能制約の元で消費電力最小となる稼働状態を求める。求める解は近似解で構わない。各要素が取りうる値の範囲とは、例えば、1次キャッシュL1を例に挙げると、1次キャッシュL1が有するブロックのうち稼働可能な数の範囲であり、1次キャッシュL1の場合、1~4となる。探索に用いる各稼働状況の評価手段としては、非特許文献1のような電力・性能評価技術を用いることができる。最適解の探索手法としては、例えばCPUの特定の1要素の値を一段階変動させた稼働状態を近傍解とみなして近傍探索を繰り返す逐次探索のような単純な最適化手法を用いてもよいし、より質の良い近似解を探索する高度なアルゴリズムを用いてもよい。状態情報生成部501は、異なる複数の下限処理性能値の各々について得られた状態情報を状態リスト600に登録する。
 図6は、状態リスト例を示す説明図である。状態リスト600は、複数通りの稼働状態のそれぞれについての稼働状態を示す状態情報601が含まれる。状態情報601は、CPU101の要素のそれぞれについて、要素内の稼働させる部分要素の数や同一要素のうち稼働させる要素の数を有する。具体的には、状態リスト600は、演算パイプ数、1次キャッシュL1Way数、命令発行幅、MIBエントリ数などのフィールドを有する。各フィールドに情報が設定されることにより、状態情報(601-A~601-Dなど)として記憶される。例えば、演算パイプ数のフィールドには、稼働させる演算パイプの数が設定される。1次キャッシュL1Way数のフィールドには、稼働させる1次キャッシュL1のWay数が設定される。例えば、命令発行幅のフィールドには、デコーダ412からリザベーションステーション413へ並列に発行可能な命令の数である命令発行幅が設定される。例えば、MIBエントリ数のフィールドには、Move-in Buffer421のエントリ数が設定される。状態リスト600は、例えば、RAM302やディスク304などの記憶装置に記憶される。
 取得部502は、稼働状態を変更可能なCPU101の複数通りの稼働状態の各々について、稼働状態を示す状態情報601を取得する。ここでは、取得部502は、状態情報生成部501によって生成された状態リスト600を取得する。
 測定部503は、取得された状態情報601の各々について、状態情報601が示す稼働状態に変更後のCPU101に特定プログラムを一定時間実行させることにより、変更後のCPU101の消費電力値および処理性能値を測定する。一定時間については、利用者によって定められ、予めRAM302やディスク304などの記憶装置に記憶される。具体的には、測定部503は、消費電力制御部403と、消費電力値測定部401と、処理性能値測定部402と、に消費電力値および処理性能値を測定させる。例えば、消費電力制御部403には、周波数と、状態情報601と、が設定可能であり、測定された現在の消費電力値が設定される現モード設定レジスタ406がある。
 ここでは、例えば、測定部503は、周波数と状態情報601とを設定する。消費電力制御部403は、設定されたCPU101の稼働状態を状態情報601が示す稼働状態に変更し、CPU101の稼働状態に供給されるクロック信号の周波数を設定した周波数となるように変更する。そして、測定部503は、測定した消費電力値を現モード設定レジスタ406に設定する。実施例1では、基準となる周波数を設定する。ここで、実行時間は、例えば、処理性能値と消費電力値を計測可能な時間である。図示しないが、処理性能値測定部402は、CPU101中の命令発行部分に毎サイクルの命令発行数を一定期間ごとに積算していく回路を設けることなどにより処理性能値を測定することができる。命令発行部分とはデコーダ412からリザベーションステーション413に命令情報を転送する部分であり、前述の積算回路はデコーダ412からリザベーションステーション413に転送される命令数を積算する。また、例えば、消費電力値は、静的電力値と動的電力値とに区別して測定される。
 図7は、消費電力値測定部の詳細例を示す説明図である。消費電力値測定部401は、CPU101内の各要素の動作率に基づいて動的電力値を見積もり、変動部分の静的電力値と非変動部分の静的電力値とに基づいて静的電力値を見積もる。
 具体的には、消費電力値測定部401は、係数補正部によって、状態情報601を用いて各動作率の係数を補正する。係数1~Nの各々は、各要素の動作率情報が示す動作率に基づいて回帰分析などの手法により事前に定めた値である。係数1~Nは、CPU101内のレジスタなどに予め設定される。状態情報601は、CPU101の現モード設定レジスタ406から取得される。そして、消費電力値測定部401は、補正した係数1’~N’と動作率情報が示す動作率とを乗算することにより、各要素の動的電力値を算出する。動作率情報1~Nは、例えば、それぞれCPU101内の各要素の動作率を示す情報である。動作率情報は、例えば、1次キャッシュL1の動作率を示す情報、演算器の動作率を示す情報などである。1次キャッシュL1の動作率は、1次キャッシュL1に対する単位時間当たりのアクセス回数などである。図示していないが、各要素に各要素へのアクセスを測定可能なカウンタなどを予め設け、カウンタの値に基づき動作率が算出されることとする。そして、消費電力値測定部401は、動的電力値の総和を算出する。つぎに、消費電力値測定部401は、周波数変換部よって、各要素の動的電力値の総和に対して周波数変換を行い、動的電力値を算出する。
 消費電力値測定部401は、静的電力値について事前に見積もった平均条件におけるCPU101の静的電力値を個々のプロセスのばらつき情報と温度情報によって補正して見積もる。具体的には、消費電力値測定部401は、各要素の物理的な素子数に基づく変動部分1静的電力値から変動部分M静的電力値の各々を、電力補正部によって、状態情報601を用いて補正する。ここでの静的電力値は、予めCPU101内のレジスタに設定される。1次キャッシュL1を例に挙げると、4ブロックのうち、2ブロックのみを動作させる場合、1次キャッシュL1の静的電力値の半分の値が補正された変動部分の静的電力値となる。ただし、パワーゲーティングがされない場合、各要素の静的電力値は変動しないため、すべて非変動部分静的電力値は固定値となり、静的電力値は状態情報601によって補正されない。
 つぎに、消費電力値測定部401は、補正後の変動部分1静的電力値から変動部分M静的電力値と、非変動部分の静的電力値と、を加算する。そして、消費電力値測定部401は、製造ばらつきなどによるばらつき変換や温度による温度変換、電源電圧変換などの変換を行い、静的電力値を出力する。製造ばらつきを示すばらつき情報は、例えば、予めCPU101内のレジスタに設けられた情報であったり、入力装置306を介して取得された情報である。温度を示す温度情報は、例えば、温度を測定可能な装置から取得された情報である。電源電圧値は、CPU101内の各要素に電源電圧を供給する回路から取得された値である。消費電力値の測定結果は、例えば、RAM302やディスク304などの記憶装置や現モード設定レジスタ406などに設定される。
 また、各消費電力値測定部401と処理性能値測定部402とは、論理積回路、否定論理回路、論理和回路や、ラッチ回路であるFF(Flip Flop)などの素子によって形成されてもよい。また、各部は、スタンダードセルやストラクチャードASIC(Application Speciic Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGA(Field Programmable Gate Array)などのPLD(Programmable Logic Device)によって実現されてもよい。具体的には、例えば、上述した消費電力値測定部401と処理性能値測定部402との機能をハードウェア記述言語などによってネットリストに機能定義し、そのネットリストを論理合成してASICやPLDに与えることにより、各部を実現してもよい。
 また、消費電力値測定部401と処理性能値測定部402は、CPU101がアクセス可能な記憶装置に記憶された測定プログラムにコーディングされてもよい。そして、CPU101が記憶装置から測定プログラムを読み出して、測定プログラムにコーディングされた処理を実行する。これにより、消費電力値測定部401と処理性能値測定部402の処理が実現されてもよい。また、消費電力値測定部401と処理性能値測定部402による測定結果は、例えば、RAM302、ディスク304などの記憶装置に記憶されてもよいし、CPU101内に専用のレジスタを予め設けておき、当該専用のレジスタに設定されてもよい。
 図8は、測定結果を各状態情報に付与した状態リスト例を示す説明図である。例えば、状態リスト600内の各状態情報601には、動的電力値と、静的電力値と、処理性能値とが、付与される。
 選択装置100は、異なる複数の特定消費電力値の各々について、取得した状態情報601の中から、測定した消費電力値が特定消費電力値との差が所定値以下である状態情報601のうちのいずれかの状態情報601を、測定した処理性能値に基づいて選択する。複数の特定消費電力値については、予め設計者によって定められる。また、選択装置100は、所定値以下である状態情報601のうちのいずれかの状態情報601のうち、測定した処理性能値が示す処理性能が最も高くなる稼働状態を示す状態情報601を選択する。そして、選択装置100は、選択結果を制御用モード表1000として出力する。
 図9は、実施例1にかかる状態情報の選択例を示す説明図である。グラフは、横軸が処理性能値を示し、縦軸が消費電力値を示す。○によって示す点は、各状態情報601について測定した処理性能値と測定した消費電力値とに基づいてプロットされた点である。●によって示す点は、特定消費電力値P1~P5について選択された構成情報について測定した処理性能値と測定した消費電力値とに基づいてプロットされた点である。特定消費電力値P0については、特定状態情報INIが選択される。
 具体的には、選択部504は、状態リスト600内の状態情報601を、静的電力値と動的電力値との合計値が大きい順にソートする。そして、選択装置100は、状態リスト600から、ソート後の状態リスト600において、処理性能値が降順になっていない状態情報601を削除する。これにより、低電力効率の稼働状態を示す状態情報601を削除することができる。ここでは、例えば、状態情報601-B、状態情報601-C、状態情報601-E、状態情報601-Jが状態リスト600から削除される。
 つぎに、選択部504は、複数の所定消費電力値の各々について、測定された消費電力値が所定消費電力値以下となるいずれかの状態情報601を処理性能値に基づいて選択する。複数の所定消費電力値は、例えば、それぞれ特定消費電力値P1~P5そのもの、または特定消費電力値P1~P5の各々に許容可能な誤差を含めた値である。また、選択部504は、処理性能値が示す処理性能が最も高い状態情報601を選択する。
 具体的には、選択部504は、各状態情報601についての静的電力値と動的電力値との合計値と、特定消費電力値と、の差を算出する。そして、選択部504は、複数の特定消費電力値P1~P5の各々について、差が所定値以内となる状態情報601を検出する。所定値は、許容可能な誤差である。また、選択部504は、差が所定値以内となる状態情報601のうち、処理性能値が示す処理性能が最も高い状態情報601を選択する。また、選択部504は、差が所定値以内となる状態情報601がない場合、合計値が特定消費電力値以下である状態情報601のうち、処理性能値が示す処理性能が最も高い状態情報601を選択する。
 例えば、選択部504は、特定消費電力値P1について、状態情報601-Aを選択する。例えば、選択部504は、特定消費電力値P2について、状態情報601-Dを選択する。例えば、選択部504は、特定消費電力値P3について、状態情報601-Fを選択する。例えば、選択部504は、特定消費電力値P4について、状態情報601-Gを選択する。例えば、選択部504は、特定消費電力値P5について、状態情報601-Hを選択する。
 制御用モード表生成部506は、複数の特定消費電力値P0~P5の各々と、特定消費電力値について選択した状態情報601と、測定時の周波数と、を関連付けたテーブルを生成する。当該テーブルは、制御用モード表1000と称する。例えば、生成された制御用モード表1000は、RAM302やディスク304などの記憶装置に記憶させる。また、制御用モード表1000を用いた制御処理が行われる前に、CPU101は、制御用モード表1000を制御用モード表格納バッファ405に記憶される。
 図10は、制御用モード表例を示す説明図である。制御用モード表1000は、例えば、特定消費電力値、周波数、状態情報601のフィールドを有する。特定消費電力値のフィールドには、上述した特定消費電力値が設定される。周波数のフィールドには、測定時の周波数が設定される。状態情報601のフィールドには、選択された状態情報601が設定される。図10の例では、状態情報601のフィールドには、状態情報601を省略して状態情報601を示す識別情報が設定されているが、実際には図6に示した状態情報601のように各要素の稼働状態などが設定される。各フィールドに情報が設定されることにより、レコード(1001-0~1001-5)として記憶される。
(実施例1にかかる選択装置100による選択処理手順例)
 図11は、実施例1にかかる選択装置による選択処理手順例を示すフローチャートである。選択装置100は、特定プログラムを取得する(ステップS1101)。つぎに、選択装置100は、特定プログラムに基づき状態リスト600の生成処理を行う(ステップS1102)。選択装置100は、特定プログラムに基づき消費電力値および処理性能値の測定処理を行う(ステップS1103)。選択装置100は、制御用モード表1000の生成処理を行う(ステップS1104)。そして、選択装置100は、運用時に特定プログラムを実行し(ステップS1105)、一連の処理を終了する。
 図12は、図11に示した状態リストの生成処理手順例を示すフローチャートである。選択装置100は、特定の稼働状態を示す特定状態情報INIを取得する(ステップS1201)。選択装置100は、取得した特定状態情報INIが示す稼働状態に変更後のCPU101のモデルによる特定プログラムを実行した場合の処理性能値を性能評価シミュレーションにより導出する(ステップS1202)。選択装置100は、処理性能刻み値xを取得する(ステップS1203)。
 つぎに、選択装置100は、最低処理性能値yを取得する(ステップS1204)。そして、選択装置100は、状態リスト600=空とする(ステップS1205)。選択装置100は、下限処理性能値=導出した処理性能値-処理性能刻み値xとする(ステップS1206)。選択装置100は、下限処理性能値≧最低処理性能値yであるか否かを判断する(ステップS1207)。下限処理性能値≧最低処理性能値yである場合(ステップS1207:Yes)、選択装置100は、特定プログラムを実行した場合の処理性能値が示す処理性能が、下限処理性能値が示す処理性能よりも高い状態情報601のうち、消費電力値が最小となる稼働状態を示す状態情報601を生成する(ステップS1208)。選択装置100は、生成した状態情報601が状態リスト600に含まれているか否かを判断する(ステップS1209)。
 生成された状態情報601が状態リスト600に含まれている場合(ステップS1209:Yes)、選択装置100は、ステップS1211に進む。生成された状態情報601が状態リスト600に含まれていない場合(ステップS1209:No)、選択装置100は、状態情報601を状態リスト600に追加する(ステップS1210)。選択装置100は、下限処理性能値=下限処理性能値-処理性能刻み値xとし(ステップS1211)、ステップS1207へ戻る。ステップS1207において、下限処理性能値≧最低処理性能値yでない場合(ステップS1207:No)、選択装置100は、一連の処理を終了する。
 図13は、図11に示した消費電力値および処理性能値の測定処理を示すフローチャートである。選択装置100は、状態リスト600のうち、未選択な状態情報601があるか否かを判断する(ステップS1301)。未選択な状態情報601がある場合(ステップS1301:Yes)、選択装置100は、未選択な状態情報601から1つの状態情報601を選択する(ステップS1302)。選択装置100は、選択した状態情報601が示す稼働状態にCPU101の各要素の稼働状態を変更する(ステップS1303)。
 選択装置100は、変更後の稼働状態によって特定プログラムを所定時間実行し、消費電力値と処理性能値とを測定する(ステップS1304)。選択装置100は、測定した消費電力値と処理性能値とを選択した状態情報601に付与し(ステップS1305)、ステップS1301へ戻る。
 ステップS1301において、状態リスト600のうち、未選択な状態情報601がない場合(ステップS1301:No)、選択装置100は、一連の処理を終了する。
 図14は、図11に示した制御用モード表の生成処理を示すフローチャートである。選択装置100は、状態リスト600内の状態情報601を消費電力値の大きい順にソートする(ステップS1401)。つぎに、選択装置100は、ソート後の状態リスト600のうち、各状態情報601について測定した処理性能値が状態情報601の登録順においてつぎの状態情報601について測定した処理性能値より小さい状態情報601を削除する(ステップS1402)。消費電力値の大きい順に状態情報601がソートされたにも関わらず、処理性能値が示す処理性能が高い順でない場合の状態情報601は削除される。
 選択装置100は、複数の特定消費電力値を取得する(ステップS1403)。選択装置100は、複数の特定消費電力値のうち、未選択な特定消費電力値があるか否かを判断する(ステップS1404)。未選択な特定消費電力値がある場合(ステップS1404:Yes)、選択装置100は、未選択の特定消費電力値から1つの特定消費電力値を選択する(ステップS1405)。そして、選択装置100は、状態リスト600のうち、測定した消費電力値と選択した特定消費電力値との差が所定値以下である状態情報601を検出する(ステップS1406)。所定値は、上述したように許容される誤差である。
 選択装置100は、状態情報601が検出されたか否かを判断する(ステップS1407)。状態情報601が検出された場合(ステップS1407:Yes)、選択装置100は、検出された状態情報601のうち、(処理性能値/消費電力値)が示す処理性能が最も高い状態情報601を選択し(ステップS1408)、ステップS1410へ移行する。状態情報601が検出されなかった場合(ステップS1407:No)、選択装置100は、測定した消費電力値が選択した消費電力値以下である状態情報601の中で、測定した処理性能値が示す処理性能が最も高い状態情報601を選択する(ステップS1409)。
 つぎに、選択装置100は、選択した特定消費電力値と、選択した状態情報601と、測定時の周波数と、を1要素として制御用モード表1000に登録し(ステップS1410)、ステップS1404へ戻る。ステップS1404において、未選択な特定消費電力値がない場合(ステップS1404:No)、選択装置100は、一連の処理を終了する。
(実施例2)
 実施例2では、各稼働状態についてCPU101の処理性能値及び消費電力値を測定し、複数の特定消費電力値のそれぞれと測定した消費電力値との比率に基づき測定した処理性能値を補正し、補正した処理性能値が最も高くなる各稼働状態を選択する。さらに、実施例2では、この比率に基づき測定時の周波数を補正する。これにより、状態情報601の数が少なくても、クロック信号の周波数の変更により特定消費電力値となった場合の処理性能値が示す処理性能が最も高くなる状態情報601を選択することができる。したがって、電力値の上限ごとに高処理性能な稼働状態を運用時に特定することが可能となる。
 選択部504は、複数の特定消費電力値の各々について、取得した状態情報601のうちのいずれかの状態情報601を、測定した処理性能値を測定した消費電力値と前記特定消費電力値との比率とに基づき補正した処理性能値に基づいて、選択する。また、選択部504は、補正した処理性能値が示すCPU101の処理性能が最も高くなる稼働状態を示す状態情報601を選択する。具体的には、選択部504は、複数の特定消費電力値の各々について、以下式(1)に基づいて各状態情報601について測定した処理性能値を補正する。
 補正処理性能値=測定した処理性能値×(特定消費電力値-静的電力値)/(動的電力値)・・・(1)
 そして、選択部504は、複数の特定消費電力値の各々について、補正処理性能値が最も高くなる状態情報601を選択する。(特定消費電力値-静的電力値)/(動的電力値)が、比率である。
 また、周波数導出部505は、複数の特定消費電力値の各々について、消費電力値および処理性能値を測定した際の特定周波数を、選択した状態情報601についての比率に基づいて補正する。
 図15は、実施例2にかかる状態情報の選択例を示す説明図である。ここでは、測定時の周波数f0がCPU101に設定可能な周波数の中で最も高い周波数とする。そのため、複数の特定消費電力値の各々についての補正対象となる状態情報601は、測定した消費電力値が特定消費電力値より大きい状態情報601とする。
 図15中、グラフは、横軸が処理性能値を示し、縦軸が消費電力値を示す。○によって示す点は、各状態情報601について測定した処理性能値と測定した消費電力値とに基づいてプロットされた点である。●によって示す点は、各状態情報601について測定した処理性能値を補正した処理性能値と特定消費電力値とに基づいてプロットされた点である。
 点a1~a7は、それぞれ特定消費電力値P1~P7について、状態情報601-Aについて測定した処理性能値を補正した処理性能値に基づいてプロットされた点である。点b3~b7は、それぞれ特定消費電力値P3~P7について、状態情報601-Bについて測定した処理性能値を補正した処理性能値に基づいてプロットされた点である。点c5~c7は、それぞれ特定消費電力値P5~P7について、状態情報601-Cについて測定した処理性能値を補正した処理性能値に基づいてプロットされた点である。点d7は、それぞれ特定消費電力値P7について、状態情報601-Dについて測定した処理性能値を補正した処理性能値に基づいてプロットされた点である。
 選択部504は、特定消費電力値の各々について、補正した処理性能値が示す処理性能が最も高い状態情報601を選択する。例えば、特定消費電力値P7を例に挙げると、点a7と、点b7と、点c7と、点d7と、の比較によれば、点d7が最も処理性能が高いため、選択部504は、状態情報601-Dを選択する。
 制御用モード表生成部506は、複数の特定消費電力値の各々と、特定消費電力値について選択された状態情報601と、特定消費電力値について補正された補正周波数と、を関連付けたテーブルを生成する。実施例1と同様に生成されたテーブルは、制御用モード表1000と称する。例えば、生成された制御用モード表1000は、RAM302やディスク304などの記憶装置に記憶される。また、制御用モード表1000を用いた制御処理が行われる前に、CPU101は、制御用モード表1000を制御用モード表格納バッファ405に記憶させる。
 図16は、実施例2にかかる制御用モード表例を示す説明図である。制御用モード表1000の各フィールドは、実施例1で説明した例と同一であるため、詳細な説明を省略する。制御用モード表1000によれば、特定消費電力値P0については、状態情報601-Aが選択され、周波数はf0となる。特定消費電力値P1については、状態情報601-Aが選択され、周波数はf1となる。特定消費電力値P2については、状態情報601-Bが選択され、周波数はf0となる。特定消費電力値P3については、状態情報601-Bが選択され、周波数はf2となる。特定消費電力値P4については、状態情報601-Cが選択され、周波数はf0となる。特定消費電力値P5については、状態情報601-Cが選択され、周波数はf3となる。特定消費電力値P6については、状態情報601-Dが選択され、周波数はf0となる。特定消費電力値P7については、状態情報601-Dが選択され、周波数はf4となる。
 図17は、DFSと実施例2とのそれぞれによる消費電力値および処理性能値の比較例を示す説明図である。グラフは、縦軸が消費電力値であり、横軸が処理性能値である。処理性能値としてMIPS値を挙げる。○が示す点と、点線とがDFSの場合の例である。DFSの場合、1つの状態情報601に設定したままで、周波数が調整されると、点線が示すように消費電力値と処理性能値が推移する。
 例えば、消費電力値が22[W]のラインにおいて、DFSによって調整された場合のMIPS値が3.0となるのに対して、実施例2によって調整された場合MIPS値は3.5となり、MIPS値が0.5だけ向上する。同様に消費電力値が20[W]、18[W]ではそれぞれMIPS値が0.8、1.3向上する。このような制御用モード表1000が生成されたとして、システムの電力管理機構によって消費電力値の上限値が22[W]で2秒間動作、上限値が20[W]で3秒間動作、上限値が18[W]で1秒間動作させるような電力調整指示を受け付ける場合を例に挙げる。この場合、実施例2では、DFSの場合よりも6秒間に5.7百万命令(=0.5×2+0.8×3+1.3+1)多くの命令が実行できることになる。
(実施例2にかかる選択装置100による選択処理手順例)
 実施例2では、実施例1と異なる選択装置100による制御用モード表1000の生成処理手順例について説明し、同一の処理手順については説明を省略する。
 図18は、図11に示した制御用モード表の生成処理を示すフローチャートである。選択装置100は、状態リスト600内の状態情報601を消費電力値の大きい順にソートする(ステップS1801)。つぎに、選択装置100は、ソート後の状態リスト600のうち、各状態情報601について測定した処理性能値が登録順においてつぎの状態情報601について測定した処理性能値より小さい状態情報601を削除する(ステップS1802)。
 選択装置100は、複数の特定消費電力値を取得する(ステップS1803)。選択装置100は、複数の特定消費電力値のうち、未選択な特定消費電力値があるか否かを判断する(ステップS1804)。未選択な特定消費電力値がある場合(ステップS1804:Yes)、選択装置100は、未選択の特定消費電力値から1つの特定消費電力値を選択する(ステップS1805)。
 つぎに、選択装置100は、状態リスト600内の各状態情報601について、測定した処理性能値を測定した消費電力値と選択した特定消費電力値との比率に基づき補正する(ステップS1806)。具体的には、選択装置100は、各状態情報601について「補正処理性能値=測定した処理性能値×(選択した特定消費電力値-測定した静的電力値)/測定した動的電力値)」を行う。
 そして、選択装置100は、状態リスト600から、補正処理性能値が示す処理性能が最も高い状態情報601を選択する(ステップS1807)。そして、選択装置100は、測定時の周波数を比率に基づいて補正する(ステップS1808)。具体的には、選択装置100は、「補正周波数=測定時の周波数×比率」を行う。比率は、((選択した特定消費電力値-測定した静的電力値)/測定した動的電力値)であり、補正処理性能値/測定された処理性能値であってもよい。
 つぎに、選択装置100は、選択した特定消費電力値と、選択した状態情報601と、補正周波数と、を1要素として制御用モード表1000に登録し(ステップS1809)、ステップS1804へ戻る。ステップS1804において、未選択な特定消費電力値がない場合(ステップS1804:No)、選択装置100は、一連の処理を終了する。
 図19は、制御用モード表に基づく消費電力値制御例を示す説明図である。消費電力制御部403は、例えば、上限電力値レジスタ1911と、現モード設定レジスタ406と、電力比較部1912と、モード表検索部1913と、設定変更部1914と、現モード設定レジスタ更新部1915と、を有する。また、各部は、論理積回路、否定論理回路、論理和回路や、ラッチ回路であるFFなどの素子によって形成されてもよい。また、各部は、スタンダードセルやストラクチャードASICなどのASICやFPGAなどのPLDによって実現されてもよい。具体的には、例えば、上述した各部の機能をハードウェア記述言語などによってネットリストに機能定義し、そのネットリストを論理合成してASICやPLDに与えることにより、各部を実現してもよい。
 現モード設定レジスタ406は、電力値と、周波数と、状態情報601と、を設定可能なレジスタである。現モード設定レジスタ406のうちの電力値を設定可能なレジスタには、消費電力値測定部401によって測定された現在の消費電力値が設定される。現モード設定レジスタ406のうちの周波数を設定可能なレジスタには、各要素に供給されるクロックの周波数が設定される。現モード設定レジスタ406のうちの状態情報601を設定可能なレジスタには、現在のCPU101の各要素の稼働状態を示す状態情報601が設定される。
 消費電力制御部403は、システム管理機構1900から受け付けた上限電力値を上限電力値レジスタ1911に設定する。例えば、図示していないが、CPU101は、マルチプロセッサのシステム内に含まれるプロセッサであってもよい。そのため、システム管理機構1900は、例えば、システムの消費電力制約を超えないようにシステム全体でジョブを実行させるための機構である。例えば、システム管理機構1900は、専用のハードウェアであってもよいし、CPU101やCPU101以外の非制御対象1901や非制御対象1902などのCPU上で実行されるOSなどのソフトウェアであってもよい。システム管理機構1900は、システムの電力制約や、電力優先であるか性能優先であるかなどの電力管理ポリシーなどに基づきマルチプロセッサのうちの稼働中の各CPU101に対する消費電力の上限値を決定し、各CPU101の消費電力を制御する。
 そして、電力比較部1912は、上限電力値レジスタ1911に設定された上限電力値と、現モード設定レジスタ406に設定された電力値と、を比較する。現モード設定レジスタ406に設定された電力値が上限電力値レジスタ1911に設定された上限電力値よりも大きい場合、モード表検索部1913は、制御用モード表格納バッファ405に格納された制御用モード表1000から、状態情報601および周波数を検索する。また、現モード設定レジスタ406に設定された電力値が上限電力値レジスタ1911に設定された上限電力値以下であり、当該電力値と当該上限電力値との差が所定値以内である場合に、モード表検索部1913は、状態情報601および周波数を検索する。ここで、所定値は、例えば、最も近い特定消費電力値間の差とする。所定値については、例えば、CPU101内のレジスタに設定されておくこととする。具体的に、モード表検索部1913は、制御用モード表格納バッファ405に格納された制御用モード表1000から、上限電力値以下である特定消費電力値に関連付けられた状態情報601および周波数を検索する。制御用モード表1000は、実施例1または実施例2において生成された制御用モード表1000である。そして、モード表検索部1913は、検索した状態情報601および周波数のうち、特定消費電力値が上限電力値に最も近い状態情報601および周波数を検索する。また、モード表検索部1913は、現モード設定レジスタ406に設定された状態情報601および周波数と異なる状態情報601および周波数を検索する。
 設定変更部1914は、実行中のプログラムに割り込みをかけた後に、検索された状態情報601が示す稼働状態にプロセッサを変更し、検索された周波数となるようにPLL404へ変更を通知する。そして、現モード設定レジスタ更新部1915は、設定変更部1914による変更後に、現モード設定レジスタ406に検索された状態情報601および周波数を設定する。そして、現モード設定レジスタ更新部1915は、割り込みにより中断中のプログラムの実行を再開する。
 また、図19に示す例において、CPU101内の命令実行についての要素と異なる回路を使用した場合の説明であるが、これに限らない。例えば、上限電力値レジスタ1911の更新をトリガーとして割り込みを発生させ、モード表検索部1913と電力比較部1912などの各機能を例外処理としてソフトウェア的に実現してもよい。また、電力比較部1912による比較をトリガーとして割り込みを発生させ、モード表検索部1913の機能を例外処理としてソフトウェア的に実現してもよい。
(CPU101による選択処理手順例)
 図20は、CPU101による選択処理手順例を示すフローチャートである。CPU101は、システム管理機構1900から上限電力値を受け付けたか否かを判断する(ステップS2001)。具体的には、CPU101は、上限電力値レジスタ1911の値が更新された場合に、上限電力値を受け付けたと判断する。上限電力値を受け付けていないと判断された場合(ステップS2001:No)、ステップS2001へ戻る。上限電力値を受け付けたと判断された場合(ステップS2001:Yes)、CPU101は、測定した消費電力値が上限電力値より大きいか否かを判断する(ステップS2002)。測定された消費電力値が上限電力値より大きい場合(ステップS2002:Yes)、CPU101は、ステップS2004へ移行する。
 一方、測定された消費電力値が上限電力値以下である場合(ステップS2002:No)、CPU101は、測定した消費電力値と上限電力値との差が所定値以上であるか否かを判断する(ステップS2003)。上述したように、所定値は、最も近い特定消費電力値間の差である。所定値以上でない場合(ステップS2003:No)、CPU101は、ステップS2001へ戻る。
 一方、所定値以上である場合(ステップS2003:Yes)、CPU101は、制御用モード表1000から、上限電力値より小さい特定消費電力値のうち、上限電力値に最も近い特定消費電力値に関連付けられた周波数と状態情報601とを検索する(ステップS2004)。CPU101は、実行中のプログラムに割り込みを発生させる(ステップS2005)。CPU101は、現モード設定レジスタ406に設定された周波数および状態情報601と、検索された周波数および状態情報601と、の差に基づいて、CPU101の各要素の稼働状態またはクロック信号の周波数を変更する(ステップS2006)。CPU101は、現モード設定レジスタ406に、検索された周波数および状態情報601を設定する(ステップS2007)。CPU101は、割り込みにより中断されたプログラムの実行を再開し(ステップS2008)、ステップS2001へ戻る。
 以上説明したように、実施例1にかかる選択装置は、各稼働状態についてプロセッサの処理性能値および消費電力値を測定する。そして、選択装置は、複数の所定電力値のそれぞれを上限として高処理性能となる各稼働状態を測定結果により特定しておく。これにより、消費電力値の上限の条件を満たし処理性能の高い稼働状態によりプロセッサがプログラムを実行することを可能となる。
 また、選択装置は、複数の所定消費電力値のそれぞれを上限として測定した処理性能値が示す処理性能が最も高くなる稼働状態を特定しておく。これにより、消費電力値の上限の条件を満たし処理性能の高い稼働状態によりプロセッサがプログラムを実行することが可能となる。
 また、選択装置は、所定消費電力値に対応する特定電力値と、所定消費電力値について選択した稼働状態と、測定時の周波数と、が関連付けられた制御用モード表を生成する。これにより、電力値の上限ごとに最も性能が高いと推定される稼働状態を運用時に特定することが可能となる制御用モード表を自動で生成することができる。
 以上説明したように、実施例2にかかる選択装置は、各稼働状態についてプロセッサの処理性能値及び消費電力値を測定し、複数の特定消費電力値のそれぞれと測定した消費電力値との比率に基づき測定した処理性能値を補正する。そして、選択装置は、補正した処理性能値が最も高くなる各稼働状態を選択する。さらに、実施例2にかかる選択装置は、この比率に基づき測定時の周波数を補正する。これにより、状態情報の数が少なくても、クロック信号の周波数の変更により特定消費電力値となった場合の処理性能値が示す処理性能が最も高くなる状態情報を選択することができる。したがって、運用時に、消費電力上限の条件を満たしつつ高処理性能な稼働状態に切り替えることが可能となる。
 また、選択装置は、補正処理性能値が示す処理性能が最も高くなる稼働状態を選択する。これにより、消費電力値の上限の条件を満たす処理性能の高い稼働状態によりプロセッサがプログラムを実行することが可能となる。
 また、各要素の稼働状態を変更可能なCPUは、運用時に、選択装置によって生成された制御用モード表によって、上限電力値以下である特定消費電力値の中で、上限電力値に最も近い特定消費電力値に関連付けられた稼働状態を検索する。これにより、運用中に、消費電力値の上限の条件を満たし処理性能が高くなる稼働状態に切り替えることができる。したがって、CPUの低消費電力化を図りつつ、処理性能を向上させることができる。
 また、CPUは、測定した現在の消費電力値が受け付けた上限電力値以下の場合に、稼働状態を変更しない。これにより、高処理性能となる稼働状態である場合に稼働状態を変更しないため、稼働状態の変更によって実行中のプログラムを中断させることを防げる。
 また、CPUは、測定した現在の消費電力値が受け付けた上限電力値以下の場合に、測定した現在の消費電力値と受け付けた上限電力値との差分が最も近い特定消費電力値間の差よりも大きい場合に、制御用モード表によって稼働状態を変更する。これにより、運用中に、電力値の上限値以下となる稼働状態の中で、最も性能が高くなる稼働状態に切り替えることができる。
 なお、本実施の形態で説明した選択方法は、予め用意された選択プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本選択プログラムは、磁気ディスク、光ディスク、USB(Universal Serial Bus)フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、選択プログラムは、インターネット等のネットワークを介して配布してもよい。
 100 選択装置
 101 CPU
 111-A~111-G,601-A~601-J 状態情報
 120,200 テーブル
 401 消費電力値測定部
 402 処理性能値測定部
 403 消費電力制御部
 404 PLL
 405 制御用モード表格納バッファ
 501 状態情報生成部
 502 取得部
 503 測定部
 504 選択部
 505 周波数導出部
 506 制御用モード表生成部
 600 状態リスト
 1000 制御用モード表
 1911 上限電力値レジスタ
 1912 電力比較部
 1913 モード表検索部
 1914 設定変更部
 1915 現モード設定レジスタ更新部

Claims (19)

  1.  コンピュータが、
     各要素の稼働状態を変更可能なプロセッサの複数通りの稼働状態の各々について、前記稼働状態を示す状態情報を取得し、
     取得した前記状態情報の各々について、前記状態情報が示す稼働状態に変更後の前記プロセッサに特定プログラムを実行させることにより、変更後の前記プロセッサの消費電力値および処理性能値を測定し、
     異なる複数の所定消費電力値の各々について、取得した前記状態情報の中から、測定した前記消費電力値が前記所定消費電力値以下であるいずれかの状態情報を、測定した前記処理性能値に基づいて選択する、
     処理を実行することを特徴とする選択方法。
  2.  前記状態情報を選択する処理では、前記所定消費電力値以下であるいずれかの状態情報のうち、測定した前記処理性能値が示す処理性能が最も高くなる稼働状態を示す状態情報を選択することを特徴とする請求項1に記載の選択方法。
  3.  前記コンピュータが、
     前記複数の所定消費電力値のそれぞれに対応する複数の特定消費電力値の各々と、前記特定消費電力値に対応する前記所定消費電力値について選択した前記状態情報と、を関連付けたテーブルを生成することを特徴とする請求項1または2に記載の選択方法。
  4.  前記プロセッサが、
     消費電力値の上限値を受け付け、
     生成した前記テーブルから、受け付けた前記上限値よりも小さい特定消費電力値に関連付けられた状態情報のうち、受け付けた前記上限値に最も近い特定消費電力値に関連付けられた状態情報を検索し、
     検索した前記状態情報が示す稼働状態に変更する、
     処理を実行することを特徴とする請求項3に記載の選択方法。
  5.  前記プロセッサが、現在の消費電力値を測定可能であって、
     前記状態情報を検索する処理では、測定した前記現在の消費電力値が受け付けた前記上限値よりも大きい場合に、生成した前記テーブルから、受け付けた前記上限値よりも小さい特定消費電力値に関連付けられた状態情報のうち、現在の前記プロセッサの稼働状態と異なる稼働状態を示す状態情報を検索し、測定した前記現在の消費電力値が受け付けた前記上限値よりも小さい場合に、検索しないことを特徴とする請求項4に記載の選択方法。
  6.  前記プロセッサが、現在の消費電力値を測定可能であって、
     前記状態情報を検索する処理では、測定した前記現在の消費電力値が受け付けた前記上限値以下であり、かつ測定した前記現在の消費電力値と受け付けた前記上限値との差が所定値以上である場合に、生成した前記テーブルから、受け付けた前記上限値よりも小さい特定消費電力値に関連付けられた状態情報のうち、現在の前記プロセッサの稼働状態と異なる稼働状態を示す状態情報を検索し、測定した前記現在の消費電力値が受け付けた前記上限値以下であり、測定した前記現在の消費電力値と受け付けた前記上限値との差が所定値未満である場合に、検索しないことを特徴とする請求項5に記載の選択方法。
  7.  コンピュータが、
     各要素の稼働状態を変更可能なプロセッサの複数通りの稼働状態の各々について、前記稼働状態を示す状態情報を取得し、
     取得した前記状態情報の各々について、前記状態情報が示す稼働状態に変更後の前記プロセッサに特定プログラムを実行させることにより、変更後の前記プロセッサの消費電力値および処理性能値を測定し、
     異なる複数の特定消費電力値の各々について、取得した前記状態情報のうちのいずれかの状態情報を、測定した前記処理性能値を測定した前記消費電力値と前記特定消費電力値との比率とに基づき補正した処理性能値に基づいて選択する、
     処理を実行することを特徴とする選択方法。
  8.  前記状態情報を選択する処理では、補正した処理性能値が示す前記プロセッサの処理性能が最も高くなる稼働状態を示す状態情報を選択することを特徴とする請求項7に記載の選択方法。
  9.  前記コンピュータが、
     前記複数の特定消費電力値の各々について、前記消費電力値および前記処理性能値を測定した際の特定周波数を、選択した前記状態情報についての前記比率に基づいて補正することを特徴とする請求項7または8に記載の選択方法。
  10.  前記コンピュータが、
     前記複数の特定消費電力値の各々と、前記特定消費電力値について選択した前記状態情報と、前記特定消費電力値について補正した周波数と、を関連付けたテーブルを生成することを特徴とする請求項7~9のいずれか一つに記載の選択方法。
  11.  前記プロセッサが、
     消費電力値の上限値を受け付け、
     生成した前記テーブルから、受け付けた前記上限値よりも小さい特定消費電力値に関連付けられた状態情報および周波数のうち、受け付けた前記上限値に最も近い特定消費電力値に関連付けられた状態情報および周波数を検索し、
     検索した前記状態情報が示す稼働状態に変更し、前記プロセッサの周波数を検索した前記周波数に変更する、
     処理を実行することを特徴とする請求項10に記載の選択方法。
  12.  前記プロセッサが、現在の消費電力値を測定可能であって、
     前記状態情報および周波数を検索する処理では、測定した前記現在の消費電力値が受け付けた前記上限値よりも大きい場合に、生成した前記テーブルから、受け付けた前記上限値よりも小さい特定消費電力値に関連付けられた状態情報および周波数のうち、現在の前記プロセッサの稼働状態と異なる稼働状態を示す状態情報および周波数を検索し、測定した前記現在の消費電力値が受け付けた前記上限値よりも小さい場合に、検索しないことを特徴とする請求項11に記載の選択方法。
  13.  前記プロセッサが、現在の消費電力値を測定可能であって、
     前記状態情報および周波数を検索する処理では、測定した前記現在の消費電力値が受け付けた前記上限値以下であり、かつ測定した前記現在の消費電力値と受け付けた前記上限値との差が所定値以上である場合に、生成した前記テーブルから、受け付けた前記上限値よりも小さい特定消費電力値に関連付けられた状態情報および周波数のうち、現在の前記プロセッサの稼働状態と異なる稼働状態を示す状態情報および周波数を検索し、測定した前記現在の消費電力値が受け付けた前記上限値以下であり、測定した前記現在の消費電力値と受け付けた前記上限値との差が所定値未満である場合に、検索しないことを特徴とする請求項12に記載の選択方法。
  14.  コンピュータに、
     各要素の稼働状態を変更可能なプロセッサの複数通りの稼働状態の各々について、前記稼働状態を示す状態情報を取得し、
     取得した前記状態情報の各々について、前記状態情報が示す稼働状態に変更後の前記プロセッサに特定プログラムを実行させることにより、変更後の前記プロセッサの消費電力値および処理性能値を測定し、
     異なる複数の所定消費電力値の各々について、取得した前記状態情報の中から、測定した前記消費電力値が前記所定消費電力値以下であるいずれかの状態情報を、測定した前記処理性能値に基づいて選択する、
     処理を実行させることを特徴とする選択プログラム。
  15.  コンピュータに、
     各要素の稼働状態を変更可能なプロセッサの複数通りの稼働状態の各々について、前記稼働状態を示す状態情報を取得し、
     取得した前記状態情報の各々について、前記状態情報が示す稼働状態に変更後の前記プロセッサに特定プログラムを実行させることにより、変更後の前記プロセッサの消費電力値および処理性能値を測定し、
     異なる複数の特定消費電力値の各々について、取得した前記状態情報のうちのいずれかの状態情報を、測定した前記処理性能値を測定した前記消費電力値と前記特定消費電力値との比率とに基づき補正した処理性能値に基づいて選択する、
     処理を実行させることを特徴とする選択プログラム。
  16.  各要素の稼働状態を変更可能なプロセッサの消費電力値および処理性能値を測定可能な測定部と、
     前記プロセッサの複数通りの稼働状態の各々について、前記稼働状態を示す状態情報を取得し、取得した前記状態情報の各々について、前記状態情報が示す稼働状態に変更後の前記プロセッサに特定プログラムを実行させることにより、変更後の前記プロセッサの消費電力値および処理性能値を前記測定部によって測定させ、異なる複数の所定消費電力値の各々について、取得した前記状態情報の中から、測定した前記消費電力値が前記所定消費電力値以下であるいずれかの状態情報を、測定した前記処理性能値に基づいて選択する制御部と、
     を有することを特徴とする選択装置。
  17.  各要素の稼働状態を変更可能なプロセッサの消費電力値および処理性能値を測定可能な測定部と、
     前記プロセッサの複数通りの稼働状態の各々について、前記稼働状態を示す状態情報を取得し、取得した前記状態情報の各々について、前記状態情報が示す稼働状態に変更後の前記プロセッサに特定プログラムを実行させることにより、変更後の前記プロセッサの消費電力値および処理性能値を前記測定部によって測定させ、異なる複数の特定消費電力値の各々について、取得した前記状態情報のうちのいずれかの状態情報を、測定した前記処理性能値を測定した前記消費電力値と前記特定消費電力値との比率とに基づき補正した処理性能値に基づいて選択する制御部と、
     を有することを特徴とする選択装置。
  18.  各要素の稼働状態を変更可能なプロセッサの複数通りの稼働状態の各々について、前記稼働状態を示す状態情報を取得し、
     取得した前記状態情報の各々について、前記状態情報が示す稼働状態に変更後の前記プロセッサに特定プログラムを実行させることにより、変更後の前記プロセッサの消費電力値および処理性能値を測定し、
     異なる複数の所定消費電力値の各々について、取得した前記状態情報の中から、測定した前記消費電力値が前記所定消費電力値以下であるいずれかの状態情報を、測定した前記処理性能値に基づいて選択する、
     処理をコンピュータに実行させる選択プログラムを記録したことを特徴とする記録媒体。
  19.  各要素の稼働状態を変更可能なプロセッサの複数通りの稼働状態の各々について、前記稼働状態を示す状態情報を取得し、
     取得した前記状態情報の各々について、前記状態情報が示す稼働状態に変更後の前記プロセッサに特定プログラムを実行させることにより、変更後の前記プロセッサの消費電力値および処理性能値を測定し、
     異なる複数の特定消費電力値の各々について、取得した前記状態情報のうちのいずれかの状態情報を、測定した前記処理性能値を測定した前記消費電力値と前記特定消費電力値との比率とに基づき補正した処理性能値に基づいて選択する、
     処理をコンピュータに実行させる選択プログラムを記録したことを特徴とする記録媒体。
PCT/JP2013/071568 2013-08-08 2013-08-08 消費電力値が所定電力値以下である状態情報を、測定した処理性能値に基づいて選択する選択装置 WO2015019476A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2013/071568 WO2015019476A1 (ja) 2013-08-08 2013-08-08 消費電力値が所定電力値以下である状態情報を、測定した処理性能値に基づいて選択する選択装置
JP2015530630A JP6024828B2 (ja) 2013-08-08 2013-08-08 消費電力値が所定電力値以下である状態情報を、測定した処理性能値に基づいて選択する選択装置
US15/016,456 US9846480B2 (en) 2013-08-08 2016-02-05 Selecting method, computer product, selecting apparatus, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/071568 WO2015019476A1 (ja) 2013-08-08 2013-08-08 消費電力値が所定電力値以下である状態情報を、測定した処理性能値に基づいて選択する選択装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/016,456 Continuation US9846480B2 (en) 2013-08-08 2016-02-05 Selecting method, computer product, selecting apparatus, and recording medium

Publications (1)

Publication Number Publication Date
WO2015019476A1 true WO2015019476A1 (ja) 2015-02-12

Family

ID=52460843

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/071568 WO2015019476A1 (ja) 2013-08-08 2013-08-08 消費電力値が所定電力値以下である状態情報を、測定した処理性能値に基づいて選択する選択装置

Country Status (3)

Country Link
US (1) US9846480B2 (ja)
JP (1) JP6024828B2 (ja)
WO (1) WO2015019476A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180024610A1 (en) * 2016-07-22 2018-01-25 Futurewei Technologies, Inc. Apparatus and method for setting a clock speed/voltage of cache memory based on memory request information
US10896116B1 (en) 2018-10-19 2021-01-19 Waymo Llc Detecting performance regressions in software for controlling autonomous vehicles
US11556167B1 (en) * 2022-07-25 2023-01-17 Ambiq Micro, Inc. On-chip system with context-based energy reduction

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006059068A (ja) * 2004-08-19 2006-03-02 Matsushita Electric Ind Co Ltd プロセッサ装置
JP2006524374A (ja) * 2003-05-07 2006-10-26 アップル コンピュータ,インコーポレイテッド プロセッサシステムにおける動的電力管理の方法および装置
JP2009505279A (ja) * 2005-08-19 2009-02-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 最大パワーを制御するためのマイクロプロセッサ・リソースの相互排除アクティブ化のためのシステム及び方法
US20090276644A1 (en) * 2008-05-02 2009-11-05 Goodnow Kenneth J Structure for semiconductor power distribution and control

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4653697B2 (ja) 2006-05-29 2011-03-16 株式会社日立製作所 電力管理方法
US7616882B2 (en) * 2006-08-10 2009-11-10 Research In Motion Limited Method and apparatus for power management in an electronic device
JP4839328B2 (ja) 2008-01-21 2011-12-21 株式会社日立製作所 サーバの消費電力制御装置、サーバの消費電力制御方法及びコンピュータプログラム
JP2010061278A (ja) 2008-09-02 2010-03-18 Hitachi Ltd 仮想サーバシステムの管理装置
US8381006B2 (en) * 2010-04-08 2013-02-19 International Business Machines Corporation Reducing power requirements of a multiple core processor
US8527801B2 (en) * 2010-06-30 2013-09-03 International Business Machines Corporation Performance control of frequency-adapting processors by voltage domain adjustment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006524374A (ja) * 2003-05-07 2006-10-26 アップル コンピュータ,インコーポレイテッド プロセッサシステムにおける動的電力管理の方法および装置
JP2006059068A (ja) * 2004-08-19 2006-03-02 Matsushita Electric Ind Co Ltd プロセッサ装置
JP2009505279A (ja) * 2005-08-19 2009-02-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 最大パワーを制御するためのマイクロプロセッサ・リソースの相互排除アクティブ化のためのシステム及び方法
US20090276644A1 (en) * 2008-05-02 2009-11-05 Goodnow Kenneth J Structure for semiconductor power distribution and control

Also Published As

Publication number Publication date
US9846480B2 (en) 2017-12-19
US20160154455A1 (en) 2016-06-02
JP6024828B2 (ja) 2016-11-16
JPWO2015019476A1 (ja) 2017-03-02

Similar Documents

Publication Publication Date Title
Gupta et al. Dypo: Dynamic pareto-optimal configuration selection for heterogeneous mpsocs
Petrica et al. Flicker: A dynamically adaptive architecture for power limited multicore systems
Keramidas et al. Interval-based models for run-time DVFS orchestration in superscalar processors
Zhou et al. Hierarchical overlapped tiling
Bao et al. Static and dynamic frequency scaling on multicore CPUs
Turakhia et al. Hades: Architectural synthesis for heterogeneous dark silicon chip multi-processors
Zhang et al. A full-stack search technique for domain optimized deep learning accelerators
Malas et al. Multidimensional intratile parallelization for memory-starved stencil computations
Wong et al. Approximating warps with intra-warp operand value similarity
Kahng et al. Recovery-driven design: A power minimization methodology for error-tolerant processor modules
Hanumaiah et al. STEAM: A smart temperature and energy aware multicore controller
US10180828B2 (en) Systems and methods for power optimization of processors
TW201209617A (en) Architectural level power-aware optimization and risk mitigation
Tan et al. Multithreaded pipeline synthesis for data-parallel kernels
Liu et al. Procrustes 1: Power constrained performance improvement using extended maximize-then-swap algorithm
JP6024828B2 (ja) 消費電力値が所定電力値以下である状態情報を、測定した処理性能値に基づいて選択する選択装置
Ziegler et al. Power reduction by aggressive synthesis design space exploration
Sharma et al. Fast Lagrangian relaxation based gate sizing using multi-threading
Jha et al. Chrysso: An integrated power manager for constrained many-core processors
Kumaraswamy et al. Exploiting dynamism in hpc applications to optimize energy-efficiency
Wittmann et al. An analysis of energy-optimized lattice-Boltzmann CFD simulations from the chip to the highly parallel level
Garg et al. System-level throughput analysis for process variation aware multiple voltage-frequency island designs
Zou et al. Automatic energy efficient parallelization of uniform dependence computations
Steinke et al. Low power code generation for a RISC processor by register pipelining
Pan et al. Scalable global power management policy based on combinatorial optimization for multiprocessors

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: 13891095

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015530630

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13891095

Country of ref document: EP

Kind code of ref document: A1