(57)【要約】【課題】アレイ型演算装置において好適に電力削減可能とする技術を提供する。【解決手段】それぞれが１以上の演算要素を含み個別に電源制御可能に構成された複数の回路ブロックを有するアレイ型演算装置で利用される構成情報を生成する構成情報生成装置において、第１の構成情報と第２の構成情報とを取得する取得手段と、アレイ型演算装置が使用する構成情報を第１の構成情報から第２の構成情報に変更した場合に電源制御の対象となる回路ブロックの数が少なくなるように第１の構成情報及び第２の構成情報の少なくとも一方の構成情報を修正する修正手段と、を有する。【選択図】図１
2014167764.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが１以上の演算要素を含み個別に電源制御可能に構成された複数の回路ブロックを有するアレイ型演算装置で利用される構成情報を生成する構成情報生成装置であって、前記構成情報は、前記複数の回路ブロックの何れの１以上の回路ブロックを使用するかを規定する情報を含んでおり、前記構成情報生成装置は、
第１の構成情報と第２の構成情報とを取得する取得手段と、
前記アレイ型演算装置が使用する構成情報を前記第１の構成情報から前記第２の構成情報に変更した場合に、電源制御の対象となる回路ブロックの数が少なくなるように前記第１の構成情報及び前記第２の構成情報の少なくとも一方の構成情報を修正する修正手段と、
を有することを特徴とする構成情報生成装置。
【請求項２】
前記修正手段は、前記アレイ型演算装置が使用する構成情報を前記第１の構成情報から前記第２の構成情報に変更した場合に、電源制御の対象となる回路ブロックの数が最少となるように前記第１の構成情報及び前記第２の構成情報の少なくとも一方の構成情報を修正する
ことを特徴とする請求項１に記載の構成情報生成装置。
【請求項３】
前記第１の構成情報及び前記第２の構成情報の各々で使用される回路ブロックを判定する判定手段と、
前記判定手段による判定結果に基づいて前記最少となる値を算出する最少値算出手段と、
前記アレイ型演算装置が使用する構成情報を前記第１の構成情報から前記第２の構成情報に変更した場合に電源制御の対象となる回路ブロックの数を算出する制御対象ブロック数算出手段と、
前記判定手段により前記第１の構成情報及び前記第２の構成情報により使用されると判定された回路ブロックに対し相対的に高い優先度を設定する優先度設定手段と、
を更に有し、
前記修正手段は、前記制御対象ブロック数算出手段により算出された電源制御の対象となる回路ブロックの数が前記最少値算出手段により算出された前記最少となる値より大きい場合に、前記優先度設定手段により相対的に高い優先度が設定された回路ブロックを使用するように前記第２の構成情報で使用される回路ブロックを修正する
ことを特徴とする請求項２に記載の構成情報生成装置。
【請求項４】
それぞれが１以上の演算要素を含み個別に電源制御可能に構成された複数の回路ブロックを有するアレイ型演算装置で利用される構成情報を生成する構成情報生成装置であって、前記構成情報は、前記複数の回路ブロックの何れの１以上の回路ブロックを使用するかを規定する情報を含んでおり、前記構成情報生成装置は、
前記アレイ型演算装置で連続して使用されるＮ個（Ｎは３以上の整数）の構成情報を取得する取得手段と、
前記アレイ型演算装置が使用する構成情報を１番目の構成情報からＮ番目の構成情報に順に変更した場合に電源制御の対象となる回路ブロックの数が少なくなるように、Ｋ番目（Ｋは１≦Ｋ≦Ｎ−１を満たす整数）の構成情報とＫ＋２番目の構成情報とに基づいてＫ＋１番目の構成情報を修正する修正手段と、
を有することを特徴とする構成情報生成装置。
【請求項５】
構成情報を保持する保持手段と、
それぞれが１以上の演算要素を含み個別に電源制御可能に構成され、前記保持手段に保持している構成情報に対応する設定に基づいて、処理を実行する複数の回路ブロックと、
前記回路ブロックが使用する構成情報を、第１の構成情報から第２の構成情報に変更する際に、電源制御の対象となる回路ブロックの数が少なくなるように前記第２の構成情報を修正し、当該修正後の第２の構成情報に基づいて前記回路ブロックに処理を実行させる制御手段と、
を有することを特徴とする演算装置。
【請求項６】
それぞれが１以上の演算要素を含み個別に電源制御可能に構成された複数の回路ブロックを有するアレイ型演算装置で利用される構成情報を生成する構成情報生成装置の制御方法であって、前記構成情報は、前記複数の回路ブロックの何れの１以上の回路ブロックを使用するかを規定する情報を含んでおり、前記制御方法は、
第１の構成情報と第２の構成情報とを取得する取得工程と、
前記アレイ型演算装置が使用する構成情報を前記第１の構成情報から前記第２の構成情報に変更した場合に、電源制御の対象となる回路ブロックの数が少なくなるように前記第１の構成情報及び前記第２の構成情報の少なくとも一方の構成情報を修正する修正工程と、
を含むことを特徴とする構成情報生成装置の制御方法。
【請求項７】
構成情報を保持する保持手段と、それぞれが１以上の演算要素を含み個別に電源制御可能に構成され、前記保持手段に保持している構成情報に対応する設定に基づいて、処理を実行する複数の回路ブロックと、を有する演算装置の制御方法であって、
前記回路ブロックが使用する構成情報を、第１の構成情報から第２の構成情報に変更する際に、電源制御の対象となる回路ブロックの数が少なくなるように前記第２の構成情報を修正し、当該修正後の第２の構成情報に基づいて前記回路ブロックに処理を実行させる制御工程を含むことを特徴とする演算装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の演算要素で構成され動的再構成可能なアレイ型演算装置における電力制御技術に関するものである。
【背景技術】
【０００２】
半導体製造技術の進歩による素子の微細化に伴い、膨大な数のトランジスタが大規模集積回路（ＬＳＩ）上に集積されるようになっている。ただし、動作時の電力増加と共に非動作時におけるリーク電流に起因する電力増加により、プロセスの微細化やプロセッサの高周波数化による性能向上に限界が見え始めている。そこで、近年、中央演算装置（ＣＰＵ）、デジタルシグナルプロセッサ（ＤＳＰ）、単体の演算器、もしくは複数の演算器を組み合わせた演算ユニットなどの演算要素を、単一のＬＳＩ上に複数搭載した情報処理装置が注目されている。これは複数の演算要素を用いて処理を並列で行うことで高い演算性能を得ることができるためである。
【０００３】
ただし、大規模化・集積化により演算要素数を増やし理論性能を向上させることができるものの、増大する消費電力を抑制する対策を講じなければ、性能向上と省電力化を両立させることができない。今後も引き続き高機能化・高性能化のため、集積化が進み多数の演算要素が搭載されると予想されることから、電力対策は重要な課題となっている。
【０００４】
半導体集積回路で消費される電力には、機能動作時に消費する電力であるダイナミック電力と、回路に電源を供給するだけ消費される電力であるスタティック電力が含まれる。ダイナミック電力は、信号変化に伴い駆動する寄生容量の充放電で流れる電流と貫通電流のようなトランジスタのスイッチング時に流れる電流が原因になって消費される。従って、機能動作に支障の無い範囲で信号変化を抑えるとダイナミック電力を削減することが出来る。このような原理に基づく代表的な省電力化の手法としてクロックゲーティングがあり、一般に広く用いられている。一方、スタティック電力は、トランジスタの寄生容量に充電される電荷とリーク電流のために消費される電力である。プロセスの微細化に進むに従って、寄生容量は減少しリーク電流は増加する傾向にある。特に、ポリシリコンのゲート酸化膜の薄膜化に伴い、一時期、リーク電流は指数関数的な増加傾向を示していた。
【０００５】
リーク電流を削減するにはトランジスタに供給する電圧を小さく制限するか、または、遮断してしまう方法が有効である。このためリーク電力削減を目的とした技術として、同一電源で駆動されるブロックの電源遮断が一般に広く用いられる。半導体集積回路における電源遮断とは、電源遮断の対象となる箇所（電源制御領域）への電源供給経路と電源をトランジスタで構成された電源スイッチを用いて接続し、必要に応じて、電源スイッチの導通と遮断を切り替える技術である。現在では、材料や製造方法の改善によりリーク電流は以前のような指数関数的な増加傾向を示すことはなくなったが、依然、線形的に増加しているため、電源遮断の技術はこれからも重要であると考えられる。
【０００６】
つまり、大規模化した半導体集積回路においてもリーク電力を効率的に削減するために、この電源遮断技術が用いられる。複数の電源遮断領域を構成し、稼働していない演算要素を部分的に電源遮断するきめ細かい電源管理を行うことで消費電力を抑制させることが可能になる。
【０００７】
ところで、電源遮断の対象となる回路ブロックでは、一旦電源が遮断されるとブロック内の容量に蓄積されていた電荷は時間とともに放電して減少していき、なくなってしまう。そのため電源遮断を行った後、再び回路動作させるためには、回路ブロック内の容量に再び電荷を蓄積する必要がある。そのため、電荷を蓄積する時間を追加で要することになるため処理性能が低下する原因となる。
【０００８】
このような状況に鑑み、例えば、特許文献１では、各演算回路を操作する命令を先行検出し、検出された命令に対応した演算回路を一つ以上演算実行に先行して活性化し、二つ以上の演算回路を用いて同時に演算実行するマイクロプロセッサが提案されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００４−１７８６１３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
今後さらに高機能化・高性能化が求められるため、先端の製造プロセスを用いた集積化が進み、多数のＰＥが搭載されると予想される。そのため、リーク電力を効率的に削減するために、複数の電源制御領域を構成し、稼働していないＰＥを部分的に電源遮断するきめ細かい電源管理を行う必要がある。
【００１１】
しかしながら、電源制御領域を多数設ければ設けるほど、パワースイッチ部分の面積が増加し、加えて電源遮断、復帰の制御も複雑になる。また、電源遮断、復帰の制御を行う場合、回路ブロックが持っている容量の分だけ電荷を供給する必要があり電力（チャージ電力ともいう）を消費することになる。つまり、プロセッサアレイ上に処理をマッピングするにあたって、複数の電源制御領域に分散して処理をマッピングした場合、チャージ電力を余分に消費することとなる。上述の特許文献１の技術では、演算実行前に演算器の活性化を先行して活性化するもので、電源の復帰・遮断の回数を削減できるものではないためチャージ電力の問題には対処できない。
【００１２】
本発明は上述の問題点に鑑みなされたものであり、複数のＰＥを有するアレイ型演算装置においてリーク電力やチャージ電力などの電力を好適に削減可能とすることを目的とする。
【課題を解決するための手段】
【００１３】
上述の問題点を解決するため、本発明の構成情報生成装置は以下の構成を備える。すなわち、それぞれが１以上の演算要素を含み個別に電源制御可能に構成された複数の回路ブロックを有するアレイ型演算装置で利用される構成情報を生成する構成情報生成装置であって、前記構成情報は、前記複数の回路ブロックの何れの１以上の回路ブロックを使用するかを規定する情報を含んでおり、前記構成情報生成装置は、第１の構成情報と第２の構成情報とを取得する取得手段と、前記アレイ型演算装置が使用する構成情報を前記第１の構成情報から前記第２の構成情報に変更した場合に、電源制御の対象となる回路ブロックの数が少なくなるように前記第１の構成情報及び前記第２の構成情報の少なくとも一方の構成情報を修正する修正手段と、を有する。
【発明の効果】
【００１４】
本発明によれば、アレイ型演算装置において好適に電力削減可能とする技術を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】第１実施形態に係るデータ処理装置の全体構成を示す図である。
【図２】回路ブロックの内部構成を示す図である。
【図３】演算要素の内部構成の一例を示す図である。
【図４】ルータの内部構成の一例を示す図である。
【図５】構成情報の一例を示す図である。
【図６】構成情報のデータフォーマットの一例を示す図である。
【図７】演算処理割り当て部の内部構成を示す図である。
【図８】回路ブロック判別部の内部構成を示す図である。
【図９】第１実施形態に係るデータ処理装置を搭載した半導体装置の全体構成を示す図である。
【図１０】外部メモリにおける構成情報の配置の一例を示す図である。
【図１１】構成情報生成装置のブロック構成を示す図である。
【図１２】回路ブロック設定の一例を示す図である。
【図１３】構成情報を再生成する処理を説明するフローチャートである。
【図１４】電源切り替え回数を算出する処理を説明するフローチャートである。
【図１５】回路ブロック選択リストを例示的に示す図である。
【図１６】最少の電源切り替え回数の算出する方法を説明する図である。
【図１７】優先度設定の処理を説明するフローチャートである。
【図１８】優先度設定リストを例示的に示す図である。
【図１９】回路ブロック設定の処理を説明するフローチャートである。
【図２０】データ処理装置における処理状態の変化の過程を説明する図である。
【図２１】構成情報が選択する回路ブロックの変更の過程を説明する図である。
【図２２】生成される回路ブロック選択リストを例示的に示す図である。
【図２３】生成される優先度リストを例示的に示す図である。
【図２４】データフローの変更を例示的に示す図である。
【図２５】データフローの変更を例示的に示す図である。
【図２６】変形例に係るデータ処理装置の全体構成を示す図である。
【図２７】第２実施形態に係る演算処理割り当て部の内部構成を示す図である。
【図２８】構成情報生成部の内部構成を示す図である。
【図２９】電源切り替え回数算出部の内部構成を示す図である。
【図３０】回路ブロック優先度設定部の内部構成を示す図である。
【発明を実施するための形態】
【００１６】
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。
【００１７】
（第１実施形態）
本発明の第１実施形態として、アレイ型演算装置である動的再構成回路１０６を含むデータ処理装置１００（演算システム）を例に挙げて以下に説明する。特に、動的再構成回路１０６内の回路ブロックにおける電源の切り替え回数が少なくなるような構成情報を生成する動作について説明する。
【００１８】
＜１．装置構成＞
＜１．１．データ処理装置の構成＞
図１は、第１実施形態に係るデータ処理装置１００の全体構成を示す図である。データ処理装置１００は、動的再構成回路１０６、演算処理割り当て部１０５、電源制御部１０３から構成される。以下で説明するように、データ処理装置１００は、外部から入力される構成情報１０８に基づいて、動的再構成回路１０６を用いて処理を行う。構成情報１０８は、後述する構成情報生成装置１１００によって生成される。
【００１９】
動的再構成回路１０６は、少なくとも１つの演算要素１０１を含む複数の回路ブロック１０２からなる。各演算要素１０１と各ルータ１０４は信号線１１１によって一方向に接続されている。信号線１１１は、図１に示すように回路ブロック１０２ごとに設けられる。
【００２０】
回路ブロック１０２は、演算要素１０１とルータ１０４を含むブロックである。回路ブロック１０２には、電源回路ブロック（不図示）から電源スイッチ１０７を介して電源電圧ＶＤＤが供給されている。各々の回路ブロック１０２は、個別に電源制御可能（電源遮断と電源供給の切り替え）に構成されている。各々の回路ブロック１０２には、電源遮断と電源供給を切り替えるための電源スイッチ１０７を接続する。
【００２１】
演算処理割り当て部１０５は、構成情報１０８を取得して、信号線１１４を介して電源制御部１０３に回路ブロックの情報を送信する。なお、ここで述べる演算処理の割り当てとは、処理と当該処理を実行する構成要素（演算要素やとルータ）とを関連付けることを意味する。ここでは、各構成要素（演算要素やルータ）の内部に構成情報内の設定値を書き込むことで、構成要素への処理の割り当てを実施する。
【００２２】
また、演算処理割り当て部１０５は、信号線１１１を介して構成情報１０８を各回路ブロック１０２へパラレルに送信した後、次に使用する構成情報１０８を受信する。また、演算処理割り当て部１０５は、構成情報１０８の送信後、信号線１１７を介して演算要素１０１へ演算処理の開始を指示する信号を送信する。演算処理割り当て部１０５は、演算要素１０１が演算処理を完了したときに、信号線１１２を介して処理完了を通知する信号を受信する。ここでは、演算処理割り当て部１０５から各演算要素１０１へパラレルに演算処理の開始を指示する信号を送信するため、信号線１１７は、演算要素１０１の数と同数だけ設けられる。また、演算処理割り当て部１０５は、各演算要素１０１からパラレルに処理完了を通知する信号を受信するため、信号線１１２についても演算要素１０１の数と同数だけ設けられる。
【００２３】
電源制御部１０３は、演算処理割り当て部１０５から回路ブロック情報を受信し、信号線１１０を介して電源スイッチ１０７のオン・オフを切り替える。また、電源制御部１０３は、信号線１１３を介して演算処理割り当て部１０５に電源スイッチの切り替えが完了したことを通知する。
【００２４】
図２は、回路ブロック１０２の内部構成を示す図である。演算要素１０１は、４系統の入力部と出力部を持ち、ルータ１０４は８系統の入力部と出力部を持つ。
【００２５】
演算要素１０１は、信号線２０１〜２０８によって、ルータと接続されている。演算要素１０１は、データ入力用の信号線２０１〜２０４から供給されるデータを処理し、データ出力用の信号線２０５〜２０８から処理データを出力する処理部である。演算要素１０１は、演算処理割り当て部１０５から信号線１１７を介して演算処理の開始を指示する信号を受信する。演算要素１０１は処理が完了した後、信号線１１２を介して演算処理割り当て部１０５に処理完了を通知する信号を送信する。
【００２６】
ルータ１０４は、回路ブロック内で隣接する他のルータと信号線２０９〜２１６で接続されている。信号線２１０、２１１、２１３、２１５は、ルータ１０４が、隣接する他のルータからデータを受信するための信号線である。一方、信号線２０９、２１２、２１４、２１６は、ルータ１０４が、隣接する他のルータへデータを送信するための信号線である。
【００２７】
図３は、演算要素１０１の内部構成の一例を示す図である。演算要素１０１は、構成情報設定部３０１、構成情報記憶部３０２、演算処理部３０３、データ入力部３０４、データ出力部３０５で構成される。
【００２８】
構成情報設定部３０１は、信号線１１１を介して構成情報１０８を受信する。また、構成情報設定部３０１は、信号線３０６を介してデータ入力部３０４へ入力の切り替えのための設定値を送信する。また、構成情報設定部３０１は、信号線３０７を介して演算処理部３０３へ処理の内容を決めるための設定値を送信する。更に、構成情報設定部３０１は、信号線３０８を介してデータ出力部３０５へ出力の切り替えのための設定値を送信する。
【００２９】
図４は、ルータ１０４の内部構成の一例を示す図である。ルータ１０４は、構成情報設定部４０１、構成情報記憶部４０２、入出力切り替え部４０３で構成される。構成情報設定部４０１は、信号線１１１を介して構成情報１０８を受信する。構成情報設定部４０１は、信号線４０４を介して入出力切り替え部４０３へ、入出力の切り替えをするための設定値を送信する。
【００３０】
図５は、構成情報１０８の一例を示す図である。この構成情報１０８は、データ処理装置１００の動的構成を規定するものである。構成情報１０８は、演算要素に対する設定データ５０１とルータに対する設定データ５０２とを含む情報である。ここでは、演算要素の設定データ５０１がＸ個、ルータの設定データ５０２がＹ個である場合を示している。つまり、図５の構成情報１０８は、Ｘ個の演算要素、Ｙ個のルータに対する設定を含むデータである。また、図５は、１つの構成要素（演算要素やルータ）に対する構成情報がＮビットのバイナリデータである例を示している。
【００３１】
図６は、構成情報のデータフォーマットの一例を示す図である。ここでは、演算要素に対する設定データ５０１とルータに対する設定データ５０２との双方に同一のデータフォーマットを用いた例を示している。設定データは、識別番号（ＩＤ）６０１、アドレス６０２、設定値６０３を含む。
【００３２】
ＩＤ６０１は、それぞれの演算要素またはルータに固有に設定されている識別番号である。アドレス６０２は、各演算要素、またはルータの内部にある構成情報記憶部３０２、４０２に設定値６０３を書き込むときに、構成情報記憶部３０２、４０２の書き込み領域を指定するものである。設定値６０３は、演算要素１０１とルータ１０４の動作を設定する値である。
【００３３】
図７は、演算処理割り当て部１０５の内部構成を示す図である。演算処理割り当て部１０５は、構成情報受信部７０１、構成情報送信部７０２、ＩＤ判別部７０３、回路ブロック判別部７０４で構成される。構成情報受信部７０１は、信号線１１５を介して構成情報１０８の読み出し指示を送信して、信号線１１６を介して構成情報１０８を受信する。その後、構成情報受信部７０１はＩＤ判別部７０３と構成情報送信部７０２に構成情報１０８を送信する。
【００３４】
ＩＤ判別部７０３は、構成情報受信部７０１から構成情報１０８を受信して、ＩＤ６０１を回路ブロック判別部７０４に送信する。回路ブロック判別部７０４は、ＩＤ判別部７０３からＩＤ６０１を受信して、信号線１１４を介して回路ブロック情報を出力する。回路ブロック判別部７０４は、例えば、ＩＤ６０１と回路ブロックを関連付けるテーブルを内部に備える構成とすれば良い。
【００３５】
構成情報送信部７０２は、信号線１１３を介して電源スイッチの切り替えが完了したことを通知された後、構成情報受信部７０１から構成情報１０８を受信する。その後、構成情報送信部７０２は、信号線１１１を介して構成情報１０８を動的再構成回路１０６に送信する。また、構成情報送信部７０２は、信号線１１１を介して回路ブロック内を一巡してきた構成情報１０８を受信する。更に、構成情報送信部７０２は、信号線１１７を介して各演算要素１０１へ演算処理の開始を指示する信号を送信し、信号線１１２を介して各演算要素１０１から演算処理の完了を通知する信号を受信する。
【００３６】
図８は、回路ブロック判別部７０４の内部構成の例を示したものである。回路ブロック判別部７０４は、ＩＤ情報記憶部８０１、ＩＤ比較部８１０、レジスタ８０２、８０３、８０５、８０６、ＯＲ回路８１１、８１２、および回路ブロック情報送信部８０９で構成される。
【００３７】
ＩＤ情報記憶部８０１は、各演算要素、またはルータに設定されているＩＤを記憶する部である。例えば、ＩＤ情報記憶部８０１をＲＯＭで実装して、ＩＤ情報を予め記憶させておくようにしておけば良い。ＩＤ比較部８１０は、信号線７０７を介して送信されたＩＤ６０１を受信し、ＩＤ情報記憶部８０１が記憶しているＩＤと比較する。そして、ＩＤ比較部８１０は、当該比較結果をレジスタ８０５、８０６に送信する。ＩＤ比較部８１０は、動的再構成回路１０６内にある演算要素とルータの数と同数だけ配置される。ここでは、比較の結果、ＩＤが一致した場合は論理値”１”を、一致しなかった場合は論理値”０”を比較結果として出力する。
【００３８】
レジスタ８０５、８０６は、ＩＤ比較部８１０から送信された比較結果を保持する。各々のレジスタは、信号線８０４でＩＤ比較部８１０と一対一に接続される。レジスタ８０５は、第１の回路ブロックに属する演算要素とルータに対応し、レジスタ８０６は、第２の回路ブロックに属する演算要素とルータに対応する。つまり、レジスタ８０５、８０６の値は、構成情報１０８によってどの演算要素、ルータが選択されるかを示している。
【００３９】
ＯＲ回路８１１は、レジスタ８０５に格納されている値の論理和をとり、その結果をレジスタ８０２に送信する。また、ＯＲ回路８１２は、レジスタ８０６に格納されている値の論理和をとった結果をレジスタ８０３に送信する。つまり、レジスタ８０２、８０３の値は、構成情報１０８によってどの回路ブロックが選択されるかを示す。レジスタ８０２は、ＯＲ回路８１１、８１２から送信された値を保持した後、その値を回路ブロック情報送信部８０９に送信する。
【００４０】
回路ブロック情報送信部８０９は、レジスタ８０２、８０３から設定値を受信して、信号線１１４に送信する。ここでは、配線を少なくするために、設定値を送信するときにレジスタ８０２、８０３から受信した設定値をシリアライズして送信する。ただし、実装が可能であればレジスタ８０２、８０３から受信した設定値をパラレルに送信するよう構成しても良い。
【００４１】
演算処理割り当て部や回路ブロック判別部の構成は、図７、図８に示す構成に限定されるものではない。例えばＣＰＵを用いて、図７の回路ブロックと同等の処理をソフトウェア処理により実現するよう構成しても良い。なお、予め回路ブロックの情報が構成情報に含まれている場合には、ＩＤ判別部７０３を具備せず、構成情報受信部７０１から直接、回路ブロック判別部７０４に構成情報を送信する構成とすれば良い。
【００４２】
＜１．２．半導体装置の構成＞
図９は、第１実施形態に係るデータ処理装置１００を搭載した半導体装置９０８の全体構成を示す図である。半導体装置９０８は、再構成デバイス９００と外部メモリ９０５で構成される。再構成デバイス９００は、データ処理装置１００、ＣＰＵ９０１、バス９０２、インタフェース（Ｉ／Ｆ）９０３、入出力部（Ｉ／Ｏ）９０４で構成される。
【００４３】
ＣＰＵ９０１は、再構成デバイス全体の制御を司る。メモリ９０５は、構成情報１０８、ブートプログラム、ＯＳ（オペレーティングシステム）、アプリケーションを格納するためのメモリ（ＲＯＭ／ＲＡＭ）である。
【００４４】
図１０は、外部メモリ９０５における構成情報の配置の一例を示す図である。ここでは、各構成情報が、構成情報の切り替え順に従って、外部メモリ９０５の上位アドレスから順番に格納されている。
【００４５】
すなわち、構成情報１００１は第１のデータ処理を実現するための第１の構成情報であり、構成情報１００２は第２のデータ処理を実現するための第２の構成情報である。ここでは、第１の構成情報１００１は、第１のアドレス領域１００３に保持され、第２の構成情報１００２は、第２のアドレス領域１００４に保持される。
【００４６】
Ｉ／Ｆ９０３は外部メモリ９０７と通信するインタフェースである。Ｉ／Ｏ９０４は再構成デバイス９００が構成情報１０８や処理対象となるデータ（画像データ等）を入出力するためのインタフェースである。Ｉ／Ｆ９０３は、ＣＰＵ９０１、データ処理装置１００、Ｉ／Ｆ９０３、Ｉ／Ｏ９０４との間で通信をするためのバスである。
【００４７】
＜１．３．構成情報生成装置の構成＞
図１１は、半導体装置に供給する構成情報を生成する構成情報生成装置１１００のブロック構成を示す図である。
【００４８】
ＣＰＵ１１０１は装置全体の制御を司る。ＲＯＭ１１０２はブートプログラムやＢＩＯＳを記憶し、ＲＡＭ１１０３はＣＰＵ１１０１のワークエリアとして利用され、且つ、ＯＳ、アプリケーションを格納する。ハードディスクドライブ（ＨＤＤ）１１０４はＯＳ、構成情報１０８を作成するためのアプリケーション、ならびに、様々なデータを格納するための記憶部である。
【００４９】
キーボード１１０５及びマウス１１０６はユーザインタフェースとして機能する。表示制御部１１０７は内部にビデオメモリ及び表示コントローラを内蔵する。表示装置１１０８は、表示制御部１００７からの映像信号を受信し表示する。１１０９は各種外部デバイスと通信するインタフェースであり、例えば、図１１に示した外部メモリ１１１０を接続することで、構成情報生成装置１１００が作成した構成情報１０８をその外部メモリ１１１０に書込むことになる。
【００５０】
＜２．装置の動作＞
＜２．１．データ処理装置の動作＞
まず、演算処理割り当て部１０５の動作を説明する。構成情報受信部７０１は、外部メモリ９０５へ構成情報１０８の読み出しの要求をして、バス９０２を介して外部メモリ９０５から構成情報１００８を受信する。回路ブロック判別部７０４は、構成情報１０８を受信した後、回路ブロック判別部７０４の内部に備えたＩＤ６０１と回路ブロックを関連付けるテーブルを参照して、ＩＤ６０１に対応する回路ブロックを判定する。その後、回路ブロック判別部７０４は、判別した回路ブロックの情報を電源制御部１０３に送信する。
【００５１】
構成情報送信部７０２は、電源制御部１０３から電源スイッチ１０７の切り替えが完了したことを検知すると、構成情報１０８を回路ブロック１０２に送信する。例えば、構成情報送信部７０２は、構成情報１０８を、図６に示したデータを単位として（つまりＮビットを単位として）送信し、データを送信した回数を構成情報送信部７０２の内部でカウントして値を保持する。また、例えば、構成情報送信部７０２は、信号線１１１を介して、図６に示したデータを単位として構成情報１０８を受信する。構成情報送信部７０２は、構成情報１０８を受信した回数を構成情報送信部７０２の内部でカウントして値を保持する。
【００５２】
構成情報送信部７０２は内部で保持している送信回数をカウントした値と、受信回数をカウントした値とを比較して、値が一致したときに構成情報１０８の送信が完了したことを検知する。つまり、構成情報送信部７０２は、構成情報１０８を送信した回数と構成情報１０８を受信した回数とが一致したときに、構成情報１０８の送信が完了したことを検知する。構成情報送信部７０２は、構成情報１０８の送信が完了したことを検知したときに、演算要素１０１へ演算処理の開始を指示する。
【００５３】
更に、構成情報送信部７０２は、演算要素１０１から処理完了の通知を受信して、処理完了の通知が演算処理を割り当てた全ての演算要素１０１から送信されたかを判別して、データ処理が完了したことを検知する。その後、構成情報受信部７０１は、外部メモリ９０５へ次の構成情報１０８の読み出しの要求をして、バス９０２を介して外部メモリ９０５から次の構成情報１０８を受信する。
【００５４】
次に、電源制御部１０３の動作を説明する。電源制御部１０３は、演算処理割り当て部１０５から回路ブロックの情報を受信した後、電源供給または電源遮断が必要な回路ブロックを判別して、電源供給が必要な回路ブロックに接続された電源スイッチ１０７をオフからオンへ切り替える。
【００５５】
電源制御部１０３は、電源スイッチ１０７をオフからオンへ切り替えた後、所定の時間が経過したとき、信号線１１３を介して演算処理割り当て部１０５に電源スイッチの切り替えが完了したことを通知する。当該所定の時間は、例えば回路ブロックの電圧が一定のレベルに到達する時間として設定される。また、電源制御部１０３は、電源遮断をする回路ブロックに接続された電源スイッチ１０７をオンからオフへ切り替える。
【００５６】
次に、図３に示した演算要素、及び、図４に示したルータの動作を説明する。演算要素１０１は、信号線１１１を介して送信された構成情報１０８を受信する。その後、演算要素１０１の内部の構成情報設定部３０１は、構成情報１０８のＩＤ６０１が自身（演算要素１０１）に設定されているＩＤと一致するか判別する。
【００５７】
ＩＤが一致した場合、構成情報設定部３０１は構成情報１０８で指定されているアドレスにしたがって、演算要素１０１の内部の構成情報記憶部３０２に構成情報１０８の設定値６０３の書き込みをおこなう。一方、ＩＤが一致しない場合、構成情報設定部３０１は構成情報１０８を信号線１１１に出力する。
【００５８】
演算要素１０１の内部の構成情報設定部３０１は、上記書き込みが完了した後に、データ入力部３０４、データ出力部３０５、演算処理部３０３に設定値６０３を送信する。その後、データ入力部３０４の入力の切り替え、データ出力部３０５の出力の切り替え、演算処理部３０３の処理設定が完了する。この処理設定によって、データ入力部３０４が信号線２０１〜２０４のうち、どの信号線からデータを入力するかが設定される。また、データ出力部３０５が信号線２０５〜２０８のうち、どの信号線からデータを出力するかが設定される。
【００５９】
構成情報１０８の送信が完了した後、各演算要素は処理対象となるデータ（画像データ等）に対する演算処理を開始する。各演算要素は演算処理が完了すると、演算処理割り当て部１０５に処理完了を通知する。
【００６０】
ルータ１０４は、信号線１１１を介して送信された構成情報１０８を受信する。その後、ルータ１０４の内部の構成情報設定部４０１は、構成情報１０８のＩＤ６０１がルータ１０４に設定されているＩＤと一致するか判別する。
【００６１】
ＩＤが一致した場合、構成情報設定部４０１は構成情報１０８で指定されているアドレスにしたがって、ルータ１０４の内部の構成情報記憶部４０２に構成情報１０８の設定値６０３の書き込みをおこなう。一方、ＩＤが一致しない場合、構成情報設定部４０１は第１の構成情報１０８を信号線１１１に出力する。
【００６２】
構成情報設定部４０１は、上記書き込みが完了した後に、入出力切り替え部４０３に設定値６０３を送信する。その後、入出力切り替え部４０３の入出力の切り替えがおこなわれる。
【００６３】
この設定値によって、入出力切り替え部４０３が、信号線２０８〜２１５のいずれかの信号線からデータを入力して、信号線２０４、２１６〜２２２のいずれかの信号線からデータを出力するかが設定される。例えば、信号線２０８からデータを入力して、入力したデータを信号線２２２から出力するという設定をする。
【００６４】
＜２．２．半導体装置の動作＞
半導体装置９０８に電源が投入されると、ＣＰＵ９０１は外部メモリ９０５に格納されたブートプログラムを実行し、半導体装置９０８を起動する。次に、ＣＰＵ９０１は、Ｉ／Ｏ９０４から構成情報１０８の読み込みをして、外部メモリ９０５へ構成情報１０８を格納するよう指示する。ＣＰＵ９０１は、外部メモリ９０５に構成情報１０８を格納した後、構成情報１０８の読み出しをデータ処理装置１００に指示する。
【００６５】
データ処理装置１００は、外部メモリ９０５へ構成情報１０８の読み出しの要求をして、バス９０２を介して外部メモリ９０５から構成情報１０８を受信する。例えば、構成情報１０８は、第１の構成情報、第２の構成情報という順番で読み込まれる。
【００６６】
以降、データ処理装置１００の内部で、構成情報１０８に沿った処理の割り当てがおこなわれる。処理の割り当てが完了した後、Ｉ／Ｏ９０４から処理対象データが入力され、データ処理装置１００の内部でデータ処理が実行される。データ処理装置１００は、複数の構成情報を順番に読み込んでいき、動的再構成回路１０６の動作を切り替える。
【００６７】
＜２．３．構成情報生成装置の動作＞
構成情報生成装置１１００に電源が投入されると、ＣＰＵ１１０１はＲＯＭ１１０２に格納されたブートプログラムを実行し、ＨＤＤ１１０４に格納されたＯＳをＲＡＭにロードする。その後、構成情報１０８を作成するアプリケーションを起動することで、構成情報作成装置として機能することになる。
【００６８】
構成情報生成装置１１００で作成した構成情報１０８は、例えば、半導体装置９０８の外部メモリ９０５に書き込まれる。このとき、例えば、Ｉ／Ｏ９０４を介して構成情報１０８を半導体装置９０８に入力する。
【００６９】
以下では、構成情報生成装置１１００で構成情報１０８を生成するときの処理の説明をする。構成情報生成装置１１００は、構成情報１０８を作成するアプリケーションを起動した後、アプリケーションの処理をＣＰＵ１１０１内で実行する。
【００７０】
ユーザはキーボード、マウスによってデータ処理情報を入力する。例えば、データ処理情報として、データ処理の内容が記述されたプログラムなどを入力する。ＣＰＵ１１０１はユーザの操作によって入力されたデータ処理情報を取得して、ＲＡＭ１１０３に格納する。以降、ＣＰＵ１１０１は、ＲＡＭ１１０３に格納したデータ処理情報を読み込み、構成情報を生成する処理を実行する。
【００７１】
なお、構成情報生成装置１１００は、最初に構成情報を生成するときにデータ処理情報を用いて演算要素１０１への処理のマッピングをおこなう。ただし、構成情報生成装置１１００は、マッピングが実行された後に生成した最初の構成情報を基にして、構成情報を再生成（修正）する。特に、第１実施形態では、各々の構成情報で選択される回路ブロックを判別し、回路ブロックに対する電源の切り替え回数が少なくなるように、各々の構成情報で選択される回路ブロック１０２を再選択して、修正後の構成情報を生成する。
【００７２】
ここでは、データ処理装置１００が、第１の構成情報→第２の構成情報→第３の構成情報といった順番で複数の構成情報を次々に読み込んで処理動作を切り替えていく場合を例に挙げて説明する。特に、ここでは、電源のオンとオフの切り替えが最少になるような構成情報を再生成する手法を説明する。
【００７３】
図１２は、回路ブロックの構成を示す回路ブロック設定の一例を示す図である。ここでは、構成情報を生成するときの制約として、回路ブロック設定を入力データとして用いる。回路ブロック設定には、各演算要素、ルータが属している回路ブロックの情報が含まれる。
【００７４】
回路ブロック設定は、例えば図１２（ａ）のような、各演算要素、ルータのＩＤを第１のカラムに設定して、回路ブロックＩＤを第２のカラムに設定したテーブル情報としても良い。ここで回路ブロックＩＤは、各々の回路ブロックを識別するために回路ブロックごとに固有に設定する識別番号（ＩＤ）であり、例えば図１２（ｂ）に示すように設定される。図１２（ｂ）は、１６個の回路ブロックにそれぞれ固有のＩＤを設定した例である。
【００７５】
図１３は、構成情報を再生成する処理を説明するフローチャートである。この処理は、ＣＰＵ１１０１がアプリケーションを実行することにより実行される。ここでは、最初に生成した構成情報を３つ処理して、修正後の構成情報を１つ生成していく例について説明する。具体的には、まず、連続して使用されるオリジナルの第１〜第３の構成情報に基づいて、修正後の第２の構成情報を生成する。次に、第２〜第４の構成情報（修正後の第２の構成情報及びオリジナルの第３〜第４の構成情報）を用いて処理を実行して、修正後の第３の構成情報を生成する。以降、同様の処理を繰り返していき、各々の構成情報を生成していく。
【００７６】
ステップＳ１３０１では、構成情報の数を取得してＮに代入する。また、ステップＳ１３０１ではＫを”１”に設定する。ここで、Ｎは入力する構成情報の数である（Ｎ個（Ｎは３以上の整数）の構成情報）。また、Ｋは図１３の処理で用いる変数である。
【００７７】
ステップＳ１３０２では、Ｋ番目からＫ＋２番目の構成情報が選択しているＩＤを取得する。そして、図１２（ａ）の回路ブロック設定に基づいて、ＩＤと回路ブロックとの照合をおこない、各々の構成情報で使用する回路ブロックを判別する。また、各々の構成情報で使用する回路ブロックの数を算出する。
【００７８】
ステップＳ１３０３では、ステップＳ１３０２の回路ブロックの判別結果に基づいて、Ｋ番目からＫ＋１番目まで構成情報を切り替えていくときの、各回路ブロックの実際の電源切り替え回数を算出（制御対象ブロック数算出）する。ステップＳ１３０３における処理の詳細については図１４を参照して後述する。
【００７９】
ステップＳ１３０４では、Ｓ１３０２での判定結果に基づいて、Ｋ番目からＫ＋１番目まで構成情報を切り替えていくときに、電源オフからオンへの切り替えの最少回数を算出（最少値算出）する。
【００８０】
図１６は、最少の電源切り替え回数の算出する方法を説明する図である。図１６において、Ａ，Ｂ，Ｃの値はそれぞれ以下の値が設定される。
【００８１】
Ａ：Ｋ番目の構成情報が選択している回路ブロックの数
Ｂ：Ｋ＋１番目の構成情報が選択している回路ブロックの数
Ｃ：Ｋ＋２番目の構成情報が選択している回路ブロックの数
ステップＳ１３０５では、ステップＳ１３０３で算出した実際の電源切り替え回数と、ステップＳ１３０４で算出した最少の電源切り替え回数とを比較し、回数が最少であるかを判定する。判定の結果、切り替え回数が最少であれば、構成情報の生成はおこなわず、処理を終了する。判定の結果、切り替え回数が最少でなければ、次の処理に進む。
【００８２】
ステップＳ１３０６では、Ｋ番目とＫ＋２番目の構成情報が選択している回路ブロックの情報から、Ｋ＋１番目の構成情報が選択する回路ブロックの優先度を設定する。ステップＳ１３０６における処理の詳細については図１７を参照して後述する。
【００８３】
ステップＳ１３０７では、ステップＳ１３０６で設定した優先度に基づき、Ｋ＋１番目の構成情報が選択する回路ブロックを設定する。ステップＳ１３０７における処理の詳細については図１９を参照して後述する。
【００８４】
ステップＳ１３０８では、変数Ｋに１を加算する。そして、ステップＳ１３０９では、ＫがＮ−１以上であるか否かを判定する。判定の結果、ＫがＮ−１以上であれば、ステップＳ１３１０の処理に進む。判定の結果、ＫがＮ−１未満であれば、ステップＳ１３０２から処理を再実行する。このようにして、１番目の構成情報からＮ番目の構成情報に順に変更した変更した場合に電源制御の対象となる回路ブロックの数が少なくなるように構成情報を変更する。
【００８５】
ステップＳ１３１０では、ステップＳ１３０７で設定した回路ブロックに含まれる演算要素とルータを選択して、各構成情報の演算要素１０１とルータ１０４のＩＤ設定６０１および設定値６０３を変更して、構成情報を出力する。つまり、Ｋ＋１番目の構成情報のＩＤ設定を、ステップＳ１３０７で設定した回路ブロック内の演算要素１０１とルータ１０４のＩＤに変更する。また、データフローの変更をする場合は、データフローに沿った入出力設定になるように、Ｋ＋１番目の構成情報の演算要素１０１、ルータ１０４の入出力の設定値を変更する。データフローの変更する際の設定値の変更については、図２４及び図２５を参照して後述する。
【００８６】
また上述の説明では、最初に生成した構成情報を３つ処理して、修正後の構成情報を１つ生成していく例について説明したが、最初に生成した構成情報を２つ処理して、修正後の構成情報を１つ生成していくよう構成しても良い。例えば、具体的には、まず、オリジナルの第１〜第２の構成情報に基づいて、修正後の第２の構成情報を生成する。次に、第２〜第３の構成情報（修正後の第２の構成情報及びオリジナルの第３の構成情報）を用いて処理を実行して、修正後の第３の構成情報を生成する。以降、同様の処理を繰り返していき、各々の構成情報を生成していくよう構成しても良い。
【００８７】
図１４は、電源切り替え回数を算出する処理（Ｓ１３０３）を説明するフローチャートである。また、図１５は、図１４の処理実行中に生成される回路ブロック選択リスト１５０１を例示的に示す図である。
【００８８】
なお、リスト１５０１は、回路ブロックが構成情報によって選択されているかどうかを示すリストである。左端のカラムは回路ブロックＩＤ、第１〜第３のカラムは回路ブロックが構成情報によって選択されているかどうかを示す。ここでは、構成情報によって回路ブロックが選択されている場合は値を”１”とし、回路ブロックが選択されていない場合は値を”０”とする。リスト１５０１は、ステップＳ１３０２の処理が完了した時点では空の状態である。
【００８９】
ステップＳ１４０１では、変数ＭにＫを代入する。ここで、Ｍは図１４の処理で用いる変数である。ステップＳ１４０２では、図１５のリスト１５０１で含まれていない回路ブロックのうち１つを任意に選択する。
【００９０】
ステップＳ１４０３では、ステップＳ１４０２で選択した回路ブロックが、Ｍ番目の構成情報で選択している回路ブロックであるかを判定する。Ｍ番目の構成情報で選択している回路ブロックであると判定されればステップＳ１４０４の処理に進み、Ｍ番目の構成情報で選択している回路ブロックでは無いと判定されればステップＳ１４０５の処理に進む。
【００９１】
ステップＳ１４０４では、リストの第Ｋのカラムの値を”１”に設定する。ステップＳ１４０５では、リストの第Ｋのカラムの値を”０”に設定する。ステップＳ１４０６では、Ｍを１つ加算（インクリメント）する。
【００９２】
ステップＳ１４０７では、ＭがＫ＋２以上であるかの判定をする。判定の結果、ＭがＫ＋２以上である場合は、ステップＳ１４０８の処理に進む。また、判定の結果、ＭがＫ＋２未満である場合は、ステップＳ１４０３に戻る。
【００９３】
ステップＳ１４０８では、リスト１５０１に全回路ブロックの設定値が含まれているかの判定をおこなう。判定の結果、リスト１５０１に全回路ブロックの設定値が含まれていない場合は、ステップＳ１４０２に戻る。一方、判定の結果、リスト１５０１に全回路ブロックが含まれている場合は、ステップＳ１４０８の処理に進む。
【００９４】
ステップＳ１４０９では、ステップＳ１４０１〜Ｓ１４０８までの処理で生成した図１５のリストに基づいて、電源の切り替えの回数を算出する。各回路ブロックの電源の切り替えの回数は、例えば以下のような論理演算によって求めることができる。
【００９５】
切り替えの回数＝Ａ￣・Ｂ＋Ｂ￣・Ｃ・・・（１）
ここで、”Ａ”は第１のカラムの値、”Ｂ”は第２のカラムの値、”Ｃ”は第３のカラムの値である。また、￣は否定（NOT）を表す。式（１）により、各回路ブロックの電源の切り替えの回数が、２進数で表される値で求められる。
【００９６】
図１７は、優先度設定の処理（Ｓ１３０６）を説明するフローチャートである。また、図１８は、図１７の処理で生成される優先度設定のリスト１８０１を例示的に示す図である。
【００９７】
リスト１８０１の左側は回路ブロックのＩＤを示し、右側は各回路ブロックの優先度の設定を示す。この設定は、例えば優先度が低い方から高い方に順に１、２、３という値を設定する。リスト１８０１は、ステップＳ１３０６の処理が完了した時点では空の状態である。
【００９８】
ステップＳ１７０１では、リスト１８０１で優先度が設定されていない任意の回路ブロックを一つ指定する。ステップＳ１７０２では、ステップＳ１７０１で指定した回路ブロックが、Ｋ番目の構成情報及びＫ＋２番目の構成情報において共通して選択されている回路ブロックであるかを判定する。Ｋ番目の構成情報及びＫ＋２番目の構成情報において共通に選択されている回路ブロックであれば、ステップＳ１７０３の処理に進む。また、Ｋ番目の構成情報及びＫ＋２番目の構成情報において共通してに選択している回路ブロックでなければ、ステップＳ１７０５の処理に進む。
【００９９】
ステップＳ１７０３では、回路ブロックの優先度を相対的に一番高い”３”に設定する。ステップＳ１７０５では、ステップＳ１７０１で選択した回路ブロックが、Ｋ番目の構成情報及びＫ＋２番目の構成情報のいずれかで選択されている回路ブロックであるかを判定する。Ｋ番目及びＫ＋２番目の構成情報のいずれかで選択されている回路ブロックであれば、ステップＳ１７０６の処理に進む。また、Ｋ番目の構成情報及びＫ＋２番目の構成情報の何れにおいても選択されていない回路ブロックであれば、ステップＳ１７０７の処理に進む。ステップＳ１７０６では、回路ブロックの優先度を相対的に２番目に高い”２”に設定する。また、ステップＳ１７０７では、回路ブロックの優先度を相対的に一番低い”１”に設定する。
【０１００】
ステップＳ１７０８では、ステップＳ１７０３、Ｓ１７０６、Ｓ１７０７で設定した回路ブロックの優先度の設定値を図１８のリストの右側に追加する。ステップＳ１７０９では、Ｋ＋１番目の構成情報で選択されている全ての回路ブロックの優先度の設定値が、ステップＳ１７０８で生成されたリストに含まれているか判定する。判定の結果、リストに含まれていない回路ブロックがある場合は、ステップＳ１７０１に戻る。判定の結果、全ての回路ブロックの優先度の設定値がリストに含まれている場合は、優先設定の処理を終了する。
【０１０１】
以上のようにして、Ｋ＋１番目の構成情報で選択する回路ブロックの優先度設定をおこなう。なお、図１７の処理フローにステップＳ１７０２、Ｓ１７０５の以外の判定条件を加えて新たな優先度設定を加えても良い。例えば、Ｋ番目の構成情報で選択している回路ブロックの優先度重みを、Ｋ＋２番目の構成情報で選択している回路ブロックの優先度重みより高く設定するようにしても良い。
【０１０２】
図１９は、回路ブロック設定の処理（Ｓ１３０７）を説明するフローチャートである。
【０１０３】
ステップＳ１９０１では、Ｋ＋１番目の構成情報で選択している回路ブロックの数を変数ｍに代入する。また、変数ｎの値を０に設定する。なお、変数ｍはＫ＋１番目の構成情報で選択している回路ブロックの数、変数ｎは図１９の処理中で選択する回路ブロックの数を示す。
【０１０４】
ステップＳ１９０２では、リスト１８０１のなかから、優先度が最も高い設定である回路ブロックを選択可能な状態に設定する。ステップＳ１９０３では、ステップＳ１９０２で選択可能な状態とした回路ブロックのうち１つ選び、回路ブロックの数ｎに加算する。
【０１０５】
ステップＳ１９０４では、ステップＳ１９０３で加算した結果が、Ｋ＋１番目の構成情報で選択している回路ブロックの数以上（ｍ≧ｎ）であるか判定する。判定の結果、ｍ≧ｎであれば、ステップＳ１９０６の処理に進む。また、判定の結果、ｍ＜ｎであれば、ステップＳ１９０５の処理に進む。
【０１０６】
ステップＳ１９０５では、他に選択可能な回路ブロックがあるか判定する。判定の結果、他に選択可能な回路ブロックがある場合は、ステップＳ１９０３の処理を再実行する。判定の結果、他に選択可能な回路ブロックがない場合は、ステップＳ１９０６の処理に進む。ステップＳ１９０６では、優先度が１つ下である回路ブロックを選択可能な状態に設定する。設定後、ステップＳ１９０３に戻る。
【０１０７】
ステップＳ１９０７では、ステップＳ１９０１〜Ｓ１９０６の処理で選択した回路ブロックを用いて、修正後のＫ＋１番目の構成情報を生成することを決定する。
【０１０８】
このようにして、ＣＰＵ１１０１は電源の切り替え動作の回数が少なくなるような構成情報１０８の生成をおこなう。生成した構成情報１０８は、データ処理装置１００に読み込まれ、データ処理装置１００の内部の演算要素とルータの設定に使用されることになる。
【０１０９】
なお、ステップＳ１３１０を実行する前に、データフローを再構築するステップを設けても良い。例えば、構成情報で使用する回路ブロックを設定した後に、使用する演算要素１０１、ルータ１０４を決定し、演算要素１０１、ルータ１０４間のデータ転送の経路を探索してデータフローを再構築するなどの手法を取ることもできる。
【０１１０】
＜３．生成された構成情報に基づくデータ処理装置の動作例＞
データ処理装置１００が外部メモリ９０５から構成情報１０８を取得し、構成情報１０８に沿って演算処理を回路ブロック１０２に割り当てるまでの一連の動作を説明する。
【０１１１】
データ処理装置１００は、ＣＰＵ９０１から構成情報１０８の読み出しの指示を受けた後、構成情報１０８の読み出し、構成情報１０８よって選択される回路ブロックの判別、電源制御部１０３による電源切り替えを実行する。その後、データ処理装置１００は、回路ブロック１０２への構成情報１０８の送信をして、演算要素とルータの動作を設定する。
【０１１２】
上記の動作が完了した後、データ処理装置１００は演算処理を開始する。実行中の演算処理が完了すると、次の処理で使用する構成情報を外部メモリ９０５から読み出して、同様の動作を繰り返して次の演算処理を実行する。このようにして、データ処理装置１００は、構成情報を順番に読み込み、構成情報１０８に沿って演算処理を回路ブロック１０２に割り当て、演算処理を実行する。
【０１１３】
図２０は、データ処理装置における処理状態の変化の過程を説明する図である。なお、ここでは、データ処理装置１００が４つ回路ブロックを備えている場合を例示的に示している。
【０１１４】
処理状態２０００ａは、データ処理装置１００を起動後、演算処理割り当て部１０５が外部メモリ９０５から第１の構成情報１００１を取得して、第１の構成情報１００１が選択している回路ブロックを判別するまでの状態を示している。
【０１１５】
回路ブロック２００１〜２００４は、電源遮断されている状態（電源オフ）である。また外部メモリ９０５には、第１の構成情報１００１と第２の構成情報１００２が格納されている。データ処理装置１００は、第１の構成情報１００１と第２の構成情報１００２を順に読み込んで、動的再構成回路１０６の構成を切り替える。
【０１１６】
最初に、演算処理割り当て部１０５は、外部メモリ９０５から第１の構成情報１００１を取得する。次に、演算処理割り当て部１０５は、第１の構成情報１００１によって選択される回路ブロックを判別する。ここで、演算処理割り当て部１０５は、第１の構成情報１００１で選択されている回路ブロックが回路ブロック２００１，２００２であることを判別する。
【０１１７】
処理状態２０００ｂは、演算処理割り当て部１０５が回路ブロックの判別をした後、回路ブロック２００１，２００２に電源供給して、第１の構成情報１００１に基づき演算処理を回路ブロック２００１，２００２に割り当てるまでの状態を示している。
【０１１８】
演算処理割り当て部１０５は、回路ブロック２００１，２００２の情報を電源制御部１０３に送信する。電源制御部１０３は、演算処理割り当て部１０５から回路ブロック２００１，２００２の情報を受信した後、回路ブロック２００１，２００２に接続された電源スイッチ１０７をオフからオンへ切り替える。
【０１１９】
その後、電源制御部１０３は、演算処理割り当て部１０５に電源スイッチ１０７の切り替えが完了したことを通知する。次に、演算処理割り当て部１０５は、第１の構成情報１００１を回路ブロック２００１，２００２に送信する。
【０１２０】
演算要素１０１は、第１の構成情報１００１を受信した後、データ入力部３０４の入力の切り替え、データ出力部３０５の出力の切り替え、演算処理部３０３の処理設定をおこなう。ルータ１０４は、第１の構成情報１００１を受信した後、入出力切り替え部４０３の入出力の設定をおこなう。このようにして、各々の演算要素とルータの動作を順次設定していく。
【０１２１】
演算処理割り当て部１０５は、回路ブロック内を一巡した第１の構成情報１００１を再度受信して、第１の構成情報１００１の送信が完了したことを検知する。第１の構成情報１００１の送信が完了した後、演算処理割り当て部１０５は、各演算要素に演算処理の開始を指示する信号を送信する。その後、演算要素１０１は演算処理を開始する。演算要素１０１は演算処理が完了すると、演算処理割り当て部１０５に処理完了を通知する。
【０１２２】
処理状態２０００ｃは、データ処理装置１００が第１のデータ処理を完了した後、第２の構成情報１００２に沿って演算処理を回路ブロックに割り当てるまでの状態を示している。
【０１２３】
演算処理割り当て部１０５は、演算要素１０１から処理完了の通知を受信して、処理完了の通知が演算処理を割り当てた全ての演算要素１０１から送信されたことを判別して、第１のデータ処理が完了したことを検知する。その後、演算処理割り当て部１０５は、外部メモリ９０５から第２の構成情報１００２を取得する。
【０１２４】
以降、第２の構成情報１００２の内容に従って、回路ブロックの判別、電源切り替えが実行される。第２の構成情報１００２で選択されているのは３個の回路ブロック２００１、２００２、２００３であり、電源切り替えが必要なのは回路ブロック２００３である。よって、電源制御部１０３は、回路ブロック２００３に接続された電源スイッチ１０７をオフからオンへ切り替える。その後、上述の第１の構成情報１００２に基づく演算処理の割り当てと同様に、第２の構成情報１００２に基づく演算処理の割り当てを行う。
【０１２５】
上述の動作を繰り返すことにより、データ処理装置１００は外部メモリ９０５に保持された複数の構成情報１０８を順に読み込み、当該複数の構成情報１０８に基づく演算処理を順に実行する。
【０１２６】
＜構成情報生成装置のＣＰＵの動作例＞
図２１は、構成情報が選択する回路ブロックの選択変更の過程を説明する図である。具体的には、選択状態２１０１は、第１の構成情報が選択している回路ブロックを示している。同様に、選択状態２１０２は第２の構成情報が選択している回路ブロック、選択状態２１０３は第３の構成情報が選択している回路ブロック、選択状態２１０４は第４の構成情報が選択している回路ブロックを示している。
【０１２７】
最初に生成したオリジナルの４個の構成情報において、選択状態２１０１〜２１０４に示されるような回路ブロックが選択されている場合、例えば、選択状態２１００ｃのように選択されるように構成情報を修正すれば良い。つまり、第２の構成情報が選択する回路ブロックを選択状態２４０１のように修正して、第３の構成情報が選択する回路ブロックを選択状態２５０１のように修正すれば良い。このような修正を行うことにより、構成情報の遷移に伴う回路ブロックの電源の切り替え回数が少なくなる。
【０１２８】
以下では、図１３の処理フローに沿って、選択状態２１００ａとなる構成情報から選択状態２１００ｃとなる構成情報を生成する例を説明する。なお、回路ブロックＩＤは図１２（ｂ）に示したような設定とする。
【０１２９】
ステップＳ１３０２では、第１〜第３の構成情報により選択される回路ブロックを判別して、各々の構成情報において選択されている回路ブロックの数を算出する。ここでは第１の構成情報が選択している回路ブロックは”６”個、第２の構成情報が選択している回路ブロックは”９”個、第３の構成情報が選択している回路ブロックは”１２”個として算出される。
【０１３０】
ステップＳ１３０３では、第１〜第３の構成情報を切り替えていくときの電源の切り替えの回数を算出する。最初に、図１４のステップＳ１４０１〜Ｓ１４０７の処理に沿って、回路ブロック選択リストを生成する。
【０１３１】
図２２は、生成される回路ブロック選択リストを例示的に示す図である。次に、この回路ブロック選択リストから式（１）に従って電源の切り替え回数を算出する。選択状態２１００ａに対しては電源の切り替え回数は”１１”となる。
【０１３２】
ステップＳ１３０４では、第１〜第３の構成情報を切り替えていくときに、最少となる電源の切り替えの回数を算出する。ステップＳ１３０２の処理で算出した回路ブロック数は、図１６の判定条件のうち条件番号”１”に合致する。よって、最少の切り替えの回数は第３の構成情報が選択している回路ブロック数から第１の構成情報が選択している回路ブロック数を引いて、最少の電源切り替え回数である”６”を得る。
【０１３３】
ステップＳ１３０５では、ステップＳ１３０３の処理で算出した回数と、ステップＳ１３０４の処理で算出した回数を比較して、実際の回数が最少では無いと判定する。よって、ステップＳ１３０６の処理に進む。ステップＳ１３０６では、第２の構成情報で使用する回路ブロックの優先度設定をおこなう。図１７の処理に従って優先度リストを生成する。図２３は、生成される優先度リストを例示的に示す図である。
【０１３４】
ステップＳ１３０７では、第２の構成情報で使用する回路ブロックを設定する。このとき、図２３の優先度リストの優先度設定を参照して、優先度の高い回路ブロックから順に回路ブロックを選択する。ステップＳ１３０７の処理を実行した結果、第２の構成情報の回路ブロック設定は、選択状態２１００ｂにおける選択状態２４０１のようになる。
【０１３５】
ステップＳ１３０８では、変数Ｋを１つ加算する。ここでＫは”２”となる。ステップＳ１３０９では、Ｋが入力した構成情報の数から１を減算した数以上であるか判定する。Ｋは”２”であり、入力した構成情報の数”４”から１を減算した数は”３”であるため、判定はＮｏとなる。よって、ステップＳ１３０２の処理を再実行する。
【０１３６】
ステップＳ１３０２では、第２〜第４の構成情報が選択している回路ブロックを判別して、回路ブロックの数を算出する。第２の構成情報が選択している回路ブロック数は”６”、第３の構成情報が選択している回路ブロック数は”１２”、第４の構成情報が選択している回路ブロック数は”３”である。
【０１３７】
ステップＳ１３０３では、第２〜第４の構成情報を切り替えていくときの電源の切り替えの回数を算出する。選択状態２１００ｂに対しては電源の切り替え回数は”６”となる。
【０１３８】
ステップＳ１３０４では、第２〜第４の構成情報を切り替えていくときに、最少となる電源の切り替えの回数を算出する。ステップＳ１３０２の処理で算出した回路ブロック数は、図１６の判定条件のうち条件番号”３”に合致する。よって、最少の切り替えの回数は第３の構成情報が選択している回路ブロック数から第２の構成情報が選択している回路ブロック数を引いて、最少の電源切り替え回数である”３”を得る。
【０１３９】
ステップＳ１３０５では、ステップＳ１３０３の処理で算出した回数と、ステップＳ１３０４の処理で算出した回数を比較して、実際の回数が最少では無いと判定する。
【０１４０】
以降、ステップＳ１３０６、ステップＳ１３０７の処理を実行することにより、第３の構成情報の回路ブロック設定は選択状態２１００ｃにおける選択状態２５０１のようになる。
【０１４１】
図２４及び図２５は、それぞれ、回路ブロック内におけるデータフローの変更を例示的に示す図である。なお、回路ブロック１０２には図１２を参照して説明したＩＤと同様のＩＤが設定されている。
【０１４２】
選択状態２１０２を選択状態２４０１に変更する場合、図２４の上段に示すデータフローから図２４の下段に示すデータフローに変わる。この場合、データフローの設定を左側にシフトするだけで良いことが図２４から分かる。したがって、この場合は演算要素１０１、ルータ１０４の入出力設定の変更は必要なく、演算要素１０１、ルータ１０４のＩＤの変更のみをおこなえば良い。
【０１４３】
一方、選択状態２１０３を選択状態２５０１に変更する場合、図２５の上段に示すデータフローから図２５の下段に示すデータフローに変わる。この場合は、演算要素１０１、ルータ１０４のＩＤと、演算要素１０１とルータ１０４の入出力の設定を変更する。
【０１４４】
なお、より複雑なデータフローの変更に対応可能とするために、データフローを再構築する機構を構成情報生成部２７０１の内部に設けても良い。例えば、構成情報で使用する回路ブロックを設定した後に、演算要素１０１、ルータ１０４間のデータ転送の経路を探索してデータフローを再構築するなどの手法を取ることもできる。
【０１４５】
このようにして、第１〜第４の構成情報のうち、第２及び第３の構成情報に対しては選択する回路ブロックを変更するよう修正を行った構成情報を生成（再生成）する。これにより、電源の切り替え回数が少なくなるような構成情報をすることができる。
【０１４６】
以上説明したように、第１実施形態によれば、回路ブロックに対する電源の切り替え回数が少なくなるような構成情報を生成（再生成）することが可能となる。すなわち、チャージ電力を低減可能な構成情報を生成することが可能となる。そのため、当該再生成された構成情報に基づきデータ処理装置１００が演算処理を回路ブロック１０２に割り当てることにより、好適に電力削減可能とすることが可能となる。
【０１４７】
（変形例）
なお、上述の説明においては、データ処理装置１００の外部にあるメモリ９０５から構成情報を読み込む実施形態を示したが、データ処理装置１００の内部で構成情報を保持するような構成としても良い。
【０１４８】
図２６は、変形例に係るデータ処理装置の全体構成を示す図である。具体的には、データ処理装置１００の内部に構成情報保持部２６０１を設け、構成情報保持部２６０１の内部に構成情報を格納している。この構成においては、演算処理割り当て部１０５が構成情報保持部２６０１で保持している構成情報１０８を読み込み、動的再構成回路１０６に構成情報を送信する。
【０１４９】
（第２実施形態）
第２実施形態では、データ処理装置１００の内部で構成情報１０８を生成する場合の例について説明する。
【０１５０】
＜構成説明＞
［演算処理割り当て部の内部構成］
図２７は、第２実施形態に係る演算処理割り当て部１０５の内部構成を示す図である。つまり、ここでは、演算処理割り当て部１０５の内部に構成情報生成部２７０１を追加して、演算処理割り当て部１０５の内部で構成情報１０８を生成している。なお、構成情報生成部２７０１は、図１３で示した処理と同様の処理を実現する機能部である。
【０１５１】
構成情報生成部２７０１は、回路ブロック判別部７０４から構成情報１０８が選択している回路ブロックの情報を受信して、信号線２７０４を介して構成情報１０８の送信指示を構成情報送信部７０２に送る。また、構成情報生成部２７０１は、信号線２７０３を介して再生成した構成情報１０８を構成情報送信部７０２に送る。更に構成情報生成部２７０１は、信号線１１４を介して回路ブロック情報を出力する。
【０１５２】
［構成情報生成部の内部構成］
図２８は、構成情報生成部２７０１の内部構成を示す図である。構成情報生成部２７０１は、電源切り替え回数算出部２８０１、回路ブロック数算出部２８０３、回路ブロック優先度設定部２８０４、回路ブロック設定部２８０５を構成に含む。加えて、構成情報生成部２７０１は、ＩＤ・設定値変更部２８０６、切り替え回数判定部２８０２、回路ブロック情報送信部２８１５を含む。
【０１５３】
電源切り替え回数算出部１９０１は、構成情報１０８により選択される回路ブロックの情報を受信する。そして、構成情報１０８に沿って演算処理を割り当てていくときに必要となる電源切り替えの回数を算出し、算出結果を切り替え回数判定部１９０２に送信する。回路ブロック数算出部２８０３は、構成情報１０８により選択される回路ブロックの情報を受信する。そして、各構成情報１０８が選択している回路ブロックの数を、切り替え回数判定部２８０２と回路ブロック優先度設定部２８０４に送信する。回路ブロック優先度設定部２８０４は、上述のステップＳ１３０６と同様の処理に従って回路ブロックの優先度を設定して、優先度の設定情報を回路ブロック設定部１９０５に送信する。
【０１５４】
回路ブロック設定部２８０５は、上述のステップＳ１３０７と同様の処理に従って回路ブロックを選択して、回路ブロックの選択情報をＩＤ・設定値変更部２８０６と回路ブロック情報送信部２８１５に送信する。ＩＤ・設定値変更部２８０６は、回路ブロック設定部２８０５から受信した回路ブロックの選択情報に従って、ＩＤを変更して構成情報を再生成する。
【０１５５】
回路ブロック情報送信部２８１５は、信号線２８１３を介して切り替え回数判定部２８０２から指示を受けて、信号線２８１２から送信された回路ブロック情報、または信号線２８１４から送信された回路ブロック情報のどちらかを出力する。切り替え回数判定部２８０２は、電源切り替え回数算出部２８０１から切り替え回数の情報を、回路ブロック数算出部２８０３から回路ブロック数の情報をそれぞれ受信する。また、切り替え回数判定部２８０２は、信号線２７０４を介して構成情報の送信指示を構成情報送信部７０２に送信する。
【０１５６】
切り替え回数判定部２８０２は、信号線２７１３を介して回路ブロック情報送信部２８１５に信号線２８１２から送信された回路ブロック情報、または信号線２８１４から送信された回路ブロック情報のどちらを出力するかを指示する。更に、切り替え回数判定部２８０２は、信号線２８１６を介して回路ブロック優先度設定部２８０４に優先度を設定するよう制御する。
【０１５７】
［電源切り替え回数算出部の内部構成］
図２９は、電源切り替え回数算出部２８０１の内部構成を示す図である。電源切り替え回数算出部２８０１は、経路切り替え部２９０１、レジスタ２９０２、２９０３、２９０４、２９０７、２９０８、２入力ＡＮＤ２９０５、２９０６、加算器２９０９で構成される。
【０１５８】
経路切り替え部２９０１は、信号線２７０２から回路ブロックの情報を受信して、レジスタ２９０２、２９０３、２９０４に論理値”１”または”０”を送信する。
【０１５９】
［回路ブロック優先度設定部の構成説明］
図３０は、回路ブロック優先度設定部２８０４の内部構成を示す図である。回路ブロック優先度設定部２８０４は、レジスタ選択部３００３、レジスタ３００１、３００２、優先度設定部３００８で構成される。
【０１６０】
レジスタ選択部３００３は、信号線２７０２から、第１の構成情報が選択している回路ブロック情報を受信した後、回路ブロック情報をレジスタ３００１に送信する。また、レジスタ選択部３００３は、信号線２７０２から、第３の構成情報が選択している回路ブロック情報を受信した後、回路ブロック情報をレジスタ３００２に送信する。
【０１６１】
レジスタ３００４、３００６の設定値は、第１の回路ブロックが選択されている場合に”１”とし、レジスタ３００５、３００７は、第２の回路ブロック情報が送信された場合に”１”とする。つまり、レジスタ３００１、３００２のＮビット目の設定値は、第Ｎの回路ブロックが構成情報によって選択されているか否かを示している。
【０１６２】
次に、レジスタ３００１とレジスタ３００２で対応するビットの値から、図３０（ｂ）に示すように優先度を設定する。優先度を設定した後、各回路ブロックの優先度の設定を信号線２８１０に出力する。
【０１６３】
＜動作説明＞
以下では、構成情報生成部２７０１の内部ブロックのうち、電源切り替え回数算出部と切り替え回数判定部の動作について説明する。なお、構成情報生成部２７０１の他のブロックの動作については、図１３を参照して説明した動作と同様であるため説明を省略する。
【０１６４】
［電源切り替え回数算出部の動作説明］
図２９は、電源切り替え回数算出部の動作を説明する図である。最初に、第１、第２、第３の回路ブロック選択情報が、レジスタ２９０２、２９０３、２９０４にそれぞれ格納されている。
【０１６５】
２入力ＡＮＤ２９０５は、レジスタ２９０２のＮビット目の値を論理反転させた後、レジスタ２９０３のＮビット目の論理値との論理積を算出し、レジスタ２９０７に算出した値を格納する。同様に、２入力ＡＮＤ２９０６は、レジスタ２９０３のＮビット目の値を論理反転させた後、レジスタ２９０４のＮビット目の論理値との論理積を算出し、レジスタ２９０８に算出した値を格納する。
【０１６６】
例えば、ここでは、レジスタ２９０２の１ビット目の論理値は”０”で、レジスタ２９０３の１ビット目の論理値は”１”であるため、レジスタ２９０７の１ビット目には、論理値”１”が設定される。レジスタ２９０７に論理値”１”が設定された場合は、第１の構成情報から第２構成情報に切り替えるときに、当該回路ブロックが電源オフからオンに切り替わることを示している。
【０１６７】
同様の処理を各ブロックに対し行う事で、第１の処理から第２の処理までに、各回路ブロックの電源がオフからオンへ切り替わるかを判別することができる。
【０１６８】
また、第２の構成情報から第３の構成情報への切り替えが実施される際の電源切り替え回数を検出するために、レジスタ２９０３のＮビット目の論理値と、レジスタ２９０４のＮビット目の論理値を用いて同様の論理演算を実施する。算出された論理演算結果は、レジスタ２９０７、２９０８に格納される。全てのレジスタに論理値が格納されると、加算器２９０９は各レジスタの値を加算する。これによって、論理値”１”の個数に基づいて電源の切り替え回数が算出される。以上の動作により算出された電源切り替え回数は、信号線２８０７を介して出力される。
【０１６９】
［切り替え回数判定部の動作説明］
切り替え回数判定部２８０２は、回路ブロック数算出部２８０３から回路ブロック数の情報を受信した後、図１６に示した判定部によって、電源の切り替え回数の最小値を算出する。その後、電源切り替え回数算出部２８０１から切り替え回数の情報を受信し、電源の切り替え回数が最少であるか判定する。
【０１７０】
切り替え回数判定部２８０２は、電源の切り替え回数が最少でない場合は、信号線２８１６を介して回路ブロック優先度設定部２８０４に優先度を設定するよう指示を与える。
【０１７１】
なお、電源の切り替え回数が最少である場合は構成情報の再生成はおこなわず、切り替え回数判定部２８０２は、信号線２７０４を介して既存の構成情報１０８を送信する指示を構成情報送信部７０２に送る。また、切り替え回数判定部２８０２は回路ブロック情報送信部２８１５へ、信号線２８１２から受信した回路ブロック情報を信号線１１４に出力するよう指示する。
【０１７２】
以上説明したように、第２実施形態によれば、データ処理装置１００の内部に設けた構成情報生成部２７０１により構成情報を再生成する。このように構成することにより、第１実施形態と同様、回路ブロックに対する電源の切り替え回数が少なくなるような構成情報を生成（再生成）することが可能となる。特に、電源の切り替え回数が少なくなるような構成情報をほぼリアルタイムに生成することが可能となる。
【０１７３】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014167764.tif 000003
【図２】
2014167764.tif 000004
【図３】
2014167764.tif 000005
【図４】
2014167764.tif 000006
【図５】
2014167764.tif 000007
【図６】
2014167764.tif 000008
【図７】
2014167764.tif 000009
【図８】
2014167764.tif 000010
【図９】
2014167764.tif 000011
【図１０】
2014167764.tif 000012
【図１１】
2014167764.tif 000013
【図１２】
2014167764.tif 000014
【図１３】
2014167764.tif 000015
【図１４】
2014167764.tif 000016
【図１５】
2014167764.tif 000017
【図１６】
2014167764.tif 000018
【図１７】
2014167764.tif 000019
【図１８】
2014167764.tif 000020
【図１９】
2014167764.tif 000021
【図２０】
2014167764.tif 000022
【図２１】
2014167764.tif 000023
【図２２】
2014167764.tif 000024
【図２３】
2014167764.tif 000025
【図２４】
2014167764.tif 000026
【図２５】
2014167764.tif 000027
【図２６】
2014167764.tif 000028
【図２７】
2014167764.tif 000029
【図２８】
2014167764.tif 000030
【図２９】
2014167764.tif 000031
【図３０】
2014167764.tif 000032