(57)【要約】【課題】  リコンフィギュラブル回路層における発熱への対策が望まれていた。【解決手段】  データ処理装置１は、複数のリコンフィギュラブル回路層１２、第１のメモリ１３、選択ユニット１６および設定ユニット１７を含む。複数のリコンフィギュラブル回路層１２は、それぞれ処理回路の再設定が可能である。第１のメモリ１３は、設定すべき処理回路を表した回路情報を記憶する。選択ユニット１６は、前記回路情報が表す処理回路を設定するために複数のリコンフィギュラブル回路層１２の全てを使用する必要が無い場合に、予め定めた優先順位の高い一部のリコンフィギュラブル回路層１２を選択し、それ以外の場合には複数のリコンフィギュラブル回路層１２の全てを選択する。設定ユニット１７は、選択されたリコンフィギュラブル回路層１２を使用して、第１のメモリ１３に記憶された回路情報が表す処理回路を設定する。【選択図】      図１
2011139464.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ処理回路の再設定が可能である複数のリコンフィギュラブル回路層と、
設定すべき処理回路を表した回路情報を記憶する第１のメモリと、
前記回路情報が表す処理回路を設定するために前記複数のリコンフィギュラブル回路層の全てを使用する必要が無い場合に、予め定めた優先順位の高い一部のリコンフィギュラブル回路層を選択し、それ以外の場合には前記複数のリコンフィギュラブル回路層の全てを選択する選択ユニットと、
前記選択されたリコンフィギュラブル回路層を使用して、前記第１のメモリに記憶された前記回路情報が表す処理回路を設定する設定ユニットとを具備したデータ処理装置。
【請求項２】
前記優先順位は、前記データ処理装置内での発熱の放熱効率を考慮して予め定められている請求項１に記載のデータ処理装置。
【請求項３】
処理回路が固定的に構成された少なくとも１つの固定回路層をさらに備え、
そして前記優先順位は、前記固定回路層が配置された状態における前記データ処理装置内での発熱の放熱効率を考慮して予め定められている請求項２に記載のデータ処理装置。
【請求項４】
前記選択ユニットは、処理回路が未設定である前記リコンフィギュラブル回路層のうちから前記優先順位が最も高い１つを選択し、
前記設定ユニットは、前記選択された１つのリコンフィギュラブル回路層に前記回路情報が表す処理回路の少なくとも一部を設定し、
前記選択ユニットは、前記回路情報が表す処理回路の全てが選択済みの前記リコンフィギュラブル回路層に対して前記設定ユニットにより設定できるまで１つの前記リコンフィギュラブル回路層の選択を繰り返す請求項１に記載のデータ処理装置。
【請求項５】
前記複数のリコンフィギュラブル回路層の使用率に関連付けて、前記複数のリコンフィギュラブル回路層のうちのいずれを使用するべきであるかを定めた配置パターンを表すパターン情報を記憶する第２のメモリと、
前記第１のメモリに記憶された前記回路情報に基づき、前記複数のリコンフィギュラブル回路層の使用率を算出するユニットとをさらに具備し、
そして前記選択ユニットは、前記算出された使用率に関連付けて前記第２のメモリに記憶された前記パターン情報に基づいて前記複数のリコンフィギュラブル回路層のうちから使用する少なくとも１つのリコンフィギュラブル回路層を選択する請求項１に記載のデータ処理装置。
【請求項６】
二次元的に配列された多数の回路要素を任意に使用して処理回路の再設定が可能であるリコンフィギュラブル回路層と、
それぞれ別々のタイミングで設定すべき複数の処理回路を表した回路情報を記憶する第１のメモリと、
前記第１のメモリに記憶された前記回路情報が表す複数の前記処理回路のそれぞれに関連付けて、その処理回路を設定するために前記リコンフィギュラブル回路層のどの領域を使用するかを放熱を考慮して定めた配置パターンを表すパターン情報を記憶する第２のメモリと、
前記リコンフィギュラブル回路層での処理の実施状況に応じて前記第１のメモリに記憶された回路情報が表す複数の処理回路の１つを選択する選択ユニットと、
前記第２のメモリに記憶された前記パターン情報に基づき、選択された前記処理回路を設定するために前記リコンフィギュラブル回路層のどの領域を使用するかを判定するユニットと、
前記多数の回路要素のうちの前記判定された領域に位置しているものを使用して選択された前記処理回路を設定するユニットとを具備したデータ処理装置。
【請求項７】
前記選択ユニットは、前記リコンフィギュラブル回路層に設定された処理回路から割り込み信号が出力されたことに応じて前記第１のメモリに記憶された回路情報が表す複数の処理回路の１つを選択し直す請求項６に記載のデータ処理装置。
【請求項８】
それぞれ処理回路の再設定が可能である複数のリコンフィギュラブル回路層の制御方法であって、
第１のメモリに記憶され、かつ構成すべき処理回路を表した回路情報に基づき、前記複数のリコンフィギュラブル回路層の使用率を算出し、
前記複数のリコンフィギュラブル回路層の使用率に関連付けて第２のメモリに記憶され、かつ前記複数のリコンフィギュラブル回路層のうちのいずれを使用するべきであるかを放熱を考慮して定めた配置パターンを表すパターン情報に基づいて、前記複数のリコンフィギュラブル回路層のうちから使用する少なくとも１つのリコンフィギュラブル回路層を選択し、
前記選択された少なくとも１つのリコンフィギュラブル回路層を使用して、前記第１のメモリに記憶された前記回路情報が表す処理回路を設定する制御方法。
【請求項９】
それぞれ処理回路の再設定が可能である複数のリコンフィギュラブル回路層の制御方法であって、
第１のメモリに記憶された回路情報が表す処理回路を設定するために前記複数のリコンフィギュラブル回路層の全てを使用する必要が無い場合に、予め定めた優先順位の高い一部のリコンフィギュラブル回路層を選択し、それ以外の場合には前記複数のリコンフィギュラブル回路層の全てを選択し、
前記選択されたリコンフィギュラブル回路層を使用して、前記第１のメモリに記憶された前記回路情報が表す処理回路を設定する制御方法。
【請求項１０】
二次元的に配列された多数の回路要素を任意に使用して処理回路の再設定が可能であるリコンフィギュラブル回路層の制御方法であって、
第１のメモリに記憶され、かつそれぞれ別々のタイミングで設定すべき複数の処理回路を表した回路情報が表す複数の複数の処理回路の１つを、前記リコンフィギュラブル回路層での処理の実施状況に応じて選択し、
前記第１のメモリに記憶された回路情報が表す複数の処理回路のそれぞれに関連付けて第２のメモリに記憶され、かつその処理回路を設定するために前記リコンフィギュラブル回路層のどの領域を使用するかを予め定めた配置パターンを表すパターン情報に基づき、選択された前記処理回路を設定するために前記リコンフィギュラブル回路層のどの領域を使用するかを判定し、
前記多数の回路要素のうちの前記判定された領域に位置しているものを使用して、選択された前記処理回路を設定する制御方法。
【請求項１１】
前記リコンフィギュラブル回路層に設定された処理回路から割り込み信号が出力されたことに応じて前記第１のメモリに記憶された回路情報が表す複数の処理回路の１つを選択し直す請求項１０に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、データ処理装置およびリコンフィギュラブル回路層の制御方法に関する。
【背景技術】
【０００２】
積層型の半導体デバイスは、限られた基板の実装可能領域の中での半導体回路の高密度実装を実現する技術として実用化され、近年様々な分野への適用が進んでいる。しかしながら、この種の半導体デバイスは、パッケージ内に複数のチップを重ねる積層構造のために放熱効率が悪い。このため、高速化や、回路サイズ増大による積層数の増加などに伴い、デバイスの温度が上昇する。そしてこのような温度上昇に起因した誤動作や故障への対策が課題となっていた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３０３２７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本課題を解決するための従来技術としては、既にいくつかの提案がなされている。その１つは、半導体デバイスのパッケージに放熱板を付加することである。また別の１つは、、積層チップ間の接続方法を工夫することである。これらの提案はいずれも、半導体デバイスの構造の工夫によって放熱効率を改善する提案であり、さらなる高速動作や回路サイズ増大を実現する上での放熱の課題を十分に解消するには至っていない。
【０００５】
回路の再設定が可能なリコンフィギュラブル回路層を持つ半導体デバイスでは、動作周波数が非常に高く、発熱が多いため、その対策が求められていた。
【課題を解決するための手段】
【０００６】
実施形態のデータ処理装置は、複数のリコンフィギュラブル回路層、第１のメモリ、選択ユニットおよび設定ユニットを含む。複数のリコンフィギュラブル回路層は、それぞれ処理回路の再設定が可能である。第１のメモリは、設定すべき処理回路を表した回路情報を記憶する。選択ユニットは、前記回路情報が表す処理回路を設定するために前記複数のリコンフィギュラブル回路層の全てを使用する必要が無い場合に、予め定めた優先順位の高い一部のリコンフィギュラブル回路層を選択し、それ以外の場合には前記複数のリコンフィギュラブル回路層の全てを選択する。設定ユニットは、前記選択されたリコンフィギュラブル回路層を使用して、前記第１のメモリに記憶された前記回路情報が表す処理回路を設定する。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態に係るデータ処理装置のブロック図。
【図２】図１に示すデータ処理装置の処理回路を設定する際における動作のフローチャート。
【図３】リコンフィギュラブル回路層の第１の使用状況を示す図。
【図４】リコンフィギュラブル回路層の第２の使用状況を示す図。
【図５】リコンフィギュラブル回路層の第３の使用状況を示す図。
【図６】図１に示すデータ処理装置のダイナミックモードにおける動作のフローチャート。
【図７】処理回路の変更前後での各処理回路の実装領域の一例を示す図。
【図８】処理回路の変更前後での各処理回路の実装領域の一例を示す図。
【図９】第２の実施形態に係るデータ処理装置のブロック図。
【図１０】図９に示すデータ処理装置の処理回路を設定する際における動作のフローチャート
【発明を実施するための形態】
【０００８】
以下、図面を参照していくつかの実施形態について説明する。
【０００９】
（第１の実施形態）
図１は第１の実施形態に係るデータ処理装置１のブロック図である。このデータ処理装置１は、例えばＢＧＡ（ball grid array）パッケージの積層型の半導体デバイスを用いたものである。データ処理装置１は、様々なデータの処理に適用できる。一例としてデータ処理装置１は、複合機（multi function peripheral：ＭＦＰ）における画像処理に適用できる。
【００１０】
データ処理装置１は、固定回路層１１、複数のリコンフィギュラブル回路層１２、設定（configuration）メモリ１３、パターンメモリ１４、判定ユニット１５、選択ユニット１６、設定ユニット１７および制御ユニット１８を含む。
【００１１】
固定回路層１１および複数のリコンフィギュラブル回路層１２は、それぞれ半導体の回路層であり、相互に必要な接続または配線がなされ、全体で例えば画像処理チップのようなデータ処理チップを構成する。
【００１２】
固定回路層１１は、データ処理装置１が適用されるＭＦＰにおいて必須の機能を実現するためのデータ処理を行うための処理回路が固定的に設定（configure）されている。固定回路層１１には、例えばＡＳＩＣ（application specific integrated circuit）回路を用いる。
【００１３】
複数のリコンフィギュラブル回路層１２はそれぞれ、多数の回路要素が二次元的に配列されており、これらの回路要素を適宜に使用して様々な処理回路を任意に設定できる。すなわちリコンフィギュラブル回路層１２は、実装する処理回路を再設定できる。
【００１４】
なお、リコンフィギュラブル回路層１２に設定する処理回路は、典型的には複数の回路ブロックを含む。そしてこれらの複数の回路ブロックを協働させることで１つの処理回路として機能する。１つの回路ブロックは、１つのリコンフィギュラブル回路層１２に設定される必要がある。異なるリコンフィギュラブル回路層１２にそれぞれ設定された別々の回路ブロックは協働できる。第１の実施形態においては、このような使用形態であることを前提とする。
【００１５】
設定メモリ１３は、複数のリコンフィギュラブル回路層１２に設定する処理回路を表す回路情報を記憶する。回路情報は、１つの処理回路に含まれる複数の回路ブロックのそれぞれの構成を個別に表す。
【００１６】
パターンメモリ１４は、優先順位情報１４ａおよび動的パターン情報１４ｂを記憶する。優先順位情報１４ａは、複数のリコンフィギュラブル回路層１２どうしの優先順位を表す。この優先順位は、複数のリコンフィギュラブル回路層１２の少なくとも一部に設定された処理回路での発熱についての放熱効率がなるべく良くなるように定められる。動的パターン情報１４ｂが表す配置パターンは、１つのリコンフィギュラブル回路層１２にそれぞれ別々のタイミングで設定すべき複数の処理回路のそれぞれを設定するために上記のリコンフィギュラブル回路層１２のどの領域を使用するかを表す。この優先順位および配置パターンは例えば、固定回路層１１および複数のリコンフィギュラブル回路層１２の実際の配置状況やそれらの周囲状況（放熱のために利用できる空間や部材の配置状況など）を考慮して設定することができる。この設定は、実験やシミュレーションなどにより得られた客観的な情報に基づいて適正に行われることが好ましいが、データ処理装置１の設計者の経験則に基づいて行われても良い。
【００１７】
判定ユニット１５は、リコンフィギュラブル回路層１２に設定する回路ブロックの個々の回路のサイズを表す数値（以下、単に回路サイズと称する）、設定メモリ１３に記憶された回路情報に基づいて判定する。
【００１８】
選択ユニット１６は、優先順位情報１４ａを参照しながら、回路ブロックを設定するリコンフィギュラブル回路層１２を選択する。選択ユニット１６は、１つのリコンフィギュラブル回路層１２に設定する処理回路を処理の進捗にともなって変更する必要がある場合に、該当するリコンフィギュラブル回路層１２内で処理回路を設定する領域を動的パターン情報１４ｂを参照しながらを選択する。
【００１９】
設定ユニット１７は、設定メモリ１３に記憶された回路情報が表す複数の回路ブロックのそれぞれを、各回路ブロックに関して選択ユニット１６により選択されたリコンフィギュラブル回路層１２に設定する。
【００２０】
制御ユニット１８は、ＣＰＵ（central processing unit）およびメモリなどを含む。制御ユニット１８は、予めメモリに書き込まれたプログラムに従ってＣＰＵが動作することによって、データ処理装置１の全体の動作を予め定められた手順で統括制御する。
【００２１】
次にデータ処理装置１の動作について説明する。
【００２２】
図２は処理回路を設定する際におけるデータ処理装置１の動作のフローチャートである。
【００２３】
ステップＳａ１において制御ユニット１８は、設定しようとする処理回路に関しての回路情報を設定メモリ１３へと転送する。
【００２４】
ステップＳａ２において制御ユニット１８は、変数ｍを「０」に、かつ変数Ｓ(m)をＳmax(m)にそれぞれ初期化する。変数ｍは、複数のリコンフィギュラブル回路層１２のそれぞれに設定された優先順位を表す。変数Ｓ(m)は、優先順位がｍ番であるリコンフィギュラブル回路層１２に追加で設定可能な回路のサイズを表す。Ｓmax(m)は、優先順位がｍ番であるリコンフィギュラブル回路層１２に初期状態において設定が可能な回路のサイズ（以下、最大回路サイズと称する）を表す。従ってＳmax(m)は、リコンフィギュラブル回路層１２の構造から定まる固定値である。
【００２５】
ステップＳａ３において制御ユニット１８は、設定メモリ１３に記憶されている回路情報が表す処理回路に含まれた複数の回路ブロックのうちでリコンフィギュラブル回路層１２への設定がなされていない１つの回路ブロックを選択する。この選択の順序は、予め定められた順序であっても良いし、ランダムであっても良い。
【００２６】
ステップＳａ４において制御ユニット１８は、選択した回路ブロックに関しての回路サイズを変数Ｓｃにセットする。具体的には、制御ユニット１８は選択した回路ブロックについての回路サイズを判定するように判定ユニット１５に指示する。この指示に応じて判定ユニット１５は、設定メモリ１３に記憶された回路情報を解析して選択された回路ブロックに関しての回路サイズを判定する。制御ユニット１８は、判定された回路サイズを判定ユニット１５から受け取って、変数Ｓｃにセットする。
【００２７】
ステップＳａ５において選択ユニット１６は、変数ｍを１つ増加する。
【００２８】
ステップＳａ６およびステップＳａ７において選択ユニット１６は、変数Ｓ(m)が変数Ｓｃ以上であるか、あるいは変数ｍが数値Ｍ以上であるかを確認する。なお、数値Ｍは、データ処理装置１が備えているリコンフィギュラブル回路層１２の数である。ここで、変数Ｓ(m)が変数Ｓｃ以上ではなく、かつ変数ｍが数値Ｍ以上ではないならば、選択ユニット１６はステップＳａ５に戻る。
【００２９】
かくして選択ユニット１６は、変数ｍを「０」から数値Ｍに到達するまで１つずつ増加しながら、変数Ｓ(m)が変数Ｓｃ以上となる変数ｍを探す。これにより、追加で設定可能な回路のサイズが選択されている回路ブロックの回路サイズよりも大きいリコンフィギュラブル回路層のうちで優先順位が最大のリコンフィギュラブル回路層１２が選択されることになる。
【００３０】
変数Ｓ(m)が変数Ｓｃ以上になっている場合、選択ユニット１６は変数ｍを設定ユニット１７に与える。
【００３１】
ステップＳａ８において設定ユニット１７は、優先順位が「ｍ」であるリコンフィギュラブル回路層１２に、選択されている回路ブロックを設定する。つまり設定ユニット１７は、選択ユニット１６が上記のように選択したリコンフィギュラブル回路層１２に、選択されている回路ブロックを設定する。
【００３２】
ステップＳａ９において制御ユニット１８は、回路情報が表す全ての回路ブロックの設定が完了したか否かを確認する。もし、全ての回路ブロックの設定が完了していないならば、制御ユニット１８はステップＳａ９からステップＳａ１０へ進む。
【００３３】
ステップＳａ１０において制御ユニット１８は、変数Ｓ(m)から変数Ｓｃを減じて求まる値を変数Ｓ(m)にセットする。さらに制御ユニット１８は、変数ｍに０をセットする。そしてこののちに制御ユニット１８は、ステップＳａ３に戻る。これにより、未設定の別の回路ブロックを対象として上記の動作が繰り返される。
【００３４】
そして、全ての回路ブロックの設定が完了したならば、データ処理装置１はステップＳａ１乃至ステップＳａ１０の処理ループをステップＳａ９から抜け出して図２に示す動作を終了する。
【００３５】
ステップＳａ５乃至ステップＳａ７の処理ループにおいて選択ユニット１６が、選択されている回路ブロックを設定可能なリコンフィギュラブル回路層１２を選択できず、変数ｍが数値Ｍを超えてしまった場合には、選択ユニット１６はその旨を制御ユニット１８に通知する。
【００３６】
この通知を受けて制御ユニット１８はステップＳａ１１において、エラー処理を行う。エラー処理は例えば、回路情報が適正ではないことを、このデータ処理装置１を搭載する装置へと通知する処理である。そしてこのエラー処理を完了したならば、データ処理装置１は図２に示す動作を終了する。
【００３７】
以上のような動作により、基本的には、より優先順位の高いリコンフィギュラブル回路層１２から順に回路ブロックが設定されて行く。
【００３８】
以下に、処理回路の回路サイズに応じて複数のリコンフィギュラブル回路層１２がどのように利用されるのかについてより具体的に説明する。
【００３９】
ここでは、リコンフィギュラブル回路層１２の数が４であることとし、これらのリコンフィギュラブル回路層を、符号12-1，12-2，12-3，12-4を付して区別することとする。そして固定回路層１１およびリコンフィギュラブル回路層12-1〜12-4は、図３に示すような順序で積層されていることとする。なお図３における符号１９は基板を示す。また図３における破線は、パッケージの輪郭を表す。すなわち、最下層がリコンフィギュラブル回路層12-1であり、その上方に固定回路層１１、リコンフィギュラブル回路層12-2、リコンフィギュラブル回路層12-3、リコンフィギュラブル回路層12-4の順で積層されている。優先順位は、様々な条件を考慮して、リコンフィギュラブル回路層12-4、リコンフィギュラブル回路層12-1、リコンフィギュラブル回路層12-2、リコンフィギュラブル回路層12-3の順に定められていることとする。上記の条件は、例えば次のようなものを含む。(1)パッケージの上面または下面に近い部分の放熱効率が高くなっている。(2)回路が実装されている層が隣接しないことでより放熱効率が高くなる。(3)動作周波数がリコンフィギュラブル回路層１２のほうが固定回路層１１よりも高いために、回路が実装されたリコンフィギュラブル回路層１２どうしが隣接した場合は、回路が実装されたリコンフィギュラブル回路層１２と固定回路層１１と隣接した場合と比べて放熱効率が悪い。
【００４０】
以上のような条件の下においては、回路情報が表す処理回路の回路サイズ（以下、設定回路サイズと称する）がリコンフィギュラブル回路層12-4の最大回路サイズよりも小さければ、回路情報が表す処理回路は図３に示すように主としてリコンフィギュラブル回路層12-4に実装されることになる。なお図３では、画像処理にために動作する回路層をハッチングで示している。
【００４１】
設定回路サイズがリコンフィギュラブル回路層12-4の最大回路サイズ以上であり、かつ設定回路サイズがリコンフィギュラブル回路層12-4，12-1のそれぞれの最大回路サイズの和よりも小さければ、回路情報が表す処理回路は図４に示すように主としてリコンフィギュラブル回路層12-4，12-1に実装されることになる。なお図４では、画像処理にために動作する回路層をハッチングで示している。
【００４２】
設定回路サイズが設定回路サイズがリコンフィギュラブル回路層12-4，12-1のそれぞれの最大回路サイズの和以上であり、かつ設定回路サイズがリコンフィギュラブル回路層12-4，12-1，12-2のそれぞれの最大回路サイズの総和よりも小さければ、回路情報が表す処理回路は図５に示すように主としてリコンフィギュラブル回路層12-4，12-1，12-2に実装されることになる。なお図５では、画像処理にために動作する回路層をハッチングで示している。
【００４３】
そして設定回路サイズがリコンフィギュラブル回路層12-4，12-1，12-2のそれぞれの最大回路サイズの総和以上であるならば、回路情報が表す処理回路は全てのリコンフィギュラブル回路層12-4，12-1，12-2，12-3に実装されることになる。
【００４４】
以上により、処理回路を複数のリコンフィギュラブル回路層１２のうちの一部のみを使用して構成することが可能であるならば、処理回路は放熱効率がより良くなるように選択されたリコンフィギュラブル回路層１２に実装される。このため、データ処理装置１の全体での発熱を抑制することが可能になる。
【００４５】
データ処理装置１は、１つのリコンフィギュラブル回路層１２における処理回路の設定状況を処理の進捗に伴って動的に変更するダイナミックモードを有する。
【００４６】
図６はダイナミックモードにおけるデータ処理装置１の動作のフローチャートである。この図６の動作は、１つのリコンフィギュラブル回路層１２を対象として行われるものである。図６の動作は、必要に応じて別々のリコンフィギュラブル回路層１２を対象として個別に行われても良い。
【００４７】
図６に示す動作は、上述した動作により複数のリコンフィギュラブル回路層１２への処理回路の設定が完了したのちに開始される。
【００４８】
ステップＳｂ１において制御ユニット１８は、複数のリコンフィギュラブル回路層１２に設定された処理回路に指示する。この指示に応じて処理回路が予め定められた処理を実行する。そして、そしてこの処理を完了したならば処理回路は、制御ユニット１８に対して割り込み信号を出力する。この割り込み信号は、どのような処理が完了したのかを認識するための情報を含む。
【００４９】
そこでステップＳｂ２において制御ユニット１８は、上記の割り込み信号が到来するのを待ち受ける。そして割り込み信号が到来したならば制御ユニット１８は、ステップＳｂ３へと進む。
【００５０】
ステップＳｂ３において制御ユニット１８は、処理内容を切り換える必要があるか否かを割り込み信号に基づいて判定する。そしてその必要があることが確認できたならば、その旨を選択ユニット１６および設定ユニット１７に通知する。そしてこれによりデータ処理装置１の動作は、ステップＳｂ３からステップＳｂ４へと進む。
【００５１】
ステップＳｂ４において選択ユニット１６は、動的パターン情報１４ｂを参照する。
【００５２】
ステップＳｂ５において選択ユニット１６は、動的パターン情報１４ｂに基づいて、変更後の処理回路を実装する領域を決定する。そして選択ユニット１６は、決定した領域を設定ユニット１７に通知する。
【００５３】
ステップＳｂ６およびステップＳｂ７において設定ユニット１７は、変更後の処理回路に含まれる回路ブロックのそれぞれを、それらの全ての設定を完了するまで１つずつ順に設定する。ここで回路ブロックを設定する領域は、上記のように選択ユニット１６により決定された領域である。
【００５４】
そして設定ユニット１７が全ての回路ブロックを設定し終えならば、データ処理装置１の動作はステップＳｂ１に戻る。
【００５５】
以上のような動作により、変更の前後でそれぞれの処理回路が実装される領域が変更される。なお、処理回路は、変更の前後で同じであっても良いし、別々であっても良い。
【００５６】
図７および図８は処理回路の変更前後での各処理回路の実装領域の一例を示す図である。
【００５７】
この例では、リコンフィギュラブル回路層１２を４つの領域５１，５２，５３，５４に仮想的に分割し、第１の状態においては図７に示すように領域５１，５３に処理回路を実装し、第２の状態においては図８に示すように領域５２，５４に処理回路を実装する。なお、図７，８においては、処理回路が実装された領域をハッチングにより表している。
【００５８】
なお、図７および図８では、変更前の処理回路と変更後の処理回路のサイズとがほぼ等しい例を示しているが、処理回路が変更の前後で別々である場合、処理回路が実装される領域の大きさが変更の前後で異なる場合もあり得る。また、図７および図８では、変更の前後のそれぞれの回路実装領域が互いに重複しないが、一部が重複する場合もあり得る。
【００５９】
このようにリコンフィギュラブル回路層１２の中で処理回路を実装する領域を変化させることで、処理回路により生じた熱が同一領域に集中して蓄積されることを防止して効率的に放熱することが可能となる。このため、データ処理装置１の全体での発熱を抑制することが可能になる。
【００６０】
（第２の実施形態）
図９は第２の実施形態に係るデータ処理装置２のブロック図である。なお、図９において図２と同一部分には同一符号を付し、その詳細な説明は省略する。このデータ処理装置２も、例えばＢＧＡパッケージの積層型の半導体デバイスを用いたものである。データ処理装置２は、様々なデータの処理に適用できる。一例としてデータ処理装置２は、ＭＦＰにおける画像処理に適用できる。
【００６１】
データ処理装置２は、固定回路層１１、複数のリコンフィギュラブル回路層１２、設定メモリ１３、パターンメモリ１４、判定ユニット２１、算出ユニット２２、選択ユニット２３、設定ユニット２４および制御ユニット２５を含む。すなわちデータ処理装置２は、データ処理装置１における判定ユニット１５、選択ユニット１６、設定ユニット１７および制御ユニット１８に代えて判定ユニット２１、選択ユニット２３、設定ユニット２４および制御ユニット２５を備えるとともに、算出ユニット２２を備える。
【００６２】
データ処理装置２は、データ処理装置１と多くの面で共通する。そこで以下においては、データ処理装置２においてデータ処理装置１と相違する事項を中心として説明し、共通する事項についての説明は省略する。
【００６３】
パターンメモリ１４は、優先順位情報１４ａの代わりに静的パターン情報１４ｃを記憶する。静的パターン情報１４ｃは、複数のリコンフィギュラブル回路層１２のうちのいずれを処理回路の設定のために使用するかを使用率に関連付けて表す。どの使用率に対してどのリコンフィギュラブル回路層１２を使用するかは例えば、固定回路層１１および複数のリコンフィギュラブル回路層１２の実際の配置状況やそれらの周囲状況（放熱のために利用できる空間や部材の配置状況など）を考慮して設定することができる。この設定は、実験やシミュレーションなどにより得られた客観的な情報に基づいて適正に行われることが好ましいが、データ処理装置１の設計者の経験則に基づいて行われても良い。
【００６４】
判定ユニット２１は、複数のリコンフィギュラブル回路層１２へと設定する処理回路の全体のサイズ（以下、総回路サイズと称する）を、設定メモリ１３に記憶された回路情報に基づいて判定する。
【００６５】
算出ユニット２２は、予め決まっている設定可能サイズに対する総回路サイズの比率として使用率を算出する。なお設定可能サイズは、複数のリコンフィギュラブル回路層１２に初期状態において設定が可能な回路の最大サイズである。
【００６６】
選択ユニット２３は、使用率および静的パターン情報に基づいて、処理回路を設定するために使用するリコンフィギュラブル回路層１２を複数のリコンフィギュラブル回路層１２の中から選択する。選択ユニット２３は、選択ユニット１６と同様に、リコンフィギュラブル回路層１２内で処理回路を設定する領域を動的パターン情報１４ｂを参照しながらを選択する機能も有する。
【００６７】
設定ユニット２４は、設定メモリ１３に記憶された回路情報が表す複数の回路ブロックのそれぞれを、選択ユニット１６により選択されたリコンフィギュラブル回路層１２に設定する。
【００６８】
制御ユニット２５は、ＣＰＵおよびメモリなどを含む。制御ユニット２５は、予めメモリに書き込まれたプログラムに従ってＣＰＵが動作することによって、データ処理装置２の全体の動作を予め定められた手順で統括制御する。
【００６９】
次にデータ処理装置２の動作について説明する。
【００７０】
図１０は処理回路を設定する際におけるデータ処理装置２の動作のフローチャートである。
【００７１】
ステップＳｃ１において制御ユニット２５は、設定しようとする処理回路に関しての回路情報を設定メモリ１３へと転送する。
【００７２】
ステップＳｃ２において制御ユニット２５は、変数ｎを「０」に初期化する。変数ｎは、回路ブロックの設定を行ったリコンフィギュラブル回路層１２の数を表す。
【００７３】
ステップＳｃ３において判定ユニット２１は、設定メモリ１３に記憶された回路情報に基づき、それが表す処理回路の総回路サイズＳａを判定する。
【００７４】
ステップＳｃ４において算出ユニット２２は、設定可能サイズに対する総回路サイズＳａの比率として使用率を算出する。
【００７５】
ステップＳｃ５において選択ユニット２３は、算出された使用率が１００％以下であるか否かを確認する。そして使用率が１００％以下であったならば、選択ユニット２３はステップＳｃ５からステップＳｃ６へ進む。
【００７６】
ステップＳｃ６において選択ユニット２３は、算出された使用率と静的パターン情報１４ｃとに基づいて、１つまたは複数の配置層を決定するとともに、この決定した配置層の数を変数Ｎにセットする。なお、配置層とは、回路ブロックを設定するために使用するリコンフィギュラブル回路層１２を指す。
【００７７】
ステップＳｃ７において選択ユニット２３は、配置層のうちの未選択の１つの選択する。
【００７８】
ステップＳｃ８において制御ユニット２５は、変数ｎを１つ増加する。
【００７９】
ステップＳｃ９において設定ユニット２４は、回路情報が表す複数の回路ブロックのうちから合計回路サイズがＳａ／Ｎで求まる値に近似した値となる複数の回路ブロックを選出する。そして設定ユニット２４は、選択しているリコンフィギュラブル回路層１２に上記の選出した回路ブロックを設定する。
【００８０】
ステップＳｃ９において制御ユニット２５は、変数ｎが変数Ｎ以上になっているか否かを確認する。そして変数ｎが変数Ｎ未満であるならば、データ処理装置２はステップＳｃ７以降の動作を繰り返す。これにより、配置層とされた１つのリコンフィギュラブル回路層１２に、または配置層とされた複数のリコンフィギュラブル回路層１２のそれぞれに、順次に回路ブロックが設定されてゆく。
【００８１】
配置層とされた全てのリコンフィギュラブル回路層１２に対する回路ブロックの設定が完了したならば、制御ユニット２５はステップＳｃ１０において変数ｎが変数Ｎ以上になっていると判定することになる。そうするとデータ処理装置２は図１０に示す動作を終了する。
【００８２】
ところで、算出された使用率が１００％を超えた場合には、制御ユニット２５はステップＳｃ５からステップＳｃ１１へ進む。そしてステップＳｃ１１において制御ユニット２５は、エラー処理を行う。エラー処理は例えば、回路情報が適正ではないことを、このデータ処理装置２を搭載する装置へと通知する処理である。そしてこのエラー処理を完了したならば、データ処理装置２は図１０に示す動作を終了する。
【００８３】
以上のような動作により、処理回路を構成する複数の回路ブロックの設定のために複数のリコンフィギュラブル回路層１２の全てを使用する必要が無い場合には、複数のリコンフィギュラブル回路層１２のうちでより放熱効率の良いリコンフィギュラブル回路層１２を利用して処理回路が実装される。
【００８４】
以下に、使用率に応じて複数のリコンフィギュラブル回路層１２がどのように利用されるのかについてより具体的に説明する。
【００８５】
ここでは、リコンフィギュラブル回路層12-1〜12-4が図３に示すような順序で積層されていることとする。そしてリコンフィギュラブル回路層12-1〜12-4は、初期状態において設定が可能な回路の最大サイズが互いに等しいこととする。
【００８６】
この場合、静的パターン情報１４ｃを、例えば次のような使用率と配置層との関係を表したものとする。
【００８７】
使用率≦２５％：リコンフィギュラブル回路層12-4。
【００８８】
２５％＜使用率≦５０％：リコンフィギュラブル回路層12-1，12-4。
【００８９】
５０％＜使用率≦７５％：リコンフィギュラブル回路層12-1，12-2，12-4。
【００９０】
７５％＜使用率        ：リコンフィギュラブル回路層12-1，12-2，12-3，12-4。
【００９１】
そうすると、第１の実施形態と同様に、放熱効率の高いリコンフィギュラブル回路層１２が優先的に使用されることになる。
【００９２】
この実施形態は、次のような種々の変形実施が可能である。
【００９３】
固定回路層１１を備えなくても良い。
【００９４】
各実施形態で述べた動作はあくまでも一例である。結果として、放熱効率のより良いリコンフィギュラブル回路層１２へと優先的に回路を設定できれば良いのであり、そのための細かな手順は適宜に変更が可能である。
【００９５】
ダイナミックモードにおいては、３つ以上の回路設定状況を切り換えても良い。この場合、全ての回路設定状況で回路の設定領域を異ならせても良いし、一部の回路設定状況のみで他の回路設定状況とは回路の設定領域を異ならせても良い。
【００９６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９７】
１，２…データ処理装置、１１…固定回路層、１２（12-1〜12-4）…リコンフィギュラブル回路層、１３…設定メモリ、１４…パターンメモリ、１４ａ…優先順位情報、１４ｂ…動的パターン情報、１４ｃ…静的パターン情報、１５，２１…判定ユニット、１６，２３…選択ユニット、１７，２４…設定ユニット、１８，２５…制御ユニット、２２…算出ユニット。
【図１】
2011139464.tif 000003
【図２】
2011139464.tif 000004
【図３】
2011139464.tif 000005
【図４】
2011139464.tif 000006
【図５】
2011139464.tif 000007
【図６】
2011139464.tif 000008
【図７】
2011139464.tif 000009
【図８】
2011139464.tif 000010
【図９】
2011139464.tif 000011
【図１０】
2011139464.tif 000012