(57)【要約】【課題】回路構成が変更可能なプロセッサにおいて処理効率の高いコンフィグレーションを決定すること。【解決手段】本発明のデータ処理装置は、回路構成が変更可能なプロセッサと前記プロセッサの動作を制御する制御手段とを備え、前記制御手段は、各々、単独でプロセッサにて処理された場合における当該プロセッサの使用率を表す回路使用率とプロセッサの繰り返し動作の数を表すサイクル数とを有する複数の処理要素から構成された処理対象に対し、各々並列的に実行するために１つの盤面に割り当てるべき処理要素の個数を表す並列度を計算することによって、複数の盤面の設定と各盤面の動作サイクル数とで規定されるコンフィグレーションを決定する手段であって、前記複数の処理要素のうち、相対的に小さな回路使用率を有する処理要素が相対的に大きな並列度を持つように前記複数の処理要素に係る並列度を決定するコンフィグレーション決定手段を有する。【選択図】図１
2007279984.tif 000002
【特許請求の範囲】
【請求項１】
回路構成が変更可能なプロセッサと、
前記プロセッサの動作を制御する制御手段と、
を備えたデータ処理装置であって、
前記制御手段は、
各々、単独で前記プロセッサにて処理された場合における当該プロセッサの使用率を表す回路使用率と前記プロセッサの繰り返し動作の数を表すサイクル数とを有する複数の処理要素から構成された処理対象に対し、各々並列的に実行するために１つの盤面に割り当てるべき処理要素の個数を表す並列度を計算することによって、複数の盤面の設定と各盤面の動作サイクル数とで規定されるコンフィグレーションを決定するコンフィグレーション決定手段を有し、
前記コンフィグレーション決定手段は、前記複数の処理要素のうち、相対的に小さな回路使用率を有する処理要素が相対的に大きな並列度を持つように前記複数の処理要素に係る並列度を決定する
ことを特徴とするデータ処理装置。
【請求項２】
回路構成が変更可能なプロセッサと、
前記プロセッサの動作を制御する制御手段と、
を備えたデータ処理装置であって、
前記制御手段は、
各々、単独で前記プロセッサにて処理された場合における当該プロセッサの使用率を表す回路使用率と前記プロセッサの繰り返し動作の数を表すサイクル数とを有する複数の処理要素から構成された処理対象に対し、各々並列的に実行するために１つの盤面に割り当てるべき処理要素の個数を表す並列度を計算することによって、複数の盤面の設定と各盤面の動作サイクル数とで規定されるコンフィグレーションを決定するコンフィグレーション決定手段を有し、
前記コンフィグレーション決定手段は、前記複数の処理要素のうち、相対的に大きなサイクル数を有する処理要素が相対的に大きな並列度を持つように、前記複数の処理要素に係る並列度を決定する
ことを特徴とするデータ処理装置。
【請求項３】
前記コンフィグレーション決定手段により決定されたコンフィグレーションを処理対象と対応付けて格納する記憶部を更に備え、
前記制御手段は、処理対象を構成する複数の処理要素に係るサイクル数と前記記憶部に格納された処理対象に係るサイクル数とを各々比較し、サイクル数の近似度が最大のものに係る処理対象に対応付けられた１のコンフィグレーションを選択して実行する
ことを特徴とする請求項１または２に記載のデータ処理装置。
【請求項４】
回路構成が変更可能なプロセッサの動作を制御する制御手段のコンピュータに、
各々、単独で前記プロセッサにて処理された場合における当該プロセッサの使用率を表す回路使用率と前記プロセッサの繰り返し動作の数を表すサイクル数とを有する複数の処理要素から構成された処理対象に対し、各々並列的に実行するために１つの盤面に割り当てるべき処理要素の個数を表す並列度を計算することによって、複数の盤面の設定と各盤面の動作サイクル数とで規定されるコンフィグレーションを決定するプログラムであって、
前記複数の処理要素のうち、相対的に小さな回路使用率を有する処理要素が相対的に大きな並列度を持つように前記複数の処理要素に係る並列度を決定するステップ
を実行させるプログラム。
【請求項５】
回路構成が変更可能なプロセッサの動作を制御する制御手段のコンピュータに、
各々、単独で前記プロセッサにて処理された場合における当該プロセッサの使用率を表す回路使用率と前記プロセッサの繰り返し動作の数を表すサイクル数とを有する複数の処理要素から構成された処理対象に対し、各々並列的に実行するために１つの盤面に割り当てるべき処理要素の個数を表す並列度を計算することによって、複数の盤面の設定と各盤面の動作サイクル数とで規定されるコンフィグレーションを決定するプログラムであって、
前記複数の処理要素のうち、相対的に大きなサイクル数を有する処理要素が相対的に大きな並列度を持つように、前記複数の処理要素に係る並列度を決定するステップ
を実行させるプログラム。
【請求項６】
前記コンピュータに、
処理対象を構成する複数の処理要素に係るサイクル数と、コンフィグレーションを処理対象と対応付けて複数格納した記憶部に格納された処理対象に係るサイクル数とを比較し、サイクル数の近似度が最大のものに係る処理要素で構成される処理対象に対応付けられた１のコンフィグレーションを選択して実行するステップを更に実行させる
ことを特徴とする請求項４または５に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路構成が変更可能なプロセッサにデータ処理アルゴリズムを実装する技術に関する。
【背景技術】
【０００２】
近年、プロセッサ技術の分野において、いわゆるリコンフィギュラブル型のプロセッサが注目されている。リコンフィギュラブルプロセッサとは、典型的には、複数のＡＬＵ（Arithmetic Logic Unit）などの演算回路ユニットを接続するためのスイッチング素子を用いて二次元アレイ状に接続させたアレイ回路と、各演算回路ユニットおよびスイッチング素子を制御してアレイ回路全体として所望の演算処理を実現させるための制御回路とから構成される。（特許文献１乃至３を参照）。このように、リコンフィギュラブル型のプロセッサにおいては、演算回路の構成に自由度を持たせているので、その設定を適宜変更することで様々な機能を実現させることが可能となる。
【０００３】
リコンフィギュラブルプロセッサに画像処理などのデータ処理を実行させる場合、当該データ処理を行うために必要な演算回路ユニットの数が、搭載されている演算回路ユニットの数を超えてしまう場合がある。このように処理対象の量が多い場合、プロセッサは一度に処理を実行することはできないので、処理対象のデータを複数のサブモジュール（処理要素）に分割して処理する手法(時分割処理)が行われている（非特許文献１を参照）。
【０００４】
この処理について、図１１(a)および図１１(b)を用いて詳細に説明する。図１１(a)は、処理対象のデータに対し、サブモジュール「処理１」と「処理２」と「処理３」とを順次実行する必要があると仮定した場合を表している。そして、各々の処理は、それぞれ１０００回（サイクル）、２０００回、３０００回繰り返すことが必要であるとする。なお、ここでいう「処理」とは、例えば処理対象のデータが画像データ（画素値の集合）である場合、ベクトル量子化やＤＣＴ変換といった処理が該当する。また、同図中、回路使用率とあるのは、その処理を単独でプロセッサに実行させた場合に、使用される演算回路ユニットの数の割合を表すものである。すなわち、回路使用率５０％とは、その処理を単独でプロセッサに実行させると半分の演算回路ユニットは全く使用されない状態にあるということである。
【０００５】
回路使用率が低いということは、プロセッサ全体としての処理能力を最大限に利用していないということに他ならない。よって、回路使用率ができるだけ高くなるようにアレイ回路の構成を設定することが好ましいことはいうまでもない。しかし、アレイ回路には機能の自由度を持たせてある関係上、処理内容によっては回路使用率が低下してしまうのは避けられない。
このような状況の下、非特許文献１に記載の方法においては、図１１(a)に示した処理を実行するために、まず、図１１(b)の上方の図（「第１盤面」）において「第１盤面」に示したように、処理１を実行させるための第1回路群としての機能と、処理２を実行させるための第２回路群としての機能と、必要に応じて第１回路群と第２回路群間のインタフェース回路としての機能とが含まれるように、アレイ回路の構成を設定する（この回路設定のことを以下「盤面」という）。そして、この第1盤面で、処理１および処理２に必要な回数（この場合は１０００サイクル）、アレイ回路を動作させる。こうして、「処理１」と「処理２」とが完了する。続いて、この設定（すなわち盤面）を破棄し、「処理３」を実行させるための第３回路群として機能させるようにアレイ回路の構成を新たに設定する（すなわち盤面を新たに生成する）。そして、この第２盤面で処理３に必要な１０００サイクル分動作させる。以上により、全ての処理が完了することになる。つまり、非特許文献１に記載の方法においては、処理の順にその処理を実現する機能回路群をアレイ回路に実装していくのである。換言すれば、処理の順番に１つづつ盤面（および当該盤面のサイクル数）を決定してゆくのである。
【０００６】
以下、ある処理（または処理群）を行うための全体的なリコンフィギュラブルプロセッサの制御方法を「コンフィグレーション」と称する。つまり、図１１で示した例のコンフィグレーションは、「処理１を実行させるための第1回路群としての機能と、処理２を実行させるための第2回路群としての機能と、必要に応じて第１回路群と第２回路群間のインタフェース回路としての機能とが含まれるような第１盤面を生成して１０００サイクル動作させた後、「処理３」を実行させるための第３回路群として機能させるような第２の盤面を生成して１０００サイクル動作させる」ということになる。
【特許文献１】特開２００４−３３４４２９号公報
【特許文献２】特開２００５−２７７６７号公報
【特許文献３】特開２００５−４４３２９号公報
【非特許文献１】デザインウェーブマガジン  ２００４年８月号  CQ出版社
【発明の開示】
【発明が解決しようとする課題】
【０００７】
図１１(b)から明らかなように、第２盤面においては１０００サイクル間、回路使用率５０％であるので、半分の演算回路ユニットが使用されていないことになる。つまり、プロセッサの処理能力の半分しか活用されていない。また、第１盤面においては、１０００サイクル間、全ての演算回路ユニットを使用してはいるものの、その一部はそれぞれ異なる処理である処理１の出力と処理２の入力を結合する機能を実現するために使用されている。各処理要素を単独で実行させれば本来このようなインタフェース回路群は不要なものであるから、結果的に、プロセッサの一部の資源が無駄となっているといえる。このように、従来のコンフィグレーション決定方法では、プロセッサの処理能力を最大限生かすような高い処理効率を実現するコンフィグレーションを決定することができなかった。
【０００８】
本発明は上述した背景に鑑みてなされたものであり、プロセッサに各々所定の回路使用率および必要なサイクル数を有する処理要素を複数実行させるにあたり、処理全体としての回路使用率（平均回路使用率）の向上または処理全体で必要なサイクル数（総サイクル数）の低減（換言すれば処理時間の短縮）を図ることのできるコンフィグレーションを決定することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明は、回路構成が変更可能なプロセッサと前記プロセッサの動作を制御する制御手段とを備えたデータ処理装置であって、前記制御手段は、各々、単独で前記プロセッサにて処理された場合における当該プロセッサの使用率を表す回路使用率と前記プロセッサの繰り返し動作の数を表すサイクル数とを有する複数の処理要素から構成された処理対象に対し、各々並列的に実行するために１つの盤面に割り当てるべき処理要素の個数を表す並列度を計算することによって、複数の盤面の設定と各盤面の動作サイクル数とで規定されるコンフィグレーションを決定するコンフィグレーション決定手段を有し、前記コンフィグレーション決定手段は、前記複数の処理要素のうち、相対的に小さな回路使用率を有する処理要素が相対的に大きな並列度を持つように前記複数の処理要素に係る並列度を決定することを特徴とするデータ処理装置を提供する。
本発明によれば、処理対象の回路使用率やサイクル数といった特性に応じて、処理全体に対するプロセッサの平均回路使用率また総サイクル数の点において最適なコンフィグレーションを決定することができる。
【００１０】
好ましい態様において、本発明は、回路構成が変更可能なプロセッサと前記プロセッサの動作を制御する制御手段とを備えたデータ処理装置であって、前記制御手段は、各々、単独で前記プロセッサにて処理された場合における当該プロセッサの使用率を表す回路使用率と前記プロセッサの繰り返し動作の数を表すサイクル数とを有する複数の処理要素から構成された処理対象に対し、各々並列的に実行するために１つの盤面に割り当てるべき処理要素の個数を表す並列度を計算することによって、複数の盤面の設定と各盤面の動作サイクル数とで規定されるコンフィグレーションを決定するコンフィグレーション決定手段を有し、前記コンフィグレーション決定手段は、前記複数の処理要素のうち、相対的に大きなサイクル数を有する処理要素が相対的に大きな並列度を持つように、前記複数の処理要素に係る並列度を決定することを特徴とするデータ処理装置を提供する。
【００１１】
好ましい態様において、前記データ処理装置は、前記コンフィグレーション決定手段により決定されたコンフィグレーションを処理対象と対応付けて格納する記憶部を更に備え、前記制御手段は、処理対象を構成する複数の処理要素に係るサイクル数と前記記憶部に格納された処理対象に係るサイクル数とを各々比較し、サイクル数の近似度が最大のものに係る処理対象に対応付けられた１のコンフィグレーションを選択して実行する。
【００１２】
本発明は、他の観点において、回路構成が変更可能なプロセッサの動作を制御する制御手段のコンピュータに、各々、単独で前記プロセッサにて処理された場合における当該プロセッサの使用率を表す回路使用率と前記プロセッサの繰り返し動作の数を表すサイクル数とを有する複数の処理要素から構成された処理対象に対し、各々並列的に実行するために１つの盤面に割り当てるべき処理要素の個数を表す並列度を計算することによって、複数の盤面の設定と各盤面の動作サイクル数とで規定されるコンフィグレーションを決定するプログラムであって、前記複数の処理要素のうち、相対的に小さな回路使用率を有する処理要素が相対的に大きな並列度を持つように前記複数の処理要素に係る並列度を決定するステップを実行させるプログラムを提供する。
【００１３】
好ましい態様において、本発明は、回路構成が変更可能なプロセッサの動作を制御する制御手段のコンピュータに、各々、単独で前記プロセッサにて処理された場合における当該プロセッサの使用率を表す回路使用率と前記プロセッサの繰り返し動作の数を表すサイクル数とを有する複数の処理要素から構成された処理対象に対し、各々並列的に実行するために１つの盤面に割り当てるべき処理要素の個数を表す並列度を計算することによって、複数の盤面の設定と各盤面の動作サイクル数とで規定されるコンフィグレーションを決定するプログラムであって、前記複数の処理要素のうち、相対的に大きなサイクル数を有する処理要素が相対的に大きな並列度を持つように、前記複数の処理要素に係る並列度を決定するステップを実行させるプログラムを提供する。
【００１４】
好ましい態様において、前記プログラムは、前記コンピュータに、処理対象を構成する複数の処理要素に係るサイクル数と、コンフィグレーションを処理対象と対応付けて複数格納した記憶部に格納された処理対象に係るサイクル数とを比較し、サイクル数の近似度が最大のものに係る処理要素で構成される処理対象に対応付けられた１つのコンフィグレーションを選択して実行するステップを更に実行させる。
【発明を実施するための最良の形態】
【００１５】
図１は、本発明の一実施例に係るデータ処理装置の構成を模式的に表した図である。
図１に示すように、データ処理装置１は、演算処理部１０、入力部１１、出力部１２および記憶部１３から構成される。演算処理部１０は、制御部１０１、アレイ回路１０２およびメモリ１０３とから構成され、入力部１１から入力されたデータに各種演算処理を行う。入力部１１は、例えば入力インタフェースや入力デバイス等（図示せず）を備え、演算（加工）処理の対象となるデータを取得して演算処理部１０に供給する手段である。出力部１２は、演算処理部１０にて処理されたデータを外部の装置に提供するインタフェースや、処理結果を表示するディスプレイ等である。記憶部１３は、ＥＥＰＲＯＭ、ハードディスク等の記憶装置であって、演算処理部１０にてコンフィグレーションを決定するために必要な情報を格納することができる。格納された情報は必要に応じて読み出され、演算処理部１０へ供給される。
【００１６】
制御部１０１は、アレイ回路１０２の動作を制御するための制御用プロセッサを有し、機能的には、パラメータ取得部１０１１、コンフィグレーション決定部１０１２およびアレイ回路制御部１０１３とからなる。パラメータ取得部１０１１は、入力部１１から入力された演算（加工）処理の対象となるデータ（例えば、一画面分の画像の画素値データ）に基づき、（ｉ）そのデータに対して行うべき各種処理（例えば離散コサイン変換など：以下、処理内容という）、(ｉｉ)当該処理内容に関するパラメータ（当該処理をアレイ回路１０２に担わせた場合に使用される各演算ユニット数の全演算ユニット数に対する割合（以下、回路使用率という）および各処理に要する回数（換言すれば処理に要する時間）（以下、サイクル数という）を決定する。コンフィグレーション決定部１０１２は、処理内容と各処理に係る回路使用率およびサイクル数とに基づいて、コンフィグレーションを決定する。なお、処理内容、回路使用率、サイクル数は、パラメータ取得部１０１１にて算出されたものであってもよいし、入力部を介してユーザ等によって与えられたものであってもよいし、あるいは記憶部１３に予め格納されていてもよい。アレイ回路制御部１０１３は、コンフィグレーション決定部１０１２にて決定したコンフィグレーションに基づき、各演算回路ユニット１０２１を制御するための信号を生成してアレイ回路１０２に供給する。この信号は、使用する演算回路ユニット１０２１、各演算回路ユニット１０２１に与えるべき機能（加算器として機能させるのか乗算器として機能させるのかなど）、および演算回路ユニット１０２１間の接続関係（各演算回路ユニット１０２１からの出力を次にどの演算回路ユニット１０２１に入力すべきなのか）といった情報を含むものである。すなわち、この信号が制御部１０１からアレイ回路１０２へ供給されることによって、アレイ回路１０２において実現すべき機能（動作）が規定される。
【００１７】
アレイ回路１０２は、複数の演算回路ユニット１０２１と各演算回路１０２１間を接続する回路（図示せず）とから構成された再構成可能な回路であって、アレイ回路制御部１０１３からの制御信号に従って、各演算回路ユニット１０２１における演算内容および各演算回路ユニット１０２１間の接続関係を逐次決定・変更することが可能な演算処理回路である。メモリ１０３は、ＲＡＭ等などの記憶素子であって、アレイ回路制御部１０１３の制御の下、各演算回路ユニット１０２１からの出力（演算結果）を格納する。メモリ１０３に格納された演算結果は、必要に応じて制御部１０１へ出力される。
【００１８】
図２はデータ処理装置１の動作の一実施例を示す図である。以下、図２を用いて、処理内容、回路使用率、およびサイクル数（以下、これらを処理条件という）に基づいてコンフィグレーションを決定する態様を例示する。まず図３ないし図５を図２とともに参照し、コンフィグレーションの決定に際して必要となる情報を取得するまで（図２のステップＳ１０ないしＳ１４）を説明する。
【００１９】
まず、処理対象のデータが演算処理部１０に入力されると（ステップＳ１０）、パラメータ取得部１０１１は、当該データに基づき実行すべき処理内容を特定する（ステップＳ１２）。一例としては、データ（データの種類や属性など）と処理内容とを対応付けて記憶したテーブルＴ１を予め記憶部１３に格納してき、パラメータ取得部１０１１は、記憶部１３にアクセスしテーブルＴ１を参照して処理内容を特定する。図３はテーブルＴ１に記憶される内容の一例を説明するための図である。ここで、データ１、データ２、データ３のそれぞれについて、対応する実行すべき処理内容（処理１、処理２、処理３、・・・）が対応付けられている。同図において、例えば、データ２の場合は処理１と処理２と処理３とを行うべきことを示している。
ここで、データ１は、例えば静止画の画素データ、データ２は動画における１フレーム分の画素データなどである。また、処理１は、例えばベクトル量子化、処理２は例えばＤＣＴ変換、処理３は例えば動き補償処理である。なお、入力データがデータ１なのかデータ２なのかを判定するには、例えばデータのフォーマットやデータのサイズその他のデータ属性に基づいて行うことができる。
また、パラメータ取得部１０１１は、処理内容に加え、処理を実行する順序を決定してもよい。例えば、テーブルＴ１に関する情報を予め各データに対応付けてテーブルに記憶しておけばよい。ただし、処理順を決定することは本発明の本質とは直接的に関係がないため、以下、処理順（換言すればどの盤面を先に実行するか）については説明の都合上順序を仮定した場合を除き任意であるとする。
【００２０】
次に、パラメータ取得部１０１１は、決定した処理内容の各々係る回路使用率ｒおよびサイクル数ｎを決定する。（ステップＳ１４）。一例としては、各処理内容とその回路使用率ｒおよびサイクル数ｎとを対応付けて記憶したデーブルＴ２を記憶部１３に格納しておき、パラメータ取得部１０１１が、テーブルＴ２を参照することで回路使用率およびサイクル数の決定を行うことができる。図４には、テーブルＴ２に記憶される内容の一例が示されている。
【００２１】
処理内容、回路使用率ｒ、サイクル数ｎを決定する方法は上述した態様に限られない。例えば、テーブルＴ１およびＴ２に替え、図５に示すテーブルＴ３を用い、ステップＳ１２およびＳ１４の処理をまとめて行ってもよい。また、各処理内容、回路使用率ｒ、サイクル数ｎの一部または全ては予め入力部１１を介して与えられていてもよい。
【００２２】
次に、コンフィグレーション決定部１０１２にて、処理内容、回路使用率ｒおよびサイクル数ｎに基づきコンフィグレーション決定する方法について説明する（図２のステップＳ１６）。
＜１．コンフィグレーション設定例１＞
図６(a)は、実行すべき処理内容が「処理１」、「処理２」および「処理３」であって、いずれの処理についても回路使用率ｒが５０％、サイクル数が１０００である場合を示している。また、便宜上、処理順は処理1、処理２、処理３の順で行うことが決定されているものとする。すなわち、最も単純なコンフィグレーションとしては、「まず「処理１」を実行させるようにアレイ回路１０２を設定し（第1の盤面）、これを１０００サイクル繰り返し、次に「処理２」を実行させるようにアレイ回路１０２を設定して（第２の盤面）、これを１０００サイクル繰り返し、最後に「処理３」を実行させるようにアレイ回路１０２を設定して（第３の盤面）、これを１０００サイクル繰り返す」、というものが考えられる。しかしながら、このコンフィグレーションに従った動作では、処理完了まで３０００サイクルを要し、この間、回路使用率は５０％となることは明らかである。すなわち、アレイ回路の半分は終始未使用である。
【００２３】
そこで、本発明の１つの態様においては、各盤面における回路使用率が最大値をとるように、同一の処理を複数個、並列的に動作させる。具体的には、処理ｉに係る回路使用率をｒｉ（ｒｉ≦１）、サイクル数をｔｉとすると、１つの盤面において並列動作をさせる同一の処理の数を表す並列度ｎｉをｎｉ＝[１／ｒｉ]と決定する。ここで、[ｘ]は小数部分を切捨てることを意味する。図６(a)に示す例ではｒ1＝ｒ2＝ｒ3＝0.5であるから、ｎ1=ｎ2=ｎ3=２と並列度が求まる。並列度ｎが２であるから、この盤面のサイクル数はｔ／ｎ＝５００と定まる。以上により、本態様にかかるコンフィグレーションは、「まず「処理１」を２つ並列して実行させるようにアレイ回路１０２を設定し（盤面１）、これを５００サイクル繰り返し、次に「処理２」を２つ並列して実行させるようにアレイ回路１０２を設定して（盤面２）これを５００サイクル繰り返し、最後に「処理３」を２つ並列して実行させるようにアレイ回路１０２を設定して（盤面３）これを５００サイクル繰り返す」というものとなる。このコンフィグレーションを模式的に表したものが図６(b)である。
【００２４】
このコンフィグレーションによれば、演算処理開始から終了までの回路利用率は常に１００％（すなわち平均回路使用率が１００％）であり、要する総サイクル数は１５００となる。このように本態様によれば、回路使用率に基づき並列度を決定して、同一の処理を並列して動作させるように各盤面を設定する。これにより、回路使用率の向上および処理に要する総サイクル数の低減（すなわち処理時間の短縮）が図られる。
【００２５】
＜２．コンフィグレーション設定例２＞
図７(a)は、他の処理条件の例を示したものである。すなわち、この例においては、図6(a)の場合と異なり、各処理ごとに回路使用率が異なっていることが判る。このような場合、本発明の1つの態様においては、上述した方法と同様、並列度ｎｉをｎｉ＝[１／ｒｉ]によって決定する。すると、ｎ1＝１、ｎ2＝３、ｎ3＝４と決定される。そして、各処理に必要なサイクル数を決定する。各処理（すなわち盤面）に係るサイクル数は、それぞれ１０００、３３３、２５０となる。すなわち、この場合におけるコンフィグレーションは、「まず「処理１」を２つ並列して実行させるようにアレイ回路１０２を設定して（盤面４）これを５００サイクル繰り返し、次に「処理２」を３つ並列して実行させるようにアレイ回路１０２を設定して（盤面５）これを３３３サイクル繰り返し、最後に「処理３」を４つ並列して実行させるようにアレイ回路１０２を設定して（盤面６）これを２５０サイクル繰り返す」というものとなる。この場合における平均回路使用率は約７９％、総サイクル数は１５８３となる。
このように、本態様においては、処理要素ごとに回路使用率にばらつきがある場合であっても、１つの盤面において、回路使用率が低い処理については可能な限り高い並列度で同一の処理を並列的に実行するようにコンフィグレーションを設定する。これにより、平均回路使用率が向上し、処理に要する総サイクル数は少なくなる。
【００２６】
＜３．コンフィグレーション設定例３＞
図８は、処理内容、回路使用率、サイクル数の更に他の例を示したものである。すなわち、この例では、図6(a)の場合と異なり、処理内容によって実行すべきサイクル数に差異がある。このような場合、本発明の1つの態様においては、回路使用率ｒに加えてサイクル数ｔも考慮することによって各処理の並列度を決定する。具体的には、まず、最大のサイクル数を有する処理（この場合では「処理３」）に着目し、この処理３に係る並列度が最も大きくなるよう設定する。この場合、処理３のみを並列実行させることを考えると、ｎ3＝５、ｔ3＝２５０となる。すなわち、処理３については、回路使用率１００％、総サイクル数５０００／５＝１０００となる（盤面８）。続いて、次に大きなサイクル数をもつ処理に注目する。なお、サイクル数が等しい処理が2つ以上ある場合、それらを同等に取り扱う。この例では、図８(a)に示すように、次に大きなサイクル数を持つ処理は処理１と処理２であるから、これらの並列度が等しくなるように設定する。すなわち、２＊｛ｎ1（＝ｎ2）｝＝[｛１／０．２｝]＝２と決定される（盤面７）。
【００２７】
すなわち、この態様におけるコンフィグレーションは、「まず２つの「処理１」と２つの「処理２」を並列して実行させるようにアレイ回路１０２を設定して（盤面７）、これを５００サイクル繰り返し、次に「処理３」を５つ並列して実行させるようにアレイ回路１０２を設定して（盤面８）、これを１０００サイクル繰り返す」というものとなる。
なお、本態様のように、異なる処理（例えば処理１と処理２）を１つの盤面に実装する場合において、例えば処理１の出力を処理２に入力させる必要がある場合、例えば、処理２の開始タイミングを処理１の開始タイミングに対し、処理１の演算に要する時間に対応するクロック数だけ遅らせればよい。
【００２８】
＜４．コンフィグレーション設定例４＞
以上は各処理に係る回路使用率またはサイクル数のいずれかにばらつきがある場合のコンフィグレーション決定方法であったが、回路使用率およびサイクル数の両方にばらつきがある場合のコンフィグレーション設定についても、上述した本発明の方針を適用することができる。すなわち、コンフィグレーション設定例３で説明したように、サイクル数の多いものから順に並列度を決定していってもよいし、コンフィグレーション設定例２で説明したように、回路使用率が低いものから順に並列度を決定してもよい。すなわち、全体としての回路使用率の向上と総サイクル数の短縮のかのどちらを優先させたいかで、コンフィグレーション設定の方向性は大きく２つに分けられる。
【００２９】
あるいは、回路使用率の向上と総サイクル数をバランスよく向上させたい場合も考えられる。このような場合、本発明の一態様によれば、例えば、考えられる複数のコンフィグレーション（すなわち盤面に「配置」する処理の組み合わせ）のうちの1つを所定の方法で選択し、そのコンフィグレーションを所定の方法で評価する。そして別のコンフィグレーションを（例えば、一部のパラメータ（例えば1つの盤面のみ）を所定の方針に従って変更したもの）コンフィグレーションを求め、同じ方法で評価する。こうして、各コンフィグレーションに対して評価を行い、最も評価が高いコンフィグレーションを当該処理に対して最適なコンフィグレーションであると決定する。この評価方法としては、例えば、決定したコンフィグレーションにおいて１つの盤面に係る回路使用率をＲ、その盤面のサイクル数をＴとして、計Ｍ個の盤面を設定するとすると、次式を用いてコンフィグレーションの指標値Coptを決定することができる。
【００３０】
【数１】
2007279984.tif 000003
【００３１】
上式中、第１項は、回路使用率の指標を表し、第2項は総サイクル数の短縮率の指標を表す。ｗ1およびｗ2はそれぞれ回路使用率および総サイクル数の短縮率の重み係数である。各設定盤面における処理内容ｉとその並列度ｎiを所定の方法で算出し、算出したコンフィグレーション指標Coptが最大値（若しくは局所最大値）をとったときが目的のコンフィグレーションであると決定する。係数ｗ1およびｗ2を適宜設定することで、所望の回路使用率およびサイクル数を有するコンフィグレーションを決定することができる。
【００３２】
＜５．コンフィグレーション設定例５＞
上述した処理条件の例においては、処理対象に係る処理内容、および各処理に係る回路使用率や必要なサイクル数は、時間的に変化しない（すなわち処理開始から全処理の完了まで一定である）ことを仮定した。しかし、現実には、処理内容やその回路使用率は変化しないが、サイクル数については時間的に変化する場合がある。例えば、リアルタイムで動画の編集処理を行う場合、一フレームの画像（静止画像）ごとに処理を行い、これを動画を構成する全てのフレームについて繰り返すという作業となる。このような場合において、場面ごとやフレームごとに画像の特定が変化し、例えばある必要な「動き補償処理」が処理すべきデータ量が時間に応じて変化する結果、必要なサイクル数が処理途中で変化することが考えられる。
【００３３】
処理中にサイクル数が変化する例を図９(a)および図9(b)の上方に示す。上述した実施例に基づいて算出した。各図に対応するコンフィグレーションの一例をその下方に示してある。図９(a)および図９(b)に示すように、処理の途中で処理３のサイクル数が５０００から７０００に変化している。このように処理の途中で処理の特性（具体的にはサイクル数等のパラメータ）が変化する場合、変化前のパラメータに対して最適化されたコンフィグレーションをそのまま使用し続けていては、処理全体としては平均回路使用率や総実行サイクル数はもはや最適化されていないことになる。
【００３４】
そこで、本発明の１つの態様においては、処理の途中で処理内容や当該処理内容のパラメータに変更があった場合に、そのパラメータに好適なコンフィグレーションを設定し直す。一例として、複数のフレームから構成される動画データを処理する場合について図１０を参照して説明する。具体的には、データ処理装置１は、所定数（例えば５）フレーム分の画像データに対し、ステップＳ１０ないしＳ１８において図２を用いて説明した方法と同様の方法でコンフィグレーションを設定して処理を行う。次に、ステップＳ２０において、データ処理装置１は、所定の方法で、次に処理すべき５フレーム分の処理に係るパラメータ（サイクル数など）を変更すべきか否かを判定する。一例としては、直前の５フレームのデータ内容からとその前の５フレーム分のデータとを比較し、これらのデータの特性が所定誤差範囲内で一致すればパラメータを変更する必要がないと判断し、一致しない場合はパラメータを変更する必要があると判断する。
【００３５】
データ処理装置１は、変更不要と判定した場合（ステップＳ２０；Ｎ）、同じパラメータを用いて次の所定数フレーム分のデータを処理する。変更が必要と判定した場合（ステップＳ２０；Ｙ）、例えば直前の５フレームに係る平均の画像特性に基づきパラメータを設定し直す（ステップＳ１４）。この新たなパラメータを用いて新たな盤面を設定し、このコンフィグレーションに従って次の５フレーム分のデータを処理する。このようにして、次々と入力される加工対象のデータの特性などに応じて、逐次、最適な盤面を決定し直す。これを全フレームについて処理が完了すると1つの動画の処理が終了することになる（ステップＳ２２；Ｙ）。この結果、動画処理の間、常に最適なコンフィグレーションが維持され、描画内容等に依存した処理効率の一時的な低下を防ぐことができる。
【００３６】
あるいは、直前の処理済みデータ等から次の処理対象データに最適なコンフィグレーションを逐一決定するのではなく、予め記憶部１３に図９(a)および図９(b)の上方に示したような処理に係る処理条件と各処理条件に対応するコンフィグレーション（または盤面）の設定（図９(a)および図９(b)の下方に示したもの）とを対応付けて格納しておき、次の処理対象がどの処理条件に最も近いかを所定の方法で判定し、その処理条件に対応したコンフィグレーションを、最適なコンフィグレーションとして選択してもよい。例えば、これから処理を行うとするデータの処理内容が、「処理１」、「処理２」、「処理３」であって、全ての回路使用率ｒは２０％であり、サイクル数ｔはそれぞれ「４０００」、「１５００」、「１５００」であったとする。この処理条件では、図９(a)および図９(b)の上方に示した処理条件のどちらにも一致しない。そこで、この態様においては、どちらかの条件に近いかを判定する。具体的には、サイクル数の組｛「４０００」、「１５００」、「１５００」｝と図９(a)に係る｛「５０００」、「１０００」、「１０００」｝とを比較しその近似度を所定のアルゴリズムを用いて算出する。次に、｛「４０００」、「１５００」、「１５００」｝と図９(b)に係る｛「１０００」、「１０００」、「５０００」｝とを比較して近似度を算出する。そして、最大の近似度を有するものに対応するコンフィグレーション（この場合には図９(a)の設定：盤面９を５００サイクルと盤面１０を１０００サイクル）を選択する。
【００３７】
このように、予めコンフィグレーションを複数用意しておけば、コンフィグレーションを決定する時間を短縮することができる。一例としては、動画圧縮符号化処理において、動きの速い映像を処理するために毎秒のフレーム数を重視した処理に適したコンフィグレーションと、画面の詳細を保持するために解像度優先の処理が必要な場合に適したコンフィグレーションを予め格納しておき、処理対象の画像フレームデータに応じてどのコンフィグレーションを適用するかを決定することができる。
【図面の簡単な説明】
【００３８】
【図１】本発明の一実施態様に係るデータ処理装置１の機能構成を示す図である。
【図２】データ処理装置１の動作の一実施例を示すフロー図である。
【図３】テーブルＴ１に記憶される内容の一例を説明するための図である。
【図４】テーブルＴ２に記憶される内容の一例を説明するための図である。
【図５】テーブルＴ３に記憶される内容の一例を説明するための図である。
【図６（ａ）】処理条件の一例を表す図である。
【図６（ｂ）】コンフィグレーションの一例を模式的に示す図である。
【図７（ａ）】処理条件の一例を表す図である。
【図７（ｂ）】コンフィグレーションの一例を模式的に示す図である。
【図８（ａ）】処理条件の一例を表す図である。
【図８（ｂ）】コンフィグレーションの一例を模式的に示す図である。
【図９（ａ）】処理条件および対応するコンフィグレーションの一例を示す図である。
【図９（ｂ）】処理条件および対応するコンフィグレーションの一例を示す図である。
【図１０】データ処理装置１の動作の他の実施例を示すフロー図である。
【図１１（ａ）】処理条件の一例を示す図である。
【図１１（ｂ）】従来技術におけるコンフィグレーションの一例を模式的に示す図である。
【符号の説明】
【００３９】
１・・・データ処理装置、１０・・・演算処理部、１１・・・入力部、１２・・・出力部、１３・・・記憶部、１０１・・・制御部、１０２・・・アレイ回路、１０３・・・メモリ、１０１１・・・パラメータ取得部、１０１２・・・コンフィグレーション決定部、１０１３・・・アレイ回路制御部、１０２１・・・演算回路ユニット。
【図１】
2007279984.tif 000004
【図２】
2007279984.tif 000005
【図３】
2007279984.tif 000006
【図４】
2007279984.tif 000007
【図５】
2007279984.tif 000008
【図６（ａ）】
2007279984.tif 000009
【図６（ｂ）】
2007279984.tif 000010
【図７（ａ）】
2007279984.tif 000011
【図７（ｂ）】
2007279984.tif 000012
【図８（ａ）】
2007279984.tif 000013
【図８（ｂ）】
2007279984.tif 000014
【図９（ａ）】
2007279984.tif 000015
【図９（ｂ）】
2007279984.tif 000016
【図１０】
2007279984.tif 000017
【図１１（ａ）】
2007279984.tif 000018
【図１１（ｂ）】
2007279984.tif 000019