(57)【要約】【課題】連続して使用しない演算器を低消費電力モードに設定する電力制御を効率的に行えるＶＬＩＷ型プロセッサ用プログラムを容易に開発できる開発システムの実現。【解決手段】複数の演算器36AA,36AB,36AC,36BA,36BB,36BCをそれぞれ有する複数のスロット35A,35Bを備え、演算器の少なくとも一部は低消費電力モードに設定可能であるＶＬＩＷ型プロセッサ用プログラムの開発システムであって、ＶＬＩＷ型プロセッサ用コンパイラ21と、コンパイラが出力したプログラムを実行する時に使用する演算器の使用情報を生成する演算器使用情報生成部38と、使用情報に基づいて電力制御コンパイルオプションを生成して出力する演算器使用情報出力部72と、を備え、コンパイラ21は、各スロットで使用する演算器の変更を指示する電力制御コンパイルオプションが入力されるインターフェースを備える。【選択図】図１０
2011164758.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算器をそれぞれ有する複数のスロットを備え、前記複数の演算器の少なくとも一部は低消費電力モードに設定可能であるＶＬＩＷ型プロセッサ用コンパイラであって、
各スロットで使用する演算器の変更を指示する電力制御コンパイルオプションが入力されるインターフェースを備え、
指示された演算器の使用変更に応じた最適化を行うことを特徴とするＶＬＩＷ型プロセッサ用コンパイラ。
【請求項２】
複数の演算器をそれぞれ有する複数のスロットを備え、前記複数の演算器の少なくとも一部は低消費電力モードに設定可能であるＶＬＩＷ型プロセッサ用プログラムの開発システムであって、
ＶＬＩＷ型プロセッサ用コンパイラと、
前記コンパイラが出力したプログラムを実行する時に使用する演算器の使用情報を生成する演算器使用情報生成部と、
前記使用情報に基づいて電力制御コンパイルオプション生成を支援するための演算器使用情報を出力する演算器使用情報出力部と、を備え、
前記ＶＬＩＷ型プロセッサ用コンパイラは、各スロットで使用する演算器の変更を指示する電力制御コンパイルオプションが入力されるインターフェースを備えるＶＬＩＷ型プロセッサ用プログラム開発システム。
【請求項３】
前記演算器使用情報生成部は、実行ステップ数と、各スロットで使用される演算器と、命令アドレスと、を備える前記演算器の使用情報を生成する請求項２に記載のＶＬＩＷ型プロセッサ用プログラム開発システム。
【請求項４】
前記演算器使用情報出力部は、前記複数のスロットの前記複数の演算器の使用回数を表示する請求項２または３に記載のＶＬＩＷ型プロセッサ用プログラム開発システム。
【請求項５】
前記演算器使用情報出力部は、前記複数のスロットの前記複数の演算器の使用状況を、実行ステップごとに表示する請求項２から４のいずれか１項に記載のＶＬＩＷ型プロセッサ用プログラム開発システム。
【請求項６】
複数の演算器をそれぞれ有する複数のスロットを備え、前記複数の演算器の少なくとも一部は低消費電力モードに設定可能であるＶＬＩＷ型プロセッサ用プログラムの開発方法であって、
ＶＬＩＷ型プロセッサ用コンパイラを使用して、プログラムソースコードおよびコンパイルオプションに基づいて、デバッグおよび性能チューニングを行って電力チューニング前プログラムを作成し、
前記電力チューニング前プログラムを実行する時に使用する演算器の使用情報を生成し、
前記使用情報から、同一の演算器が長時間使用されないように各スロットで使用する演算器を変更する、ことを特徴とするＶＬＩＷ型プロセッサ用プログラム開発方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＶＬＩＷ型プロセッサ用コンパイラ、ＶＬＩＷ型プロセッサ用プログラム開発システムおよびＶＬＩＷ型プロセッサ用プログラム開発方法に関する。
【背景技術】
【０００２】
近年、携帯機器市場の拡大により、電池での動作時間を長くできる携帯機器用の低消費電力プロセッサシステムが要求されている。また、インターネットにおいてサービスを提供するために使用される高性能サーバにおいても、サーバ自体の電力やサーバを設置する部屋の温度管理に必要な電力が増加傾向にあり、サーバ用低消費電力プロセッサシステムが要求されている。このような要求を満たすための方法として、プロセッサシステム内部を複数のドメインに分け、少なくとも一部のドメインは低消費電力モードに設定可能とし、ドメインごとに電力制御を行う方法が知られている。
【０００３】
例えば、マルチプロセッサシステムは複数のプロセッサを備え、処理を複数のプロセッサで分散して行う。このような構成において、複数のプロセッサのそれぞれにおいて、命令実行制御部によって命令実行状態を監視する。そして、命令アイドルカウンタにより一定時間の連続した停止状態が検出された場合、クロック分配制御部は、停止状態の検出されたプロセッサへのクロック供給を停止する。これにより、クロック供給の停止されたプロセッサの消費電力が低減できる。
【０００４】
プロセッサの性能を向上する手法として、ＶＬＩＷ(Very Long Instruction Word set)型プロセッサが知られている。ＶＬＩＷ型プロセッサは、多数の命令入力端子を備え、複数の命令を同時に受け付けることが可能である。ＶＬＩＷ型プロセッサは、同時に受け付けた複数の命令を並列に実行する複数のスロットを備える。各スロットは、複数の演算器を備える。例えば、命令長が３２ビットの命令を、８命令同時に受け付け可能なＶＬＩＷ型プロセッサが実用化されている。
【０００５】
ＶＬＩＷ型プロセッサでプログラムを実行する場合、通常のプロセッサ用プログラムを並列に入力するようにしただけでは処理効率を十分に向上することは難しい。そこで、プログラムの内容に応じて各スロットで命令が効率的に実行できるように、デバッグおよび性能チューニングを行って実行形式プログラムを作成する。このデバッグおよび性能チューニングは、ＶＬＩＷ型プロセッサ用コンパイラを含むＶＬＩＷ型プロセッサ用プログラム開発システムを使用して、プログラムソースコードおよびコンパイルオプションに基づいて行われる。
【０００６】
ＶＬＩＷ型プロセッサ用プログラム開発システムは、コンピュータにおいてソフトウエアにより実現される。図１は、広く知られているコンピュータのハードウエア構成を示す図である。図１に示すように、コンピュータは、ＣＰＵ１１と、メモリ１２と、記憶装置１３と、表示装置１４と、入力装置１５と、外部メモリであるディスク装置１７を駆動するドライブ装置１６と、バス１８と、を備える。コンピュータについての説明は省略する。
【０００７】
図２は、ＶＬＩＷ型プロセッサ用プログラム開発システムの構成を示すブロック図である。
【０００８】
図２に示すように、ＶＬＩＷ型プロセッサ用プログラム開発システム２０は、ＶＬＩＷ型プロセッサ用コンパイラ２１と、プログラムソースコード記憶部２２と、通常コンパイルオプション記憶部２３と、実行形式プログラム記憶部２４と、を備える。実行形式プログラム記憶部２４に記憶された実行形式プログラムは、実物のＶＬＩＷ型プロセッサ３１または命令レベルシミュレータを利用してソフトウエアで実現された仮想のＶＬＩＷ型プロセッサ３１で実行される。ここでは、実物または仮想のＶＬＩＷ型プロセッサ３１は、開発システム２０に含まれるものとして説明する。
【０００９】
ＶＬＩＷ型プロセッサ３１は、命令をフェッチするフェッチ部３２と、命令をデコードするデコード部３３と、命令を実行する実行部３４と、電力制御部３７と、を備える。実行部３４は、複数のスロットを備える。上記のように８スロットを備え、８命令を随時に受け付け可能なＶＬＩＷ型プロセッサ３１も実現されているが、ここでは、第１スロット３５Ａと第２スロット３５Ｂの２個のスロットを備えるＶＬＩＷ型プロセッサ３１を例として、以下の説明を行う。第１スロット３５Ａは、演算器Ａ３６ＡＡと、演算器Ｂ３６ＡＢと、演算器Ｃ３６ＡＣと、を備える。第２スロット３５Ｂは、演算器Ａ３６ＢＡと、演算器Ｂ３６ＢＢと、演算器Ｃ３６ＢＣと、を備える。各スロットの演算器に関する構成は、各種の変形例があり、各スロットが備える演算器の個数および種類を同一であることも、異ならせることも可能である。例えば、第１スロットが５個の演算器を備え、第２スロットが３個の演算器を備え、３個の演算器は共通にすることが可能である。また、８個のスロットを備える場合、４個のスロットを整数演算用とし、残りの４個のスロットを浮動小数点演算用とし、整数演算用の４個のスロットは同じ構成を備え、浮動小数点演算用の４個のスロットは同じ構成を備えるように構成することも可能である。ここでは、第１スロット３５Ａおよび第２スロット３５Ｂの演算器に関する構成は、同一であるとして以下の説明を行う。従って、演算器Ａ３６ＡＡおよび演算器Ａ３６ＢＡは同一の構成を備え、演算器Ｂ３６ＡＢおよび演算器Ｂ３６ＢＢは同一の構成を備え、演算器Ｃ３６ＡＣおよび演算器Ｃ３６ＢＣは同一の構成を備える。
【００１０】
図３は、ＶＬＩＷ型プロセッサ用プログラム開発システムにおける実行形式プログラムの作成処理を示すフローチャートである。
【００１１】
図３に示すように、コンパイラ２１は、プログラムソースコード記憶部２２に記憶されたプログラムソースコードと、通常コンパイルオプション記憶部２３に記憶された通常コンパイルオプションから、実行形式プログラムを作成して実行形式プログラム記憶部２４に記憶する。コンパイラ２１は、通常コンパイルオプションを参照しながら、プログラムソースコードの字句解析処理４１と、構文解析処理４２と、意味解析処理４３と、コード最適化処理４４と、コード生成処理４５と、を実行して実行形式プログラムを作成する。
【００１２】
図４は、ＶＬＩＷ型プロセッサ用プログラム開発システムにおけるプログラム開発処理を示すフローチャートである。コンパイラ２１は、図４に示すように、デバッグ処理５１と性能チューニング処理５２を繰り返して最適な実行形式プログラムを作成する。
【００１３】
ＶＬＩＷ型プロセッサを使用する場合にも、ドメインごとに電力制御を行う上記の方法を適用して、一定時間の連続した停止状態が検出された演算器を低消費電力モードにすることにより、ＶＬＩＷ型プロセッサの消費電力を低減することが考えられる。図２のＶＬＩＷ型プロセッサ３１に設けられた電力制御部３７は、一定時間の連続した停止状態が検出された演算器を低消費電力モードにするように制御して、消費電力を低減する。
【００１４】
このような電力制御を行う場合、低消費電力モードにする演算器の個数および演算器を低消費電力モードにする期間を増加させることにより、消費電力をいっそう低減可能である。
【００１５】
しかし、これまで使用されているＶＬＩＷ型プロセッサ用コンパイラは、処理効率を向上して処理速度を増加することを主眼としており、電力制御を考慮しないで実行形式プログラムを生成していた。そのため、各スロットの演算器の未使用時間が短く、一定時間連続して停止状態になる演算器の個数が少ないため、低消費電力モードにする演算器の個数および演算器を低消費電力モードにする期間を増加できなかった。従って、ＶＬＩＷ型プロセッサに上記の電力制御を適用する場合でも、ＶＬＩＷ型プロセッサの消費電力を十分に低減することはできなかった。
【００１６】
また、これまで使用されているＶＬＩＷ型プロセッサコンパイラは、プログラムの内容解析などについて高い処理効率を実現するための複雑な処理を行っており、ユーザがスロットの変更や演算器の変更を行えるようには作られていなかった。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２０００−１８１８８１号公報
【特許文献２】特開２０００−１１２５５９号公報
【非特許文献】
【００１８】
【非特許文献１】http://img.jp.fujitsu.com/download/jp/jmag/vol155-6/paper04.pdf
【発明の概要】
【発明が解決しようとする課題】
【００１９】
実施形態は、ＶＬＩＷ型プロセッサにおいて連続して使用しない演算器を低消費電力モードに設定する電力制御を効率的に行えるＶＬＩＷ型プロセッサ用プログラムの開発を、容易に行えるプログラム開発システムを記載する。
【課題を解決するための手段】
【００２０】
実施形態の第１の態様は、複数の演算器をそれぞれ有する複数のスロットを備え、複数の演算器の少なくとも一部は低消費電力モードに設定可能であるＶＬＩＷ型プロセッサ用プログラムの開発システムである。このＶＬＩＷ型プロセッサ用開発システムは、ＶＬＩＷ型プロセッサ用コンパイラと、コンパイラが出力したプログラムを実行する時に使用する演算器の使用情報を生成する演算器使用情報生成部と、使用情報に基づいて電力制御コンパイルオプション生成を支援するための演算器使用情報を出力する演算器使用情報出力部と、を備え、ＶＬＩＷ型プロセッサ用コンパイラは、各スロットで使用する演算器の変更を指示する電力制御コンパイルオプションが入力されるインターフェースを備える。
【００２１】
また、実施形態の第２の態様は、複数の演算器をそれぞれ有する複数のスロットを備え、複数の演算器の少なくとも一部は低消費電力モードに設定可能であるＶＬＩＷ型プロセッサ用プログラムの開発方法である。このＶＬＩＷ型プロセッサ用プログラム開発方法は、ＶＬＩＷ型プロセッサ用コンパイラを使用して、プログラムソースコードおよびコンパイルオプションに基づいて、デバッグおよび性能チューニングを行って電力チューニング前プログラムを作成し、電力チューニング前プログラムを実行する時に使用する演算器の使用情報を生成し、使用情報から、同一の演算器が長時間使用されないように各スロットで使用する演算器を変更する、ことを特徴とする。
【発明の効果】
【００２２】
実施形態によれば、ＶＬＩＷ型プロセッサを使用してプログラムを実行する場合に、低消費電力モードに設定可能な演算器の個数および演算器を低消費電力モードにする期間を増加することができる実行形式プログラムを作成することが可能になり、ＶＬＩＷ型プロセッサを使用する場合の消費電力を低減できる。
【００２３】
また、実施形態によれば、このようなＶＬＩＷ型プロセッサ用の実行形式プログラムを容易に作成できる。
【図面の簡単な説明】
【００２４】
【図１】図１は、ＶＬＩＷ型プロセッサ用プログラム開発システムがソフトウエアにより実現されるコンピュータのハードウエア構成を示す図である。
【図２】図２は、ＶＬＩＷ型プロセッサ用プログラム開発システムの構成を示すブロック図である。
【図３】図３は、ＶＬＩＷ型プロセッサ用プログラム開発システムにおける実行形式プログラムの作成処理を示すフローチャートである。
【図４】図４は、ＶＬＩＷ型プロセッサ用プログラム開発システムにおけるプログラム開発処理を示すフローチャートである。
【図５】図５は、第１実施形態のＶＬＩＷ型プロセッサ用プログラム開発システムの構成を示すブロック図である。
【図６】図６は、第１実施形態におけるＶＬＩＷ型プロセッサ用コンパイラの内部構成を示す図である。
【図７】図７は、第１実施形態のＶＬＩＷ型プロセッサ用プログラム開発システムにおけるプログラム開発処理を示すフローチャートである。
【図８】図８は、第１実施形態において、電力チューニング前の実行形式プログラムにおける演算器の使用例および電力チューニング後の演算器使用数が削減された実行形式プログラムにおける演算器の使用例を示す。
【図９】図９は、第１実施形態において、電力チューニング前の実行形式プログラムにおける演算器の別の使用例および電力チューニング後の演算器使用数が削減された実行形式プログラムにおける演算器の別の使用例を示す。
【図１０】図１０は、第２実施形態のＶＬＩＷ型プロセッサ用プログラム開発システムの構成を示すブロック図である。
【図１１】図１１は、第２実施形態におけるプロセッサの内部構成を示す図である。
【図１２】図１２は、第２実施形態における演算器使用ログ生成器の内部構成を示す図である。
【図１３】図１３は、演算器使用ログの構成例を示す図である。
【図１４】図１４は、第２実施形態において、電力制御コンパイルオプション作成支援装置が生成した電力制御向けコンパイルオプション作成支援情報の出力例を示す図である。
【発明を実施するための形態】
【００２５】
第１実施形態のＶＬＩＷ型プロセッサ用プログラム開発システムは、図１に示したようなハードウエア構成を備えるコンピュータ上でソフトウエアにより実現され、図２に示したようなＶＬＩＷ型プロセッサ３１の実行形式プログラムが、この開発システムを使用して作成される。
【００２６】
図５は、第１実施形態のＶＬＩＷ型プロセッサ用プログラム開発システムの構成を示すブロック図である。
【００２７】
図５に示すように、第１実施形態のＶＬＩＷ型プロセッサ用プログラム開発システム２０は、ＶＬＩＷ型プロセッサ用コンパイラ２１と、プログラムソースコード記憶部２２と、通常コンパイルオプション記憶部２３と、実行形式プログラム記憶部２４と、電力制御向けコンパイルオプション記憶部２５と、演算器使用数が削減された実行形式プログラム記憶部２７と、演算器使用情報生成部２８と、演算器使用情報出力部２９と、を備える。プログラムソースコード記憶部２２、通常コンパイルオプション記憶部２３および実行形式プログラム記憶部２４は、図２に示したものと類似の構成および機能を備える。ＶＬＩＷ型プロセッサ用コンパイラ２１は、図２に示したものと同様に、プログラムソースコードと、通常コンパイルオプションから、実行形式プログラムを作成して実行形式プログラム記憶部２４に記憶する。
【００２８】
ＶＬＩＷ型プロセッサ用コンパイラ２１は、電力制御向けコンパイルオプション記憶部２５に記憶された電力制御向けコンパイルオプションが入力されるインターフェース２６を備える。更に、ＶＬＩＷ型プロセッサ用コンパイラ２１は、実行形式プログラム記憶部２４に記憶された実行形式プログラムに対して、電力制御向けコンパイルオプションを参照して電力チューニング処理を実行する。電力チューニング処理の結果作成された演算器使用数が削減された実行形式プログラムは、演算器使用数が削減された実行形式プログラム記憶部２７に記憶される。
【００２９】
演算器使用情報生成部２８は、実物または仮想のＶＬＩＷ型プロセッサ３１がＶＬＩＷ型プロセッサ用コンパイラ２１が出力したプログラムを実行する時の演算器に関する情報を受け、オペレータに提示する演算器使用情報を生成する。演算器使用情報生成部２８は、ソフトウエアで実現される。演算器使用情報出力部９２は、演算器使用情報生成部９１の生成した使用情報に基づいて電力制御コンパイルオプション生成を支援するための演算器使用情報をオペレータに出力する部分で、表示装置１４およびそのドライバプログラムなどで実現される。
【００３０】
図６は、第１実施形態におけるＶＬＩＷ型プロセッサ用コンパイラ２１の内部構成を示す図である。図３に示したのと同様に、ＶＬＩＷ型プロセッサ用コンパイラ２１は、通常コンパイルオプションを参照しながら、プログラムソースコードの字句解析処理４１と、構文解析処理４２と、意味解析処理４３と、コード最適化処理４４と、コード生成処理４５と、を実行して実行形式プログラムを作成する。
【００３１】
更に、ＶＬＩＷ型プロセッサ用コンパイラ２１は、インターフェース２６を介して、電力制御向けコンパイルオプションを受け取る。電力制御向けコンパイルオプションは、プロセッサ内部の演算器の有効（使用）、無効（不使用）を示す情報であり、この情報に基づいて、ＶＬＩＷ型プロセッサ用コンパイラ２１内部のプロセッサ演算器情報が更新（変更）される。プロセッサ演算器情報は、コンパイラにおけるコード最適化処理の入力になり、プロセッサ演算器情報により指示された有効（使用）な演算器を使用する場合に適したプログラムが作成される。
【００３２】
図７は、第１実施形態のＶＬＩＷ型プロセッサ用プログラム開発システム２０におけるプログラム開発処理を示すフローチャートである。図４で説明したように、デバッグ処理５１と性能チューニング処理５２を行って、実行形式プログラムが作成され、実行形式プログラム記憶部２４に記憶される。第１実施形態では、実行形式プログラム記憶部２４に記憶された実行形式プログラムに対して、電力制御向けコンパイルオプションを参照して電力チューニング処理５３を実行する。電力チューニング処理５３では、電力測定処理５４と、電力制御コンパイルオプション作成処理５５と、電力測定処理５４および電力制御コンパイルオプション作成処理５５を繰り返すかを判定する処理５６と、を行う。そして、電力チューニング処理５３の最後に、調査した情報の中から性能と消費電力を最適にする電力制御コンパイルオプションを選択する処理５７を行う。
【００３３】
図８の（Ａ）は、性能チューニングの段階で作成され、実行形式プログラム記憶部２４に記憶された電力チューニング前の実行形式プログラムにおける演算器の使用例を示す。図８の（Ｂ）は、電力チューニング前実行形式プログラムに電力チューニング処理を行って生成され、演算器使用数が削減された実行形式プログラム記憶部２４に記憶された電力チューニング後の実行形式プログラムにおける演算器の使用例を示す。言い換えれば、図８の（Ａ）は、これまでのＶＬＩＷ型プロセッサ用プログラム開発システムで作成した実行形式プログラムにおける演算器の使用例を示す。図８の（Ｂ）は、第１実施形態のＶＬＩＷ型プロセッサ用プログラム開発システムで作成した実行形式プログラムにおける演算器の使用例を示す。演算器使用情報生成部２８は、このような演算器の使用情報に基づいて、オペレータに提示する演算器使用情報を生成する。
【００３４】
図８の（Ａ）に示すように、実行ステップの順に、第１スロットでは演算器Ａ、Ａ、Ｂ、Ｃを使用する命令が実行され、第２スロットでは演算器Ｂ、Ｃ、Ａ、Ａを使用する命令が実行される。従って、第１スロットの３個の演算器Ａ、Ｂ、Ｃおよび第２スロットの３個の演算器Ａ、Ｂ、Ｃは、４つの実行ステップの間に、１回は使用される。
【００３５】
電力チューニングでは、２番目の実行ステップに着目する。２番目の実行ステップでは、演算器Ａを使用する命令が第１スロットで実行され、演算器Ｃを使用する命令が第２スロットで実行される。ここで、図８の（Ｂ）に示すように、２番目の実行ステップで、演算器Ａを使用する命令を第２スロットで実行し、演算器Ｃを使用する命令を第１スロットで実行するように変更する。これにより、第２スロットの演算器Ｃは、４つの実行ステップの間に１回も使用されない。従って、第２スロットの演算器Ｃは、連続して長時間使用されないので、低消費電力モードに設定されることになる。使用する演算器の変更は、オペレータが電力制御コンパイルオプションを作成し、インターフェース２６を介してコンパイラ２１に指示することにより行う。
【００３６】
図９の（Ａ）は、性能チューニングの段階で作成され、実行形式プログラム記憶部２４に記憶された電力チューニング前の実行形式プログラムにおける演算器の別の使用例を示す。図９の（Ｂ）は、図９の（Ａ）の電力チューニング前実行形式プログラムに電力チューニング処理を行って生成された電力チューニング後の実行形式プログラムにおける演算器の使用例を示す。
【００３７】
図９の（Ａ）に示すように、実行ステップの順に、第１スロットでは演算器Ａ、Ｃ、Ｂ、Ｃを使用する命令が実行され、第２スロットでは演算器Ｂ、Ｃ、Ａ、Ａを使用する命令が実行される。２番目の実行ステップでは、演算器Ｃを使用する命令が第１スロットで実行され、演算器Ｃを使用する命令が第２スロットで実行される。言い換えれば、第１および第２スロットの両方で、演算器Ｃを使用する命令が実行される。この場合も、電力チューニングでは２番目の実行ステップに着目する。図９の（Ｂ）に示すように、図９の（Ａ）の２番目の実行ステップで実行される演算器Ｃを使用する２つの命令を、第１スロットのみで実行するように変更する。この変更により、図９の（Ａ）の例に比べて、実行ステップ数は１増加するが、第２スロットの演算器Ｃは、５つの実行ステップの間に１回も使用されない。このように、実行ステップ数の増加（実行速度の低下）が問題にならない範囲で、消費電力の低減を優先することも可能である。言い換えれば、実行ステップ数の増加と、連続して長時間使用されない演算器の出現による消費電力の低減は、トレードオフの関係にあり、性能を考慮して適宜決定することが望ましい。
【００３８】
以上説明したように、第１実施形態では、オペレータが電力制御コンパイルオプションを作成し、インターフェース２６を介してコンパイラ２１に指示することにより、使用する演算器の変更が可能である。これにより、連続して長時間使用されない演算器が存在するようにし、その演算器を低消費電力モードにすることにより消費電力を低減することが可能である。
【００３９】
図１０は、第２実施形態のＶＬＩＷ型プロセッサ用プログラム開発システムの構成を示すブロック図である。
【００４０】
図１０に示すように、第２実施形態のＶＬＩＷ型プロセッサ用プログラム開発システム７０は、ＶＬＩＷ型プロセッサ用コンパイラ２１と、プログラムソースコード記憶部２２と、通常コンパイルオプション記憶部２３と、実行形式プログラム記憶部２４と、電力制御向けコンパイルオプション記憶部２５と、演算器使用数が削減された実行形式プログラム記憶部２７と、演算器使用ログ記憶部７１と、電力制御コンパイルオプション作成支援装置７２と、オプション作成支援情報記憶部７３と、プロセッサ３１と、を備える。ＶＬＩＷ型プロセッサ用コンパイラ２１は、電力制御向けコンパイルオプション記憶部２５に記憶された電力制御向けコンパイルオプションが入力されるインターフェース２６を備える。
【００４１】
第２実施形態のＶＬＩＷ型プロセッサ用プログラム開発システム７０において、ＶＬＩＷ型プロセッサ用コンパイラ２１、プログラムソースコード記憶部２２、通常コンパイルオプション記憶部２３、実行形式プログラム記憶部２４、電力制御向けコンパイルオプション記憶部２５および演算器使用数が削減された実行形式プログラム記憶部２７は、第１実施形態と同じである。言い換えれば、第２実施形態のＶＬＩＷ型プロセッサ用プログラム開発システム７０は、演算器使用ログ記憶部７１、電力制御コンパイルオプション作成支援装置７２およびオプション作成支援情報記憶部７３を加えたこと、およびプロセッサ３１が演算器使用ログ生成器３８をさらに備えることが、第１実施形態の開発システム２０と異なる。プロセッサ３１は、実物のハードウエアであっても、命令レベルシミュレータを利用してソフトウエアで実現された仮想のＶＬＩＷ型プロセッサであってもよい。
【００４２】
プロセッサ３１は、実行形式プログラム記憶部２４に記憶された実行形式プログラムを実行し、演算器使用ログ生成器３８が、そのプログラムによる演算器の使用状況と命令アドレスをプロセッササイクルごとに出力する。ここで、演算器の使用状況と命令アドレスを演算器使用ログと称する。プロセッサ３１から出力された演算器使用ログは、演算器使用ログ記憶部７１に記憶される。
【００４３】
電力制御コンパイルオプション作成支援装置７２は、演算器使用ログ記憶部７１に記憶された演算器使用ログを入力として、演算器の使用状況を示す電力制御向けコンパイルオプション作成支援情報を生成する。したがって、第２実施形態では、電力制御コンパイルオプション作成支援装置７２が、演算器使用情報生成部２８に対応する。電力制御向けコンパイルオプション作成支援情報は、オプション作成支援情報記憶部７３に記憶されると共に、オペレータに提示される。オペレータは、電力制御向けコンパイルオプション作成支援情報を参照しながら、電力制御向けコンパイルオプションを作成する。
【００４４】
図１１は、第２実施形態におけるプロセッサ３１の内部構成を示す図である。第２実施形態におけるプロセッサ３１は、命令をフェッチするフェッチ部３２と、命令をデコードするデコード部３３と、命令を実行する実行部３４と、電力制御部３７と、演算器使用ログ生成器３８と、を備える。図１１に示す例でも、実行部３４は、第１スロット３５Ａと第２スロット３５Ｂの２個のスロットを備える。第１スロット３５Ａは、演算器Ａ３６ＡＡと、演算器Ｂ３６ＡＢと、演算器Ｃ３６ＡＣと、を備える。第２スロット３５Ａは、演算器Ａ３６ＢＡと、演算器Ｂ３６ＢＢと、演算器Ｃ３６ＢＣと、を備える。第１スロット３５Ａおよび第２スロット３５Ｂの演算器に関する構成は、同一である。言い換えれば、第２実施形態におけるプロセッサ３１は、演算器使用ログ生成器３８を備えることが第１実施形態と異なる。演算器使用ログ生成器３８は、ＶＬＩＷ型プロセッサ３１の演算パイプラインの各部に接続されている。
【００４５】
図１２は、第２実施形態における演算器使用ログ生成器３８の内部構成を示す図である。プロセッサ３１は、演算パイプライン８０を備える。演算パイプライン８０は、前述のフェッチ部３２、デコード部３３および実行部３４に加えて、メモリアクセス部８０およびレジスタアクセス部８２を備える。演算器使用ログ生成器３８は、フェッチ部３２から命令アドレスを受け取り、そのアドレス値を演算パイプライン８０での実行フェーズまで保持するために、デコード部ＰＣ（プログラムカウンタ）８７および実行部ＰＣ（プログラムカウンタ）８８を備え、さらに制御部８６を備える。演算器使用ログ生成器３８は、演算パイプライン８０からパイプラインの動作に関する情報を受け取り、実行部で実際に実行された命令のＰＣを出力することが可能である。
【００４６】
演算器使用ログ生成器３８は、このような構成を備えるので、分岐予測機構などにより投機的にプロセッサ３１のパイプライン８０に入力された命令、すなわち実行することが確定していない命令のうち、実行部３４の演算器で実行されなかった命令はログ出力の対象外にすることが可能となり、実行部３４の演算器で実行した命令のみをログ出力することができる。
【００４７】
演算器使用ログ生成器３８が出力可能な情報は様々であるが、第２実施形態では、図１３に示すような演算器使用ログを生成して、演算器使用ログ記憶部７１に記憶する。図１３に示すように、演算器使用ログは、実行ステップの順番に対応して記憶した、各スロットで使用した演算器およびその命令アドレスを含む。図１３において、スロットのＡ、Ｂ、Ｃは、各スロットで使用する演算器を示し、「０」は演算器を使用しないことを示す。例えば、実行ステップ１では、第１スロットで演算器Ｂが使用され、第２スロットは演算器を使用せず、この時の命令アドレスは０である。実行ステップ２では、第１スロットで演算器Ａが使用され、第２スロットで演算器Ｂが使用され、この時の命令アドレスは４である。従って、実行ステップ１から２で、命令アドレスは４進む。実行ステップ３では、第１スロットで演算器Ａが使用され、第２スロットでも演算器Ａが使用され、この時の命令アドレスは１２である。従って、実行ステップ２から３で、命令アドレスは８進む。
【００４８】
図１４は、第２実施形態において、電力制御コンパイルオプション作成支援装置７２が生成した電力制御向けコンパイルオプション作成支援情報の出力例を示す図である。図１４に示した例では、縦軸にスロットと演算器の種別を表示し、演算器ごとに演算器使用回数を表示している。演算器使用回数を表示することにより、使用頻度の低い演算器をオペレータに通知することが可能になる。演算器使用回数は、オペレータが電力制御コンパイルオプションを作成する上で、有益な情報になる。横軸は、実行ステップ数で、それぞれの演算器が使用されたステップ数を横棒グラフで表示している。いずれかの横棒グラフを選択すると、そのアドレス（例えば１００番地）が表示される。これにより、オペレータは、横棒グラフが離散的に表示されている部分のアドレスを知ることが可能になり、演算器の使用頻度が低い箇所をプログラム中から特定することが可能になる。
【００４９】
第２実施形態における演算器使用数が削減された実行形式プログラムの作成処理は、図７に示した第１実施形態と同じフローで行われる。しかし、オペレータは電力制御コンパイルオプション作成支援装置７２が生成した電力制御向けコンパイルオプション作成支援情報を利用できるので、電力測定と電力制御コンパイルオプション作成の繰り返し回数を、第１実施形態より低減することが可能になる。
【００５０】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【００５１】
以下、実施形態に関し、更に以下の付記を開示する。
（付記１）
複数の演算器をそれぞれ有する複数のスロットを備え、前記複数の演算器の少なくとも一部は低消費電力モードに設定可能であるＶＬＩＷ型プロセッサ用コンパイラであって、
各スロットで使用する演算器の変更を指示する電力制御コンパイルオプションが入力されるインターフェースを備え、
指示された演算器の使用変更に応じた最適化を行うことを特徴とするＶＬＩＷ型プロセッサ用コンパイラ。
（付記２）
複数の演算器をそれぞれ有する複数のスロットを備え、前記複数の演算器の少なくとも一部は低消費電力モードに設定可能であるＶＬＩＷ型プロセッサ用プログラムの開発システムであって、
ＶＬＩＷ型プロセッサ用コンパイラと、
前記コンパイラが出力したプログラムを実行する時に使用する演算器の使用情報を生成する演算器使用情報生成部と、
前記使用情報に基づいて電力制御コンパイルオプション生成を支援するための演算器使用情報を出力する演算器使用情報出力部と、を備え、
前記ＶＬＩＷ型プロセッサ用コンパイラは、各スロットで使用する演算器の変更を指示する電力制御コンパイルオプションが入力されるインターフェースを備えるＶＬＩＷ型プロセッサ用プログラム開発システム。
（付記３）
前記演算器使用情報生成部は、前記ＶＬＩＷ型プロセッサである付記２に記載のＶＬＩＷ型プロセッサ用プログラム開発システム。
（付記４）
前記演算器使用情報生成部は、前記ＶＬＩＷ型プロセッサでのプログラムの実行をシミュレートする命令レベルシミュレータである付記２に記載のＶＬＩＷ型プロセッサ用プログラム開発システム。
（付記５）
前記演算器使用情報生成部は、実行ステップ数と、各スロットで使用される演算器と、命令アドレスと、を備える前記演算器の使用情報を生成する付記２から４のいずれかに記載のＶＬＩＷ型プロセッサ用プログラム開発システム。
（付記６）
前記演算器使用情報出力部は、前記複数のスロットの前記複数の演算器の使用回数を表示する付記２から５のいずれかに記載のＶＬＩＷ型プロセッサ用プログラム開発システム。
（付記７）
前記演算器使用情報出力部は、前記複数のスロットの前記複数の演算器の使用状況を、実行ステップごとに表示する付記２から６のいずれかに記載のＶＬＩＷ型プロセッサ用プログラム開発システム。
（付記８）
前記演算器使用情報出力部は、実行ステップごとに表示した使用状態の演算器を指示すると、命令アドレスを表示する付記７に記載のＶＬＩＷ型プロセッサ用プログラム開発システム。
（付記９）
前記演算器使用情報生成部は、前記ＶＬＩＷ型プロセッサに投機的に入力されたが実行されなかった命令を識別し、
前記演算器使用情報出力部は、前記投機的に入力されたが実行されなかった命令を、前記演算器使用情報として出力しない付記２から８のいずれかに記載のＶＬＩＷ型プロセッサ用プログラム開発システム。
（付記１０）
複数の演算器をそれぞれ有する複数のスロットを備え、前記複数の演算器の少なくとも一部は低消費電力モードに設定可能であるＶＬＩＷ型プロセッサ用プログラムの開発方法であって、
ＶＬＩＷ型プロセッサ用コンパイラを使用して、プログラムソースコードおよびコンパイルオプションに基づいて、デバッグおよび性能チューニングを行って電力チューニング前プログラムを作成し、
前記電力チューニング前プログラムを実行する時に使用する演算器の使用情報を生成し、
前記使用情報から、同一の演算器が長時間使用されないように各スロットで使用する演算器を変更する、ことを特徴とするＶＬＩＷ型プロセッサ用プログラム開発方法。
【符号の説明】
【００５２】
２０    ＶＬＩＷ型プロセッサ用プログラム開発システム
２１    ＶＬＩＷ型プロセッサ用コンパイラ
２２    プログラムソースコード記憶部
２３    通常コンパイルオプション記憶部
２４    実行形式プログラム記憶部
２５    電力制御向けコンパイルオプション記憶部
２６    インターフェース
２７    演算器使用数が削減された実行形式プログラム記憶部
２８    演算器使用情報生成部
２９    演算器使用情報出力部
【図１】
2011164758.tif 000003
【図２】
2011164758.tif 000004
【図３】
2011164758.tif 000005
【図４】
2011164758.tif 000006
【図５】
2011164758.tif 000007
【図６】
2011164758.tif 000008
【図７】
2011164758.tif 000009
【図８】
2011164758.tif 000010
【図９】
2011164758.tif 000011
【図１０】
2011164758.tif 000012
【図１１】
2011164758.tif 000013
【図１２】
2011164758.tif 000014
【図１３】
2011164758.tif 000015
【図１４】
2011164758.tif 000016