WO2019181904A1 - プログラム生成部、情報処理装置、プログラム生成方法、及びプログラム - Google Patents

プログラム生成部、情報処理装置、プログラム生成方法、及びプログラム Download PDF

Info

Publication number
WO2019181904A1
WO2019181904A1 PCT/JP2019/011345 JP2019011345W WO2019181904A1 WO 2019181904 A1 WO2019181904 A1 WO 2019181904A1 JP 2019011345 W JP2019011345 W JP 2019011345W WO 2019181904 A1 WO2019181904 A1 WO 2019181904A1
Authority
WO
WIPO (PCT)
Prior art keywords
voltage value
instruction
program
core
voltage
Prior art date
Application number
PCT/JP2019/011345
Other languages
English (en)
French (fr)
Inventor
貴彦 上杉
Original Assignee
Necプラットフォームズ株式会社
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 Necプラットフォームズ株式会社 filed Critical Necプラットフォームズ株式会社
Priority to EP19771160.9A priority Critical patent/EP3770753A4/en
Priority to US16/981,014 priority patent/US11656858B2/en
Publication of WO2019181904A1 publication Critical patent/WO2019181904A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • 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 program generation unit, an information processing apparatus, a program generation method, and a program.
  • Patent Document 1 and Patent Document 2 disclose changing the operating voltage value in order to control power consumption to be reduced.
  • Patent Document 1 discloses changing an operating voltage value based on a power context storing power control information for each program.
  • the information processing apparatus of Patent Literature 1 changes the operating voltage value when executing a program based on the success rate or failure rate of power control information that is a power context.
  • Patent Document 1 in order to generate a power context, it is necessary to execute a program at least once and check a success rate or a failure rate in advance, and changing the operating voltage value according to the user program becomes a burden. ing.
  • Patent Document 2 when an instruction group in which instructions having the same minimum operating voltage value are consecutive is detected, the operating voltage value at the time of executing a program is changed. However, in Patent Document 2, the operating voltage value is not changed unless instructions having the same minimum operating voltage value are continued. For this reason, it is necessary to confirm the operating voltage value suitable for the program in advance, and the change of the operating voltage value according to the user program is a burden.
  • An object of the present invention is to provide a program generation unit, an information processing apparatus, a program generation method, and a program in which it is difficult to change an operating voltage value according to a user program in view of the above-described problems.
  • a program generation unit is a program generation unit that generates voltage value information that causes an LSI to be executed with an operating voltage value based on a voltage context, and that compiles a source program and includes an object including an instruction sequence.
  • a first compiler that generates, a second compiler that generates the voltage value information based on an instruction density of the instruction sequence, and a linker that combines the object and the voltage value information to generate a user program.
  • a program generation method is a program generation method for generating voltage value information for causing an LSI to execute at an operating voltage value based on a voltage context, and compiling a source program to obtain an object including an instruction sequence. Generating the voltage value information based on the instruction density of the instruction sequence; and combining the object and the voltage value information to generate a user program.
  • a program according to an aspect of the present invention is a program that causes a computer to generate voltage value information that causes an LSI to execute with an operating voltage value based on a voltage context, and compiles a source program to generate an object that includes an instruction sequence. And generating the voltage value information based on the instruction density of the instruction sequence and combining the object and the voltage value information to generate a user program.
  • the information processing apparatus 1 includes a program generation unit 10, a host unit 20, and a system unit unit 30.
  • the program generation unit 10 includes a first compiler 101, a second compiler 102, and a linker 103.
  • the host unit 20 includes an OS dispatcher 201 and a voltage value transmission unit 202.
  • the system unit unit 30 includes a voltage control circuit 301, a memory 307, and an LSI 309.
  • the system unit 30 further includes a first core power supply 303A, a second core power supply 303B, a third core power supply 303C, a fourth core power supply 303D, a memory control power supply 303E, and an IO power supply 303F.
  • each of these power supplies is a DC / DC converter, and the output voltage is controlled by the control of the voltage control circuit 301.
  • the LSI 309 includes a first core 309A, a second core 309B, a third core 309C, a fourth core 309D, a host IF 306, and a memory control unit 310.
  • the first compiler 101 receives a source program created by the user.
  • the first compiler 101 compiles the received source program and generates an object OJT including an instruction sequence.
  • the first compiler 101 sends the generated object OJT to each of the second compiler 102 and the linker 103.
  • the second compiler 102 receives the object OJT from the first compiler 101.
  • the second compiler 102 analyzes the instruction density for each fixed-point instruction, LDST instruction, logical operation instruction, shift operation instruction, and floating-point instruction of the received object OJT to generate voltage value information VIF.
  • the second compiler 102 sends the generated voltage value information VIF to the linker 103.
  • the linker 103 receives the object OJT from the first compiler 101.
  • the linker 103 receives the voltage value information VIF from the second compiler 102.
  • the linker 103 combines the object OJT and the voltage value information VIF to sequentially generate a user program PGM (program).
  • the linker 103 sequentially sends the generated user program PGM to the host unit 20.
  • the OS dispatcher 201 sequentially receives the user program PGM generated by the linker 103.
  • the OS dispatcher 201 assigns cores that execute the user programs PGM received sequentially.
  • the OS dispatcher 201 determines which core the user program PGM is assigned to by observing the availability of each of the first core 309A, the second core 309B, the third core 309C, and the fourth core 309D. .
  • the OS dispatcher 201 determines a core to which each user program PGM is assigned based on the processing status such as the usage state and load state of each core resource.
  • the OS dispatcher 201 sequentially sends the voltage value information VIF of each user program PGM to the voltage value transmission unit 202.
  • the voltage value transmission unit 202 sequentially receives the voltage value information VIF of each user program PGM from the OS dispatcher 201.
  • the voltage value transmission unit 202 generates a set voltage value based on the voltage value information VIF of each user program PGM, and sends the set voltage value to the voltage control circuit 301.
  • the system unit 30 sets the operating voltage value of each core and the host IF 306 to the set voltage value transmitted from the voltage value transmitting unit 202 before executing each user program PGM.
  • “before executing each user program PGM” means a context switch (CSW) time before starting execution of the user program PGM in each core.
  • the CSW indicates a process of saving or restoring the state of the core so that, for example, a plurality of processes can share one core.
  • the voltage control circuit 301 receives a set voltage value from the voltage value transmission unit 202. Based on the received set voltage value, the voltage control circuit 301 outputs each output voltage of the first core power supply 303A, the second core power supply 303B, the third core power supply 303C, the fourth core power supply 303D, the memory control power supply 303E, and the IO power supply 303F. To control each.
  • the first core power source 303A outputs a first core operating voltage value Vc1 that is a predetermined DC voltage in accordance with the control of the voltage control circuit 301, and supplies power to the first core 309A.
  • the second core power supply 303B outputs a second core operating voltage value Vc2 that is a predetermined DC voltage according to the control of the voltage control circuit 301, and supplies power to the second core 309B.
  • the third core power supply 303C outputs a third core operating voltage value Vc3 that is a predetermined DC voltage in accordance with the control of the voltage control circuit 301, and supplies power to the third core 309C.
  • the fourth core power supply 303D Under the control of the voltage control circuit 301, the fourth core power supply 303D outputs a fourth core operating voltage value Vc4 that is a predetermined DC voltage, and supplies power to the fourth core 309D.
  • the memory control power supply 303 ⁇ / b> E outputs a memory control operation voltage value Vcm that is a predetermined DC voltage in accordance with the control of the voltage control circuit 301, and supplies power to the memory control unit 310.
  • the IO power supply 303 ⁇ / b> F outputs an IO operation voltage value Vci that is a predetermined DC voltage in accordance with the control of the voltage control circuit 301, and supplies power to the host IF 306.
  • the memory 307 is a common memory in which each core can access and read / write data.
  • the first core 309A, the second core 309B, the third core 309C, and the fourth core 309D each process the user program PGM allocated from the OS dispatcher 201.
  • the host IF 306 communicates with the OS dispatcher 201 and supplies the user program PGM to the core to which the user program PGM is assigned among the cores.
  • the memory control unit 310 controls access to the memory 307 by each of the first core 309A, the second core 309B, the third core 309C, and the fourth core 309D.
  • FIG. 2 is a diagram illustrating functions of the program generation unit according to the first embodiment.
  • the first compiler 101 generates an instruction sequence SQC that can be processed by the system unit unit 30 as the object OJT.
  • the instruction A, instruction B, instruction C... Instruction XX of the instruction sequence SQC are fixed point instructions, logical operation instructions, shift operation instructions, floating point instructions, LDST, respectively. It is classified as one of instructions (load and store instructions).
  • the second compiler 102 analyzes the instruction density of the instruction sequence SQC as follows, and creates the voltage value information VIF as follows.
  • the instruction density indicates, for example, a ratio in the instruction sequence SQC of instruction types to which each instruction included in the instruction sequence SQC belongs.
  • the second compiler 102 converts the instruction A, instruction B, instruction C,..., Instruction XX of the instruction sequence SQC into a fixed point instruction, a logical operation instruction, a shift operation instruction, a floating point instruction, an LDST instruction (load), respectively. And store instructions) are classified into one of the instruction types. As a result of the instruction density analysis, the second compiler 102 determines an instruction type having the highest ratio in which each instruction included in the instruction sequence SQC is classified among a plurality of instruction types.
  • the voltage value information VIF is information for causing the LSI to execute with an operating voltage value based on the voltage context.
  • the second compiler 102 generates the voltage value information VIF by performing any of the following (Case 1) to (Case 5) according to the result of the instruction density analysis, and supplies the generated voltage value information VIF to the linker 103. send. That is, the second compiler 102 classifies each instruction included in the instruction sequence SQC into a plurality of instruction types, and generates the voltage value information VIF based on the instruction type having the highest classified ratio. (Case 1) When the ratio of the LDST instruction is the highest, “setting information for increasing the IO operation voltage value” is generated as the voltage value information VIF.
  • FIG. 3 is a time chart of the operation of the information processing apparatus according to the first embodiment.
  • the execution time of each JOB is set short for the sake of explanation, but the actual execution time of the JOB is longer than shown.
  • FIG. 3 shows a situation in which each user program PGM assigned to each core is executed by the OS dispatcher 201.
  • each user program PGM to be executed is shown as JOB01, JOB02, JOB03, JOB11,.
  • the OS dispatcher 201 assigns JOB01 to the first core 309A, JOB11 to the second core 309B, JOB21 to the third core 309C, and JOB31 to the fourth core 309D.
  • the voltage value transmission unit 202 generates a voltage value suitable for the first core 309A based on the voltage value information VIF as the first core setting voltage value Vs1.
  • the voltage value transmission unit 202 sets a predetermined initial voltage value as it is as the first core setting voltage value Vs1.
  • the voltage value transmission unit 202 sets a voltage value obtained by lowering the initial setting voltage value as a new first core setting voltage value Vs1 with respect to a predetermined initial setting voltage value. In the case of (Cases 3 to 5), the voltage value transmission unit 202 sets a voltage value based on the voltage value information VIF as a new first core set voltage value Vs1.
  • the voltage value transmission unit 202 sets the voltage value suitable for the second core 309B based on the voltage value information VIF as the second core setting voltage value Vs2, and sets the voltage value as the third core setting voltage value Vs3.
  • a voltage value suitable for the fourth core 309D is generated based on the voltage value information VIF as the voltage value suitable for the third core 309C and the fourth core set voltage value Vs4 based on the information VIF.
  • the voltage value transmission unit 202 generates the generated first core setting voltage value Vs1, second core setting voltage value Vs2, third core setting voltage value Vs3, and fourth core setting voltage value Vs4. To the voltage control circuit 301.
  • the voltage control circuit 301 When the voltage control circuit 301 receives each set voltage value from the voltage value transmission unit 202, the voltage control circuit 301 performs control so that the operating voltage value of each core becomes the set voltage value at timing 0, respectively. Specifically, the voltage control circuit 301 controls the first core power supply 303A so that the first core operating voltage value Vc1 supplied to the first core 309A becomes the first core setting voltage value Vs1. Similarly, the voltage control circuit 301 controls the second core power supply 303B so that the second core operating voltage value Vc2 supplied to the second core 309B becomes the second core setting voltage value Vs2. Similarly, the voltage control circuit 301 controls the third core power supply 303C so that the third core operating voltage value Vc3 supplied to the third core 309C becomes the third core setting voltage value Vs3. Similarly, the voltage control circuit 301 controls the fourth core power supply 303D so that the fourth core operating voltage value Vc4 supplied to the fourth core 309D becomes the fourth core set voltage value Vs4.
  • the information processing apparatus 1 similarly sets the host IF operating voltage value Vci. That is, at timing 0, the voltage value transmission unit 202 generates a voltage value suitable for the host IF 306 based on the voltage value information VIF as the host IF set voltage value Vsi, and the generated host IF set voltage value Vsi is subjected to voltage control. Send to circuit 301. Further, the voltage control circuit 301 controls the IO power supply 303F so that the host IF operating voltage value Vci supplied to the host IF 306 becomes the host IF set voltage value Vsi.
  • the voltage value transmission unit 202 sets a voltage value obtained by raising the initial setting voltage as a new host IF setting voltage value Vsi with respect to a predetermined initial setting voltage value.
  • the voltage control circuit 301 controls the memory control operation voltage value Vcm to be a predetermined initial voltage value.
  • the execution of JOB02 is started in the first core 309A.
  • the voltage value transmission unit 202 generates a voltage value suitable for the first core 309A based on the voltage value information VIF as the first core setting voltage value Vs1 one timing before the timing of starting execution of JOB02. .
  • the information processing apparatus 1 reduces the voltage supplied to the first core 309 ⁇ / b> A one timing before the timing of starting execution of JOB02. For example, if the voltage value information VIF of JOB02 is “setting information for lowering the core operating voltage value”, the voltage value transmission unit 202 newly sets a voltage lower than the first core setting voltage value Vs1 set at timing 1. The first core set voltage value Vs1 is generated and sent to the voltage control circuit 301. As a result, the information processing apparatus 1 reduces the voltage supplied to the first core 309 ⁇ / b> A one timing before starting the execution of JOB02.
  • the execution of JOB03 is started at the first core 309A.
  • the voltage value transmission unit 202 sets a voltage value suitable for the first core 309A based on the voltage value information VIF as a new first core setting voltage value Vs1 one timing before the timing of starting execution of JOB3.
  • the information processing apparatus 1 increases the voltage supplied to the first core 309 ⁇ / b> A one timing before the timing of starting execution of JOB03.
  • the voltage value transmitting unit 202 sets a voltage value suitable for the second core 309B based on the voltage value information VIF as a new second core setting voltage value Vs2 one timing before the timing of starting execution of each job. Are generated respectively.
  • the voltage value transmission unit 202 sets a voltage value suitable for the third core 309C based on the voltage value information VIF as a new third core setting voltage value Vs3, one timing before the timing of starting execution of each job. Are generated respectively.
  • JOB22 and JOB23 have the same suitable voltage value. For this reason, the third core set voltage value Vs3 generated for the JOB 22 and the third core set voltage value Vs3 generated for the JOB 23 are the same voltage.
  • the voltage value transmission unit 202 sets a voltage value suitable for the fourth core 309D as the fourth core set voltage value Vs4 based on the voltage value information VIF.
  • Vs4 is the same voltage.
  • the second compiler 102 analyzes the instruction density for each fixed-point instruction, LDST instruction, logical operation instruction, shift operation instruction, and floating-point instruction in the instruction sequence. Therefore, a voltage suitable for each user program PGM can be supplied to each core and host IF without confirming an operating voltage value suitable for each user program PGM in advance. Things will be possible. Therefore, the information processing apparatus 1 is unlikely to be burdened with changing the operating voltage value according to each user program PGM. Moreover, in this embodiment, since the voltage value required for each user program PGM is supplied, the information processing apparatus 1 can suppress useless power and can realize low power consumption.
  • the power supply of each core is separated, and the operating voltage value can be controlled for each core and host IF.
  • the information processing apparatus 1 can set an operating voltage value for each core and the host IF with a voltage suitable for the allocated user program PGM, and can supply power to each core and the host IF. Therefore, the information processing apparatus 1 can supply optimal power with less waste.
  • the information processing apparatus 1 analyzes the instruction density of the instruction sequence as described above, it is not necessary to confirm the operating voltage value suitable for each user program PGM in advance. Therefore, the operating voltage value suitable for executing the user program PGM can be supplied to the core from the first execution of the user program PGM. Furthermore, even if the user program PGM is updated, a suitable operating voltage value can be supplied to the core.
  • the information processing apparatus of Patent Document 2 also changes the operating voltage value according to the instruction sequence in order to reduce excessive power.
  • an operation voltage value control command is added to the head of consecutive commands in the command sequence, and an instruction to change the operating voltage value is issued.
  • a time lag occurs from when an operation voltage value change instruction is issued until the operation voltage value is actually changed.
  • the information processing apparatus 1 changes the voltage supplied to each core during the CSW time before the execution of each user program PGM. Therefore, the information processing apparatus 1 of the present embodiment can suppress the occurrence of a voltage change time lag as in Patent Document 2.
  • the information processing apparatus 1 ′ according to the present embodiment is different in that each core shares a power source. Except for points described below, the configuration of the information processing apparatus 1 ′ is the same as that of the information processing apparatus 1 according to the first embodiment.
  • the information processing apparatus 1 ′ includes a program generation unit 10, a host unit 20 ′, and a system unit unit 30 ′.
  • the host unit 20 ′ includes an OS dispatcher 201 and a voltage value transmission unit 202 ′.
  • the system unit 30 ′ includes a voltage control circuit 301 ′, a memory 307, and an LSI 309 ′.
  • the system unit 30 ′ further includes an internal power supply 303A ′ and an IO power supply 303F. In the present embodiment, each of these power supplies is a DC / DC converter, and the output voltage is controlled by the control of the voltage control circuit 301 ′.
  • the voltage value transmission unit 202 ′ sequentially receives the voltage value information VIF of each user program PGM from the OS dispatcher 201.
  • the voltage value transmission unit 202 ′ generates a set voltage value based on the voltage value information VIF of each user program PGM, and sends the set voltage value to the voltage control circuit 301 ′.
  • the system unit 30 ′ sets the operating voltage value of each core to the set voltage value transmitted from the voltage value transmitting unit 202 ′ before executing each user program PGM.
  • the voltage control circuit 301 ′ receives the set voltage value from the voltage value transmission unit 202 ′.
  • the voltage control circuit 301 ′ controls each output voltage of the internal power supply 303A ′ and the IO power supply 303F based on the received set voltage value.
  • the internal power supply 303A ′ is a power supply common to the first core 309A, the second core 309B, the third core 309C, the fourth core 309D, and the memory control unit 310.
  • the internal power supply 303A ′ outputs a common operating voltage value Vcc, which is a predetermined DC voltage, under the control of the voltage control circuit 301 ′, and the first core 309A, the second core 309B, the third core 309C, and the fourth core 309D and the memory control unit 310 are supplied with power.
  • Vcc a common operating voltage value
  • FIG. 5 is a time chart of the operation of the information processing apparatus according to the second embodiment. As shown in FIG. 5, first, at timing 0, a first core set voltage value Vs1, a second core set voltage value Vs2, a third core set voltage value Vs3, and a fourth core set voltage value Vs4 are generated. Subsequently, at timing 0, the generated first core setting voltage value Vs1, second core setting voltage value Vs2, third core setting voltage value Vs3, and fourth core setting voltage value Vs4 are added together to obtain a common setting voltage value. Vsc is calculated.
  • the voltage value transmission unit 202 ′ transmits the generated common setting voltage value Vsc to the voltage control circuit 301 ′.
  • the voltage control circuit 301 ′ receives the common set voltage value Vsc from the voltage value transmission unit 202 ′, the voltage control circuit 301 ′ controls the internal power supply 303A ′ so that the common operating voltage value Vcc becomes the common set voltage value Vsc at timing 0. .
  • the information processing apparatus 1 ′ similarly sets the host IF operating voltage value Vci separately from the common operating voltage value Vcc. That is, at the timing 0, the voltage value transmission unit 202 ′ generates a voltage value suitable for the host IF 306 based on the voltage value information VIF as the host IF set voltage value Vsi, and the generated host IF set voltage value Vsi This is sent to the control circuit 301 ′. Further, the voltage control circuit 301 ′ controls the IO power supply 303F so that the host IF operating voltage value Vci supplied to the host IF 306 becomes the host IF set voltage value Vsi.
  • the voltage value transmission unit 202 ′ calculates the common setting voltage value Vsc before executing each user program PGM (CSW time before executing the user program PGM).
  • the voltage value transmission unit 202 ′ sets each of the four cores of the first core setting voltage value Vs1, the second core setting voltage value Vs2, the third core setting voltage value Vs3, and the fourth core setting voltage value Vs4 at each timing.
  • the common set voltage value Vsc is calculated by adding the voltage values.
  • the voltage value transmission unit 202 ′ counts the number of instructions to decrease the set voltage value (number of voltage value decrease instructions) for each set voltage value for four cores.
  • the voltage value transmission unit 202 ′ sets a voltage lower than the set common setting voltage value Vsc as a new common setting voltage value Vsc.
  • the new common setting voltage value Vsc is generated and sent to the voltage control circuit 301 ′.
  • the voltage control circuit 301 ′ When the voltage control circuit 301 ′ receives a new common setting voltage value Vsc from the voltage value transmission unit 202 ′, the voltage control circuit 301 ′ before executing each user program so that the common operating voltage value Vcc becomes the new common setting voltage value Vsc.
  • the internal power supply 303A ′ is controlled at (CSW time before execution of the user program PGM).
  • the original common operating voltage value Vcc is set so as to operate even in the user program PGM in which the maximum current flows. For this reason, if the common operating voltage value Vcc is reduced according to the determination criterion “the number of voltage value reduction instructions for four cores ⁇ 3”, the user program PGM can be executed without disturbing the operation of the user program PGM. .
  • the voltage value decrease instruction number transits to 3 or more. Therefore, the voltage value transmission unit 202 ′ generates a lower voltage as a new common setting voltage value Vsc.
  • the voltage control circuit 301 ′ controls the internal power supply 303A ′ so that the common operating voltage value Vcc becomes the new common set voltage value Vsc as shown at timing 8.
  • the information processing apparatus 1 ′ reduces the voltage supplied to each core and the memory control unit 310 one timing before the start of execution of JOB02.
  • the information processing apparatus 1 ′ increases the common operating voltage value Vcc as shown in the timing 15 of FIG. To do.
  • the voltage value decrease instruction number transits to less than three. Therefore, the voltage value transmission unit 202 ′ generates a higher voltage as a new common setting voltage value Vsc.
  • the voltage control circuit 301 ′ controls the internal power supply 303A ′ so that the common operating voltage value Vcc becomes the new common set voltage value Vsc as shown at the timing 15.
  • the information processing apparatus 1 ′ increases the voltage supplied to each core and the memory control unit 310 one timing before the start of executing JOB03.
  • the voltage value transmission unit 202 ′ changes the common set voltage value Vsc when the number of voltage value decrease instructions is 3 or more or the number of voltage value decrease instructions is changed to less than 3. .
  • the voltage value transmission unit 202 ′ may change the common setting voltage value Vsc when the number of voltage value lowering instruction numbers is two or more or the number of voltage value lowering instruction numbers is less than two.
  • the voltage value transmission unit 202 ′ may recalculate the common setting voltage value Vsc by adding the setting voltage values of the respective cores.
  • the second compiler 102 includes a fixed-point instruction, an LDST instruction, a logical operation instruction, a shift operation instruction, and a floating point instruction.
  • the instruction density for each instruction is analyzed. Therefore, a voltage suitable for each user program PGM can be supplied to each core and host IF without confirming an operating voltage value suitable for each user program PGM in advance. Things will be possible. Therefore, the information processing apparatus 1 ′ is unlikely to be burdened with changing the operating voltage value according to each user program PGM.
  • the information processing apparatus 1 ′ of the present embodiment changes the common operating voltage value during the CSW time before the execution of each user program PGM, similarly to the information processing apparatus 1.
  • the internal power supply 303A ′ is a power supply common to the first core 309A, the second core 309B, the third core 309C, the fourth core 309D, and the memory control unit 310. .
  • the number of the power supplies mounted with respect to information processing apparatus 1 of 1st embodiment can be suppressed. Thereby, for example, the cost can be suppressed and the size of the information processing apparatus 1 ′ can be reduced.
  • FIG. 6 is a flowchart of the program generation method according to each embodiment.
  • a user program PGM for executing an LSI with an operating voltage value based on the voltage value information VIF is generated.
  • the program generation unit 10 compiles a source program created by the user, and generates an object including an instruction sequence (ST10: step of generating an object).
  • the program generation unit 10 analyzes the instruction density of the instruction sequence and generates voltage value information VIF (ST20: step of generating voltage value information).
  • the program generation unit 10 combines the object OJT and the voltage value information VIF to generate a user program PGM (ST30: step of generating a program).
  • ST30 step of generating a program.
  • the program generation unit 10 ends the process. Further, the program generation unit 10 starts processing again when the next source program is provided.
  • FIG. 7 illustrates an example of a hardware configuration for realizing the program generation unit 10 in each of the above-described embodiments.
  • the program generation unit 10 includes a CPU (Central Processing Unit) 105, a memory 106, a storage / reproduction device 107, an HDD (Hard Disk Drive) 108, an IO I / F (Input Output Interface) 109, and the like.
  • a computer with hardware includes a CPU (Central Processing Unit) 105, a memory 106, a storage / reproduction device 107, an HDD (Hard Disk Drive) 108, an IO I / F (Input Output Interface) 109, and the like.
  • a computer with hardware is a computer with hardware.
  • the memory 106 is a storage medium such as a RAM (Random Access Memory) and a ROM (Read Only Memory).
  • the storage / reproduction device 107 is a device for storing programs, data, and the like on an external medium such as a CD-ROM, DVD, and flash memory, and reproducing programs, data, and the like on the external medium.
  • the IO I / F 109 is an interface for inputting a source program and inputting / outputting information and the like with the host unit 20 (20 ′).
  • a program for realizing all or part of the functions of the program generation unit is stored in a computer-readable storage medium, and the program stored in the storage medium is read into a computer system.
  • the processing of each unit may be performed by executing.
  • the “computer system” includes an OS and hardware such as peripheral devices. Further, the “computer system” includes a homepage providing environment (or display environment) if a WWW system is used.
  • the “computer-readable storage medium” refers to a storage device such as a flexible medium, a magneto-optical disk, a portable medium such as a ROM or a CD-ROM, and a hard disk incorporated in a computer system.
  • the “computer-readable storage medium” dynamically holds a program for a short time, like a communication line when transmitting a program via a network such as the Internet or a communication line such as a telephone line.
  • a volatile memory in a computer system serving as a server or a client in that case and a program that holds a program for a certain period of time are also included.
  • the program may be a program for realizing a part of the above-described functions, or may be a program that can realize the functions described above in combination with a program already stored in a computer system.
  • FIG. 8 shows the minimum configuration of the program generation unit 10 of each of the above-described embodiments.
  • the program generation unit 10 generates voltage value information for causing the LSI to execute with an operating voltage value based on the voltage context.
  • the program generation unit 10 includes a first compiler 101, a second compiler 102, and a linker 103.
  • the first compiler 101 compiles the source program and generates an object including an instruction sequence.
  • the second compiler 102 analyzes the instruction density of the instruction sequence and generates voltage value information.
  • the linker 103 combines the object and the voltage value information to generate a user program.
  • the LSI is configured with four cores, but may be configured with any number of cores. As a modification, it may be composed of five or more cores. As another modification, it may be composed of three or less cores.
  • the second compiler 102 classifies each instruction included in the instruction sequence into an instruction type of an LDST instruction, a logical operation instruction, a shift operation instruction, a fixed point instruction, and a floating point instruction.
  • the second compiler 102 classifies each instruction included in the instruction sequence into at least two or more instruction types among an LDST instruction, a logical operation instruction, a shift operation instruction, a fixed-point instruction, and a floating-point instruction. It may be.
  • the instruction types may include instruction types other than the instruction types of the LDST instruction, the logical operation instruction, the shift operation instruction, the fixed point instruction, and the floating point instruction.
  • the information processing apparatus controls the memory control operation voltage value Vcm to be a predetermined initial voltage value.
  • the information processing device generates a memory control setting voltage value suitable for the memory control unit based on the voltage value information VIF, and controls the memory control operation voltage value Vcm so as to be the memory control setting voltage value. May be.
  • the common set voltage value Vsc is calculated by adding the set voltage values for the four cores.
  • the host IF set voltage value Vsi may be added together.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

LSIを電圧コンテキストに基づく動作電圧値で実行させる電圧値情報を生成するプログラム生成部であって、ソースプログラムのコンパイルを行い、命令列を含むオブジェクトを生成する第一コンパイラと、前記命令列の命令密度に基づいて前記電圧値情報を生成する第二コンパイラと、前記オブジェクトと前記電圧値情報とを結合して、ユーザープログラムを生成するリンカと、を備えるプログラム生成部。

Description

プログラム生成部、情報処理装置、プログラム生成方法、及びプログラム
 本発明は、プログラム生成部、情報処理装置、プログラム生成方法、及びプログラムに関する。
 情報処理装置では、消費電力を削除するように制御することが知られている。
 例えば、特許文献1及び特許文献2では、消費電力を削減するように制御するために、動作電圧値を変更することが開示されている。
特開2010-250858号公報 特開2003-202942号公報
 ところで、特許文献1には、プログラム毎の電力制御情報を格納する電力コンテキストに基づき、動作電圧値を変更することが開示されている。
 特許文献1の情報処理装置は、電力コンテキストである電力制御情報の成功率あるいは失敗率に基づいて、プログラムを実行する際の動作電圧値の変更を行っている。しかし、特許文献1では、電力コンテキストを生成するために、少なくとも一度プログラムを実行させて成功率あるいは失敗率を事前に確認する必要があり、ユーザープログラムに合わせた動作電圧値の変更が負担となっている。
 また、特許文献2では、同じ最低動作電圧値の命令が連続している命令群を検出した場合、プログラムを実行する際の動作電圧値の変更を行っている。
 しかし、特許文献2では、同じ最低動作電圧値の命令が連続しない限り動作電圧値が変更されない。このため、事前にプログラムに合った動作電圧値を確認する必要があり、ユーザープログラムに合わせた動作電圧値の変更が負担となっている。
 この発明の目的は、上述した課題を鑑みて、ユーザープログラムに合わせた動作電圧値の変更が負担となりにくいプログラム生成部、情報処理装置、プログラム生成方法、及びプログラムを提供することにある。
 本発明に係る一態様のプログラム生成部は、LSIを電圧コンテキストに基づく動作電圧値で実行させる電圧値情報を生成するプログラム生成部であって、ソースプログラムのコンパイルを行い、命令列を含むオブジェクトを生成する第一コンパイラと、前記命令列の命令密度に基づいて前記電圧値情報を生成する第二コンパイラと、前記オブジェクトと前記電圧値情報とを結合して、ユーザープログラムを生成するリンカと、を備える。
 本発明に係る一態様のプログラム生成方法は、LSIを電圧コンテキストに基づく動作電圧値で実行させる電圧値情報を生成するプログラム生成方法であって、ソースプログラムのコンパイルを行い、命令列を含むオブジェクトを生成するステップと、前記命令列の命令密度に基づいて前記電圧値情報を生成するステップと、前記オブジェクトと前記電圧値情報とを結合して、ユーザープログラムを生成するステップと、を含む。
 本発明に係る一態様のプログラムは、コンピュータに、LSIを電圧コンテキストに基づく動作電圧値で実行させる電圧値情報を生成させるプログラムであって、ソースプログラムのコンパイルを行い、命令列を含むオブジェクトを生成するステップと、前記命令列の命令密度に基づいて前記電圧値情報を生成するステップと、前記オブジェクトと前記電圧値情報とを結合して、ユーザープログラムを生成するステップと、を実行させる。
 本発明によれば、ユーザープログラムに合わせた動作電圧値の変更が負担となりにくい。
第一実施形態に係る情報処理装置のブロック図である。 第一実施形態に係るプログラム生成部の機能を示す図である。 第一実施形態に係る情報処理装置の動作のタイムチャートである。 第二実施形態に係る情報処理装置のブロック図である。 第二実施形態に係る情報処理装置の動作のタイムチャートである。 各実施形態に係るプログラム生成方法のフローチャートである。 各実施形態に係るプログラム生成部のハードウェア構成図である。 各実施形態に係るプログラム生成部の最小構成図である。
 以下、本発明に係る各種実施形態について、図面を用いて説明する。
<第一実施形態>
 第一実施形態の情報処理装置について図1~図3を参照して説明する。
 図1に示すように、情報処理装置1は、プログラム生成部10と、ホスト部20と、システムユニット部30と、を備える。
(構成)
 プログラム生成部10は、第一コンパイラ101と、第二コンパイラ102と、リンカ103と、を備える。
 ホスト部20は、OSデスパッチャ201と、電圧値送信部202と、を備える。
 システムユニット部30は、電圧制御回路301と、メモリ307と、LSI309と、を備える。
 システムユニット部30は、第一コア電源303Aと、第二コア電源303Bと、第三コア電源303Cと、第四コア電源303Dと、メモリ制御電源303Eと、IO電源303Fと、をさらに備える。本実施形態において、これら各電源は、DC/DCコンバータであって、電圧制御回路301の制御によって、出力電圧が制御される。
 LSI309は、第一コア309Aと、第二コア309Bと、第三コア309Cと、第四コア309Dと、ホストIF306と、メモリ制御部310と、を備える。
(プログラム生成部)
 第一コンパイラ101は、ユーザーが作成したソースプログラムを受け付ける。
 第一コンパイラ101は、受け付けたソースプログラムのコンパイルを行い、命令列を含むオブジェクトOJTを生成する。
 第一コンパイラ101は、生成したオブジェクトOJTを第二コンパイラ102及びリンカ103のそれぞれに送る。
 第二コンパイラ102は、第一コンパイラ101からオブジェクトOJTを受け付ける。
 第二コンパイラ102は、受け付けたオブジェクトOJTの固定小数点命令、LDST命令、論路演算命令、シフト演算命令、浮動小数点命令毎の命令密度を分析して電圧値情報VIFを生成する。
 第二コンパイラ102は、生成した電圧値情報VIFをリンカ103に送る。
 リンカ103は、第一コンパイラ101からオブジェクトOJTを受け付ける。また、リンカ103は、第二コンパイラ102から電圧値情報VIFを受け付ける。
 リンカ103は、オブジェクトOJTと電圧値情報VIFとを結合して、ユーザープログラムPGM(プログラム)を順次生成する。
 リンカ103は、生成したユーザープログラムPGMをホスト部20に順次送る。
(ホスト部)
 OSデスパッチャ201は、リンカ103が生成したユーザープログラムPGMを順次受け付ける。
 OSデスパッチャ201は、順次受け付けた各ユーザープログラムPGMを実行するコアの割付けを行う。OSデスパッチャ201は、第一コア309Aと、第二コア309Bと、第三コア309Cと、第四コア309Dの各コアの空き具合を見て、各ユーザープログラムPGMをどのコアに割り付けるかを決定する。例えば、OSデスパッチャ201は、各コアのリソースの使用状態及び負荷状態等の処理状況に基づいて、各ユーザープログラムPGMを割り当てるコアを決定する。
 OSデスパッチャ201は、電圧値送信部202に各ユーザープログラムPGMの電圧値情報VIFを順次送る。
 電圧値送信部202は、OSデスパッチャ201から各ユーザープログラムPGMの電圧値情報VIFを順次受け付ける。
 電圧値送信部202は、各ユーザープログラムPGMの電圧値情報VIFに基づき設定電圧値を生成し、電圧制御回路301に設定電圧値を送る。
(システムユニット)
 システムユニット部30は、各ユーザープログラムPGMを実行する前に、各コア及びホストIF306の動作電圧値を電圧値送信部202から送信された設定電圧値に設定する。
 以下、各ユーザープログラムPGMを実行する前とは、各コアでユーザープログラムPGMの実行を開始する前のコンテキストスイッチ(CSW)時間のことを言う。CSWは、例えば、複数のプロセスが1つのコアを共有できるように、コアの状態を保存したり復元したりする過程を示す。
 電圧制御回路301は、電圧値送信部202から設定電圧値を受け付ける。電圧制御回路301は受け付けた設定電圧値に基づき、第一コア電源303A、第二コア電源303B、第三コア電源303C、第四コア電源303D、メモリ制御電源303E、及びIO電源303Fの各出力電圧をそれぞれ制御する。
 第一コア電源303Aは、電圧制御回路301の制御に応じて、所定の直流電圧である第一コア動作電圧値Vc1を出力し、第一コア309Aに電力を供給する。
 第二コア電源303Bは、電圧制御回路301の制御に応じて、所定の直流電圧である第二コア動作電圧値Vc2を出力し、第二コア309Bに電力を供給する。
 第三コア電源303Cは、電圧制御回路301の制御に応じて、所定の直流電圧である第三コア動作電圧値Vc3を出力し、第三コア309Cに電力を供給する。
 第四コア電源303Dは、電圧制御回路301の制御に応じて、所定の直流電圧である第四コア動作電圧値Vc4を出力し、第四コア309Dに電力を供給する。
 メモリ制御電源303Eは、電圧制御回路301の制御に応じて、所定の直流電圧であるメモリ制御動作電圧値Vcmを出力し、メモリ制御部310に電力を供給する。
 IO電源303Fは、電圧制御回路301の制御に応じて、所定の直流電圧であるIO動作電圧値Vciを出力し、ホストIF306に電力を供給する。
 メモリ307は、各コアがいずれもアクセスしてデータの読み書きができる共通のメモリである。
(LSI)
 第一コア309A、第二コア309B、第三コア309C、及び第四コア309Dはそれぞれ、OSデスパッチャ201から割り当てられたユーザープログラムPGMを処理する。
 ホストIF306は、OSデスパッチャ201との間で通信を行い、ユーザープログラムPGMを各コアのうち、当該ユーザープログラムPGMが割り当てられたコアに供給する。
 メモリ制御部310は、第一コア309Aと、第二コア309Bと、第三コア309Cと、第四コア309Dの各コアによるメモリ307へのアクセスを制御する。
 (第一コンパイラ及び第二コンパイラ)
 第一コンパイラ101及び第二コンパイラ102の機能について詳しく説明する。
 図2は、第一実施形態に係るプログラム生成部の機能を示す図である。第一コンパイラ101は、オブジェクトOJTとして、システムユニット部30で処理できる命令列SQCを生成する。
 本実施形態の場合、図2に示すように命令列SQCの命令A、命令B、命令C・・・命令XXは、それぞれ、固定小数点命令、論理演算命令、シフト演算命令、浮動小数点命令、LDST命令(ロードおよびストア命令)のいずれかに分類される。
 第二コンパイラ102は、以下のように命令列SQCの命令密度を分析し、以下のように電圧値情報VIFを作成する。命令密度は、例えば、命令列SQCに含まれる各命令が属する命令種の、命令列SQCにおける比率を示す。
(命令密度分析)
 第二コンパイラ102は、命令列SQCの命令A、命令B、命令C・・・命令XXの各命令を、それぞれ、固定小数点命令、論理演算命令、シフト演算命令、浮動小数点命令、LDST命令(ロードおよびストア命令)の命令種のうち、いずれかの命令種に分類する。
 第二コンパイラ102は、命令密度分析の結果として、複数の命令種のうち、命令列SQCに含まれる各命令が分類された比率が最も高い命令種を判断する。
(電圧値情報生成)
 電圧値情報VIFは、LSIを電圧コンテキストに基づく動作電圧値で実行させるための情報である。
 第二コンパイラ102は、命令密度分析の結果に応じて、以下(ケース1)~(ケース5)のいずれかを実施して電圧値情報VIFを生成し、生成した電圧値情報VIFをリンカ103に送る。つまり、第二コンパイラ102は、命令列SQCに含まれる各命令を複数の命令種に分類し、分類された比率が最も高い命令種に基づいて電圧値情報VIFを生成する。
(ケース1)LDST命令の比率が最も高い場合、電圧値情報VIFとして、「IO動作電圧値を上げる旨の設定情報」を生成する。
(ケース2)論理演算命令の比率が最も高い場合、電圧値情報VIFとして、「コア動作電圧値を下げる旨の設定情報」を生成する。
(ケース3)シフト演算命令の比率が最も高い場合、電圧値情報VIFとして、「コア動作電圧値を中間の電圧に設定する旨の設定情報」を生成する。
(ケース4)固定小数点命令の比率が最も高い場合、電圧値情報VIFとして、「コア動作電圧値を中間の電圧に設定する旨の設定情報」を生成する。
(ケース5)浮動小数点命令の比率が高い場合、電圧値情報VIFとして、「コア動作電圧値を最大にするように設定する旨の設定情報」を生成する。
 このように、第二コンパイラは、命令密度が示す比率が最も高い命令種に応じて電圧値情報を設定する。第二コンパイラは、例えば、比率が最も高い命令種に応じて増減させた値に電圧値情報を設定する。
(電圧送信部)
 電圧値送信部202の機能について詳しく説明する。
 図3は、第一実施形態に係る情報処理装置の動作のタイムチャートである。なお、図3では、説明のために各JOBの実行時間が短く設定されているが、実際のJOBの実行時間は図示されているより長い。図3には、OSデスパッチャ201により、各コアに割り付けられた各ユーザープログラムPGMが実行される状況が示される。図3には、実行される各ユーザープログラムPGMが、それぞれJOB01,JOB02,JOB03,JOB11・・・,JOB34として示されている。
 まず、タイミング0において、OSデスパッチャ201により、第一コア309AにJOB01、第二コア309BにJOB11、第三コア309CにJOB21、第四コア309DにJOB31が割り当てられる。
 このとき、タイミング0において、電圧値送信部202は、第一コア設定電圧値Vs1として、電圧値情報VIFに基づき第一コア309Aに適した電圧値を生成する。
 なお、電圧値送信部202は(ケース1)の場合、所定の初期設定の電圧値をそのまま第一コア設定電圧値Vs1として設定する。
 電圧値送信部202は(ケース2)の場合、所定の初期設定の電圧値に対し、初期設定の電圧値を下げた電圧値を新たな第一コア設定電圧値Vs1として設定する。
 電圧値送信部202は(ケース3~5)の場合、電圧値情報VIFに基づく電圧値を新たな第一コア設定電圧値Vs1として設定する。
 同様に、タイミング0において、電圧値送信部202は、第二コア設定電圧値Vs2として、電圧値情報VIFに基づき第二コア309Bに適した電圧値、第三コア設定電圧値Vs3として、電圧値情報VIFに基づき第三コア309Cに適した電圧値、第四コア設定電圧値Vs4として、電圧値情報VIFに基づき第四コア309Dに適した電圧値を生成する。
 本実施形態では、タイミング0において、電圧値送信部202は、生成した第一コア設定電圧値Vs1、第二コア設定電圧値Vs2、第三コア設定電圧値Vs3、第四コア設定電圧値Vs4を、電圧制御回路301に送る。
 電圧制御回路301は、電圧値送信部202から各設定電圧値を受け付けると、タイミング0において、各コアの動作電圧値がそれぞれ設定電圧値になるように制御する。
 具体的には、電圧制御回路301は、第一コア309Aに供給される第一コア動作電圧値Vc1が第一コア設定電圧値Vs1となるように、第一コア電源303Aを制御する。
 同様に、電圧制御回路301は、第二コア309Bに供給される第二コア動作電圧値Vc2が第二コア設定電圧値Vs2となるように、第二コア電源303Bを制御する。
 同様に、電圧制御回路301は、第三コア309Cに供給される第三コア動作電圧値Vc3が第三コア設定電圧値Vs3となるように、第三コア電源303Cを制御する。
 同様に、電圧制御回路301は、第四コア309Dに供給される第四コア動作電圧値Vc4が第四コア設定電圧値Vs4となるように、第四コア電源303Dを制御する。
 図3には示さないが、情報処理装置1は、ホストIF動作電圧値Vciも同様に設定する。
 すなわち、タイミング0において、電圧値送信部202は、ホストIF設定電圧値Vsiとして、電圧値情報VIFに基づきホストIF306に適した電圧値を生成し、生成したホストIF設定電圧値Vsiを、電圧制御回路301に送る。さらに、電圧制御回路301は、ホストIF306に供給されるホストIF動作電圧値VciがホストIF設定電圧値Vsiとなるように、IO電源303Fを制御する。
 なお、ケース1の場合、電圧値送信部202は、所定の初期設定の電圧値に対し、初期設定の電圧を上げた電圧値を新たなホストIF設定電圧値Vsiとして設定する。
 また、本実施形態では、電圧制御回路301は、メモリ制御動作電圧値Vcmを所定の初期設定の電圧値となるように制御する。
 続いて、タイミング1において、第一コア309AでJOB01、第二コア309BでJOB11、第三コア309CでJOB21、第四コア309DでJOB31の実行がそれぞれ開始される。
 続いて、タイミング8においてJOB02の実行が第一コア309Aで開始される。このとき、JOB02の実行を開始するタイミングの1タイミング前において、電圧値送信部202は、第一コア設定電圧値Vs1として、電圧値情報VIFに基づき第一コア309Aに適した電圧値を生成する。
 本実施形態では、情報処理装置1は、JOB02の実行を開始するタイミングの1タイミング前において、第一コア309Aに供給する電圧を下げている。
 例えば、JOB02の電圧値情報VIFが「コア動作電圧値を下げる旨の設定情報」であれば、電圧値送信部202は、タイミング1において設定された第一コア設定電圧値Vs1より低い電圧を新たな第一コア設定電圧値Vs1として生成し、電圧制御回路301に送る。これにより、情報処理装置1は、JOB02の実行を開始するタイミングの1タイミング前において、第一コア309Aに供給する電圧を下げる。
 同様に、タイミング15においてJOB03の実行が第一コア309Aで開始される。このとき、JOB3の実行を開始するタイミングの1タイミング前において、電圧値送信部202は、新たな第一コア設定電圧値Vs1として、電圧値情報VIFに基づき第一コア309Aに適した電圧値を生成する。
 本実施形態では、情報処理装置1は、JOB03の実行を開始するタイミングの1タイミング前において、第一コア309Aに供給する電圧を上げている。
 同様に、タイミング10においてJOB12、タイミング18においてJOB13の実行が第二コア309Bでそれぞれ開始される。このとき、各JOBの実行を開始するタイミングの1タイミング前において、電圧値送信部202は、新たな第二コア設定電圧値Vs2として、電圧値情報VIFに基づき第二コア309Bに適した電圧値をそれぞれ生成する。
 同様に、タイミング7においてJOB22、タイミング13においてJOB23の実行が第三コア309Cでそれぞれ開始される。このとき、各JOBの実行を開始するタイミングの1タイミング前において、電圧値送信部202は、新たな第三コア設定電圧値Vs3として、電圧値情報VIFに基づき第三コア309Cに適した電圧値をそれぞれ生成する。
 ただし、本実施形態の場合、JOB22とJOB23とは、適した電圧値が同じである。このため、JOB22に対して生成される第三コア設定電圧値Vs3と、JOB23に対して生成される第三コア設定電圧値Vs3とは、同じ電圧である。
 同様に、タイミング7でJOB32、タイミング12でJOB33、タイミング17でJOB34の実行が第四コア309Dでそれぞれ開始される。このとき、各JOBの実行を開始するタイミングの1タイミング前において、電圧値送信部202は、第四コア設定電圧値Vs4として、電圧値情報VIFに基づき第四コア309Dに適した電圧値をそれぞれ生成する。
 ただし、本実施形態の場合、JOB33とJOB34とは適した電圧値が同じなので、JOB33に対して生成される第四コア設定電圧値Vs4と、JOB34に対して生成される第四コア設定電圧値Vs4とは、同じ電圧である。
(作用及び効果)
 本実施形態の情報処理装置1は、第二コンパイラ102が、命令列の固定小数点命令、LDST命令、論路演算命令、シフト演算命令、浮動小数点命令毎の命令密度を分析している。このため、事前に各ユーザープログラムPGMに合った動作電圧値を確認することなく、各ユーザープログラムPGMに適した電圧を各コア及びホストIFに供給することができるので、無駄な消費電力を削除する事が可能となる。
 したがって、情報処理装置1は、各ユーザープログラムPGMに合わせた動作電圧値の変更が負担となりにくい。
 また、本実施形態では、各ユーザープログラムPGMに必要な電圧値が供給されるので、情報処理装置1は、無駄な電力を抑制でき、低消費電力を実現できる。
 さらに、本実施形態では、各コアの電源が分離されており、各コア及びホストIF別に動作電圧値を制御することができる。このため、情報処理装置1は、割り付けられたユーザープログラムPGMに適した電圧をコア別及びホストIFに動作電圧値を設定し、コア別及びホストIFに電力を供給することができる。
 したがって、情報処理装置1は、より無駄がなく最適な電力を供給することができる。
 最大電流が流れるプログラムでも動作する電圧値が設定されている。このため、動作電圧値を変更しない情報処理装置では、プログラムによっては過剰な電力を供給している場合がある。
 特許文献1の情報処理装置では、このような過剰な電力を削減するため、プログラム毎の電力制御情報を使用しており、プログラムを一度走行させて成功するかの確認を実施してから電圧制御を実施している。このため、特許文献1のような情報処理装置は、プログラムの1回目の実行から、プログラムを実行するのに適した動作電圧値をコアに供給することができない。さらに、プログラムが更新されると適した動作電圧値をコアに供給することができない。
 これに対し、本実施形態の情報処理装置1は、上述のとおり、命令列の命令密度を分析しているため、事前に各ユーザープログラムPGMに合った動作電圧値を確認する必要がない。
 したがって、ユーザープログラムPGMの1回目の実行から、ユーザープログラムPGMを実行するのに適した動作電圧値をコアに供給することができる。さらに、ユーザープログラムPGMが更新されても、適した動作電圧値をコアに供給することができる。
 加えて、特許文献2の情報処理装置でも、過剰な電力を削減するため、命令列に合わせて動作電圧値を変更している。特許文献2の情報処理装置では、命令列のうち、連続する命令の先頭に動作電圧値制御命令を追加し、動作電圧値の変更指示を出している。通常、電圧制御が行われる場合、動作電圧値の変更指示が出されてから動作電圧値が実際に変更されるまで、タイムラグが発生する。このため、特許文献2の情報処理装置では、動作電圧値の変更指示が出してから、実際にコアの動作電圧値が変更されるまでにタイムラグが発生する。
 これに対し、本実施形態の情報処理装置1は、各ユーザープログラムPGMの実行前のCSW時間に、各コアに供給する電圧を変更している。
 したがって、本実施形態の情報処理装置1は、特許文献2のような電圧変更のタイムラグの発生を抑制することができる。
<第二実施形態>
 第二実施形態の情報処理装置について図4及び図5を参照して説明する。
 本実施形態に係る情報処理装置1’は、各コアで電源を共有している点が異なる。以下説明する点を除いて情報処理装置1’の構成は、第一実施形態に係る情報処理装置1と同様である。
(構成)
 図4に示すように、情報処理装置1’は、プログラム生成部10と、ホスト部20’と、システムユニット部30’と、を備える。
 ホスト部20’は、OSデスパッチャ201と、電圧値送信部202’と、を備える。
 システムユニット部30’は、電圧制御回路301’と、メモリ307と、LSI309’と、を備える。
 システムユニット部30’は、内部電源303A’と、IO電源303Fと、をさらに備える。本実施形態において、これら各電源は、DC/DCコンバータであって、電圧制御回路301’の制御によって、出力電圧が制御される。
 電圧値送信部202’は、OSデスパッチャ201から各ユーザープログラムPGMの電圧値情報VIFを順次受け付ける。
 電圧値送信部202’は、各ユーザープログラムPGMの電圧値情報VIFに基づき設定電圧値を生成し、電圧制御回路301’に設定電圧値を送る。
(システムユニット)
 システムユニット部30’は、各ユーザープログラムPGMを実行する前に、各コアの動作電圧値を電圧値送信部202’から送信された設定電圧値に設定する。
 電圧制御回路301’は、電圧値送信部202’から設定電圧値を受け付ける。電圧制御回路301’は受け付けた設定電圧値に基づき、内部電源303A’、IO電源303Fの各出力電圧をそれぞれ制御する。
 内部電源303A’は、第一コア309A、第二コア309B、第三コア309C、第四コア309D、及びメモリ制御部310に共通の電源である。
 内部電源303A’は、電圧制御回路301’の制御に応じて、所定の直流電圧である共通動作電圧値Vccを出力し、第一コア309A、第二コア309B、第三コア309C、第四コア309D、及びメモリ制御部310に電力を供給する。
(電圧送信部)
 電圧値送信部202’の機能について詳しく説明する。
 図5は、第二実施形態に係る情報処理装置の動作のタイムチャートである。図5に示すように、まず、タイミング0において、第一コア設定電圧値Vs1、第二コア設定電圧値Vs2、第三コア設定電圧値Vs3、及び第四コア設定電圧値Vs4を生成する。
 続いて、タイミング0において、生成した第一コア設定電圧値Vs1、第二コア設定電圧値Vs2、第三コア設定電圧値Vs3、及び第四コア設定電圧値Vs4を合算して、共通設定電圧値Vscを算出する。
 続いて、タイミング0において、電圧値送信部202’は、生成した共通設定電圧値Vscを、電圧制御回路301’に送る。
 電圧制御回路301’は、電圧値送信部202’から共通設定電圧値Vscを受け付けると、タイミング0において、共通動作電圧値Vccが共通設定電圧値Vscになるように、内部電源303A’を制御する。
 図5には示さないが、情報処理装置1’は、ホストIF動作電圧値Vciも同様に、共通動作電圧値Vccとは別に設定する。
 すなわち、タイミング0において、電圧値送信部202’は、ホストIF設定電圧値Vsiとして、電圧値情報VIFに基づきホストIF306に適した電圧値を生成し、生成したホストIF設定電圧値Vsiを、電圧制御回路301’に送る。さらに、電圧制御回路301’は、ホストIF306に供給されるホストIF動作電圧値VciがホストIF設定電圧値Vsiとなるように、IO電源303Fを制御する。
(共通設定電圧値算出)
 本実施形態では、電圧値送信部202’は、各ユーザープログラムPGMを実行する前(ユーザープログラムPGM実行前のCSW時間)に、共通設定電圧値Vscを算出する。電圧値送信部202’は、各タイミングの第一コア設定電圧値Vs1、第二コア設定電圧値Vs2、第三コア設定電圧値Vs3、及び第四コア設定電圧値Vs4の4コア分の各設定電圧値を合算して、共通設定電圧値Vscを算出する。
 ここで各設定電圧値の合算の例を説明する。
 まず、電圧値送信部202’は、4コア分の各設定電圧値について、図5に示すように、設定電圧値を低下する指示の個数(電圧値低下指示個数)を数える。電圧値送信部202’は、電圧値低下指示個数が3個以上(電圧値低下指示個数≧3)になったら、設定された共通設定電圧値Vscより低い電圧を新たな共通設定電圧値Vscとして生成し、新たな共通設定電圧値Vscを、電圧制御回路301’に送る。
 電圧制御回路301’は、電圧値送信部202’から新たな共通設定電圧値Vscを受け付けると、共通動作電圧値Vccが新たな共通設定電圧値Vscになるように、各ユーザープログラムを実行する前(ユーザープログラムPGM実行前のCSW時間)に、内部電源303A’を制御する。
 情報処理装置1’において、元の共通動作電圧値Vccは、最大電流が流れるユーザープログラムPGMでも動作するように設定されている。このため、「4コア分の電圧値低下指示個数≧3」の判断基準で共通動作電圧値Vccを低下させれば、ユーザープログラムPGMの動作を妨げることなく、ユーザープログラムPGMを実行することができる。
 図5によると、タイミング7において、電圧値低下指示個数が3個以上に遷移する。このため、電圧値送信部202’は、より低い電圧を、新たな共通設定電圧値Vscとして生成する。電圧制御回路301’は、タイミング8に示すように、共通動作電圧値Vccが新たな共通設定電圧値Vscになるように、内部電源303A’を制御する。これにより、情報処理装置1’は、JOB02の実行を開始するタイミングの1タイミング前に、各コア及びメモリ制御部310に供給する電圧を下げている。
 逆に、電圧値低下指示個数が再び3個未満(電圧値低下指示個数<3)になったら、図5のタイミング15に示すように、情報処理装置1’は、共通動作電圧値Vccを高くする。
 図5によると、タイミング14において、電圧値低下指示個数が3個未満に遷移する。このため、電圧値送信部202’は、より高い電圧を、新たな共通設定電圧値Vscとして生成する。電圧制御回路301’は、タイミング15に示すように、共通動作電圧値Vccが新たな共通設定電圧値Vscになるように、内部電源303A’を制御する。これにより、情報処理装置1’は、JOB03の実行を開始するタイミングの1タイミング前に、各コア及びメモリ制御部310に供給する電圧を上げている。
 なお、本実施形態では、電圧値低下指示個数が3個以上、または、電圧値低下指示個数が3個未満に遷移にした場合に、電圧値送信部202’が共通設定電圧値Vscを変更する。ただし、この例に限定されるものではない。電圧値送信部202’は、例えば、電圧値低下指示個数が2個以上、または、電圧値低下指示個数が2個未満に遷移にした場合に、共通設定電圧値Vscを変更してもよい。なお、電圧値送信部202’は、共通設定電圧値Vscを変更する際、各コアの設定電圧値を合算して、共通設定電圧値Vscを再算出してもよい。
(作用及び効果)
 本実施形態の情報処理装置1’は、第一実施形態の情報処理装置1と同様、第二コンパイラ102が、命令列の固定小数点命令、LDST命令、論路演算命令、シフト演算命令、浮動小数点命令毎の命令密度を分析している。このため、事前に各ユーザープログラムPGMに合った動作電圧値を確認することなく、各ユーザープログラムPGMに適した電圧を各コア及びホストIFに供給することができるので、無駄な消費電力を削除する事が可能となる。
 したがって、情報処理装置1’は、各ユーザープログラムPGMに合わせた動作電圧値の変更が負担となりにくい。
 また、本実施形態の情報処理装置1’は、情報処理装置1と同様、各ユーザープログラムPGM実行前のCSW時間に、共通動作電圧値を変更している。
 また、本実施形態の情報処理装置1’において、内部電源303A’は、第一コア309A、第二コア309B、第三コア309C、第四コア309D、及びメモリ制御部310に共通の電源である。このため、本実施形態の情報処理装置1’によると、第一実施形態の情報処理装置1に対して、搭載する電源の数を抑制することができる。これにより、例えば、コストを抑制するとともに、情報処理装置1’のサイズを小さくすることができる。
<プログラム生成方法>
 上述の各実施形態におけるプログラム生成方法を、図6を参照して説明する。
 図6は、各実施形態に係るプログラム生成方法のフローチャートである。本プログラム生成方法では、電圧値情報VIFに基づく動作電圧値でLSIを実行させるユーザープログラムPGMを生成する。
 最初に、プログラム生成部10は、ユーザーが作成したソースプログラムのコンパイルを行い、命令列を含むオブジェクトを生成する(ST10:オブジェクトを生成するステップ)。
 ST10におけるオブジェクトの生成に続いて、プログラム生成部10は、命令列の命令密度を分析し、電圧値情報VIFを生成する(ST20:電圧値情報を生成するステップ)。
 ST20における電圧値情報の生成に続いて、プログラム生成部10は、オブジェクトOJTと電圧値情報VIFとを結合して、ユーザープログラムPGMを生成する(ST30:プログラムを生成するステップ)。
 ST30における電圧値情報の生成が終わると、プログラム生成部10は処理を終了する。また、プログラム生成部10は、次のソースプログラムが提供されると再び処理を開始する。
<ハードウェア構成>
 図7には、上述の各実施形態において、プログラム生成部10を実現するためのハードウェア構成の一例が示されている。この図が示すようにプログラム生成部10は、CPU(Central Processing Unit)105、メモリ106、記憶/再生装置107、HDD(Hard Disk Drive)108、IO I/F(Input Output Interface)109等の各ハードウェアを備えたコンピュータである。
 メモリ106は、RAM(Random Access Memory)やROM(Read Only Memory)等の記憶媒体である。
 記憶/再生装置107は、CD-ROM、DVD、フラッシュメモリ等の外部メディアへプログラム、データ等を記憶したり、外部メディアのプログラム、データ等を再生したりするための装置である。
 IO I/F109は、ソースプログラムの入力、ホスト部20(20’)との間で情報等の入出力等を行うためのインターフェースである。
<コンピュータプログラム>
 上述の各実施形態において、プログラム生成部の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記憶媒体に記憶して、この記憶媒体に記憶されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
 また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
 また、「コンピュータ読み取り可能な記憶媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記憶媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記憶されているプログラムとの組み合わせで実現できるものであってもよい。
<各実施形態の最小構成>
 図8には、上述の各実施形態のプログラム生成部10の最小構成が示されている。
 プログラム生成部10は、LSIを電圧コンテキストに基づく動作電圧値で実行させる電圧値情報を生成する。
 プログラム生成部10は、第一コンパイラ101と、第二コンパイラ102と、リンカ103と、を備える。
 第一コンパイラ101は、ソースプログラムのコンパイルを行い、命令列を含むオブジェクトを生成する。第二コンパイラ102は、命令列の命令密度を分析し、電圧値情報を生成する。リンカ103は、オブジェクトと電圧値情報とを結合して、ユーザープログラムを生成する。
<変形例>
 上述の各実施形態において、LSIは、4個のコアで構成されているが、何個のコアで構成されていてもよい。変形例として、5個以上のコアで構成されていてもよい。他の変形例として、3個以下のコアで構成されていてもよい。
 上述の各実施形態では、第二コンパイラ102が、命令列に含まれる各命令を、LDST命令、論理演算命令、シフト演算命令、固定小数点命令、及び浮動小数点命令の命令種に分類している。変形例として、第二コンパイラ102が、命令列に含まれる各命令を、LDST命令、論理演算命令、シフト演算命令、固定小数点命令、浮動小数点命令のうち、少なくとも2以上の命令種に分類するものであってもよい。または、命令種は、LDST命令、論理演算命令、シフト演算命令、固定小数点命令、及び浮動小数点命令の命令種以外の命令種を含んでいてもよい。
 上述の第一実施形態において、情報処理装置は、メモリ制御動作電圧値Vcmを、所定の初期設定の電圧値となるように制御している。変形例として、情報処理装置は、電圧値情報VIFに基づき、メモリ制御部に適したメモリ制御設定電圧値を生成し、メモリ制御設定電圧値となるように、メモリ制御動作電圧値Vcmを制御してもよい。
 上述の第二実施形態では、4コア分の各設定電圧値を合算して、共通設定電圧値Vscを算出している。変形例として、4コア分の各設定電圧値に加えて、ホストIF設定電圧値Vsiも合算してもよい。
 以上、本発明の実施形態を説明したが、この実施形態は、例として示したものであり、発明の範囲を限定することは意図していない。この実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものとする。
 この出願は、2018年3月19日に日本出願された特願2018-051582号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 本発明によれば、ユーザープログラムに合わせた動作電圧値の変更が負担となりにくい。
1 情報処理装置
1’ 情報処理装置
10 プログラム生成部
20 ホスト部
20’ ホスト部
30 システムユニット
30’ システムユニット
101 第一コンパイラ
102 第二コンパイラ
103 リンカ
106 メモリ
107 記憶/再生装置
108 HDD
109 IO I/F
201 OSデスパッチャ
202 電圧値送信部
202’ 電圧値送信部
301 電圧制御回路
301’ 電圧制御回路
303A 第一コア電源
303A’ 内部電源
303B 第二コア電源
303C 第三コア電源
303D 第四コア電源
303E メモリ制御電源
303F IO電源
306 ホストIF
307 メモリ
309 LSI
309’ LSI
309A 第一コア
309B 第二コア
309C 第三コア
309D 第四コア
310 メモリ制御部
SQC 命令列
Vc1 第一コア動作電圧値
Vc2 第二コア動作電圧値
Vc3 第三コア動作電圧値
Vc4 第四コア動作電圧値
Vcc 共通動作電圧値
Vci ホストIF動作電圧値
Vcm メモリ制御動作電圧値
Vs1 第一コア設定電圧値
Vs2 第二コア設定電圧値
Vs3 第三コア設定電圧値
Vs4 第四コア設定電圧値
Vsc 共通設定電圧値
Vsi ホストIF設定電圧値

Claims (9)

  1.  LSIを電圧コンテキストに基づく動作電圧値で実行させる電圧値情報を生成するプログラム生成部であって、
     ソースプログラムのコンパイルを行い、命令列を含むオブジェクトを生成する第一コンパイラと、
     前記命令列の命令密度に基づいて前記電圧値情報を生成する第二コンパイラと、
     前記オブジェクトと前記電圧値情報とを結合して、ユーザープログラムを生成するリンカと、
     を備えるプログラム生成部。
  2.  前記命令列の命令密度は、前記命令列に含まれる各命令が属する命令種の、前記命令列における比率を示す、請求項1に記載のプログラム生成部。
  3.  前記第二コンパイラが、前記命令列に含まれる各命令を、複数の命令種に分類し、分類された比率が最も高い前記命令種に基づいて、前記電圧値情報を生成する請求項1または請求項2に記載のプログラム生成部。
  4.  前記第二コンパイラは、前記命令密度が示す前記比率が最も高い前記命令種に応じて電圧値情報を設定する、請求項2または請求項3に記載のプログラム生成部。
  5.  前記第二コンパイラが、LDST命令、論理演算命令、シフト演算命令、固定小数点命令、浮動小数点命令のうち、少なくとも2以上の前記命令種に分類する請求項2から請求項4のいずれか一項に記載のプログラム生成部。
  6.  請求項1から請求項5のいずれか一項に記載されるプログラム生成部と、
     前記電圧値情報に基づき電圧値を生成する電圧送信部を有するホスト部と、
     前記ユーザープログラムを処理するコアを有し、前記ユーザープログラムを実行する前に、前記コアの前記動作電圧値を前記電圧値に設定するシステムユニットと、
     を備える情報処理装置。
  7.  前記システムユニットは複数の前記コアを有し、
     前記電圧送信部が、前記複数のコアに対応する複数の前記電圧値を生成し、生成した前記複数の電圧値を合算し、前記複数のコアに対応する前記動作電圧値を当該合算した電圧値に設定する請求項6に記載の情報処理装置。
  8.  LSIを電圧コンテキストに基づく動作電圧値で実行させる電圧値情報を生成するプログラム生成方法であって、
     ソースプログラムのコンパイルを行い、命令列を含むオブジェクトを生成するステップと、
     前記命令列の命令密度に基づいて前記電圧値情報を生成するステップと、
     前記オブジェクトと前記電圧値情報とを結合して、ユーザープログラムを生成するステップと、
     を含むプログラム生成方法。
  9.  コンピュータに、LSIを電圧コンテキストに基づく動作電圧値で実行させる電圧値情報を生成させるプログラムであって、
     ソースプログラムのコンパイルを行い、命令列を含むオブジェクトを生成するステップと、
     前記命令列の命令密度に基づいて前記電圧値情報を生成するステップと、
     前記オブジェクトと前記電圧値情報とを結合して、ユーザープログラムを生成するステップと、
     を実行させるプログラム。
     
PCT/JP2019/011345 2018-03-19 2019-03-19 プログラム生成部、情報処理装置、プログラム生成方法、及びプログラム WO2019181904A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP19771160.9A EP3770753A4 (en) 2018-03-19 2019-03-19 PROGRAM GENERATION UNIT, INFORMATION PROCESSING DEVICE, PROGRAM GENERATION METHOD AND PROGRAM
US16/981,014 US11656858B2 (en) 2018-03-19 2019-03-19 Program generation unit, information processing device, program generation method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018-051582 2018-03-19
JP2018051582A JP7031930B2 (ja) 2018-03-19 2018-03-19 プログラム生成部、情報処理装置、プログラム生成方法、及びプログラム

Publications (1)

Publication Number Publication Date
WO2019181904A1 true WO2019181904A1 (ja) 2019-09-26

Family

ID=67986255

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/011345 WO2019181904A1 (ja) 2018-03-19 2019-03-19 プログラム生成部、情報処理装置、プログラム生成方法、及びプログラム

Country Status (4)

Country Link
US (1) US11656858B2 (ja)
EP (1) EP3770753A4 (ja)
JP (1) JP7031930B2 (ja)
WO (1) WO2019181904A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111338606A (zh) * 2020-02-20 2020-06-26 北京邮电大学 一种实验系统的开发框架

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003202942A (ja) 2001-11-05 2003-07-18 Matsushita Electric Ind Co Ltd 消費電力の最適化方法
JP2010250858A (ja) 2005-04-27 2010-11-04 Panasonic Corp 電力制御装置
US20170351318A1 (en) * 2016-06-02 2017-12-07 Northwestern University System and method for associative power and clock management with instruction governed operation for power efficient computing
JP2018051582A (ja) 2016-09-28 2018-04-05 水ing株式会社 スクリュープレス、およびスクリュープレスの運転方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4393377A (en) * 1980-08-12 1983-07-12 Pitney Bowes Inc. Circuit for controlling information on a display
US4570217A (en) * 1982-03-29 1986-02-11 Allen Bruce S Man machine interface
KR100236876B1 (ko) * 1990-03-28 2000-01-15 가나이 쓰도무 신호의 스윙을 저감하는 cmos 회로
US6879341B1 (en) * 1997-07-15 2005-04-12 Silverbrook Research Pty Ltd Digital camera system containing a VLIW vector processor
JP4044756B2 (ja) * 2001-12-11 2008-02-06 松下電器産業株式会社 プログラム変換装置、プログラム変換方法、及び当該プログラム変換装置を実現するプログラム
CA2517579A1 (en) * 2002-02-28 2003-09-04 Zetacon Corporation Predictive control system and method
JP4082706B2 (ja) * 2005-04-12 2008-04-30 学校法人早稲田大学 マルチプロセッサシステム及びマルチグレイン並列化コンパイラ
US8191052B2 (en) * 2006-12-01 2012-05-29 Murex S.A.S. Producer graph oriented programming and execution
US9378181B2 (en) * 2012-11-09 2016-06-28 Intel Corporation Scalable computing array
US10180828B2 (en) 2014-04-29 2019-01-15 Significs And Elements, Llc Systems and methods for power optimization of processors
US20160216969A1 (en) * 2015-01-28 2016-07-28 Qualcomm Incorporated System and method for adaptively managing registers in an instruction processor
US10460057B2 (en) * 2015-11-10 2019-10-29 Wei Li Apparatus and method for modelling a modular multilevel converter in an electronic simulator
US10621116B2 (en) * 2017-06-08 2020-04-14 Western Digital Technologies, Inc. Non-volatile storage device with adaptive data bus inversion

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003202942A (ja) 2001-11-05 2003-07-18 Matsushita Electric Ind Co Ltd 消費電力の最適化方法
JP2010250858A (ja) 2005-04-27 2010-11-04 Panasonic Corp 電力制御装置
US20170351318A1 (en) * 2016-06-02 2017-12-07 Northwestern University System and method for associative power and clock management with instruction governed operation for power efficient computing
JP2018051582A (ja) 2016-09-28 2018-04-05 水ing株式会社 スクリュープレス、およびスクリュープレスの運転方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
SASAKI HIROSHI , ASAI MASASHI, IKEDA YOSHIMICHI, KONDO MASAAKI, NAKAMURA HIROSHI: "Dynamic Voltage Scaling Method Based on Statistical Analysis", TRANSACTIONS OF INFORMATION PROCESSING SOCIETY OF JAPAN, vol. 47, no. 18, 30 November 2006 (2006-11-30), pages 80 - 91, XP055733119 *
See also references of EP3770753A4
TORU ISHIHARA, HIROTO YASUURA: "Theory of the Static Voltage Scheduling for Dynamically Variable Voltage Processors", IPSJ SYMPOSIUM SERIES , vol. 98, no. 9, 16 July 1998 (1998-07-16), pages 287 - 292, XP009523139, ISSN: 1344-0640 *

Also Published As

Publication number Publication date
JP7031930B2 (ja) 2022-03-08
US20210019129A1 (en) 2021-01-21
US11656858B2 (en) 2023-05-23
EP3770753A4 (en) 2021-12-15
EP3770753A1 (en) 2021-01-27
JP2019164527A (ja) 2019-09-26

Similar Documents

Publication Publication Date Title
JP4723313B2 (ja) 画像処理装置
JP5046801B2 (ja) 画像処理装置及びプログラム
KR101990411B1 (ko) 클라우드 시스템에서의 우선 순위 기반 자원 스케일링 시스템, 장치 및 방법
KR101392584B1 (ko) 리소스 모니터링을 이용한 동적 데이터 처리 장치 및 그 방법
JP2009528649A (ja) 分散コンピューティングに関する改良
JP2010009395A (ja) 情報処理装置、粒度調整方法およびプログラム
JP6666555B2 (ja) 情報処理装置、ジョブ投入方法、およびジョブ投入プログラム
WO2019181904A1 (ja) プログラム生成部、情報処理装置、プログラム生成方法、及びプログラム
JP5534426B2 (ja) 画像形成装置およびそのプログラム
KR20100064563A (ko) 데이터 처리 장치 및 그 제어 방법
WO2014188642A1 (ja) スケジュールシステム、スケジュール方法、及び、記録媒体
JP6228318B2 (ja) 計算機及び計算機システム
JP2009129163A (ja) データ処理装置及びデータ処理プログラム
US20120017070A1 (en) Compile system, compile method, and storage medium storing compile program
JP5232728B2 (ja) 画像形成装置
JP2014078214A (ja) スケジュールシステム、スケジュール方法、スケジュールプログラム、及び、オペレーティングシステム
JP2014222473A (ja) データ処理装置、データ処理方法、データ処理制御装置、プログラムおよび記録媒体
JP5656000B2 (ja) 画像形成装置およびそのプログラム
JP2016071725A (ja) ワークフロー制御プログラム、ワークフロー制御方法及び情報処理装置
US10120730B2 (en) Load control device and load control method
JP2005115620A (ja) タスク管理方法及びタスク管理手段を有する電子機器
JPWO2018167940A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP2013052568A (ja) 画像形成装置、制御方法及び制御プログラム
JP6364815B2 (ja) ジョブ管理装置及びジョブ管理方法
JP2016103258A (ja) 並列演算装置、並列演算システム、およびジョブ制御プログラム

Legal Events

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

Ref document number: 19771160

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019771160

Country of ref document: EP

Effective date: 20201019