説明

情報処理装置および情報処理プログラム

【課題】動的再構成可能な演算手段によって複数の情報処理を行うにあたり、再構成時間の短い粗粒度の再構成可能回路は、帰還回路のレイテンシが大きいため性能低下が発生する。このため、時間を考慮した回路構成を行うこと。
【解決手段】本発明は、動的に回路が再構成される第1演算部を複数備える第1回路構成部10と、固定の回路から成る第2演算部を複数備える第2回路構成部20と、情報を処理するにあたり、第1回路構成部10ではレイテンシによる性能低下が発生する回路において、第2回路構成部20で補間する回路構成を制御する回路構成制御部30とを有する情報処理装置である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置および情報処理プログラムに関する。
【背景技術】
【0002】
特許文献1では、マルチプロセッサシステムにおいて、コンパイラにより処理対象となる入力プログラムから自動的に並列性を持つタスクを抽出し、各プロセッサユニットの特性に合わせて当該タスクを配置する技術が開示されている。
【0003】
特許文献2では、再構成可能に相互結合される複数の演算ユニットを含むリコンフィギュラブル回路と、所定の処理を実行するよう構成される固定のロジック回路およびパラメータ設定により処理仕様を変更可能に構成されるパラメータ付専用ハードウェアの少なくとも一方である処理回路とを備える半導体集積回路が開示されている。この半導体集積回路では、リコンフィギュラブル回路と処理回路とに結合される接続変更可能なネットワークと、ネットワークを当該ネットワーク以外と結合するために当該ネットワークに接続される少なくとも2つのインタフェースを備えている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−293768号公報
【特許文献2】特開2006−197023号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、動的に回路が再構成される演算手段によって複数の情報処理を行うにあたり、再構成の時間を考慮した回路構成を行うことを目的とする。
【課題を解決するための手段】
【0006】
本願請求項1に係る発明は、動的に回路が再構成される第1演算部を複数備える第1回路構成手段と、固定の回路から成る第2演算部を複数備える第2回路構成手段と、情報を処理するにあたり、情報処理にかかる時間に応じて前記第1回路構成手段の第1演算部による回路構成および前記第2回路構成手段の第2演算部による回路構成を制御する回路構成制御手段とを有する情報処理装置である。
【0007】
本願請求項2に係る発明は、前記第1回路構成手段による第1演算部が、前記第2回路構成手段による第2演算部より演算回路の粒度が大きい請求項1記載の情報処理装置である。
【0008】
本願請求項3に係る発明は、前記第1回路構成手段が、前記第2回路構成手段より短い時間で回路構成を変更する請求項1または2記載の情報処理装置である。
【0009】
本願請求項4に係る発明は、前記第1回路構成手段の第1演算部が複数の演算回路によって構成され、前記第2回路構成手段の第2演算部が単一の演算回路によって構成される請求項1から3のうちいずれか1項に記載の情報処理装置である。
【0010】
本願請求項5に係る発明は、前記回路構成制御手段が、一の情報の処理結果を他の情報の処理に用いない情報処理を行う際には前記第1回路構成手段の第1演算部による回路構成を制御する請求項1から4のうちいずれか1項に記載の情報処理装置である。
【0011】
本願請求項6に係る発明は、前記回路構成制御手段が、一の情報の処理結果を他の情報の処理に用いる情報処理を行う際には前記第2回路構成手段の第2演算部による回路構成を制御を行う請求項1から5のうちいずれか1項に記載の情報処理装置である。
【0012】
本願請求項7に係る発明は、前記回路構成制御手段が、前記第1回路構成手段の複数の第1演算部のうち一部を用いた回路構成を制御する請求項1から6のうちいずれか1項に記載の情報処理装置である。
【0013】
本願請求項8に係る発明は、前記回路構成制御手段が、前記第2回路構成手段の複数の第2演算部のうち一部を用いた回路構成を制御する請求項1から7のうちいずれか1項に記載の情報処理装置である。
【0014】
本願請求項9に係る発明は、前記回路構成制御手段が、前記第2回路構成手段を複数の領域に分割し、各々の領域について相異なる領域で情報処理を行っている間に自領域の回路構成を行うよう制御する請求項1から7のうちいずれか1項に記載の情報処理装置である。
【0015】
本願請求項10に係る発明は、動的に回路が再構成される第1演算部を複数備える第1回路構成手段と、固定の回路から成る第2演算部を複数備える第2回路構成手段とを用いて情報を処理するにあたり、情報処理にかかる時間に応じて前記第1回路構成手段の第1演算部による回路構成および前記第2回路構成手段の第2演算部による回路構成を制御するステップを情報処理装置に実行させる情報処理プログラムである。
【発明の効果】
【0016】
本願請求項1に係る発明よれば、第1回路構成手段および第2回路構成手段のそれぞれの利点を生かした回路構成を構築することが可能となる。
【0017】
本願請求項2に係る発明よれば、第1回路構成手段および第2回路構成手段の粒度の相違によるそれぞれの利点を生かした回路構成を構築することが可能となる。
【0018】
本願請求項3に係る発明よれば、第1回路構成手段および第2回路構成手段の回路構成変更時間の相違によるそれぞれの利点を生かした回路構成を構築することが可能となる。
【0019】
本願請求項4に係る発明よれば、第1回路構成手段および第2回路構成手段の演算回路の単位の相違によるそれぞれの利点を生かした回路構成を構築することが可能となる。
【0020】
本願請求項5に係る発明よれば、一の情報を単独で処理する回路構成を構築するにあたり、第2回路構成手段で構築するより短い処理時間となる第1回路構成手段に構築した回路構成が可能となる。
【0021】
本願請求項6に係る発明よれば、一の情報の処理結果を他の情報の処理に用いる情報処理を構築するにあたり、第1回路構成手段で構築するより短い処理時間となる第2回路構成手段に構築した回路構成が可能となる。
【0022】
本願請求項7に係る発明よれば、情報処理に必要な回路構成を第1回路構成手段の全体で構築する場合に比べて切り替え時間の短い回路構成を構築することが可能となる。
【0023】
本願請求項8に係る発明よれば、情報処理に必要な回路構成を第2回路構成手段の全体で構築する場合に比べて切り替え時間の短い回路構成を構築することが可能となる。
【0024】
本願請求項9に係る発明よれば、第2回路構成手段の回路構成を並列的に行うことが可能となる。
【0025】
本願請求項10に係る発明よれば、情報処理にかかる時間に応じて第1回路構成手段および第2回路構成手段のそれぞれの利点を生かした回路構成を構築することが可能となる。
【図面の簡単な説明】
【0026】
【図1】本実施形態に係る情報処理装置の概略構成を説明する図である。
【図2】本実施形態に係る情報処理装置のブロック構成図である。
【図3】情報処理のパイプラインを説明する図である。
【図4】管理テーブルおよび選択テーブルの例を示す図である。
【図5】処理回路の構成による情報処理の流れを説明する図である。
【図6】回路の再構成回数と処理性能との関係を示す図である。
【図7】第1回路構成部および第2回路構成部の割り当て方法を説明するフローチャートである。
【図8】第1のスケジューリングを説明するフローチャートである。
【図9】第1のスケジューリングを説明するパイプラインの流れ図である。
【図10】第1のスケジューリングによる処理動作を説明するタイミングチャートである。
【図11】第2のスケジューリングを説明するフローチャートである。
【図12】第2のスケジューリングを説明するパイプラインの流れ図である。
【図13】第1のスケジューリングによる処理動作を説明するタイミングチャートである。
【図14】第3のスケジューリングを説明するフローチャートである。
【図15】第3のスケジューリングを説明するパイプラインの流れ図である。
【図16】第3のスケジューリングによる処理動作を説明するタイミングチャートである。
【図17】第4のスケジューリングを説明するパイプラインの流れ図である。
【図18】第4のスケジューリングを説明するフローチャートである。
【図19】第4のスケジューリングを行った後のパイプラインの流れ図である。
【図20】第4のスケジューリングを行った後の管理テーブルの例を示す図である。
【発明を実施するための形態】
【0027】
以下、本発明を実施するための形態(以下、「実施形態」という。)について説明する。なお、説明は以下の順序で行う。
1.概略構成
2.ブロック構成
3.情報処理の流れ
4.回路構成例
5.スケジューリング
【0028】
<1.概略構成>
図1は、本実施形態に係る情報処理装置の概略構成を説明する図である。本実施形態に係る情報処理装置は、第1回路構成部10、第2回路構成部20および回路構成制御部30を備えている。
【0029】
第1回路構成部10は、動的に回路が再構成される第1演算部を複数備えるもので、所定のタイミングで内部回路が再構成される、例えば、DRP(Dynamically Reconfigurable Processor)が用いられる。DRPは、クロック(数ナノ秒)単位で回路の再構成が成される。
【0030】
第1演算部の1つは、複数の演算回路によって構成されるプロセッサエレメント(PE)によって構成される。第1回路構成部10には、複数のプロセッサエレメントがマトリクス状に配置されており、プロセッサエレメントの組み合わせによって所定の情報処理回路が動的に構成される。
【0031】
第2回路構成部20は、固定の回路から成る第2演算部を複数備えるもので、所定のタイミングで内部回路が再構成される、例えば、FPGA(Field Programmable Gate Array)が用いられる。FPGAは、数クロック(数ミリ秒)単位で回路の再構成が成される。
【0032】
第2演算部の1つは、ANDゲート、ORゲート、加算器、減算器といった単一の演算回路(ロジックエレメント(LE)によって構成される。第2回路構成部20には、複数のロジックエレメントがマトリクス状に配置されており、ロジックエレメントの組み合わせによって所定の情報処理回路が動的に構成される。
【0033】
ここで、本実施形態では、プロセッサエレメントのような複数の演算回路を備えた第1演算部を粗粒度の演算器、ロジックエレメントのような単一の演算回路を備えた第2演算部を細粒度の演算器という。このような演算器の構成により、第1回路構成部10は、第2回路構成部20より短い時間で回路構成が変更されることになる。
【0034】
回路構成制御部は、所定の情報を処理するにあたり、情報処理にかかる時間に応じて第1回路構成部の第1演算部による回路構成および第2回路構成部の第2演算部による回路構成を制御する部分である。
【0035】
回路構成制御部は、第1回路構成部であるDRPの特徴である高速での回路構成の利点と、第2回路構成であるFPGAの特徴である大規模回路の構成の利点とを考慮して、情報処理の全体として効率的な処理を行うための回路構成を制御する。
【0036】
例えば、回路構成制御部は、一の情報の処理結果を他の情報の処理に用いない情報処理、すなわち、複数の情報について順次処理を行うにあたり、一の情報の処理結果を後の情報の処理にフィードバックするような処理を行わない場合には、第1回路構成部の第1演算部で回路構成するよう制御する。
【0037】
また、回路構成制御部は、一の情報の処理結果を他の情報の処理に用いる情報処理、すなわち、複数の情報について順次処理を行うにあたり、一の情報の処理結果を後の情報の処理にフィードバックするような処理を行う場合には、第2回路構成部の第2演算部で回路構成するよう制御する。
【0038】
回路構成制御部は、第1回路構成部や第2回路構成部の各々について、その全体もしくは一部を用いて回路構成を制御する。回路構成の情報は、情報処理装置に接続されるメモリに格納されている。回路構成制御部は、メモリインタフェースを介してメモリから回路構成の情報を読み出し、この回路構成の情報に基づき第1回路構成部および第2回路構成部の回路構成を制御する。なお、図1に示すメモリは、処理対象となる情報を一時記憶する記憶部と、回路構成の情報を記憶する回路構成記憶部とを共通で示している。
【0039】
<2.ブロック構成>
図2は、本実施形態に係る情報処理装置のブロック構成図である。回路構成制御部30は、情報パス制御部31、スケジューラ32および分割制御部33を備える。情報パス制御部31は、処理対象となる情報の流れを制御する。すなわち、入力された情報を第1回路構成部や第2回路構成部に送る処理や、第1回路構成部および第2回路構成部とメモリとの間の情報の入出力を制御する。情報パス制御部31は、第1回路構成部10との間で情報の入出力を行う際、第1回路構成部10にトリガーTrg1を送る。また、第2回路構成部20との間で情報の入出力を行う際、第2回路構成部20にトリガーTrg2を送る。
【0040】
スケジューラ32は、パイプライン管理情報(管理テーブル)および第1回路構成部10および第2回路構成部20から送られる割り込み信号に基づき第1回路構成部10および第2回路構成部20の回路構成や情報の流れを制御する。また、スケジューラ32は、第1回路構成部10および第2回路構成部20の領域分割も制御する。
【0041】
分割制御部33は、スケジューラ32の制御に基づき第1回路構成部10および第2回路構成部20の領域分割を指示する。スケジューラ32および分割制御部33は、第1回路構成記憶部11に指示を与え、第1回路構成記憶部11に記憶された回路構成を第1回路構成部10に与えて回路構成を行う。また、スケジューラ32および分割制御部33は、第2回路構成記憶部21に指示を与え、第2回路構成記憶部21に記憶された回路構成を第2回路構成部20に与えて回路構成を行う。
【0042】
<3.情報処理の流れ>
[パイプライン]
図3は、情報処理のパイプラインを説明する図である。ここでは、情報処理として画像処理を例とし、1ピクセル(画素)ごと所定の画像処理を施す回路を例としている。また、図中「Config」は所定の処理回路の構成を示している。図3に示す例では、「Config−1」〜「Config−5」による回路構成が成され、「Config−1」〜「Config−4」が1ピクセル当たり1クロックでの処理、「Config−5」が1ピクセル当たり4クロックでの処理となっている。
【0043】
画像は1ピクセル単位で「Config−1」から「Config−2」の順に送られ、処理される。「Config−3」「Config−4」は並列処理され、「Config−5」に送られる。「Config−5」では、4クロックで1ピクセルの画像を処理する。
【0044】
各Configでの処理時間は、ピクセル数とクロックの周波数とから計算される。例えば、JIS(日本工業規格)A4サイズ、600dpi(ドット/インチ)の画像情報の場合、合計32メガピクセルとなる。ここで、情報処理装置の動作クロックの周波数が200MHzの場合、1Configでの処理時間は32メガピクセル/200MHz=160msec(ミリ秒)となる。
【0045】
[管理テーブル]
図4(a)は、パイプライン管理テーブルの例を示す図である。先に説明した画像情報のパイプライン処理を行うにあたり、スケジューラは図4(a)に示すパイプライン管理テーブルを用いて第1回路構成部の回路構成を行う。パイプライン管理テーブルには、回路構成であるConfig No.に対応して、使用するプロセッサエレメント(PE)の数、残りのPEの数、入力データ数(Input Stream Size)、出力データ数(OutPut Stream Size)、プロセッサタイプ、回路構成サイズ、レイテンシ(遅延クロック数)、処理時間が格納されている。スケジューラはこのパイプライン管理テーブルを参照して、回路構成の指示を行う。
【0046】
[選択テーブル]
図4(b)は、ロジックエレメントの(LE)の選択テーブルの例を示す図である。スケジューラは図4(b)に示す選択テーブルを用いて第2回路構成部の回路構成を行う。選択テーブルには、選択の優先順位に対応して、デバイス名、処理速度、書き換え時間、ロジックエレメント数(Gate bit)およびメモリ数が格納されている。スケジューラはこの選択テーブルを参照して、回路構成の指示を行う。すなわち、粗粒度の再構成可能回路(第1回路構成部)でレイテンシが発生する部分において、細粒度の再構成可能回路(第2回路構成部)へ置き換える場合、細粒度の再構成可能回路の候補をこのテーブルから選択する。その時にプライオリティ順に選択し、目標性能を達成するか判断する。
【0047】
粗粒度の再構成可能回路(第1回路構成部)と細粒度の再構成可能回路(第2回路構成部)とでは、基本的には粗粒度の再構成可能回路の方が高速処理でき、切換えも速い。しかし、粗粒度の再構成可能回路は、粒度が荒いため、帰還のかかった回路ではレイテンシが発生して、遅くなってしまう。一方、細粒度の再構成可能回路で論理合成すると、帰還回路は、1クロックで合成される。このため、粗粒度の再構成可能回路の欠点となる回路部分を細粒度の再構成可能回路で置き換えれば、各々の利点を生かし回路全体として高速化につながる。
【0048】
<4.回路構成例>
図5は、処理回路の構成による情報処理の流れを説明する図である。ここでは、回路構成の書き換えについて検討する。図5に示す例では、「Config−1」〜「Config−5」による回路構成が成され、「Config−1」「Config−2」「Config−4」が1ピクセル当たり1クロックでの処理、「Config−3」が1ピクセル当たり4クロックでの処理、「Config−5」が1ピクセル当たり3クロックでの処理となっている。
【0049】
この「Config−1」〜「Config−5」を全て第1回路構成部(例えば、DRP)で回路構成すると、1ピクセルの画像について「Config−1」〜「Config−5」を実行するにあたり、合計10クロック、つまり合計10回の回路構成の変更(書き換え)が必要となる。
【0050】
これに対し、1ピクセル当たり複数クロックを要する「Config−3」と「Config−5」について、第2回路構成部(例えば、FPGA)で構成すると、それぞれ1ピクセル当たり1クロックで構成される可能性があるため、「Config−1」〜「Config−5」を実行するにあたり合計5クロックの処理で済むことになる。
【0051】
図6は、回路の再構成回数と処理性能との関係を示す図である。図6では、A4サイズ、300dpiの画像情報について処理する際の回路再構成回数と処理能力(DPM:Document per minute)との関係をシミュレーションしたものである。このように、回路の再構成回数が少ないほど処理性能が高いことが分かる。
【0052】
一方、第2回路構成部では、大規模な回路構成は行えるものの、第1回路構成部ほど高速での回路の再構成には対応していない。図5に示す例では、「Config−3」および「Config−5」について第2回路構成部で回路構成を行うことで書き換え回数の低減を図っているが、第2回路構成部において「Config−3」から「Config−5」までの書き換え時間t2、および「Config−5」から「Config−3」までの書き換え時間t1を所定の許容時間内で行う必要がある。
【0053】
本実施形態では、このような観点から、高速で回路の再構成が行われる第1回路構成部と、大規模な回路の再構成に対応した第2回路構成部との両方を組み合わせ、情報処理の効率化を図るようにしている。
【0054】
図7は、第1回路構成部および第2回路構成部の割り当て方法を説明するフローチャートである。先ず、所望の情報処理について、粗粒度の演算器を備えた第1回路構成部に回路構成を割り当てる(ステップS101)。この割り当てで情報処理の処理性能が所望の目標性能を達成しているか否かを判断する(ステップS102)。第1回路構成部へ回路を割り当てた際の処理性能は、図4(a)に示す管理テーブルを参照し、回路構成(Config)に対応したレイテンシと処理時間との積算によって求める。そして、この処理性能が目標性能に達しているか否かを判断する。目標性能に達している場合には第1回路構成部だけの回路構成とした割り当てで決定する。
【0055】
一方、目標性能に達していない場合には、回路構成のパイプラインでのボトルネックを細粒度の演算器を備えた第2回路構成部に割り当てる(ステップS103)。そして、第2回路構成部へ回路構成を割り当てた状態での処理性能が目標性能に達しているか否かを判断する(ステップS104)。第2回路構成部へ回路構成を割り当てた際の処理性能は、図4(b)に示す選択テーブルを参照し、割り当てたデバイスの処理速度と書き換え時間との加算によって求める。また、残りの回路構成を第1回路構成部へ割り当てた際の処理性能と加算して全体の処理性能を求める。そして、この処理性能が目標性能に達しているか否かを判断する。目標性能に達している場合には第1回路構成部および第2回路構成部に回路構成を割り当てた構成で決定する。
【0056】
一方、目標性能に達していない場合には、粗粒度の演算器を備える第1回路構成部について、共通(常駐)回路の構成を細粒度の演算器を備える第2回路構成部に割り当てる処理を行う(ステップS105)。そして、共通(常駐)回路を第2回路構成部へ割り当てた状態での処理性能が目標性能に達しているか否かを判断する(ステップS106)。目標性能に達している場合には第1回路構成部および第2回路構成部に回路構成を割り当てた構成で決定する。
【0057】
一方、目標性能に達していない場合には、粗粒度の演算器を備えた第1回路構成部と、細粒度の演算器を備えた第2回路構成部との並列化を図り(ステップS107)、処理性能が目標性能に達しているか否かを判断する(ステップS108)。目標性能に達している場合にはこの回路構成の割り当てで決定する。一方、目標性能に達していない場合には、ステップS101へ戻り、目標性能の見直しを図り、その後の処理を繰り返す。
【0058】
図7に示す回路構成の割り当ては、主として情報処理装置の設計段階で行われ、所定の情報処理についての回路構成の割り当て、すなわち、所定の情報処理を行う際の第1回路構成部での回路構成および第2回路構成部での回路構成が、それぞれ図2に示す第1回路構成記憶部11および第2回路構成記憶部21に格納されることになる。
【0059】
<5.スケジューリング>
[第1のスケジューリング]
図8は、第1のスケジューリングを説明するフローチャートである。このフローチャートでの処理は、回路構成制御部30のスケジューラ32で実行される。先ず、所望の情報処理の回路構成(Config)で処理時間が所定の閾値を超えるものを抽出する(ステップS201)。回路構成の処理時間は、図4(a)に示す管理テーブルを参照することで行われる。例えば、この判断によって、回路構成中、フィードバック等の処理によって1ピクセル当たりの処理に1クロックを超えるレイテンシが発生しているものが抽出される。レイテンシが発生する回路構成(Config)が抽出されない場合は終了する。
【0060】
次に、1クロックを超えるレイテンシが発生する回路構成(Config)が抽出された場合、その回路構成について細粒度の演算器を備える第2回路構成部での回路構成を選択する(ステップS202)。この処理では、図4(b)に示す選択テーブルを参照し、優先順位の高い方から順にデバイス(細粒度の演算器の組み合わせ構成)が選択される。
【0061】
次に、選択されたデバイスを用いた場合の第2回路構成部の書き換え時間(t_conf)を算出する(ステップS203)。書き換え時間(t_conf)は、ロジックエレメント(LE)のゲートビット(Gate bit)×1ビット(bit)当たりの書き換え時間によって計算される。
【0062】
次に、各回路構成(Config)の間隔時間の合計Δ_confを算出する(ステップS204)。そして、書き換え時間(t_conf)が合計の間隔時間(Δ_conf)より小さいか否かの判断を行う(ステップS205)。ここで、書き換え時間(t_conf)が合計の間隔時間(Δ_conf)より小さい場合、選択されたデバイスで第2回路構成部の回路を構成する(ステップS206)。
【0063】
一方、書き換え時間(t_conf)が合計の間隔時間(Δ_conf)より小さくない場合、ステップS202へ戻り、次の優先順位のデバイスを選択テーブルから選択し、以降の処理を繰り返す。
【0064】
図9は、第1のスケジューリングを説明するパイプラインの流れ図である。図9に示す例では、「Config−1」〜「Config−5」による回路構成が成され、「Config−1」「Config−2」「Config−4」が1ピクセル当たり1クロックでの処理、「Config−3」が1ピクセル当たり4クロックでの処理、「Config−5」が1ピクセル当たり3クロックでの処理となっている。第1のスケジュールでは、このうち、1クロックを超えるレイテンシの発生する回路構成として「Config−3」が抽出される。
【0065】
そして、抽出された「Config−3」を細粒度の演算器を備える第2回路構成部に割り当てた場合、処理時間は「Config−1」「Config−2」「Config−4」と同様の160msとなる。また、「Config−3」を第2回路構成部に割り当てた際の書き換え時間(t_conf)を計算する。そして、この書き換え時間(t_conf)と合計の間隔時間(Δ_conf)とを比較し、デバイスの決定を行う。
【0066】
その後、図9に示す例では、1クロックを超えるレイテンシの発生する回路構成として「Config−5」も抽出され、同様な処理によって第2回路構成部へのデバイスの割り当てが決定される。
【0067】
図10は、第1のスケジューリングによる処理動作を説明するタイミングチャートである。この図で上段は第1回路構成部(粗粒度)での処理、下段は第2回路構成部(細粒度)での処理のタイミングを示している。「Config−1」「Config−2」は第1回路構成部に構成され、1クロックごとに1ピクセルを処理していく。次に、第2回路構成部に構成された「Config−3」で処理を行う。ここでは、第1回路構成部で4クロック分かかっていた処理を1クロック分で処理する。
【0068】
次に、第1回路構成部に構成された「Config−4」で処理を行い、次いで、第2回路構成部に構成された「Config−5」で処理を行う。ここでは、第1回路構成部で3クロック分かかっていた処理を1クロック分で処理する。
【0069】
[第2のスケジューリング]
図11は、第2のスケジューリングを説明するフローチャートであり、第2回路構成部のパーシャル リコンフィグレーション(部分再構成)機能による高速化の処理を示すものである。このフローチャートでの処理は、回路構成制御部のスケジューラで実行される。先ず、所望の情報処理の回路構成(Config)で処理時間が所定の閾値(ここでは、2クロック)以上となるものを抽出する(ステップS301)。回路構成の処理時間は、図4(a)に示す管理テーブルを参照することで行われる。例えば、この判断によって、回路構成中、フィードバック等の処理によって1ピクセル当たりの処理に2クロック以上のレイテンシが発生しているものが抽出される。レイテンシが発生する回路構成(Config)が抽出されない場合は終了する。
【0070】
次に、2クリック以上のレイテンシが発生する回路構成(Config)が抽出された場合、その回路構成について細粒度の演算器を備える第2回路構成部での回路構成を選択する(ステップS302)。この処理では、図4(b)に示す選択テーブルを参照し、優先順位の高い方から順にデバイス(細粒度の演算器の組み合わせ構成)が選択される。
【0071】
次に、選択されたデバイスを用いた場合の第2回路構成部の書き換え時間(t_conf)を算出する(ステップS303)。書き換え時間(t_conf)は、ロジックエレメント(LE)のゲートビット(Gate bit)×1ビット(bit)当たりの書き換え時間によって計算される。
【0072】
次に、各回路構成(Config)の間隔時間の合計Δ_confを算出する(ステップS304)。そして、書き換え時間(t_conf)が合計の間隔時間(Δ_conf)より小さいか否かの判断を行う(ステップS305)。ここで、書き換え時間(t_conf)が合計の間隔時間(Δ_conf)より小さい場合、第2回路構成部の領域分割の規模を決定する(ステップS306)。その後、決定された第2回路構成部の分割された領域に、先に選択されたデバイスを構成する(ステップS307)。
【0073】
一方、書き換え時間(t_conf)が合計の間隔時間(Δ_conf)より小さくない場合、ステップS302へ戻り、次の優先順位のデバイスを選択テーブルから選択し、以降の処理を繰り返す。
【0074】
図12は、第2のスケジューリングを説明するパイプラインの流れ図である。図12に示す例では、「Config−1」〜「Config−5」による回路構成が成され、「Config−1」「Config−2」「Config−4」が1ピクセル当たり1クロックでの処理、「Config−3」が1ピクセル当たり4クロックでの処理、「Config−5」が1ピクセル当たり3クロックでの処理となっている。第1のスケジュールでは、このうち、2クロック以上のレイテンシが発生する回路構成として「Config−3」が抽出される。
【0075】
そして、抽出された「Config−3」を細粒度の演算器を備える第2回路構成部に割り当てた場合、処理時間は「Config−1」「Config−2」「Config−4」と同様の160msとなる。また、「Config−3」を第2回路構成部に割り当てた際の書き換え時間(t_conf)を計算する。そして、この書き換え時間(t_conf)と合計の間隔時間(Δ_conf)とを比較し、第2回路構成部の分割された領域にデバイスを割り当てる。
【0076】
その後、図12に示す例では、2クロック以上のレイテンシが発生する回路構成として「Config−5」も抽出され、同様な処理によって第2回路構成部の分割された別の領域へデバイスが割り当てられる。
【0077】
図13は、第2のスケジューリングによる処理動作を説明するタイミングチャートである。この図で上段は第1回路構成部(粗粒度)での処理、下段は2分割された第2回路構成部(細粒度)での処理のタイミングを示している。「Config−1」「Config−2」は第1回路構成部に構成され、1クロックごとに1ピクセルを処理していく。次に、第2回路構成部の2分割された一方の領域に構成された「Config−3」で処理を行う。ここでは、第1回路構成部で4クロック分かかっていた処理を1クロック分で処理する。
【0078】
次に、第1回路構成部に構成された「Config−4」で処理を行い、次いで、第2回路構成部の2分割された他方の領域に構成された「Config−5」で処理を行う。ここでは、第1回路構成部で3クロック分かかっていた処理を1クロック分で処理する。
【0079】
第2回路構成部が分割され、各々の領域に異なるデバイスが割り当てられることで、一方の領域に割り当てられたデバイスで処理を行っている間、他方の領域のデバイスの書き換えを行う時間が設けられる。したがって、第2回路構成部を分割しない場合に比べ、回路構成の書き換え時間に余裕が生じる。また、分割された領域ごとの書き換えとなるため、書き換えのデータ量が少なくなり、書き換え時間が高速化される。
【0080】
[第3のスケジューリング]
図14は、第3のスケジューリングを説明するフローチャートである。このフローチャートでの処理は、回路構成制御部のスケジューラで実行される。先ず、情報の入出力で依存関係のない回路構成(Config)があるか否かを判断する(ステップS401)。依存関係のない回路構成がない場合には処理を終了する。
【0081】
一方、依存関係のない回路構成がある場合には、その回路構成(Config)を抽出する(ステップS402)。次に、抽出した回路構成の中からフィードバックにかかるレイテンシのないものを第1回路構成部に割り当て(ステップS403)、その他の回路構成を第2回路構成部に割り当てる(ステップS404)。
【0082】
図15は、第3のスケジューリングを説明するパイプラインの流れ図である。図15に示す例では、「Config−1」〜「Config−6」による回路構成が成され、「Config−1」〜「Config−5」が1ピクセル当たり1クロックでの処理、「Config−6」が1ピクセル当たり4クロックでの処理となっている。第2のスケジュールでは、このうち、情報の入出力に依存関係のない「Config−3」〜「Config−5」が抽出される。
【0083】
そして、抽出された「Config−3」〜「Config−5」からフィードバックに関するレイテンシのない「Config−3」を第1回路構成部に割り当て、その他の「Config−4」「Config−5」を第2回路構成部に割り当てている。
【0084】
図16は、第3のスケジューリングによる処理動作を説明するタイミングチャートである。この図で上段は第1回路構成部(粗粒度)での処理、下段は2分割された第2回路構成部(細粒度)での処理のタイミングを示している。
【0085】
「Config−1」「Config−2」は第1回路構成部に構成され、1クロックごとに1ピクセルを処理していく。次に、「Config−3」が第1回路構成部に構成され、「Config−4」、「Config−5」が2分割された第2回路構成部の各領域に構成され、並列で処理していく。次に、「Config−6」が第1回路構成部に構成され、処理が行われる。
【0086】
[第4のスケジューリング]
図17は、第4のスケジューリングを説明するパイプラインの流れ図である。図17の上図は、第4のスケジューリングを行う前の流れを示す図、下図は、第4のスケジューリングを行った後の流れを示す図である。
【0087】
図17上図に示すように、第4のスケジューリングを行う前の流れでは、「Config−1」〜「Config−4」による回路構成が成されている。各回路構成は全て細粒度の演算器を備える第1回路構成部で構成されている。
【0088】
この「Config−1」〜「Config−4」の回路構成には、同じ処理を行う回路として処理Aが含まれている。すなわち、この例では、「Config−1」として画像処理aに対する処理1と画像処理bに対する処理Aが構成され、「Config−2」として画像処理aに対する処理2と画像処理bに対する処理Aが構成され、「Config−3」として画像処理aに対する処理3と画像処理bに対する処理Aが構成され、「Config−4」として画像処理aに対する処理4と画像処理bに対する処理Aが構成されている。
【0089】
例えば、画像処理bにおける処理Aはスキャン処理であり、画像処理bのパスはいつでもスキャンデータを受け入れできる状態としておく。このため、全ての回路構成に処理Aが含まれることになる。
【0090】
第4のスケジューリングでは、このように各回路構成で同じ処理については細粒度の演算器を備える第2回路構成部に割り当てる。すなわち、図17下図に示すように、処理Aを細粒度の演算器を備える第2回路構成部に割り当て、第1回路構成部では、空いた領域に画像処理aの処理を割り当てている。
【0091】
具体的には、第1回路構成部の「Config−1」として画像処理aに対する処理1と、処理Aがあった領域に処理2が構成され、「Config−2」として画像処理aに対する処理2と処理Aがあった領域に処理3の一部が構成され、「Config−3」として画像処理aに対する処理4と処理Aがあった領域に処理3の残りの一部が構成される。これにより、回路構成数が4つから3つに減ることになる。つまり、処理性能は4/3=約1.33倍に向上する。
【0092】
図18は、第4のスケジューリングを説明するフローチャートである。このフローチャートでの処理は、回路構成制御部のスケジューラで実行される。先ず、各回路構成で共通回路となるモジュール(処理回路)があるか否かを判断する(ステップS501)。ない場合には処理を終了する。ある場合には共通回路のモジュールの回路数を算出する(ステップS502)。算出した回路数をCommon_PEとする。
【0093】
次に、図4(a)に示す管理テーブルを参照し、回路構成(Config)の使用PE数(PE_use1、PE_use2、…、PE_usen)を抽出する(ステップS503)。次いで、抽出した使用PE数から共通回路のモジュールの回路数Common_PEを差し引く(ステップS504)。
【0094】
そして、計算後のPE数で回路構成の再構築を行う(ステップS505)。この処理では、共通回路モジュールのPE数が空いた状態で回路構成の再構築が行われる。その後、再構築後の回路構成数(Config数)が再構築前より減っているか否かを判断する(ステップS506)。減っている場合には、共通回路モジュールを細粒度の演算器を備える第2回路構成部へ割り当て(ステップS507)、図4(a)に示す管理テーブルをステップS504で計算した後の値に書き替える(ステップS508)。
【0095】
一方、再構築後の回路構成数(Config数)が再構築前より減っていない場合、共通回路モジュールの細粒度への割り当てを行わず、元の管理テーブルのままとする(ステップS509)。
【0096】
図19は、第4のスケジューリングを行った後のパイプラインの流れ図である。また、図20は、第4のスケジューリングを行った後の管理テーブルの例を示す図である。第4のスケジューリングによって各回路構成(Config)に共通回路モジュールが抽出された場合、その共通回路モジュールは細粒度の演算器を備える第2回路構成部に割り当てられる。図19、図20で示す例では、第2回路構成部に割り当てられる共通回路モジュールの回路構成を「Config−1」として管理テーブルの更新を行っている。図20に示す管理テーブルでは、「Config−1」に対応したプロセッサタイプが細粒度を示すロジックエレメント(LE)になっている。
【0097】
また、図19に示すように、第4のスケジューリング後のパイプラインの流れは、「Config−1」のラインと、「Config−2」〜「Config−5」のラインとの2つが並列に設けられることになる。
【0098】
以上説明した各スケジューリングの流れは、情報処理装置で実行させる情報処理プログラムとして実現してもよい。情報処理プログラムは、CD−ROM等の記録媒体に記録されていたり、ネットワークを介して配信されるものでもある。
【符号の説明】
【0099】
10…第1回路構成部、11…第1回路構成記憶部、20…第2回路構成部、21…第2回路構成記憶部、30…回路構成制御部、31…情報パス制御部、32…スケジューラ、33…分割制御部、40…メモリインタフェース、50…メモリ

【特許請求の範囲】
【請求項1】
動的に回路が再構成される第1演算部を複数備える第1回路構成手段と、
固定の回路から成る第2演算部を複数備える第2回路構成手段と、
情報を処理するにあたり、情報処理にかかる時間に応じて前記第1回路構成手段の第1演算部による回路構成および前記第2回路構成手段の第2演算部による回路構成を制御する回路構成制御手段と
を有する情報処理装置。
【請求項2】
前記第1回路構成手段による第1演算部は、前記第2回路構成手段による第2演算部より演算回路の粒度が大きい
請求項1記載の情報処理装置。
【請求項3】
前記第1回路構成手段は、前記第2回路構成手段より短い時間で回路構成が変更される
請求項1または2記載の情報処理装置。
【請求項4】
前記第1回路構成手段の第1演算部は複数の演算回路によって構成され、前記第2回路構成手段の第2演算部は単一の演算回路によって構成される
請求項1から3のうちいずれか1項に記載の情報処理装置。
【請求項5】
前記回路構成制御手段は、一の情報の処理結果を他の情報の処理に用いない情報処理を行う際には前記第1回路構成手段の第1演算部による回路構成を制御する
請求項1から4のうちいずれか1項に記載の情報処理装置。
【請求項6】
前記回路構成制御手段は、一の情報の処理結果を他の情報の処理に用いる情報処理を行う際には前記第2回路構成手段の第2演算部による回路構成を制御を行う
請求項1から5のうちいずれか1項に記載の情報処理装置。
【請求項7】
前記回路構成制御手段は、前記第1回路構成手段の複数の第1演算部のうち一部を用いた回路構成を制御する
請求項1から6のうちいずれか1項に記載の情報処理装置。
【請求項8】
前記回路構成制御手段は、前記第2回路構成手段の複数の第2演算部のうち一部を用いた回路構成を制御する
請求項1から7のうちいずれか1項に記載の情報処理装置。
【請求項9】
前記回路構成制御手段は、前記第2回路構成手段を複数の領域に分割し、各々の領域について相異なる領域で情報処理を行っている間に自領域の回路構成を行うよう制御する
請求項1から7のうちいずれか1項に記載の情報処理装置。
【請求項10】
動的に回路が再構成される第1演算部を複数備える第1回路構成手段と、固定の回路から成る第2演算部を複数備える第2回路構成手段とを用いて情報を処理するにあたり、情報処理にかかる時間に応じて前記第1回路構成手段の第1演算部による回路構成および前記第2回路構成手段の第2演算部による回路構成を制御するステップを情報処理装置に実行させる
情報処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate