(57)【特許請求の範囲】
【請求項１】
処理対象となるデータを記憶する記憶部と、
動作中に内部機能を部分的に再構成可能なプログラマブル回路と、
前記プログラマブル回路の内部機能の再構成処理、および、前記プログラマブル回路の処理タイミングを制御する制御部と、
を備え、
前記制御部は、
前記プログラマブル回路を用いて、前記記憶部に記憶された前記データに対して第１の処理を施して、次に第２の処理を施す場合において、
再構成時間の２倍が前記データの処理時間より長い場合には、第１モードを選択し、再構成時間の２倍が前記データの処理時間より短い場合には、第２モードを選択し、
前記第１モードを選択した場合、前記プログラマブル回路の一部を前記第１の処理を実行する第１処理部に再構成し、前記第１処理部の実行中に前記プログラマブル回路の他の部分を前記第２の処理を実行する第２処理部に再構成し、前記第１処理部が全てのデータについての処理を完了した後に、前記第２処理部による処理を開始させ、
前記第２モードを選択した場合、前記第１の処理および前記第２の処理に先だって前記プログラマブル回路を前記第１処理部および前記第２処理部に再構成するとともに前記第１処理部の後段に前記第２処理部を直列に接続し、前記第１処理部および前記第２処理部を並行して動作させてストリーム処理を実行させる
データ処理装置。
【請求項２】
前記制御部は、前記記憶部に記憶された前記データのデータ量に基づき、前記データの処理時間を算出する
請求項１に記載のデータ処理装置。
【請求項３】
前記制御部は、前記データのビット幅と前記プログラマブル回路のビット幅とが同一であり、且つ、前記プログラマブル回路がパイプライン化されている回路である場合、前記データ量と前記第１処理部および前記第２処理部のパイプライン段数とを加算した値を、前記プログラマブル回路のクロックで除算した時間を、前記データの処理時間として算出する
請求項２に記載のデータ処理装置。
【請求項４】
前記データは、画像データである
請求項１から３の何れか１項に記載のデータ処理装置。
【請求項５】
前記プログラマブル回路は、ＦＰＧＡまたはＰＬＤである
請求項１から４の何れか１項に記載のデータ処理装置。
【請求項６】
処理対象となるデータを記憶する記憶部と、
動作中に内部機能を部分的に再構成可能なプログラマブル回路と、
前記プログラマブル回路の内部機能の再構成処理、および、前記プログラマブル回路の処理タイミングを制御する制御部と、
を備えるデータ処理装置でのデータ処理方法であって、
前記制御部は、
前記プログラマブル回路を用いて、前記記憶部に記憶された前記データに対して第１の処理を施して、次に第２の処理を施す場合において、
再構成時間の２倍が前記データの処理時間より長い場合には、第１モードを選択し、再構成時間の２倍が前記データの処理時間より短い場合には、第２モードを選択し、
前記第１モードを選択した場合、前記プログラマブル回路の一部を前記第１の処理を実行する第１処理部に再構成し、前記第１処理部の実行中に前記プログラマブル回路の他の部分を前記第２の処理を実行する第２処理部に再構成し、前記第１処理部が全てのデータについての処理を完了した後に、前記第２処理部による処理を開始させ、
前記第２モードを選択した場合、前記第１の処理および前記第２の処理に先だって前記プログラマブル回路を前記第１処理部および前記第２処理部に再構成するとともに前記第１処理部の後段に前記第２処理部を直列に接続し、前記第１処理部および前記第２処理部を並行して動作させてストリーム処理を実行させる
データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置およびデータ処理方法に関する。
【背景技術】
【０００２】
論理回路等の内部機能を自由に構成することができるＦＰＧＡ（Field-Programmable  Gate  Array）またはＰＬＤ（Programmable  Logic  Device）等のプログラマブル回路が知られている。このようなプログラマブル回路は、例えば、内部に複数の処理部を構成し、これら複数の処理部を内部でシーケンシャルに接続することができる。これにより、このようなプログラマブル回路では、データを複数の処理部に順次に通過させて、データに複数の処理を施すことができる。
【０００３】
また、このようなプログラマブル回路では、動作中において、内部機能を部分的に再構成する技術も知られている。この技術を用いることにより、このようなプログラマブル回路によれば、データに複数の処理を施す場合、ある１つの処理部の動作中に、次以降に実行される処理部を再構成することができる（例えば特許文献１）。これにより、このようなプログラマブル回路によれば、処理の開始段階における再構成時間を短くすることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ある１つの処理部の動作中に次以降に実行される処理部を再構成する場合、プログラマブル回路は、ある１つの処理部の処理結果データを一旦メモリに書き込み、次の処理部にメモリからデータを読み出して与えなければならない。このため、処理対象のデータが大きい場合、プログラマブル回路は、メモリとの間のデータ転送時間が長くなり、結果として、処理を開始してから最終的な処理結果が得られるまでの時間（総合処理時間）が長くなってしまっていた。
【０００５】
本発明は、上記に鑑みてなされたものであって、再構成時間およびデータの処理時間を含めた総合処理時間を短くすることができるデータ処理装置およびデータ処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明に係るデータ処理装置は、処理対象となるデータを記憶する記憶部と、動作中に内部機能を部分的に再構成可能なプログラマブル回路と、前記プログラマブル回路の内部機能の再構成処理、および、前記プログラマブル回路の処理タイミングを制御する制御部と、を備え、前記制御部は、前記プログラマブル回路を用いて、前記記憶部に記憶された前記データに対して第１の処理を施して、次に第２の処理を施す場合において、再構成時間の２倍が前記データの処理時間より長い場合には、前記第１モードを選択し、再構成時間の２倍が前記データの処理時間より短い場合には、前記第２モードを選択し、前記第１モードを選択した場合、前記プログラマブル回路の一部を前記第１の処理を実行する第１処理部に再構成し、前記第１処理部の実行中に前記プログラマブル回路の他の部分を前記第２の処理を実行する第２処理部に再構成し、前記第１処理部が全てのデータについての処理を完了した後に、前記第２処理部による処理を開始させ、前記第２モードを選択した場合、前記第１の処理および前記第２の処理に先だって前記プログラマブル回路を前記第１処理部および前記第２処理部に再構成するとともに前記第１処理部の後段に前記第２処理部を直列に接続し、前記第１処理部および前記第２処理部を並行して動作させてストリーム処理を実行させる。
【発明の効果】
【０００７】
本発明によれば、再構成時間およびデータの処理時間を含めた総合処理時間を短くすることができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態に係るカメラシステムを示す図である。
【図２】図２は、プログラマブル回路により構成される回路の一例を示す図である。
【図３】図３は、第１モードでの接続部の第１の期間の接続例を示す図である。
【図４】図４は、第１モードでの接続部の第２の期間の接続例を示す図である。
【図５】図５は、第２モードでの接続部の接続例を示す図である。
【図６】図６は、再構成時間の２倍（２×ＴＣ）がデータの処理時間（ＴＰ）と同一の場合の、第１処理部および第２処理部のタイムチャートである。
【図７】図７は、再構成時間の２倍（２×ＴＣ）がデータの処理時間（ＴＰ）より長い場合の、第１処理部および第２処理部のタイムチャートである。
【図８】図８は、再構成時間の２倍（２×ＴＣ）がデータの処理時間（ＴＰ）より短い場合の、第１処理部および第２処理部のタイムチャートである。
【図９】図９は、モードの選択処理を示すフローチャートである。
【図１０】図１０は、Ｎ個の処理部を構成する場合における、第１モードでの接続部の接続例を示す図である。
【図１１】図１１は、Ｎ個の処理部を構成する場合における、第２モードでの接続部の接続例を示す図である。
【発明を実施するための形態】
【０００９】
以下に、本発明に係る実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
【００１０】
図１は、実施形態に係るカメラシステム１０を示す図である。カメラシステム１０は、カメラ２０と、データ処理装置３０とを備える。
【００１１】
カメラ２０は、被写体を撮像して画像データを生成する。データ処理装置３０は、プログラムを実行して、カメラ２０により生成された画像データに対してデータ処理を実行する。
【００１２】
データ処理装置３０は、ＣＰＵ（Central  Processing  Unit）３１と、記憶装置３２と、ＲＡＭ（Random  Access  Memory）３３と、画像データ取得部３４と、第１のＤＭＡ（Direct  Memory  Access）制御部３５と、プログラマブル回路３６と、第２のＤＭＡ制御部３７とを有する。ＣＰＵ３１、記憶装置３２、ＲＡＭ３３、第１のＤＭＡ制御部３５および第２のＤＭＡ制御部３７は、バスにより接続されている。
【００１３】
ＣＰＵ３１は、プログラムに従って演算処理および制御処理等を実行するプロセッサ等の制御部である。ＣＰＵ３１は、ＲＡＭ３３の所定領域を作業領域として記憶装置３２等に予め記憶された各種プログラムとの協働により各種処理を実行する。
【００１４】
記憶装置３２は、フラッシュメモリ等の半導体による記憶媒体、磁気的または光学的に記録可能な記憶媒体等の書き換え可能な記録装置である。記憶装置３２は、プログラムおよび各種の設定情報等を記憶する。また、記憶装置３２は、データ処理装置３０により処理済みの画像データ等も記憶する。
【００１５】
ＲＡＭ３３は、ＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）等の記憶部である。ＲＡＭ３３は、ＣＰＵ３１により実行されるプログラムを記憶したり、ＣＰＵ３１の処理対象となるデータを記憶したりする。さらに、ＲＡＭ３３は、カメラ２０により生成された画像データを記憶したり、プログラマブル回路３６の処理対象となるデータを記憶したり、プログラマブル回路３６による処理中または処理済みのデータを記憶したりする。
【００１６】
画像データ取得部３４は、カメラ２０により生成された画像データを取得する。第１のＤＭＡ制御部３５は、ＣＰＵ３１の制御に応じて、画像データ取得部３４が取得した画像データを、ＲＡＭ３３上のＣＰＵ３１により指定されたアドレスへと書き込む。これにより、第１のＤＭＡ制御部３５は、ＣＰＵ３１を介さずに、画像データ取得部３４からＲＡＭ３３へと画像データを転送することができる。
【００１７】
プログラマブル回路３６は、例えば、ＦＰＧＡおよびＰＬＤ等のＣＰＵ３１により内部機能が構成される回路である。プログラマブル回路３６は、一例として、論理回路またはＡＬＵ（Arithmetic  Logical  Unit）等の論理演算回路を複数個含み、論理演算回路の入出力間がクロスバススイッチ等により接続切断が可能となっている。ＣＰＵ３１は、プログラマブル回路３６に回路情報を与えて、プログラマブル回路３６のそれぞれの論理演算回路の機能の設定および論理演算回路の間の接続関係の設定をすることができる。
【００１８】
ここで、プログラマブル回路３６は、動作中に、内部機能を部分的に再構成可能である。プログラマブル回路３６は、一例として、一部分の論理演算回路の動作中において、他の部分の論理演算回路の機能が設定可能となっている。これによりプログラマブル回路３６は、少ない論理演算回路により複雑な演算を実行することができる。
【００１９】
第２のＤＭＡ制御部３７は、ＣＰＵ３１の制御に応じて、ＲＡＭ３３上のＣＰＵ３１により指定されたアドレスのデータを、プログラマブル回路３６へと転送する。これにより、第２のＤＭＡ制御部３７は、ＣＰＵ３１を介さずに、画像データのような大量のデータをストリーム順にプログラマブル回路３６へと転送することができる。
【００２０】
また、第２のＤＭＡ制御部３７は、ＣＰＵ３１の制御に応じて、プログラマブル回路３６から出力されたデータを、ＲＡＭ３３上のＣＰＵ３１により指定されたアドレスへと書き込むことができる。これにより、第２のＤＭＡ制御部３７は、ＣＰＵ３１を介さずに、プログラマブル回路３６から出力された画像データのような大量のデータをストリーム順にＲＡＭ３３に書き込むことができる。
【００２１】
図２は、プログラマブル回路３６により構成される回路の一例を示す図である。ＣＰＵ３１は、プログラマブル回路３６の内部機能の再構成処理、および、プログラマブル回路３６の処理タイミングを制御する。
【００２２】
ＣＰＵ３１は、プログラマブル回路３６を用いて、ＲＡＭ３３に記憶されたデータに対して第１の処理を施して、次に第２の処理を施す場合、プログラマブル回路３６に回路情報を与えて、図２に示すように機能させる。すなわち、ＣＰＵ３１は、プログラマブル回路３６を、第１の処理を実行する第１処理部４１−１と、第２の処理を実行する第２処理部４１−２と、接続部４２として機能させる。
【００２３】
この場合、ＣＰＵ３１は、第１のモードまたは第２モードの何れかにより、第１処理部４１−１および第２処理部４１−２の再構成処理、および、第１処理部４１−１および第２処理部４１−２の処理タイミングを制御する。
【００２４】
第１のモードでは、ＣＰＵ３１は、最初に、プログラマブル回路３６の一部を第１処理を実行する第１処理部４１−１に再構成し、第１処理部４１−１の構成後に、第１処理部４１−１による処理を開始させる。続いて、ＣＰＵ３１は、第１処理部４１−１の実行中にプログラマブル回路３６の他の部分を第２処理を実行する第２処理部４１−２に再構成する。そして、ＣＰＵ３１は、第１処理部４１−１が全てのデータについての処理を完了した後に、第２処理部４１−２による処理を開始させる。
【００２５】
第２モードでは、ＣＰＵ３１は、最初に、第１の処理および第２の処理に先だって、プログラマブル回路３６を第１処理部４１−１および第２処理部４１−２に再構成するとともに、第１処理部４１−１の後段に第２処理部４１−２を直列に接続するように接続部４２を機能させる。そして、ＣＰＵ３１は、第１処理部４１−１および第２処理部４１−２を並行して動作させてストリーム処理を実行させる。
【００２６】
ＣＰＵ３１は、ＲＡＭ３３に記憶された処理対象のデータの処理時間に応じて、第１モードまたは第２モードを切り替える。ＣＰＵ３１は、一例として、ＲＡＭ３３に記憶された処理対象のデータのデータ量から処理時間を算出する。
【００２７】
図３は、第１モードでの接続部４２の第１の期間の接続例を示す図である。第１モードでは、第１処理部４１−１と第２処理部４１−２とがそれぞれ別個の期間にデータ処理を実行する。ここで、第１処理部４１−１が第１の処理を実行する期間を第１の期間、第２処理部４１−２が第２の処理を実行する期間を第２の期間とする。
【００２８】
第１の期間において、ＣＰＵ３１は、図３に示すように、接続部４２を機能させる。すなわち、第１の期間において、接続部４２は、第２のＤＭＡ制御部３７の出力端を第１処理部４１−１の入力端に接続する。また、接続部４２は、第１処理部４１−１の出力端を第２のＤＭＡ制御部３７の入力端に接続する。
【００２９】
そして、ＣＰＵ３１は、第１の期間において、第２のＤＭＡ制御部３７に対して、ＲＡＭ３３上の指定されたアドレスから処理対象のデータを読み出して順次にプログラマブル回路３６に転送する命令を与える。これとともに、ＣＰＵ３１は、プログラマブル回路３６から出力されたデータを順次にＲＡＭ３３上の指定したアドレスに書き込む命令を与える。
【００３０】
ＣＰＵ３１から命令が与えられると、第２のＤＭＡ制御部３７は、ＲＡＭ３３上の指定されたアドレスからデータを読み出してプログラマブル回路３６へと出力する。第２のＤＭＡ制御部３７から出力されたデータは、接続部４２により第１処理部４１−１に与えられる。第１処理部４１−１は、接続部４２から与えられたデータに対して順次に第１の処理を実行し、処理済みのデータを出力する。第１の処理が施されたデータは、接続部４２により第２のＤＭＡ制御部３７に与えられる。そして、第２のＤＭＡ制御部３７は、プログラマブル回路３６から出力されたデータを順次にＲＡＭ３３上の指定されたアドレスに書き込む。
【００３１】
図４は、第１モードでの接続部４２の第２の期間の接続例を示す図である。第１処理部４１−１が全てのデータについての処理を完了し、第１の処理が施されたデータがＲＡＭ３３上に書き込まれた後、第２の処理を実行する第２の期間に移行する。
【００３２】
第２の期間において、ＣＰＵ３１は、図４に示すように、接続部４２を機能させる。すなわち、第２の期間において、接続部４２は、第２のＤＭＡ制御部３７の出力端を第２処理部４１−２の入力端に接続する。また、接続部４２は、第２処理部４１−２の出力端を第２のＤＭＡ制御部３７の入力端に接続する。
【００３３】
そして、ＣＰＵ３１は、第２の期間において、第２のＤＭＡ制御部３７に対して、ＲＡＭ３３上の指定されたアドレスから、第１の処理が施された後のデータを読み出して順次にプログラマブル回路３６に転送する命令を与える。これとともに、ＣＰＵ３１は、プログラマブル回路３６から出力されたデータを順次にＲＡＭ３３上の指定したアドレスに書き込む命令を与える。
【００３４】
ＣＰＵ３１から命令が与えられると、第２のＤＭＡ制御部３７は、ＲＡＭ３３上の指定されたアドレスからデータを読み出してプログラマブル回路３６へと出力する。第２のＤＭＡ制御部３７から出力されたデータは、接続部４２により第２処理部４１−２に与えられる。第２処理部４１−２は、接続部４２から与えられたデータに対して順次に第２の処理を実行し、処理済みのデータを出力する。第２の処理が施されたデータは、接続部４２により第２のＤＭＡ制御部３７に与えられる。そして、第２のＤＭＡ制御部３７は、プログラマブル回路３６から出力されたデータを順次にＲＡＭ３３上の指定されたアドレスに書き込む。
【００３５】
以上のように、ＣＰＵ３１は、第１のモードにおいて、プログラマブル回路３６に対して、第１処理部４１−１が全てのデータについての処理を完了した後に、第２処理部４１−２による処理を開始させることができる。
【００３６】
図５は、第２モードでの接続部４２の接続例を示す図である。第２モードでは、第１処理部４１−１と第２処理部４１−２とが並行して動作してデータ処理を実行する。すなわち、第２モードでは、第１処理部４１−１と第２処理部４１−２とが同期間にデータ処理を実行する。
【００３７】
第２モードにおいて、ＣＰＵ３１は、図５に示すように、接続部４２を機能させる。すなわち、第１モードにおいて、接続部４２は、第２のＤＭＡ制御部３７の出力端を第１処理部４１−１の入力端に接続する。また、接続部４２は、第１処理部４１−１の出力端を第２処理部４１−２の入力端に接続する。また、接続部４２は、第２処理部４１−２の出力端を第２のＤＭＡ制御部３７の入力端に接続する。
【００３８】
そして、ＣＰＵ３１は、第２のＤＭＡ制御部３７に対して、ＲＡＭ３３上の指定されたアドレスから処理対象のデータを読み出して順次にプログラマブル回路３６に転送する命令を与える。これとともに、ＣＰＵ３１は、プログラマブル回路３６から出力されたデータを順次にＲＡＭ３３上の指定したアドレスに書き込む命令を与える。
【００３９】
ＣＰＵ３１から命令が与えられると、第２のＤＭＡ制御部３７は、ＲＡＭ３３上の指定されたアドレスからデータを読み出してプログラマブル回路３６へと出力する。第２のＤＭＡ制御部３７から出力されたデータは、接続部４２により第１処理部４１−１に与えられる。第１処理部４１−１は、接続部４２から与えられたデータに対して順次に第１の処理を実行し、処理済みのデータを出力する。第１の処理が施されたデータは、接続部４２により第２処理部４１−２に与えられる。
【００４０】
第２処理部４１−２は、接続部４２から与えられたデータに対して順次に第２の処理を実行し、処理済みのデータを出力する。第２の処理が施されたデータは、接続部４２により第２のＤＭＡ制御部３７に与えられる。そして、第２のＤＭＡ制御部３７は、プログラマブル回路３６から出力されたデータを順次にＲＡＭ３３上の指定されたアドレスに書き込む。
【００４１】
以上のように、ＣＰＵ３１は、第２のモードにおいて、プログラマブル回路３６に対して、第１処理部４１−１および第２処理部４１−２を並行して動作させてストリーム処理を実行させることができる。
【００４２】
図６〜図８は、第１モードおよび第２モードの、第１処理部４１−１および第２処理部４１−２のそれぞれのタイムチャートである。なお、図６は、再構成時間の２倍（２×ＴＣ）がデータの処理時間（ＴＰ）と同一の場合のタイムチャートである。図７は、再構成時間の２倍（２×ＴＣ）がデータの処理時間（ＴＰ）より長い場合のタイムチャートである。図８は、再構成時間の２倍（２×ＴＣ）がデータの処理時間（ＴＰ）より短い場合のタイムチャートである。
【００４３】
図６〜図８では、第１処理部４１−１が動作している期間をＰ１、第２処理部４１−２が動作している期間をＰ２と示す。また、第１処理部４１−１を再構成している期間をＣ１、第２処理部４１−２を再構成している期間をＣ２と示す。図７および図８においても同様である。
【００４４】
図６の（Ａ）に示すように、第１モードにおいて、ＣＰＵ３１は、第１処理部４１−１の動作期間Ｐ１に、第２処理部４１−２を再構成する。また、ＣＰＵ３１は、第２処理部４１−２の動作期間Ｐ２に第１処理部４１−１を再構成する。
【００４５】
これにより、第１モードにおいて、データ処理装置３０は、第１処理部４１−１および第２処理部４１−２の再構成期間を動作時間に重複させることができるので、第１処理部４１−１および第２処理部４１−２の再構成によりデータ処理ができなくなる期間を短くすることができる。
【００４６】
図６の（Ｂ）に示すように、第２モードにおいて、ＣＰＵ３１は、第１処理部４１−１の動作期間Ｐ１および第１処理部４１−１の動作期間Ｐ２に先だって、第１処理部４１−１および第２処理部４１−２を再構成する。
【００４７】
これにより、第２モードにおいて、データ処理装置３０は、プログラマブル回路３６とＲＡＭ３３との間のデータ転送を１往復分で済ませることができるので、第１処理部４１−１および第２処理部４１−２がデータを処理している時間（合計の処理時間）を短くすることができる。
【００４８】
ここで、第１処理部４１−１または第２処理部４１−２の一方がＲＡＭ３３に記憶された全てのデータを処理する時間を、処理時間ＴＰとする。また、ＣＰＵ３１が第１処理部４１−１または第２処理部４１−２を再構成する時間を、再構成時間ＴＣとする。なお、画像データのストリーム処理を実行する場合のように、第１処理部４１−１および第２処理部４１−２のパイプライン段数より、処理対象のデータ量のほうが十分に大きいことを前提としている。また、第１処理部４１−１と第２処理部４１−２との間の再構成時間の差よりも、第１処理部４１−１および第２処理部４１−２の再構成時間の方が十分に長いことを前提としている。
【００４９】
この場合、第１モードにおいて、第１処理部４１−１がデータ処理を開始してから、第２処理部４１−２がデータ処理を全て完了するまでの時間、つまり、再構成時間およびデータの処理時間を含めた総合処理時間Ｔ１は、再構成時間の２倍（２×ＴＣ）、または、データの処理時間の２倍（２×ＴＰ）の何れか長い方となる。
【００５０】
また、第２モードにおいて、総合処理時間Ｔ２は、データの処理時間と再構成時間の２倍とを加算した時間（ＴＰ＋（２×ＴＣ））となる。
【００５１】
このため、図７に示すように、再構成時間の２倍（２×ＴＣ）がデータの処理時間（ＴＰ）より長い場合には、第１モードの総合処理時間Ｔ１（図７の（Ａ））の方が、第２モードの総合処理時間Ｔ２（図７の（Ｂ））より短くなる。従って、ＣＰＵ３１は、再構成時間の２倍（２×ＴＣ）がデータの処理時間（ＴＰ）より長い場合には、第１モードを選択する。
【００５２】
一方、図８に示すように、再構成時間の２倍（２×ＴＣ）がデータの処理時間（ＴＰ）より短い場合、第２モードの総合処理時間Ｔ２（図８の（Ｂ））の方が、第１モードの総合処理時間Ｔ１（図７の（Ａ））より短くなる。従って、ＣＰＵ３１は、再構成時間の２倍（２×ＴＣ）がデータの処理時間（ＴＰ）より短い場合には、第２モードを選択する。
【００５３】
なお、再構成時間の２倍（２×ＴＣ）とデータの処理時間（ＴＰ）とが同一の場合、ＣＰＵ３１は、第１モードまたは第２モードの何れを選択してもよい。本実施形態においては、再構成時間の２倍（２×ＴＣ）とデータの処理時間（ＴＰ）とが同一の場合、ＣＰＵ３１は、第２モードを選択する。
【００５４】
図９は、モードの選択処理を示すフローチャートである。ＣＰＵ３１は、プログラマブル回路３６に処理を実行させる場合、図９に示すフローチャートに示す処理を実行してモードを選択する。
【００５５】
まず、ＣＰＵ３１は、ＲＡＭ３３に記憶されている処理対象のデータのデータ量を取得する（Ｓ１１）。続いて、ＣＰＵ３１は、ＲＡＭ３３に記憶されている処理対象のデータのデータ量に基づき、処理時間ＴＰを算出する（Ｓ１２）。
【００５６】
例えば、ＣＰＵ３１は、データのビット幅とプログラマブル回路３６のビット幅とが同一であり、且つ、プログラマブル回路３６がパイプライン化されている回路である場合、データ量と第１処理部４１−１および第２処理部４１−２のパイプライン段数とを加算した値を、プログラマブル回路３６のクロックで除算した時間を、データの処理時間ＴＰとして算出する。例えば、ＣＰＵ３１は、処理対象のデータが静止画像の画像データである場合、画素数をデータ量としてもよい。
【００５７】
続いて、ＣＰＵ３１は、再構成時間の２倍（２×ＴＣ）とデータの処理時間（ＴＰ）との大きさを比較する（Ｓ１３）。再構成時間は、一例として、予め登録された値である。また、ＣＰＵ３１は、第１処理部４１−１および第２処理部４１−２の回路規模等に基づき再構成時間を算出してもよい。
【００５８】
再構成時間の２倍（２×ＴＣ）がデータの処理時間（ＴＰ）より大きい場合（Ｓ１３の真）、ＣＰＵ３１は、第１モードを選択する（Ｓ１４）。また、再構成時間の２倍（２×ＴＣ）がデータの処理時間（ＴＰ）以下の場合（Ｓ１３の偽）、ＣＰＵ３１は、第２モードを選択する（Ｓ１５）。そして、ＣＰＵ３１は、モードの選択を終了すると、プログラマブル回路３６に選択したモードで処理を実行させる。
【００５９】
図１０は、Ｎ個の処理部を構成する場合における、第１モードでの接続部４２の接続例を示す図である。ＣＰＵ３１は、プログラマブル回路３６を用いて、ＲＡＭ３３に記憶されたデータに対して、３以上の複数の処理を施させてもよい。例えば、ＣＰＵ３１は、Ｎ個（３以上）の処理を実行させる場合、プログラマブル回路３６を、第１処理部４１−１から第Ｎ処理部４１−Ｎまでの複数の処理部と、接続部４２として機能させる。
【００６０】
そして、第１モードにおいては、ＣＰＵ３１は、複数の処理部のそれぞれに個別の期間に処理を実行させる。具体的には、図１０に示すように、ＣＰＵ３１は、第１処理部４１−１から第Ｎ処理部４１−Ｎを順次に選択して、選択したそれぞれの処理部にＲＡＭ３３に記憶されたデータを転送して処理させる。また、第１モードにおいては、ＣＰＵ３１は、何れか１つの処理部の実行中に、プログラマブル回路３６の一部を他の処理部に再構成する。
【００６１】
図１１は、Ｎ個の処理部を構成する場合における、第２モードでの接続部４２の接続例を示す図である。また、第２モードにおいては、ＣＰＵ３１は、複数の処理部を並行して動作させてストリーム処理を実行させる。具体的には、図１１に示すように、ＣＰＵ３１は、第１処理部４１−１から第Ｎ処理部４１−Ｎまでを直列に接続させて、第１処理部４１−１から第Ｎ処理部４１−Ｎまでのそれぞれを並行して動作させてストリーム処理を実行させる。また、第２モードにおいては、ＣＰＵ３１は、複数の処理に先だって、プログラマブル回路３６を複数の処理部に再構成するとともに複数の処理部を直列に接続する。
【００６２】
なお、ＣＰＵ３１は、複数の処理部の再構成時間の合計と、データの処理時間との大きさを比較して、第１モードまたは第２モードを選択する。例えば、Ｎ個の処理部を構成する場合には、ＣＰＵ３１は、再構成時間のＮ倍（Ｎ×ＴＣ）がデータの処理時間（ＴＰ）より大きい場合には、第１モードを選択し、再構成時間のＮ倍（Ｎ×ＴＣ）がデータの処理時間（ＴＰ）より短い場合には、第２モードを選択する。
【００６３】
以上のように、本実施形態に係るデータ処理装置３０は、プログラマブル回路３６に複数の処理部を構成してデータ処理を実行させる場合に、データの処理時間に応じて第１モードまたは第２モードを選択する。これにより、本実施形態に係るデータ処理装置３０によれば、効率の良いタイミングで再構成をすることができ、再構成時間およびデータの処理時間を含めた総合処理時間を短くすることができる。
【００６４】
以上、本発明の実施形態を説明したが、実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能である。
【符号の説明】
【００６５】
１０  カメラシステム
２０  カメラ
３０  データ処理装置
３１  ＣＰＵ
３２  記憶装置
３３  ＲＡＭ
３４  画像データ取得部
３５  第１のＤＭＡ制御部
３６  プログラマブル回路
３７  第２のＤＭＡ制御部
４１−１  第１処理部
４１−２  第２処理部
４１−Ｎ  第Ｎ処理部
４２  接続部
【先行技術文献】
【特許文献】
【００６６】
【特許文献１】特許第３８３２５５７号公報
【図１】
0006435826.tif 000002
【図２】
0006435826.tif 000003
【図３】
0006435826.tif 000004
【図４】
0006435826.tif 000005
【図５】
0006435826.tif 000006
【図６】
0006435826.tif 000007
【図７】
0006435826.tif 000008
【図８】
0006435826.tif 000009
【図９】
0006435826.tif 000010
【図１０】
0006435826.tif 000011
【図１１】
0006435826.tif 000012