(57)【要約】【課題】動的再構成可能な演算手段によって複数の情報処理を行うにあたり、再構成時間の短い粗粒度の再構成可能回路は、帰還回路のレイテンシが大きいため性能低下が発生する。このため、時間を考慮した回路構成を行うこと。【解決手段】本発明は、動的に回路が再構成される第１演算部を複数備える第１回路構成部１０と、固定の回路から成る第２演算部を複数備える第２回路構成部２０と、情報を処理するにあたり、第１回路構成部１０ではレイテンシによる性能低下が発生する回路において、第２回路構成部２０で補間する回路構成を制御する回路構成制御部３０とを有する情報処理装置である。【選択図】図１
2010205108.tif 000002
【特許請求の範囲】
【請求項１】
動的に回路が再構成される第１演算部を複数備える第１回路構成手段と、
固定の回路から成る第２演算部を複数備える第２回路構成手段と、
情報を処理するにあたり、情報処理にかかる時間に応じて前記第１回路構成手段の第１演算部による回路構成および前記第２回路構成手段の第２演算部による回路構成を制御する回路構成制御手段と
を有する情報処理装置。
【請求項２】
前記第１回路構成手段による第１演算部は、前記第２回路構成手段による第２演算部より演算回路の粒度が大きい
請求項１記載の情報処理装置。
【請求項３】
前記第１回路構成手段は、前記第２回路構成手段より短い時間で回路構成が変更される
請求項１または２記載の情報処理装置。
【請求項４】
前記第１回路構成手段の第１演算部は複数の演算回路によって構成され、前記第２回路構成手段の第２演算部は単一の演算回路によって構成される
請求項１から３のうちいずれか１項に記載の情報処理装置。
【請求項５】
前記回路構成制御手段は、一の情報の処理結果を他の情報の処理に用いない情報処理を行う際には前記第１回路構成手段の第１演算部による回路構成を制御する
請求項１から４のうちいずれか１項に記載の情報処理装置。
【請求項６】
前記回路構成制御手段は、一の情報の処理結果を他の情報の処理に用いる情報処理を行う際には前記第２回路構成手段の第２演算部による回路構成を制御を行う
請求項１から５のうちいずれか１項に記載の情報処理装置。
【請求項７】
前記回路構成制御手段は、前記第１回路構成手段の複数の第１演算部のうち一部を用いた回路構成を制御する
請求項１から６のうちいずれか１項に記載の情報処理装置。
【請求項８】
前記回路構成制御手段は、前記第２回路構成手段の複数の第２演算部のうち一部を用いた回路構成を制御する
請求項１から７のうちいずれか１項に記載の情報処理装置。
【請求項９】
前記回路構成制御手段は、前記第２回路構成手段を複数の領域に分割し、各々の領域について相異なる領域で情報処理を行っている間に自領域の回路構成を行うよう制御する
請求項１から７のうちいずれか１項に記載の情報処理装置。
【請求項１０】
動的に回路が再構成される第１演算部を複数備える第１回路構成手段と、固定の回路から成る第２演算部を複数備える第２回路構成手段とを用いて情報を処理するにあたり、情報処理にかかる時間に応じて前記第１回路構成手段の第１演算部による回路構成および前記第２回路構成手段の第２演算部による回路構成を制御するステップを情報処理装置に実行させる
情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および情報処理プログラムに関する。
【背景技術】
【０００２】
特許文献１では、マルチプロセッサシステムにおいて、コンパイラにより処理対象となる入力プログラムから自動的に並列性を持つタスクを抽出し、各プロセッサユニットの特性に合わせて当該タスクを配置する技術が開示されている。
【０００３】
特許文献２では、再構成可能に相互結合される複数の演算ユニットを含むリコンフィギュラブル回路と、所定の処理を実行するよう構成される固定のロジック回路およびパラメータ設定により処理仕様を変更可能に構成されるパラメータ付専用ハードウェアの少なくとも一方である処理回路とを備える半導体集積回路が開示されている。この半導体集積回路では、リコンフィギュラブル回路と処理回路とに結合される接続変更可能なネットワークと、ネットワークを当該ネットワーク以外と結合するために当該ネットワークに接続される少なくとも２つのインタフェースを備えている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２９３７６８号公報
【特許文献２】特開２００６−１９７０２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、動的に回路が再構成される演算手段によって複数の情報処理を行うにあたり、再構成の時間を考慮した回路構成を行うことを目的とする。
【課題を解決するための手段】
【０００６】
本願請求項１に係る発明は、動的に回路が再構成される第１演算部を複数備える第１回路構成手段と、固定の回路から成る第２演算部を複数備える第２回路構成手段と、情報を処理するにあたり、情報処理にかかる時間に応じて前記第１回路構成手段の第１演算部による回路構成および前記第２回路構成手段の第２演算部による回路構成を制御する回路構成制御手段とを有する情報処理装置である。
【０００７】
本願請求項２に係る発明は、前記第１回路構成手段による第１演算部が、前記第２回路構成手段による第２演算部より演算回路の粒度が大きい請求項１記載の情報処理装置である。
【０００８】
本願請求項３に係る発明は、前記第１回路構成手段が、前記第２回路構成手段より短い時間で回路構成を変更する請求項１または２記載の情報処理装置である。
【０００９】
本願請求項４に係る発明は、前記第１回路構成手段の第１演算部が複数の演算回路によって構成され、前記第２回路構成手段の第２演算部が単一の演算回路によって構成される請求項１から３のうちいずれか１項に記載の情報処理装置である。
【００１０】
本願請求項５に係る発明は、前記回路構成制御手段が、一の情報の処理結果を他の情報の処理に用いない情報処理を行う際には前記第１回路構成手段の第１演算部による回路構成を制御する請求項１から４のうちいずれか１項に記載の情報処理装置である。
【００１１】
本願請求項６に係る発明は、前記回路構成制御手段が、一の情報の処理結果を他の情報の処理に用いる情報処理を行う際には前記第２回路構成手段の第２演算部による回路構成を制御を行う請求項１から５のうちいずれか１項に記載の情報処理装置である。
【００１２】
本願請求項７に係る発明は、前記回路構成制御手段が、前記第１回路構成手段の複数の第１演算部のうち一部を用いた回路構成を制御する請求項１から６のうちいずれか１項に記載の情報処理装置である。
【００１３】
本願請求項８に係る発明は、前記回路構成制御手段が、前記第２回路構成手段の複数の第２演算部のうち一部を用いた回路構成を制御する請求項１から７のうちいずれか１項に記載の情報処理装置である。
【００１４】
本願請求項９に係る発明は、前記回路構成制御手段が、前記第２回路構成手段を複数の領域に分割し、各々の領域について相異なる領域で情報処理を行っている間に自領域の回路構成を行うよう制御する請求項１から７のうちいずれか１項に記載の情報処理装置である。
【００１５】
本願請求項１０に係る発明は、動的に回路が再構成される第１演算部を複数備える第１回路構成手段と、固定の回路から成る第２演算部を複数備える第２回路構成手段とを用いて情報を処理するにあたり、情報処理にかかる時間に応じて前記第１回路構成手段の第１演算部による回路構成および前記第２回路構成手段の第２演算部による回路構成を制御するステップを情報処理装置に実行させる情報処理プログラムである。
【発明の効果】
【００１６】
本願請求項１に係る発明よれば、第１回路構成手段および第２回路構成手段のそれぞれの利点を生かした回路構成を構築することが可能となる。
【００１７】
本願請求項２に係る発明よれば、第１回路構成手段および第２回路構成手段の粒度の相違によるそれぞれの利点を生かした回路構成を構築することが可能となる。
【００１８】
本願請求項３に係る発明よれば、第１回路構成手段および第２回路構成手段の回路構成変更時間の相違によるそれぞれの利点を生かした回路構成を構築することが可能となる。
【００１９】
本願請求項４に係る発明よれば、第１回路構成手段および第２回路構成手段の演算回路の単位の相違によるそれぞれの利点を生かした回路構成を構築することが可能となる。
【００２０】
本願請求項５に係る発明よれば、一の情報を単独で処理する回路構成を構築するにあたり、第２回路構成手段で構築するより短い処理時間となる第１回路構成手段に構築した回路構成が可能となる。
【００２１】
本願請求項６に係る発明よれば、一の情報の処理結果を他の情報の処理に用いる情報処理を構築するにあたり、第１回路構成手段で構築するより短い処理時間となる第２回路構成手段に構築した回路構成が可能となる。
【００２２】
本願請求項７に係る発明よれば、情報処理に必要な回路構成を第１回路構成手段の全体で構築する場合に比べて切り替え時間の短い回路構成を構築することが可能となる。
【００２３】
本願請求項８に係る発明よれば、情報処理に必要な回路構成を第２回路構成手段の全体で構築する場合に比べて切り替え時間の短い回路構成を構築することが可能となる。
【００２４】
本願請求項９に係る発明よれば、第２回路構成手段の回路構成を並列的に行うことが可能となる。
【００２５】
本願請求項１０に係る発明よれば、情報処理にかかる時間に応じて第１回路構成手段および第２回路構成手段のそれぞれの利点を生かした回路構成を構築することが可能となる。
【図面の簡単な説明】
【００２６】
【図１】本実施形態に係る情報処理装置の概略構成を説明する図である。
【図２】本実施形態に係る情報処理装置のブロック構成図である。
【図３】情報処理のパイプラインを説明する図である。
【図４】管理テーブルおよび選択テーブルの例を示す図である。
【図５】処理回路の構成による情報処理の流れを説明する図である。
【図６】回路の再構成回数と処理性能との関係を示す図である。
【図７】第１回路構成部および第２回路構成部の割り当て方法を説明するフローチャートである。
【図８】第１のスケジューリングを説明するフローチャートである。
【図９】第１のスケジューリングを説明するパイプラインの流れ図である。
【図１０】第１のスケジューリングによる処理動作を説明するタイミングチャートである。
【図１１】第２のスケジューリングを説明するフローチャートである。
【図１２】第２のスケジューリングを説明するパイプラインの流れ図である。
【図１３】第１のスケジューリングによる処理動作を説明するタイミングチャートである。
【図１４】第３のスケジューリングを説明するフローチャートである。
【図１５】第３のスケジューリングを説明するパイプラインの流れ図である。
【図１６】第３のスケジューリングによる処理動作を説明するタイミングチャートである。
【図１７】第４のスケジューリングを説明するパイプラインの流れ図である。
【図１８】第４のスケジューリングを説明するフローチャートである。
【図１９】第４のスケジューリングを行った後のパイプラインの流れ図である。
【図２０】第４のスケジューリングを行った後の管理テーブルの例を示す図である。
【発明を実施するための形態】
【００２７】
以下、本発明を実施するための形態（以下、「実施形態」という。）について説明する。なお、説明は以下の順序で行う。
１．概略構成
２．ブロック構成
３．情報処理の流れ
４．回路構成例
５．スケジューリング
【００２８】
＜１．概略構成＞
図１は、本実施形態に係る情報処理装置の概略構成を説明する図である。本実施形態に係る情報処理装置は、第１回路構成部１０、第２回路構成部２０および回路構成制御部３０を備えている。
【００２９】
第１回路構成部１０は、動的に回路が再構成される第１演算部を複数備えるもので、所定のタイミングで内部回路が再構成される、例えば、ＤＲＰ（Dynamically Reconfigurable Processor）が用いられる。ＤＲＰは、クロック（数ナノ秒）単位で回路の再構成が成される。
【００３０】
第１演算部の１つは、複数の演算回路によって構成されるプロセッサエレメント（ＰＥ）によって構成される。第１回路構成部１０には、複数のプロセッサエレメントがマトリクス状に配置されており、プロセッサエレメントの組み合わせによって所定の情報処理回路が動的に構成される。
【００３１】
第２回路構成部２０は、固定の回路から成る第２演算部を複数備えるもので、所定のタイミングで内部回路が再構成される、例えば、ＦＰＧＡ（Field Programmable Gate Array）が用いられる。ＦＰＧＡは、数クロック（数ミリ秒）単位で回路の再構成が成される。
【００３２】
第２演算部の１つは、ＡＮＤゲート、ＯＲゲート、加算器、減算器といった単一の演算回路（ロジックエレメント（ＬＥ）によって構成される。第２回路構成部２０には、複数のロジックエレメントがマトリクス状に配置されており、ロジックエレメントの組み合わせによって所定の情報処理回路が動的に構成される。
【００３３】
ここで、本実施形態では、プロセッサエレメントのような複数の演算回路を備えた第１演算部を粗粒度の演算器、ロジックエレメントのような単一の演算回路を備えた第２演算部を細粒度の演算器という。このような演算器の構成により、第１回路構成部１０は、第２回路構成部２０より短い時間で回路構成が変更されることになる。
【００３４】
回路構成制御部は、所定の情報を処理するにあたり、情報処理にかかる時間に応じて第１回路構成部の第１演算部による回路構成および第２回路構成部の第２演算部による回路構成を制御する部分である。
【００３５】
回路構成制御部は、第１回路構成部であるＤＲＰの特徴である高速での回路構成の利点と、第２回路構成であるＦＰＧＡの特徴である大規模回路の構成の利点とを考慮して、情報処理の全体として効率的な処理を行うための回路構成を制御する。
【００３６】
例えば、回路構成制御部は、一の情報の処理結果を他の情報の処理に用いない情報処理、すなわち、複数の情報について順次処理を行うにあたり、一の情報の処理結果を後の情報の処理にフィードバックするような処理を行わない場合には、第１回路構成部の第１演算部で回路構成するよう制御する。
【００３７】
また、回路構成制御部は、一の情報の処理結果を他の情報の処理に用いる情報処理、すなわち、複数の情報について順次処理を行うにあたり、一の情報の処理結果を後の情報の処理にフィードバックするような処理を行う場合には、第２回路構成部の第２演算部で回路構成するよう制御する。
【００３８】
回路構成制御部は、第１回路構成部や第２回路構成部の各々について、その全体もしくは一部を用いて回路構成を制御する。回路構成の情報は、情報処理装置に接続されるメモリに格納されている。回路構成制御部は、メモリインタフェースを介してメモリから回路構成の情報を読み出し、この回路構成の情報に基づき第１回路構成部および第２回路構成部の回路構成を制御する。なお、図１に示すメモリは、処理対象となる情報を一時記憶する記憶部と、回路構成の情報を記憶する回路構成記憶部とを共通で示している。
【００３９】
＜２．ブロック構成＞
図２は、本実施形態に係る情報処理装置のブロック構成図である。回路構成制御部３０は、情報パス制御部３１、スケジューラ３２および分割制御部３３を備える。情報パス制御部３１は、処理対象となる情報の流れを制御する。すなわち、入力された情報を第１回路構成部や第２回路構成部に送る処理や、第１回路構成部および第２回路構成部とメモリとの間の情報の入出力を制御する。情報パス制御部３１は、第１回路構成部１０との間で情報の入出力を行う際、第１回路構成部１０にトリガーＴｒｇ１を送る。また、第２回路構成部２０との間で情報の入出力を行う際、第２回路構成部２０にトリガーＴｒｇ２を送る。
【００４０】
スケジューラ３２は、パイプライン管理情報（管理テーブル）および第１回路構成部１０および第２回路構成部２０から送られる割り込み信号に基づき第１回路構成部１０および第２回路構成部２０の回路構成や情報の流れを制御する。また、スケジューラ３２は、第１回路構成部１０および第２回路構成部２０の領域分割も制御する。
【００４１】
分割制御部３３は、スケジューラ３２の制御に基づき第１回路構成部１０および第２回路構成部２０の領域分割を指示する。スケジューラ３２および分割制御部３３は、第１回路構成記憶部１１に指示を与え、第１回路構成記憶部１１に記憶された回路構成を第１回路構成部１０に与えて回路構成を行う。また、スケジューラ３２および分割制御部３３は、第２回路構成記憶部２１に指示を与え、第２回路構成記憶部２１に記憶された回路構成を第２回路構成部２０に与えて回路構成を行う。
【００４２】
＜３．情報処理の流れ＞
［パイプライン］
図３は、情報処理のパイプラインを説明する図である。ここでは、情報処理として画像処理を例とし、１ピクセル（画素）ごと所定の画像処理を施す回路を例としている。また、図中「Ｃｏｎｆｉｇ」は所定の処理回路の構成を示している。図３に示す例では、「Ｃｏｎｆｉｇ−１」〜「Ｃｏｎｆｉｇ−５」による回路構成が成され、「Ｃｏｎｆｉｇ−１」〜「Ｃｏｎｆｉｇ−４」が１ピクセル当たり１クロックでの処理、「Ｃｏｎｆｉｇ−５」が１ピクセル当たり４クロックでの処理となっている。
【００４３】
画像は１ピクセル単位で「Ｃｏｎｆｉｇ−１」から「Ｃｏｎｆｉｇ−２」の順に送られ、処理される。「Ｃｏｎｆｉｇ−３」「Ｃｏｎｆｉｇ−４」は並列処理され、「Ｃｏｎｆｉｇ−５」に送られる。「Ｃｏｎｆｉｇ−５」では、４クロックで１ピクセルの画像を処理する。
【００４４】
各Ｃｏｎｆｉｇでの処理時間は、ピクセル数とクロックの周波数とから計算される。例えば、ＪＩＳ（日本工業規格）Ａ４サイズ、６００ｄｐｉ（ドット／インチ）の画像情報の場合、合計３２メガピクセルとなる。ここで、情報処理装置の動作クロックの周波数が２００ＭＨｚの場合、１Ｃｏｎｆｉｇでの処理時間は３２メガピクセル／２００ＭＨｚ＝１６０ｍｓｅｃ（ミリ秒）となる。
【００４５】
［管理テーブル］
図４（ａ）は、パイプライン管理テーブルの例を示す図である。先に説明した画像情報のパイプライン処理を行うにあたり、スケジューラは図４（ａ）に示すパイプライン管理テーブルを用いて第１回路構成部の回路構成を行う。パイプライン管理テーブルには、回路構成であるＣｏｎｆｉｇ  Ｎｏ．に対応して、使用するプロセッサエレメント（ＰＥ）の数、残りのＰＥの数、入力データ数（Input Stream Size）、出力データ数（OutPut Stream Size）、プロセッサタイプ、回路構成サイズ、レイテンシ（遅延クロック数）、処理時間が格納されている。スケジューラはこのパイプライン管理テーブルを参照して、回路構成の指示を行う。
【００４６】
［選択テーブル］
図４（ｂ）は、ロジックエレメントの（ＬＥ）の選択テーブルの例を示す図である。スケジューラは図４（ｂ）に示す選択テーブルを用いて第２回路構成部の回路構成を行う。選択テーブルには、選択の優先順位に対応して、デバイス名、処理速度、書き換え時間、ロジックエレメント数（Ｇａｔｅ  ｂｉｔ）およびメモリ数が格納されている。スケジューラはこの選択テーブルを参照して、回路構成の指示を行う。すなわち、粗粒度の再構成可能回路（第１回路構成部）でレイテンシが発生する部分において、細粒度の再構成可能回路（第２回路構成部）へ置き換える場合、細粒度の再構成可能回路の候補をこのテーブルから選択する。その時にプライオリティ順に選択し、目標性能を達成するか判断する。
【００４７】
粗粒度の再構成可能回路（第１回路構成部）と細粒度の再構成可能回路（第２回路構成部）とでは、基本的には粗粒度の再構成可能回路の方が高速処理でき、切換えも速い。しかし、粗粒度の再構成可能回路は、粒度が荒いため、帰還のかかった回路ではレイテンシが発生して、遅くなってしまう。一方、細粒度の再構成可能回路で論理合成すると、帰還回路は、１クロックで合成される。このため、粗粒度の再構成可能回路の欠点となる回路部分を細粒度の再構成可能回路で置き換えれば、各々の利点を生かし回路全体として高速化につながる。
【００４８】
＜４．回路構成例＞
図５は、処理回路の構成による情報処理の流れを説明する図である。ここでは、回路構成の書き換えについて検討する。図５に示す例では、「Ｃｏｎｆｉｇ−１」〜「Ｃｏｎｆｉｇ−５」による回路構成が成され、「Ｃｏｎｆｉｇ−１」「Ｃｏｎｆｉｇ−２」「Ｃｏｎｆｉｇ−４」が１ピクセル当たり１クロックでの処理、「Ｃｏｎｆｉｇ−３」が１ピクセル当たり４クロックでの処理、「Ｃｏｎｆｉｇ−５」が１ピクセル当たり３クロックでの処理となっている。
【００４９】
この「Ｃｏｎｆｉｇ−１」〜「Ｃｏｎｆｉｇ−５」を全て第１回路構成部（例えば、ＤＲＰ）で回路構成すると、１ピクセルの画像について「Ｃｏｎｆｉｇ−１」〜「Ｃｏｎｆｉｇ−５」を実行するにあたり、合計１０クロック、つまり合計１０回の回路構成の変更（書き換え）が必要となる。
【００５０】
これに対し、１ピクセル当たり複数クロックを要する「Ｃｏｎｆｉｇ−３」と「Ｃｏｎｆｉｇ−５」について、第２回路構成部（例えば、ＦＰＧＡ）で構成すると、それぞれ１ピクセル当たり１クロックで構成される可能性があるため、「Ｃｏｎｆｉｇ−１」〜「Ｃｏｎｆｉｇ−５」を実行するにあたり合計５クロックの処理で済むことになる。
【００５１】
図６は、回路の再構成回数と処理性能との関係を示す図である。図６では、Ａ４サイズ、３００ｄｐｉの画像情報について処理する際の回路再構成回数と処理能力（ＤＰＭ：Document per minute）との関係をシミュレーションしたものである。このように、回路の再構成回数が少ないほど処理性能が高いことが分かる。
【００５２】
一方、第２回路構成部では、大規模な回路構成は行えるものの、第１回路構成部ほど高速での回路の再構成には対応していない。図５に示す例では、「Ｃｏｎｆｉｇ−３」および「Ｃｏｎｆｉｇ−５」について第２回路構成部で回路構成を行うことで書き換え回数の低減を図っているが、第２回路構成部において「Ｃｏｎｆｉｇ−３」から「Ｃｏｎｆｉｇ−５」までの書き換え時間ｔ２、および「Ｃｏｎｆｉｇ−５」から「Ｃｏｎｆｉｇ−３」までの書き換え時間ｔ１を所定の許容時間内で行う必要がある。
【００５３】
本実施形態では、このような観点から、高速で回路の再構成が行われる第１回路構成部と、大規模な回路の再構成に対応した第２回路構成部との両方を組み合わせ、情報処理の効率化を図るようにしている。
【００５４】
図７は、第１回路構成部および第２回路構成部の割り当て方法を説明するフローチャートである。先ず、所望の情報処理について、粗粒度の演算器を備えた第１回路構成部に回路構成を割り当てる（ステップＳ１０１）。この割り当てで情報処理の処理性能が所望の目標性能を達成しているか否かを判断する（ステップＳ１０２）。第１回路構成部へ回路を割り当てた際の処理性能は、図４（ａ）に示す管理テーブルを参照し、回路構成（Ｃｏｎｆｉｇ）に対応したレイテンシと処理時間との積算によって求める。そして、この処理性能が目標性能に達しているか否かを判断する。目標性能に達している場合には第１回路構成部だけの回路構成とした割り当てで決定する。
【００５５】
一方、目標性能に達していない場合には、回路構成のパイプラインでのボトルネックを細粒度の演算器を備えた第２回路構成部に割り当てる（ステップＳ１０３）。そして、第２回路構成部へ回路構成を割り当てた状態での処理性能が目標性能に達しているか否かを判断する（ステップＳ１０４）。第２回路構成部へ回路構成を割り当てた際の処理性能は、図４（ｂ）に示す選択テーブルを参照し、割り当てたデバイスの処理速度と書き換え時間との加算によって求める。また、残りの回路構成を第１回路構成部へ割り当てた際の処理性能と加算して全体の処理性能を求める。そして、この処理性能が目標性能に達しているか否かを判断する。目標性能に達している場合には第１回路構成部および第２回路構成部に回路構成を割り当てた構成で決定する。
【００５６】
一方、目標性能に達していない場合には、粗粒度の演算器を備える第１回路構成部について、共通（常駐）回路の構成を細粒度の演算器を備える第２回路構成部に割り当てる処理を行う（ステップＳ１０５）。そして、共通（常駐）回路を第２回路構成部へ割り当てた状態での処理性能が目標性能に達しているか否かを判断する（ステップＳ１０６）。目標性能に達している場合には第１回路構成部および第２回路構成部に回路構成を割り当てた構成で決定する。
【００５７】
一方、目標性能に達していない場合には、粗粒度の演算器を備えた第１回路構成部と、細粒度の演算器を備えた第２回路構成部との並列化を図り（ステップＳ１０７）、処理性能が目標性能に達しているか否かを判断する（ステップＳ１０８）。目標性能に達している場合にはこの回路構成の割り当てで決定する。一方、目標性能に達していない場合には、ステップＳ１０１へ戻り、目標性能の見直しを図り、その後の処理を繰り返す。
【００５８】
図７に示す回路構成の割り当ては、主として情報処理装置の設計段階で行われ、所定の情報処理についての回路構成の割り当て、すなわち、所定の情報処理を行う際の第１回路構成部での回路構成および第２回路構成部での回路構成が、それぞれ図２に示す第１回路構成記憶部１１および第２回路構成記憶部２１に格納されることになる。
【００５９】
＜５．スケジューリング＞
［第１のスケジューリング］
図８は、第１のスケジューリングを説明するフローチャートである。このフローチャートでの処理は、回路構成制御部３０のスケジューラ３２で実行される。先ず、所望の情報処理の回路構成（Ｃｏｎｆｉｇ）で処理時間が所定の閾値を超えるものを抽出する（ステップＳ２０１）。回路構成の処理時間は、図４（ａ）に示す管理テーブルを参照することで行われる。例えば、この判断によって、回路構成中、フィードバック等の処理によって１ピクセル当たりの処理に１クロックを超えるレイテンシが発生しているものが抽出される。レイテンシが発生する回路構成（Ｃｏｎｆｉｇ）が抽出されない場合は終了する。
【００６０】
次に、１クロックを超えるレイテンシが発生する回路構成（Ｃｏｎｆｉｇ）が抽出された場合、その回路構成について細粒度の演算器を備える第２回路構成部での回路構成を選択する（ステップＳ２０２）。この処理では、図４（ｂ）に示す選択テーブルを参照し、優先順位の高い方から順にデバイス（細粒度の演算器の組み合わせ構成）が選択される。
【００６１】
次に、選択されたデバイスを用いた場合の第２回路構成部の書き換え時間（ｔ＿ｃｏｎｆ）を算出する（ステップＳ２０３）。書き換え時間（ｔ＿ｃｏｎｆ）は、ロジックエレメント（ＬＥ）のゲートビット（Ｇａｔｅ  ｂｉｔ）×１ビット（ｂｉｔ）当たりの書き換え時間によって計算される。
【００６２】
次に、各回路構成（Ｃｏｎｆｉｇ）の間隔時間の合計Δ＿ｃｏｎｆを算出する（ステップＳ２０４）。そして、書き換え時間（ｔ＿ｃｏｎｆ）が合計の間隔時間（Δ＿ｃｏｎｆ）より小さいか否かの判断を行う（ステップＳ２０５）。ここで、書き換え時間（ｔ＿ｃｏｎｆ）が合計の間隔時間（Δ＿ｃｏｎｆ）より小さい場合、選択されたデバイスで第２回路構成部の回路を構成する（ステップＳ２０６）。
【００６３】
一方、書き換え時間（ｔ＿ｃｏｎｆ）が合計の間隔時間（Δ＿ｃｏｎｆ）より小さくない場合、ステップＳ２０２へ戻り、次の優先順位のデバイスを選択テーブルから選択し、以降の処理を繰り返す。
【００６４】
図９は、第１のスケジューリングを説明するパイプラインの流れ図である。図９に示す例では、「Ｃｏｎｆｉｇ−１」〜「Ｃｏｎｆｉｇ−５」による回路構成が成され、「Ｃｏｎｆｉｇ−１」「Ｃｏｎｆｉｇ−２」「Ｃｏｎｆｉｇ−４」が１ピクセル当たり１クロックでの処理、「Ｃｏｎｆｉｇ−３」が１ピクセル当たり４クロックでの処理、「Ｃｏｎｆｉｇ−５」が１ピクセル当たり３クロックでの処理となっている。第１のスケジュールでは、このうち、１クロックを超えるレイテンシの発生する回路構成として「Ｃｏｎｆｉｇ−３」が抽出される。
【００６５】
そして、抽出された「Ｃｏｎｆｉｇ−３」を細粒度の演算器を備える第２回路構成部に割り当てた場合、処理時間は「Ｃｏｎｆｉｇ−１」「Ｃｏｎｆｉｇ−２」「Ｃｏｎｆｉｇ−４」と同様の１６０ｍｓとなる。また、「Ｃｏｎｆｉｇ−３」を第２回路構成部に割り当てた際の書き換え時間（ｔ＿ｃｏｎｆ）を計算する。そして、この書き換え時間（ｔ＿ｃｏｎｆ）と合計の間隔時間（Δ＿ｃｏｎｆ）とを比較し、デバイスの決定を行う。
【００６６】
その後、図９に示す例では、１クロックを超えるレイテンシの発生する回路構成として「Ｃｏｎｆｉｇ−５」も抽出され、同様な処理によって第２回路構成部へのデバイスの割り当てが決定される。
【００６７】
図１０は、第１のスケジューリングによる処理動作を説明するタイミングチャートである。この図で上段は第１回路構成部（粗粒度）での処理、下段は第２回路構成部（細粒度）での処理のタイミングを示している。「Ｃｏｎｆｉｇ−１」「Ｃｏｎｆｉｇ−２」は第１回路構成部に構成され、１クロックごとに１ピクセルを処理していく。次に、第２回路構成部に構成された「Ｃｏｎｆｉｇ−３」で処理を行う。ここでは、第１回路構成部で４クロック分かかっていた処理を１クロック分で処理する。
【００６８】
次に、第１回路構成部に構成された「Ｃｏｎｆｉｇ−４」で処理を行い、次いで、第２回路構成部に構成された「Ｃｏｎｆｉｇ−５」で処理を行う。ここでは、第１回路構成部で３クロック分かかっていた処理を１クロック分で処理する。
【００６９】
［第２のスケジューリング］
図１１は、第２のスケジューリングを説明するフローチャートであり、第２回路構成部のパーシャル リコンフィグレーション（部分再構成）機能による高速化の処理を示すものである。このフローチャートでの処理は、回路構成制御部のスケジューラで実行される。先ず、所望の情報処理の回路構成（Ｃｏｎｆｉｇ）で処理時間が所定の閾値（ここでは、２クロック）以上となるものを抽出する（ステップＳ３０１）。回路構成の処理時間は、図４（ａ）に示す管理テーブルを参照することで行われる。例えば、この判断によって、回路構成中、フィードバック等の処理によって１ピクセル当たりの処理に２クロック以上のレイテンシが発生しているものが抽出される。レイテンシが発生する回路構成（Ｃｏｎｆｉｇ）が抽出されない場合は終了する。
【００７０】
次に、２クリック以上のレイテンシが発生する回路構成（Ｃｏｎｆｉｇ）が抽出された場合、その回路構成について細粒度の演算器を備える第２回路構成部での回路構成を選択する（ステップＳ３０２）。この処理では、図４（ｂ）に示す選択テーブルを参照し、優先順位の高い方から順にデバイス（細粒度の演算器の組み合わせ構成）が選択される。
【００７１】
次に、選択されたデバイスを用いた場合の第２回路構成部の書き換え時間（ｔ＿ｃｏｎｆ）を算出する（ステップＳ３０３）。書き換え時間（ｔ＿ｃｏｎｆ）は、ロジックエレメント（ＬＥ）のゲートビット（Ｇａｔｅ  ｂｉｔ）×１ビット（ｂｉｔ）当たりの書き換え時間によって計算される。
【００７２】
次に、各回路構成（Ｃｏｎｆｉｇ）の間隔時間の合計Δ＿ｃｏｎｆを算出する（ステップＳ３０４）。そして、書き換え時間（ｔ＿ｃｏｎｆ）が合計の間隔時間（Δ＿ｃｏｎｆ）より小さいか否かの判断を行う（ステップＳ３０５）。ここで、書き換え時間（ｔ＿ｃｏｎｆ）が合計の間隔時間（Δ＿ｃｏｎｆ）より小さい場合、第２回路構成部の領域分割の規模を決定する（ステップＳ３０６）。その後、決定された第２回路構成部の分割された領域に、先に選択されたデバイスを構成する（ステップＳ３０７）。
【００７３】
一方、書き換え時間（ｔ＿ｃｏｎｆ）が合計の間隔時間（Δ＿ｃｏｎｆ）より小さくない場合、ステップＳ３０２へ戻り、次の優先順位のデバイスを選択テーブルから選択し、以降の処理を繰り返す。
【００７４】
図１２は、第２のスケジューリングを説明するパイプラインの流れ図である。図１２に示す例では、「Ｃｏｎｆｉｇ−１」〜「Ｃｏｎｆｉｇ−５」による回路構成が成され、「Ｃｏｎｆｉｇ−１」「Ｃｏｎｆｉｇ−２」「Ｃｏｎｆｉｇ−４」が１ピクセル当たり１クロックでの処理、「Ｃｏｎｆｉｇ−３」が１ピクセル当たり４クロックでの処理、「Ｃｏｎｆｉｇ−５」が１ピクセル当たり３クロックでの処理となっている。第１のスケジュールでは、このうち、２クロック以上のレイテンシが発生する回路構成として「Ｃｏｎｆｉｇ−３」が抽出される。
【００７５】
そして、抽出された「Ｃｏｎｆｉｇ−３」を細粒度の演算器を備える第２回路構成部に割り当てた場合、処理時間は「Ｃｏｎｆｉｇ−１」「Ｃｏｎｆｉｇ−２」「Ｃｏｎｆｉｇ−４」と同様の１６０ｍｓとなる。また、「Ｃｏｎｆｉｇ−３」を第２回路構成部に割り当てた際の書き換え時間（ｔ＿ｃｏｎｆ）を計算する。そして、この書き換え時間（ｔ＿ｃｏｎｆ）と合計の間隔時間（Δ＿ｃｏｎｆ）とを比較し、第２回路構成部の分割された領域にデバイスを割り当てる。
【００７６】
その後、図１２に示す例では、２クロック以上のレイテンシが発生する回路構成として「Ｃｏｎｆｉｇ−５」も抽出され、同様な処理によって第２回路構成部の分割された別の領域へデバイスが割り当てられる。
【００７７】
図１３は、第２のスケジューリングによる処理動作を説明するタイミングチャートである。この図で上段は第１回路構成部（粗粒度）での処理、下段は２分割された第２回路構成部（細粒度）での処理のタイミングを示している。「Ｃｏｎｆｉｇ−１」「Ｃｏｎｆｉｇ−２」は第１回路構成部に構成され、１クロックごとに１ピクセルを処理していく。次に、第２回路構成部の２分割された一方の領域に構成された「Ｃｏｎｆｉｇ−３」で処理を行う。ここでは、第１回路構成部で４クロック分かかっていた処理を１クロック分で処理する。
【００７８】
次に、第１回路構成部に構成された「Ｃｏｎｆｉｇ−４」で処理を行い、次いで、第２回路構成部の２分割された他方の領域に構成された「Ｃｏｎｆｉｇ−５」で処理を行う。ここでは、第１回路構成部で３クロック分かかっていた処理を１クロック分で処理する。
【００７９】
第２回路構成部が分割され、各々の領域に異なるデバイスが割り当てられることで、一方の領域に割り当てられたデバイスで処理を行っている間、他方の領域のデバイスの書き換えを行う時間が設けられる。したがって、第２回路構成部を分割しない場合に比べ、回路構成の書き換え時間に余裕が生じる。また、分割された領域ごとの書き換えとなるため、書き換えのデータ量が少なくなり、書き換え時間が高速化される。
【００８０】
［第３のスケジューリング］
図１４は、第３のスケジューリングを説明するフローチャートである。このフローチャートでの処理は、回路構成制御部のスケジューラで実行される。先ず、情報の入出力で依存関係のない回路構成（Ｃｏｎｆｉｇ）があるか否かを判断する（ステップＳ４０１）。依存関係のない回路構成がない場合には処理を終了する。
【００８１】
一方、依存関係のない回路構成がある場合には、その回路構成（Ｃｏｎｆｉｇ）を抽出する（ステップＳ４０２）。次に、抽出した回路構成の中からフィードバックにかかるレイテンシのないものを第１回路構成部に割り当て（ステップＳ４０３）、その他の回路構成を第２回路構成部に割り当てる（ステップＳ４０４）。
【００８２】
図１５は、第３のスケジューリングを説明するパイプラインの流れ図である。図１５に示す例では、「Ｃｏｎｆｉｇ−１」〜「Ｃｏｎｆｉｇ−６」による回路構成が成され、「Ｃｏｎｆｉｇ−１」〜「Ｃｏｎｆｉｇ−５」が１ピクセル当たり１クロックでの処理、「Ｃｏｎｆｉｇ−６」が１ピクセル当たり４クロックでの処理となっている。第２のスケジュールでは、このうち、情報の入出力に依存関係のない「Ｃｏｎｆｉｇ−３」〜「Ｃｏｎｆｉｇ−５」が抽出される。
【００８３】
そして、抽出された「Ｃｏｎｆｉｇ−３」〜「Ｃｏｎｆｉｇ−５」からフィードバックに関するレイテンシのない「Ｃｏｎｆｉｇ−３」を第１回路構成部に割り当て、その他の「Ｃｏｎｆｉｇ−４」「Ｃｏｎｆｉｇ−５」を第２回路構成部に割り当てている。
【００８４】
図１６は、第３のスケジューリングによる処理動作を説明するタイミングチャートである。この図で上段は第１回路構成部（粗粒度）での処理、下段は２分割された第２回路構成部（細粒度）での処理のタイミングを示している。
【００８５】
「Ｃｏｎｆｉｇ−１」「Ｃｏｎｆｉｇ−２」は第１回路構成部に構成され、１クロックごとに１ピクセルを処理していく。次に、「Ｃｏｎｆｉｇ−３」が第１回路構成部に構成され、「Ｃｏｎｆｉｇ−４」、「Ｃｏｎｆｉｇ−５」が２分割された第２回路構成部の各領域に構成され、並列で処理していく。次に、「Ｃｏｎｆｉｇ−６」が第１回路構成部に構成され、処理が行われる。
【００８６】
［第４のスケジューリング］
図１７は、第４のスケジューリングを説明するパイプラインの流れ図である。図１７の上図は、第４のスケジューリングを行う前の流れを示す図、下図は、第４のスケジューリングを行った後の流れを示す図である。
【００８７】
図１７上図に示すように、第４のスケジューリングを行う前の流れでは、「Ｃｏｎｆｉｇ−１」〜「Ｃｏｎｆｉｇ−４」による回路構成が成されている。各回路構成は全て細粒度の演算器を備える第１回路構成部で構成されている。
【００８８】
この「Ｃｏｎｆｉｇ−１」〜「Ｃｏｎｆｉｇ−４」の回路構成には、同じ処理を行う回路として処理Ａが含まれている。すなわち、この例では、「Ｃｏｎｆｉｇ−１」として画像処理ａに対する処理１と画像処理ｂに対する処理Ａが構成され、「Ｃｏｎｆｉｇ−２」として画像処理ａに対する処理２と画像処理ｂに対する処理Ａが構成され、「Ｃｏｎｆｉｇ−３」として画像処理ａに対する処理３と画像処理ｂに対する処理Ａが構成され、「Ｃｏｎｆｉｇ−４」として画像処理ａに対する処理４と画像処理ｂに対する処理Ａが構成されている。
【００８９】
例えば、画像処理ｂにおける処理Ａはスキャン処理であり、画像処理ｂのパスはいつでもスキャンデータを受け入れできる状態としておく。このため、全ての回路構成に処理Ａが含まれることになる。
【００９０】
第４のスケジューリングでは、このように各回路構成で同じ処理については細粒度の演算器を備える第２回路構成部に割り当てる。すなわち、図１７下図に示すように、処理Ａを細粒度の演算器を備える第２回路構成部に割り当て、第１回路構成部では、空いた領域に画像処理ａの処理を割り当てている。
【００９１】
具体的には、第１回路構成部の「Ｃｏｎｆｉｇ−１」として画像処理ａに対する処理１と、処理Ａがあった領域に処理２が構成され、「Ｃｏｎｆｉｇ−２」として画像処理ａに対する処理２と処理Ａがあった領域に処理３の一部が構成され、「Ｃｏｎｆｉｇ−３」として画像処理ａに対する処理４と処理Ａがあった領域に処理３の残りの一部が構成される。これにより、回路構成数が４つから３つに減ることになる。つまり、処理性能は４／３＝約１．３３倍に向上する。
【００９２】
図１８は、第４のスケジューリングを説明するフローチャートである。このフローチャートでの処理は、回路構成制御部のスケジューラで実行される。先ず、各回路構成で共通回路となるモジュール（処理回路）があるか否かを判断する（ステップＳ５０１）。ない場合には処理を終了する。ある場合には共通回路のモジュールの回路数を算出する（ステップＳ５０２）。算出した回路数をＣｏｍｍｏｎ＿ＰＥとする。
【００９３】
次に、図４（ａ）に示す管理テーブルを参照し、回路構成（Ｃｏｎｆｉｇ）の使用ＰＥ数（ＰＥ＿ｕｓｅ１、ＰＥ＿ｕｓｅ２、…、ＰＥ＿ｕｓｅｎ）を抽出する（ステップＳ５０３）。次いで、抽出した使用ＰＥ数から共通回路のモジュールの回路数Ｃｏｍｍｏｎ＿ＰＥを差し引く（ステップＳ５０４）。
【００９４】
そして、計算後のＰＥ数で回路構成の再構築を行う（ステップＳ５０５）。この処理では、共通回路モジュールのＰＥ数が空いた状態で回路構成の再構築が行われる。その後、再構築後の回路構成数（Ｃｏｎｆｉｇ数）が再構築前より減っているか否かを判断する（ステップＳ５０６）。減っている場合には、共通回路モジュールを細粒度の演算器を備える第２回路構成部へ割り当て（ステップＳ５０７）、図４（ａ）に示す管理テーブルをステップＳ５０４で計算した後の値に書き替える（ステップＳ５０８）。
【００９５】
一方、再構築後の回路構成数（Ｃｏｎｆｉｇ数）が再構築前より減っていない場合、共通回路モジュールの細粒度への割り当てを行わず、元の管理テーブルのままとする（ステップＳ５０９）。
【００９６】
図１９は、第４のスケジューリングを行った後のパイプラインの流れ図である。また、図２０は、第４のスケジューリングを行った後の管理テーブルの例を示す図である。第４のスケジューリングによって各回路構成（Ｃｏｎｆｉｇ）に共通回路モジュールが抽出された場合、その共通回路モジュールは細粒度の演算器を備える第２回路構成部に割り当てられる。図１９、図２０で示す例では、第２回路構成部に割り当てられる共通回路モジュールの回路構成を「Ｃｏｎｆｉｇ−１」として管理テーブルの更新を行っている。図２０に示す管理テーブルでは、「Ｃｏｎｆｉｇ−１」に対応したプロセッサタイプが細粒度を示すロジックエレメント（ＬＥ）になっている。
【００９７】
また、図１９に示すように、第４のスケジューリング後のパイプラインの流れは、「Ｃｏｎｆｉｇ−１」のラインと、「Ｃｏｎｆｉｇ−２」〜「Ｃｏｎｆｉｇ−５」のラインとの２つが並列に設けられることになる。
【００９８】
以上説明した各スケジューリングの流れは、情報処理装置で実行させる情報処理プログラムとして実現してもよい。情報処理プログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録されていたり、ネットワークを介して配信されるものでもある。
【符号の説明】
【００９９】
１０…第１回路構成部、１１…第１回路構成記憶部、２０…第２回路構成部、２１…第２回路構成記憶部、３０…回路構成制御部、３１…情報パス制御部、３２…スケジューラ、３３…分割制御部、４０…メモリインタフェース、５０…メモリ
【図１】
2010205108.tif 000003
【図２】
2010205108.tif 000004
【図３】
2010205108.tif 000005
【図４】
2010205108.tif 000006
【図５】
2010205108.tif 000007
【図６】
2010205108.tif 000008
【図７】
2010205108.tif 000009
【図８】
2010205108.tif 000010
【図９】
2010205108.tif 000011
【図１０】
2010205108.tif 000012
【図１１】
2010205108.tif 000013
【図１２】
2010205108.tif 000014
【図１３】
2010205108.tif 000015
【図１４】
2010205108.tif 000016
【図１５】
2010205108.tif 000017
【図１６】
2010205108.tif 000018
【図１７】
2010205108.tif 000019
【図１８】
2010205108.tif 000020
【図１９】
2010205108.tif 000021
【図２０】
2010205108.tif 000022