JP2011164758A - Compiler for vliw type processor, and system and method for developing program for vliw type processor - Google Patents

Compiler for vliw type processor, and system and method for developing program for vliw type processor Download PDF

Info

Publication number
JP2011164758A
JP2011164758A JP2010024266A JP2010024266A JP2011164758A JP 2011164758 A JP2011164758 A JP 2011164758A JP 2010024266 A JP2010024266 A JP 2010024266A JP 2010024266 A JP2010024266 A JP 2010024266A JP 2011164758 A JP2011164758 A JP 2011164758A
Authority
JP
Japan
Prior art keywords
program
unit
vliw processor
computing
usage information
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2010024266A
Other languages
Japanese (ja)
Inventor
Atsushi Tanaka
篤志 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010024266A priority Critical patent/JP2011164758A/en
Publication of JP2011164758A publication Critical patent/JP2011164758A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • 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

Abstract

<P>PROBLEM TO BE SOLVED: To achieve a development system capable of easily developing a program for a VLIW type processor that can efficiently perform power control for setting a computing unit which is not continuously used to a low power consumption mode. <P>SOLUTION: The development system for the VLIW type processor includes a plurality of slots 35A, 35B respectively including a plurality of computing units 36AA, 36AB, 36AC, 36BA, 36BB, 36BC and capable of setting at least a part of the computing units to the low power consumption mode. The system includes: a compiler 21 for the VLIW type processor; a computing unit use information generation part 38 for generating the use information of the computing unit to be used for executing a program outputted from the compiler 21; and a computing unit use information output part 72 for generating and outputting a power control compilation option based on the use information. The compiler 21 includes an interface to which the power control compilation option for instructing a change in the computing units to be used for respective slots is inputted. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、VLIW型プロセッサ用コンパイラ、VLIW型プロセッサ用プログラム開発システムおよびVLIW型プロセッサ用プログラム開発方法に関する。   The present invention relates to a compiler for a VLIW processor, a program development system for a VLIW processor, and a program development method for a VLIW processor.

近年、携帯機器市場の拡大により、電池での動作時間を長くできる携帯機器用の低消費電力プロセッサシステムが要求されている。また、インターネットにおいてサービスを提供するために使用される高性能サーバにおいても、サーバ自体の電力やサーバを設置する部屋の温度管理に必要な電力が増加傾向にあり、サーバ用低消費電力プロセッサシステムが要求されている。このような要求を満たすための方法として、プロセッサシステム内部を複数のドメインに分け、少なくとも一部のドメインは低消費電力モードに設定可能とし、ドメインごとに電力制御を行う方法が知られている。   In recent years, with the expansion of the mobile device market, there has been a demand for a low power consumption processor system for mobile devices that can extend the operating time of the battery. In addition, even in high-performance servers used to provide services on the Internet, the power of the server itself and the power required for temperature management of the room where the server is installed are on the rise. It is requested. As a method for satisfying such a requirement, a method is known in which the inside of a processor system is divided into a plurality of domains, at least a part of the domains can be set to a low power consumption mode, and power control is performed for each domain.

例えば、マルチプロセッサシステムは複数のプロセッサを備え、処理を複数のプロセッサで分散して行う。このような構成において、複数のプロセッサのそれぞれにおいて、命令実行制御部によって命令実行状態を監視する。そして、命令アイドルカウンタにより一定時間の連続した停止状態が検出された場合、クロック分配制御部は、停止状態の検出されたプロセッサへのクロック供給を停止する。これにより、クロック供給の停止されたプロセッサの消費電力が低減できる。   For example, a multiprocessor system includes a plurality of processors, and processing is distributed among the plurality of processors. In such a configuration, the instruction execution state is monitored by the instruction execution control unit in each of the plurality of processors. When the instruction idle counter detects a continuous stop state for a predetermined time, the clock distribution control unit stops the clock supply to the processor in which the stop state is detected. Thereby, the power consumption of the processor whose clock supply is stopped can be reduced.

プロセッサの性能を向上する手法として、VLIW(Very Long Instruction Word set)型プロセッサが知られている。VLIW型プロセッサは、多数の命令入力端子を備え、複数の命令を同時に受け付けることが可能である。VLIW型プロセッサは、同時に受け付けた複数の命令を並列に実行する複数のスロットを備える。各スロットは、複数の演算器を備える。例えば、命令長が32ビットの命令を、8命令同時に受け付け可能なVLIW型プロセッサが実用化されている。   As a technique for improving the performance of a processor, a VLIW (Very Long Instruction Word set) type processor is known. The VLIW processor has a large number of instruction input terminals and can accept a plurality of instructions simultaneously. The VLIW processor has a plurality of slots for executing a plurality of instructions received simultaneously in parallel. Each slot includes a plurality of computing units. For example, a VLIW type processor that can accept an instruction having an instruction length of 32 bits and 8 instructions simultaneously has been put into practical use.

VLIW型プロセッサでプログラムを実行する場合、通常のプロセッサ用プログラムを並列に入力するようにしただけでは処理効率を十分に向上することは難しい。そこで、プログラムの内容に応じて各スロットで命令が効率的に実行できるように、デバッグおよび性能チューニングを行って実行形式プログラムを作成する。このデバッグおよび性能チューニングは、VLIW型プロセッサ用コンパイラを含むVLIW型プロセッサ用プログラム開発システムを使用して、プログラムソースコードおよびコンパイルオプションに基づいて行われる。   When a program is executed by a VLIW type processor, it is difficult to sufficiently improve the processing efficiency only by inputting a normal processor program in parallel. Therefore, an execution format program is created by performing debugging and performance tuning so that instructions can be efficiently executed in each slot according to the contents of the program. This debugging and performance tuning is performed based on program source code and compile options using a VLIW processor program development system including a VLIW processor compiler.

VLIW型プロセッサ用プログラム開発システムは、コンピュータにおいてソフトウエアにより実現される。図1は、広く知られているコンピュータのハードウエア構成を示す図である。図1に示すように、コンピュータは、CPU11と、メモリ12と、記憶装置13と、表示装置14と、入力装置15と、外部メモリであるディスク装置17を駆動するドライブ装置16と、バス18と、を備える。コンピュータについての説明は省略する。   The program development system for a VLIW processor is realized by software in a computer. FIG. 1 is a diagram showing a hardware configuration of a widely known computer. As shown in FIG. 1, the computer includes a CPU 11, a memory 12, a storage device 13, a display device 14, an input device 15, a drive device 16 that drives a disk device 17 that is an external memory, and a bus 18. . A description of the computer is omitted.

図2は、VLIW型プロセッサ用プログラム開発システムの構成を示すブロック図である。   FIG. 2 is a block diagram showing a configuration of a program development system for a VLIW processor.

図2に示すように、VLIW型プロセッサ用プログラム開発システム20は、VLIW型プロセッサ用コンパイラ21と、プログラムソースコード記憶部22と、通常コンパイルオプション記憶部23と、実行形式プログラム記憶部24と、を備える。実行形式プログラム記憶部24に記憶された実行形式プログラムは、実物のVLIW型プロセッサ31または命令レベルシミュレータを利用してソフトウエアで実現された仮想のVLIW型プロセッサ31で実行される。ここでは、実物または仮想のVLIW型プロセッサ31は、開発システム20に含まれるものとして説明する。   As shown in FIG. 2, the VLIW processor program development system 20 includes a VLIW processor compiler 21, a program source code storage unit 22, a normal compile option storage unit 23, and an executable program storage unit 24. Prepare. The execution format program stored in the execution format program storage unit 24 is executed by a real VLIW processor 31 or a virtual VLIW processor 31 realized by software using an instruction level simulator. Here, the real or virtual VLIW processor 31 will be described as being included in the development system 20.

VLIW型プロセッサ31は、命令をフェッチするフェッチ部32と、命令をデコードするデコード部33と、命令を実行する実行部34と、電力制御部37と、を備える。実行部34は、複数のスロットを備える。上記のように8スロットを備え、8命令を随時に受け付け可能なVLIW型プロセッサ31も実現されているが、ここでは、第1スロット35Aと第2スロット35Bの2個のスロットを備えるVLIW型プロセッサ31を例として、以下の説明を行う。第1スロット35Aは、演算器A36AAと、演算器B36ABと、演算器C36ACと、を備える。第2スロット35Bは、演算器A36BAと、演算器B36BBと、演算器C36BCと、を備える。各スロットの演算器に関する構成は、各種の変形例があり、各スロットが備える演算器の個数および種類を同一であることも、異ならせることも可能である。例えば、第1スロットが5個の演算器を備え、第2スロットが3個の演算器を備え、3個の演算器は共通にすることが可能である。また、8個のスロットを備える場合、4個のスロットを整数演算用とし、残りの4個のスロットを浮動小数点演算用とし、整数演算用の4個のスロットは同じ構成を備え、浮動小数点演算用の4個のスロットは同じ構成を備えるように構成することも可能である。ここでは、第1スロット35Aおよび第2スロット35Bの演算器に関する構成は、同一であるとして以下の説明を行う。従って、演算器A36AAおよび演算器A36BAは同一の構成を備え、演算器B36ABおよび演算器B36BBは同一の構成を備え、演算器C36ACおよび演算器C36BCは同一の構成を備える。   The VLIW processor 31 includes a fetch unit 32 that fetches an instruction, a decode unit 33 that decodes an instruction, an execution unit 34 that executes an instruction, and a power control unit 37. The execution unit 34 includes a plurality of slots. As described above, the VLIW processor 31 having 8 slots and capable of accepting 8 instructions at any time is also realized. Here, the VLIW processor having two slots of the first slot 35A and the second slot 35B is realized. The following description is given by taking 31 as an example. The first slot 35A includes a calculator A36AA, a calculator B36AB, and a calculator C36AC. The second slot 35B includes a computing unit A36BA, a computing unit B36BB, and a computing unit C36BC. The configuration related to the arithmetic unit in each slot has various modifications, and the number and type of arithmetic units included in each slot can be the same or different. For example, the first slot includes five arithmetic units, the second slot includes three arithmetic units, and the three arithmetic units can be shared. In addition, when eight slots are provided, four slots are used for integer arithmetic, the remaining four slots are used for floating point arithmetic, and the four slots for integer arithmetic have the same configuration, and floating point arithmetic is provided. The four slots may be configured to have the same configuration. Here, the following description will be given on the assumption that the configurations of the arithmetic units of the first slot 35A and the second slot 35B are the same. Accordingly, the arithmetic units A36AA and A36BA have the same configuration, the arithmetic units B36AB and B36BB have the same configuration, and the arithmetic units C36AC and C36BC have the same configuration.

図3は、VLIW型プロセッサ用プログラム開発システムにおける実行形式プログラムの作成処理を示すフローチャートである。   FIG. 3 is a flowchart showing an execution format program creation process in the VLIW processor program development system.

図3に示すように、コンパイラ21は、プログラムソースコード記憶部22に記憶されたプログラムソースコードと、通常コンパイルオプション記憶部23に記憶された通常コンパイルオプションから、実行形式プログラムを作成して実行形式プログラム記憶部24に記憶する。コンパイラ21は、通常コンパイルオプションを参照しながら、プログラムソースコードの字句解析処理41と、構文解析処理42と、意味解析処理43と、コード最適化処理44と、コード生成処理45と、を実行して実行形式プログラムを作成する。   As shown in FIG. 3, the compiler 21 creates an executable program by creating an executable program from the program source code stored in the program source code storage unit 22 and the normal compile option stored in the normal compile option storage unit 23. Store in the program storage unit 24. The compiler 21 executes a lexical analysis process 41 of a program source code, a syntax analysis process 42, a semantic analysis process 43, a code optimization process 44, and a code generation process 45 while referring to a normal compile option. To create an executable program.

図4は、VLIW型プロセッサ用プログラム開発システムにおけるプログラム開発処理を示すフローチャートである。コンパイラ21は、図4に示すように、デバッグ処理51と性能チューニング処理52を繰り返して最適な実行形式プログラムを作成する。   FIG. 4 is a flowchart showing a program development process in the VLIW processor program development system. As shown in FIG. 4, the compiler 21 repeats the debugging process 51 and the performance tuning process 52 to create an optimal executable program.

VLIW型プロセッサを使用する場合にも、ドメインごとに電力制御を行う上記の方法を適用して、一定時間の連続した停止状態が検出された演算器を低消費電力モードにすることにより、VLIW型プロセッサの消費電力を低減することが考えられる。図2のVLIW型プロセッサ31に設けられた電力制御部37は、一定時間の連続した停止状態が検出された演算器を低消費電力モードにするように制御して、消費電力を低減する。   Even when a VLIW type processor is used, the above-mentioned method of performing power control for each domain is applied, and a computing unit in which a continuous stop state for a certain time is detected is set to a low power consumption mode, whereby the VLIW type processor is used. It is conceivable to reduce the power consumption of the processor. The power control unit 37 provided in the VLIW processor 31 of FIG. 2 controls the computing unit in which a continuous stop state for a certain period of time is detected to enter the low power consumption mode to reduce power consumption.

このような電力制御を行う場合、低消費電力モードにする演算器の個数および演算器を低消費電力モードにする期間を増加させることにより、消費電力をいっそう低減可能である。   When such power control is performed, the power consumption can be further reduced by increasing the number of arithmetic units to be set in the low power consumption mode and the period in which the arithmetic units are in the low power consumption mode.

しかし、これまで使用されているVLIW型プロセッサ用コンパイラは、処理効率を向上して処理速度を増加することを主眼としており、電力制御を考慮しないで実行形式プログラムを生成していた。そのため、各スロットの演算器の未使用時間が短く、一定時間連続して停止状態になる演算器の個数が少ないため、低消費電力モードにする演算器の個数および演算器を低消費電力モードにする期間を増加できなかった。従って、VLIW型プロセッサに上記の電力制御を適用する場合でも、VLIW型プロセッサの消費電力を十分に低減することはできなかった。   However, VLIW processor compilers used so far have been aimed at improving processing efficiency and increasing processing speed, and have generated executable programs without considering power control. Therefore, the unused time of the computing units in each slot is short, and the number of computing units that are stopped for a certain period of time is small. Therefore, the number of computing units that are set to the low power consumption mode and the computing units are set to the low power consumption mode. I could not increase the period. Therefore, even when the above power control is applied to the VLIW processor, the power consumption of the VLIW processor cannot be sufficiently reduced.

また、これまで使用されているVLIW型プロセッサコンパイラは、プログラムの内容解析などについて高い処理効率を実現するための複雑な処理を行っており、ユーザがスロットの変更や演算器の変更を行えるようには作られていなかった。   In addition, the VLIW processor compilers used so far perform complex processing to achieve high processing efficiency for program content analysis, etc., so that users can change slots and calculators. Was not made.

特開2000−181881号公報JP 2000-181881 A 特開2000−112559号公報JP 2000-112559 A

http://img.jp.fujitsu.com/download/jp/jmag/vol155-6/paper04.pdfhttp://img.jp.fujitsu.com/download/jp/jmag/vol155-6/paper04.pdf

実施形態は、VLIW型プロセッサにおいて連続して使用しない演算器を低消費電力モードに設定する電力制御を効率的に行えるVLIW型プロセッサ用プログラムの開発を、容易に行えるプログラム開発システムを記載する。   The embodiment describes a program development system that can easily develop a program for a VLIW processor that can efficiently perform power control for setting a computing unit that is not continuously used in the VLIW processor to a low power consumption mode.

実施形態の第1の態様は、複数の演算器をそれぞれ有する複数のスロットを備え、複数の演算器の少なくとも一部は低消費電力モードに設定可能であるVLIW型プロセッサ用プログラムの開発システムである。このVLIW型プロセッサ用開発システムは、VLIW型プロセッサ用コンパイラと、コンパイラが出力したプログラムを実行する時に使用する演算器の使用情報を生成する演算器使用情報生成部と、使用情報に基づいて電力制御コンパイルオプション生成を支援するための演算器使用情報を出力する演算器使用情報出力部と、を備え、VLIW型プロセッサ用コンパイラは、各スロットで使用する演算器の変更を指示する電力制御コンパイルオプションが入力されるインターフェースを備える。   A first aspect of the embodiment is a VLIW processor program development system that includes a plurality of slots each having a plurality of computing units, and at least a part of the plurality of computing units can be set in a low power consumption mode. . The VLIW processor development system includes a VLIW processor compiler, a calculator usage information generator that generates calculator usage information used when executing a program output by the compiler, and power control based on the usage information. A computing unit usage information output unit that outputs computing unit usage information for supporting generation of compile options, and the VLIW processor compiler has a power control compile option that instructs a change of a computing unit used in each slot. An input interface is provided.

また、実施形態の第2の態様は、複数の演算器をそれぞれ有する複数のスロットを備え、複数の演算器の少なくとも一部は低消費電力モードに設定可能であるVLIW型プロセッサ用プログラムの開発方法である。このVLIW型プロセッサ用プログラム開発方法は、VLIW型プロセッサ用コンパイラを使用して、プログラムソースコードおよびコンパイルオプションに基づいて、デバッグおよび性能チューニングを行って電力チューニング前プログラムを作成し、電力チューニング前プログラムを実行する時に使用する演算器の使用情報を生成し、使用情報から、同一の演算器が長時間使用されないように各スロットで使用する演算器を変更する、ことを特徴とする。   A second aspect of the embodiment is a method for developing a program for a VLIW processor that includes a plurality of slots each having a plurality of computing units, and at least a part of the plurality of computing units can be set in a low power consumption mode. It is. This VLIW processor program development method uses a VLIW processor compiler to create a pre-power tuning program by performing debugging and performance tuning based on the program source code and compile options. It is characterized in that usage information of a computing unit to be used at the time of execution is generated, and the computing unit used in each slot is changed from the usage information so that the same computing unit is not used for a long time.

実施形態によれば、VLIW型プロセッサを使用してプログラムを実行する場合に、低消費電力モードに設定可能な演算器の個数および演算器を低消費電力モードにする期間を増加することができる実行形式プログラムを作成することが可能になり、VLIW型プロセッサを使用する場合の消費電力を低減できる。   According to the embodiment, when a program is executed using a VLIW processor, the number of arithmetic units that can be set in the low power consumption mode and the period during which the arithmetic unit is set in the low power consumption mode can be increased. A formal program can be created, and power consumption when a VLIW processor is used can be reduced.

また、実施形態によれば、このようなVLIW型プロセッサ用の実行形式プログラムを容易に作成できる。   Further, according to the embodiment, it is possible to easily create an execution format program for such a VLIW type processor.

図1は、VLIW型プロセッサ用プログラム開発システムがソフトウエアにより実現されるコンピュータのハードウエア構成を示す図である。FIG. 1 is a diagram showing a hardware configuration of a computer in which a program development system for a VLIW processor is realized by software. 図2は、VLIW型プロセッサ用プログラム開発システムの構成を示すブロック図である。FIG. 2 is a block diagram showing a configuration of a program development system for a VLIW processor. 図3は、VLIW型プロセッサ用プログラム開発システムにおける実行形式プログラムの作成処理を示すフローチャートである。FIG. 3 is a flowchart showing an execution format program creation process in the VLIW processor program development system. 図4は、VLIW型プロセッサ用プログラム開発システムにおけるプログラム開発処理を示すフローチャートである。FIG. 4 is a flowchart showing a program development process in the VLIW processor program development system. 図5は、第1実施形態のVLIW型プロセッサ用プログラム開発システムの構成を示すブロック図である。FIG. 5 is a block diagram showing the configuration of the VLIW processor program development system of the first embodiment. 図6は、第1実施形態におけるVLIW型プロセッサ用コンパイラの内部構成を示す図である。FIG. 6 is a diagram showing the internal configuration of the VLIW processor compiler in the first embodiment. 図7は、第1実施形態のVLIW型プロセッサ用プログラム開発システムにおけるプログラム開発処理を示すフローチャートである。FIG. 7 is a flowchart showing a program development process in the VLIW processor program development system of the first embodiment. 図8は、第1実施形態において、電力チューニング前の実行形式プログラムにおける演算器の使用例および電力チューニング後の演算器使用数が削減された実行形式プログラムにおける演算器の使用例を示す。FIG. 8 shows a usage example of an arithmetic unit in an execution format program before power tuning and a usage example of an arithmetic unit in an execution format program in which the number of arithmetic units used after power tuning is reduced in the first embodiment. 図9は、第1実施形態において、電力チューニング前の実行形式プログラムにおける演算器の別の使用例および電力チューニング後の演算器使用数が削減された実行形式プログラムにおける演算器の別の使用例を示す。FIG. 9 shows another use example of the arithmetic unit in the execution form program before power tuning and another use example of the arithmetic unit in the execution form program in which the number of use of the arithmetic unit after power tuning is reduced in the first embodiment. Show. 図10は、第2実施形態のVLIW型プロセッサ用プログラム開発システムの構成を示すブロック図である。FIG. 10 is a block diagram illustrating a configuration of a program development system for a VLIW processor according to the second embodiment. 図11は、第2実施形態におけるプロセッサの内部構成を示す図である。FIG. 11 is a diagram illustrating an internal configuration of a processor according to the second embodiment. 図12は、第2実施形態における演算器使用ログ生成器の内部構成を示す図である。FIG. 12 is a diagram illustrating an internal configuration of a calculator usage log generator according to the second embodiment. 図13は、演算器使用ログの構成例を示す図である。FIG. 13 is a diagram illustrating a configuration example of a calculator usage log. 図14は、第2実施形態において、電力制御コンパイルオプション作成支援装置が生成した電力制御向けコンパイルオプション作成支援情報の出力例を示す図である。FIG. 14 is a diagram illustrating an output example of compile option creation support information for power control generated by the power control compile option creation support device in the second embodiment.

第1実施形態のVLIW型プロセッサ用プログラム開発システムは、図1に示したようなハードウエア構成を備えるコンピュータ上でソフトウエアにより実現され、図2に示したようなVLIW型プロセッサ31の実行形式プログラムが、この開発システムを使用して作成される。   The program development system for the VLIW processor of the first embodiment is realized by software on a computer having a hardware configuration as shown in FIG. 1, and is an executable program of the VLIW processor 31 as shown in FIG. Are created using this development system.

図5は、第1実施形態のVLIW型プロセッサ用プログラム開発システムの構成を示すブロック図である。   FIG. 5 is a block diagram showing the configuration of the VLIW processor program development system of the first embodiment.

図5に示すように、第1実施形態のVLIW型プロセッサ用プログラム開発システム20は、VLIW型プロセッサ用コンパイラ21と、プログラムソースコード記憶部22と、通常コンパイルオプション記憶部23と、実行形式プログラム記憶部24と、電力制御向けコンパイルオプション記憶部25と、演算器使用数が削減された実行形式プログラム記憶部27と、演算器使用情報生成部28と、演算器使用情報出力部29と、を備える。プログラムソースコード記憶部22、通常コンパイルオプション記憶部23および実行形式プログラム記憶部24は、図2に示したものと類似の構成および機能を備える。VLIW型プロセッサ用コンパイラ21は、図2に示したものと同様に、プログラムソースコードと、通常コンパイルオプションから、実行形式プログラムを作成して実行形式プログラム記憶部24に記憶する。   As shown in FIG. 5, the VLIW processor program development system 20 of the first embodiment includes a VLIW processor compiler 21, a program source code storage unit 22, a normal compile option storage unit 23, and an executable program storage. Unit 24, a power control compile option storage unit 25, an execution format program storage unit 27 in which the number of calculators used is reduced, a calculator usage information generation unit 28, and a calculator usage information output unit 29. . The program source code storage unit 22, the normal compile option storage unit 23, and the execution format program storage unit 24 have a configuration and functions similar to those shown in FIG. The VLIW processor compiler 21 creates an executable program from the program source code and the normal compile option, and stores the executable program in the executable program storage unit 24, similar to that shown in FIG.

VLIW型プロセッサ用コンパイラ21は、電力制御向けコンパイルオプション記憶部25に記憶された電力制御向けコンパイルオプションが入力されるインターフェース26を備える。更に、VLIW型プロセッサ用コンパイラ21は、実行形式プログラム記憶部24に記憶された実行形式プログラムに対して、電力制御向けコンパイルオプションを参照して電力チューニング処理を実行する。電力チューニング処理の結果作成された演算器使用数が削減された実行形式プログラムは、演算器使用数が削減された実行形式プログラム記憶部27に記憶される。   The VLIW processor compiler 21 includes an interface 26 to which a power control compilation option stored in the power control compilation option storage unit 25 is input. Further, the VLIW processor compiler 21 performs power tuning processing on the execution format program stored in the execution format program storage unit 24 with reference to the compile option for power control. The execution format program with the reduced number of used computing units created as a result of the power tuning process is stored in the execution format program storage unit 27 with the reduced number of used computing units.

演算器使用情報生成部28は、実物または仮想のVLIW型プロセッサ31がVLIW型プロセッサ用コンパイラ21が出力したプログラムを実行する時の演算器に関する情報を受け、オペレータに提示する演算器使用情報を生成する。演算器使用情報生成部28は、ソフトウエアで実現される。演算器使用情報出力部92は、演算器使用情報生成部91の生成した使用情報に基づいて電力制御コンパイルオプション生成を支援するための演算器使用情報をオペレータに出力する部分で、表示装置14およびそのドライバプログラムなどで実現される。   The computing unit usage information generation unit 28 receives information related to the computing unit when the real or virtual VLIW processor 31 executes the program output by the VLIW processor compiler 21 and generates computing unit usage information to be presented to the operator. To do. The computing unit usage information generation unit 28 is realized by software. The computing unit usage information output unit 92 is a part that outputs computing unit usage information for supporting the generation of power control compile options based on the usage information generated by the computing unit usage information generation unit 91 to the operator. This is realized by the driver program.

図6は、第1実施形態におけるVLIW型プロセッサ用コンパイラ21の内部構成を示す図である。図3に示したのと同様に、VLIW型プロセッサ用コンパイラ21は、通常コンパイルオプションを参照しながら、プログラムソースコードの字句解析処理41と、構文解析処理42と、意味解析処理43と、コード最適化処理44と、コード生成処理45と、を実行して実行形式プログラムを作成する。   FIG. 6 is a diagram showing an internal configuration of the VLIW processor compiler 21 in the first embodiment. As shown in FIG. 3, the VLIW processor compiler 21 refers to the normal compile option while referring to the program source code lexical analysis processing 41, syntax analysis processing 42, semantic analysis processing 43, and code optimization. The execution process 44 and the code generation process 45 are executed to create an executable program.

更に、VLIW型プロセッサ用コンパイラ21は、インターフェース26を介して、電力制御向けコンパイルオプションを受け取る。電力制御向けコンパイルオプションは、プロセッサ内部の演算器の有効(使用)、無効(不使用)を示す情報であり、この情報に基づいて、VLIW型プロセッサ用コンパイラ21内部のプロセッサ演算器情報が更新(変更)される。プロセッサ演算器情報は、コンパイラにおけるコード最適化処理の入力になり、プロセッサ演算器情報により指示された有効(使用)な演算器を使用する場合に適したプログラムが作成される。   Furthermore, the VLIW processor compiler 21 receives a compile option for power control via the interface 26. The compile option for power control is information indicating whether the arithmetic unit in the processor is valid (used) or invalid (not used). Based on this information, the processor arithmetic unit information in the VLIW processor compiler 21 is updated ( Be changed. The processor arithmetic unit information becomes an input of code optimization processing in the compiler, and a program suitable for using an effective (used) arithmetic unit designated by the processor arithmetic unit information is created.

図7は、第1実施形態のVLIW型プロセッサ用プログラム開発システム20におけるプログラム開発処理を示すフローチャートである。図4で説明したように、デバッグ処理51と性能チューニング処理52を行って、実行形式プログラムが作成され、実行形式プログラム記憶部24に記憶される。第1実施形態では、実行形式プログラム記憶部24に記憶された実行形式プログラムに対して、電力制御向けコンパイルオプションを参照して電力チューニング処理53を実行する。電力チューニング処理53では、電力測定処理54と、電力制御コンパイルオプション作成処理55と、電力測定処理54および電力制御コンパイルオプション作成処理55を繰り返すかを判定する処理56と、を行う。そして、電力チューニング処理53の最後に、調査した情報の中から性能と消費電力を最適にする電力制御コンパイルオプションを選択する処理57を行う。   FIG. 7 is a flowchart showing a program development process in the VLIW processor program development system 20 of the first embodiment. As described with reference to FIG. 4, the debug process 51 and the performance tuning process 52 are performed, and an executable program is created and stored in the executable program storage unit 24. In the first embodiment, the power tuning process 53 is executed on the execution format program stored in the execution format program storage unit 24 with reference to the compile option for power control. In the power tuning process 53, a power measurement process 54, a power control compile option creation process 55, and a process 56 for determining whether to repeat the power measurement process 54 and the power control compile option creation process 55 are performed. Then, at the end of the power tuning process 53, a process 57 for selecting a power control compile option that optimizes performance and power consumption from the investigated information is performed.

図8の(A)は、性能チューニングの段階で作成され、実行形式プログラム記憶部24に記憶された電力チューニング前の実行形式プログラムにおける演算器の使用例を示す。図8の(B)は、電力チューニング前実行形式プログラムに電力チューニング処理を行って生成され、演算器使用数が削減された実行形式プログラム記憶部24に記憶された電力チューニング後の実行形式プログラムにおける演算器の使用例を示す。言い換えれば、図8の(A)は、これまでのVLIW型プロセッサ用プログラム開発システムで作成した実行形式プログラムにおける演算器の使用例を示す。図8の(B)は、第1実施形態のVLIW型プロセッサ用プログラム開発システムで作成した実行形式プログラムにおける演算器の使用例を示す。演算器使用情報生成部28は、このような演算器の使用情報に基づいて、オペレータに提示する演算器使用情報を生成する。   FIG. 8A shows an example of the use of an arithmetic unit in an execution format program before power tuning, which is created at the stage of performance tuning and stored in the execution format program storage unit 24. FIG. 8B shows an execution format program after power tuning generated by performing power tuning processing on the execution format program before power tuning and stored in the execution format program storage unit 24 in which the number of computing units used is reduced. An example of using a computing unit is shown. In other words, FIG. 8A shows an example of the use of an arithmetic unit in an execution format program created by a conventional VLIW processor program development system. FIG. 8B shows an example of the use of an arithmetic unit in an execution format program created by the VLIW processor program development system of the first embodiment. The computing unit usage information generation unit 28 generates computing unit usage information to be presented to the operator based on such usage information of the computing unit.

図8の(A)に示すように、実行ステップの順に、第1スロットでは演算器A、A、B、Cを使用する命令が実行され、第2スロットでは演算器B、C、A、Aを使用する命令が実行される。従って、第1スロットの3個の演算器A、B、Cおよび第2スロットの3個の演算器A、B、Cは、4つの実行ステップの間に、1回は使用される。   As shown in FIG. 8A, in the order of execution steps, instructions that use the arithmetic units A, A, B, and C are executed in the first slot, and arithmetic units B, C, A, and A are executed in the second slot. An instruction using is executed. Accordingly, the three arithmetic units A, B, and C in the first slot and the three arithmetic units A, B, and C in the second slot are used once during the four execution steps.

電力チューニングでは、2番目の実行ステップに着目する。2番目の実行ステップでは、演算器Aを使用する命令が第1スロットで実行され、演算器Cを使用する命令が第2スロットで実行される。ここで、図8の(B)に示すように、2番目の実行ステップで、演算器Aを使用する命令を第2スロットで実行し、演算器Cを使用する命令を第1スロットで実行するように変更する。これにより、第2スロットの演算器Cは、4つの実行ステップの間に1回も使用されない。従って、第2スロットの演算器Cは、連続して長時間使用されないので、低消費電力モードに設定されることになる。使用する演算器の変更は、オペレータが電力制御コンパイルオプションを作成し、インターフェース26を介してコンパイラ21に指示することにより行う。   In power tuning, focus on the second execution step. In the second execution step, an instruction using the arithmetic unit A is executed in the first slot, and an instruction using the arithmetic unit C is executed in the second slot. Here, as shown in FIG. 8B, in the second execution step, an instruction using the arithmetic unit A is executed in the second slot, and an instruction using the arithmetic unit C is executed in the first slot. Change as follows. Thus, the computing unit C in the second slot is not used once during the four execution steps. Therefore, the computing unit C in the second slot is not used continuously for a long time, and is therefore set in the low power consumption mode. The operator to be used is changed by the operator creating a power control compile option and instructing the compiler 21 via the interface 26.

図9の(A)は、性能チューニングの段階で作成され、実行形式プログラム記憶部24に記憶された電力チューニング前の実行形式プログラムにおける演算器の別の使用例を示す。図9の(B)は、図9の(A)の電力チューニング前実行形式プログラムに電力チューニング処理を行って生成された電力チューニング後の実行形式プログラムにおける演算器の使用例を示す。   FIG. 9A shows another usage example of the arithmetic unit in the execution format program before power tuning, which is created at the stage of performance tuning and stored in the execution format program storage unit 24. FIG. 9B shows an example of the use of an arithmetic unit in an execution format program after power tuning generated by performing power tuning processing on the execution format program before power tuning of FIG.

図9の(A)に示すように、実行ステップの順に、第1スロットでは演算器A、C、B、Cを使用する命令が実行され、第2スロットでは演算器B、C、A、Aを使用する命令が実行される。2番目の実行ステップでは、演算器Cを使用する命令が第1スロットで実行され、演算器Cを使用する命令が第2スロットで実行される。言い換えれば、第1および第2スロットの両方で、演算器Cを使用する命令が実行される。この場合も、電力チューニングでは2番目の実行ステップに着目する。図9の(B)に示すように、図9の(A)の2番目の実行ステップで実行される演算器Cを使用する2つの命令を、第1スロットのみで実行するように変更する。この変更により、図9の(A)の例に比べて、実行ステップ数は1増加するが、第2スロットの演算器Cは、5つの実行ステップの間に1回も使用されない。このように、実行ステップ数の増加(実行速度の低下)が問題にならない範囲で、消費電力の低減を優先することも可能である。言い換えれば、実行ステップ数の増加と、連続して長時間使用されない演算器の出現による消費電力の低減は、トレードオフの関係にあり、性能を考慮して適宜決定することが望ましい。   As shown in FIG. 9A, in the order of execution steps, instructions that use the arithmetic units A, C, B, and C are executed in the first slot, and the arithmetic units B, C, A, and A are executed in the second slot. An instruction using is executed. In the second execution step, an instruction using the arithmetic unit C is executed in the first slot, and an instruction using the arithmetic unit C is executed in the second slot. In other words, an instruction using the arithmetic unit C is executed in both the first and second slots. Also in this case, attention is paid to the second execution step in the power tuning. As shown in FIG. 9B, the two instructions using the arithmetic unit C executed in the second execution step of FIG. 9A are changed to be executed only in the first slot. As a result of this change, the number of execution steps is increased by 1 compared to the example of FIG. 9A, but the computing unit C in the second slot is not used once during the five execution steps. As described above, it is possible to give priority to the reduction of power consumption within the range where the increase in the number of execution steps (decrease in the execution speed) does not become a problem. In other words, an increase in the number of execution steps and a reduction in power consumption due to the appearance of arithmetic units that are not used continuously for a long time are in a trade-off relationship, and it is desirable to appropriately determine in consideration of performance.

以上説明したように、第1実施形態では、オペレータが電力制御コンパイルオプションを作成し、インターフェース26を介してコンパイラ21に指示することにより、使用する演算器の変更が可能である。これにより、連続して長時間使用されない演算器が存在するようにし、その演算器を低消費電力モードにすることにより消費電力を低減することが可能である。   As described above, in the first embodiment, the operator can change the computing unit to be used by creating a power control compilation option and instructing the compiler 21 via the interface 26. As a result, it is possible to reduce power consumption by causing a computing unit that is not used continuously for a long time and putting the computing unit in a low power consumption mode.

図10は、第2実施形態のVLIW型プロセッサ用プログラム開発システムの構成を示すブロック図である。   FIG. 10 is a block diagram illustrating a configuration of a program development system for a VLIW processor according to the second embodiment.

図10に示すように、第2実施形態のVLIW型プロセッサ用プログラム開発システム70は、VLIW型プロセッサ用コンパイラ21と、プログラムソースコード記憶部22と、通常コンパイルオプション記憶部23と、実行形式プログラム記憶部24と、電力制御向けコンパイルオプション記憶部25と、演算器使用数が削減された実行形式プログラム記憶部27と、演算器使用ログ記憶部71と、電力制御コンパイルオプション作成支援装置72と、オプション作成支援情報記憶部73と、プロセッサ31と、を備える。VLIW型プロセッサ用コンパイラ21は、電力制御向けコンパイルオプション記憶部25に記憶された電力制御向けコンパイルオプションが入力されるインターフェース26を備える。   As shown in FIG. 10, a VLIW processor program development system 70 according to the second embodiment includes a VLIW processor compiler 21, a program source code storage unit 22, a normal compile option storage unit 23, and an executable program storage. Unit 24, power control compile option storage unit 25, execution form program storage unit 27 in which the number of arithmetic units used is reduced, arithmetic unit use log storage unit 71, power control compile option creation support device 72, option A creation support information storage unit 73 and a processor 31 are provided. The VLIW processor compiler 21 includes an interface 26 to which a power control compilation option stored in the power control compilation option storage unit 25 is input.

第2実施形態のVLIW型プロセッサ用プログラム開発システム70において、VLIW型プロセッサ用コンパイラ21、プログラムソースコード記憶部22、通常コンパイルオプション記憶部23、実行形式プログラム記憶部24、電力制御向けコンパイルオプション記憶部25および演算器使用数が削減された実行形式プログラム記憶部27は、第1実施形態と同じである。言い換えれば、第2実施形態のVLIW型プロセッサ用プログラム開発システム70は、演算器使用ログ記憶部71、電力制御コンパイルオプション作成支援装置72およびオプション作成支援情報記憶部73を加えたこと、およびプロセッサ31が演算器使用ログ生成器38をさらに備えることが、第1実施形態の開発システム20と異なる。プロセッサ31は、実物のハードウエアであっても、命令レベルシミュレータを利用してソフトウエアで実現された仮想のVLIW型プロセッサであってもよい。   In the VLIW processor program development system 70 of the second embodiment, a VLIW processor compiler 21, a program source code storage unit 22, a normal compile option storage unit 23, an execution format program storage unit 24, and a compile option storage unit for power control 25 and the execution format program storage unit 27 in which the number of calculators used is reduced are the same as those in the first embodiment. In other words, the VLIW processor program development system 70 according to the second embodiment includes an arithmetic unit use log storage unit 71, a power control compile option creation support device 72, and an option creation support information storage unit 73, and the processor 31. Is different from the development system 20 of the first embodiment in that it further includes a calculator usage log generator 38. The processor 31 may be real hardware or a virtual VLIW processor realized by software using an instruction level simulator.

プロセッサ31は、実行形式プログラム記憶部24に記憶された実行形式プログラムを実行し、演算器使用ログ生成器38が、そのプログラムによる演算器の使用状況と命令アドレスをプロセッササイクルごとに出力する。ここで、演算器の使用状況と命令アドレスを演算器使用ログと称する。プロセッサ31から出力された演算器使用ログは、演算器使用ログ記憶部71に記憶される。   The processor 31 executes the execution format program stored in the execution format program storage unit 24, and the calculator usage log generator 38 outputs the usage status and instruction address of the calculator according to the program for each processor cycle. Here, the usage status and instruction address of the computing unit are referred to as a computing unit usage log. The computing unit usage log output from the processor 31 is stored in the computing unit usage log storage unit 71.

電力制御コンパイルオプション作成支援装置72は、演算器使用ログ記憶部71に記憶された演算器使用ログを入力として、演算器の使用状況を示す電力制御向けコンパイルオプション作成支援情報を生成する。したがって、第2実施形態では、電力制御コンパイルオプション作成支援装置72が、演算器使用情報生成部28に対応する。電力制御向けコンパイルオプション作成支援情報は、オプション作成支援情報記憶部73に記憶されると共に、オペレータに提示される。オペレータは、電力制御向けコンパイルオプション作成支援情報を参照しながら、電力制御向けコンパイルオプションを作成する。   The power control compile option creation support device 72 receives the calculator usage log stored in the calculator usage log storage unit 71 and generates compile option creation support information for power control indicating the usage status of the calculator. Therefore, in the second embodiment, the power control compile option creation support device 72 corresponds to the computing unit usage information generation unit 28. Compile option creation support information for power control is stored in the option creation support information storage unit 73 and presented to the operator. The operator creates a power control compilation option while referring to power control compilation option creation support information.

図11は、第2実施形態におけるプロセッサ31の内部構成を示す図である。第2実施形態におけるプロセッサ31は、命令をフェッチするフェッチ部32と、命令をデコードするデコード部33と、命令を実行する実行部34と、電力制御部37と、演算器使用ログ生成器38と、を備える。図11に示す例でも、実行部34は、第1スロット35Aと第2スロット35Bの2個のスロットを備える。第1スロット35Aは、演算器A36AAと、演算器B36ABと、演算器C36ACと、を備える。第2スロット35Aは、演算器A36BAと、演算器B36BBと、演算器C36BCと、を備える。第1スロット35Aおよび第2スロット35Bの演算器に関する構成は、同一である。言い換えれば、第2実施形態におけるプロセッサ31は、演算器使用ログ生成器38を備えることが第1実施形態と異なる。演算器使用ログ生成器38は、VLIW型プロセッサ31の演算パイプラインの各部に接続されている。   FIG. 11 is a diagram illustrating an internal configuration of the processor 31 according to the second embodiment. The processor 31 in the second embodiment includes a fetch unit 32 that fetches an instruction, a decode unit 33 that decodes an instruction, an execution unit 34 that executes an instruction, a power control unit 37, and an arithmetic unit use log generator 38. . Also in the example illustrated in FIG. 11, the execution unit 34 includes two slots, a first slot 35A and a second slot 35B. The first slot 35A includes a calculator A36AA, a calculator B36AB, and a calculator C36AC. The second slot 35A includes a calculator A36BA, a calculator B36BB, and a calculator C36BC. The configurations related to the computing units of the first slot 35A and the second slot 35B are the same. In other words, the processor 31 according to the second embodiment is different from the first embodiment in that the processor 31 includes a calculator usage log generator 38. The calculator usage log generator 38 is connected to each part of the calculation pipeline of the VLIW processor 31.

図12は、第2実施形態における演算器使用ログ生成器38の内部構成を示す図である。プロセッサ31は、演算パイプライン80を備える。演算パイプライン80は、前述のフェッチ部32、デコード部33および実行部34に加えて、メモリアクセス部80およびレジスタアクセス部82を備える。演算器使用ログ生成器38は、フェッチ部32から命令アドレスを受け取り、そのアドレス値を演算パイプライン80での実行フェーズまで保持するために、デコード部PC(プログラムカウンタ)87および実行部PC(プログラムカウンタ)88を備え、さらに制御部86を備える。演算器使用ログ生成器38は、演算パイプライン80からパイプラインの動作に関する情報を受け取り、実行部で実際に実行された命令のPCを出力することが可能である。   FIG. 12 is a diagram showing an internal configuration of the arithmetic unit use log generator 38 in the second embodiment. The processor 31 includes an arithmetic pipeline 80. The arithmetic pipeline 80 includes a memory access unit 80 and a register access unit 82 in addition to the fetch unit 32, the decode unit 33, and the execution unit 34 described above. The arithmetic unit use log generator 38 receives an instruction address from the fetch unit 32 and holds the address value until an execution phase in the arithmetic pipeline 80, and a decoding unit PC (program counter) 87 and an execution unit PC (program Counter) 88 and a control unit 86. The computing unit usage log generator 38 can receive information related to pipeline operations from the computing pipeline 80 and can output a PC of instructions actually executed by the execution unit.

演算器使用ログ生成器38は、このような構成を備えるので、分岐予測機構などにより投機的にプロセッサ31のパイプライン80に入力された命令、すなわち実行することが確定していない命令のうち、実行部34の演算器で実行されなかった命令はログ出力の対象外にすることが可能となり、実行部34の演算器で実行した命令のみをログ出力することができる。   Since the arithmetic unit use log generator 38 has such a configuration, among the instructions speculatively input to the pipeline 80 of the processor 31 by the branch prediction mechanism or the like, that is, among the instructions that are not determined to be executed, Instructions that have not been executed by the calculator of the execution unit 34 can be excluded from the log output target, and only the instructions executed by the calculator of the execution unit 34 can be output in a log.

演算器使用ログ生成器38が出力可能な情報は様々であるが、第2実施形態では、図13に示すような演算器使用ログを生成して、演算器使用ログ記憶部71に記憶する。図13に示すように、演算器使用ログは、実行ステップの順番に対応して記憶した、各スロットで使用した演算器およびその命令アドレスを含む。図13において、スロットのA、B、Cは、各スロットで使用する演算器を示し、「0」は演算器を使用しないことを示す。例えば、実行ステップ1では、第1スロットで演算器Bが使用され、第2スロットは演算器を使用せず、この時の命令アドレスは0である。実行ステップ2では、第1スロットで演算器Aが使用され、第2スロットで演算器Bが使用され、この時の命令アドレスは4である。従って、実行ステップ1から2で、命令アドレスは4進む。実行ステップ3では、第1スロットで演算器Aが使用され、第2スロットでも演算器Aが使用され、この時の命令アドレスは12である。従って、実行ステップ2から3で、命令アドレスは8進む。   There are various types of information that can be output by the calculator usage log generator 38. In the second embodiment, a calculator usage log as shown in FIG. 13 is generated and stored in the calculator usage log storage unit 71. As shown in FIG. 13, the calculator usage log includes the calculator used in each slot and its instruction address stored in correspondence with the order of execution steps. In FIG. 13, slots A, B, and C indicate computing units used in each slot, and “0” indicates that no computing unit is used. For example, in the execution step 1, the arithmetic unit B is used in the first slot, the arithmetic unit is not used in the second slot, and the instruction address at this time is 0. In execution step 2, the arithmetic unit A is used in the first slot, and the arithmetic unit B is used in the second slot. The instruction address at this time is 4. Therefore, in execution steps 1 and 2, the instruction address advances by 4. In execution step 3, the arithmetic unit A is used in the first slot, and the arithmetic unit A is also used in the second slot. The instruction address at this time is 12. Accordingly, in execution steps 2 to 3, the instruction address advances by 8.

図14は、第2実施形態において、電力制御コンパイルオプション作成支援装置72が生成した電力制御向けコンパイルオプション作成支援情報の出力例を示す図である。図14に示した例では、縦軸にスロットと演算器の種別を表示し、演算器ごとに演算器使用回数を表示している。演算器使用回数を表示することにより、使用頻度の低い演算器をオペレータに通知することが可能になる。演算器使用回数は、オペレータが電力制御コンパイルオプションを作成する上で、有益な情報になる。横軸は、実行ステップ数で、それぞれの演算器が使用されたステップ数を横棒グラフで表示している。いずれかの横棒グラフを選択すると、そのアドレス(例えば100番地)が表示される。これにより、オペレータは、横棒グラフが離散的に表示されている部分のアドレスを知ることが可能になり、演算器の使用頻度が低い箇所をプログラム中から特定することが可能になる。   FIG. 14 is a diagram illustrating an output example of compile option creation support information for power control generated by the power control compile option creation support device 72 in the second embodiment. In the example shown in FIG. 14, the vertical axis indicates the type of slot and calculator, and the calculator usage count is displayed for each calculator. By displaying the number of times the computing unit is used, it is possible to notify the operator of the computing unit that is used less frequently. The number of times the arithmetic unit is used is useful information for the operator to create the power control compile option. The horizontal axis is the number of execution steps, and the number of steps used by each computing unit is displayed as a horizontal bar graph. If any horizontal bar graph is selected, its address (for example, 100 addresses) is displayed. As a result, the operator can know the address of the portion where the horizontal bar graph is discretely displayed, and can identify the location where the use frequency of the arithmetic unit is low from the program.

第2実施形態における演算器使用数が削減された実行形式プログラムの作成処理は、図7に示した第1実施形態と同じフローで行われる。しかし、オペレータは電力制御コンパイルオプション作成支援装置72が生成した電力制御向けコンパイルオプション作成支援情報を利用できるので、電力測定と電力制御コンパイルオプション作成の繰り返し回数を、第1実施形態より低減することが可能になる。   The execution format program creation process in which the number of computing units used in the second embodiment is reduced is performed in the same flow as in the first embodiment shown in FIG. However, since the operator can use the compile option creation support information for power control generated by the power control compile option creation support device 72, the number of repetitions of power measurement and power control compile option creation can be reduced as compared with the first embodiment. It becomes possible.

以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。   Although the embodiment has been described above, all examples and conditions described herein are described for the purpose of helping understanding of the concept of the invention applied to the invention and the technology. It is not intended to limit the scope of the invention, and the construction of such examples in the specification does not indicate the advantages and disadvantages of the invention. Although embodiments of the invention have been described in detail, it should be understood that various changes, substitutions and modifications can be made without departing from the spirit and scope of the invention.

以下、実施形態に関し、更に以下の付記を開示する。
(付記1)
複数の演算器をそれぞれ有する複数のスロットを備え、前記複数の演算器の少なくとも一部は低消費電力モードに設定可能であるVLIW型プロセッサ用コンパイラであって、
各スロットで使用する演算器の変更を指示する電力制御コンパイルオプションが入力されるインターフェースを備え、
指示された演算器の使用変更に応じた最適化を行うことを特徴とするVLIW型プロセッサ用コンパイラ。
(付記2)
複数の演算器をそれぞれ有する複数のスロットを備え、前記複数の演算器の少なくとも一部は低消費電力モードに設定可能であるVLIW型プロセッサ用プログラムの開発システムであって、
VLIW型プロセッサ用コンパイラと、
前記コンパイラが出力したプログラムを実行する時に使用する演算器の使用情報を生成する演算器使用情報生成部と、
前記使用情報に基づいて電力制御コンパイルオプション生成を支援するための演算器使用情報を出力する演算器使用情報出力部と、を備え、
前記VLIW型プロセッサ用コンパイラは、各スロットで使用する演算器の変更を指示する電力制御コンパイルオプションが入力されるインターフェースを備えるVLIW型プロセッサ用プログラム開発システム。
(付記3)
前記演算器使用情報生成部は、前記VLIW型プロセッサである付記2に記載のVLIW型プロセッサ用プログラム開発システム。
(付記4)
前記演算器使用情報生成部は、前記VLIW型プロセッサでのプログラムの実行をシミュレートする命令レベルシミュレータである付記2に記載のVLIW型プロセッサ用プログラム開発システム。
(付記5)
前記演算器使用情報生成部は、実行ステップ数と、各スロットで使用される演算器と、命令アドレスと、を備える前記演算器の使用情報を生成する付記2から4のいずれかに記載のVLIW型プロセッサ用プログラム開発システム。
(付記6)
前記演算器使用情報出力部は、前記複数のスロットの前記複数の演算器の使用回数を表示する付記2から5のいずれかに記載のVLIW型プロセッサ用プログラム開発システム。
(付記7)
前記演算器使用情報出力部は、前記複数のスロットの前記複数の演算器の使用状況を、実行ステップごとに表示する付記2から6のいずれかに記載のVLIW型プロセッサ用プログラム開発システム。
(付記8)
前記演算器使用情報出力部は、実行ステップごとに表示した使用状態の演算器を指示すると、命令アドレスを表示する付記7に記載のVLIW型プロセッサ用プログラム開発システム。
(付記9)
前記演算器使用情報生成部は、前記VLIW型プロセッサに投機的に入力されたが実行されなかった命令を識別し、
前記演算器使用情報出力部は、前記投機的に入力されたが実行されなかった命令を、前記演算器使用情報として出力しない付記2から8のいずれかに記載のVLIW型プロセッサ用プログラム開発システム。
(付記10)
複数の演算器をそれぞれ有する複数のスロットを備え、前記複数の演算器の少なくとも一部は低消費電力モードに設定可能であるVLIW型プロセッサ用プログラムの開発方法であって、
VLIW型プロセッサ用コンパイラを使用して、プログラムソースコードおよびコンパイルオプションに基づいて、デバッグおよび性能チューニングを行って電力チューニング前プログラムを作成し、
前記電力チューニング前プログラムを実行する時に使用する演算器の使用情報を生成し、
前記使用情報から、同一の演算器が長時間使用されないように各スロットで使用する演算器を変更する、ことを特徴とするVLIW型プロセッサ用プログラム開発方法。
Hereinafter, the following additional notes will be disclosed with respect to the embodiment.
(Appendix 1)
A compiler for a VLIW processor having a plurality of slots each having a plurality of computing units, wherein at least a part of the plurality of computing units can be set in a low power consumption mode;
It has an interface for inputting power control compile options to instruct the change of the arithmetic unit used in each slot,
A compiler for a VLIW processor, which performs optimization according to a change in use of a specified arithmetic unit.
(Appendix 2)
A system for developing a program for a VLIW processor, comprising a plurality of slots each having a plurality of computing units, wherein at least a part of the plurality of computing units can be set in a low power consumption mode;
A compiler for a VLIW processor;
A computing unit usage information generating unit that generates usage information of a computing unit to be used when executing the program output by the compiler;
A computing unit usage information output unit that outputs computing unit usage information for supporting power control compilation option generation based on the usage information;
The VLIW processor compiler is a VLIW processor program development system including an interface to which a power control compile option for instructing a change of an arithmetic unit used in each slot is input.
(Appendix 3)
The VLIW processor program development system according to appendix 2, wherein the computing unit usage information generation unit is the VLIW processor.
(Appendix 4)
The VLIW processor program development system according to appendix 2, wherein the arithmetic unit usage information generation unit is an instruction level simulator that simulates execution of a program in the VLIW processor.
(Appendix 5)
The VLIW according to any one of appendices 2 to 4, wherein the arithmetic unit usage information generation unit generates usage information of the arithmetic unit including an execution step number, an arithmetic unit used in each slot, and an instruction address. Development system for type processor.
(Appendix 6)
The VLIW processor program development system according to any one of appendices 2 to 5, wherein the computing unit usage information output unit displays the number of times the plurality of computing units are used in the plurality of slots.
(Appendix 7)
The VLIW processor program development system according to any one of appendices 2 to 6, wherein the computing unit usage information output unit displays a usage status of the plurality of computing units in the plurality of slots for each execution step.
(Appendix 8)
The VLIW processor program development system according to appendix 7, wherein the arithmetic unit usage information output unit displays an instruction address when an arithmetic unit in use is displayed for each execution step.
(Appendix 9)
The computing unit usage information generation unit identifies an instruction that has been speculatively input to the VLIW type processor but has not been executed,
The VLIW processor program development system according to any one of appendices 2 to 8, wherein the computing unit usage information output unit does not output the instruction that is speculatively input but not executed as the computing unit usage information.
(Appendix 10)
A VLIW processor program development method comprising a plurality of slots each having a plurality of computing units, wherein at least a part of the plurality of computing units can be set in a low power consumption mode,
Using a VLIW processor compiler, create a pre-power tuning program by debugging and performance tuning based on the program source code and compile options,
Generate usage information of an arithmetic unit used when executing the program before power tuning,
A method for developing a program for a VLIW processor, characterized in that, based on the usage information, a computing unit used in each slot is changed so that the same computing unit is not used for a long time.

20 VLIW型プロセッサ用プログラム開発システム
21 VLIW型プロセッサ用コンパイラ
22 プログラムソースコード記憶部
23 通常コンパイルオプション記憶部
24 実行形式プログラム記憶部
25 電力制御向けコンパイルオプション記憶部
26 インターフェース
27 演算器使用数が削減された実行形式プログラム記憶部
28 演算器使用情報生成部
29 演算器使用情報出力部
20 Program Development System for VLIW Processor 21 Compiler for VLIW Processor 22 Program Source Code Storage Unit 23 Normal Compile Option Storage Unit 24 Execution Format Program Storage Unit 25 Compile Option Storage Unit for Power Control 26 Interface 27 Number of Units Used is Reduced Execution format program storage unit 28 Calculator usage information generator 29 Calculator usage information output unit

Claims (6)

複数の演算器をそれぞれ有する複数のスロットを備え、前記複数の演算器の少なくとも一部は低消費電力モードに設定可能であるVLIW型プロセッサ用コンパイラであって、
各スロットで使用する演算器の変更を指示する電力制御コンパイルオプションが入力されるインターフェースを備え、
指示された演算器の使用変更に応じた最適化を行うことを特徴とするVLIW型プロセッサ用コンパイラ。
A compiler for a VLIW processor having a plurality of slots each having a plurality of computing units, wherein at least a part of the plurality of computing units can be set in a low power consumption mode;
It has an interface for inputting power control compile options to instruct the change of the arithmetic unit used in each slot,
A compiler for a VLIW processor, which performs optimization according to a change in use of a specified arithmetic unit.
複数の演算器をそれぞれ有する複数のスロットを備え、前記複数の演算器の少なくとも一部は低消費電力モードに設定可能であるVLIW型プロセッサ用プログラムの開発システムであって、
VLIW型プロセッサ用コンパイラと、
前記コンパイラが出力したプログラムを実行する時に使用する演算器の使用情報を生成する演算器使用情報生成部と、
前記使用情報に基づいて電力制御コンパイルオプション生成を支援するための演算器使用情報を出力する演算器使用情報出力部と、を備え、
前記VLIW型プロセッサ用コンパイラは、各スロットで使用する演算器の変更を指示する電力制御コンパイルオプションが入力されるインターフェースを備えるVLIW型プロセッサ用プログラム開発システム。
A system for developing a program for a VLIW processor, comprising a plurality of slots each having a plurality of computing units, wherein at least a part of the plurality of computing units can be set in a low power consumption mode;
A compiler for a VLIW processor;
A computing unit usage information generating unit that generates usage information of a computing unit to be used when executing the program output by the compiler;
A computing unit usage information output unit that outputs computing unit usage information for supporting power control compilation option generation based on the usage information;
The VLIW processor compiler is a VLIW processor program development system including an interface to which a power control compile option for instructing a change of an arithmetic unit used in each slot is input.
前記演算器使用情報生成部は、実行ステップ数と、各スロットで使用される演算器と、命令アドレスと、を備える前記演算器の使用情報を生成する請求項2に記載のVLIW型プロセッサ用プログラム開発システム。   3. The VLIW processor program according to claim 2, wherein the computing unit usage information generating unit generates usage information of the computing unit including an execution step number, a computing unit used in each slot, and an instruction address. Development system. 前記演算器使用情報出力部は、前記複数のスロットの前記複数の演算器の使用回数を表示する請求項2または3に記載のVLIW型プロセッサ用プログラム開発システム。   4. The VLIW processor program development system according to claim 2, wherein the computing unit usage information output unit displays the number of times the computing units are used in the plurality of slots. 5. 前記演算器使用情報出力部は、前記複数のスロットの前記複数の演算器の使用状況を、実行ステップごとに表示する請求項2から4のいずれか1項に記載のVLIW型プロセッサ用プログラム開発システム。   5. The VLIW processor program development system according to claim 2, wherein the computing unit usage information output unit displays a usage status of the plurality of computing units in the plurality of slots for each execution step. 6. . 複数の演算器をそれぞれ有する複数のスロットを備え、前記複数の演算器の少なくとも一部は低消費電力モードに設定可能であるVLIW型プロセッサ用プログラムの開発方法であって、
VLIW型プロセッサ用コンパイラを使用して、プログラムソースコードおよびコンパイルオプションに基づいて、デバッグおよび性能チューニングを行って電力チューニング前プログラムを作成し、
前記電力チューニング前プログラムを実行する時に使用する演算器の使用情報を生成し、
前記使用情報から、同一の演算器が長時間使用されないように各スロットで使用する演算器を変更する、ことを特徴とするVLIW型プロセッサ用プログラム開発方法。
A VLIW processor program development method comprising a plurality of slots each having a plurality of computing units, wherein at least a part of the plurality of computing units can be set in a low power consumption mode,
Using a VLIW processor compiler, create a pre-power tuning program by debugging and performance tuning based on the program source code and compile options,
Generate usage information of an arithmetic unit used when executing the program before power tuning,
A method for developing a program for a VLIW processor, characterized in that, based on the usage information, a computing unit used in each slot is changed so that the same computing unit is not used for a long time.
JP2010024266A 2010-02-05 2010-02-05 Compiler for vliw type processor, and system and method for developing program for vliw type processor Pending JP2011164758A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010024266A JP2011164758A (en) 2010-02-05 2010-02-05 Compiler for vliw type processor, and system and method for developing program for vliw type processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010024266A JP2011164758A (en) 2010-02-05 2010-02-05 Compiler for vliw type processor, and system and method for developing program for vliw type processor

Publications (1)

Publication Number Publication Date
JP2011164758A true JP2011164758A (en) 2011-08-25

Family

ID=44595397

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010024266A Pending JP2011164758A (en) 2010-02-05 2010-02-05 Compiler for vliw type processor, and system and method for developing program for vliw type processor

Country Status (1)

Country Link
JP (1) JP2011164758A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10042645B2 (en) 2015-05-12 2018-08-07 Fujitsu Limited Method and apparatus for compiling a program for execution by a plurality of processing units

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0922318A (en) * 1995-07-06 1997-01-21 Hitachi Ltd Processor and control method therefor
JPH11316690A (en) * 1997-12-23 1999-11-16 Texas Instr Inc <Ti> Data processor and computer program optimizing method
JP2003296123A (en) * 2002-01-30 2003-10-17 Matsushita Electric Ind Co Ltd Device and method for changing instruction to give power control information, program and circuit for changing instruction, and microprocessor to execute changed instruction
JP2004234126A (en) * 2003-01-28 2004-08-19 Matsushita Electric Ind Co Ltd Compiler and compiling method
JP2008269529A (en) * 2007-04-25 2008-11-06 Toshiba Corp Debug support device
WO2008152790A1 (en) * 2007-06-12 2008-12-18 Panasonic Corporation Multiprocessor control device, multiprocessor control method, and multiprocessor control circuit

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0922318A (en) * 1995-07-06 1997-01-21 Hitachi Ltd Processor and control method therefor
JPH11316690A (en) * 1997-12-23 1999-11-16 Texas Instr Inc <Ti> Data processor and computer program optimizing method
JP2003296123A (en) * 2002-01-30 2003-10-17 Matsushita Electric Ind Co Ltd Device and method for changing instruction to give power control information, program and circuit for changing instruction, and microprocessor to execute changed instruction
JP2004234126A (en) * 2003-01-28 2004-08-19 Matsushita Electric Ind Co Ltd Compiler and compiling method
JP2008269529A (en) * 2007-04-25 2008-11-06 Toshiba Corp Debug support device
WO2008152790A1 (en) * 2007-06-12 2008-12-18 Panasonic Corporation Multiprocessor control device, multiprocessor control method, and multiprocessor control circuit

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200300030010; 大槻典正、武内良典、今井正治、浜口清治、柏原敏伸、引地信之: 'VLIWプロセッサにおける演算命令発行スロット数の最適化' 電子情報通信学会技術研究報告 Vol.97,No.445, 19971212, pp.89〜90, 社団法人電子情報通信学会 *
JPN6013042750; 大槻典正、武内良典、今井正治、浜口清治、柏原敏伸、引地信之: 'VLIWプロセッサにおける演算命令発行スロット数の最適化' 電子情報通信学会技術研究報告 Vol.97,No.445, 19971212, pp.89〜90, 社団法人電子情報通信学会 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10042645B2 (en) 2015-05-12 2018-08-07 Fujitsu Limited Method and apparatus for compiling a program for execution by a plurality of processing units

Similar Documents

Publication Publication Date Title
Böhm et al. Cycle-accurate performance modelling in an ultra-fast just-in-time dynamic binary translation instruction set simulator
JP6373425B2 (en) Instruction to shift multiple bits to the left and pull multiple 1s into multiple lower bits
KR20160007514A (en) Processor that performs approximate computing instructions
JP2016207232A (en) Processor, method, system, and program to relax synchronization of access to shared memory
US20140189288A1 (en) Instruction to reduce elements in a vector register with strided access pattern
Ottoni et al. Harmonia: a transparent, efficient, and harmonious dynamic binary translator targeting the Intel® architecture
WO2013147879A1 (en) Dynamic branch hints using branches-to-nowhere conditional branch
Bhagyanath et al. Exploring the potential of instruction-level parallelism of exposed datapath architectures with buffered processing units
Marena RISC-V: high performance embedded SweRV™ core microarchitecture, performance and CHIPS Alliance
US8949777B2 (en) Methods and systems for mapping a function pointer to the device code
US9684541B2 (en) Method and apparatus for determining thread execution parallelism
US10877765B2 (en) Apparatuses and methods to assign a logical thread to a physical thread
JP2011164758A (en) Compiler for vliw type processor, and system and method for developing program for vliw type processor
Wong et al. The Delft reconfigurable VLIW processor
JP2009075965A (en) Software development method and software development device
Koranne Practical Computing on the Cell Broadband Engine
Mishra et al. Architecture description language driven design space exploration in the presence of coprocessors
US20230315453A1 (en) Forward conditional branch event for profile-guided-optimization (pgo)
US11176278B2 (en) Efficient rotate adder for implementing cryptographic basic operations
JP2011081623A (en) Simulation device, method, and program
Harmsen Specifying the WaveCore in CλaSH
Denisenko OpenCL compiler tools for fpgas
Lin et al. The Design and Experiments of A SID-Based Power-Aware Simulator for Embedded Multicore Systems
JP6245820B2 (en) Reconfigurable processor verification support apparatus and method, and reconfigurable processor
Bell Jr et al. Basic block simulation granularity, basic block maps, and benchmark synthesis using statistical simulation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121005

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130903

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140107