(57)【要約】【課題】  最適なハードウェアリソースの停止及び起動を行うことにより、プログラム実行における待ち時間を最小化することで低消費電力を実現する。【解決手段】  コンピュータシステム１は、プログラムのコンパイルを行うコンパイル処理部１０と、コンパイルしたプログラムを実行するシステム部２０とを含み、コンパイル処理部１０が、プログラムで使用するハードウェアリソースのハードウェア情報を参照して、ハードウェアリソースの起動命令と停止命令を、プログラムに埋め込む手段を含み、システム部２０が、プログラムに埋め込まれた起動命令と停止命令に基づいて、ハードウェアリソースの起動と停止を制御する起動停止制御手段を含む。【選択図】  図１
2010231306.tif 000002
【特許請求の範囲】
【請求項１】
プログラムのコンパイルを行うコンパイル処理部と、コンパイルした前記プログラムを実行するシステム部とを備え、
前記コンパイル処理部が、前記プログラムで使用するハードウェアリソースのハードウェア情報を参照して、前記ハードウェアリソースの起動命令と停止命令を、前記プログラムに埋め込む手段を備え、
前記システム部が、前記プログラムに埋め込まれた前記起動命令と停止命令に基づいて、前記ハードウェアリソースの起動と停止を制御する起動停止制御手段を備えることを特徴とするコンピュータシステム。
【請求項２】
前記コンパイル処理部は、前記プログラムを解析し、前記ハードウェア情報を参照することにより、前記起動命令、前記停止命令を埋め込む位置を決定し、コンパイル後に前記起動命令、及び停止命令を埋め込んだ実行コードを出力することを特徴とする請求項１に記載のコンピュータシステム。
【請求項３】
前記コンパイラ処理部は、前記ハードウェア情報に基づき、前記プログラムの実行中における前記ハードウェアリソースの動作率を見積り、当該動作率の見積もりに従い、前記プログラム中に前記ハードウェアリソースの起動命令、及び停止命令を埋め込むことを特徴とする請求項１又は請求項２に記載のコンピュータシステム。
【請求項４】
前記ハードウェア情報が、動作中に停止及び起動が可能なハードウェアリソースの情報、起動及び停止を開始してから起動及び停止が完了するまでに要する時間の情報を含むことを特徴とする請求項１から請求項３の何れかに記載のコンピュータシステム。
【請求項５】
前記コンパイル処理部は、前記ハードウェア情報を参照し、前記ハードウェアリソースの起動を完了させたい位置から起動に要する時間を差し引いた位置に前記起動命令を埋め込むことを特徴とする請求項１から請求項４の何れかに記載のコンピュータシステム。
【請求項６】
前記ハードウェアリソースが、プロセッサ、メモリ、ネットワークを含むシステムの構成要素、プロセッサ内の機能ユニットや機能ユニット内のゲートを含むことを特徴とする請求項１から請求項５の何れかに記載のコンピュータシステム。
【請求項７】
プログラムのコンパイルを行うコンパイル処理部と、コンパイルした前記プログラムを実行するシステム部とを備えるコンピュータシステムのハードウェアリソース制御方法であって、
前記プログラムで使用するハードウェアリソースのハードウェア情報を参照して、前記ハードウェアリソースの起動命令と停止命令を、前記プログラムに埋め込むステップと、
前記プログラムに埋め込まれた前記起動命令と停止命令に基づいて、前記ハードウェアリソースの起動と停止を制御するステップとを有することを特徴とするハードウェアリソース制御方法。
【請求項８】
前記埋め込みステップで、前記プログラムを解析し、前記ハードウェア情報を参照することにより、前記起動命令、前記停止命令を埋め込む位置を決定し、コンパイル後に前記起動命令、及び停止命令を埋め込んだ実行コードを出力することを特徴とする請求項７に記載のハードウェアリソース制御方法。
【請求項９】
前記埋め込みステップで、前記ハードウェア情報に基づき、前記プログラムの実行中における前記ハードウェアリソースの動作率を見積り、当該動作率の見積もりに従い、前記プログラム中に前記ハードウェアリソースの起動命令、及び停止命令を埋め込むことを特徴とする請求項７又は請求項８に記載のハードウェアリソース制御方法。
【請求項１０】
前記ハードウェア情報が、動作中に停止及び起動が可能なハードウェアリソースの情報、起動及び停止を開始してから起動及び停止が完了するまでに要する時間の情報を含むことを特徴とする請求項７から請求項９の何れかに記載のハードウェアリソース制御方法。
【請求項１１】
前記埋め込みステップで、前記ハードウェア情報を参照し、前記ハードウェアリソースの起動を完了させたい位置から起動に要する時間を差し引いた位置に前記起動命令を埋め込むことを特徴とする請求項７から請求項１０の何れかに記載のハードウェアリソース制御方法。
【請求項１２】
前記ハードウェアリソースが、プロセッサ、メモリ、ネットワークを含むシステムの構成要素、プロセッサ内の機能ユニットや機能ユニット内のゲートを含むことを特徴とする請求項７から請求項１１の何れかに記載のハードウェアリソース制御方法。
【請求項１３】
プログラムのコンパイルを行うコンパイル処理部と、コンパイルした前記プログラムを実行するシステム部とを備えるコンピュータシステム上で実行されるプログラムであって、
前記コンピュータシステムに、
前記プログラムで使用するハードウェアリソースのハードウェア情報を参照して、前記ハードウェアリソースの起動命令と停止命令を、前記プログラムに埋め込む処理と、
前記プログラムに埋め込まれた前記起動命令と停止命令に基づいて、前記ハードウェアリソースの起動と停止を制御する処理と、を実行させることを特徴とするプログラム。
【請求項１４】
前記埋め込み処理で、前記プログラムを解析し、前記ハードウェア情報を参照することにより、前記起動命令、前記停止命令を埋め込む位置を決定し、コンパイル後に前記起動命令、及び停止命令を埋め込んだ実行コードを出力することを特徴とする請求項１３に記載のプログラム。
【請求項１５】
前記埋め込み処理で、前記ハードウェア情報に基づき、前記プログラムの実行中における前記ハードウェアリソースの動作率を見積り、当該動作率の見積もりに従い、前記プログラム中に前記ハードウェアリソースの起動命令、及び停止命令を埋め込むことを特徴とする請求項１３又は請求項１４に記載のプログラム。
【請求項１６】
前記ハードウェア情報が、動作中に停止及び起動が可能なハードウェアリソースの情報、起動及び停止を開始してから起動及び停止が完了するまでに要する時間の情報を含むことを特徴とする請求項１３から請求項１５の何れかに記載のプログラム。
【請求項１７】
前記埋め込み処理で、前記ハードウェア情報を参照し、前記ハードウェアリソースの起動を完了させたい位置から起動に要する時間を差し引いた位置に前記起動命令を埋め込むことを特徴とする請求項１３から請求項１６の何れかに記載のプログラム。
【請求項１８】
前記ハードウェアリソースが、プロセッサ、メモリ、ネットワークを含むシステムの構成要素、プロセッサ内の機能ユニットや機能ユニット内のゲートを含むことを特徴とする請求項１３から請求項１７の何れかに記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムに関し、特に低消費電力化を実現するコンピュータシステム、ハードウェアリソース制御方法及びそのプログラムに関する。
【背景技術】
【０００２】
ハードウェアリソースを停止、もしくは低速運転させて消費電力を低減させる技術、及び必要時に起動させる技術は既に複数開示されており、プログラム上のコーディングや、コンパイラ等の命令変換装置の解析に基づく自動制御等の技術がある。
【０００３】
例えば特許文献１には、コンパイラによる命令変換方法について、コンパイラ等が命令プログラムを解析し電力制御命令を自働挿入する技術が開示されている。また、特許文献２には、高速化の目的でスケジューリングされた結果発生したアイドル時間を利用し、各プログラムブロックの実行時期に間に合う程度にクロック周波数を調整することで低消費電力化を実現する技術が開示されている。
【０００４】
さらに、特許文献３に開示の技術には、コンパイラ等によって、プログラム中の各命令の実行に必要とするハードウェアリソースをコンパイル時に検出し、この結果に基づいてプログラムの実行に不要なハードウェアリソースのクロック入力を停止あるいは低周波数に設定する命令を生成することにより低消費電力化を実現する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−３１８５０２号公報
【特許文献２】特開２００７−３３４４９７号公報
【特許文献３】特開平７−１７０６７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、プログラム実行に不要となるハードウェアリソースを停止し、低消費電力を実現する方式は既に提案されている。しかしこれらの技術は、ハードウェアリソースが停止に要する停止処理時間、及び起動に要する起動処理時間を考慮していなため、最適なハードウェアリソースの停止及び起動は困難である。
【０００７】
ハードウェアリソースは、起動命令を受けてから起動が完了するまでには起動処理時間が発生し、プログラムは、ハードウェアリソースの起動命令を出してから起動が完了するまで処理を中止せねばならず、起動処理時間まで考慮した上で起動のタイミングを算出しなければ、最適な低消費電力化は困難である。
【０００８】
また、一度ハードウェアリソースを停止して、再度起動するような場合、ハードウェアリソースの停止処理時間と起動処理時間によっては、停止をせずに起動させたままのほうが待ち時間が発生しないということも考えられ、単に不必要になったら停止する、必要になったら起動するという手法では最適な低消費電力化は困難である。
【０００９】
（発明の目的）
本発明の目的は、最適なハードウェアリソースの停止及び起動を行うことにより、プログラム実行における待ち時間を最小化することで低消費電力を実現するコンピュータシステム、ハードウェアリソース制御方法及びそのプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明によるコンピュータシステムは、プログラムのコンパイルを行うコンパイル処理部と、コンパイルしたプログラムを実行するシステム部とを含み、コンパイル処理部が、プログラムで使用するハードウェアリソースのハードウェア情報を参照して、ハードウェアリソースの起動命令と停止命令を、プログラムに埋め込む手段を含み、システム部が、プログラムに埋め込まれた起動命令と停止命令に基づいて、ハードウェアリソースの起動と停止を制御する起動停止制御手段を含む。
【００１１】
本発明によるハードウェアリソース制御方法は、プログラムのコンパイルを行うコンパイル処理部と、コンパイルしたプログラムを実行するシステム部とを備えるコンピュータシステムのハードウェアリソース制御方法であって、プログラムで使用するハードウェアリソースのハードウェア情報を参照して、ハードウェアリソースの起動命令と停止命令を、プログラムに埋め込むステップと、プログラムに埋め込まれた起動命令と停止命令に基づいて、ハードウェアリソースの起動と停止を制御するステップとを有する。
【００１２】
本発明によるプログラムは、プログラムのコンパイルを行うコンパイル処理部と、コンパイルしたプログラムを実行するシステム部とを備えるコンピュータシステム上で実行されるプログラムであって、コンピュータシステムに、プログラムで使用するハードウェアリソースのハードウェア情報を参照して、ハードウェアリソースの起動命令と停止命令を、プログラムに埋め込む処理と、プログラムに埋め込まれた起動命令と停止命令に基づいて、ハードウェアリソースの起動と停止を制御する処理と、を実行させる。
【発明の効果】
【００１３】
本発明によれば、コンパイラにより、ハードウェア情報に基づいてハードウェアリソースの停止制御及び起動制御を行うことにより、適切なハードウェアリソース制御が可能となり、最適な消費電力化を実現することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施の形態に係るコンピュータシステムのブロック図である。
【図２】第１の実施の形態に係るコンパイル処理部の基本動作を示すフローチャートである。
【図３】第１の実施の形態に係るシステム部の基本動作を示すフローチャートである。
【図４】本発明のコンピュータシステムのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１５】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１６】
（第１の実施の形態）
図１は、本発明の第１の実施の形態によるコンピュータシステムを示すブロック図である。図１を参照すると、第１の実施の形態に係るコンピュータシステムは、プログラムのコンパイルを行うコンパイル処理部１０、プログラムを実行するシステム部２０を含む。
【００１７】
コンピュータシステム１は、コンパイル処理部１０でプログラムをコンパイルし、システム部２０でプログラムを実行する機能を有する。
【００１８】
コンパイル処理部１０は、プログラムを格納するプログラム記憶部１１、コンパイラ１２、実行コード記憶部１３、ハードウェア情報記憶部１４を含み、ハードウェア情報記憶部１４に格納したハードウェア情報を参照してプログラム記憶部１１のプログラムをコンパイルし、実行コード記憶部１３に実行コードを出力する機能を有する。
【００１９】
コンパイラ１２は、プログラム記憶部１１のプログラムをシステム部２０において実行する際に、ハードウェアリソース２２の適切な停止及び起動を行うために、ハードウェア構成情報記憶部１４のハードウェア情報に基づいて、コンパイルを行う機能を有する。具体的には、コンパイラ１２は、命令プログラムを解析し、ハードウェア情報１４を参照することで停止命令、起動命令を埋め込むかどうか、及び停止命令、起動命令を埋め込む場合は命令文の埋め込み位置を決定し、コンパイル後にハードウェアリソース２２の停止命令、及び起動命令を埋め込んだ実行コードを実行コード記憶部１３に出力する。
【００２０】
プログラム記憶部１１、コンパイラ１２、及び実行コード記憶部１３については本発明の技術分野における当業者にとってよく知られており、方式そのものは本発明と直接関係しないため、その詳細については省略する。
【００２１】
ハードウェア情報記憶部１４は、システム部２０のハードウェア情報を保持している。具体的には、ハードウェアの構成情報、ハードウェア動作中に停止及び起動が可能なハードウェアリソースの情報、ハードウェアリソース毎の停止処理時間情報及び起動処理時間情報を有するハードウェア情報を保持している。なお、これらハードウェア情報については、例えばプロセッサメーカーより提供されているものを利用することが可能である。
【００２２】
停止及び起動することが可能なハードウェアリソースとは、利用可能な全ハードウェアリソース中において、ハードウェア動作中であっても停止、起動が行えるハードウェアリソースを意味する。例えば、マルチコアＣＰＵを想定した場合、コア毎の停止、起動は可能であり、これが停止、起動ができるハードウェアリソースに該当する。反対に、ＣＰＵ全体へ電力を供給しているハードウェアリソースはハードウェア動作中には停止することができないため、停止、起動が行えないハードウェアリソースに該当する。
【００２３】
また、停止処理時間情報、起動処理時間情報とは、ハードウェアリソースが停止、起動を開始してから停止完了、起動完了までに要する時間の情報である。
【００２４】
なお、上述したプログラム記憶部１１、コンパイラ１２、及び実行コード記憶部１３については当業者にとってよく知られており、方式そのものは本発明と直接関係しないため、その詳細については省略する。
【００２５】
システム部２０は、起動・停止制御部２１、ハードウェアリソース２２を含む。
【００２６】
システム部２０は、実行コード記憶部１３に保存されている実行コードに従いプログラムを実行する機能を有する。なお、システム部２０は、プロセッサやメモリを含むシステム全体だけでなく、単一のプロセッサチップ、単一のコアなど、１つのユニットとして区分可能ないずれかのユニットを表している。
【００２７】
起動・停止制御部２１は、実行コード中の停止命令、及び起動命令に従い、ハードウェアリソース２２中のハードウェアリソース２２ａ〜２２ｎの停止及び起動を制御する機能を有する。起動・停止制御部２１は、システム中に専用制御部として設ける方法、システム中のプロセッサが制御する方法などが考えられる。
【００２８】
ハードウェアリソース２２は、巨視的には、プロセッサ、メモリ、ネットワークなどのシステム構成要素であり、微視的にはプロセッサ内の機能ユニットや機能ユニット内のゲートなどである。
【００２９】
（第１の実施の形態の動作の説明）
図２、図３のフローチャートを用いて、本実施の形態によるコンピュータシステム１の処理動作を説明する。
【００３０】
図２は、本実施の形態のコンピュータシステム１におけるコンパイル処理部１０のフローチャートであり、図３はシステム部２０のフローチャートである。
【００３１】
まず、プログラムがコーディングにより生成され、プログラム記憶部１１に保存される（ステップ２０１）。プログラムについては当業者により広く知られており、プログラムの詳細については省略する。
【００３２】
コンパイラ１２は、プログラム記憶部１１に保存されているプログラムと、ハードウェア情報記憶部１４が保持しているハードウェア情報に基づき、ハードウェアリソース２２中のハードウェアリソース２２ａ〜２２ｎの動作率を見積る（ステップ２０２）。ここでいう動作率の見積もりとは、プログラム１１の実行中において、例えばハードウェアリソース２２ａは時間Ａから時間Ｂまでは全く動作しないといった情報や、ハードウェアリソース２２ｂは時間Ｃ以後動作率が著しく低くなるといった動作を見積る処理である。
【００３３】
コンパイラ１２は、動作率の見積もり結果に従い、プログラム記憶部１１に保存されているプログラムを実行コードに変換するとともに、ハードウェアリソース２２中のハードウェアリソース２２ａ〜２２ｎの停止命令、及び起動命令を、停止処理時間、起動処理時間を考慮した位置に埋め込み、制御命令が埋め込まれた実行コードを実行コード記憶部１３に保存する（ステップ２０３、２０４）。
【００３４】
例えば、ハードウェアリソース２２ａを時間Ａで停止して時間Ｂで再び起動させたいときは、時間Ａに停止命令がだされる位置に停止命令を埋め込み、起動においては、ハードウェアリソース２２ａの起動処理時間がＸｔとすると、時間（ＢーＸｔ）に起動命令が出される位置に起動命令を埋め込む。このように、起動を完了させたいタイミング（時間Ｂ）から起動に要する時間（Ｘｔ）を差引いたポイント（時間（Ｂ−Ｘｔ））に起動命令を埋め込むことで、時間Ｂの時点でハードウェアリソース２２ａの起動が完了した状態にすることができる。
【００３５】
システム部２０は、実行コード記憶部１３の実行コードの命令処理を開始する（ステップ３０１）。
【００３６】
実行コードの命令実行の各ステップにおいて、実行される命令が停止命令である場合（ステップ３０２）、起動・停止制御部２１は、停止命令で指定されたハードウェアリソース２２中のハードウェアリソースを停止させる制御を行う（ステップ３０３）。
【００３７】
また、実行コードの命令実行の各ステップにおいて、実行される命令が起動命令である場合（ステップ３０４）、起動・停止制御部２１は、起動命令で指定されたハードウェアリソース２２中の当該ハードウェアリソースを起動させる制御を行う（ステップ３０５）。
【００３８】
システム部２０は、実行コードの全命令処理の終了判定を行い、処理継続の場合ステップ３０１から命令実行ステップを繰返す（ステップ３０６）。命令実行ステップについては当業者により広く知られており、仕組みの詳細については省略とする。
【００３９】
（第１の実施の形態による効果）
本実施の形態によれば、ハードウェア情報のハードウェアリソースの停止処理時間、起動処理時間を用いて、コンパイラによるハードウェアリソースの停止制御、及び起動制御を行うことにより、プログラム実行における待ち時間を最小化することがで、これにより低消費電力化を効果的に実現することができる。
【００４０】
また、本実施の形態によれば、プログラムを実行するシステムを対象としてコンパイルを行うことにより、システムに最適なハードウェアリソースの起動・停止制御が行える。
【００４１】
次に、コンピュータシステム１のハードウェア構成例について、図４を参照して説明する。図４は、コンピュータシステム１のハードウェア構成例を示すブロック図である。
【００４２】
図４を参照すると、コンピュータシステム１は、一般的なコンピュータ装置と同様のハードウェア構成であり、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリからなる、データの作業領域やデータの一時退避領域に用いられる主記憶部４０２、ネットワークを介してデータの送受信を行う通信部４０３、入力装置４０５や出力装置４０６及び記憶装置４０７と接続してデータの送受信を行う入出力インタフェース部４０４、上記各構成要素を相互に接続するシステムバス４０８を備えている。記憶装置４０７は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、磁気ディスク、半導体メモリ等の不揮発性メモリから構成されるハードディスク装置等で実現される。
【００４３】
本実施の形態によるコンピュータシステム１のコンパイラ１２及び起動・停止制御部２１は、プログラムを組み込んだ、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等のハードウェア部品である回路部品を実装することにより、その動作をハードウェア的に実現することは勿論として、その機能を提供するプログラムを、補助記憶部４０７に格納し、そのプログラムを主記憶部４０２にロードしてＣＰＵ４０１で実行することにより、ソフトウェア的に実現することも可能である。
【００４４】
以上好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
【符号の説明】
【００４５】
１：コンピュータシステム
１０：コンパイル処理部
１１：プログラム記憶部
１２：コンパイラ
１３：実行コード記憶部
２０：システム部
２１：起動・停止制御部
２２、２２ａ〜２２ｎ：ハードウェアリソース
【図１】
2010231306.tif 000003
【図２】
2010231306.tif 000004
【図３】
2010231306.tif 000005
【図４】
2010231306.tif 000006