JP5007838B2 - 情報処理装置および情報処理プログラム - Google Patents

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

Info

Publication number
JP5007838B2
JP5007838B2 JP2009051638A JP2009051638A JP5007838B2 JP 5007838 B2 JP5007838 B2 JP 5007838B2 JP 2009051638 A JP2009051638 A JP 2009051638A JP 2009051638 A JP2009051638 A JP 2009051638A JP 5007838 B2 JP5007838 B2 JP 5007838B2
Authority
JP
Japan
Prior art keywords
circuit configuration
circuit
unit
config
information processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009051638A
Other languages
English (en)
Other versions
JP2010205108A (ja
Inventor
孝雄 内藤
和雄 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2009051638A priority Critical patent/JP5007838B2/ja
Priority to US12/537,886 priority patent/US20100228958A1/en
Publication of JP2010205108A publication Critical patent/JP2010205108A/ja
Application granted granted Critical
Publication of JP5007838B2 publication Critical patent/JP5007838B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Microcomputers (AREA)
  • Stored Programmes (AREA)
  • Advance Control (AREA)
  • Image Processing (AREA)

Description

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

Claims (6)

  1. 複数の第1演算部を備え、再構成可能な第1回路構成手段と、
    複数の第2演算部を備え、前記第1回路構成手段よりも再構成の粒度が小さく、前記第1回路構成手段よりも再構成の時間が長い第2回路構成手段と、
    数の演算処理を行う複数の演算処理回路それぞれを、前記第1回路構成手段の第1演算部、または、前記第2回路構成手段の第2演算部により再構成するよう前記第1回路構成手段および前記第2回路構成手段を制御する回路構成制御手段と
    を有し、
    前記回路構成制御手段は、前記複数の演算処理回路に並列に処理される前記演算処理回路が含まれる場合、前記並列に処理される前記演算処理回路のうち、
    フィードバックによるレイテンシが発生しない演算処理回路を、前記第1回路構成手段の第1の演算部により再構成するよう前記第1回路構成手段を制御し、
    フィードバックによるレイテンシが発生する演算処理回路を、前記第2回路構成手段の第2の演算部により再構成するよう前記第2回路構成手段を制御する
    情報処理装置。
  2. 前記第1回路構成手段の第1演算部は、複数のプロセッサエレメントがマトリクス状に配置されて構成され、
    前記第2回路構成手段の第2演算部は、複数のロジックエレメントがマトリクス状に配置されて構成される
    請求項1に記載の情報処理装置。
  3. 前記回路構成制御手段は、前記第1回路構成手段の複数の第1演算部のうち一部を用いて前記第1回路構成手段を制御する
    請求項1または2に記載の情報処理装置。
  4. 前記回路構成制御手段は、前記第2回路構成手段の複数の第2演算部のうち一部を用いて前記第2回路構成手段を制御する
    請求項1〜のいずれかに記載の情報処理装置。
  5. 前記回路構成制御手段は、
    前記第2回路構成手段を複数の領域に分割し、
    前記分割された複数の領域のうち、第1の領域において前記演算処理を行っている間に、前記分割された複数の領域のうち、前記第1の領域以外の第2の領域の演算処理回路を再構成するよう前記第2回路構成手段を制御する
    請求項1〜のいずれかに記載の情報処理装置。
  6. 複数の第1演算部を備え、再構成可能な第1回路構成手段と、複数の第2演算部を備え、前記第1回路構成手段よりも再構成の粒度が小さく、前記第1回路構成手段よりも再構成の時間が長い第2回路構成手段とを有する情報処理装置において、
    数の演算処理を行う複数の演算処理回路それぞれを、前記第1回路構成手段の第1演算部、または、前記第2回路構成手段の第2演算部により再構成するよう前記第1回路構成手段および前記第2回路構成手段を制御する回路構成制御ステップ
    を前記情報処理装置のコンピュータに実行させ、
    前記回路構成制御ステップは、前記複数の演算処理回路に並列に処理される前記演算処理回路が含まれる場合、前記並列に処理される前記演算処理回路のうち、
    フィードバックによるレイテンシが発生しない演算処理回路を、前記第1回路構成手段の第1の演算部により再構成するよう前記第1回路構成手段を制御し、
    フィードバックによるレイテンシが発生する演算処理回路を、前記第2回路構成手段の第2の演算部により再構成するよう前記第2回路構成手段を制御する
    情報処理プログラム。
JP2009051638A 2009-03-05 2009-03-05 情報処理装置および情報処理プログラム Expired - Fee Related JP5007838B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009051638A JP5007838B2 (ja) 2009-03-05 2009-03-05 情報処理装置および情報処理プログラム
US12/537,886 US20100228958A1 (en) 2009-03-05 2009-08-07 Information processing apparatus, method for controlling information processing apparatus and computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009051638A JP5007838B2 (ja) 2009-03-05 2009-03-05 情報処理装置および情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2010205108A JP2010205108A (ja) 2010-09-16
JP5007838B2 true JP5007838B2 (ja) 2012-08-22

Family

ID=42679266

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009051638A Expired - Fee Related JP5007838B2 (ja) 2009-03-05 2009-03-05 情報処理装置および情報処理プログラム

Country Status (2)

Country Link
US (1) US20100228958A1 (ja)
JP (1) JP5007838B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5646764B2 (ja) * 2010-10-22 2014-12-24 サムスン ヘビー インダストリーズ カンパニー リミテッド 動作中に再構成可能な制御システム及びその方法
JP5572527B2 (ja) * 2010-11-09 2014-08-13 パナソニック株式会社 通信処理装置及び通信処理方法
JP2016063490A (ja) 2014-09-19 2016-04-25 株式会社東芝 再構成可能な半導体集積回路および電子機器
JP6743568B2 (ja) 2016-08-09 2020-08-19 富士通株式会社 制御装置、情報処理システム、プログラム及び情報処理方法
JP6823251B2 (ja) * 2016-10-13 2021-02-03 富士通株式会社 情報処理装置、情報処理方法及びプログラム
CN113128142B (zh) * 2021-04-27 2022-04-01 北京智芯仿真科技有限公司 基于文件锁的集成电路电磁仿真粗颗粒并行方法及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960003103A (ko) * 1994-06-30 1996-01-26 윌리엄 이. 힐러 연합 헤테로젠니우스 필드 프로그래머블 게이트 어레이 논리 모듈 및 그 형성방법
US5970254A (en) * 1997-06-27 1999-10-19 Cooke; Laurence H. Integrated processor and programmable data path chip for reconfigurable computing
JP2002016489A (ja) * 2000-06-30 2002-01-18 Fuji Xerox Co Ltd プログラマブル論理回路装置、及び情報処理システム
US6952828B2 (en) * 2001-09-26 2005-10-04 The Boeing Company System, method and computer program product for dynamic resource management
TW200504592A (en) * 2003-07-24 2005-02-01 Ind Tech Res Inst Reconfigurable apparatus with high hardware efficiency
US7584345B2 (en) * 2003-10-30 2009-09-01 International Business Machines Corporation System for using FPGA technology with a microprocessor for reconfigurable, instruction level hardware acceleration
US7167971B2 (en) * 2004-06-30 2007-01-23 International Business Machines Corporation System and method for adaptive run-time reconfiguration for a reconfigurable instruction set co-processor architecture
US7299339B2 (en) * 2004-08-30 2007-11-20 The Boeing Company Super-reconfigurable fabric architecture (SURFA): a multi-FPGA parallel processing architecture for COTS hybrid computing framework
JP4450737B2 (ja) * 2005-01-11 2010-04-14 富士通株式会社 半導体集積回路
JP4082706B2 (ja) * 2005-04-12 2008-04-30 学校法人早稲田大学 マルチプロセッサシステム及びマルチグレイン並列化コンパイラ
US8667494B1 (en) * 2006-08-25 2014-03-04 Emc Corporation Controlling resource allocation using thresholds and scheduling
US7831803B2 (en) * 2007-07-19 2010-11-09 International Business Machines Corporation Executing multiple instructions multiple date (‘MIMD’) programs on a single instruction multiple data (‘SIMD’) machine
US8327126B2 (en) * 2008-08-25 2012-12-04 International Business Machines Corporation Multicore processor and method of use that adapts core functions based on workload execution

Also Published As

Publication number Publication date
US20100228958A1 (en) 2010-09-09
JP2010205108A (ja) 2010-09-16

Similar Documents

Publication Publication Date Title
US7953956B2 (en) Reconfigurable circuit with a limitation on connection and method of determining functions of logic circuits in the reconfigurable circuit
US9323716B2 (en) Hierarchical reconfigurable computer architecture
JP5007838B2 (ja) 情報処理装置および情報処理プログラム
US7120903B2 (en) Data processing apparatus and method for generating the data of an object program for a parallel operation apparatus
JP4484756B2 (ja) リコンフィギュラブル回路および処理装置
KR20030064239A (ko) 화상을 처리하는 장치 및 방법과 이 장치에 이용되는컴파일러
JPWO2006129722A1 (ja) 再構成可能な装置
CN101395586A (zh) 基于任务的执行阶段动态调整高速缓存分区大小的方法和设备
US20200228121A1 (en) Method and apparatus for implementing configurable streaming networks
WO2018067251A1 (en) Methods and apparatus for dynamically configuring soft processors on an integrated circuit
CN104731562B (zh) 在simd处理单元中的任务执行
JPWO2007074583A1 (ja) 再構成可能な演算器を持つプロセッサ
US20180212894A1 (en) Fork transfer of data between multiple agents within a reconfigurable fabric
US9773083B1 (en) Post-placement and pre-routing processing of critical paths in a circuit design
Chen et al. Configuration-sensitive process scheduling for FPGA-based computing platforms
JP2006099579A (ja) 情報処理装置及び情報処理方法
JP5882714B2 (ja) リコンフィギュラブルプロセッサの制御方法及びリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法及びコンフィギュレーション情報生成ツール
JP4743581B2 (ja) データ処理システムおよびその制御方法
JP2008198003A (ja) アレイ型プロセッサ
JP5196538B2 (ja) 半導体集積回路の設計方法、半導体集積回路の設計プログラム、及び半導体集積回路
JP3989397B2 (ja) 集積回路装置およびその装置に対するデータ設定装置
JP2005276854A (ja) 処理装置
JP2007272394A (ja) データフローグラフ再構成装置、リコンフィギュラブル回路の設定データ生成装置、処理装置、及びリコンフィギュラブル回路
Gu et al. Efficient algorithms for 2D area management and online task placement on runtime reconfigurable FPGAs
Khanzode et al. Concurrent Architecture of Novel Scheduler for IoT based Sensor Networks

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110301

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120130

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120327

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120502

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120515

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150608

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees