(57)【要約】【課題】各処理エレメントの再構成に係る構成情報の書き換え時のウェイクアップ時間に起因する処理のストールを抑止し、パフォーマンスの低下の防止を実現する。【解決手段】データ処理部１０１における複数の処理エレメントの再構成に係る複数の構成情報を記憶する構成情報記憶部１０２と、構成情報記憶部１０２からデータ処理部１０１に読み込む構成情報を予測する構成情報予測部１０５と、当該予測に基づいて構成情報記憶部１０２から構成情報を読み出す構成情報読み出し部１０３と、当該読み出された構成情報に基づいて前記各処理エレメントにおける電源の制御を行う電源制御部１０７と、構成情報読み出し部１０３により読み出された構成情報に基づいて、電源制御部１０７による制御により活性化された処理エレメントに対して接続関係を指示する接続情報指示部１０４を備えるようにする。【選択図】図１
2008097463.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理エレメントを具備し、当該複数の処理エレメントを再構成して入力されたデータの処理を行うデータ処理部と、
前記データ処理部における前記複数の処理エレメントの再構成に係る複数の構成情報を記憶する構成情報記憶部と、
前記構成情報記憶部から前記データ処理部に読み込む構成情報を予測する構成情報予測部と、
前記構成情報予測部による予測に基づいて前記構成情報記憶部から構成情報を読み出す構成情報読み出し部と、
前記構成情報読み出し部により読み出された構成情報に基づいて前記複数の処理エレメントにおける電源の先行投入を指示する電源投入情報指示部と、
前記電源投入情報指示部の指示に基づいて前記複数の処理エレメントにおける電源の制御を行う電源制御部と、
前記構成情報読み出し部により読み出された構成情報に基づいて、前記電源制御部による制御により活性化された処理エレメントに対して接続関係を指示する接続情報指示部と
を有することを特徴とするデータ処理装置。
【請求項２】
前記構成情報予測部は、前記構成情報の書き換え発生の履歴に基づいて、前記複数の構成情報を同時に前記電源の投入に反映させた予測を行うことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記構成情報予測部は、前記電源の投入、遮断に伴うストール発生の履歴に応じて、電源投入、遮断のタイミングを自動的に調節する予測を行うことを特徴とする請求項１に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の処理エレメントを具備し、当該複数の処理エレメントを再構成して入力されたデータの処理を行うデータ処理部を備えたデータ処理装置に関する。
【背景技術】
【０００２】
近年、ＣＭＯＳ型半導体装置からなる半導体集積回路の微細化に伴い、ＣＭＯＳ型半導体装置のゲート電極から生じるリーク電流の増加が設計・製造の両面で大きな問題となっている。
【０００３】
特に、１００ｎｍ以下の微細なプロセスでは、半導体集積回路の総消費電力においてリーク電流の占める割合が増加の一途を辿り、今後、この電力消費を抑止していくことが製造後に確実に動作する半導体集積回路を設計していく上で重要な課題となっている。
【０００４】
例えば、半導体装置の微細化に従ってゲート酸化膜の薄膜化が進む中、リーク電流を減らすためには電源電圧を低電圧化していく必要があるが、半導体集積回路の高速性を確保するためにゲート電極に掛ける電圧の低電圧化が進まない。この結果、電源電圧の低電圧化よりも、電源電圧に対応するリーク電流の急激な増加傾向が顕著になってきている。また、更に、この微細化につれてスケーリングしてきた電源電圧が受ける電源電圧の降下の要因も大きな問題になりつつある。
【０００５】
このようなリーク電流の増加に対し、半導体集積回路のプロセス開発面では、ポリシリコン（ゲート電極）とゲートチャネルを遮断する誘電物質の素材として、シリコン酸化膜の代わりに、高誘電率で膜厚を厚くすることが可能な別の素材を開発しようとしている。しかし、まだまだ、広く一般に利用されるほど実用化には至っていない。
【０００６】
一方、半導体集積回路の設計面では、１００ｎｍ以下のプロセスで起こる消費電力削減の課題に応えられるように、従来から幾つかの新規技術を導入して対応してきた。例えば、リーク電流を削減する直接的な代表的な方法として、１３０ｎｍプロセスの世代から比較的よく使われるようになってきた技術で、マルチＶｔｈセルを利用したレイアウト手法がある。このマルチＶｔｈセルを利用したレイアウト手法とは、スピードは遅いがリーク電流の少ないゲート電圧閾値の高いセルと、スピードは速いがリーク電流の多いゲート電圧閾値の低いセルを半導体集積回路を構成する同一チップ内に混在させるというものである。
【０００７】
すなわち、タイミングに余裕のあるパスのセルを高い閾値の低速セルへマッピングし、クリティカルパスのセルを低い閾値の高速セルへマッピングさせることにより、タイミングを満たしつつ、チップ全体での消費電力の削減を達成するものである。なお、同じ設計面での消費電力削減の施策として、クロックゲーティングや回路量の削減などの方法が実施されている。
【０００８】
これらの方法は、動作時に消費する電力を削減するための方法であり、ここでは、マルチＶｔｈセルを利用したレイアウト方法とは異なるものとして議論する。
【０００９】
確かに、消費電力削減のためにクロックゲーティングや回路量の削減などの方法も、設計面での消費電力削減の施策として考慮されていなければならない方法論ではある。しかし、問題をトランジスタ（半導体装置）の更なる微細化に起因するリーク電流増加の傾向に絞った場合、これらの方法は、リーク電流削減の直接的な効果を期待できる施策とはならない。
【００１０】
一方、設計面でのリーク電流削減の直接的な施策の１つとして、微細化の進展に伴い注目されているのがマルチ電源電圧や、電源の遮断である。半導体装置のゲート酸化膜に高い電圧が掛かった状態では、常に、リーク電流が多く流れる。しかしながら、回路スピードを犠牲にして低いゲート電圧でトランジスタ（半導体装置）を動作させたり、使っていない回路の電源を遮断したりすることにより、リーク電流を劇的に削減できることが分かっている。このマルチ電源電圧ドメインや、電源遮断の設計手法自体は、携帯機器向けの半導体集積回路等で既に広く用いられている方法である。
【００１１】
これらの実装方法は、レベルコンバータやＭＴＣＭＯＳ、セレクティブＭＴＣＭＯＳなどの電源電圧を変更することのできる特殊な回路を利用して実施されている。また、マルチ電源電圧ドメインに関連して、ドメイン内の電圧を動作スピードにあわせて変更するバリアブル電圧の技術も実施されている。但し、意図的にバリアブル電圧を複数設けた状態では、動作保障が難しいために、ＡＳＩＣやゲートアレイの設計形態でこのような設計手法がとられることは少ない。
【００１２】
そして、リーク電流対策の観点から、ＡＳＩＣやゲートアレイの設計形態では、マルチ電源電圧ドメインと電源遮断が採用されることが多い。このマルチ電源電圧ドメインの設計手法は、周辺モジュールと比較して低速動作でよいが、定常的に動作させたい部分を実装するのに適している。
【００１３】
また、電源遮断の設計手法は、動作させるときは高速で動作させたいが、定常的には動作していなくても良い部分を実装するのに適している。
【００１４】
このマルチ電源電圧ドメインの設計手法や電源遮断の設計手法に関連する従来技術として、電源遮断時の保持データの消滅を防止し、また電源復帰時の貫通電流を防止し、急峻に電源を立ち上げることで高速化と低消費電力化を図る方法（特許文献１参照）がある。また、論理回路部のグランド側にスイッチ回路を設け、論理回路部とスイッチ回路の接続する電源ラインの電位が、他の論理セルの動作による影響を受け難くすることにより、論理セルごとに正確な遅延特性を見積もる方法（特許文献２参照）がある。
【００１５】
次に、電源遮断に焦点を絞ると、リーク電流削減の効果が高い反面、電源遮断状態から安定動作可能な状態に復帰するまでの時間が、回路の動作スピードと比較して長いという利用上の難しさがある。
【００１６】
例えば、定常的には動作しないが、通常動作には高速で動作させたい機能モジュールを電源遮断により実装したと仮定する。ここで、電源遮断を行った機能モジュールが他の機能単位で処理を行う場合のデータの依存関係を持っていたり、実行順序があらかじめ規定されていたりするような場合を考える。このような場合、電源遮断を行ったブロックでは、電源遮断を行ったブロックでの処理が必要だと判定した時点で電源投入を行うと、電源遮断状態から回路が安定動作可能な状態に復帰するまでのウェイクアップ時間がパイプラインストールを引き起こす原因となる。
【００１７】
このパイプラインストールの影響による処理時間ペナルティは、以下のように現れる。
今日の半導体集積回路のマイクロプロセッサが１サイクル数ナノ秒で動作する一方、電源遮断したブロックのウェイクアップ時間には数マイクロ秒程度掛かる。すなわち、数ナノ秒のオーダーでパイプライン動作するマイクロプロセッサが、電源遮断された機能を呼び出して必要なデータを取得するためには、まず、機能が動作し始めるまでの段階で既に数マイクロ秒の処理待ちする時間が生じることになる。
【００１８】
このウェイクアップ動作と通常処理の時間スケールのギャップは解消することが難しいため、従来の手法では、ウェイクアップ動作を行うブロックと定常的に動作させる部位との間で可能な限り処理の依存性を排除してハードウェア化することが行われていた。例えば、ハードディスクドライブにおけるコントローラなどのような装置の電源遮断に関する従来技術として、ハードディスクのアクセスシーケンスなどを用いて比較的制御を分離する方法（特許文献３参照）がある。
【００１９】
また、より複雑な制御については、定常的に動作させる部分でのソフトウェア制御により電源制御が行われていた。反応速度としては、ウェイクアップ動作と同等の処理速度で電源分離箇所にアクセスするのが一般的であり、リーク電流が問題にならない場合の設計手法としては、十分確立された方法論であった。
【００２０】
しかしながら、９０ｎｍ以下のプロセスでのリーク電流による消費電力を考慮に入れた場合、従来通りの設計手法により作製された半導体集積回路では、総消費電力においてリーク電流の占める割合がついに４割を超え、更なる微細化では５割以上がリーク電流のために消費されるということが分かってきた。この観点から、今後の微細化プロセスでの設計面でのリーク電流の削減を視野に入れると、動作スピードと同等の時間スケールで電源投入スイッチのオン、オフを制御できることが望ましい。
【００２１】
以上のことから、パフォーマンスを維持したままリーク電流削減のために電源制御を行う状況は、従来取られていた方法とは全く別のウェイクアップの制御を要する。すなわち、ウェイクアップ動作を行うブロックを別の処理系へ分離してソフトウェアで制御する方法とは全く別の解決策が必要となる。
【００２２】
また、近年、一連の処理を実行しながら回路構成を処理に最適化した形式に組み替える動的再構成可能型プロセッサが開発されるようになってきた。この動的再構成可能型プロセッサは、処理の多くの部分をステップ数の短い専用の処理や一連のパイプライン処理をハードウェア処理で実現することができるため、汎用プロセッサに比べて、消費電力低下や、実行時間を向上の効果がある。
【００２３】
また、製造の観点から、微細化が進むに従い、組み替えることのできる動的再構成可能型プロセッサやＦＰＧＡ（フィールドプログラマブルゲートアレイ）などの再構成可能型のデバイスが微細化プロセスで作られることが多くなってきている。ＡＳＩＣ等では、配置配線の状態により露光や製造が困難なマスクパターンを扱うことになるが、再構成可能型のデバイスは、回路構造に規則性があり、露光、製造が容易なマスクパターンを設計し易いという背景がある。
【００２４】
しかしながら、動的再構成可能型プロセッサやＦＰＧＡなどのデバイスでは、その構成情報の書き込みを行う際には、通常、デバイス全体に電力が供給されている状態で回路構成情報による処理エレメント間の接続を指定する必要がある。もし、回路構成情報の書き換えの段階でデバイスの該当する部位に電力が供給されていなかった場合は、改めて当該デバイスに電力を供給し、トランジスタの動作の安定化を待って回路構成情報による処理エレメント間の接続を行うことになる。
【００２５】
ここで、動的再構成可能型プロセッサやＦＰＧＡがパイプライン処理を実行する場合を考えると、回路構成書き換えのパイプラインストールの影響を最小限にするには、再構成可能型の処理エレメント全てに電力を供給しつづけなければならない。しかしながら、微細化、大規模化の進展の観点から、このような制御方法を取った場合、使用していない処理エレメントでのリーク電流が増大することになる。
【００２６】
また、逆に未使用処理エレメントを単純に電源遮断して動作させると、回路の再構成する場合に、電源投入からデバイス安定化までのウェイクアップ時間のストールを許容しなければならない。従来、再構成可能型のデバイスにおいて、リーク電流を削減する目的で実施する電源遮断、電源投入に起因するパイプライン処理のストールを、プロセッサのクロック動作と同等の時間スケールで直接改善するような技術はまだない。
【００２７】
【特許文献１】特開２００３−３４７９１７号公報
【特許文献２】特開２００５−１８３６８１号公報
【特許文献３】特開平１１−３１２３５６号公報
【発明の開示】
【発明が解決しようとする課題】
【００２８】
従来の技術では、半導体集積回路内で再構成可能型のデバイスのうち電源遮断された処理エレメントを電源投入する場合、電源投入された回路動作が安定化するのを待ってから処理を開始するのが一般的であった。このため、依存関係のある命令や処理によりウェイクアップが行われるとパイプラインストールを起こす可能性があり、機能の組み合わせごとに電源制御の手順を最適化することは自動化が難しい。
【００２９】
また、例え自動化がなされていたとしても、回路動作安定化のウェイト時間を顕に持つ特別な制御シーケンスで構成されていることが多く、多くの処理エレメントを組合せで実施する電源遮断と電源投入を繰り返す等の制御では、多くの待ち時間が発生してしまう。また、特別な制御シーケンスを利用することで処理の柔軟な組合せが阻害され、ソフトウェアで記述された汎用性、移植性を阻害する可能性がある。
【００３０】
また、微細化プロセスで設計された半導体集積回路では、電源遮断と電源投入により、リーク電流削減の効果を得ることが目的である。そのため多くの場合、半導体集積回路内の特定の電源ドメインで電源分離された処理エレメントに対して電源遮断と電源投入を実施するため、頻繁に電源遮断と電源投入を繰り返すような制御が前提となる。
【００３１】
しかしながら、回路動作安定化のウェイト時間を顕に持つような従来の制御シーケンスで電源遮断と電源投入の繰り返しを制御すると、パイプラインストールの発生によりパフォーマンスのボトルネックとなる。
【００３２】
本発明は上述の問題点に鑑みてなされたものであり、各処理エレメントの再構成に係る構成情報の書き換え時のウェイクアップ時間に起因する処理のストールを抑止し、パフォーマンスの低下の防止を実現するデータ処理装置を提供することを目的とする。
【課題を解決するための手段】
【００３３】
上述した課題を解決するために本発明は、複数の処理エレメントを具備し、当該複数の処理エレメントを再構成して入力されたデータの処理を行うデータ処理部と、前記データ処理部における前記複数の処理エレメントの再構成に係る複数の構成情報を記憶する構成情報記憶部と、前記構成情報記憶部から前記データ処理部に読み込む構成情報を予測する構成情報予測部と、前記構成情報予測部による予測に基づいて前記構成情報記憶部から構成情報を読み出す構成情報読み出し部と、前記構成情報読み出し部により読み出された構成情報に基づいて前記複数の処理エレメントにおける電源の先行投入を指示する電源投入情報指示部と、前記電源投入情報指示部の指示に基づいて前記複数の処理エレメントにおける電源の制御を行う電源制御部と、前記構成情報読み出し部により読み出された構成情報に基づいて、前記電源制御部による制御により活性化された処理エレメントに対して接続関係を指示する接続情報指示部とを有することを特徴とするデータ処理装置等を提供する。
【発明の効果】
【００３４】
本発明によれば、データ処理部における各処理エレメントの再構成に係る構成情報の予測の基づいて、各処理エレメントあるいは各処理エレメントのグループに対して独立に先行電源投入、先行電源遮断を行うことが可能となる。これにより、リーク電流の削減と共に、構成情報の書き換え時のウェイクアップ時間に起因する処理のストールを抑止し、パフォーマンスの低下を防止することができる。
【００３５】
また、本発明によれば、各構成情報における処理の継続時間がウェイクアップ時間と比較して短い場合にも、構成情報の書き換え時のウェイクアップ時間に起因する処理のストールを抑止することが可能になる。また、過去の構成情報の書き換え発生の履歴から、実行中の各構成情報の処理の継続時間とウェイクアップ時間との関係から、ストール発生を抑止し、かつ、リーク電流を抑えた制御状態を探査し、リークによる電力消費と処理効率の最適化を実施することができる。また、本発明によれば、パイプライン処理の継続時間の不均一さにも対応できるよう電源投入タイミングを最適化することが可能である。
【発明を実施するための最良の形態】
【００３６】
次に、本発明の実施形態について、添付図面を参照しながら説明する。
【００３７】
図１は、本発明の実施形態に係るデータ処理装置１００のブロック構成図である。
図１に示すデータ処理装置１００は、本発明の最も基本的な構成を示しており、構成情報の予測により、各処理エレメントの電源先行投入、遮断を行う再構成可能型デバイスを示している。
【００３８】
一般に、再構成可能型デバイスは、データを処理する再構成可能型データ処理部と当該再構成可能型データ処理部１０１の構成情報を制御する制御部に機能を分割することができる。図１に示すデータ処理装置（再構成可能型デバイス）１００でも、データを入力して当該データの処理結果を出力する再構成可能型データ処理部１０１と、当該再構成可能型データ処理部１０１を制御する制御部（１０２〜１０７）に分けることができる。
【００３９】
再構成可能型データ処理部１０１における複数の処理エレメント２０１の再構成に係る構成情報は、構成情報記憶部１０２に記録されており、構成情報読み出し部１０３の指示に従って読み出される。構成情報読み出し部１０３により読み出された構成情報は、接続情報指示部１０４により、再構成可能型データ処理部１０１の各処理エレメント間の接続情報として、再構成可能型データ処理部１０１へと伝えられる。すなわち、情報指示部１０４は、構成情報読み出し部１０３により読み出された構成情報に基づいて、電源制御部１０７による制御により活性化された処理エレメントに対して接続関係を指示する。ここまでは、通常の再構成可能型デバイスで行われている一般的な構成指示の方法である。
【００４０】
本発明では、これらの構成指示に加えて、構成情報の予測に基づいて各処理エレメントでの電源制御を行う。すなわち、図１に示すデータ処理装置（再構成可能型デバイス）１００において、構成情報予測部１０５により、構成情報読み出し部１０３に対して、構成情報記憶部１０２からの複数の構成情報の先行読み出しを指示する。
【００４１】
この構成情報読み出し部１０３に読み出された予測構成情報は、電源投入情報指示部１０６へと転送され、そこで個々の処理エレメントの電源投入、電源遮断の情報として解釈され、更に、電源制御部１０７へと伝達される。電源制御部１０７は、再構成可能型データ処理部１０１の各処理エレメントの電源投入、遮断を制御する。
【００４２】
図２は、再構成可能型データ処理部１０１の内部構成の一例を示す模式図である。
再構成可能型データ処理部１０１は、複数の処理エレメント２０１からなり、個々の処理エレメント２０１は、接続情報指示部１０４からの接続情報と電源制御部１０７からの電源制御情報によって制御される。
【００４３】
図３は、電源制御部１０７が個々の処理エレメント２０１に対して、電源投入、電源遮断の制御を行う様子を示す模式図である。
図３に示すように、処理エレメント２０１内には、データ処理部３０１と、トランジスタ３０７と、駆動電源３０８を具備している。データ処理部３０１は、トランジスタ３０７を介して、電源制御部１０７と繋がる構成になっている。
【００４４】
処理エレメント２０１は、デバイスの種類によってその出力が異なる。ここでは、一例として、制御コード３０２とデータイン３０３を入力し、コンディションコード３０４や、データアウト３０５等のデータに対する直接の処理結果と、データ処理部３０１自体の状態を示す処理状態３０６等の信号を出力するものと考える。
【００４５】
以下に、電源先行投入のパターン特定の方法を示す。
図４は、再構成可能型データ処理部１０１の時刻Ｔ０における構成状態を示す模式図である。図４では、各処理エレメント２０１のうち、時刻Ｔ０で使用中の処理エレメントを灰色の塗りつぶしで示している。ここで、時刻Ｔ０から時刻Ｔ１に移り、図５に示す構成状態へ再構成可能型データ処理部１０１が組み替えられるとする。
【００４６】
図５は、再構成可能型データ処理部１０１の時刻Ｔ１における構成状態を示す模式図である。図５では、各処理エレメント２０１のうち、時刻Ｔ１で使用中の処理エレメントを右下がりの斜線の塗りつぶしで示している。
【００４７】
図４の時刻Ｔ０において使用中ではない処理エレメントが電源遮断されていた場合、時刻Ｔ１になってから、ウェイクアップ処理を行っていたのでは、ウェイクアップ処理がデータ処理をストールさせてしまう。このストールを回避させるために、後の時刻Ｔ１で利用することが予測できる処理エレメントに対して、時刻Ｔ０での構成情報処理中に先行して電源投入を行う。
【００４８】
すなわち、本実施形態では、図６に示す再構成可能型データ処理部１０１の全てのタイプの塗りつぶしが示す先行電源投入パターンの通りに処理エレメントに対して、事前にウェイクアップ処理を行う。これにより、電源遮断に起因する構成情報の書き換えに伴うストールの発生を回避することができる。
【００４９】
次に、使わなくなった処理エレメントの電源遮断の方法を示す。
図４、図５に示す構成情報の遷移を辿り、時刻Ｔ０で図６に示す電源投入状態に至ったとする。また、予測構成情報に従い時刻Ｔ２における構成情報を取得すると、再構成可能型データ処理部１０１における処理エレメントの使用予測が図７に示す右下がりの斜線で塗りつぶされたパターンであったとする。
【００５０】
このとき、時刻Ｔ１になり、図５に示す時刻Ｔ１で使用する構成情報で示される処理エレメント、及び図６に示す時刻Ｔ２の構成情報により活性化が予測される処理エレメント以外は、電源を遮断する。特に、時刻Ｔ０の構成情報で利用された処理エレメントは、時刻Ｔ１あるいは時刻Ｔ２で電源投入指示が無ければ、電源遮断を行う。
【００５１】
図８は、再構成可能型データ処理部１０１において、時刻Ｔ１を実行中に時刻Ｔ２の構成情報をもとに、先行電源投入、先行電源遮断した状態を示す模式図である。図９は、再構成可能型データ処理部１０１の時刻Ｔ１の構成状態が指示されるまでの先行電源投入状態を示す模式図である。ここで、図４に示す時刻Ｔ０での構成情報により、データ処理を実行中、図５に示す時刻Ｔ１での構成情報が予測できていたとする。そして、このとき、時刻Ｔ１から始まる処理は実行される時間間隔が短く、次の図７に示す構成状態にウェイクアップするには不十分であったとする。
【００５２】
このとき、本実施形態では、時刻Ｔ０の段階で図５に示す時刻Ｔ１での構成情報、及び、図７に示す時刻Ｔ２での構成情報を共に先行電源投入し、図９に塗りつぶしで示される全ての処理エレメントに対して先行電源投入を行う。これにより、時刻Ｔ１の処理時間の短さに起因する処理のストールを回避できる。
【００５３】
すなわち、図５に示す時刻Ｔ１での構成情報、及び、図７に示す時刻Ｔ２での構成情報など、複数の構成情報から論理和を作り、予測構成情報における処理時間間隔依存性を排除して、より長い先行電源投入時間の確保を可能とするものである。
【００５４】
図１０は、図１に示したデータ処理装置１００の各構成部の内部構成を示す図である。ここで、図１０には、図１に示したデータ処理装置１００の各構成部のうち、構成情報記憶部１０２、構成情報読み出し部１０３、構成情報予測部１０５、電源投入情報指示部１０６及び電源制御部１０７の内部構成が示されている。
【００５５】
構成情報予測部１０５は、構成情報履歴テーブル１０５１と、構成情報ポインタ１０５２と、先行電源投入領域ポインタ１０５３と、ストール発生又はタイマー等のイベント検出を伝えるイベントトリガー１００４を有して構成されている。構成情報履歴テーブル１０５１は、ローカルメモリにおけるアドレス等のインデックス１０５５によってアクセスできるものとする。また、各エントリには、インデックス１０５５で示される自構成情報履歴による電源投入ポイント１０５６と構成情報オフセット１０５７を記憶する領域が存在する。
【００５６】
構成情報読み出し部１０３では、構成情報オフセット１０５７に格納されたオフセット情報をもとに、アドレス生成部１０３５で生成されたアドレスにより、構成情報記憶部１０２内部の複数個の構成情報１０２１〜１０２４にアクセスする。構成情報記憶部１０２から読み出された構成情報１０２１〜１０２４の全部あるいは一部が、構成情報読み出し部１０３内の構成情報バッファ１０３１〜１０３４に格納される。
【００５７】
各構成情報バッファ１０３１〜１０３４に格納されている各構成情報から、再構成可能型データ処理部１０１内の各処理エレメント２０１に対応する各構成状態での使用状況の予測を元に、電源投入情報指示部１０６は、電源投入状態を指示する。この電源の投入指示の際には、論理和演算処理部１０６１における現在使用中の構成情報１０２２と予測による構成情報１０２３及び１０２４との論理和演算処理を用いる。
【００５８】
図１０の構成では、予測による電源投入管理を２つ先の構成情報まで予測可能としているため、論理和演算処理部１０６１による入力幅を３としている。もし、より先の予測による電源先行投入を行うとするならば、この論理和演算処理部１０６１の入力幅を増やすことで対応が可能である。また、論理和演算処理部１０６１の入力幅の増加に応じて、構成情報読み出し部１０３内の構成情報バッファ１０３１〜１０３４の数も増やすことになる。
【００５９】
電源の遮断指示には、先に述べた電源の投入指示の論理和演算処理部１０６１の反転結果と前の構成状態で使用していた構成情報の論理積演算処理部１０６２の処理結果により、電源遮断指示情報を生成する。そして、電源投入情報指示部１０６により生成された電源投入指示情報及び電源遮断指示情報は、電源制御部１０７から、再構成可能型データ処理部１０１に伝達される。図１０の構成では、電源制御部１０７の例として、構成情報バッファ１０３１〜１０３４の読み出しから随時処理される電源投入情報指示部１０６の動作を意図して、電源制御部１０７内に、先行電源投入指示情報及び先行電源遮断指示情報を記憶する記憶領域１０７１を具備するようにした。
【００６０】
以下、更に、上記の機能構成を実際の動作に則して説明する。
図１０に示す構成情報履歴テーブル１０５１のエントリには、自エントリをストールすることなく実行させるための電源投入ポイント１０５６を構成情報履歴テーブル１０５１のインデックスとして記憶する領域と、自エントリが利用する構成情報オフセット１０５７のアドレスを記憶する領域がある。
【００６１】
ここで、一例として、構成情報ポインタ１０５２が構成情報履歴テーブル１０５１のインデックスがｉのエントリを指している場合の動作を説明する。
【００６２】
構成情報ポインタ１０５２が指すインデックスｉをもとに、構成情報読み出し部１０３内のアドレス生成部１０３５により、構成情報記憶部１０２における、構成情報記憶領域１０２２内のアドレスへと変換される。構成情報記憶領域１０２２より読み出された構成情報のデータは、構成情報バッファ１０３２に格納され、接続情報指示部１０４へと転送される。
【００６３】
ここで、構成情報履歴テーブル１０５１による電源投入ポイント１０５６領域を見ると、インデックスｉを処理するタイミングでの先行電源投入ポイントとして、インデックスがｉ＋２のエントリまで選択可能なことを検知することができる。
【００６４】
このような状況では、インデックスｉ＋１，ｉ＋２で示されるエントリから、構成情報オフセットｉ＋１，ｉ＋２の２つの構成情報オフセットを、アドレス生成部１０３５も、構成情報オフセットｉと同様に送信する。
【００６５】
２つの構成情報オフセットｉ＋１，ｉ＋２から生成されたアドレスにより、構成情報記憶部１０２の構成情報記憶領域１０２３及び１０２４から、構成情報をそれぞれ構成情報バッファ１０３３及び１０３４へ読み出す。構成情報バッファ１０３２の現在使用中の構成情報、及び、構成情報バッファ１０３３及び１０３４に先行読み出し構成情報の各処理エレメントの利用指示を対応付け、論理和演算処理部１０６１で処理し、電源投入指示パターンとして電源制御部１０７に登録する。
【００６６】
また、インデックスｉ−１により指定された構成情報は、過去の処理で利用された構成情報を示しており、構成情報記憶領域１０２１から、構成情報バッファ１０３１へと読み出されているか、又は、読み出されていない場合には再読み出しを行う。
【００６７】
ここで、前述の論理和演算処理部１０６１の演算結果である電源投入指示の否定と、構成情報バッファ１０３１での各処理エレメントの利用指示の論理積演算処理部１０６２により、以降の処理での電源遮断指示パターンとして電源制御部１０７に登録する。なお、ここで説明した装置構成は一例であり、構成情報バッファ１０３１〜１０３４へのデータの読み出し方法、構成情報バッファの個数、論理和演算処理部１０６１の入力数、論理積演算処理部１０６２の入力数などは、自由に組み替えることが可能である。
【００６８】
次に、図１０で示した各構成において、如何に先行電源投入の最適化を達成していくかの例として、ストール検出による最適化方法と、タイマーカウンタを用いた最適化方法の２つについて、構成情報履歴テーブル１０５１と処理の切り換えに照らして説明する。
【００６９】
以下に、まず、電源先行投入の最適化の１つ目の方法として、ストール検出による最適化方法に係る電源投入ポイントの更新方法、及び、最適化方法について説明する。
【００７０】
図１１は、構成情報の切り替えの処理状態の一例を示すタイムチャートである。
ここで、初期値として先行電源投入のデフォルト値として、自インデックスよりも２つ前のインデックス値とした。このとき、処理Ｃ、処理Ｄによる処理時間が短く、処理Ｅの構成情報に変更を行う場合に、処理Ｄが終了した時点で、処理のストールが発生してしまう場合を示している。
【００７１】
図１２は、初期の構成情報履歴テーブル１０５１の一例を示す模式図である。この図１２には、図１０に示した構成情報履歴テーブル１０５１に対して、ストールの履歴情報１２０１、及び、電源投入ポイントのインデックスのインクリメントを禁止するインデックスインクリメント禁止情報１２０２を追加情報として用いている。
【００７２】
また、図１２は、図１１の状態になるときの構成情報履歴テーブル１０５１の内容を示しており、２つ前の構成情報インデックスを電源投入開始とする状態で初期化されているものとする。
【００７３】
ここで、図１１の処理Ｃの電源投入タイミングを見てみると、処理Ｂがウェイクアップ時間と比べて十分長いため、構成情報Ｃの電源投入のタイミングは、処理Ｂが始まってからで良い。このとき、まず電源投入ポイントのインデックスのインクリメントをするインデックスインクリメント禁止情報１２０２を参照する。
【００７４】
ここで、インクリメント禁止のフラグが立っていないので、投入タイミングのインデックスを１つ進めて、構成情報Ｂのインデックスを指すように、処理Ｃに対応する構成情報を事前に読み込み、インデックス１０５６を次回の先行電源投入を行うまでに更新する。
また、図１１の処理Ｅでストールが発生したことを検知した際には、構成情報履歴テーブル１０５１のストール履歴情報１２０１の処理Ｅの構成情報履歴に対応するエントリに、ストール発生の履歴を残すフラグを立てる。
【００７５】
このストール発生フラグが０から１へと変化した状態を見て、インデックスインクリメント禁止情報１２０２にインクリメント禁止フラグを示す１を記憶する。この情報をもとに、次回の先行電源投入を行うまでに構成情報を事前に読み込み、インデックス１０５６の処理Ｅのエントリに対応するインデックス情報をデクリメントし、処理Ｂのエントリに対応するインデックスに書き換える。
【００７６】
結果として、図１２に示す構成情報履歴テーブル１０５１は、図１１で示した処理を一度実行した後の段階で、図１３に示す内容に書き換わっている。また、図１３に示した構成情報履歴テーブル１０５１により、図１１と同様の処理系が実行された場合、図１４に示すような処理となる。
【００７７】
すなわち、処理Ｃの構成情報の書き込みの先行電源投入時間は、最適化され、かつ、処理Ｅで発生していたストールは解消される。しかしながら、処理Ｅのストール解消の影響を受けて、その後の処理Ｆの手前で、別のストールが発生する場合がある。
【００７８】
この様な場合は、図１５に示すように、処理Ｅでの構成情報を事前に読み込み、インデックス１０５６のインデックス書き換えに連動して、電源投入区間を自動シフトさせる方法が考えられる。この方法の実施例としては、図１６に示す通り、処理Ｅでの構成情報を事前に読み込み、インデックス１０５６のエントリの更新に連動して、それ以降の処理のエントリに対する構成情報を事前に読み込み、インデックス１０５６の更新を自動的に実施すればよい。
【００７９】
次いで、以下に、先行電源投入の最適化の２つ目の方法として、タイマーカウンタ（以下、単に「タイマー」と記す）を用いた最適化方法に係る電源投入ポイントの更新方法、及び、最適化方法について説明する。
【００８０】
図１７は、タイマーリソース管理を行う構成情報予測部１０５の内部構成を示すブロック図である。図１７に示す通り、図１０に示す構成情報予測部１０５の構成に対して、タイマーリソース管理テーブル１７００と複数のタイマー１７０１〜１７０５を具備するものを考える。
【００８１】
このタイマーリソース管理テーブル１７００と複数のタイマー１７０１〜１７０５により、構成情報履歴テーブル１０５１を更新する方法を取る。ここで、仮に、最初は全部の処理エレメントの電源が投入されている状態で設定しておくものとする。
【００８２】
続いて、最初の処理系の実行時に、各処理開始と同時に各処理にタイマーリソースを割り当ててウェイクアップ時間をカウントさせ、各処理開始と先行電源投入ポイントの候補との相関を調べる。この動作の一例を図１８に示す。図１８では、処理Ａの開始とともにスタートするタイマー１（１７０１）は、処理Ｄの実行中にそのカウントを終了する。
【００８３】
また、処理Ｂの開始とともにスタートするタイマー２（１７０２）は、処理Ｄの実行中にはカウントを終了していない。従って、処理Ｅが適切なウェイクアップ時間を確保することのできる先行電源投入の最適なタイミングとして、タイマー１（１７０１）がカウントを終了した状態をもとに、処理Ｄの先行電源投入開始のイベントとして、処理Ａの開始点が設定される。このとき、図１７に示すタイマーリソース管理テーブル１７００により、タイマーリソースは管理される。
【００８４】
タイマーリソース管理テーブル１７００は、図１９に示す通り、タイマーＩＤ１９０１、カウント終了フラグ１９０２、スタンバイフラグ１９０３、割り当てインデックス１９０４、及び、ネクストタイマーＩＤ１９０５の各情報を格納する。
【００８５】
カウント終了フラグ１９０２は、各々のタイマーのカウント終了状況を示すものである。スタンバイフラグ１９０３は、動作状況を示すものである。割り当てインデックス１９０４は、タイマーリソースの割り当て状況を示すものである。ネクストタイマーＩＤ１９０５は、次に動き出したタイマーＩＤを記録するものである。
【００８６】
現在実行中の処理に対する先行電源投入のタイミングを推定するには、カウント終了フラグ１９０２の終了状態に遷移するタイマーがあり、かつ、次に動き出したネクストタイマーＩＤ１９０５でポイントされたタイマーが動作を継続しているような状態を見つけ出すことにより行う。すなわち、図１９で、カウント終了フラグ１９０２のエントリが１で、かつ、ネクストタイマーＩＤ１９０５でポイントされたタイマーのカウント終了フラグ１９０２、及び、スタンバイフラグ１９０３が共に０であったとき、割り当てインデックス１９０４の処理の開始点を現在実行中の処理のウェイクアップ開始点と推定する。
【００８７】
なお、図１９では、処理Ｅの実行開始時点のタイマーリソース管理テーブル１７００の状態を表している。
【００８８】
また、カウントが終了したタイマーは、また別の処理の開始と同時に動作を開始するタイマーとして割り当てられる。この様子を、図２０に示す。図１９で、カウント終了フラグ１９０２と、スタンバイフラグ１９０３が共に１となっているタイマーリソースを開放し、再度インデックスＥを記録し、動作を開始する。
【００８９】
このとき、カウント終了フラグ１９０２と、スタンバイフラグ１９０３が共にクリアされて、図２０に示すような内容に書き換えられる。
【００９０】
図１７に示す構成情報履歴テーブル１０５１は、図１８の処理を実行し、順次、先行電源投入タイミングを推定していき、処理Ｉまで進んだ時点では、図２１に示すような内容を記録している。
【００９１】
次回の同様の構成情報の切き換えを行う処理では、図２１の先行電源投入タイミングを使って、電源投入、電源遮断の制御を行う。また、処理の種類が増えても実行したい並列度にあわせてタイマーの数を決めれば、構成情報の切り換えに対してウェイクアップ時間が長い場合も対応することが可能である。
【００９２】
前述した本実施形態に係るデータ処理装置を構成する図１の各手段、並びに当該データ処理装置の制御方法を示す各ステップは、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び当該プログラムを記録したコンピュータ読み取り可能な記憶媒体は本発明に含まれる。
【００９３】
具体的に、前記プログラムは、例えばＣＤ−ＲＯＭのような記憶媒体に記録し、或いは各種伝送媒体を介し、コンピュータに提供される。前記プログラムを記録する記憶媒体としては、ＣＤ−ＲＯＭ以外に、フレキシブルディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等を用いることができる。他方、前記プログラムの伝送媒体としては、プログラム情報を搬送波として伝搬させて供給するためのコンピュータネットワーク（ＬＡＮ、インターネットの等のＷＡＮ、無線通信ネットワーク等）システムにおける通信媒体を用いることができる。また、この際の通信媒体としては、光ファイバ等の有線回線や無線回線などが挙げられる。
【００９４】
また、コンピュータが供給されたプログラムを実行することにより本実施形態に係るデータ処理装置の機能が実現されるだけでなく、そのプログラムがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）或いは他のアプリケーションソフト等と共同して本実施形態に係るデータ処理装置の機能が実現される場合や、供給されたプログラムの処理の全て、或いは一部がコンピュータの機能拡張ボードや機能拡張ユニットにより行われて本実施形態に係るデータ処理装置の機能が実現される場合も、かかるプログラムは本発明に含まれる。
【図面の簡単な説明】
【００９５】
【図１】本発明の実施形態に係るデータ処理装置（再構成可能型デバイス）のブロック構成図である。
【図２】再構成可能型データ処理部の内部構成の一例を示す模式図である。
【図３】電源制御部が個々の処理エレメントに対して、電源投入、電源遮断の制御を行う様子を示す模式図である。
【図４】再構成可能型データ処理部の時刻Ｔ０における構成状態を示す模式図である。
【図５】再構成可能型データ処理部の時刻Ｔ１における構成状態を示す模式図である。
【図６】再構成可能型データ処理部において、時刻Ｔ０で次の構成状態に対応する先行電源投入状態を示す模式図である。
【図７】再構成可能型データ処理部の時刻Ｔ２における構成状態を示す模式図である。
【図８】再構成可能型データ処理部において、時刻Ｔ１を実行中に時刻Ｔ２の構成情報をもとに、先行電源投入、先行電源遮断した状態を示す模式図である。
【図９】再構成可能型データ処理部の時刻Ｔ１の構成状態が指示されるまでの先行電源投入状態を示す模式図である。
【図１０】図１に示したデータ処理装置の各構成部の内部構成を示す図である。
【図１１】構成情報の切り替えの処理状態の一例を示すタイムチャートである。
【図１２】初期の構成情報履歴テーブルの一例を示す模式図である。
【図１３】図１１に示すタイムチャートのストールを解消する構成情報履歴テーブルの一例を示す模式図である。
【図１４】図１１に示すタイムチャートにおけるストールの改善及び連動ストールの発生を示すタイムチャートである。
【図１５】図１４に示すタイムチャートにおける連動ストールの改善を示すタイムチャートである。
【図１６】図１５に示すタイムチャートにおける構成情報履歴テーブルの一例を示す模式図である。
【図１７】タイマーリソース管理を行う構成情報予測部の内部構成を示すブロック図である。
【図１８】処理ストリームとタイマーによるウェイクアップ時間計測を示すタイムチャートである。
【図１９】タイマーリソース管理テーブルの一例を示す模式図である。
【図２０】タイマーリソースの再利用を行った後のタイマーリソース管理テーブルの一例を示す模式図である。
【図２１】先行電源投入のポイントが記録された構成情報履歴テーブルの一例を示す模式図である。
【符号の説明】
【００９６】
１００：データ処理装置（再構成可能型デバイス）
１０１：再構成可能型データ処理部
１０２：構成情報記憶部
１０３：構成情報読み出し部
１０４：接続情報指示部
１０５：構成情報予測部
１０６：電源投入情報指示部
１０７：電源制御部
２０１：処理エレメント
３０１：データ処理部
３０２：制御コード
３０３：データイン
３０４：コンディションコード等
３０５：データアウト
３０６：処理状態
３０７：トランジスタ
３０８：駆動電源
１０２１：構成情報履歴テーブルのインデックスｉ＋２が指定する構成情報領域
１０２２：構成情報履歴テーブルのインデックスｉ＋１が指定する構成情報領域
１０２３：構成情報履歴テーブルのインデックスｉが指定する構成情報領域
１０２４：構成情報履歴テーブルのインデックスｉ−１が指定する構成情報領域
１０３１〜１０３４：構成情報バッファ
１０３５：アドレス生成部
１０５１：構成情報履歴テーブル
１０５２：構成情報ポインタ
１０５３：先行電源投入領域ポインタ
１０５４：イベントトリガー
１０５５：構成情報履歴テーブルのインデックスまたはアドレス
１０５６：構成情報履歴による電源投入ポイント
１０５７：構成情報オフセット
１０６１：論理和演算処理部
１０６２：論理積演算処理部
１０７１：電源制御情報を格納する記憶領域
１２０１：ストール履歴情報
１２０２：インデックスインクリメント禁止情報
１７００：タイマーリソース管理テーブル
１７０１：タイマー１
１７０２：タイマー２
１７０３：タイマー３
１７０４：タイマー４
１７０５：タイマー５
１９０１：タイマーＩＤ
１９０２：カウント終了フラグ
１９０３：スタンバイフラグ
１９０４：割り当てインデックス
１９０５：ネクストタイマーＩＤ
【図１】
2008097463.tif 000003
【図２】
2008097463.tif 000004
【図３】
2008097463.tif 000005
【図４】
2008097463.tif 000006
【図５】
2008097463.tif 000007
【図６】
2008097463.tif 000008
【図７】
2008097463.tif 000009
【図８】
2008097463.tif 000010
【図９】
2008097463.tif 000011
【図１０】
2008097463.tif 000012
【図１１】
2008097463.tif 000013
【図１２】
2008097463.tif 000014
【図１３】
2008097463.tif 000015
【図１４】
2008097463.tif 000016
【図１５】
2008097463.tif 000017
【図１６】
2008097463.tif 000018
【図１７】
2008097463.tif 000019
【図１８】
2008097463.tif 000020
【図１９】
2008097463.tif 000021
【図２０】
2008097463.tif 000022
【図２１】
2008097463.tif 000023