(57)【要約】【課題】プロセッサに特殊技術を組み込んだり、ユーザの手間を要することなく消費電力量の削減を可能とするコンパイラ装置、及びコンパイル方法を提案する。【解決手段】コンパイラ装置は、コンパイラに入力されたソースプログラムの構文を解析する解析部と、解析後のプログラム内に含まれる演算子のうち、プロセッサにおける消費電力の高い演算子を消費電力の低い演算子に変換する消費電力低減部と、変換後のプログラムに基づいてオブジェクトプログラムを生成する生成部と、を有する。【選択図】図１
2011186512.tif 000002
【特許請求の範囲】
【請求項１】
コンパイラに入力されたソースプログラムの構文を解析する解析部と、
前記解析後のプログラム内に含まれる演算子のうち、プロセッサにおける消費電力の高い演算子を消費電力の低い演算子に変換する消費電力低減部と、
前記変換後のプログラムに基づいてオブジェクトプログラムを生成する生成部と、
を有するコンパイラ装置。
【請求項２】
コンパイラを提供するコンパイラ装置のコンパイル方法であって、
前記コンパイラ装置は、
前記コンパイラに入力されたソースプログラムの構文を解析するステップと、
前記解析後のプログラム内に含まれる演算子のうち、プロセッサにおける消費電力の高い演算子を消費電力の低い演算子に変換するステップと、
前記変換後のプログラムに基づいてオブジェクトプログラムを生成するステップと、
を実行するコンパイル方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンパイラ装置、及びコンパイル方法に関する。
【背景技術】
【０００２】
近年、マイクロプロセッサ（以下、プロセッサという。）は、処理性能の向上に比例して消費電力量や発熱量が増加する傾向にあり、その低減が要求されている。
【０００３】
例えば、特許文献１には、発熱量の低減要求に応える方法として、プロセッサの発熱量を規定値以下に制御するコンパイル方法が開示されている。
【０００４】
一方、消費電力量を削減する要求に応える方法として、回路設計の段階において、該設計者がプロセッサに、例えば基板バイアス制御技術（Dynamic voltage frequency scaling，DVFS）等の特殊な技術を組み込む方法がある。
【０００５】
また、その他の方法としては、消費電力に影響を与える動作条件の情報（以下、電力プロファイル情報という。）の結果に基づいて消費電力量の制御を行う方法がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４１３１９０９号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特殊な技術を組み込む方法では、回路設計が複雑になり、プロセッサを作成するコストがかかってしまう。
【０００８】
また、電力プロファイル情報の結果に基づいて消費電力量の制御を行う方法では、事前に電力プロファイル情報を取得しなければならず、該装置を操作するユーザの手間を要しなければならない。
【０００９】
そこで、本発明は、プロセッサに特殊技術を組み込んだり、ユーザの手間を要することなく消費電力量の削減を可能とするコンパイラ装置、及びコンパイル方法を提案する。
【課題を解決するための手段】
【００１０】
かかる課題を解決するため、本発明のコンパイラ装置は、コンパイラに入力されたソースプログラムの構文を解析する解析部と、解析後のプログラム内に含まれる演算子のうち、プロセッサにおける消費電力の高い演算子を消費電力の低い演算子に変換する消費電力低減部と、変換後のプログラムに基づいてオブジェクトプログラムを生成する生成部と、を有する。
【００１１】
また、本発明のコンパイラ装置におけるコンパイル方法であって、コンパイラ装置は、コンパイラに入力されたソースプログラムの構文を解析するステップと、解析後のプログラム内に含まれる演算子のうち、プロセッサにおける消費電力の高い演算子を消費電力の低い演算子に変換するステップと、変換後のプログラムに基づいてオブジェクトプログラムを生成するステップと、を実行する。
【発明の効果】
【００１２】
本発明のコンパイラをコンパイラ装置が実行することにより、プロセッサの消費電力量を削減することができる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態におけるコンパイラ１０１の各機能を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について、図面を参照して説明する。なお、図面中、同一の要素には同一の符号を付し、重複する説明を省略する。また、以下の実施の形態は、本発明を説明するための例示であり、本発明をその実施の形態のみに限定する趣旨ではない。さらに、本発明は、その要旨を逸脱しない限り、さまざまな変形が可能である。
【００１５】
図１は、本実施形態におけるコンパイラ１０１の各機能を示すブロック図である。コンパイラ１０１は、コンパイラ装置（図示せず）により実行されるソフトウェアである。
【００１６】
コンパイラ装置は、プロセッサ（図示せず）、バスに接続されたメモリ（図示せず）、入力部（図示せず）、出力部（図示せず）及び入出力インタフェース（図示せず）など、通常のコンピュータ装置と同様のハードウェアを備えている。コンパイラ装置は、物理的には、専用化したシステム、あるいは汎用の情報処理装置のいずれであってもよい。
【００１７】
メモリには、コンパイル前のソースプログラム（ソースコード）１００、該ソースプログラム１００をオブジェクトプログラム（オブジェクトコード）１０６に変換するコンパイラ、１０１及びコンパイル後のオブジェクトプログラム１０６、が保存されている。
【００１８】
コンパイラ１０１は、入力されたソースプログラム１００の構文解析を行う構文解析部１０２、高速化やメモリ量削減のために構文解析後のプログラムに対して最適化を行う最適化部１０３、オブジェクトプログラム１０６を生成するコード生成部１０５の各機能から構成されている。
【００１９】
最適化部１０３は、消費電力低減部１０４を有する。
【００２０】
消費電力低減部１０４では、最適化後のプログラムに含まれる、消費電力の低減が可能な演算子を検出し、演算子強度低減処理を実行する。具体的には、消費電力低減部１０４では、あらかじめ消費電力の高い演算子（又は演算式）と該演算子（又は演算式）に対応する消費電力の低い演算子（又は演算式）との組み合わせを保持している。消費電力低減部１０４が消費電力の高い演算子を検出した場合、これを消費電力の低い演算子に置き換え、演算子強度低減処理を実行する。
【００２１】
例えば、消費電力低減部１０４は、構文解析後のプログラム内において、消費電力の高い、次式（１）に示す演算子、
ｘ＝ｙ＊２・・・（１）
（但し、x, yは整数）を検出した場合には、式（１）で検出した演算子より消費電力の低い、次式（２）に示す演算子、
ｘ＝ｙ＋ｙ・・・（２）
に変換する。
【００２２】
このように、本実施形態によれば、消費電力低減部１０４は、構文解析後のプログラム内において、消費電力の高い演算子を検出した場合、消費電力の低い演算子に変換（置き換える）ことができる。このため、プロセッサに特殊技術を組み込んだり、ユーザの手間を要することなくプロセッサの消費電力量を削減することが可能となる。
【００２３】
上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００２４】
（付記１）コンパイラに入力されたソースプログラムの構文を解析する解析部と、前記解析後のプログラム内に含まれる演算子のうち、プロセッサにおける消費電力の高い演算子を消費電力の低い演算子に変換する消費電力低減部と、前記変換後のプログラムに基づいてオブジェクトプログラムを生成する生成部と、を有するコンパイラ装置。
【００２５】
（付記２）コンパイラを提供するコンパイラ装置のコンパイル方法であって、前記コンパイラ装置は、前記コンパイラに入力されたソースプログラムの構文を解析するステップと、前記解析後のプログラム内に含まれる演算子のうち、プロセッサにおける消費電力の高い演算子を消費電力の低い演算子に変換するステップと、前記変換後のプログラムに基づいてオブジェクトプログラムを生成するステップと、を実行するコンパイル方法。
【産業上の利用可能性】
【００２６】
本発明は、プロセッサに特殊技術を組み込んだり、ユーザの手間を要することなく、オブジェクトプログラム実行時のプロセッサの消費電力量を削減するコンピュータ装置に広く適用することができる。
【符号の説明】
【００２７】
１００…ソースプログラム、１０１…コンパイラ、１０２…構文解析部、１０３…最適化部、１０４…消費電力低減部、１０５…コード生成部、１０６…オブジェクトプログラム。
【図１】
2011186512.tif 000003