(57)【要約】【課題】複数の処理エレメントがシリーズに接続されたパイプライン構成において、各処理エレメントが所望の処理単位の処理を実行可能とする。【解決手段】複数の処理エレメント（１００〜１０３）がシリーズに接続された構成を有するデータ処理装置において、各処理エレメントは、処理手順データを記憶するプログラムメモリ４０と、外部よりの入力データ或いは処理結果データを記憶するレジスタエレメント１０〜１Ｎと、レジスタエレメント１０〜１Ｎに記憶されたデータについて指定された演算を行い、処理結果データをレジスタエレメント１０〜１Ｎに提供する演算部２０と、プログラムメモリ４０に記憶されたプログラムに従って、各レジスタメモリに記憶するデータの選択と演算部２０による演算の実行を制御するシーケンサ３０を有する。【選択図】　図２
2004054761.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理エレメント（１００−１０３）がシリーズに接続された構成を有するデータ処理装置であって、
前記複数の処理エレメントの各々が、
処理手順データを記憶する第１記憶手段（４０）と、
外部よりの入力データ或いは処理結果データを記憶する第２記憶手段（１０−１Ｎ）と、
前記第２記憶手段に記憶されたデータについて指定された演算を行い、前記第２記憶手段に処理結果データを提供する演算手段（２０）と、
前記第１記憶手段に記憶された処理手順データに従って、前記第２記憶手段に記憶するデータの選択と前記演算手段による演算の実行を制御する処理手段（３０）とを備えることを特徴とするデータ処理装置。
【請求項２】
当該データ処理装置に対して、供給信号（ｔａｓｋ＿ｐｉｐｅ）に同期してデータを供給するデータ供給手段を更に備え、
前記処理手段は、前記供給信号に同期して前記第１記憶手段に記憶された処理手順データの処理を実行することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記第１記憶手段に記憶される処理手順データは、前記供給信号の最短の間隔内でその処理手順が完了するように、一連の処理を分割して得られた部分処理に対応することを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
前記第２記憶手段は、複数の記憶エレメントを含み、
前記処理手段は、
前記複数の記憶エレメントのいずれに記憶されているデータを前記演算手段に提供するかを選択する第１選択手段（６０，６１）と、
前記複数の記憶エレメントのいずれによって、前記演算手段で得られた処理結果データを記憶させるかを選択する第２選択手段（５０）とを備えることを特徴とする請求項１に記載のデータ処理装置。
【請求項５】
複数の処理エレメントがシリーズに接続された構成におけるデータ処理方法であって、
前記複数の処理エレメントの各々は、処理手順データを記憶する第１記憶手段と、外部よりの入力データ或いは処理結果データを記憶する第２記憶手段とを有し、
前記第２記憶手段に記憶されたデータについて指定された演算を行い、前記第２記憶手段に対して処理結果データを提供する演算工程と、
前記第１記憶手段に記憶された処理手順データに従って、前記第２記憶手段に記憶するデータの選択と前記演算工程による演算の実行を制御する処理工程とを備えることを特徴とするデータ処理方法。
【請求項６】
前記処理工程は、外部からのデータ供給の同期信号に同期して前記第１記憶手段に記憶された処理手順データの処理を実行することを特徴とする請求項５に記載のデータ処理方法。
【請求項７】
前記第１記憶手段に記憶される処理手順データは、前記同期信号の最短の間隔内でその処理手順が完了するように、一連の処理を分割して得られた部分処理に対応することを特徴とする請求項６に記載のデータ処理方法。
【請求項８】
前記第２記憶手段は、複数の記憶エレメントを含み、
前記処理工程は、
前記複数の記憶エレメントのいずれに記憶されているデータを前記演算工程に提供するかを選択する第１選択工程と、
前記複数の記憶エレメントのいずれによって、前記演算工程で得られた処理結果データを記憶させるかを選択する第２選択工程とを備えることを特徴とする請求項５に記載のデータ処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ処理装置及び方法に関し、特に画像データや信号データ等をプログラムによって処理するのに好適なものである。
【０００２】
【従来の技術】
画像データや信号データの処理を所望の処理速度、所望のコストで実現するために、処理全体を複数の処理に分割して実行することが行われている。このような場合、一般にはハードワイアード回路やプログラマブル処理回路等が用いられる。
【０００３】
ハードワイアード回路では、分割された処理の各々に組み合わせ論理回路を用いて専用の処理手段を構成し、各専用の処理手段をフリップフロップなどの記憶手段を介して結合することで、所望の処理全体をパイプライン方式で実現する。また、プログラマブル処理回路では、汎用的な演算・処理手段と、所望の処理手続きを記憶した記憶手段を用い、該記憶手段から演算・処理手段へ処理手続きを供給して複数の演算・処理の中からひとつの演算・処理を選択的に実行可能とする。また、演算・処理手段で生成される演算・処理結果を記憶するための記憶手段を配する。こうして、所望の処理を実現するための処理手続きをクロック信号などの基準信号に従って時系列で処理・演算手段に供給することによって所望の処理全体が実現される。
【０００４】
また、プログラマブル処理回路では、記憶手段によって複数の画像データや信号データを記憶可能とし、汎用的な演算・処理手段を複数有して、記憶手段から、複数の画像・信号データを同時に読み出して、複数の演算・処理手段の各々に供給することで、複数の演算を同時に実行することが可能になっているものもある。
【０００５】
プログラマブル処理回路においては、ハードワイアード回路に比べて汎用的な演算・処理を実現するために、演算・処理手段の回路規模が増加する傾向がある。また、記憶手段と演算・処理手段間の接合部分にマルチプレクサ・デマルチプレクサなどが必要になり、これも回路規模の増加の一因となる。
【０００６】
更に、プログラマブル処理回路においては一般的に、ハードワイアード回路と同等の処理を実現するためには、より高い周波数のクロックで動作する回路を構築する必要がある。これは、（１）同時実行できる演算・処理数が小さいためにハードワイアード回路に比べて高いクロック周波数で動作させる必要がある、（２）汎用的に使用可能とするため分割された処理はハードワイアード回路に比べて粒度が小さなものとなり、処理回数が増加するため、高いクロック周波数で動作させる必要がある、等の要因によるものである。
【０００７】
これを緩和するための技術として、並列化やパイプライン化等の高速化手法が知られている。並列化においては、汎用の演算手段を複数配して、演算処理を同時に複数実行することで動作クロック周波数を低下させることができる。また、パイプライン化は、分割された複数の処理各々を更に複数の工程に分割して、複数のタイムサイクルで実行するようにし、時系列に前後する複数の異なる工程の処理が同時に実行されるようにして、タイムサイクルあたりの処理量の増加を図ったものである。
【０００８】
【発明が解決しようとする課題】
しかしながら、プログラマブル処理回路の並列化においては、記憶手段であるレジスタファイルのマルチポート化など、動作可能なクロック周波数の低下、回路規模の増大化などの課題が顕在化する。また、より多くの演算手段を複数配して並列度をあげようとしても、画像・信号処理のようなデータ依存関係が密な処理においては、データ依存関係から同時に実行できる処理が制限されてしまい、実際の並列度は向上しない。
【０００９】
また、プログラマブル処理回路のパイプライン化においては、処理に起因するデータ依存関係の他に、時系列で前後する命令が同時に実行されることに伴う新たなデータ依存関係が発生する。パイプラインでは、これに対処するため、タイムサイクルあたりの処理量が抑制されてしまう。あるいはその対処のためのハードウェアの付加を伴ない、これが動作クロック周波数の低下、ハードウェア規模の増大を招く。
【００１０】
また、一般的な画像・信号データ処理を各々記憶手段・演算手段を有する処理手段を複数用いて並列実行で実現しようとすると、処理を分割する際、分割に伴なって発生する処理手段間のデータ授受が処理によって異なるため、充分なデータ転送量・転送速度を確保するのが困難となるなどの課題がある。
【００１１】
本発明は、上記課題に鑑みてなされたものであり、複数の処理エレメントがシリーズに接続されたパイプライン構成において、各処理エレメントが所望の処理単位の処理を実行可能とすることを目的とする。
【００１２】
【課題を解決するための手段】
上記の目的を達成するための本発明によるデータ処理装置は以下の構成を備える。すなわち、
複数の処理エレメントがシリーズに接続された構成を有するデータ処理装置であって、
前記複数の処理エレメントの各々が、
処理手順データを記憶する第１記憶手段と、
外部よりの入力データ或いは処理結果データを記憶する第２記憶手段と、
前記第２記憶手段に記憶されたデータについて指定された演算を行い、前記第２記憶手段に処理結果データを提供する演算手段と、
前記第１記憶手段に記憶された処理手順データに従って、前記第２記憶手段に記憶するデータの選択と前記演算手段による演算の実行を制御する処理手段とを備える。
【００１３】
また、上記の目的を達成するための本発明によるデータ処理方法は、
複数の処理エレメントがシリーズに接続された構成におけるデータ処理方法であって、
前記複数の処理エレメントの各々は、処理手順データを記憶する第１記憶手段と、外部よりの入力データ或いは処理結果データを記憶する第２記憶手段とを有し、
前記第２記憶手段に記憶されたデータについて指定された演算を行い、前記第２記憶手段に対して処理結果データを提供する演算工程と、
前記第１記憶手段に記憶された処理手順データに従って、前記第２記憶手段に記憶するデータの選択と前記演算工程による演算の実行を制御する処理工程とを備える。
【００１４】
【発明の実施の形態】
以下、添付の図面を用いて本発明の好適な実施形態を説明する。
【００１５】
図１は実施形態によるデータ処理装置の構成を説明するブロック図である。図１において、Ｄｉｎ０、Ｄｉｎ１、Ｄｉｎ２、…ＤｉｎＮは不図示のデータ供給手段より供給されるデータの入力であり、複数の信号・画像データが並列に入力されることが可能なようになっている。また、Ｄｏｕｔ０、Ｄｏｕｔ１、Ｄｏｕｔ２、…ＤｏｕｔＮは信号・画像データの出力であり、複数の信号・画像データが並列に出力されることが可能なようになっている。
【００１６】
１００〜１０３は信号データや画像データの処理手段としての構成単位である処理エレメント（ＰＥ：Ｐｒｏｃｅｓｓｉｎｇ　Ｅｌｅｍｅｎｔ）であり、それぞれ信号・画像データ入力のための複数の入力端子Ｗｉｎ０、Ｗｉｎ１、Ｗｉｎ２、…ＷｉｎＮと、信号・画像データ出力のための複数の出力端子Ｗｏｕｔ０、Ｗｏｕｔ１、Ｗｏｕｔ２、…ＷｏｕｔＮを備えている。
【００１７】
また処理エレメント１０１〜１０３の各々には、不図示のデータ供給手段より同期信号ｔａｓｋ＿ｐｉｐｅが供給されている。ｔａｓｋ＿ｐｉｐｅ信号は、例えば、信号データ、画像データのサンプリング信号・同期信号など、処理を施すデータの複数の集まりが供給されるのに同期して不図示のデータ供給手段より供給されるようになっている。
【００１８】
図２は図１に示された処理エレメントの構成を示すブロック図である。図２において、１０、１１、１２、１Ｎはレジスタエレメント（ｒｅｇ＿ｅｌｅｍｅｎｔ）、２０は演算部（ｄａｔａ＿ｐａｔｈ）、３０はシーケンサ（Ｓｅｑ）、４０はプログラムメモリ（Ｐｍｅｍ）、５０はアドレスデコーダ（ｄｅｃｏｄｅ）、６０、６１はマルチプレクサ（Ｍｕｘ）である。処理エレメントの信号データ・画像データ入力用の端子Ｗｉｎ０、Ｗｉｎ１、Ｗｉｎ２、…ＷｉｎＮから供給される信号データは、レジスタエレメント１０、１１、１２、…１Ｎの各々に供給されるようになっている。また、各処理エレメントの信号データ・画像データの出力端子Ｗｏｕｔ０、Ｗｏｕｔ１、Ｗｏｕｔ２、…ＷｏｕｔＮへは、レジスタエレメント１０、１１、１２、…１Ｎの各々からデータが供給されるようになっている。
【００１９】
次に処理エレメントの動作について説明する。
【００２０】
シーケンサ３０は、不図示の外部初期化あるいは同期化手段より供給される初期化・あるいは同期化信号に応じて初期化・同期化された後、プログラムアドレスＩＡｄｒを発生してプログラムメモリ４０をアクセスする。本実施形態では、ｔａｓｋ＿ｐｉｐｅによっても初期化される。シーケンサ３０はＩａｄｒでアドレスされる命令をプログラムメモリ４０からＩｎｓｔを介して受け取り、命令をデコードして、レジスタエレメント１０〜１Ｎ、演算部２０を制御して所望の処理を実行する。
【００２１】
命令には、演算の種類、演算に使用するソースデータの読み出しレジスタアドレス、演算結果を格納するための書き込みディスティネーションアドレスなどがフィールド毎に分割され、あるいはエンコードされて規定されている。
【００２２】
シーケンサ３０はプログラムメモリ４０より読み出した命令をデコードし、あるいはフィールド分割（命令項目の取り出し）して、ソースアドレスＲＡ，ＲＢを生成して各々マルチプレクサ６０、６１に供給する。マルチプレクサ６０、６１には、レジスタエレメント１０、１１、１２、…１Ｎの出力が供給されており、マルチプレクサ６０、６１は供給されたアドレス信号のデコード結果に応じてレジスタエレメントから供給されるデータを選択して演算部２０に供給するようになっている。
【００２３】
また、シーケンサ３０はプログラムメモリ４０から読み出した命令をデコードあるいはフィールド分割して、演算部２０へ演算制御信号（Ｏｐｅ）を供給して、演算部２０が命令（ｉｎｓｔ）によって規定された演算を行うように制御する。さらにシーケンサ３０はプログラムメモリ４０から読み出した命令をデコードあるいはフィールド分割して、書き込みアドレスを表すディスティネーションアドレス（ＷＡ）を生成してアドレスデコーダ５０に供給するとともに、プログラムのデコード結果及びシーケンサ３０自身の内部状態から書き込み制御信号（Ｗｅｎ）を生成して各レジスタエレメント１０〜１Ｎに供給する。
【００２４】
アドレスデコーダ５０はシーケンサ３０より供給されるディスティネーションアドレスをデコードして、当該アドレスに相当するレジスタエレメントへの活性化信号（ＷＦ）を生成して各々のレジスタエレメントへ供給する。レジスタエレメント１０〜１Ｎは、書き込み制御信号（Ｗｅｎ）、活性化信号（ＷＦ）の状態に応じて演算部２２０から供給される演算結果を記憶する。
【００２５】
上記構成により、処理エレメントはプログラムメモリ４０に記憶されたプログラムに従ってレジスタエレメント１０〜１Ｎに供給された画像・信号データを演算処理し、レジスタエレメント１０〜１Ｎ内に記憶可能なようになっている。
【００２６】
次にレジスタエレメント１０〜１Ｎの構成及び動作について説明する。なお、レジスタエレメント１０〜１Ｎは同一の構成を有するので、以下ではレジスタエレメント１０について説明する。
【００２７】
レジスタエレメント１０は、記憶部（ｒｅｇ）１１１、マルチプレクサ（Ｍｕｘ）１１２、書き込み制御部（Ｃｎｔ）１１３を構成要素としている。記憶部１１１の入力にはマルチプレクサ１２の出力が供給されている。また、マルチプレクサ１１２のデータ入力には、記憶部１１１の出力、演算部２０の出力、及び、画像・信号データ入力Ｗｉｎ０が供給されている。また、マルチプレクサ１１２の選択指示入力には、書込み制御部１１３の出力が供給されている。
【００２８】
更に、書込み制御部１１３には、デコーダ５０から供給される書き込み活性化信号（ＷＦ）、シーケンサ２０から供給される書き込み制御信号（Ｗｅｎ）、シーケンサ２０から供給される切り替え制御信号（ｔａｓｋ＿ｓｗ）が供給されており、これら３つの信号（ＷＦ、Ｗｅｎ、ｔａｓｋ＿ｓｗ）の状態に応じて、マルチプレクサ１１２が記憶部１１１に対して供給するデータ（すなわち、記憶部１１１に記憶すべきデータ）を切り替えるようになっている。
【００２９】
レジスタエレメント１０内のの記憶部１１１への入力は次のように選択されるようになっている。すなわち、Ｔａｓｋ＿ｓｗが非活性化状態、Ｗｅｎが書き込み状態、かつアドレスデコーダ５０で選択されている（ＷＦが活性化されている）場合には、書込み制御部１１３はマルチプレクサ１１２に演算部２０からの出力（Ｄ０）を選択させ、これを記憶部１１１に記憶させる。一方、Ｔａｓｋ＿ｓｗが非活性化状態において、Ｗｅｎ、ＷＦの状態が上記以外の場合は、マルチプレクサ１１２に記憶部１１１の出力を選択させる。また、Ｔａｓｋ＿ｓｗが活性化状態の場合は、外部からのデータ入力（Ｗｉｎ０）が選択され、記憶部１１１に供給される。なお、本実施形態の装置はクロック信号によって動作するものであり、このクロックのサイクル単位に内部の状態が遷移する。そして、ｔａｓｋ＿ｐｉｐｅに基づいて（一定の時間関係を有して）　変化するｔａｓｋ＿ｓｗ命令のデコード結果に基づいて制御されるＷｅｎ，　ＷＦの状態が上記のようになると各々の書き込みサイクルになる。
【００３０】
尚、記憶部１１１の入力として記憶部１１１自身の出力が選択されている状態は、書き込みを行わないで、データを保持する状態のことであるので、一切の書き込み動作をしないという動作で実現することも可能である。
また、ｔａｓｋ＿ｓｗは処理エレメントへ入力されるｔａｓｋ＿ｐｉｐｅより、シーケンサ３０が処理エレメントの単位処理サイクルなどに応じて生成する制御信号である。
【００３１】
次に本実施形態によるデータ処理装置の動作の様子について説明する。図３は本実施形態のデータ処理装置による動作の様子を表わす図である。
【００３２】
画像データ・信号データを供給する不図示のデータ供給手段からは、基準同期信号ｔａｓｋ＿ｐｉｐｅに応じて、ライン・フレーム・タイルなどのデータのまとまり（以後パケットと呼ぶ）毎にデータが本実施形態のデータ処理装置へ供給されるようになっている。このとき、パケット毎のデータ量、転送時間は一定であってもよいし、パケット毎に異なったものになっていてもよい。ただし、最小のパケット転送時間はＤｔｍｉｎに規定されている。
【００３３】
パケットデータに施したい画像・信号処理を本実施形態のデータ処理装置の一つの処理エレメントで実現することを想定する。この場合、プログラムの処理に要する時間をＤｔｓとした場合、Ｄｔｓ＞Ｄｔｍｉｎであると画像・信号処理はリアルタイムで行うことができない。そこで、処理プログラムを、実行時間がＤｔｍｉｎより小さいあるいは等しくなるように分割する。
【００３４】
本実施形態では、Ｄｔｓ０、Ｄｔｓ１、Ｄｔｓ２、Ｄｔｓ３の４個に分割し、例えば、Ｄｔｓ０＝Ｄｔｓ１＝Ｄｔｉｍｉｎ、Ｄｔｓ２＜Ｄｔｉｍｉｎ、Ｄｔｓ３＜Ｄｔｉｍｉｎとすることで上記条件を満たす。分割された各プログラムｔａｓｋ＿ａ、ｔａｓｋ＿ｂ、ｔａｓｋ＿ｃ、ｔａｓｋ＿ｄはそれぞれの処理エレメント１００〜１０３内のプログラムメモリ（Ｐｍｅｍ）に記憶される。
【００３５】
各々の処理エレメントはデータ供給手段から供給されるデータ同期信号（ｔａｓｋ＿ｐｉｐｅ）に応じて、初期化、あるいは活性化され、分割されたプログラムの実行を開始する。
【００３６】
また、上記に説明したように同期信号ｔａｓｋ＿ｐｉｐｅが供給された各処理エレメントのシーケンサ（Ｓｅｑ）は、レジスタ入力選択信号（ｔａｓｋ＿ｓｗ）を活性化して、処理エレメントの画像・信号データ入力端子（Ｗｉｎ１〜ＷｉｎＮ）から供給されるデータを記憶部（ｒｅｇ）へ記憶するようになっている。
【００３７】
以上の処理によって全ての処理エレメントの全ての記憶部の状態が従属に接続された後続の処理エレメントへ転送され、分割された後続のプログラム処理が後続の処理エレメントで実行される。転送サイクルは、入力または、処理されるデータパケットが更新される時に存在する。
【００３８】
以上の構成、動作により、処理プログラムは分割後の処理単位で並列で実行することが可能となり、データのスループットＤｔｍｉｎを保証して画像・信号データ処理が可能になる。
【００３９】
また、各々の処理エレメントで、後続の同期信号が活性化される前に処理が終了した場合、すなわち各処理エレメントで処理が終了した時点で、新たなデータの供給がない場合は、当該処理エレメントは待機あるいは、内部状態を変化させない命令（ｎｏｐ命令）を連続して実行して新たなデータの供給を待つことが可能になっている。なお、図３では、ｉｄｌｅとして示された区間が待機状態を表わしている。
【００４０】
なお、上記実施形態では一つの処理を４分割して実行する例を説明したが、この分割数は、ＤｔｓとＤｔｍｉｎの関係などから決定すればよく、特に限定されるものでないことはいうまでもない。
【００４１】
以上説明したように上記実施形態によれば、画像・データ処理を実行するプログラムを複数に分割し、分割した単位毎にプログラムを実行して、分割された異なるフェーズのプログラムを同時に実行することができる。このため、プログラム処理のスループットを向上させ得るという効果がある。また、命令単位の並列実行と異なり、並列実行に伴うデータ依存関係・リソース競合を原因としたスループットの低下がないという利点もある。
【００４２】
また、本実施形態は、複数の命令で構成されたプログラムを複数のタスクに分割して、これらタスクの各々を、複数の処理エレメントに割り当てて実行して、タスクの終了時に、レジスタなどの処理エレメントの内部状態をすべて後続の処理エレメントに転送してパイプライン処理することで、処理能力の向上を実現したものである。従来では、並列実行を実現するために、複数の演算手段と、レジスタファイルを接続するためにレジスタファイルのマルチポート化などが必要になるが、本実施形態では、演算手段からの出力、前段の処理エレメントのレジスタからの出力に対応すれば良いためマルチポート化などに伴なう弊害は生じない。
【００４３】
また、全ての内部状態を同時に、後続のエレメントに供給するため、パイプライン化の際に処理能力向上を妨げる要因となる、データ依存関係に伴なうパイプラインストールも発生することがない。
【００４４】
更に、一般には、複数の処理から構成される画像処理を、複数の処理を単位として、複数のプロセッサに割り当てた場合、これらの処理間で実行されるデータ転送は、処理の内容によって大きく異なり、充分なデータ転送量・転送速度を確保するのが困難となる場合がある。これに対して、本実施形態では、タスク間のデータ転送は処理エレメントのレジスタと常に一定であり、上記の懸念は生じない。
【００４５】
なお、本発明は、複数の機器（例えばホストコンピュータ，インタフェイス機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用してもよい。
【００４６】
【発明の効果】
以上説明したように本発明によれば、複数の処理エレメントがシリーズに接続されたパイプライン構成において、各処理エレメントが所望の処理単位で処理を実行することが可能となる。
【図面の簡単な説明】
【図１】実施形態によるデータ処理装置の構成例を示すブロック図である。
【図２】実施形態によるデータ処理装置のの構成要素である処理エレメントの構成例を表わす図である。
【図３】実施形態によるデータ処理装置の動作の様子を説明する図である。
【図１】
2004054761.tif 000003
【図２】
2004054761.tif 000004
【図３】
2004054761.tif 000005