(57)【要約】【課題】構成情報の切り替えにより発生するチャージ電力を削減して消費電力を低減する。【解決手段】複数の演算要素及び演算要素間を接続するネットワーク回路を有し、構成情報を変更することで演算要素の処理内容及びネットワーク回路の接続形態を動的に変更可能な情報処理装置において、演算要素を含む電源制御可能な回路ブロックに対する電源の供給を電源制御部により制御し、依存関係判定部が構成情報間での依存関係を判定し、リソース判定部が処理の実行時に使用する電源制御可能な回路ブロックを判定し、実行順序制御部が依存関係判定部及びリソース判定部による判定結果に応じて、構成情報の実行順序を制御するようにして、構成情報の切り替えにより発生するチャージ電力を削減する。【選択図】図２
2014203172.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算要素と前記演算要素間を接続するネットワーク回路とを有し、構成情報を変更することで前記演算要素の処理内容及び前記ネットワーク回路の接続形態を動的に変更可能な情報処理装置であって、
内部に前記演算要素を含む電源制御可能な回路ブロックに対する電源の供給を制御する電源制御手段と、
前記構成情報に基づいて構成情報間での依存関係を判定する依存関係判定手段と、
前記構成情報に基づいて前記情報処理装置で実行する処理に使用する前記電源制御可能な回路ブロックを判定するリソース判定手段と、
前記依存関係判定手段及び前記リソース判定手段による判定結果に応じて、前記構成情報の実行順序を制御する実行順序制御手段とを有することを特徴とする情報処理装置。
【請求項２】
前記実行順序制御手段は、電源遮断状態から電源投入状態へ遷移する前記電源制御可能な回路ブロックの数が最小となるよう前記構成情報の実行順序を制御することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記依存関係判定手段は、前記構成情報に基づいて前記情報処理装置で実行する処理に使用されるデータの構成情報間における依存関係を判定することを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記依存関係判定手段は、前記情報処理装置で実行する処理に使用される入出力データのアドレスから構成情報間における依存関係を判定することを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記リソース判定手段は、前記情報処理装置で実行する処理に使用する前記演算要素又は前記ネットワーク回路の接続形態から当該処理に使用する前記電源制御可能な回路ブロックを判定することを特徴とする請求項１〜４の何れか１項に記載の情報処理装置。
【請求項６】
前記実行順序制御手段は、前記構成情報の実行順序を示す実行順序制御テーブルを有し、前記依存関係判定手段及び前記リソース判定手段による判定結果に応じて前記実行順序制御テーブルを更新することを特徴とする請求項１〜５の何れか１項に記載の情報処理装置。
【請求項７】
複数の演算要素と前記演算要素間を接続するネットワーク回路とを有し、構成情報を変更することで前記演算要素の処理内容及び前記ネットワーク回路の接続形態を動的に変更可能な情報処理装置の制御方法であって、
内部に前記演算要素を含む電源制御可能な回路ブロックに対する電源の供給を制御する電源制御工程と、
前記構成情報に基づいて構成情報間での依存関係を判定する依存関係判定工程と、
前記構成情報に基づいて前記情報処理装置で実行する処理に使用する前記電源制御可能な回路ブロックを判定するリソース判定工程と、
前記依存関係判定工程及び前記リソース判定工程での判定結果に応じて、前記構成情報の実行順序を制御する実行順序制御工程とを有することを特徴とする情報処理装置の制御方法。
【請求項８】
複数の演算要素と前記演算要素間を接続するネットワーク回路とを有し、構成情報を変更することで前記演算要素の処理内容及び前記ネットワーク回路の接続形態を動的に変更可能な情報処理装置の制御処理をコンピュータに実行させるプログラムであって、
内部に前記演算要素を含む電源制御可能な回路ブロックに対する電源の供給を制御する電源制御ステップと、
前記構成情報に基づいて構成情報間での依存関係を判定する依存関係判定ステップと、
前記構成情報に基づいて前記情報処理装置で実行する処理に使用する前記電源制御可能な回路ブロックを判定するリソース判定ステップと、
前記依存関係判定ステップ及び前記リソース判定ステップでの判定結果に応じて、前記構成情報の実行順序を制御する実行順序制御ステップとをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構成情報に応じて処理内容を変更可能な複数の演算要素を有する情報処理装置及びその制御方法に関する。
【背景技術】
【０００２】
半導体製造技術の進歩による素子の微細化に伴い、ＬＳＩ（Large Scale Integration）は、大規模化され搭載されるトランジスタ数が増大してきている。そのため、単一のチップで多くの用途に対応可能なＬＳＩが望まれている。多様化する製品に対応可能なＬＳＩとして、高性能化、低消費電力、機能変更の柔軟性が求められている。高性能化、低消費電力、機能変更の柔軟性といった要望を実現する手段として、動的に再構成可能なプロセッサが注目されている。
【０００３】
動的に再構成可能なプロセッサは、演算要素と、演算要素間の接続を制御するネットワーク回路とを有する。演算要素は、例えばＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＬＵ（Arithmetic Logic Unit）等である。演算要素の処理内容及びネットワーク回路の接続は、構成情報と呼ばれる設定データを変更することで変更可能な回路構造となっている。
【０００４】
動的に再構成可能なプロセッサは、データ処理内容に応じて構成情報を動的に変更することで機能変更に柔軟に対応することができる。また、動的に再構成可能なプロセッサは、搭載する演算要素数を増やすことによって、処理性能を向上させ高性能化に対応することができるが、消費電力が増大してしまう。そのため、動的に再構成可能なプロセッサは、その内部に電源のオン（ＯＮ）／オフ（ＯＦＦ）が切り替え可能な電源制御可能な回路ブロック領域を設け、使用しない演算要素及びネットワーク回路の電源をオフすることで低消費電力化を実現していた。
【０００５】
また、低電力モード時には、プロセッサの一部にプログラムを実行させないように、複数のプログラムの実行順序及びプログラムを実行するプロセッサを決定する。そして、プログラムを実行していないプロセッサに対するクロックの供給を停止することで、消費電力を削減する技術が提案されている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−２３８０２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、情報処理装置としての動的に再構成可能なプロセッサにおいて、構成情報の切り替え時に、電源制御可能な回路ブロックに対する電源のオン／オフ切り替えが発生する。電源制御可能な回路ブロックに対する電源をオフ状態からオン状態に遷移する際にはチャージ電力が発生する。
本発明は、このような事情に鑑みてなされたものであり、電源制御可能な回路ブロックに対する電源をオフ状態からオン状態に遷移する際に発生するチャージ電力を削減して消費電力を低減することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の情報処理装置は、複数の演算要素と前記演算要素間を接続するネットワーク回路とを有し、構成情報を変更することで前記演算要素の処理内容及び前記ネットワーク回路の接続形態を動的に変更可能な情報処理装置であって、内部に前記演算要素を含む電源制御可能な回路ブロックに対する電源の供給を制御する電源制御手段と、前記構成情報に基づいて構成情報間での依存関係を判定する依存関係判定手段と、前記構成情報に基づいて前記情報処理装置で実行する処理に使用する前記電源制御可能な回路ブロックを判定するリソース判定手段と、前記依存関係判定手段及び前記リソース判定手段による判定結果に応じて、前記構成情報の実行順序を制御する実行順序制御手段とを有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、構成情報間での依存関係及び処理の実行時に使用する電源制御可能な回路ブロックに応じて、構成情報の実行順序を制御することで、構成情報の切り替えにより発生するチャージ電力を削減して消費電力を低減することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態における情報処理装置を有するシステムの構成例を示す図である。
【図２】本実施形態における情報処理装置の構成例を示す図である。
【図３】本実施形態における構成情報の実行順序制御処理の例を示すフローチャートである。
【図４】図３のステップＳ３０２の処理を示すフローチャートである。
【図５】図３のステップＳ３０６の処理を示すフローチャートである。
【図６】本実施形態における実行順序制御テーブルの例を示す図である。
【図７】本実施形態における新規に生成された構成情報の例を示す図である。
【図８】図６及び図７に示す構成情報の入出力データのメモリ領域と実行順序を示す図である。
【図９】図６及び図７に示す構成情報の処理時における電源制御可能な回路ブロックへの電源供給の例を示す図である。
【図１０】本実施形態における更新された実行順序制御テーブルを示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を図面に基づいて説明する。
【００１２】
＜システムの全体構成＞
図１は、本発明の実施形態における情報処理装置を有するシステム全体の構成例を示すブロック図である。ＣＰＵ（Central Processing Unit）１０１は、システム全体の制御を司り、例えばシステムが有する各機能部を制御する。ＲＯＭ（Read Only Memory）１０２は、ブートプログラム等を記憶している。ＲＡＭ（Random Access Memory）１０３は、ＣＰＵ１０１のワークエリアとして利用され、オペレーティングシステム（ＯＳ）、後述する情報処理装置１００の回路構成情報（以下、「構成情報」とも呼ぶ）、アプリケーション等を格納する。
【００１３】
ハードディスクドライブ（ＨＤＤ）１０４は、ＯＳ、構成情報を作成するためのアプリケーション、並びに、様々なデータを格納するための記憶装置である。キーボード１０５及びマウス１０６は、ユーザインタフェースとして機能する。表示制御部１０７は、内部にビデオメモリ及び表示コントローラを有し、表示装置１０８を制御する。表示装置１０８は、表示制御部１０７からの映像信号を受信して映像を表示する。インタフェース（Ｉ／Ｆ）１０９は、各種外部デバイスと通信するためのものであり、外部デバイス１１０と後述するシステムバス１１１とを接続する。
【００１４】
本実施形態における情報処理装置１００は、複数の演算要素と、演算要素間を接続するネットワーク回路とを内部に有する。情報処理装置１００は、構成情報を変更することで演算要素の処理内容及びネットワーク回路の接続形態を動的に変更可能である。本実施形態において、構成情報は、少なくともネットワーク回路の接続関係、演算要素の処理内容、及び処理で使われる入出力データのアドレスとデータサイズをそれぞれ示す情報を含むものとする。システムバス１１１は、システムが有する各機能部を接続するバスであり、システム内の機能部は、システムバス１１１を介してデータの授受が可能となる。
【００１５】
図１に示すシステムに電源が投入されると、ＣＰＵ１０１は、ＲＯＭ１０２に格納されたブートプログラムを実行し、ＨＤＤ１０４に格納されたＯＳをＲＡＭ１０３にロードする。その後、ＣＰＵ１０１が、ユーザのリクエストに応じて情報処理装置の構成情報を作成するアプリケーションを起動することで、本システムが構成情報作成装置として機能する。なお、本実施形態における情報処理装置１００を用いたシステム構成は、図１に示した構成に限定されるものではなく、他のシステム構成であっても良い。
【００１６】
＜情報処理装置の構成＞
図２は、本実施形態における情報処理装置１００の構成例を示すブロック図である。バス制御部４０１は、システムバス１１１を介して処理に必要な構成情報及び入出力データを送受信する。リソース判定部４０２は、構成情報毎に、情報処理装置１００で実行される処理に使用される後述の電源制御可能な回路ブロックを判定する。依存関係判定部４０３は、構成情報間にデータの依存関係が有るか無いかを判定する。
【００１７】
実行順序制御部４０４は、構成情報の実行順序が示された実行順序制御テーブルを内部に有する。実行順序制御部４０４は、リソース判定部４０２及び依存関係判定部４０３でのそれぞれの判定結果に応じて、構成情報の実行順序を制御する。実行順序制御部４０４は、例えば電源がオフ状態（電源遮断状態）からオン状態（電源投入状態）に遷移する電源制御可能な回路ブロックの数が最小になるよう構成情報の実行順序を制御する。電源制御部４０５は、構成情報に応じて後述する電源制御可能な回路ブロックに供給する電源のオン／オフ切り替えを制御する。
【００１８】
ネットワーク回路（以下、「ルータ」とも呼ぶ）４０６は、演算要素４０７間の接続を制御する。ルータ４０６は、演算要素４０７又は他のルータ４０６とバスで接続されており、構成情報に応じてバスの接続先を演算要素４０７又は他のルータ４０６へ切り替えることができる。演算要素４０７は、構成情報に応じて処理内容を変更可能であり、例えばＡＬＵ（Arithmetic Logic Unit）やプロセッサである。例えば演算要素４０７がＡＬＵである場合には、構成情報に応じて加算処理や乗算処理といった処理を演算要素４０７に対して割り当てることができる。また、例えば演算要素４０７がプロセッサである場合には、構成情報に応じて画像のエッジ抽出やアルファブレンディングといった単位での処理を演算要素４０７に割り当てることができる。
【００１９】
入力データ用信号線４０８は、バス制御部４０１とルータ４０６とを接続する信号線であり、処理に使用される入力データが転送される。出力データ用信号線４０９は、ルータ４０６とバス制御部４０１とを接続する信号線であり、ルータ４０６から出力された処理データはバス制御部４０１へ転送される。構成情報用信号線４１０は、ＲＡＭ１０３に格納された構成情報をバス制御部４０１経由で取得し、全ルータ４０６及び全演算要素４０７へ転送するための信号線である。
【００２０】
電源制御可能な回路ブロック４１１、４１２、４１３、４１４は、回路ブロック単位で、電源供給が遮断されているオフ状態（電源遮断状態）と、電源供給が行われているオン状態（電源投入状態）とが切り替え可能である。電源制御可能な回路ブロック４１１、４１２、４１３、４１４は、それぞれ内部にルータ４０６及び演算要素４０７を含み、電源制御部４０５によって回路ブロックへ供給する電源がオン／オフ制御される。
【００２１】
次に、本実施形態におけるデータ処理動作について説明する。
情報処理装置１００は、処理に必要な構成情報が格納されているＲＡＭ１０３上のアドレスを実行順序制御部４０４が有する実行順序制御テーブルから取得する。そして、情報処理装置１００は、バス制御部４０１から構成情報の読み出しの要求信号を出力することで、構成情報をＲＡＭ１０３から取得する。次に、情報処理装置１００の電源制御部４０５は、取得した構成情報から、実行する処理に使用する電源制御可能な回路ブロックに対して電源を供給し、処理に使用しない電源制御可能な回路ブロックに対する電源を遮断する。
【００２２】
電源制御可能な回路ブロックの電源が安定した後、取得した構成情報が、構成情報用信号線４１０から情報処理装置１００内の演算装置４０７及びルータ４０６へ転送され、設定の書き換えが行われる。構成情報の設定の書き換え後、情報処理装置１００は、バス制御部４０１から構成情報に示されている入力データアドレスに対してデータの読み出しの要求信号を出力し、ＲＡＭ１０３から入力データを取得してデータ処理を開始する。そして、情報処理装置１００は、構成情報に示されている出力データアドレスに対してデータ処理結果である出力データの書き込みを順次行うことで、ＲＡＭ１０３へ処理結果を格納する。入力データの処理結果がすべてＲＡＭ１０３に格納されると、処理は終了する。
【００２３】
ＲＡＭ１０３上に複数の構成情報が格納されている場合、情報処理装置１００は、前述した一連の処理を、構成情報単位で連続して実行する。ここで、本実施形態では、電源遮断状態から電源投入状態に遷移する電源制御可能な回路ブロックの数が最も小さくなるよう実行順序制御部４０４により構成情報の実行順の入れ替えが行われる。ただし、ある決まった時間間隔で、連続的に複数の構成情報を使用するといった制約が存在する場合には、それらの構成情報の実行順序を切り替えることはできない。こういった状態を、構成情報間で依存関係が有る状態と呼ぶ。構成情報間に依存関係がある場合、構成情報の入れ替えを行うと処理に矛盾が生じる。そのため、依存関係判定部４０３が、構成情報間に依存関係があるか否かを判定し、依存関係がある構成情報は実行順序の入れ替えを行わないよう制御する。
【００２４】
一般的に、構成情報間に依存関係がある場合とは、先行して実行する構成情報の処理結果を後続して実行する構成情報の入力データとして利用する場合が挙げられる。そのため、構成情報間に依存関係があるか否かは、先行の構成情報の処理結果を書き込むメモリのアドレス（出力データアドレス）、後続の構成情報の入力データを読み出すメモリのアドレス（入力データアドレス）に重複があるか否かで判定可能となる。また、後続の構成情報の処理結果を書き込むメモリのアドレスと、先行の構成情報の入力データを読み込むメモリのアドレスや処理結果を書き込むメモリのアドレスとの重なりがある場合にも、処理結果に矛盾が生じるために実行順序の入れ替えはできない。
【００２５】
本実施形態では、情報処理装置１００は、この入出力データのアドレスの関係を用いて、構成情報間の依存関係を判定することとする。情報処理装置１００の依存関係判定部４０３は、後続処理に必要な構成情報が生成された際、入出力データ領域として確保されたＲＡＭ１０３のメモリ領域を抽出する。次に、依存関係判定部４０３は、先行して生成された全構成情報の入出力データ領域として確保されたＲＡＭ１０３のメモリ領域との間に重複があるか否かを判定する。依存関係判定部４０３は、判定の結果、メモリ領域に重複がある場合には構成情報間に依存関係があると判定し、メモリ領域に重複がない場合には、構成情報間に依存関係がないと判定する。
【００２６】
＜構成情報の実行順序制御処理＞
図３は、本実施形態における構成情報の実行順序制御処理の例を示すフローチャートである。本実施形態では、電源遮断状態（オフ状態）から電源投入状態（オン状態）に遷移する電源制御可能な回路ブロック４１１、４１２、４１３、４１４の数が最小となるように構成情報の実行順序の入れ替えを行う。
【００２７】
まず、ステップＳ３０１にて、ＣＰＵ１０１がユーザからのリクエストにより新規に構成情報を生成する。ＣＰＵ１０１は、構成情報の処理に必要な入力データ領域及び出力データ領域をＲＡＭ１０３に確保し、処理に必要な全ルータ４０６及び全演算要素４０７の設定値と、ＲＡＭ１０３に確保した入出力データ領域に関する情報とを含んだ構成情報を生成する。
【００２８】
ステップＳ３０２にて、情報処理装置１００の依存関係判定部４０３は、ステップＳ３０１において生成された構成情報と、前に生成されＲＡＭ１０３に保存されている構成情報間の依存関係があるか否かの判定を行い、依存関係がない構成情報の数を抽出する。ステップＳ３０２での処理の詳細を図４に示すフローチャートを用いて説明する。
【００２９】
ステップＳ４０１にて、依存関係判定部４０３は、以降の処理で用いる変数ｎを用意し、０を代入する。ステップＳ４０２にて、依存関係判定部４０３は、図３に示したステップＳ３０１において生成された構成情報に基づいて、情報処理装置１００の入力データ及び出力データを格納するＲＡＭ１０３上の先頭アドレス、データサイズを取得する。このデータ配列を、以下では「新規構成情報データ」と称する。次に、ステップＳ４０３にて、依存関係判定部４０３は、実行順序制御部４０４が有する実行順序制御テーブルから実行されていない既存の構成情報の数を取得して変数ｍへ代入する。
【００３０】
ステップＳ４０４にて、依存関係判定部４０３は、変数ｍの値を確認する。依存関係判定部４０３は、変数ｍの値が１以上であれば構成情報間の依存関係があるか否かの判定が必要な既存の構成情報が存在していると判断してステップＳ４０５へ移行し、変数ｍの値が１未満であればステップＳ４１２へ移行する。ステップＳ４０５にて、依存関係判定部４０３は、変数ｎの値に１を加える。
【００３１】
次に、ステップＳ４０６にて、依存関係判定部４０３は、実行順序制御テーブルから未選択で実行順序が一番遅い構成情報を選択する。そして、ステップＳ４０７にて、依存関係判定部４０３は、ステップＳ４０６において選択した構成情報の入力データアドレス、入力データサイズ、出力データアドレス、及び出力データサイズを取得する。このデータ配列を、以下では「既存構成情報データ」と称する。
【００３２】
ステップＳ４０８にて、依存関係判定部４０３は、既存構成情報データ及び新規構成情報データの、入力データアドレス、入力データサイズ、出力データアドレス、及び出力データサイズをそれぞれ比較し、使用するデータ領域に重複があるかを判定する。ステップＳ４０９にて、依存関係判定部４０３は、変数ｍの値から１を減じる。
【００３３】
ステップＳ４１０にて、依存関係判定部４０３は、変数ｍの値を確認する。依存関係判定部４０３は、変数ｍの値が１以上であれば構成情報間の依存関係があるか否かの判定が必要な構成情報が存在していると判断してステップＳ４１１へ移行し、変数ｍの値が１未満であればステップＳ４１２へ移行する。ステップＳ４１１にて、依存関係判定部４０３は、ステップＳ４０８での判定の結果、データ領域に重複があればステップＳ４１２へ移行し、重複がなければステップＳ４０５へ移行する。
【００３４】
ステップＳ４１２にて、依存関係判定部４０３は、変数ｎの値を確認する。依存関係判定部４０３は、変数ｎの値が１以下であった場合には、実行順序の変更が可能な構成情報が存在しないためステップＳ４１３へ移行し、それ以外の値であれば実行順序の変更が可能である構成情報が存在するためステップＳ４１４へ移行する。
【００３５】
ステップＳ４１３にて、依存関係判定部４０３は、構成情報の実行順序の変更が不可能であるため、依存関係がない構成情報の数がゼロという判定結果を実行順序制御部４０４に出力する。そして、図４に示す処理を終了し、図３に示したステップＳ３０３へ移行する。
【００３６】
また、ステップＳ４１４にて、依存関係判定部４０３は、構成情報の実行順序の変更が可能であるため、依存関係がない構成情報の数として変数ｎの値から１を減じた数を実行順序制御部４０４に出力する。そして、図４に示す処理を終了し、図３に示したステップＳ３０３へ移行する。
【００３７】
図３に戻り、ステップＳ３０３にて、情報処理装置１００の実行順序制御部４０４は、依存関係判定部４０３から受け取った判定結果に基づいて、構成情報の実行順序の変更が可能であるか否かを判定する。実行順序制御部４０４は、依存関係がない構成情報の数がゼロという判定結果を受け取った場合には、実行順序の変更が不可能であると判定してステップＳ３０４に移行する。一方、実行順序制御部４０４は、依存関係がない構成情報の数がゼロ以外の判定結果を受け取った場合には、実行順序の変更が可能であると判定してステップＳ３０５に移行する。
【００３８】
ステップＳ３０４にて、実行順序制御部４０４は、構成情報の実行順序を制御する実行順序制御テーブルを更新する。ステップＳ３０４では、実行順序制御部４０４は、ステップＳ３０１において生成された構成情報を、既存の構成情報の処理が終了した後に処理するよう実行順序制御テーブルを更新して処理を終了する。なお、実行順序制御部４０４は、実行順序制御テーブルに既存の構成情報がない場合には、ステップＳ３０１において生成された構成情報を最初に実行するように実行順序制御テーブルを更新する。
【００３９】
ステップＳ３０５にて、情報処理装置１００のリソース判定部４０２は、構成情報毎の処理において使用される電源制御可能な回路ブロックの情報を取得する。ステップＳ３０５では、リソース判定部４０２は、ＲＡＭ１０３に格納されている構成情報から、構成情報毎に電源投入（オン）しておく必要がある電源制御可能な回路ブロックと電源遮断（オフ）しておく電源制御可能な回路ブロックを特定する。本実施形態において、リソース判定部４０２は、電源制御可能な回路ブロックに含まれる演算要素又はルータがデータ処理に使用される場合、電源投入しておく必要がある電源制御可能な回路ブロックであると特定する。また、リソース判定部４０２は、電源投入しておく必要がある電源制御可能な回路ブロック以外の電源制御可能な回路ブロックを、電源遮断しておく電源制御可能な回路ブロックであると特定する。
【００４０】
ステップＳ３０６にて、実行順序制御部４０４は、構成情報の実行順序を入れ替えた場合に、構成情報間で電源遮断状態から電源投入状態に遷移する電源制御可能な回路ブロックの数が最小となる構成情報の実行順序を特定する。ステップＳ３０６での処理の詳細を図５に示すフローチャートを用いて説明する。
【００４１】
ステップＳ５０１にて、実行順序制御部４０４は、変数Ｌを用意し、１を代入する。変数Ｌは、図３に示したステップＳ３０１において生成された構成情報の挿入箇所を示すポインタであり、未実行の構成情報の実行順を後ろから数えた数を示している。例えば、変数Ｌの値が１の場合、未実行の構成情報の最後に実行される構成情報の前が挿入箇所であることを示している。
【００４２】
ステップＳ５０２にて、実行順序制御部４０４は、変数Ｌが示す箇所にステップＳ３０１において生成された構成情報を挿入した場合の電源遮断状態から電源投入状態に遷移する電源制御可能な回路ブロックの数をカウントする。ステップＳ５０３にて、実行順序制御部４０４は、ステップＳ５０２において取得したカウント数を保存する。ステップＳ５０３では、実行順序制御部４０４は、要素番号を変数Ｌとした配列ＮｕｍにステップＳ５０２において取得したカウント値を代入してカウント値を保持する。
【００４３】
ステップＳ５０４にて、実行順序制御部４０４は、入れ替え可能な構成情報に対して全探索が終了したか否かを判定する。ステップＳ５０４では、実行順序制御部４０４は、ステップＳ３０２の処理で出力された依存関係のない構成情報の数と変数Ｌの値とを比較する。実行順序制御部４０４は、依存関係のない構成情報の数と変数Ｌの値とが等しくなければ、全探索が終了していないと判断してステップＳ５０５へ移行し、等しければ全探索が終了したと判断してステップＳ５０６へ移行する。
【００４４】
ステップＳ５０５にて、実行順序制御部４０４は、変数Ｌに１を加算する。変数Ｌに１を加算した後、ステップＳ５０２へ移行する。
また、ステップＳ５０６にて、実行順序制御部４０４は、ステップＳ５０３で用いた配列Ｎｕｍの中で最小の値を探索し、配列Ｎｕｍの中で最小の値となっている要素番号Ｌの値を次の工程へ出力する。そして、図５に示す処理を終了し、図３に示したステップＳ３０７へ移行する。
【００４５】
図３に戻り、ステップＳ３０７にて、実行順序制御部４０４は、実行順序制御テーブルを更新する。ステップＳ３０７では、実行順序制御部４０４は、ステップＳ３０５において取得した要素番号Ｌの情報を基に、ステップＳ３０１において生成された構成情報を未実行の構成情報の後ろからＬ番目の実行順となるように実行順序制御テーブルを更新する。
【００４６】
情報処理装置１００は、ＣＰＵ１０１が構成情報を新規に作成する度に、前述した構成情報の実行順序制御処理に従って、実行順序制御部４０４が有する実行順序制御テーブルを更新し、実行順序制御テーブルに示された順に処理を行う。これにより、電源遮断状態から電源投入状態に遷移する電源制御可能な回路ブロックの数が最小となるように構成情報の実行順序を制御可能となり、回路ブロックのチャージ電力を削減して情報処理装置１００の消費電力を低減することができる。また、構成情報が複数同時に生成された場合も、生成された構成情報毎に前述した構成情報の実行順序制御処理を逐次行うことで実行順序を制御可能となる。
【００４７】
＜構成情報の実行順序制御例＞
以下、新規の構成情報が生成された時の構成情報の実行順序制御例を、図６〜図１０を用いて説明する。
図６は、実行順序制御部４０４が有する実行順序制御テーブルの例を示す図である。実行順序制御テーブルは、構成情報が格納されている先頭アドレス、処理で使用する入力データの先頭アドレス及びデータサイズ、処理結果である出力データを出力する先頭アドレス及びデータサイズ、構成情報の実行順序に関する情報を有する。
【００４８】
図６において、６０１は、既にＲＡＭ１０３に配置されている構成情報が使用する入出力データのアドレス及びデータサイズに関する情報である（以下、構成情報６０１と呼ぶ）。ここで、構成情報６０１がＲＡＭ１０３に格納されている先頭アドレスは０ｘ００１０＿１０００である。また、構成情報６０１が使用する入力データの先頭アドレスは０ｘ００００＿１０００、入力データサイズは３ＫＢｙｔｅ、出力データの先頭アドレスは０ｘ００００＿２０００、出力データサイズは３ＫＢｙｔｅである。
【００４９】
同様に、６０２は、既にＲＡＭ１０３に配置されている構成情報が使用する入出力データのアドレス及びデータサイズに関する情報である（以下、構成情報６０２と呼ぶ）。ここで、構成情報６０２がＲＡＭ１０３に格納されている先頭アドレスは０ｘ００１０＿２０００である。また、構成情報６０２が使用する入力データの先頭アドレスは０ｘ００００＿２８００、入力データサイズは１ＫＢｙｔｅ、出力データの先頭アドレスは０ｘ００００＿３４００、出力データサイズは２ＫＢｙｔｅである。
【００５０】
同様に、６０３は、既にＲＡＭ１０３に配置されている構成情報が使用する入出力データのアドレス及びデータサイズに関する情報である（以下、構成情報６０３と呼ぶ）。ここで、構成情報６０３がＲＡＭ１０３に格納されている先頭アドレスは０ｘ００１０＿３０００である。また、構成情報６０３が使用する入力データの先頭アドレスは０ｘ００００＿３６００、入力データサイズは２ＫＢｙｔｅ、出力データの先頭アドレスは０ｘ００００＿５０００、出力データサイズは２ＫＢｙｔｅである。
【００５１】
本実施形態において、実行順序制御テーブルの上から下に向かって実行順序が制御されているものとする。そのため、構成情報の実行順は構成情報５０１から５０２、５０３へ順番に実行される。
【００５２】
図７は、ＣＰＵ１０１がユーザからのリクエストにより新規に生成された構成情報の例を示す図である。構成情報は、構成情報が格納されている先頭アドレス、処理で使用する入力データの先頭アドレス及びデータサイズ、処理結果である出力データを出力する先頭アドレス及びデータサイズ、構成情報の実行順序に関する情報を有する。
【００５３】
７０１は、新規に生成された構成情報が使用する入出力データのアドレス及びデータサイズに関する情報である（以下、構成情報７０１と呼ぶ）。ここで、構成情報７０１がＲＡＭ１０３に格納されている先頭アドレスは０ｘ００１０＿４０００である。また、構成情報７０１が使用する入力データの先頭アドレスは０ｘ００００＿２０００、入力データサイズは１ＫＢｙｔｅ、出力データの先頭アドレスは０ｘ００００＿４８００、出力データサイズは２ＫＢｙｔｅである。
【００５４】
図８は、図６に示した構成情報６０１、構成情報６０２、構成情報６０３、及び図７に示した構成情報７０１に関して入出力データのメモリ領域と実行順序を示した図である。図８において、横軸はＲＡＭ１０３のアドレス情報を示し、右に行くほど大きいアドレスとし、縦軸は構成情報の実行順序を示し、上に行くほど実行順序が遅いものとする。また、８０１は構成情報６０１の入力データ領域を示し、８０２は構成情報６０１の出力データ領域を示している。同様に、８０３は構成情報６０２の入力データ領域を示し、８０４は構成情報６０２の出力データ領域を示している。同様に、８０５は構成情報６０３の入力データ領域を示し、８０６は構成情報６０３の出力データ領域を示している。同様に、８０７は構成情報７０１の入力データ領域を示し、８０８は構成情報７０１の出力データ領域を示している。
【００５５】
図８に示されるように、構成情報６０１の出力データ領域と構成情報７０１の入力データ領域が重なっており、構成情報６０２及び構成情報６０３の出力データ領域と構成情報７０１の入力データ領域に重なり部分がない。そのため、依存関係判定部４０３は、図３に示したステップＳ３０２において、構成情報６０１と構成情報７０１との間にはデータに依存関係が存在し、構成情報６０２及び構成情報６０３と構成情報７０１との間にはデータに依存関係が存在しないと判定する。
【００５６】
図９は、図６に示した構成情報６０１、構成情報６０２、構成情報６０３、及び図７に示した構成情報７０１の各構成情報毎に、リソース判定部４０２が取得した処理時に電源投入しておく必要がある電源制御可能な回路ブロックの情報の例を示す図である。図９において、射線部分は処理時に電源遮断にしておく電源制御可能な回路ブロックを示している。
【００５７】
図９において、９０１は構成情報６０１の処理時に電源投入しておく必要がある領域を示しており、電源制御可能な回路ブロック４１１を処理時に電源投入しておく必要があることを示している。同様に、９０２は構成情報６０２の処理時に電源投入しておく必要がある領域を示しており、電源制御可能な回路ブロック４１１、４１２、４１３を処理時に電源投入しておく必要があることを示している。９０３は、構成情報６０３の処理時に電源投入しておく必要がある領域を示しており、電源制御可能な回路ブロック４１２、４１４を処理時に電源投入しておく必要があることを示している。９０４は、構成情報７０１の処理時に電源投入しておく必要がある領域を示しており、電源制御可能な回路ブロック４１１、４１２、４１３、４１４を処理時に電源投入しておく必要があることを示している。
【００５８】
依存関係判定部４０３の結果から、構成情報７０１は構成情報６０２の処理前、又は構成情報６０３の処理前へ実行順を入れ替え可能である。そのため、実行順序制御部４０４は、図３に示したステップＳ３０６において、実行順序を入れ替え可能なパターンのすべてに対して、電源遮断状態から電源投入状態へ遷移する電源制御可能な回路ブロックの数をカウントする。
【００５９】
ここで、構成情報６０２の前に構成情報７０１を実行する場合には、構成情報６０１、構成情報７０１、構成情報６０２、構成情報６０３という順番で構成情報の処理が実行される。構成情報６０１から構成情報７０１へ処理を移行する時、電源制御可能な回路ブロック４１２、４１３、４１４の３つを電源遮断状態から電源投入状態へ遷移させる必要がある。また、構成情報７０１から構成情報６０２へ処理を移行する時、電源遮断状態から電源投入状態へ遷移させる電源制御可能な回路ブロックはない。また、構成情報６０２から構成情報６０３へ処理を移行する時、電源制御可能な回路ブロック４１４の１つを電源遮断状態から電源投入状態へ遷移させる必要がある。したがって、構成情報６０１、構成情報７０１、構成情報６０２、構成情報６０３という順番で構成情報の処理を実行すると、電源遮断状態から電源投入状態へ遷移する電源制御可能な回路ブロックの数は４となる。
【００６０】
同様に、構成情報６０３の前に構成情報７０１を実行する場合には、構成情報６０１、構成情報６０２、構成情報７０１、構成情報６０３という順番で構成情報の処理が実行される。そのため、電源遮断状態から電源投入状態へ遷移する電源制御可能な回路ブロックの数は３となる。また、同様に構成情報の実行順序の入れ替えを行わなかった場合には、電源遮断状態から電源投入状態へ遷移する電源制御可能な回路ブロックの数は５となる。
【００６１】
以上より、実行順序制御部４０４は、図３に示したステップＳ３０６にて、構成情報７０１を構成情報６０２の前に移動させることで、電源遮断状態から電源投入状態へ遷移する電源制御可能な回路ブロックの数が最小となると判定する。図１０は、実行順序制御部４０４が、図３に示したステップＳ３０７において更新した実行順序制御テーブルを示しており、構成情報の実行順は６０１、７０１、６０２、６０３の順となるように実行順序制御テーブルが更新される。情報処理装置１００は、図１０に示す実行順序制御テーブルに従った順序で構成情報の格納アドレスから構成情報を読み出して処理を実行することで、電源遮断状態から電源投入状態へ遷移する電源制御可能な回路ブロックの数を最小とすることが可能となる。これにより、構成情報に切り替えにより発生する回路ブロックのチャージ電力を削減して情報処理装置１００の消費電力を低減することができる。なお、構成情報の実行順序の入れ替え方法は、本実施形態に示した例に限定するものではなく、他の方法を用いても良い。
【００６２】
（本発明の他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、前述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００６３】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００６４】
１００：情報処理装置  １０１：ＣＰＵ  ４０１：バス制御部  ４０２：リソース判定部  ４０３：依存関係判定部  ４０４：実行順序制御部  ４０５：電源制御部  ４０６：ネットワーク回路（ルータ）  ４０７：演算要素  ４１１、４１２、４１３、４１４：電源制御可能な回路ブロック
【図１】
2014203172.tif 000003
【図２】
2014203172.tif 000004
【図３】
2014203172.tif 000005
【図４】
2014203172.tif 000006
【図５】
2014203172.tif 000007
【図６】
2014203172.tif 000008
【図７】
2014203172.tif 000009
【図８】
2014203172.tif 000010
【図９】
2014203172.tif 000011
【図１０】
2014203172.tif 000012