(57)【要約】【課題】動的再構成回路によって実行させるタスクの内容にかかわらず、バッテリの負荷の少ない再構成処理を実現する。【解決手段】動的再構成支援処理部１００では、動的再構成回路１１０−２におけるＰＥの書き換え処理を、図表１３０のように、次のタスクが開始されるまでのデッドライン時間に応じて分割する。そして、分割したＰＥをデッドライン時間までに順番に実行させることによって一度に実行される書き換え処理量を分散する。また、ＰＥの分割時に現在のバッテリ残量と、消費電力を参照して、ＰＥの書き換え処理に要する電力値のピーク変化がより平準化するように調整することもできる。【選択図】図１−１
2010079726.tif 000002
【特許請求の範囲】
【請求項１】
書き換えが可能な複数のプロセッサエレメント（以下、「ＰＥ」という）を備えた動的再構成回路を制御するコンピュータを、
前記動的再構成回路によって実行中のタスクの情報を取得する取得手段、
前記取得手段によって実行中のタスクの情報を取得すると、前記動的再構成回路によって実行させるタスク順序、各タスクの実行完了時間および利用ＰＥ数を含むスケジューリング情報が記録されたメモリから、前記実行中のタスクの実行完了時間を読み出す読み出し手段、
前記読み出し手段によって読み出された前記実行中のタスクの実行完了時間を用いて、前記動的再構成回路によって次のタスクが開始されるまでのデッドライン時間を算出するデッドライン算出手段、
前記スケジューリング情報に含まれた各タスクの利用ＰＥ数を参照して、前記デッドライン算出手段によって算出されたデッドライン時間までに書き換えを要する次のタスクのＰＥの数を特定する特定手段、
前記特定手段によって特定されたＰＥの数を前記デッドライン時間によって分割して単位時間当たりに書き換えをおこなうＰＥの数を算出する分割数算出手段、
前記動的再構成回路に、前記デッドライン時間までに書き換えを要する次のタスクのＰＥの書き換えを単位時間あたりに前記分割数算出手段によって算出された数ずつ実行させる実行手段、
として機能させることを特徴とする動的再構成支援プログラム。
【請求項２】
前記コンピュータを、さらに、
前記動的再構成回路を駆動するバッテリの残留電力の予測値を算出する予測値算出手段、
前記動的再構成回路の消費可能電力となるしきい値の時間変化を表すしきい値関数を算出するしきい値算出手段、として機能させ、
前記取得手段は、さらに、前記動的再構成回路から前記バッテリの残留電力情報と、当該動的再構成回路の消費電力情報とを取得し、
前記予測値算出手段は、前記取得手段によって取得された残留電力情報と前記スケジューリング情報とを用いて、前記バッテリの残留電力の前記デッドライン時間までの予測値を算出し、
前記しきい値算出手段は、前記予測値算出手段によって算出された予測値に所定の時間ごとに前記消費電力情報を代入してしきい値関数を算出し、
前記分割数算出手段は、前記特定手段によって特定された前記デッドライン時間までに書き換えを要する次のタスクのＰＥの数を、単位時間ごとに前記しきい値関数の値以下の消費電力によって書き換え可能な数に分割することを特徴とする請求項１に記載の動的再構成支援プログラム。
【請求項３】
前記しきい値算出手段は、前記所定の時間におけるバッテリの残留電力情報が示す電力値が前記予測値よりも高い場合、当該予測値を表す関数をしきい値関数の値とすることを特徴とする請求項２に記載の動的再構成支援プログラム。
【請求項４】
前記コンピュータを、さらに、
前記バッテリの温度変化予測値を算出する温度予測手段、
前記温度予測手段によって算出された温度変化予測値を用いて前記分割数算出手段によって算出されたＰＥの数を補正する分割数補正手段、として機能させ、
前記取得手段は、さらに、前記バッテリの温度情報と、前記バッテリの温度情報に対応した出力電力情報とを取得し、
前記温度予測手段は、前記取得手段によって取得された前記バッテリの温度情報の所定時間間隔の変化量を求め、前記バッテリの温度情報を当該変化量に比例させた温度を次回の所定時間間隔における前記バッテリの温度予測値として算出し、
前記分割数補正手段は、前記温度予測手段によって算出された温度予測値に対応した前記バッテリの出力電力情報と前記しきい値関数の値との比率に応じて前記分割数算出手段によって算出されたＰＥの数を補正することを特徴とする請求項２または３に記載の動的再構成支援プログラム。
【請求項５】
書き換えが可能な複数のプロセッサエレメント（以下、「ＰＥ」という）を備えた動的再構成回路を制御する動的再構成支援装置であって、
前記動的再構成回路によって実行中のタスクの情報を取得する取得手段と、
前記取得手段によって実行中のタスクの情報を取得すると、前記動的再構成回路によって実行させるタスク順序、各タスクの実行完了時間および利用ＰＥ数を含むスケジューリング情報が記録されたメモリから、前記実行中のタスクの実行完了時間を読み出す読み出し手段と、
前記読み出し手段によって読み出された前記実行中のタスクの実行完了時間を用いて、前記動的再構成回路によって次のタスクが開始されるまでのデッドライン時間を算出するデッドライン算出手段と、
前記スケジューリング情報に含まれた各タスクの利用ＰＥ数を参照して、前記デッドライン算出手段によって算出されたデッドライン時間までに書き換えを要する次のタスクのＰＥの数を特定する特定手段と、
前記特定手段によって特定されたＰＥの数を前記デッドライン時間によって分割して単位時間当たりに書き換えをおこなうＰＥの数を算出する分割数算出手段と、
前記動的再構成回路に、前記デッドライン時間までに書き換えを要する次のタスクのＰＥの書き換えを単位時間あたりに前記分割数算出手段によって算出された数ずつ実行させる実行手段と、
を備えることを特徴とする動的再構成支援装置。
【請求項６】
書き換えが可能な複数のプロセッサエレメント（以下、「ＰＥ」という）を備えた動的再構成回路を制御するコンピュータが、
前記動的再構成回路によって実行中のタスクの情報を取得する取得工程と、
前記取得工程によって実行中のタスクの情報を取得すると、前記動的再構成回路によって実行させるタスク順序、各タスクの実行完了時間および利用ＰＥ数を含むスケジューリング情報が記録されたメモリから、前記実行中のタスクの実行完了時間を読み出す読み出し工程と、
前記読み出し工程によって読み出された前記実行中のタスクの実行完了時間を用いて、前記動的再構成回路によって次のタスクが開始されるまでのデッドライン時間を算出するデッドライン算出工程と、
前記スケジューリング情報に含まれた各タスクの利用ＰＥ数を参照して、前記デッドライン算出工程によって算出されたデッドライン時間までに書き換えを要する次のタスクのＰＥの数を特定する特定工程と、
前記特定工程によって特定されたＰＥの数を前記デッドライン時間によって分割して単位時間当たりに書き換えをおこなうＰＥの数を算出する分割数算出工程と、
前記動的再構成回路に、前記デッドライン時間までに書き換えを要する次のタスクのＰＥの書き換えを単位時間あたりに前記分割数算出工程によって算出された数ずつ実行させる実行工程と、
を実行することを特徴とする動的再構成支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、動的再構成可能なハードウェアにおけるハードウェア構成切り換えを支援する動的再構成支援プログラム、動的再構成支援装置および動的再構成支援方法に関する。
【背景技術】
【０００２】
近年では、指定したタスクをソフトウェアによっても、ハードウェアによっても実行することが可能になっている。一般的に、同じ内容のタスクを実行する場合には、ソフトウェアによって実行させた方が、ハードウェアによって実行させた場合と比較して消費電力が大きくなってしまう傾向にある。一方、ハードウェアによって実行させる場合には、消費電力を削減することができるが、ソフトウェアによって実行させる場合のような汎用性はなく、専用処理用のハードウェアを用意する必要がある。そこで、専用のハードウェアを用意せずともハードウェアによってタスクを実行する利点を享受するために、タスク実行時にタスクに対応したハードウェアへ再構成可能な汎用性の高い動的再構成回路への注目が高まっている。
【０００３】
図２６は、従来の動的再構成回路のハードウェア書き換え処理を示す説明図である。図２６のように、動的再構成回路２６００−１においてハードウェアの書き換えをおこなうには、まず、複数個のＰＥ（Ｐｒｏｃｅｓｓｏｒ  Ｅｌｅｍｅｎｔ）を書き換え対象とするロジック２６０１（ここでは一例として暗号アルゴリズムであるＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄｓ））すべてを一度にマッピングする。その後、動的再構成回路２６００−１に用意されているＰＥのうち、ロジック２６０１を実行するために必要な数のＰＥが書き換えられ、ＡＥＳ実行用の動的再構成回路２６００−２に再構成される。
【０００４】
図２６の動的再構成回路２６００−２のように、ロジック２６０１を実現するＰＥのすべてを一度に書き換えるには、多大な書き換え処理時間と、消費電力とが発生してしまう。これでは低消費電力というハードウェアによるタスク実行の利点が失われてしまう。そこで、複数の動的再構成回路の書き換えを並列しておこなう、または、部分的に書き換えをおこなうといった解決策が提供されている。
【０００５】
図２７は、複数の動的再構成回路におけるハードウェア書き換え処理を示す説明図である。図２７に示した例では、複数の動的再構成回路２７００−１〜２７００−４によって順次タスクを実行する。たとえば、動的再構成回路２７００−１によって暗号アルゴリズムＡＥＳを実現するロジック２７０１が実行中の場合、そのバックグラウンドで、他の動的再構成回路２７２０〜２７４０では、次回またはそれ以降に実行予定のタスクに対応したロジックへとそれぞれＰＥの書き換え処理がおこなわれる。
【０００６】
具体的に説明すると、動的再構成回路２７００−２では、暗号アルゴリズムであるＣａｍｅｌｌｉａを実現するロジック２７０２のマッピングがおこなわれている。同様に、動的再構成回路２７００−３では暗号アルゴリズムであるＴＤＥＡを実現するロジック２７０３が、動的再構成回路２７００−４では暗号アルゴリズムＭＩＳＴＹ１を実現するロジック２７０４がそれぞれマッピングされる。このように、複数の動的再構成回路の書き換え処理を並列に実行することによって、書き換え処理による待機状態を抑制することできる。したがって、利用者にとって、従来は待機時間となっていた書き換え処理時間を表面的には隠蔽することができる。
【０００７】
また、上述したように、部分的な書き換え処理も、書き換え処理時間や、書き換え処理による消費電力の抑制に効果的である。具体的には、書き換え対象となるロジック（たとえば、図２６のロジック２６０１など）を分割して部分的にマッピングする。このとき、ロジックの分割はコンパイラの段階で実行されるため、書き換え処理の実行順序は静的に固定される。なお、このようにコンパイラの段階でロジックを分割するためには、事前に動的再構成回路によって実行するタスクに関するスケジューリング情報を取得しておく必要がある。そして、事前にスケジューリング情報を取得し、スケジュール通りにタスクが実行された場合には、部分的に書き換え処理が実現されるため、結果として一度に要する書き換え時間、消費電力ともに抑制される。
【０００８】
【特許文献１】特開２００３−２２３４７６号公報
【特許文献２】特開２００６−１６３８１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述したような対策案を講じた場合であっても、依然として動的再構成回路の再構成に伴うＰＥの書き換え処理には、多大な消費電力を要してしまう。また、通常処理時と比較して書き換え処理時の消費電力は著しく大きいため、電源への負荷も大きくなってしまう。したがって、バッテリ駆動を前提とする携帯機器では動的再構成回路が搭載されていても、積極的には再構成処理を活用させることができないという問題があった。
【００１０】
また、上述したようにバックグラウンドで複数の動的再構成回路の書き換え処理を実行する場合であっても、書き換え処理時間の隠蔽という効果はあるが、同時に複数の動的再構成回路の書き換え処理が実行されているため、依然として高消費電力になってしまうという問題は解決されない。実際に、より多くのリソース（ここでは、複数の再構成回路）を利用する場合ほど、再構成処理にかかる電力は大きくなることが実験的にも証明されている（たとえば、「動的リコンフィギャラブルプロセッサにおける電力分析」、西村隆、他３名、信学技報、ＲＥＣＯＮＦ２００７−４１（２００７−１１）、ｐ３１−３６）。
【００１１】
さらに、図２８は、ハードウェア書き換え処理時の消費電力を示す図表である。図表２８００では、図２７にて説明したように、動的再構成回路２７００−１にてタスク実行中に、バックグラウンドにて複数の動的再構成回路２７００−２〜２７００−４の書き換え処理が実行された場合の消費電力変化を表している。曲線２８０１では、時刻Ｔ１に、動的再構成回路２７００−１におけるタスク実行と、動的再構成回路２７００−２〜２７００−４における書き換え処理とが集中するため、一度に大きな電力が必要なる。そして、時刻Ｔ１における動作の消費電力によってシステム全体を駆動させるバッテリが著しい電圧降下を起こしてしまうという問題があった。
【００１２】
また、上述したように、部分的に書き換え処理をおこなった場合であっても、コンパイラの段階でロジックを分割しなければならず、さらに、事前に電力データの取得処理が必要となってしまう。したがって、部分的な書き換え処理は、ストリームデータの再生など限られた種類のアプリケーションに対してしか適用できないという問題があった。
【００１３】
さらに、図２９は、ハードウェアの部分書き換え処理における消費電力変化を示す図表である。図２９の図表２９００において、曲線２９０１は事前に予測した消費電力値のピーク変化を表しており、曲線２９０２は実際の消費電力値のピーク変化を表している。事前に消費電力値のピーク変化を予測していても、実際に処理を実行させると、使用環境や外部要因（他のフェイズの処理にかかる電力など）により電力負荷は変化し、曲線２９０２のように予測したピーク変化とは大きくかけ離れてしまうことが多い。また、曲線２９０２のように、予想以上にピーク電力が高くなると、スケジューリング時の計算とのずれを生み、表示電力値の揺らぎが大きくなってしまう。結果としてバッテリへの負荷が大きくなり、バッテリの寿命を縮めてしまうという問題があった。
【００１４】
この発明は、上述した従来技術による問題点を解消するため、動的再構成回路によって実行させるタスクの内容にかかわらず、バッテリの負荷の少ない再構成処理を実現する動的再構成支援プログラム、動的再構成支援装置および動的再構成支援方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上述した課題を解決し、目的を達成するため、この動的再構成支援プログラム、動的再構成支援装置および動的再構成支援方法は、書き換えが可能な複数のプロセッサエレメント（以下、「ＰＥ」という）を備えた動的再構成回路を制御するコンピュータが、前記動的再構成回路によって実行中のタスクの情報を取得する処理と、実行中のタスクの情報を取得すると、前記動的再構成回路によって実行させるタスク順序、各タスクの実行完了時間および利用ＰＥ数を含むスケジューリング情報が記録されたメモリから、前記実行中のタスクの実行完了時間を読み出す処理と、読み出された前記実行中のタスクの実行完了時間を用いて、前記動的再構成回路によって次のタスクが開始されるまでのデッドライン時間を算出する処理と、前記スケジューリング情報に含まれた各タスクの利用ＰＥ数を参照して、前記デッドライン算出工程によって算出されたデッドライン時間までに書き換えを要する次のタスクのＰＥの数を特定する処理と、特定されたＰＥの数を前記デッドライン時間によって分割して単位時間当たりに書き換えをおこなうＰＥの数を算出する処理と、前記動的再構成回路に、前記デッドライン時間までに書き換えを要する次のタスクのＰＥの書き換えを単位時間あたりに算出された数ずつ実行させる処理、含むことを要件とする。
【００１６】
この動的再構成支援プログラム、動的再構成支援装置および動的再構成支援方法によれば、ＰＥの書き換えを完了させるデッドライン時間中に書き換えを要するすべてのＰＥの書き換え処理を分散して実行させることができる。
【発明の効果】
【００１７】
この動的再構成支援プログラム、動的再構成支援装置および動的再構成支援方法によれば、動的再構成回路によって実行させるタスクの内容にかかわらず、バッテリの負荷の少ない再構成処理を実現することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１８】
以下に添付図面を参照して、この動的再構成支援プログラム、動的再構成支援装置および動的再構成支援方法の好適な実施の形態を詳細に説明する。この動的再構成支援プログラム、動的再構成支援装置および動的再構成支援方法では、動的再構成回路におけるＰＥの書き換え処理を、次のタスクが開始されるまでのデッドライン時間に応じて分割する。そして、分割したＰＥをデッドライン時間までに順番に実行させることによって一度に実行される書き換え処理量を分散する。また、ＰＥの分割時に現在のバッテリ残量と、消費電力を参照して、ＰＥの書き換え処理に要する電力値のピーク変化がより平準化するように調整することもできる。
【００１９】
（動的再構成支援処理の概要）
まず、本実施の形態にかかる動的再構成支援処理の概要について説明する。図１−１は、本実施の形態にかかる動的再構成支援処理の概要を示す説明図である。図１−１の動的再構成回路１１０−１は、タスクとして暗号化アルゴリズムであるＡＥＳロジックが実行されている状態を表している。そして、動的再構成回路１１０−１において、現在実行中のタスクが完了すると、動的再構成回路１１０−２のように、次に実行するタスクとして暗号化アルゴリズムであるＣａｍｅｌｌｉａロジックを実現するために必要なＰＥを書き換えが必要となる。
【００２０】
このようなＰＥの書き換えの際に、従来の動的再構成処理の手法を用いて、Ｃａｍｅｌｌｉａロジックを実現するためのＰＥをデッドライン時間までに一度に書き換えると、図表１２０の曲線１２１のように、局所的に消費電力が高くなってしまう。そこで、本実施の形態にかかる動的再構成支援処理部１００では、Ｃａｍｅｌｉａロジックの際に書き換えが必要となる全ＰＥを１〜４の４ブロックに分割し、各ブロックに対応するＰＥの書き換えを順番に実行させるように動的再構成回路１１０−２を制御する。
【００２１】
ここで、図１−２は、動的再構成支援処理部の機能的構成を示すブロック図である。動的再構成支援処理部１００は、動的再構成回路１１０を制御する機能部であり、基本的に機能部として、取得部１０１と、読み出し部１０２と、デッドライン算出部１０３と、特定部１０４と、分割数算出部１０５と、実行部１０６と、予測値算出部１０７と、しきい値算出部１０８とが含まれている。また、動的再構成支援処理部１００には、常時アクセス可能なメモリ１０９が接続されている。なお、拡張的な機能部として、破線で囲まれた温度予測部１１１と分割数補正部１１２とを用意してもよい。これらの機能部は、動的再構成回路１１０のバッテリ温度を動的再構成支援処理に反映させる場合に利用される（詳細は後述する）。
【００２２】
まず、取得部１０１は、動的再構成回路１１０によって実行中のタスクの情報を取得する。そして、読み出し部１０２は、取得部１０１によって実行中のタスクの情報の取得をトリガとして、メモリ１０９からスケジューリング情報を読み出す。スケジューリング情報とは、あらかじめ動的再構成回路１１０によって実行させるタスク順序、各タスクの実行完了時間および利用ＰＥ数とが関連付いた状態にて記録されたデータ群である。
【００２３】
デッドライン算出部１０３は、読み出し部１０２によって読み出されたスケジューリング情報のうち、実行中のタスクの実行完了時間を用いて動的再構成回路１１０によって次のタスクが開始されるまでのデッドライン時間を算出する。なお、デッドライン算出部１０３にて算出されたデッドライン時間は、メモリ１０９や任意の記憶領域に記憶される。
【００２４】
特定部１０４は、スケジューリング情報の各タスクの利用ＰＥ数を参照して、デッドライン算出部１０３によって算出されたデッドライン時間までに書き換えを要するＰＥの数を特定する。なお、特定部１０４にて特定されたＰＥの数は、メモリ１０９や任意の記憶領域に記憶される。
【００２５】
分割数算出部１０５は、特定部１０４によって特定されたＰＥの数をデッドライン時間によって分割して単位時間当たりに書き換えをおこなうＰＥの数を算出する。たとえば、デッドライン時間が４［ｍｓｅｃ］であり、特定されたＰＥの数が２４［個］であった場合、ＰＥの数をデッドライン時間で分割する。したがって、この場合、単位時間１［ｍｓｅｃ］あたりの書き換えＰＥの数として６［個］が算出される。なお、分割数算出部１０５にて算出された分割数は、メモリ１０９や任意の記憶領域に記憶される。
【００２６】
実行部１０６は、動的再構成回路１１０に、デッドライン時間までに書き換えを要する次のタスクのＰＥの書き換えを単位時間あたりに分割数算出部１０５によって算出された数ずつ実行させる。すなわち、動的再構成回路１１０−１が実行中であれば、次のタスクを実行する動的再構成回路１１０−２のＰＥを単位時間ごとに分割されたＰＥの数ずつ書き換えるように動的再構成回路１１０−２を制御する。上述した分割例であれば、動的再構成回路１１０−２を制御して、単位時間ごとに３つのＰＥを書き換える処理をデッドライン時間まで実行させることになる。
【００２７】
以上説明した処理によって動的再構成回路１１０−２は、デッドライン時間までに、次に実行されるタスク用のＰＥへと書き換えられる。このとき、書き換えを要するＰＥは、１〜４のブロックに分割され、単位時間ごとに順次、各ブロック単位のＰＥの書き換え処理が実行される。したがって、図１−１の図表１３０の曲線１３１のように、消費電力の変動が平準化される。再構成処理にかかる消費電力値のピークは、従来の技術の場合にはＰ１値まで上昇してしまったが、本実施の形態にかかる動的再構成支援処理部１００の場合にはＰ２値にまで抑制することができる。結果として動的再構成回路１１０を駆動させるバッテリへの負荷を低減させるため、バッテリを長持ちさせるこがでる。
【００２８】
また、本実施の形態では、上述のような、単純に書き換えを要するすべてのＰＥをデッドライン時間分割する処理に加え、さらに動的再構成回路１１０の消費電力とバッテリ残量に関する情報を取得して、消費電力の変動の少ない再構成処理を実現することができる（図１−１に示した動的再構成回路１１０−２においてブロック１〜４に含まれるＰＥの数が違うのはこちらの処理を用いたためである）。
【００２９】
このような処理の場合、動的再構成支援処理部１００に、予測値算出部１０７と、しきい値算出部１０８と追加する。予測値算出部１０７は、動的再構成回路１１０を駆動するバッテリの残留電力の予測値を算出する。また、しきい値算出部１０８は、動的再構成回路１１０の消費可能電力となるしきい値の時間変化を表すしきい値関数を算出する。この処理の場合には、上述した取得部１０１でも、さらに、動的再構成回路１１０からバッテリの残留電力情報と、動的再構成回路１１０の消費電力情報とを取得するように動作させる。
【００３０】
具体的には、予測値算出部１０７では、取得部１０１によって取得された残留電力情報とメモリ１０９から読み出したスケジューリング情報とを用いて、バッテリの残留電力のデッドライン時間までの予測値を算出する。そして、しきい値算出部１０８は、予測値算出部１０７によって算出された予測値に所定の時間ごとに前記消費電力情報を代入してしきい値関数を算出する。
【００３１】
分割数算出部１０５では、しきい値関数が算出された場合には、特定されたＰＥの数を、単位時間ごとにしきい値関数の値以下の消費電力によって書き換え可能な数に分割する。すなわち、予測値算出部１０７と、しきい値算出部１０８とを利用しない場合は、単純に書き換えを要するすべてのＰＥをデッドライン時間で等分割したが、ここでは、所定の時間ごとに算出したしきい値関数の値よりも小さな消費電力でＰＥの書き換えが完了するように、ＰＥ数の分割数を調整する。
【００３２】
ここで、図２は、動的再構成支援処理によるマッピング例を示す説明図である。図２のように、動的再構成回路１１０では、デッドライン時間までに２５個のＰＥの書き換えを完了させなければならない。上段の図表２１０では、従来通り２５個のＰＥを一度に書き換えた場合の消費電力変化を曲線２１１によって表している。一方、下段の図表２２０では、本実施の形態にかかる動的再構成支援処理部１００によって、しきい値関数を算出し、このしきい値関数を参照して、単位時間あたりに書き換えるＰＥの数を分割して実行させた場合の消費電力を曲線２２１，２２２によって表している。
【００３３】
したがって、図表２１０のＰＥの分割と比較して図表２２０のＰＥの分割数は、時間ごとにバラバラである。このとき、曲線２２１は、動的再構成回路１１０を動作させるＣＰＵの消費電力変化を表している。当然のことながら、ＣＰＵの消費電力は書き換え処理をおこなうＰＥ数に依存するため、分割されたＰＥの数に比例した変化をみせる。
【００３４】
しかしながら、動的再構成回路１１０を含むシステムでは、ＣＰＵ自体の処理以外の要因によって消費電力が変化する。図表２２０の曲線２２２は、単位時間あたりに書き換えるＰＥの数を分割して実行させた場合の動的再構成回路１１０を含むシステム全体の消費電力変化を表している。動的再構成支援処理部１００では、実際の消費電力情報を取得してしきい値関数を算出し、その値に応じてＰＥ数を分割しているため、システム全体の消費電力値としてみた場合に、曲線２２２のように消費電力の変動を最小限に抑えることができる。
【００３５】
また、上述した基本的な構成にあらたに、動的再構成回路１１０から、動的再構成回路システムを駆動させるバッテリの温度情報を取得する機能を追加して、バッテリの温度変化が大きい場合に対応した動的再構成支援処理を実現することができる。一般的にバッテリの消費電力はバッテリ自体の温度変化に大きく影響される。したがって、バッテリの温度変化が激しくなるような使用環境や、温度変化が大きい種類のバッテリを利用する場合には、これらの機能部を用意して、温度変化に対応した動的再構成支援処理を実現することができる。
【００３６】
まず、温度予測部１１１は、動的再構成回路１１０に搭載されているバッテリの温度変化予測値を算出する。そして、分割数補正部１１２は、温度予測部１１１によって算出された温度変化予測値を用いて分割数算出部１０５によって算出されたＰＥの数を補正する。
【００３７】
具体的に説明すると、まず、温度予測部１１１と分割数補正部１１２を利用する場合、取得部１０１では、上述した処理に加えて、動的再構成回路１１０のバッテリの温度情報と、バッテリの温度情報に対応した出力電力情報とを取得する。そして、温度予測部１１１は、取得部１０１によって取得されたバッテリの温度情報の所定時間間隔の変化量を求め、さらに、バッテリの温度情報を当該変化量に比例させた温度を次回の所定時間間隔におけるバッテリの温度予測値として算出する。
【００３８】
そして、分割数補正部１１２は、温度予測部１１１によって算出された温度予測値に対応したバッテリの出力電力情報としきい値関数の値との比率に応じて分割数算出部１０５によって算出されたＰＥの数を補正する。分割数補正部１１２による補正例としてたとえば、バッテリの出力電力情報としきい値関数の値との比率によってバッテリの出力電力情報が大きいと判断された場合には、分割数算出部１０５によって算出されたＰＥの数を増加させ、この比率によってバッテリの出力電力情報が小さい判断された場合には、前記分割数算出部１０５によって算出されたＰＥの数を減少させる。
【００３９】
以上説明したように、本実施の形態にかかる動的再構成支援処理の場合、再構成をおこなう際に単位時間あたりに書き換えるＰＥの数を分散させることによって、局所的な消費電力の上昇を抑えることができる。また、しきい値関数を参照してシステム全体の消費電力値の変動を平準化するため、バッテリへの負荷を減らし、効率的にバッテリを利用することができる。
【００４０】
また、動的再構成回路１１０の場合、同時に処理がおこなわれる回路面積が大きいほど消費電力が大きくなることが知られている（「動的リコンフィギャラブルプロセッサＭｕＣＣＲＡの低消費電力化」、平川啓一郎、他４名、信学技報、ＲＥＣＯＮＦ２００７−４１（２００７−１１）、ｐ６１−６６）。特に、制御部分の回路面積が小さく、回路の大部分を再構成可能なＰＥ群によって構成されている動的再構成回路の場合、ＰＥ切り替え時の処理面積は消費電力値に直結する。したがって、本実施の形態にかかる動的再構成支援処理を適用することによって同時に再構成をおこなうＰＥの数が減少されるため、結果として同時に処理がおこなわれる回路面積も縮小される。結果として、システム全体の再構成完了までも単位時間あたりの消費電力を抑えられるという利点をあわせもつことになる。
【００４１】
以下には、上述した動的再構成支援処理部１００を動的再構成支援装置として実現する際の具体的な２つの実施の形態について説明する。
【００４２】
＜実施の形態１＞
実施の形態１は、図１−２にて説明した動的再構成支援処理部１００の機能をそのまま実現する実施の形態である。
【００４３】
（動的再構成支援装置のハードウェア構成）
まず、動的再構成支援装置のハードウェア構成について説明する。ここでは、汎用の情報処理装置を用いて、動的再構成支援装置３００を実現している。図３は、動的再構成支援装置のハードウェア構成を示すブロック図である。図３において、動的再構成支援装置３００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、磁気ディスクドライブ３０４と、磁気ディスク３０５と、光ディスクドライブ３０６と、光ディスク３０７と、ディスプレイ３０８と、通信Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０９と、キーボード３１０と、マウス３１１と、スキャナ３１２と、プリンタ３１３と、を備えている。また、各構成部はバス３２０によってそれぞれ接続されている。
【００４４】
なお、図３では動的再構成支援装置３００のハードウェア構成のみを独立して説明しているが、動的再構成支援装置３００自体は、基本として動的再構成回路を制御する装置であるため、実際には、バス３２０を介して制御対象となる動的再構成回路と接続されているが、ここでは省略する。
【００４５】
ここで、ＣＰＵ３０１は、動的再構成支援装置３００の全体の制御を司る。ＲＯＭ３０２は、ブートプログラムや、動的再構成支援プログラムなどのプログラムを記憶している。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される。磁気ディスクドライブ３０４は、ＣＰＵ３０１の制御にしたがって磁気ディスク３０５に対するデータのリード／ライトを制御する。磁気ディスク３０５は、磁気ディスクドライブ３０４の制御で書き込まれたデータを記憶する。
【００４６】
光ディスクドライブ３０６は、ＣＰＵ３０１の制御にしたがって光ディスク３０７に対するデータのリード／ライトを制御する。光ディスク３０７は、光ディスクドライブ３０６の制御で書き込まれたデータを記憶したり、光ディスク３０７に記憶されたデータをコンピュータに読み取らせたりする。
【００４７】
ディスプレイ３０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ３０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００４８】
通信Ｉ／Ｆ３０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク３１４に接続され、このネットワーク３１４を介して他の装置に接続される。そして、通信Ｉ／Ｆ３０９は、ネットワーク３１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。通信Ｉ／Ｆ３０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００４９】
キーボード３１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス３１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００５０】
スキャナ３１２は、画像を光学的に読み取り、動的再構成支援装置３００内に画像データを取り込む。なお、スキャナ３１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ３１３は、画像データや文書データを印刷する。プリンタ３１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００５１】
なお、動的再構成支援装置３００は、携帯端末などバッテリ駆動が想定される機器への搭載が最も効果的である。したがって、上述したディスプレイ３０８、通信Ｉ／Ｆ３０９、キーボード３１０、マウス３１１、スキャナ３１２およびプリンタ３１３は、様々な例を挙げたが、携帯端末への搭載に適したものが選択されることが好ましい。また、携帯機器への搭載が、困難であったり、バッテリへの負荷が大きくなってしまったりするような場合は、上述したような入出力にかかるハードウェア（ディスプレイ３０８、通信Ｉ／Ｆ３０９、キーボード３１０、マウス３１１、スキャナ３１２およびプリンタ３１３）の搭載は必須ではない。
【００５２】
（動的再構成支援装置の機能的構成）
次に、動的再構成支援装置３００の機能的構成について説明する。図４は、実施の形態１における動的再構成支援装置の機能的構成を示すブロック図である。図４の構成は、図１−２にて説明した動的再構成支援処理部１００の実現例である。動的再構成支援装置３００は、しきい値曲線算出部４１０と、タスク分割数算出部４２０とを含んでいる。そして、これら制御部４１０，４２０は、たとえば、上述したＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３によって実現される。
【００５３】
このしきい値曲線算出部４１０によって消費電力値の判断基準となるしきい値曲線が算出される。そして、タスク分割数算出部４２０は、デッドライン時間までに書き換えを要するすべてのＰＥを、単位時間ごとに実行に適した数に分割する。ここで説明している実行に適した数の判断は、しきい値曲線算出部４１０によって算出されたしきい値曲線に基づいておこなわれる。したがって以下に詳細な手順について説明する。
【００５４】
（しきい値曲線算出処理）
まず、しきい値曲線算出部４１０には、スケジューリング情報４０１と、消費電力情報４０２と、バッテリ情報４０３とが入力される。図５−１は、スケジューリング情報の一例を示す図表であり、図５−２は、消費電力情報の一例を示す図表であり、図５−３は、バッテリ情報の一例を示す図表である。
【００５５】
スケジューリング情報４０１としては、図５−１の図表５１０のようにタスク数に応じて、実行順序ごとの各タスク名とデッドライン時間（ここでは、タスクごとの実行完了時間）が入力される。また、消費電力情報４０２は、動的再構成支援装置３００の制御対象となる動的再構成回路から取得される情報であり、図５−２の図表５２０のように、動的再構成支援装置３００が求めたタイミングの各時刻（たとえば、ｔ０〜ｔ３）のリアルタイムな消費電力情報が入力される。そして、バッテリ情報４０３は、動的再構成回路を駆動させるバッテリから取得され、図５−３の図表５３０ように、バッテリ容量、バッテリ残量（残留電力）および放電電流値が入力される。
【００５６】
そして、しきい値曲線算出部４１０は、デッドライン時間までのしきい値電力値４１１と、しきい値曲線式４１２とを算出する。ここで図６は、しきい値曲線の算出処理を示す説明図である。まず、図６を用いて、しきい値曲線の算出処理について詳しく説明する。図６の上段の図表６１０は、時刻０〜ｔｓまでをデッドタイム時間とした場合のしきい値曲線の算出例を表している。また、下段の図表６２０は、消費電力変動予測と実際の消費電力の変動を表している。
【００５７】
しきい値曲線算出部４１０では、まず、入力されたバッテリ情報とスケジューリング情報とから書き換え開始時０からタスクデッドライン時間となるｔｓまで予測電力値を算出する。そして、所定の時間ｔ０〜ｔ４ごとに実際のバッテリ残量と予測電力値とを比較する。したがって、曲線６１０におけるプロット６１１からは、次のｔ０まで、初期値を用いて予測電力値を表す曲線が描かれる（０＜ｔ＜ｔ０：初期関数（予測値関数）をそのまま適用）。
【００５８】
そして、ｔ＝０において、バッテリ残量と予測電力値とが比較される。ｔ０では、バッテリ残量が予測値よりも高いために電力に余裕があると判断される。したがって、予測値を修正するため、現在の消費電力情報を用いた再計算をおこない、正しいしきい値曲線を算出する。したがって、プロット６１２からは、次のｔ１まで再計算されたしきい値曲線が描かれる（ｔ０＜ｔ＜ｔ１：ｔ０の再計算結果に応じたしきい値曲線）。
【００５９】
次に、ｔ＝１においても同様に、バッテリ残量と予測電力値とが比較される。ｔ１では、前回（ｔ＝０）に引き続いてバッテリ残量が予測値よりも高く、電力に余裕があるため、しきい値曲線を再計算することなく、プロット６１３からは、次のｔ２まで、ｔ０において算出したしきい値曲線が継続して描かれる（ｔ１＜ｔ＜ｔ２：ｔ０の再計算結果に応じたしきい値曲線）。
【００６０】
さらに、ｔ＝２においても、まずはｔ＝１の際の処理と同様に、バッテリ残量と予測電力値とが比較される。ｔ＝２では、バッテリ残量が予測値よりも低いために電力に余裕がないと判断される。したがって、予測値を修正するために現在の消費電力情報を用いた再計算をおこない、正しいしきい値曲線を算出する。したがって、プロット６１４からは、次のｔ３まで再計算されたしきい値曲線が描かれる（ｔ２＜ｔ＜ｔ３：ｔ２の再計算結果に応じたしきい値曲線）。
【００６１】
同様に、ｔ＝３，４でも、バッテリ残量と予測電力値とが比較され、それぞれ、残留電力に余裕があるか否かに応じて予測値の再計算をおこなう。なお、図表６２０の曲線６２１は予測値を表している。そして、曲線６２２は、実際の消費電力を表している。上述したように所定の時間ごとに計算された予測値の連続値がしきい値曲線となる。
【００６２】
このとき、残留電力に余裕がある場合には、一度に書き換えるＰＥの数を増やし、残留電力に余裕がない場合には、一度に書き換えるＰＥの数を減らすようにしきい値を修正する。詳しくは後述するが、一度に書き換え処理を実行するＰＥの数は、上述した処理によって算出されたしきい値曲線を基準に設定される。したがって、残留電力に応じたしきい値曲線の算出が、曲線６２３のように平準化したピーク電力の変動を実現する要因となる。
【００６３】
次に、しきい値曲線の算出処理の具体的な手順について説明する。図７は、しきい値曲線の算出処理の手順を示すフローチャートである。図７のフローチャートにおいて、まず、メモリに現時刻の電力値を保存し、しきい値を読み出す（ステップＳ７０１）。このステップＳ７０１にて読み出される現在時刻の電力値Ｗｔｈは、バッテリ残留電力値Ｗ０がそのまま採用される。
【００６４】
そして、しきい値曲線を求めるために設定した任意のフィティング関数ｆ（ｔ）によって求められた現在の残留電力の予測値が、電力値の下限０から上限（実際のバッテリ残量Ｗｔｈ）の間に含まれているか否かを判断する（ステップＳ７０２）。ここでは、フィティング関数ｆ（ｔ）として、下記（１）式を利用するが、バッテリの特性や、動作テストの結果を参照して他の関数を利用してもよい。ここでは、バッテリ残量という値が減衰していく傾向の高いものの変動予測が前提となっているため、フィティング関数として減衰関数が適している場合が多い。
【００６５】
【数１】
2010079726.tif 000003
【００６６】
ステップＳ７０２において、残留電力の予測値が、電力値の下限０から上限となる実際のバッテリ残量Ｗｔｈの間に含まれている場合（ステップＳ７０２：Ｙｅｓ）、残留電力が予測値よりも高いことを意味し、電力に余裕があると判断される。したがって、後段の処理でＰＥの分割数の切り上げるために、切り上げフラグＫを立てるとともに、履歴フラグＨ’を立てる（ステップＳ７０３）。一方、残留電力の予測値が、電力値の下限０から上限となる実際のバッテリ残量Ｗｔｈの間に含まれていない場合（ステップＳ７０２：Ｎｏ）、残留電力が予測値よりも低いことを意味し、電力に余裕がないと判断される。したがって、後段の処理でＰＥの分割数の切りさげるために、切り上げフラグＫ、履歴フラグＨ’とを０に設定し（ステップＳ７０４）、次の処理に移行する。
【００６７】
なお、図８−１は、切り上げフラグの設定基準を示す図表である。また、図８−２は、レジスタに保存されているフラグ値を示す図表である。しきい値曲線算出部４１０から接続可能なレジスタには図８−２の図表８２０のようにＥｎｄフラグ、切り上げフラグＫ、履歴フラグＨを記録するテーブルが用意されている。
【００６８】
この中で、切り上げフラグＫは、図８−１の図表８１０に示すように、しきい値曲線を再計算するか否かの判断と、後述するタスク分割数算出部４２０におけるＰＥの分割数の設定に利用される。また、図表８１０にステップＳ７０３およびステップＳ７０４において設定された切り上げフラグＫは、前回評価時と現時点の評価内容（ｕｐｐｅｒもしくはｌｏｗｅｒ）を表している。ここで評価内容について説明する。例を挙げた、ｕｐｐｅｒとは、電力的に余裕があると評価され上方修正をおこなったことを表している。反対に、ｌｏｗｅｒとは電力的に余裕がないと評価され下方修正をおこなったことを表している。なお、電力的に余裕がある、なしは、しきい値曲線による予測電力値と実際のバッテリ残量を比較して、実残留量が予測値残留量よりも高い場合を電力的に余裕があると評価している。
【００６９】
図７の説明に戻り、次に、消費電力情報から、動的再構成回路の現在の消費電力値を取得し（ステップＳ７０５）、切り上げフラグＫ＝１かつ履歴フラグＨ＝１か否かを判断する（ステップＳ７０６）。ここで、図８−３は、各時刻の電力値を示す図表である。ステップＳ７０５で取得された値は、図表８３０のように記録される。また、ステップＳ７０６において、履歴フラグＨは、履歴フラグＨ’の前回処理を表すフラグである。すなわち履歴フラグＨ’がｔ＝ｎの時に設定された場合、履歴フラグＨはｔ＝ｎ−１の時に設定された値を表す。
【００７０】
したがって、当然初回の場合には前回のフラグ設定処理が存在しないため、履歴フラグＨには、初期値として０が設定されている。そして、履歴フラグＨ＝１の場合は、前回評価時（ｔ＝ｎ−１）において電力に余裕があったか否かを表している。また、Ｋ＝１は現時点でも電力に余裕があることを表している。すなわち、切り上げフラグＫ＝１かつ履歴フラグＨ＝１であれば、しきい値曲線を再計算する必要がないことを意味する。
【００７１】
ステップＳ７０６において、切り上げフラグＫ＝１かつ履歴フラグＨ＝１ではない場合（ステップＳ７０６：Ｎｏ）、しきい値曲線における関数ｆを再計算し（ステップＳ７０７）、さらに、バッテリ情報からしきい値電力値として現在のバッテリ残量Ｗｔｈを再設定する（ステップＳ７０８）。ここで、図８−４は、バッテリ残量の取得例を示す図表である。図表８４０に示したように、ステップＳ７０８で取得されるバッテリ残量Ｗｔｈは、時刻ｔであればバッテリ残量Ｗｔｈ＝Ｗｔ、時刻ｔ＋１であればバッテリ残量Ｗｔｈ＝Ｗｔ＋１となる。一方、切り上げフラグＫ＝１かつ履歴フラグＨ＝１である場合（ステップＳ７０６：Ｙｅｓ）、ステップＳ７０７の再計算をおこなうことなく、ステップＳ７０８の処理に移行する。
【００７２】
その後、次の時刻ｔｎの処理に移行するため、履歴フラグＨをステップＳ７０３またはステップＳ７０４にて設定された履歴フラグＨ’の値に更新する（ステップＳ７０９）。最後に現在のしきい値曲線の値とデットライン時間までの残留電力の予測値を保存してＥｎｄフラグを立てることにより（ステップＳ７１０）、一連の処理を終了する。また、以上の処理によって、デッドライン時間までのしきい値電力値４１１と、しきい値曲線式４１２とが出力される。
【００７３】
（タスク分割数算出処理）
次に、タスク分割数算出処理について説明する。まず、図４に戻って説明すると、しきい値曲線算出部４１０からは、デッドライン時間までのしきい値電力値４１１と、しきい値曲線式４１２とが出力される。タスク分割数算出部４２０は、デッドライン時間までのしきい値電力値４１１と、しきい値曲線４１２と、書き換え対象ブロック（ＰＥ）数４０４とが入力され、単位時間に書き換え（マッピング）を実行するＰＥの数を算出する。なお、書き換え対象ブロック数４０４は、スケジューリング情報４０１に含まれているタスクに関する情報から取得することもできるし、外部から取得してもよい。
【００７４】
図９は、タスク分割数算出処理の手順を示すフローチャートである。図９のフローチャートにおいて、まず、タスク分割数算出部４２０では、初期値として設定してある初期分割数に設定された分割数Ｎが、最低必要分割数から最高分割数との間に収まっているか否かを判断する（ステップＳ９０１）。初期分割数は、下記（２）式によって求められる。また、最低必要分割数は、ＮB−Ｎ’B：現時点で残されている書き込みブロック（ＰＥ）の数ＮBから、前回設定された分割数Ｎ’Bを引いた値を、ｔD−ｔ：デッドライン時間まで残り時間で除したものである。すなわち、１回に少なくともこの数のＰＥを書き換えないとデッドライン時間までに書き換えが終了しないことを意味する。
【００７５】
【数２】
2010079726.tif 000004
【００７６】
一方、最高分割数は、現時点で残されている書き込みブロック（ＰＥ）の数ＮBを現時点での分割数ｔDによって除した値である。このステップＳ９０１において、分割数Ｎが、最低必要分割数から最高分割数との間に収まっていない場合（ステップＳ９０１：Ｎｏ）、最低必要分割数以下であれば、最低分割数が分割数Ｎに設定される。また、分割数Ｎが最高分割数よりも大きい場合には、最高分割数が分割数Ｎとして設定されるため、そのまま一連の処理を終了する。
【００７７】
一方、分割数Ｎが、最低必要分割数から最高分割数との間に収まっている場合（ステップＳ９０１：Ｙｅｓ）、分割数Ｎをさらに最適な値に設定するため、分割数Ｎを再計算する処理に移行する。まず、現時点の残留電力値を読み込み（ステップＳ９０２）、しきい値電力値比Ｒを計算する（ステップＳ９０３）。しきい値曲線式４１２から求めた現時点の残留電力の予測値ｆ（ｔ）と実際の電力値Ｗｔとの比を表す値である。
【００７８】
なお、残留電力の予測値ｆ（ｔ）は、下記（３）〜（５）式のようにあらかじめ与えられた関数群の中から、実際の電力値の変化に応じて選択された関数によって求められる。そして、図６の図表６１０のしきい値曲線の場合、０＜ｔ≦ｔ１の間は下記（３）式の関数が適用され、ｔ１＜ｔ≦ｔ２の間は下記（４）式の関数が適用され、ｔ２＜ｔ≦ｔ３の間は下記（５）式の関数が適用される。
【００７９】
【数３】
2010079726.tif 000005
【００８０】
したがって、次の処理では現在の分割数Ｎにしきい値電力値比Ｒを掛け合わせることによって、実際の電力値に相応しい分割数Ｎ’を算出する（ステップＳ９０４）。その後、しきい値曲線算出部４１０において、各時刻ｔ０〜ｔ４…に設定された切り上げフラグＫのビットが立っているか否かを判断する（ステップＳ９０５）。ステップＳ９０５では、切り上げフラグＫの値に応じて、分割数Ｎの端数を切り上げるか、切り下げるかを判断する。
【００８１】
上述した図８−１の図表８１０に示したように、切り上げフラグＫの値によって、今回と前回とのそれぞれの判断において電力値に余裕があったか否かを判断することができる。したがって、ステップＳ９０５において、切り上げフラグＫのビットが立っていた場合（ステップＳ９０５：Ｙｅｓ）、分割数Ｎの端数を切り上げ（ステップＳ９０６）、切り上げフラグＫのビットが立っていなかった場合（ステップＳ９０５：Ｎｏ）、分割数Ｎの端数を切り下げて（ステップＳ９０７）、ステップＳ９０８の処理に移行する。
【００８２】
そして、ステップＳ９０６またはステップＳ９０７によって切り上げ、切り下げ処理を施された分割数Ｎ’を再計算した分割数Ｎとして更新する（ステップＳ９０８）。最後に、図８−２にて説明したＥｎｄフラグのビットを立てて、割り込みコマンドを発行して（ステップＳ９０９）、一連の処理を終了する。
【００８３】
以上説明したようなタスク分割数算出処理によって算出された時刻ｔごとの分割数Ｎが、ＰＥ分割数４２１として出力される。動的再構成支援装置３００では、動的再構成回路１１０に対して、時刻ｔごとにＰＥ分割数４２１に応じた数のＰＥの書き換えを実行する。結果として、動的再構成回路１１０によって実行されるＰＥの書き換えは、動的再構成支援装置３００によって算出された電力消費のピーク値変動の少ない処理となるため、バッテリへの負荷を最小限に抑えることができる。
【００８４】
（実施の形態１における動的再構成回路の構成例）
次に、上述した動的再構成支援装置３００の機能を含んだ動的再構成回路の構成例について説明する。図１０〜図１３は、動的再構成回路の構成例を示すブロック図である。以下の構成例その１〜その４は、ＨＷ（ハードウェア）の構成の差異はあるが、いずれも動的再構成を実施可能な回路であり、さらに、本実施の形態にかかる動的再構成支援処理を実現することができる。
【００８５】
＜構成例その１＞
まず、構成例その１では、図１０のように動的再構成回路にＳＷによって動的再構成支援処理の機能を実現する例を表している。図１０の動的再構成回路１０００は、書き換え可能なＰＥ群を搭載した再構成ＨＷ１００１と、プロセッサ１００２と、バッテリ情報取得器１００３と、消費電力情報取得器１００４と、メモリ１００５とを備えている。そして各ＨＷ１００１〜１００５は、ＰＬＢ（Ｐｒｏｓｅｓｓｏｒ  Ｌｏｃａｌ  Ｂｕｓ）１００６によって接続されている。
【００８６】
動的再構成回路１０００では、プロセッサ１００２に、図１−２にて説明した機能部を実現する動的再構成支援プログラムが搭載されている。したがって、動的再構成回路１０００動作時に、動的再構成支援プログラムを実行させることによって効率的なＰＥ書き換えを実現することができる。また、ＳＷによって動的再構成支援処理の機能を実現しているため、仕様変更などが発生しても容易に改変できる。したがって、機能の柔軟性を求められる実装パターンに適している。
【００８７】
＜構成例その２＞
図１１では、独立したＨＷによって動的再構成支援処理の機能を実現する例を表している。動的再構成回路１１００は、動的再構成支援処理を実現するための専用ＨＷとして、再構成マネージャ１１０１が用意されている。再構成マネージャ１１０１には、図４にて説明した動的再構成支援装置３００の各機能部（４１０，４２０）が実現されている。構成例１の動的再構成回路１０００と異なり、動的再構成回路１１００は、独立したＨＷによって動的再構成支援処理を実行する。したがって、構成例１と比較してより高速な処理を実現するため、処理速度が優先されるような実装パターンに適している。
【００８８】
＜構成例その３＞
図１２では、再構成ＨＷ内に実装されたＨＷによって動的再構成支援処理を実現する例を表している。動的再構成回路１２００は、構成例２の動的再構成回路１１００にて利用されていた再構成マネージャ１１０１が相当のＨＷを再構成ＨＷ１００１内部に搭載した再構成ＨＷ１２０１を用いて動的再構成支援処理の機能を実現する。構成例１と比較してより高速な処理を実現するとともに、他のＨＷ手法を採用することによって柔軟な運用が可能となる。したがって、柔軟性と高速性との双方が求められる実装パターンに適している。
【００８９】
＜構成例その４＞
図１３では、ＳＷによる実装をおこなう際に、さらに、バッテリ情報や消費電力情報などの電力情報をプロセッサに伝達するための専用バスを備えた例を表している。基本的な構成は構成例１の動的再構成回路１０００と同じであるが、プロセッサ１００２、バッテリ情報取得器１００３および消費電力情報取得器１００４との間のデータ送受を専門におこなうための電力情報伝達専用バス１３０１が用意されている。動的再構成支援処理を実行するための専用のトラフィックを持つことでさらなる高速化を可能にする。動的再構成回路１３００において、動的再構成支援処理以外の複数の処理をおこなう場合であっても、ＰＬＢ１００６の混雑が影響しないため、動的再構成支援処理を優先させたいような実装パターンに適している。
【００９０】
なお、上述した各構成例において、バッテリ情報取得器１００３は、たとえば、バッテリ電力を監視する電源ＬＳＩを介してバッテリ情報４０３を取得することができる。また、消費電力情報取得器１００４は、たとえば、再構成ＨＷ１００１内部に、ゲート出力の遷移回数を測定する測定器を設け、この測定器の測定値から消費電力情報４０２を取得することができる。いずれの場合も、バッテリ情報取得器１００３と、消費電力情報取得器１００４とについては、公知の技術によって実現可能であるため、それぞれ公知の他の技術を適用してもよい。
【００９１】
（実施例）
次に、実施例として、動的再構成支援装置３００によって、具体的な数値を扱った処理例について説明する。以下に説明する処理例は、携帯機器に実装される暗号方式を実行中に切り替える際の例である。
【００９２】
図１４は、しきい値曲線算出に利用する関数群を示す図表である。ここでは、図表１４００に示したｆ０（ｔ）、ｆ１（ｔ）、ｆ２（ｔ）（式（３）〜（５））を用いるが、初期関数としてはｆ０（ｔ）を利用する。また、現在の残留電力に応じて初期設定されたしきい値は２．０［ｍＷｈ］、デッドライン時間は１０［ｍｉｎ］となっている。また、書き換えを要するＰＥは２５個である。したがって、ＰＥの初期分割数は２５／１０＝２．５［個］となる。
【００９３】
そして、図１５は、しきい値曲線の算出例を示す図表である。図１５の図表１５００のように、時刻０から初期関数としてはｆ０（ｔ）を利用してしきい値曲線を算出し、最初に設定されたｔ＝１の時刻になると、残留電力の予測値と実際のバッテリ残量とを比較する。ｆ０（１）＝１．０９となり、バッテリ残量は１．５［ｍＷｈ］であった。したがって、残留電力に余裕があると判断され、ｆ１（ｔ）を用いてしきい値曲線を再計算する。
【００９４】
また、ｔ＝１における比較結果からＰＥの分割数を再計算する。すなわち実際のバッテリ残量「１．５」／算出結果「１．０９」＝１．３８となる。この値は、実際に書き換えたいＰＥの分割数と初期分割数との比率、すなわち、図９にて説明したしきい値電力値比Ｒを表している（実際に書き換えたいＰＥは初期分割数の１．３８倍である）。したがって、初期分割数２．５に１．３８を掛けると３．４５となり切り上げて（図９参照）、ｔ＝１における分割数は４となる。
【００９５】
同様に、ｔ＝２の時刻になると、先ほど再計算によって設定されたｆ１（２）における残留電力の予測値と実際のバッテリ残量とを比較する。ここで、ｆ１（２）＝０．９８となり、バッテリ残量は０．５［ｍＷｈ］であった。したがって、残留電力に余裕がないと判断され、ｆ２（ｔ）を用いてしきい値曲線を再計算する。このときも、ｔ＝２における比較結果からＰＥの分割数を再計算する。すなわち実際のバッテリ残量「０．５」／算出結果「０．９８」＝０．５（しきい値電力値比Ｒ）。ここで求められた値０．５とは、実際の残留電力に適した書き換えＰＥの数は、現在設定されている初期分割数のＰＥの数の０．５倍であることを意味している。
【００９６】
また、ｔ＝２では、デッドタイム時間までにすべてのＰＥの書き換えが終わるように、各時刻ｔにおける最低分割数を求め、この最低分割数以上の分割数となるように設定する。最低分割数は、残りのＰＥの数２３［個］を残りのデッドライン時間９［ｍｉｎ］で分割することによって求められる。計算の結果、最低分割数は２．５［個］となり、分割数を設定する際には、２．５と比較して設定する。ｔ＝１における分割数は４であり、実際に書き換えたい分割数と、現在の分割数との比率は０．５であったため、分割数は２．０となり先ほど算出した最低数と比較して、Ｋ＝０より切り下げとなるため（図９参照）、ｔ＝２における分割数は２となる。以上説明した処理を、同様にｔ＝３，４，…，９のそれぞれの時間においても実行することによって、消費電力の変動が少なくなるようにＰＥを分割した再構成処理を実現することができる。
【００９７】
以上説明したように、実施の形態１によれば、ＰＥの書き換えを完了させるデッドライン時間中に書き換えを要するすべてのＰＥの書き換え処理を分散して実行させる。したがって、動的再構成回路によって実行させるタスクの内容にかかわらず、消費電力値のピークを低いレベルに抑えることができる。さらに、レベルを抑えた消費電力ピークも、変動が少なくなるようにＰＥの書き換え数を調整するため、バッテリの負荷を最小限に抑えた再構成処理を実現することができる。
【００９８】
＜実施の形態２＞
実施の形態２は、上述した実施の形態１における動的再構成支援処理をおこなう際に、さらに、動的再構成回路を駆動させるバッテリの温度特性を考慮して単位時間当たりに書き換えＰＥ数を算出する（図１にて説明した温度予測部１１１と分割数補正部１１２とを用意した動的再構成支援処理）。したがって、実施の形態２における動的再構成支援処理は、実施の形態１の構成に、バッテリの温度情報を取得するための機器と、取得した温度情報からバッテリの温度変化を表す温度予測情報を算出する機能部と、タスク分割数算出部４２０（図４参照）によって算出されたＰＥ分割数４２１を温度予測温度情報に応じて補正する機能部とを追加することによって実現される。
【００９９】
ここで、まず、バッテリ温度と、動的再構成におけるマッピングとの関係について説明する。図１６は、動的再構成支援処理によるマッピングとバッテリ温度との関係を示す説明図である。図１６でも図２と同様に動的再構成回路１１０は、デッドライン時間までに所定の個数のＰＥの書き換えを完了させなければならない。
【０１００】
そして、上段の図表１６１０は、実施の形態１の動的再構成処理を適用させたＰＥ分割を表している。また、図表１６１０において、曲線１６１１は、動的再構成回路１１０を動作させるＣＰＵの消費電力変化を表している。また、曲線１６１２は、単位時間あたりに書き換えるＰＥの数を分割して実行させた場合の動的再構成回路１１０を含むシステム全体の消費電力変化を表している。そして、曲線１６１３は、バッテリの温度変化を表している。
【０１０１】
実施の形態１の動的再構成支援処理を適用させた場合には、図２の曲線２２２のようにシステム全体の消費電力の変化は平準化されるが、曲線１６１２には、局所的な消費電力の落ち込みが生じてしまっている。これは、バッテリの温度特性に伴う出力変化が影響しているためである。ここで、バッテリの温度特性について説明する。図１７は、バッテリの温度特性を示す図表である。図表１７００は、ある同種類のバッテリの定電力連続放出をバッテリ温度ごとに示している。一般的に、バッテリ温度が高いほど出力電力が高出力になる傾向がある。たとえば、図表１７００の温度特性の例の場合、バッテリ温度が０℃から４５℃に変化すると、出力電力が１．２倍に増加している。そして、この出力電力は、バッテリの出力持続時間に直接影響を及ぼしてしまう。
【０１０２】
ここで、図１８−１〜図１８−３は、出力電力と持続時間との関係を示す図表である。図１８−１では、１００ｍＷ放電時のバッテリの持続時間を表しており、図１８−２では、２５０ｍＷ放電時のバッテリの持続時間を表しており、図１８−３では、１０００ｍＷ放電時のバッテリの持続時間を表している。１０００ｍＷ放電時と２５０ｍＷ放電時とのように出力電力が２．５倍差の場合、バッテリの継続時間は、１０００ｍＷ放電時は約６０ｍｉｎに対して５０ｍＷ放電時は約６００ｍｉｎになる。また、１０００ｍＷ放電時と１００ｍＷ放電時とのように出力電力が１０倍差の場合、バッテリの継続時間は、１０００ｍＷ放電時は約６０ｍｉｎに対して１００ｍＷ放電時は約１８００ｍｉｎになる。
【０１０３】
このように、出力電力が２．５倍になると継続時間が１／１０に短縮されてしまい、出力電力が１０倍になると、継続時間は１／３０に短縮されてしまうことから明らかなように、バッテリに温度変化が生じる場合には、出力電力にまで影響を及ぼしてしまう。さらに、出力電力の変化は、バッテリの持続時間に大きく影響するため、バッテリ温度変化が生じている場合には、温度変化に伴う出力変化を考慮してＰＥを分割しなければならない。図１６に示した図表１６２０は、温度変化を考慮した動的再構成支援処理を適用している。したがって、実施の形態２では、このような事態に対応するため、バッテリの温度が落ち込んだ範囲Ｒの時間帯に書き換えをおこなうＰＥの数を削減することによってバッテリへの負荷を低減させる。
【０１０４】
実施の形態２にかかる動的再構成支援処理として、具体的には、スケジューリング情報と、バッテリ容量と、消費電力情報とに加えバッテリの温度情報を取得して、所定の時間ごとのＰＥの分割数を算出する。手順としては、まず、実施の形態１と同様にバッテリ消費電力予測曲線を算出する。その後、さらに、バッテリの温度変化を表す温度予測曲線を算出し、これら２つの曲線をあわせ、バッテリ残量予測曲線を計算する。そして、このバッテリ予測曲線に基づいて書き換えをおこなうＰＥ数を計算すればよい。
【０１０５】
ここで、図１９は、温度予測曲線による補正前のしきい値曲線と分割数を示す説明図であり、図２０は、温度予測曲線による補正後のしきい値曲線と分割数を示す説明図である。図１９の図表１９００は、実施の形態１にかかる動的再構成支援処理によって生成されたしきい値曲線１９０１を表している。このときのバッテリの変化予測は、温度予測曲線１９０２によって表されている。
【０１０６】
図表１９００の下段は、単位時間（ｔ）当たりのＰＥの分割数を表しており、曲線１９０４は、しきい値曲線１９０１から求められた消費電力予測である。そして、曲線１９０４は実際の消費電力を表し、曲線１９０５は、実際の温度変化を表している。図表１９００の場合、範囲１９１０にて生じている温度降下が考慮されていないため、下段に示した範囲１９２０の時間では書き換えを実行するＰＥ数が過剰になってしまっている。
【０１０７】
実施の形態２にかかる動的再構成支援処理では、上述した温度予測曲線１９０２を用いてしきい値曲線１９０１を補正することによって、単位時間当たりのＰＥの分割数を修正する。したがって、図２０の図表２０００のように、温度予測曲線１９０２を用いてしきい値曲線１９０１を補正した補正しきい値曲線２００１を用いてＰＥを分割すればよい。バッテリの温度に応じてＰＥ数を補正するため、バッテリへの負荷が軽減され、図１９の範囲１９２０のような局所的なバッテリ温度の落ち込みも解消される。したがって、曲線２００５のようにバッテリ温度変化も平準化される。
【０１０８】
次に、実施の形態２にかかる動的再構成支援処理を実現するための動的再構成支援装置について説明する。なお、ハードウェア構成は、実施の形態１にかかる動的再構成支援装置３００と同様の構成によって実現されるため説明を省略する。以下も、実施の形態１と重複する部分については適宜説明を省略する。
【０１０９】
（実施の形態２における動的再構成支援装置の機能的構成）
実施の形態１と異なる部分として、まずは、実施の形態２における動的再構成支援装置の機能的構成について説明する。図２１は、実施の形態２における動的再構成支援装置の機能的構成を示すブロック図である。図２１のように、実施の形態２における動的再構成支援装置２１００は、図４にて説明した動的再構成支援装置３００に、あらたに、温度予測部２１１０と、分割数補正部２１２０とを追加する。
【０１１０】
したがって、再構成支援装置２１００のしきい値曲線算出部４１０およびタスク分割数算出部４２０では、実施の形態１と同様の処理がおこなわれる。そして、温度予測部２１１０によって生成された温度予測情報２１０２と、ＰＥ分割数４２１とを用いて、分割数補正部２１２０によって補正したＰＥ分割数２１０３が生成される。そこで、以下に温度予測部２１１０と、分割数補正部２１２０との処理について説明する。
【０１１１】
（温度予測曲線の生成）
まず、温度予測部２１１０は、バッテリの現在の温度情報２１０１を取得して、温度情報２１０１の所定時間間隔の変化量を求め、温度情報２１０１をこの変化量に比例させた温度を次回の所定時間間隔におけるバッテリの温度予測情報２１０２として生成する。ここで、図２２および図２３は、温度予測曲線の生成例を示す図表である。図２２の図表２２００のように、温度予測部２１１０は、温度情報２１０１を連続して取得して得られる温度変化曲線２２０１の変曲点を抽出して温度傾向を予測する。このとき、温度予測部２１１０が取得する温度情報２１０１は、化学変化によって生じる現象であることから、温度変化の影響がバッテリの出力に影響するまでに時間がかかる。したがって、現在取得した時間間隔（たとえばｔ０〜ｔ１）の温度情報２１０１の変化から、次回の時間間隔（たとえばｔ１〜ｔ２）の温度変化を予測する。
【０１１２】
たとえば、ｔ０〜ｔ１の温度変化曲線２２０１に着目すると、変曲点１を境に温度が下降しているため、次回のｔ１〜ｔ２では電位降下を起こすと予想する。同様に、ｔ１〜ｔ２の温度変化曲線２２０１に着目すると、変曲点２を境に温度が上昇しているため、次回のｔ２〜ｔ３では電位上昇を起こすと予想する。このように、現在時刻を含む時間間隔に取得した温度情報２１０１から次回の時間間隔の温度変化の傾向を予測すると、図表２３００の曲線２３０１のような温度予測曲線が生成される。
【０１１３】
（分割数補正処理の手順）
次に、分割数補正部２１２０における分割数補正処理の手順について説明する。図２４は、分割数補正処理の手順を示すフローチャートである。図２４のフローチャートは、ＰＥ分割数４２１の生成をトリガに補正処理が開始される。まず、現在の分割数Ｎ（ＰＥ分割数４２１）が、最小分割数であるか否かを判断する（ステップＳ２４０１）。ここで、分割数が、最小分割数である場合（ステップＳ２４０１：Ｙｅｓ）、補正の必要はないためそのまま処理を終了してＰＥ分割数４２１が補正後のＰＥ分割数２１０３として出力される。
【０１１４】
ステップ２４０１において、現在の分割数が、最小分割数でない場合（ステップＳ２４０１：Ｎｏ）、時刻ｔ＋１の温度予測値から予測出力電力値Ｗｐを取得する（ステップＳ２４０２）。なお、予測出力電力値Ｗｐを取得するには、図１７のようなバッテリに応じた温度特性情報を用意しておき、温度予測値に対応する温度を参照すればよい。
【０１１５】
次に、予測出力電力値Ｗｐを現在の電力値Ｗで除して電力比Ｗｒを算出する（ステップＳ２４０３）。ここで求まる電力比Ｗｒが負の値、すなわちＷ＞Ｗｐとなれば電力が低下するためバッテリの負荷を軽減させなければならない。したがって、次に、電力比Ｗｒに、現在の分割数Ｎを掛けて分割数Ｎ’を算出する（ステップＳ２４０４）。以下のステップＳ２４０５〜ステップＳ２４０９の処理は、図９にて説明したステップＳ９０５〜ステップＳ９０９と同様の処理となる。
【０１１６】
このように、ステップＳ２４０３にて算出した電力比Ｗｒが負の値ならば、分割数ＮよりもＰＥ数の少ない分割数Ｎ’に補正されるため、バッテリの負荷が軽減する。反対に、電力比Ｗｒが正の値ならば、分割数ＮよりもＰＥ数の多い分割数Ｎ’に補正されるため、バッテリの負荷が増加する。そして、ステップＳ２４０８にて更新された分割数Ｎが、補正後のＰＥ分割数２１０３として出力される。
【０１１７】
以上説明したように、実施の形態２にかかる動的再構成支援装置２１００では、バッテリの温度変化に応じてＰＥ数を補正するため、バッテリに必要以上の負荷をかけるような処理を防ぐことができる。結果として消費電力が平準化されバッテリをより効率的に利用させることができる。
【０１１８】
なお、実施の形態２にかかる動的再構成支援装置２１００の機能を含んだ動的再構成回路を構成する場合には、図１０〜図１３にて説明した動的再構成回路の構成例に、バッテリの温度情報を取得する機能部を追加すればよい。
【０１１９】
（実施例）
次に、実施例として、動的再構成支援装置２１００によって、具体的な数値を扱った処理例について説明する。以下に説明する処理例は、携帯機器に実装される暗号方式を実行中に切り替える際の例である。そして、図２５は、温度変化に応じたしきい値曲線の算出例を示す図表である。図表２５００は、図１５にて説明した実施の形態１にかかる動的再構成支援装置３００を用いたしきい値曲線の算出例を示す図表である。
【０１２０】
図２５の図表２５００は、図表１５００のように実施の形態１にかかる動的再構成支援装置３００を用いてＰＥ数が決定した後、バッテリ温度が４０℃→から０℃へ変化してしまった場合のＰＥ数の補正例を表している。バッテリ温度が４０℃→から０℃へ変化すると出力電力も１４０ｍｗから１１５ｍｗへと変化してしまう。したがって、時間間隔０〜１の温度変化（０℃への降下）から、次の時間間隔１〜２の出力電力が低くなるように補正してＰＥ数を４から３に減少させた。具体的には、電力比Ｗｒ＝１１５／１４０＝０．８２となるため、分割数Ｎ＝４×０．８２＝３．２８、すなわち、３に修正されている。
【０１２１】
以上説明したように、実施の形態２によれば、バッテリの温度が上昇すれば、ＰＥ数を削減させ、バッテリの温度が下降すればＰＥ数を増加させることによって、バッテリの温度変化をよる消費電力を考慮してＰＥを分散して実行させる。したがって、温度特性による出力電力の差が著しいバッテリであっても、消費電力値のピークを低いレベルに抑え、より効率的に利用することができる。
【０１２２】
なお、上述の各実施の形態で説明した動的再構成支援方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、このプログラムは、インターネットなどのネットワークを介して配布することが可能な媒体であってもよい。
【０１２３】
また、本実施の形態で説明した動的再構成支援処理部１００や動的再構成支援装置３００は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、たとえば、上述した動的再構成支援処理部１００や動的再構成支援装置３００の機能（図１−２の取得部１０１〜しきい値算出部１０８または図４のしきい値曲線算出部４１０、タスク分割数算出部４２０）をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、動的再構成支援処理部１００や、動的再構成支援装置３００を製造することができる。
【０１２４】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１２５】
（付記１）書き換えが可能な複数のプロセッサエレメント（以下、「ＰＥ」という）を備えた動的再構成回路を制御するコンピュータを、
前記動的再構成回路によって実行中のタスクの情報を取得する取得手段、
前記取得手段によって実行中のタスクの情報を取得すると、前記動的再構成回路によって実行させるタスク順序、各タスクの実行完了時間および利用ＰＥ数を含むスケジューリング情報が記録されたメモリから、前記実行中のタスクの実行完了時間を読み出す読み出し手段、
前記読み出し手段によって読み出された前記実行中のタスクの実行完了時間を用いて、前記動的再構成回路によって次のタスクが開始されるまでのデッドライン時間を算出するデッドライン算出手段、
前記スケジューリング情報に含まれた各タスクの利用ＰＥ数を参照して、前記デッドライン算出手段によって算出されたデッドライン時間までに書き換えを要する次のタスクのＰＥの数を特定する特定手段、
前記特定手段によって特定されたＰＥの数を前記デッドライン時間によって分割して単位時間当たりに書き換えをおこなうＰＥの数を算出する分割数算出手段、
前記動的再構成回路に、前記デッドライン時間までに書き換えを要する次のタスクのＰＥの書き換えを単位時間あたり前記分割数算出手段によって算出された数ずつ実行させる実行手段、
として機能させることを特徴とする動的再構成支援プログラム。
【０１２６】
（付記２）前記コンピュータを、さらに、
前記動的再構成回路を駆動するバッテリの残留電力の予測値を算出する予測値算出手段、
前記動的再構成回路の消費可能電力となるしきい値の時間変化を表すしきい値関数を算出するしきい値算出手段、として機能させ、
前記取得手段は、さらに、前記動的再構成回路から前記バッテリの残留電力情報と、当該動的再構成回路の消費電力情報とを取得し、
前記予測値算出手段は、前記取得手段によって取得された残留電力情報と前記スケジューリング情報とを用いて、前記バッテリの残留電力の前記デッドライン時間までの予測値を算出し、
前記しきい値算出手段は、前記予測値算出手段によって算出された予測値に所定の時間ごとに前記消費電力情報を代入してしきい値関数を算出し、
前記分割数算出手段は、前記特定手段によって特定された前記デッドライン時間までに書き換えを要する次のタスクのＰＥの数を、単位時間ごとに前記しきい値関数の値以下の消費電力によって書き換え可能な数に分割することを特徴とする付記１に記載の動的再構成支援プログラム。
【０１２７】
（付記３）前記予測値算出手段は、任意の関数を用いて前記予測値を算出し、
前記しきい値算出手段は、前記所定の時間ごとに前記消費電力情報を前記任意の関数に代入することによって前記しきい値関数を算出することを特徴とする付記２に記載の動的再構成支援プログラム。
【０１２８】
（付記４）前記予測値算出手段は、任意の減衰関数を用いて前記予測値を算出し、
前記しきい値算出手段は、前記所定の時間ごとに前記消費電力情報を前記任意の減衰関数に代入することによって前記しきい値関数を算出することを特徴とする付記２に記載の動的再構成支援プログラム。
【０１２９】
（付記５）前記しきい値算出手段は、前記所定の時間におけるバッテリの残留電力情報が示す電力値が前記予測値よりも高い場合、当該予測値を表す関数をしきい値関数の値とすることを特徴とする付記１〜４のいずれか１つに記載の動的再構成支援プログラム。
【０１３０】
（付記６）前記コンピュータを、さらに、
前記バッテリの温度変化予測値を算出する温度予測手段、
前記温度予測手段によって算出された温度変化予測値を用いて前記分割数算出手段によって算出されたＰＥの数を補正する分割数補正手段、として機能させ、
前記取得手段は、さらに、前記バッテリの温度情報を取得し、
前記温度予測手段は、前記取得手段によって取得された前記バッテリの温度情報の所定時間間隔の変化量を求め、前記バッテリの温度情報を当該変化量に比例させた温度を次回の所定時間間隔における前記バッテリの温度予測値として算出し、
前記分割数補正手段は、前記温度予測手段によって算出された温度予測値に対応した前記バッテリの出力電力と、前記しきい値関数の値との比較結果に応じて前記分割数算出手段によって算出されたＰＥの数を補正することを特徴とする付記２〜５のいずれか一つに記載の動的再構成支援プログラム。
【０１３１】
（付記７）前記分割数補正手段は、前記比率によって前記バッテリの出力電力情報が大きいと判断された場合には、前記分割数算出手段によって算出されたＰＥの数を増加させ、前記比率によって前記バッテリの出力電力情報が小さい判断された場合には、前記分割数算出手段によって算出されたＰＥの数を減少させることを特徴とする付記６に記載の動的再構成支援プログラム。
【０１３２】
（付記８）書き換えが可能な複数のプロセッサエレメント（以下、「ＰＥ」という）を備えた動的再構成回路を制御する動的再構成支援装置であって、
前記動的再構成回路によって実行中のタスクの情報を取得する取得手段と、
前記取得手段によって実行中のタスクの情報を取得すると、前記動的再構成回路によって実行させるタスク順序、各タスクの実行完了時間および利用ＰＥ数を含むスケジューリング情報が記録されたメモリから、前記実行中のタスクの実行完了時間を読み出す読み出し手段と、
前記読み出し手段によって読み出された前記実行中のタスクの実行完了時間を用いて、前記動的再構成回路によって次のタスクが開始されるまでのデッドライン時間を算出するデッドライン算出手段と、
前記スケジューリング情報に含まれた各タスクの利用ＰＥ数を参照して、前記デッドライン算出手段によって算出されたデッドライン時間までに書き換えを要する次のタスクのＰＥの数を特定する特定手段と、
前記特定手段によって特定されたＰＥの数を前記デッドライン時間によって分割して単位時間当たりに書き換えをおこなうＰＥの数を算出する分割数算出手段と、
前記動的再構成回路に、前記デッドライン時間までに書き換えを要する次のタスクのＰＥの書き換えを単位時間あたり前記分割数算出手段によって算出された数ずつ実行させる実行手段と、
を備えることを特徴とする動的再構成支援装置。
【０１３３】
（付記９）書き換えが可能な複数のプロセッサエレメント（以下、「ＰＥ」という）を備えた動的再構成回路を制御するコンピュータが、
前記動的再構成回路によって実行中のタスクの情報を取得する取得工程と、
前記取得工程によって実行中のタスクの情報を取得すると、前記動的再構成回路によって実行させるタスク順序、各タスクの実行完了時間および利用ＰＥ数を含むスケジューリング情報が記録されたメモリから、前記実行中のタスクの実行完了時間を読み出す読み出し工程と、
前記読み出し工程によって読み出された前記実行中のタスクの実行完了時間を用いて、前記動的再構成回路によって次のタスクが開始されるまでのデッドライン時間を算出するデッドライン算出工程と、
前記スケジューリング情報に含まれた各タスクの利用ＰＥ数を参照して、前記デッドライン算出工程によって算出されたデッドライン時間までに書き換えを要する次のタスクのＰＥの数を特定する特定工程と、
前記特定工程によって特定されたＰＥの数を前記デッドライン時間によって分割して単位時間当たりに書き換えをおこなうＰＥの数を算出する分割数算出工程と、
前記動的再構成回路に、前記デッドライン時間までに書き換えを要する次のタスクのＰＥの書き換えを単位時間あたり前記分割数算出工程によって算出された数ずつ実行させる実行工程と、
を実行することを特徴とする動的再構成支援方法。
【図面の簡単な説明】
【０１３４】
【図１−１】本実施の形態にかかる動的再構成支援処理の概要を示す説明図である。
【図１−２】動的再構成支援処理部の機能的構成を示すブロック図である。
【図２】動的再構成支援処理によるマッピング例を示す説明図である。
【図３】動的再構成支援装置のハードウェア構成を示すブロック図である。
【図４】実施の形態１における動的再構成支援装置の機能的構成を示すブロック図である。
【図５−１】スケジューリング情報の一例を示す図表である。
【図５−２】消費電力情報の一例を示す図表である。
【図５−３】バッテリ情報の一例を示す図表である。
【図６】しきい値曲線の算出処理を示す説明図である。
【図７】しきい値曲線の算出処理の手順を示すフローチャートである。
【図８−１】切り上げフラグの設定基準を示す図表である。
【図８−２】レジスタに保存されているフラグ値を示す図表である。
【図８−３】各時刻の電力値を示す図表である。
【図８−４】バッテリ残量の取得例を示す図表である。
【図９】タスク分割数算出処理の手順を示すフローチャートである。
【図１０】動的再構成回路の構成例（その１）を示すブロック図である。
【図１１】動的再構成回路の構成例（その２）を示すブロック図である。
【図１２】動的再構成回路の構成例（その３）を示すブロック図である。
【図１３】動的再構成回路の構成例（その４）を示すブロック図である。
【図１４】しきい値曲線算出に利用する関数群を示す図表である。
【図１５】しきい値曲線の算出例を示す図表である。
【図１６】動的再構成支援処理によるマッピングとバッテリ温度との関係を示す説明図である。
【図１７】バッテリの温度特性を示す図表である。
【図１８−１】出力電力と持続時間との関係を示す図表（１００ｍＷ放電時）である。
【図１８−２】出力電力と持続時間との関係を示す図表（２５０ｍＷ放電時）である。
【図１８−３】出力電力と持続時間との関係を示す図表（１０００ｍＷ放電時）である。
【図１９】温度予測曲線による補正前のしきい値曲線と分割数を示す説明図である。
【図２０】温度予測曲線による補正後のしきい値曲線と分割数を示す説明図である。
【図２１】実施の形態２における動的再構成支援装置の機能的構成を示すブロック図である。
【図２２】温度予測曲線の生成例を示す図表（その１）である。
【図２３】温度予測曲線の生成例を示す図表（その２）である。
【図２４】分割数補正処理の手順を示すフローチャートである。
【図２５】温度変化に応じたしきい値曲線の算出例を示す図表である。
【図２６】従来の動的再構成回路のハードウェア書き換え処理を示す説明図である。
【図２７】複数の動的再構成回路におけるハードウェア書き換え処理を示す説明図である。
【図２８】ハードウェア書き換え処理時の消費電力を示す図表である。
【図２９】ハードウェアの部分書き換え処理における消費電力変化を示す図表である。
【符号の説明】
【０１３５】
１００  動的再構成支援処理部
１０１  取得部
１０２  読み出し部
１０３  デッドライン算出部
１０４  特定部
１０５  分割数算出部
１０６  実行部
１０７  予測値算出部
１０８  しきい値算出部
１０９  メモリ
１１０（１１０−１，１１０−２）  動的再構成回路
１１１  温度予測部
１１２  分割数補正部
３００  動的再構成支援装置
４１０  しきい値曲線算出部
４２０  タスク分割数算出部
１０００  動的再構成回路
１００１、１２０１  再構成ＨＷ（ハードウェア）
１００２  プロセッサ
１００３  バッテリ情報取得器
１００４  消費電力情報取得器
１００５  メモリ
１００６  ＰＬＢ（Ｐｒｏｓｅｓｓｏｒ  Ｌｏｃａｌ  Ｂｕｓ）
１１０１  再構成マネージャ
【図１−１】
2010079726.tif 000006
【図１−２】
2010079726.tif 000007
【図２】
2010079726.tif 000008
【図３】
2010079726.tif 000009
【図４】
2010079726.tif 000010
【図５−１】
2010079726.tif 000011
【図５−２】
2010079726.tif 000012
【図５−３】
2010079726.tif 000013
【図６】
2010079726.tif 000014
【図７】
2010079726.tif 000015
【図８−１】
2010079726.tif 000016
【図８−２】
2010079726.tif 000017
【図８−３】
2010079726.tif 000018
【図８−４】
2010079726.tif 000019
【図９】
2010079726.tif 000020
【図１０】
2010079726.tif 000021
【図１１】
2010079726.tif 000022
【図１２】
2010079726.tif 000023
【図１３】
2010079726.tif 000024
【図１４】
2010079726.tif 000025
【図１５】
2010079726.tif 000026
【図１６】
2010079726.tif 000027
【図１７】
2010079726.tif 000028
【図１８−１】
2010079726.tif 000029
【図１８−２】
2010079726.tif 000030
【図１８−３】
2010079726.tif 000031
【図１９】
2010079726.tif 000032
【図２０】
2010079726.tif 000033
【図２１】
2010079726.tif 000034
【図２２】
2010079726.tif 000035
【図２３】
2010079726.tif 000036
【図２４】
2010079726.tif 000037
【図２５】
2010079726.tif 000038
【図２６】
2010079726.tif 000039
【図２７】
2010079726.tif 000040
【図２８】
2010079726.tif 000041
【図２９】
2010079726.tif 000042