(57)【特許請求の範囲】
【請求項１】
複数の単位処理を選択的に繰り返すデータ処理において、前記各単位処理が連続して繰り返される連続処理回数を用いて評価される、前記複数の単位処理を実行可能な汎用回路と前記各単位処理の専用回路のデータ処理性能を比較することにより、前記汎用回路または前記専用回路を選択する回路選択部と、
前記回路選択部により次々に選択される前記汎用回路または前記専用回路を選択的に構成して前記データ処理を実行するデータ処理部と、
を有する、
ことを特徴とするデータ処理装置。
【請求項２】
請求項１に記載のデータ処理装置において、
前記回路選択部は、前記汎用回路または前記専用回路のうち、前記各単位処理の連続処理回数を用いて算出されるデータ処理時間が短い方を選択する、
ことを特徴とするデータ処理装置。
【請求項３】
複数の単位処理を選択的に繰り返すデータ処理において、前記各単位処理が連続して繰り返される連続処理回数を用いた判定により、前記複数の単位処理を実行可能な汎用回路または前記各単位処理の専用回路を選択する回路選択部と、
前記回路選択部により次々に選択される前記汎用回路または前記専用回路を選択的に構成して前記データ処理を実行するデータ処理部と、
を有し、
前記データ処理では、複数の処理コマンドに従って各処理コマンドに対応付けられた前記各単位処理が次々に選択され、
前記回路選択部は、前記データ処理に先だって当該データ処理に関する前記複数の処理コマンドを解析し、同一コマンドが連続して繰り返されるコマンド一致数を計数して前記連続処理回数とする、
ことを特徴とするデータ処理装置。
【請求項４】
データ処理の実行中に必要とされる再構成回数を用いた判定により、複数の処理を実行可能な汎用回路または各処理の専用回路を選択する回路選択部と、
前記回路選択部により次々に選択される前記汎用回路または前記専用回路を選択的に構成して前記データ処理を実行するデータ処理部と、
を有する、
ことを特徴とするデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置に関する。
【背景技術】
【０００２】
データ処理装置は様々な分野において広く普及しており、特に、画像データを処理対象とする画像処理装置はデータ処理装置の好適な具体例の一つである。例えば、特許文献１には、パイプライン方式においてパイプラインフラッシュのための待ち時間を不要とした高速な画像処理を実現する装置が記載されている。また、特許文献２には、複数の画像処理プロセッサを備え、カラー画像のデータを並列に画像処理する装置が記載されている。
【０００３】
ところで、内部の回路構成を再構成できるＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）などのプログラマブルデバイスが普及している。ＰＬＤやＦＰＧＡは、回路起動時に内部の論理回路構成を設定するものが一般的であるが、回路が動作中に論理回路構成を変更可能なものも開発されている。特に、内部の論理回路構成を動的に変更可能な動的再構成可能プロセッサ（ＤＲＰ：Dynamically Reconfigurable Processor）の利用が進んでいる。例えば動的再構成を利用することにより、ハードウェアとして物理的な回路の変更や追加を行わずに、入力データに合わせた処理を、再構成可能な回路の内部構成を変更してデータ処理を実行することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−３１９８６３号公報
【特許文献２】特開平５−１４３７２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、汎用回路または専用回路を選択的に構成してデータ処理を実行するデータ処理装置を提供することにある。
【課題を解決するための手段】
【０００６】
請求項１に係る発明は、複数の単位処理を選択的に繰り返すデータ処理において、前記各単位処理が連続して繰り返される連続処理回数を用いて評価される、前記複数の単位処理を実行可能な汎用回路と前記各単位処理の専用回路のデータ処理性能を比較することにより、前記汎用回路または前記専用回路を選択する回路選択部と、前記回路選択部により次々に選択される前記汎用回路または前記専用回路を選択的に構成して前記データ処理を実行するデータ処理部と、を有する、ことを特徴とするデータ処理装置である。
【０００８】
請求項２に係る発明は、請求項１に記載のデータ処理装置において、前記回路選択部は、前記汎用回路または前記専用回路のうち、前記各単位処理の連続処理回数を用いて算出されるデータ処理時間が短い方を選択する、ことを特徴とするデータ処理装置である。
【０００９】
請求項３に係る発明は、複数の単位処理を選択的に繰り返すデータ処理において、前記各単位処理が連続して繰り返される連続処理回数を用いた判定により、前記複数の単位処理を実行可能な汎用回路または前記各単位処理の専用回路を選択する回路選択部と、前記回路選択部により次々に選択される前記汎用回路または前記専用回路を選択的に構成して前記データ処理を実行するデータ処理部と、を有し、前記データ処理では、複数の処理コマンドに従って各処理コマンドに対応付けられた前記各単位処理が次々に選択され、前記回路選択部は、前記データ処理に先だって当該データ処理に関する前記複数の処理コマンドを解析し、同一コマンドが連続して繰り返されるコマンド一致数を計数して前記連続処理回数とする、ことを特徴とするデータ処理装置である。
【００１０】
請求項４に係る発明は、データ処理の実行中に必要とされる再構成回数を用いた判定により、複数の処理を実行可能な汎用回路または各処理の専用回路を選択する回路選択部と、前記回路選択部により次々に選択される前記汎用回路または前記専用回路を選択的に構成して前記データ処理を実行するデータ処理部と、を有することを特徴とするデータ処理装置である。
【発明の効果】
【００１１】
請求項１に係る発明によれば、汎用回路または専用回路を選択的に構成してデータ処理を実行する装置が提供される。また、データ処理性能により汎用回路または専用回路が選択される。
【００１３】
請求項２に係る発明によれば、汎用回路または専用回路の一方のみを利用する場合に比べてデータ処理時間が短くなる。
【００１４】
請求項３に係る発明によれば、データ処理に先だって各単位処理の再構成回数が得られる。
【００１５】
請求項４に係る発明によれば、汎用回路または専用回路を選択的に構成してデータ処理を実行する装置が提供される。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態として好適なデータ処理装置の具体例を示す図である。
【図２】再構成可能回路内の回路構成例を示す図である。
【図３】データ処理装置が実行する処理の全容を示す図である。
【図４】回路選択ブロックが実行する回路選択処理を示す図である。
【図５】現在の回路が専用回路である場合の評価処理１を示す図である。
【図６】現在の回路が汎用回路である場合の評価処理２を示す図である。
【図７】性能計算処理の具体例を説明するための図である。
【図８】本実施形態によるデータ処理の高速化を示す図である。
【図９】専用回路と汎用回路の他の好適な具体例を示す図である。
【発明を実施するための形態】
【００１７】
図１は、本発明を実施するための形態として好適なデータ処理装置１００の具体例を示す図である。図１のデータ処理装置１００は、対象データ（処理対象となるデータ）に対してデータ処理を実行するデータ処理部２０を備えている。対象データの好適な具体例は画像データ（文字や数字や記号のみのデータを含む）等であり、例えばコンピュータ等の外部の装置から得られて入力バッファ１０に記憶された画像データがデータ処理部２０によりデータ処理（画像処理）される。データ処理部２０により処理された画像データは出力バッファ３０に記憶される。
【００１８】
なお、図１のデータ処理装置１００が、画像読み取り機能（スキャン機能）等を備えた画像処理装置内に組み込まれ、画像読み取り機能を介して紙などの媒体から得られた画像データが対象データとされてもよい。もちろん、データ処理装置１００による処理後の画像データに対応した画像が紙などの媒体に印刷されてもよい。データ処理装置１００を利用した画像処理装置の好適な具体例には、複写機、印刷機、ファクシミリ（ＦＡＸ）などが含まれる。さらに、複写機、印刷機、ファクシミリのうちのいずれか複数の機能を兼ね備えた複合機も画像処理装置の好適な具体例である。さらに、データ処理装置１００による処理後の画像データが外部の装置に提供され、その外部の装置により紙などの媒体に印刷される画像処理システムが構築されてもよい。
【００１９】
データ処理部２０は、再構成可能回路２２を備えている。再構成可能回路２２は、再構成可能（プログラマブル）な回路構成により対象データに対してデータ処理を実行する。例えば、動的再構成可能プロセッサ（ＤＲＰ：Dynamic Reconfigurable Processor）が再構成可能回路２２の好適な具体例である。
【００２０】
データ処理部２０は、複数の単位処理を選択的に繰り返すデータ処理を実行する。データ処理部２０は、例えば、データ処理Ａとデータ処理Ｂを選択的に複数回に亘って繰り返すデータ処理を実行する。データ処理部２０は、対象データに関する複数の処理コマンドに従って各処理コマンドに対応付けられた各単位処理、例えばデータ処理Ａまたはデータ処理Ｂを次々に選択する。
【００２１】
対象データが画像データであれば、画像データ内のグラフィック部分に対してグラフィック処理が実行され、その画像データ内のイメージ部分に対してイメージ処理が実行される。なお、グラフィックには文字や図形などが含まれ、画像データ内のグラフィック部分には、例えば画素値とラン長で構成されるデータ形式が利用される。イメージには画像やグラデーションなどが含まれ、画像データ内のイメージ部分には、ＳｒｃＩｍａｇｅや拡大率などで構成されるデータ形式が利用される。
【００２２】
データ処理部２０が備える再構成可能回路２２内には、複数の単位処理を実行可能な汎用回路または各単位処理の専用回路が構成される。なお、各単位処理には、各処理コマンドに対応付けられた処理（コマンド処理）の他に、連続的なデータに対する処理（連続データ処理）や不連続なデータに対する処理（不連続データ処理）など、処理対象データの内容（データの連続性など）に応じて判別される処理も含まれる（図９参照）。
【００２３】
図２は、再構成可能回路２２内の回路構成例を示す図である。図２には、対象データに対してデータ処理Ａとデータ処理Ｂを実行する場合の回路構成例が図示されている。対象データが画像データであれば、データ処理Ａの具体例がグラフィック処理であり、データ処理Ｂの具体例がイメージ処理である。
【００２４】
汎用回路は、データ処理Ａ（グラフィック処理）とデータ処理Ｂ（イメージ処理）の両方を実行できる回路構成であり、再構成可能回路２２内に、データ処理Ａ回路（グラフィック処理回路）とデータ処理Ｂ回路（イメージ処理回路）が構成され、さらに、コマンド解析部とセレクタが構成される。なお、コマンド解析部とセレクタは再構成可能回路２２の外部に設けられてもよい。
【００２５】
コマンド解析部は、入力バッファ１０から得られる対象データ（画像データ）に関する複数の処理コマンドを次々に解析し、各処理コマンドに対応したデータ処理回路、つまりデータ処理Ａ回路またはデータ処理Ｂ回路を選択する。例えば、対象データが画像データであれば、画像データ内のグラフィック部分のデータには、グラフィックの処理コマンドが対応付けられており、グラフィック部分のデータはグラフィック処理回路に送られてグラフィック処理される。一方、画像データ内のイメージ部分のデータにはイメージの処理コマンドが対応付けられており、イメージ部分のデータはイメージ処理回路に送られてイメージ処理される。
【００２６】
セレクタは、各処理コマンドに従って選択されたデータ処理回路から得られる処理後のデータを出力バッファ３０へ出力する。例えば、対象データが画像データであり、グラフィック処理回路が選択されている場合にはグラフィック処理回路から得られるグラフィック処理後のデータがセレクタから出力バッファ３０へ送られ、イメージ処理回路が選択されている場合にはイメージ処理回路から得られるイメージ処理後のデータがセレクタから出力バッファ３０へ送られる。
【００２７】
専用回路Ａは、データ処理Ａ（グラフィック処理）の専用回路であり、再構成可能回路２２内に、データ処理Ａ専用回路（高速グラフィック処理回路）とコマンド解析部が構成される。なお、コマンド解析部は再構成可能回路２２の外部に設けられてもよい。
【００２８】
コマンド解析部は、入力バッファ１０から得られる対象データ（画像データ）に関する複数の処理コマンドを次々に解析し、対象データをデータ処理Ａ専用回路に送る。例えば対象データが画像データであれば、画像データ内のグラフィック部分のデータには、グラフィックの処理コマンドが対応付けられており、グラフィック部分のデータが高速グラフィック処理回路に送られてグラフィック処理される。そして、高速グラフィック処理回路から得られるグラフィック処理後のデータが出力バッファ３０へ送られる。
【００２９】
汎用回路の回路構成と比較して、専用回路Ａの回路構成は、データ処理Ｂ回路が不要である分だけ、再構成可能回路２２内に回路スペースの余裕がある。そこで、専用回路Ａでは、その回路スペースの余裕を利用して処理能力の高い専用回路が構成される。例えば、専用回路Ａのデータ処理Ａ専用回路（高速グラフィック処理回路）は、汎用回路のデータ処理Ａ回路（グラフィック処理回路）よりも高速処理が可能である。なお、汎用回路が構成された再構成可能回路２２内が全面的に再構成されて専用回路Ａとされてもよいし、汎用回路が構成された再構成可能回路２２内の一部を維持しつつ部分的な再構成により専用回路Ａが構成されてもよい。
【００３０】
専用回路Ｂは、データ処理Ｂ（イメージ処理）の専用回路であり、再構成可能回路２２内に、データ処理Ｂ専用回路（高速イメージ処理回路）とコマンド解析部が構成される。なお、コマンド解析部は再構成可能回路２２の外部に設けられてもよい。
【００３１】
コマンド解析部は、入力バッファ１０から得られる対象データ（画像データ）に関する複数の処理コマンドを次々に解析し、対象データをデータ処理Ｂ専用回路に送る。例えば対象データが画像データであれば、画像データ内のイメージ部分のデータには、イメージの処理コマンドが対応付けられており、イメージ部分のデータが高速イメージ処理回路に送られてイメージ処理される。そして、高速イメージ処理回路から得られるイメージ処理後のデータが出力バッファ３０へ送られる。
【００３２】
汎用回路の回路構成と比較して、専用回路Ｂの回路構成は、データ処理Ａ回路が不要である分だけ、再構成可能回路２２内に回路スペースの余裕がある。そこで、専用回路Ｂでは、その回路スペースの余裕を利用して処理能力の高い専用回路が構成される。例えば、専用回路Ｂのデータ処理Ｂ専用回路（高速イメージ処理回路）は、汎用回路のデータ処理Ｂ回路（イメージ処理回路）よりも高速処理が可能である。なお、汎用回路が構成された再構成可能回路２２内が全面的に再構成されて専用回路Ｂとされてもよいし、汎用回路が構成された再構成可能回路２２内の一部を維持しつつ部分的な再構成により専用回路Ｂが構成されてもよい。
【００３３】
ちなみに、図２においては、データ処理Ａ，Ｂの好適な具体例として、グラフィック処理とイメージ処理を示したが、データ処理Ａ，Ｂとして、例えば、Ｊｐｅｇ圧縮処理／伸長処理、パターンマッチ処理などの画像処理が利用されてもよいし、Ｈｕｆｆｍａｎ圧縮処理／伸長処理などのデータ処理が利用されてもよい。また、データ処理Ａ，Ｂの他にデータ処理Ｃ，Ｄ，・・・を加えて、３以上のデータ処理に関する専用回路と汎用回路が構成されてもよい。
【００３４】
図１に戻り、再構成可能回路２２内に構成される回路構成の選択、つまり汎用回路または専用回路（図２の専用回路Ａ，Ｂ）の選択は、回路選択ブロック５０により行われる。以下に、図１のデータ処理装置１００により実現される処理の具体例について詳述する。なお、図１に示した構成（符号を付された各部）については、以下の説明において図１の符号を利用する。
【００３５】
図３〜図６には、データ処理装置１００が実行する処理の具体例がフローチャートで示されている。
【００３６】
図３は、データ処理装置１００が実行する処理の全容を示す図である。入力バッファ１０に対象データ（画像データ）が入力されると、図３に示す処理が開始され、後段の処理で利用される各種変数が初期化される（Ｓ３０１）。例えば、処理コマンド番号ｃｉとコマンド一致数ｃｍ＿ｃｎｔが０（ゼロ）とされ、現在の回路Ｃｆｇ＿ｓｔａｔｕｓが汎用回路（Ｇｒａ＋Ｉｍｇ）とされる。
【００３７】
次に、回路選択ブロック５０において回路選択処理が実行され、再構成可能回路２２内に構成される回路構成が選択される（Ｓ３０２）。つまり、汎用回路または専用回路（図２の専用回路Ａ，Ｂ）が選択される。なお、回路選択ブロック５０による回路選択処理については後に詳述する（図４参照）。
【００３８】
続いて、データ処理部２０は、回路選択ブロック５０により選択された回路を再構成可能回路２２内に構成し、入力バッファ１０から得られる対象データ（画像データ）にデータ処理（画像処理）を施す（Ｓ３０３）。処理後の対象データ（画像データ）は出力バッファ３０へ出力される。
【００３９】
そして、対象データに関する全コマンド処理が完了しかた否かが確認される（Ｓ３０４）。例えば、対象データが画像データであれば、１ページ分の画像データに関する全コマンド処理が完了したか否かが確認される。完了していなければ、処理コマンド番号ｃｉに１が加えられ（Ｓ３０５）、次の処理コマンドを対象としてＳ３０２からＳ３０３の処理が実行される。そして、全コマンド処理が完了するまでＳ３０２からＳ３０３の処理が繰り返され、全コマンド処理が完了すると、図３に示す処理が終了する。
【００４０】
図４は、回路選択ブロック５０が実行する回路選択処理を示す図である。つまり、図３のＳ３０２における回路選択処理の具体例が図４に示されている。図４に示す処理が開始されると、まず、後段の処理で利用される各種フラグが初期化される（Ｓ４０１）。例えば、図４に示すように、フラグＪｕｄｇｅとフラグＰｒｅ＿Ｊｕｄｇｅが共に０（ゼロ）とされる。
【００４１】
次に、現在の処理コマンドＣｍｄ［ｃｉ］とＮクロック前の処理コマンドＣｍｄ［ｃｉ＋Ｎ］が取得される（Ｓ４０２）。例えば、データ処理部２０によるデータ処理（画像処理）に先立ち、入力バッファ１０からＮクロック分の対象データ（画像データ）がバッファ５４に送られ、バッファ５４に記憶された対象データ（画像データ）から、評価部５６が現在の処理コマンドＣｍｄ［ｃｉ］とＮクロック前の処理コマンドＣｍｄ［ｃｉ＋Ｎ］を取得する。なお、Ｎは自然数であり、固定値であってもよいし、例えばユーザにより適宜に修正（微調整）されてもよい。
【００４２】
続いて、現在の回路Ｃｆｇ＿ｓｔａｔｕｓが確認され（Ｓ４０３）、現在の回路が専用回路（ＧｒａまたはＩｍｇ）であればＳ４０４の処理に進み、現在の回路が汎用回路（Ｇｒａ＋Ｉｍｇ）であればＳ４０５の処理に進む。ちなみに、Ｓ３０１（図３）において、現在の回路Ｃｆｇ＿ｓｔａｔｕｓは汎用回路（Ｇｒａ＋Ｉｍｇ）に初期化されている。
【００４３】
Ｓ４０４では、現在の回路が専用回路（ＧｒａまたはＩｍｇ）の場合における評価処理１が実行される。なお、評価処理１の具体例については後に詳述する（図５）。そして、評価処理１において変更または維持されるフラグＪｕｄｇｅが確認され（Ｓ４０６）、フラグＪｕｄｇｅが１であれば、再構成制御部５８が再構成信号を発生して（Ｓ４０８）、次の回路Ｃｆｇ＿Ｎｅｘｔで指定される回路構成となるように再構成可能回路２２が再構成される（Ｓ４０９）。フラグＪｕｄｇｅが０（ゼロ）であれば、再構成は行われずに、図４に示す処理が終了する。
【００４４】
また、Ｓ４０５では、現在の回路が汎用回路（Ｇｒａ＋Ｉｍｇ）の場合における評価処理２が実行される。なお評価処理２の具体例については後に詳述する（図６）。そして、評価処理２において変更または維持されるフラグＪｕｄｇｅとフラグＰｒｅ＿Ｊｕｄｇｅが確認され（Ｓ４０７）、フラグＪｕｄｇｅとフラグＰｒｅ＿Ｊｕｄｇｅが共に１であれば、再構成制御部５８が再構成信号を発生して（Ｓ４０８）、次の回路Ｃｆｇ＿Ｎｅｘｔで指定される回路構成となるように再構成可能回路２２が再構成される（Ｓ４０９）。フラグＪｕｄｇｅとフラグＰｒｅ＿Ｊｕｄｇｅの少なくとも一方が０（ゼロ）であれば、再構成は行われずに、図４に示す処理が終了する。
【００４５】
図５は、現在の回路が専用回路である場合の評価処理１を示す図である。図５の評価処理１では、まず、現在の処理コマンドＣｍｄ［ｃｉ］に現在の回路Ｃｆｇ＿ｓｔａｔｕｓが対応しているか否かが確認される（Ｓ５０１）。つまり、現在の回路構成が現在の処理コマンドに対応した専用回路であるか否かが確認される。
【００４６】
そして、現在の処理コマンドＣｍｄ［ｃｉ］に現在の回路Ｃｆｇ＿ｓｔａｔｕｓが対応していなければ、つまり、現在の回路構成が現在の処理コマンドに対応した専用回路でなければ、次の回路Ｃｆｇ＿Ｎｅｘｔが現在の処理コマンドＣｍｄ［ｃｉ］に対応した専用回路に変更され、さらに、フラグＪｕｄｇｅが１に変更されて（Ｓ５０２）、図５に示す処理が終了する。
【００４７】
一方、現在の処理コマンドＣｍｄ［ｃｉ］に現在の回路Ｃｆｇ＿ｓｔａｔｕｓが対応していれば、つまり、現在の回路構成が現在の処理コマンドに対応した専用回路であれば、次の回路Ｃｆｇ＿ＮｅｘｔとフラグＪｕｄｇｅを現状維持したまま、図５に示す処理が終了する。なお、図５のＳ５０１とＳ５０２の処理は、例えば前判定部５２が実行する。
【００４８】
図６は、現在の回路が汎用回路である場合の評価処理２を示す図である。図６の評価処理２では、まず、現在の処理コマンドＣｍｄ［ｃｉ］が評価対象となるコマンドか否かが確認される（Ｓ６０１）。図６の具体例においては、グラフィック処理（Ｇｒａ）とイメージ処理（Ｉｍｇ）が評価対象であるため、現在の処理コマンドＣｍｄ［ｃｉ］がグラフィック処理（Ｇｒａ）またはイメージ処理（Ｉｍｇ）でなければ、Ｓ６０２〜Ｓ６０８の処理が行われずに、図６に示す処理が終了する。なお、データ処理部２０は、グラフィック処理（Ｇｒａ）またはイメージ処理（Ｉｍｇ）以外の他処理に対応した回路も備えており、他処理についてはそれに対応した回路において処理される。
【００４９】
現在の処理コマンドＣｍｄ［ｃｉ］がグラフィック処理（Ｇｒａ）またはイメージ処理（Ｉｍｇ）であれば、次の回路Ｃｆｇ＿Ｎｅｘｔが現在の処理コマンドＣｍｄ［ｃｉ］に対応した専用回路に変更され、さらにフラグＪｕｄｇｅが１に変更される（Ｓ６０２）。
【００５０】
次に、現在の処理コマンドＣｍｄ［ｃｉ］とＮクロック前の処理コマンドＣｍｄ［ｃｉ＋Ｎ］が比較され（Ｓ６０３）、Ｃｍｄ［ｃｉ］とＣｍｄ［ｃｉ＋Ｎ］が同じであれば、コマンド一致数ｃｍ＿ｃｎｔに１が加えられ（Ｓ６０４）、Ｃｍｄ［ｃｉ］とＣｍｄ［ｃｉ＋Ｎ］が同じでなければ、コマンド一致数ｃｍ＿ｃｎｔが０（ゼロ）とされる（Ｓ６０５）。
【００５１】
続いて、性能計算処理が実行され、汎用回路の処理時間Ｐｆ１と専用回路の処理時間Ｐｆ２が算出される（Ｓ６０６）。なお、性能計算処理の具体例については後に詳述する（図７）。
【００５２】
そして、汎用回路の処理時間Ｐｆ１と専用回路の処理時間Ｐｆ２が比較され（Ｓ６０７）、処理時間Ｐｆ１が処理時間Ｐｆ２よりも大きければ（Ｐｆ１＞Ｐｆ２であれば）、フラグＰｒｅ＿Ｊｕｄｇｅが１に変更され（Ｓ６０８）、処理時間Ｐｆ１が処理時間Ｐｆ２以下であれば（Ｐｆ１＞Ｐｆ２でなければ）、フラグＰｒｅ＿Ｊｕｄｇｅが維持されたまま図６に示す処理が終了する。
【００５３】
なお、図６のＳ６０１とＳ６０２の処理は、例えば前判定部５２が実行し、図６のＳ６０３〜Ｓ６０８の処理は、例えば評価部５６が実行する。
【００５４】
図７は、性能計算処理の具体例を説明するための図である。図７には、性能計算の好適な例である処理時間の算出例が図示されている。処理時間は、データ数ｘ（個）、データフラッシュ時間Ａ（ｃｌｋ：クロック）、再構成時間Ｂ（ｃｌｋ：クロック）、専用回路の高速化効果α（倍）を利用して算出される。
【００５５】
データ数ｘは、同一の単位処理が連続して繰り返されるデータの個数である。例えば、グラフィック処理（Ｇｒａ）されるデータの連続数またはイメージ処理（Ｉｍｇ）されるデータの連続数であり、図３〜図６を利用して説明した具体的な処理におけるコマンド一致数ｃｍ＿ｃｎｔがデータ数ｘとなる。
【００５６】
データフラッシュ時間Ａは、専用回路（例えば図２のデータ処理Ａ専用回路Ａまたはデータ処理Ｂ専用回路）内に入力データが行き届くまでのパイプライン構築時間と、専用回路から出力データが掃けるまでのデータ退避時間を加算した時間である。
【００５７】
再構成時間Ｂは、再構成可能回路２２内の回路構成を変更（再構成）するのに要する時間である。そして、高速化効果αは、データ数ｘの対象データを汎用回路で処理する場合の通常処理時間と、同じ対象データを専用回路で処理する場合の専用処理時間とに基づいて、α＝（通常処理時間／専用処理時間）として算出される。
【００５８】
データフラッシュ時間Ａと再構成時間Ｂと高速化効果αは、専用回路の回路構成や再構成可能回路２２の性能に依存する。
【００５９】
そして、汎用回路の処理時間Ｐｆ１と専用回路の処理時間Ｐｆ２は、それぞれ、次式により算出される。なお、専用回路の処理時間Ｐｆ２には、例えば初期状態の汎用回路から専用回路に再構成し、さらに汎用回路に戻すために必要な時間として（Ａ＋Ｂ）×２が加算されている。
【００６０】
汎用回路の処理時間Ｐｆ１＝ｘ
専用回路の処理時間Ｐｆ２＝（ｘ／α）＋（Ａ＋Ｂ）×２
【００６１】
図７には、具体例１として、データ数ｘを８００個、データフラッシュ時間Ａを１４９ｃｌｋ、再構成時間Ｂを１ｃｌｋ、高速化効果αを４倍とした場合の計算例が示されている。具体例１では、汎用回路の処理時間Ｐｆ１が８００ｃｌｋ、専用回路の処理時間Ｐｆ２が５００ｃｌｋとなる。したがって、具体例１では、Ｐｆ１＞Ｐｆ２となり、専用回路に再構成してデータ処理を実行した方が高速であり、具体例１の場合には、回路選択ブロック５０により専用回路が選択される。
【００６２】
また、図７には、データ数ｘ（個）に応じて変化する汎用回路と専用回路の処理時間（ｃｌｋ）のグラフが示されている。グラフに示すように、データ数ｘが閾値ｔｈ以下の場合（閾値ｔｈより小さい場合）には、再構成を行わずに汎用回路のままデータ処理した方が高速となり、データ数ｘが閾値ｔｈよりも大きい場合（閾値ｔｈ以上の場合）には、専用回路に再構成してデータ処理した方が高速となる。したがって、例えば、データ数ｘと閾値ｔｈとの比較により、汎用回路または専用回路のいずれか高速な方が選択されてもよい。
【００６３】
図８は、本実施形態（図１〜図７を利用して説明した実施形態）によるデータ処理の高速化を示す図である。
【００６４】
図８には、グラフィック処理（Ｇｒａ）とイメージ処理（Ｉｍｇ）を選択的に繰り返すデータ処理において、専用回路のみを利用する比較例１と、汎用回路のみを利用する比較例２と、汎用回路と専用回路を切り替える本実施形態の具体例が図示されている。図８において、期間Ｔは１回の再構成に必要とされる時間であり、例えば期間Ｔ＝Ａ＋Ｂ（データフラッシュ時間Ａ＋再構成時間Ｂ：図７参照）となる。
【００６５】
比較例１では、グラフィック処理の専用回路である高速グラフィック処理回路（図２参照）と、イメージ処理の専用回路である高速イメージ処理回路（図２参照）のみが利用される。したがって、グラフィック処理とイメージ処理を選択的に繰り返すデータ処理において、処理コマンドがグラフィック処理とイメージ処理との間で変化する度に、高速グラフィック処理回路と高速イメージ処理回路とを切り替えるための再構成が必要になる。
【００６６】
比較例２では、グラフィック処理とイメージ処理を実行可能な汎用回路であり、処理コマンドの変化に従って再構成をする必要がない。そのため、再構成を行わずにグラフィック処理とイメージ処理を選択的に繰り返すデータ処理を実行できる。図８に示す具体例では、比較例１よりも比較例２の方がデータ処理時間が短い。
【００６７】
比較例１，２に対し、本実施形態では、汎用回路と専用回路が適宜に切り替えられる。例えば、処理コマンドがグラフィック処理とイメージ処理との間で頻繁に切り替わる場合に汎用回路が利用されて再構成の回数が抑えられ、グラフィック処理またはイメージ処理のいずれか一方の処理が比較的多く（時間的に長く）繰り返される場合に、その一方の処理に対応した専用回路が再構成される。その結果、図８に示すように、本実施形態では、比較例２の場合よりもさらにデータ処理時間が短くなる。
【００６８】
図９は、専用回路と汎用回路の他の好適な具体例を示す図である。図９には、ラン圧縮処理（ＲＵＮ圧縮処理）における専用回路と汎用回路の具体例が図示されている。
【００６９】
ラン圧縮処理における専用回路として、図９の具体例では、連続ラン専用回路Ｃと不連続ラン専用回路ＮＣが図示されている。
【００７０】
連続ラン専用回路Ｃは、処理対象となる入力データが連続して同じである場合に利用される専用回路である。図９の具体例において、連続ラン専用回路Ｃの処理能力（処理速度）はＰｃ＝２ｐｉｘ／ｃｌｋである。つまり、１クロック（ｃｌｋ）ごとに２ピクセル（ｐｉｘ）の処理が可能である。
【００７１】
不連続ラン専用回路ＮＣは、処理対象となる入力データが不連続である（同じデータが連続しない）場合に利用される専用回路である。図９の具体例において、不連続ラン専用回路ＮＣの処理能力（処理速度）はＰｎｃ＝２ｐｉｘ／ｃｌｋである。つまり、１クロック（ｃｌｋ）ごとに２ピクセル（ｐｉｘ）の処理が可能である。
【００７２】
これらの専用回路に対し、図９の具体例における汎用回路は、処理対象となる入力データが連続か不連続かに関わらずデータ処理を実行できる回路であり、汎用回路の処理能力（処理速度）はＰｇ＝１ｐｉｘ／ｃｌｋである。つまり、１クロック（ｃｌｋ）ごとに１ピクセル（ｐｉｘ）の処理が可能であり、専用回路に比べて処理能力が低い（処理速度が遅い）。
【００７３】
図９に示す比較例では、専用回路のみを利用して入力データがラン圧縮処理される。これに対し、図９に示す本実施形態では、汎用回路と専用回路を適宜に切り替えて入力データがラン圧縮処理される。なお、比較例と本実施形態では同じ入力データを処理対象としている。また、回路の切り替え、つまり１回の再構成処理に要する時間をＲｔ＝３クロック（ｃｌｋ）とする。
【００７４】
図９の比較例では、連続ラン専用回路Ｃと不連続ラン専用回路ＮＣのみが利用されるため、図９に例示する入力データを処理するためには５回の切り替え、つまり５回の再構成処理が必要になる。その結果、図９の比較例では、入力データをラン圧縮処理するために２５クロック（ｃｌｋ）の処理時間を必要とする。
【００７５】
これに対し、本実施形態では、ラン圧縮処理に先だって入力データが解析され、入力データの並び、回路の切り替え回数つまり再構成処理の回数、などを用いた判定により、処理時間ができる限り小さくなるように、汎用回路と専用回路が選択される。その結果、図９に例示する本実施形態では、入力データをラン圧縮処理するために１８クロック（ｃｌｋ）の処理時間で済み、比較例よりも高速な処理が実現できる。
【００７６】
以上、本発明の好適な実施形態を説明したが、上述した実施形態は、あらゆる点で単なる例示にすぎず、本発明の範囲を限定するものではない。本発明は、その本質を逸脱しない範囲で各種の変形形態を包含する。
【符号の説明】
【００７７】
１０  入力バッファ、２０  データ処理部、３０  出力バッファ、５０  回路選択ブロック、５２  前判定部、５４  バッファ、５６  評価部、５８  再構成制御部、１００  データ処理装置。
【図１】
0006617493.tif 000002
【図２】
0006617493.tif 000003
【図３】
0006617493.tif 000004
【図４】
0006617493.tif 000005
【図５】
0006617493.tif 000006
【図６】
0006617493.tif 000007
【図７】
0006617493.tif 000008
【図８】
0006617493.tif 000009
【図９】
0006617493.tif 000010