(57)【特許請求の範囲】
【請求項１】
リング状に接続された複数の通信モジュール間で一方向にデータを巡回させるデータ処理装置であって、
前記複数の通信モジュールのうち少なくとも一つの通信モジュールと接続され、当該接続された通信モジュールとの間でデータを入出力する少なくとも一つの入出力モジュールと、
前記入出力モジュールと接続された通信モジュール以外の複数の通信モジュールの各々と接続され、当該接続された通信モジュールから入力されたデータを処理して当該処理されたデータを当該接続された通信モジュールに出力する複数の処理モジュールと、を有し、
さらに前記通信モジュールは、
受信したデータを対応する処理モジュールに出力せずに後段の通信モジュールに転送する第１モードと、受信したデータを後段の通信モジュールまたは対応する処理モジュールに出力する第２モードとを設定する設定手段を有し、
前記データ処理装置は、
前記入出力モジュールによって入力されたデータに対して、前記複数の処理モジュールのうち少なくとも２つの処理モジュールが論理的順序に沿って処理するデータ処理を開始する場合、
前記設定手段により設定された前記第１モードにおいて、前記データ処理に用いられる処理モジュールを設定するための設定用処理順になるよう前記複数の通信モジュールを設定し、
前記設定手段により設定された前記第２モードにおいて、前記設定用の処理順において、前記データ処理に用いられる処理モジュールを設定した後に、
前記設定手段により設定された前記第１モードにおいて、前記論理的順序に基づいて前記複数の通信モジュールを設定する制御手段を有し、
前記設定用処理順は、前記データ処理に用いられる処理モジュールが接続順にデータを取り込む順序であることを特徴とするデータ処理装置。
【請求項２】
前記設定手段は、前記第１モードまたは前記第２モードのいずれかを示す切換データに基づいて、前記第１モードまたは前記第２モードを設定することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記通信モジュールはさらに、出力するデータを制御する出力制御手段を有し、前記入出力モジュールに接続された通信モジュールにおける前記出力制御手段は、前記第２モードから前記第１モードに切り替えることを示す切換データが前記入出力モジュールから入力されると、前記第２モードにおける処理が完了した後に、前記切換データに続くデータを出力するよう制御することを特徴とする請求項１または２に記載のデータ処理装置。
【請求項４】
リング状に接続された複数の通信モジュール間で一方向にデータを巡回させるデータ処理装置であって、
前記複数の通信モジュールのうち少なくとも一つの通信モジュールと接続され、当該接続された通信モジュールとの間でデータを入出力する少なくとも一つの入出力モジュールと、
前記入出力モジュールと接続された通信モジュール以外の複数の通信モジュールの各々と接続され、当該接続された通信モジュールから入力されたデータを処理して当該処理されたデータを当該接続された通信モジュールに出力する複数の処理モジュールと、を有し、
前記データ処理装置は、前記複数の処理モジュールのうち少なくとも２つ以上の処理モジュールが論理的順序に従ってデータ処理する場合、
前記データ処理に用いる処理モジュールを設定するためのデータの通信経路と、前記論理的順序に従って処理するためのデータの通信経路とを異ならせることを特徴とするデータ処理装置。
【請求項５】
前記処理モジュールに対応する通信モジュールそれぞれは、
受け取ったパケットに含まれる接続ＩＤが受信ＩＤ番号と同一であるか否かを識別し、同一である場合に対応する処理モジュールにデータを出力する受信手段と、
対応する処理モジュールが処理したデータを含むパケットが含む接続ＩＤに対して、送信ＩＤ番号を設定して後段の通信モジュールにパケットを送信する送信手段とを有し、前記データ処理装置は、前記通信モジュールそれぞれの受信ＩＤ番号および送信ＩＤ番号の設定を制御することにより前記通信経路を制御する制御手段を有することを特徴とする請求項４に記載のデータ処理装置。
【請求項６】
データ処理装置に実行させる処理に応じたデータを制御する制御装置であって、前記データ処理装置は、データを入力する入力手段と受け取ったデータを処理する複数の処理手段と、前記入力手段および前記複数の処理手段それぞれに対応して接続された通信手段を有し、
前記通信手段は、データを含むパケットを受け取り、パケットを後段の通信手段に転送し、
前記通信手段は、リング状に接続され、受信したパケットが含むデータを取り込み、後段の通信手段または対応する処理手段に出力する処理モードと、受信したパケットが含むデータを対応する処理手段に出力せず該データに基づいて該通信手段自身の設定をする設定モードとを切り替えて設定可能であり、
前記制御装置は、前記複数の処理手段に対して少なくとも２つ以上の処理手段に論理的順序でデータ処理させる場合、
前記データ処理に用いる処理手段を設定するために、前記通信手段を設定モードに設定し、かつ前記データ処理に用いる処理手段が接続順にデータを受け取るよう前記複数の処理手段に対応する通信手段それぞれを設定した後、
前記通信手段を処理モードに設定し、かつ前記データ処理に用いる処理手段における処理を設定し、
さらに前記通信手段を設定モードに設定し、かつ前記データ処理に用いる処理手段が前記論理的順序でデータを受け取るよう前記複数の処理手段に対応する通信手段それぞれを設定するよう制御することを特徴とする制御装置。
【請求項７】
所定の処理を前記データ処理装置に設定するために、
前記通信手段を前記設定モードに設定するためのデータ、
前記複数の処理手段のうち前記所定の処理に用いる処理手段に対応する通信手段が、接続順にパケットを受信し、受信したパケットに含まれるデータを対応する処理手段に出力するように設定するためのデータ、
前記通信手段を前記処理モードに設定するためのデータ、
前記複数の処理手段のうち前記所定の処理に用いる処理手段を設定するための処理手段設定用データ、
再び前記通信手段を前記設定モードに設定するためのデータ、
前記複数の処理手段に対応する通信手段における設定を前記論理的順序に応じた設定にするための設定用データ、
を順に実行させることを特徴とする請求項６に記載の制御装置。
【請求項８】
リング状に接続された複数の通信モジュール間で一方向にデータを巡回させることが可能であり、
前記複数の通信モジュールのうち少なくとも一つの通信モジュールと接続され、当該接続された通信モジュールとの間でデータを入出力する少なくとも一つの入出力モジュールと、
前記入出力モジュールと接続された通信モジュール以外の複数の通信モジュールの各々と接続され、当該接続された通信モジュールから入力されたデータを処理して当該処理されたデータを当該接続された通信モジュールに出力する複数の処理モジュールと、を備えるデータ処理装置におけるデータ処理方法であって、
さらに前記通信モジュールにおいて、
設定手段が、受信したデータを対応する処理モジュールに出力せずに後段の通信モジュールに転送する第１モードと、受信したデータを後段の通信モジュールまたは対応する処理モジュールに出力する第２モードとを設定する設定工程を有し、
前記データ処理装置において、
制御手段が、
前記入出力モジュールによって入力されたデータに対して、前記複数の処理モジュールのうち少なくとも２つの処理モジュールが論理的順序に沿って処理するデータ処理を開始する場合、
前記設定手段により設定された前記第１モードにおいて、前記データ処理に用いられる処理モジュールを設定するための設定用処理順になるよう前記複数の通信モジュールを設定し、
前記設定手段により設定された前記第２モードにおいて、前記設定用の処理順において、前記データ処理に用いられる処理モジュールを設定した後に、
前記設定手段により設定された前記第１モードにおいて、前記論理的順序に基づいて前記複数の通信モジュールを設定する制御工程を有し、
前記設定用処理順は、前記データ処理に用いられる処理モジュールが接続順にデータを取り込む順序であることを特徴とするデータ処理方法。
【請求項９】
リング状に接続された複数の通信モジュール間で一方向にデータを巡回させることが可能であり、
前記複数の通信モジュールのうち少なくとも一つの通信モジュールと接続され、当該接続された通信モジュールとの間でデータを入出力する少なくとも一つの入出力モジュールと、
前記入出力モジュールと接続された通信モジュール以外の複数の通信モジュールの各々と接続され、当該接続された通信モジュールから入力されたデータを処理して当該処理されたデータを当該接続された通信モジュールに出力する複数の処理モジュールとを備えるデータ処理装置におけるデータ処理方法であって、
前記複数の処理モジュールのうち少なくとも２つ以上の処理モジュールが論理的順序に従ってデータ処理する場合、
前記データ処理に用いる処理モジュールを設定するためのデータの通信経路と、前記論理的順序に従って処理するためのデータの通信経路とを異ならせることを特徴とするデータ処理方法。
【請求項１０】
データ処理装置に実行させる処理に応じたデータを制御する制御装置における制御方法であって、
前記データ処理装置は、データを入力する入力手段と受け取ったデータを処理する複数の処理手段と、前記入力手段および前記複数の処理手段それぞれに対応して接続された通信手段を有し、
前記通信手段は、データを含むパケットを受け取り、パケットを後段の通信手段に転送し、
前記通信手段は、リング状に接続され、受信したパケットが含むデータを取り込み、後段の通信手段または対応する処理手段に出力する処理モードと、受信したパケットが含むデータを対応する処理手段に出力せず該データに基づいて該通信手段自身の設定をする設定モードとを切り替えて設定可能であり、
前記制御装置において、
前記複数の処理手段に対して少なくとも２つ以上の処理手段に論理的順序でデータ処理させる場合、
前記データ処理に用いる処理手段を設定するために、前記通信手段を設定モードに設定し、かつ前記データ処理に用いる処理手段が接続順にデータを受け取るよう前記複数の処理手段に対応する通信手段それぞれを設定した後、
前記通信手段を処理モードに設定し、かつ前記データ処理に用いる処理手段における処理を設定し、
さらに前記通信手段を設定モードに設定し、かつ前記データ処理に用いる処理手段が前記論理的順序でデータを受け取るよう前記複数の処理手段に対応する通信手段それぞれを設定するよう制御することを特徴とする制御方法。
【請求項１１】
コンピュータを、請求項１乃至５の何れか１項に記載のデータ処理装置として機能させるためのプログラム。
【請求項１２】
コンピュータを、請求項６または７に記載の制御装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のモジュールを接続するリング状のデータ転送路において、データの種別に応じたデータ転送を行うデータ処理装置、データ処理方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、リング状のデータ転送路に接続された複数のモジュールによりデータ処理を行うデータ処理装置が提案されている（例えば、特許文献１または特許文献２参照）。リング状のデータ転送路では、それぞれのモジュール内部に受信したデータを一時的に格納するメモリを設けているため、データ転送路を独立した部分転送路に分けることができ、モジュール間で独立してデータが転送できる。これにより、モジュール数分のデータを並行して転送し、データの転送効率を高めている。
【０００３】
特許文献１では、モジュール間のデータ転送を実現するために、転送するデータが宛先のモジュールを示す宛先情報を有する。また、特許文献２では、モジュール毎にＩＤを設定するＩＤレジスタとＩＤ設定フラグとにより、専用の演算回路や信号線を必要とすることなくモジュールのＩＤを変更する。
【０００４】
さらに、複数のモジュールの機能をコンフィギュレーションするために、モジュールを直列に接続した伝送路を用いて、データを転送する方法が提案されている（例えば、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−１６７５６０号公報
【特許文献２】特開平９−０９１２６２号公報
【特許文献３】特許第４３５９４９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１のように宛先情報を転送データ（パケット）に持つ場合、データパスの分岐を実現する場合には宛先ごとにパケットを生成する必要があり、分岐ぶんのパケットの生成と送信により処理スループットが低下する可能性がる。
【０００７】
特許文献２のようにデータパスの変更のためのＩＤ設定に、モジュールのＩＤ設定フラグがリセットされた後であることを条件とした場合、特定のデータパスのみを切り替えることはできない。
【０００８】
特許文献３では、プロセッシングエレメント（本発明ではモジュールの処理部に対応）のコンフィギュレーション情報を切り替えるメモリのデータ転送路として、プロセッシングエレメント間を直列に接続して利用している。そして、処理対象となるデータ転送路は別に備わっている。モジュール間のデータ転送路が複数ある場合、処理データに同期してモジュールの構成を切り替えることは困難であるか、そのための同期の仕組みが必要となる。
【０００９】
また、データフローに分岐があった場合に分岐先のパスにあるモジュールのレジスタやメモリの値をリードすると、分岐後のあるパスで転送されるパケットにはモジュールが接続されているために正しい値が取得できる。しかしながら、他方のパスで転送されたパケットは正しい値が取得できない。さらに、分岐した後にパスが再び合流する場合に、どちらか判定する必要がある。その場合には、正しい値を取得したパケットを見分けなければならない。もちろん、パスが合流した後のモジュールのレジスタが読み出し対象である場合など、どちらとも正しい値を保持していない場合もある。この判定のためにはパスの合流点となりうる全てのモジュールに判定用の機能が必要となるため、全体としてはモジュール数に従った判定機能の分回路規模の増大が避けられない。また、分岐の先に合流点が無かった場合には、入出力部からの出力先が２つになる。この場合、出力先が分岐した分のメモリ領域が必要となるだけでなく、どちらのパスにあったモジュールかによって正しい出力結果が格納されているメモリ領域が分かれてしまう。そのため、レジスタリードした結果をＣＰＵが取得したい場合は、どのメモリ領域に正しい結果があるかをパスのどこに対象とするモジュールが属していたかにより検索する必要がある。
【００１０】
処理対象となるデータは、所定の順番でモジュール間を転送される必要があり、そのデータパスはリングバスを周回することやデータパスが分岐することもある。レジスタやメモリの値を読み書きするデータは、対象となるモジュールに転送されればよいため、データパスの周回や分岐がある場合、余分な周回や必要のないパスの分岐先への転送が発生し、処理効率が低下するという課題がある。
【００１１】
上記の課題の少なくとも１つに鑑み、本発明は、モジュールに転送するデータの種類に応じてデータパスを切り替えて処理効率を向上させることを目的とする。
【課題を解決するための手段】
【００１２】
上記の目的を達成する本発明に係るデータ処理装置は、
リング状に接続された複数の通信モジュール間で一方向にデータを巡回させるデータ処理装置であって、
前記複数の通信モジュールのうち少なくとも一つの通信モジュールと接続され、当該接続された通信モジュールとの間でデータを入出力する少なくとも一つの入出力モジュールと、
前記入出力モジュールと接続された通信モジュール以外の複数の通信モジュールの各々と接続され、当該接続された通信モジュールから入力されたデータを処理して当該処理されたデータを当該接続された通信モジュールに出力する複数の処理モジュールと、を有し、
さらに前記通信モジュールは、
受信したデータを対応する処理モジュールに出力せずに後段の通信モジュールに転送する第１モードと、受信したデータを後段の通信モジュールまたは対応する処理モジュールに出力する第２モードとを設定する設定手段を有し、
前記データ処理装置は、
前記入出力モジュールによって入力されたデータに対して、前記複数の処理モジュールのうち少なくとも２つの処理モジュールが論理的順序に沿って処理するデータ処理を開始する場合、
前記設定手段により設定された前記第１モードにおいて、前記データ処理に用いられる処理モジュールを設定するための設定用処理順になるよう前記複数の通信モジュールを設定し、
前記設定手段により設定された前記第２モードにおいて、前記設定用の処理順において、前記データ処理に用いられる処理モジュールを設定した後に、
前記設定手段により設定された前記第１モードにおいて、前記論理的順序に基づいて前記複数の通信モジュールを設定する制御手段を有し、
前記設定用処理順は、前記データ処理に用いられる処理モジュールが接続順にデータを取り込む順序であることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、モジュールに転送するデータの種類に応じたデータパスを形成して処理効率を向上させることが可能となる。
【図面の簡単な説明】
【００１４】
【図１】（ａ）データ処理装置１０のハードウェア構成を示す図、（ｂ）データ処理装置１０の概略構成を示す図。
【図２】通信部１０２の概略構成を示す図。
【図３】（ａ）データ受信部２０１の概略構成を示す図、（ｂ）データ送信部２０４の概略構成を示す図。
【図４】（ａ）リング状のデータ転送路上を流れるパケットの構成例を示す図、（ｂ）データ５０６の内部フォーマットの例を示す図、（ｃ）データ５０６の内部フォーマットの例を示す図。
【図５】（ａ）データ処理装置１０の概略構成を示す図、（ｂ）モジュールの利用順序を示す図、（ｃ）モジュールの利用順序を示す図。
【図６】（ａ）第１データ処理パス、（ｂ）処理対象データ転送時における第２データ処理パス、（ｃ）モジュール設定データ転送時における第２データ処理パス。
【図７】設定・実行処理の制御処理手順を示すフローチャート。
【図８】設定コマンド転送とデータ処理前それぞれのパスを設定するコマンド列の例を示す図。
【図９】２種類のＩＤレジスタ設定を行う際のコマンド列の例を示す図。
【図１０】（ａ）データ処理構成の概略構成を示す図、（ｂ）データパスが分岐する場合のモジュールの利用順序を示す図、（ｃ）モジュールの利用順序を示す図。
【図１１】展開データの例を示す図。
【図１２】（ａ）データ受信部２０１の概略構成を示す図、（ｂ）データ送信部２０４の概略構成を示す図。
【発明を実施するための形態】
【００１５】
（第１実施形態）
本発明におけるデータ処理装置での所望のデータ処理は、通信モジュール間で論理的なデータ転送路（データパス）を構成し、処理部での処理対象データをデータパスにて転送することにより実現する。リングバス上に構成されるデータパスは、受信部にてパケットから自モジュールで処理対象となるデータを取り出すため、モジュールの物理的な接続順によらず構成可能である。つまり、データパスはリングバス上で周回する。さらに、複数の受信部がデータを取り出すように設定することでデータパスを分岐させること、受信部が複数の通信モジュール（以下、「通信部」とも称する）により生成されたパケットのデータを取り出すことによりデータパスを集約させることができる。
【００１６】
リングバスを巡回して転送されるデータには、（１）処理部での処理対象となるデータ、（２）処理部のレジスタやメモリの値を読み書きするデータ、（３）通信部にデータ転送路を設定するデータ、の３種類がある。これら３種類のデータ全てを同一のリングバス上で転送することにより、構成の単純化と処理データに同期した動作を可能にしている。
【００１７】
まず、図１（ａ）を参照して、本発明に係るデータ処理装置１０のハードウェア構成について説明する。
【００１８】
データ処理装置１０は、システム制御部２０と、データ入力部３０と、データ処理部４０と、データ出力部５０とを備える。システム制御部２０は、ＣＰＵ２１と、ＲＯＭ２２と、ＲＡＭ２３と、外部記憶装置２４とを備える。
【００１９】
ＣＰＵ２１は、各種の演算制御を実行する。ＲＯＭ２２は、固定データやプログラムを格納する。ＲＡＭ２３は、データの一時保存やプログラムのロードに使用される。ＲＡＭ２３は、ＳＲＡＭやＤＲＡＭのように多種であってもよいし、複数あってもよい。また、その一部がＣＰＵ２１の内部で機能してもよい。外部記憶装置２４は外部データを保持する。
【００２０】
データ入力部３０は、処理すべきデータをシステム外部より取り込む。例えば、イメージスキャナおよびＡ／Ｄ変換器などのデバイスを有する画像読み込み装置、またはマイクおよびＡ／Ｄ変換などのデバイスを有する音声入力装置などである。
【００２１】
データ処理部４０は、システム制御部２０による制御によって、様々なデータ処理内容を設定され、供給される処理データについて設定された処理内容に応じた処理を実行し、処理したデータを出力する。データ処理部４０は、データ入力部３０に入力された入力データを受け取って処理を行う。また、データ処理部４０は、システム制御部２０からの指示ならびにデータ供給によって処理を行ってもよい。また、データ処理部４０による処理結果は、再度システム制御部２０に送られても、また、直接データ出力部５０に送られてもよい。
【００２２】
データ出力部５０は、データ処理部４０によって処理されたデータを外部に出力する。例えば、画像データを印字ドットパターンに変換して出力するプリンタデバイスを含む画像出力装置、音声データをＤ／Ａ変換器等を通して出力する音声出力装置などである。データ入力部３０に入力されたデータは、システム制御部２０に送られてＣＰＵ２１で処理されてもよいし、ＲＡＭ２３または外部記憶装置２４に一時的に記録されてもよい。
【００２３】
次に、図１（ｂ）を参照して、第１実施形態に係るデータ処理装置１０の概略構成について説明する。入出力モジュールとしてのデータ入出力部１０１は、処理対象のデータの外部からの入力と、処理済みのデータの外部への出力とを行う。また、通信部１０２−１〜１０２−ｍ（以下、通信部１０２と称する）のうち、通信部１０２−２〜１０２−ｍは、処理モジュールとしてのデータ処理部１０３−２〜１０３−ｍ（以下、データ処理部１０３と称する）とそれぞれ対に接続されている。ここで、矢印はデータ（又はパケット）を流す方向を示しており、図に示すように、リング状に接続されている夫々のモジュール１００−１〜１００−ｍが一方からデータを受信して他方へデータを送信する。
【００２４】
通信部１０２−１〜１０２−ｍは、各々隣接する通信部と接続され（ただし、通信部１０２−ｍは通信部１０２−１に接続される）、リング状のデータ転送路（以下、リングバス１０４とも称する）を構成している。つまり、上記通信部１０２−１〜１０２−ｍは、リングバス１０４を構成すると共に、リングバス１０４とデータ入出力部１０１またはデータ処理部１０３との間でのデータの送受信を行う。このため、通信部１０２−２〜１０２−ｍは、各々データ処理部１０３−２〜１０３−ｍと接続されている。すなわち、入出力モジュールは、複数の通信モジュールのうち少なくとも一つの通信モジュールと接続され、当該接続された通信モジュールとの間でデータを入出力する。処理モジュールは、入出力モジュールと接続された通信モジュール以外の複数の通信モジュールの各々と接続され、当該接続された通信モジュールから入力されたデータを処理して当該処理されたデータを当該接続された通信モジュールに出力する。
【００２５】
具体的には、入力端子１５１から入力されたデータがデータ入出力部１０１を介して通信部１０２−１に入力される。入力されたデータはパケット化されリングバス１０４上に流される。通信部１０２は、予め設定された情報に従って必要なパケットをリングバス１０４から取り込み、取り込まれたパケットからデータを抽出し、データ処理部１０３に入力する。データ処理部１０３は、所定のデータ処理（例えば、色空間変換処理や解像度変換処理等）を行い、処理されたデータを通信部１０２へ出力する。
【００２６】
処理されたデータは、通信部１０２によりパケット化されリングバス上に流される。このように通信部１０２−２〜通信部１０２−ｍによって、予め設定された順番でデータがデータ処理部１０３−２〜データ処理部１０３−ｍにより次々に処理される。そして、設定された順番でのパケット転送により実現された所望のデータ処理が終了したデータは、通信部１０２−１でデータ入出力部１０１に取り込まれ、出力端子１５２から外部に出力される。なお、データ入出力部１０１は、外部の機器（またはモジュール）とのインタフェースを行うものであり、通信部１０２−１で直接インタフェース可能な場合は省略可能である。
【００２７】
＜通信部１０２の構成＞
図２を参照して、通信部１０２の概略構成について説明する。通信部１０２は、データ受信部２０１と、バッファ２０２と、セレクタ２０３と、データ送信部２０４とを備える。
【００２８】
隣り合う通信部１０２の出力端子２５９と入力端子２５７とが接続されることで、通信部１０２−１〜通信部１０２−ｍによりリング状のデータ転送路が構成される。また、信号線２５１〜信号線２５６には、データ処理部１０３が接続されている。
【００２９】
ここで、図２の詳細な説明をする前に、図４（ａ）を参照して、リング状のデータ転送路上を流れるパケットの構成例を説明する。フィールド５０１は、パケットが有効であることを示すｖａｌｉｄフラグを格納する。フィールド５０２は、パケットが受信保留であることを示すｓｔａｌｌフラグを格納する。フィールド５０３は、データの送信順を示すカウント値を格納する。フィールド５０４は、データの論理的な接続を識別するための接続ＩＤを格納する。フィールド５０５は、データが転送されているデータパスを識別するためのパス識別子を格納する。フィールド５０６は、処理されるデータを格納する。  図２において、隣の通信部１０２から入力されたパケットは、バッファ２０２で一旦保持され、次のクロックサイクルでセレクタ２０３に出力される。データ受信部２０１は、入力端子２５７のパケットを監視して、以下の（１）〜（３）の全ての条件が成立する場合、パケットを取り込み、（ｖａｌｉｄ信号２５１を有効にして）出力端子２５２からデータ処理部１０３へデータを出力する。
（１）パケットのｖａｌｉｄフラグ５０１が有効である。
（２）接続ＩＤ５０４とカウント値５０３がデータ受信部２０１の保持する値と一致する。
（３）接続されているデータ処理部１０３へのデータの入力が可能である（ｓｔａｌｌ信号２５３が有効でない場合、すなわち受け入れ可能状態）。
【００３０】
データ受信部２０１は、信号線２６０を介してバッファ２０２にデータの取り込みを通知し、バッファ２０２に格納されるパケットのｖａｌｉｄフラグ５０１をクリアしてパケットを無効化する。また、パケット取り込み後、データ受信部２０１が保持するカウント値５０３はインクリメントされる。
【００３１】
一方、以下の（１）〜（３）の全ての条件が成立する場合、データ受信部２０１は信号線２６０を介して、バッファ２０２にデータの保留を通知し、バッファ２０２に格納されるパケットのｓｔａｌｌフラグ５０２をセットする。
（１）入力パケットのｖａｌｉｄフラグ５０１が有効である。
（２）接続ＩＤ５０４とカウント値５０３がデータ受信部２０１の保持する値と一致する。
（３）接続されているデータ処理部１０３へのデータの入力が不可能である場合（ｓｔａｌｌ信号２５３が有効である場合、すなわち受け入れ不可能状態）。
【００３２】
また、入力パケットのｖａｌｉｄフラグ５０１が有効で、接続ＩＤ５０４がデータ受信部２０１の保持する値と一致してもカウント値５０３がデータ受信部２０１の保持する値と不一致の場合は、データの取り込みができない。よって、この場合もｓｔａｌｌフラグ５０２をセットする。なお、後述の動作例で説明するように、パケットを受信するか否かの判断において処理内容によってはカウント値を評価しなくてもよい。
【００３３】
データ送信部２０４は、バッファ２０２の出力パケット（信号線２５８）のｖａｌｉｄフラグ５０１を監視する。そして、ｖａｌｉｄフラグ５０１が有効のときは、リングバス上にデータを出力できないので、接続されているデータ処理部１０３からのデータの出力を保留するためにｓｔａｌｌ信号２５４をセットする。一方、ｖａｌｉｄフラグ５０１が無効のときは、リングバスにデータを出力できるため、ｓｔａｌｌ信号２５４をリセットする。
【００３４】
また、以下の（１）および（２）の両方の条件が成立する場合、データ送信部２０４は、ｖａｌｉｄフラグ５０１を有効にし、ｓｔａｌｌフラグ５０２を無効にして、カウント値５０３とレジスタに設定されている接続ＩＤを付加してパケットを生成する。
（１）接続されているデータ処理部１０３からデータの出力が可能である（ｖａｌｉｄ信号２５６が有効の場合）。
（２）バッファ２０２の出力パケットのｖａｌｉｄフラグ５０１が無効である。
【００３５】
そして、データ送信部２０４は、セレクタ２０３を制御して、この生成されたパケットを出力端子２５９からリングバス上に流す。パケット出力後、データ送信部２０４が保持するカウント値５０３はインクリメントされる。なお、後述の動作例で説明するように、カウント値を評価しない構成ではカウント値のインクリメントは行わなくてもよい。
【００３６】
ここで、第１実施形態に係るデータ処理装置１０の動作概要について説明する。所定のデータ処理を行う複数のデータ処理部１０３とデータ入出力部１０１とが、それぞれ対応する通信部１０２を介して所定の順序でリング状に接続されている。通信部１０２の各々は、前の順序の通信部１０２からデータを受信するデータ受信部２０１と、次の順序の通信部１０２へデータを送信するデータ送信部２０４とを備える。
【００３７】
また、データ受信部２０１及びデータ送信部２０４の各々には、データ処理の論理的順序を識別するための接続ＩＤ情報が割り当てられている。この論理的順序は、任意に設定される設定順序である。通信部１０２は、データ受信部２０１に割り当てられている接続ＩＤ情報（受信ＩＤ番号）と同一のＩＤ情報を有するパケットを受信した場合は、対応するデータ処理部１０３でこのパケットに対するデータ処理を行わせる。そして、データ送信部２０４に割り当てられている接続ＩＤ情報（送信ＩＤ番号）をこのデータ処理済みのパケットに設定して、次の順序の通信部１０２へ送信する。一方、データ受信部２０１に割り当てられている接続ＩＤ情報と同一でないＩＤを有するパケットを受信した場合は、ＩＤ情報を変更せずにパケットを次の順序の通信部１０２へ送信する。
【００３８】
このように、データ受信部２０１及びデータ送信部２０４の各々に接続ＩＤ情報を割り振ってパケットの伝達経路を制御することで、複雑なデータパスを有するデータ処理を効率的に実現することができる。
【００３９】
なお、実際にはパケットはリングバス上を一方向に転送され続けるが、パケットに格納されているデータについては、上述の方法により所望のデータパスで複数のモジュールによって処理されるようにすることができる。
【００４０】
＜データ受信部２０１の構成＞
次に、図３（ａ）を参照して、データ受信部２０１の概略構成について説明する。データ受信部２０１は、受信ＩＤレジスタ３０１と、受信カウンタ３０２と、比較部３０３と、判定部３０４とを備える。
【００４１】
比較部３０３は、入力端子２５７から入力されるリングバス上のパケットのｖａｌｉｄフラグ５０１、接続ＩＤ５０４、およびカウント値５０３を監視する。そして、以下の（１）〜（３）の全ての条件が成立する場合、ｖａｌｉｄ信号２５１を有効にする。
（１）パケットのｖａｌｉｄフラグ５０１が有効である。
（２）パケットの接続ＩＤ５０４が受信ＩＤレジスタ３０１に格納されている接続ＩＤと一致する。
（３）パケットのカウント値５０３が受信カウンタ３０２の値と一致する。
【００４２】
なお、出力端子２５２からこのパケットのデータ部分が出力される。また、比較部３０３は、カウント値一致信号３０５と、データ処理完了検出信号３０６と、を判定部３０４に対して出力する。
【００４３】
比較部３０３は、ｖａｌｉｄフラグ５０１が有効なパケットについて、このパケットの接続ＩＤ５０４が受信ＩＤレジスタ３０１に格納されている接続ＩＤ５０４と一致するか否か比較する。一致する場合、比較部３０３は一致したことを示す信号（ＩＤ一致信号）を出力する。さらに、比較部３０３は、このパケットのカウント値５０３が受信カウンタ３０２の値と一致した場合に、一致したことを示す信号をカウント値一致信号３０５として出力する。
【００４４】
比較部３０３は、ＩＤ一致信号とカウント値一致信号３０５とを判定部３０４へ出力する。なお、ＩＤ一致信号を出力する条件を満たした場合にだけ比較部３０３がカウント値一致信号３０５を出力するようにすればパケット判定信号を判定部３０４に出力する必要はない。データ処理完了検出信号３０６は、一連のデータ処理を完了して出力されたデータを受信したことを示す。
【００４５】
判定部３０４は、ＩＤ一致信号、カウント値一致信号３０５、接続されているデータ処理部１０３からのｓｔａｌｌ信号２５３に基づいて、データ処理部１０３がデータを取り込めたか否かを判定する。そして、データ処理部１０３がデータを取り込めたと判定された場合は、信号線２６０を介して、バッファ２０２にデータの取り込みをデータ取り込み通知信号として通知する。そして、バッファ２０２に格納されているパケットのｖａｌｉｄフラグ５０１をクリアしてパケットを無効化する。なお、データの分岐（複数データ処理部での使用）のため、このパケット無効化処理は、ＣＰＵ等によってＯＮ／ＯＦＦ可能となっている。データ取り込み通知信号は、受信カウンタ３０２にも入力され、データを取り込めたと判定された場合、次のデータを取得するために、次のクロックサイクルで受信カウンタ３０２のカウント値をインクリメント（＋１）する。
【００４６】
一方、ＩＤ一致信号およびカウント値一致信号３０５、接続されているデータ処理部１０３からのｓｔａｌｌ信号２５３に基づいて、データ処理部１０３が取り込むべきデータが取り込めないと判定された場合は、データの受信を保留する。詳細には、データ受信部２０１が信号線２６０を介して、バッファ２０２にデータの保留を通知し、バッファ２０２に格納されているパケットのｓｔａｌｌフラグ５０２をセットする。また、ＩＤ一致信号およびカウント値一致信号３０５により、取り込み対象パケットであるがデータの取り込み順序が合致しないという場合も、データ受信部２０１は同様の保留処理をする。
【００４７】
さらに、判定部３０４は、一連のデータ処理が完了したかどうかを、データ処理完了検出信号３０６と、接続されているデータ処理部１０３からのｓｔａｌｌ信号２５３とに基づいて判定する。そして、判定結果を信号線２６３に出力する。
【００４８】
＜データ送信部２０４の構成＞
次に、図３（ｂ）を参照して、データ送信部２０４の概略構成について説明する。データ送信部２０４は、送信ＩＤレジスタ４０１と、送信カウンタ４０２と、出力制御部４０３と、パケット生成部４０４と、パス設定部４０５と、データ処理終了検出部４０６とを備える。
【００４９】
出力制御部４０３は、バッファ２０２からの出力パケット（信号線２５８）のｖａｌｉｄフラグ５０１、ｓｔａｌｌフラグ５０２、および接続ＩＤ５０４を監視する。ｖａｌｉｄフラグ５０１が有効のときは、リングバスにデータを出力できないので、対のデータ処理部１０３のデータ出力を保留するためにｓｔａｌｌ信号２５４をセットする。一方、ｖａｌｉｄフラグ５０１が無効のときは、ｓｔａｌｌ信号２５４をリセットする。
【００５０】
また、出力制御部４０３は、以下の（１）および（２）の両方の条件が成立する場合は、自身が出力したパケットが他のどのモジュールにも保留されずにリングバスを周回して戻ってきたと判定する。そして、パケット生成部４０４を介してセレクタ２０３を制御し、ｖａｌｉｄフラグ５０１を無効にしてパケットを無効化する。この場合、データ処理部１０３のパケットを出力することが可能となるので、ｓｔａｌｌ信号２５４をリセットする。なお、出力制御部４０３は、後述するようにデータパスを切り替える場合にもｓｔａｌｌ信号２５４をセットする。
（１）バッファ２０２からの出力パケットのｖａｌｉｄフラグ５０１が有効であり、且つｓｔａｌｌフラグ５０２が保留を示していない。
（２）バッファ２０２からの出力パケットの接続ＩＤ５０４が送信ＩＤレジスタ４０１に格納されている接続ＩＤと一致する。
【００５１】
パケット生成部４０４は、接続されているデータ処理部１０３のｖａｌｉｄ信号２５６を参照する。そして、パケット生成部４０４は、データ処理部１０３からデータの出力が可能であるか否か判定する。データ処理部１０３からデータの出力が可能であると判定された場合（ｖａｌｉｄ信号２５６が有効の場合）、バッファ２０２の出力パケットが、以下の（１）または（２）のいずれかに該当する場合、ｖａｌｉｄフラグ５０１を有効にし、ｓｔａｌｌフラグ５０２を無効にする。そして、送信カウンタ４０２のカウント値と送信ＩＤレジスタ４０１に設定されている接続ＩＤとパス設定部４０５のパス識別子とを付加してパケットを生成する。そしてデータ送信部２０４がセレクタ２０３を制御することにより、生成されたパケットは出力端子２５９からリングバス上に流される。そして、次のクロックサイクルで送信カウンタ４０２のカウント値をインクリメント（＋１）する。なお、データ送信部２０４の送信カウンタ４０２と、このデータ送信部２０４からのパケットを受信するデータ受信部２０１の受信カウンタ３０２とは、同期を取るために、データ転送開始前に同じ値に初期化される。
（１）その出力パケットのｖａｌｉｄフラグ５０１が無効である。
（２）データを抽出し終えて無効化するパケット（ｖａｌｉｄフラグ５０１が有効かつｓｔａｌｌフラグ５０２が保留を示していないときで、パケットの接続ＩＤ５０４が送信ＩＤレジスタ４０１に格納されている接続ＩＤと一致したパケット）である。
【００５２】
＜データパスの設定＞
図４（ｂ）を参照して、図３（ｂ）に示されるパス設定部４０５などモジュールのレジスタにアクセスして値を変更する際に転送されるパケットの、データ５０６の内部フォーマットの例を説明する。データ５０６は、データタイプ７０１と、ＲＷフラグ７０２と、アドレス７０３と、データ７０４とを備える。
【００５３】
データタイプ７０１は、データ５０６の種別を示す。ＲＷフラグ７０２は、レジスタへのアクセスの種別が読み出しと書き込みのどちらであるかを示す。アドレス７０３は、アクセス先を示す。データ７０４は、読み出したデータあるいは書き込むデータである。なお、アドレス７０３は、モジュールとそのモジュールのレジスタを特定できる情報であればよい。なお、後述する設定パス開始パケット（切換データ）に格納される設定パス開始データ、または接続ＩＤ変更パケットに格納される接続ＩＤ変更データも、同様にデータ５０６のフォーマットを採用する。
【００５４】
次にデータパスを切り替える処理の概要を説明する。接続ＩＤ等を変更するデータを転送するデータパスを第１データ処理パス（つまり、通信経路設定用パス）とし、データ処理部１０３にて処理するデータやデータ処理部１０３のレジスタの設定を変更するデータを送るデータパスを第２データ処理パスとする。本実施形態では、通信部１０２は受信したパケットのパス識別子５０５が「１」の場合に第１データ処理パスとして、パス識別子５０５が「０」の場合に第２データ処理パスのパケットとして処理する。なお、データ受信部２０１は、第１データ処理パスのパケットについてフィールド５０１〜フィールド５０４の値を無視して常にフィールド５０６のデータを取り込む。加えて、データ処理部１０３に接続された通信部１０２では、パケットは無効化されずにバッファ２０２に格納されて次のサイクルで次のモジュールへと転送される。
【００５５】
つまり、第１データ処理パスは、データ入出力部１０１から入力されたパケットがリングバスを１周して再びデータ入出力部１０１へと出力されるパスとなる。一方、第２データ処理パスは、通信部１０２のレジスタ設定により決まるパスとなる。
【００５６】
第１データ処理パスから第２データ処理パスへと切り替える場合、第１データ処理パスで転送するデータに続いて、データ入出力部１０１と接続された通信部１０２のパス設定部４０５に「０」を書き込むデータを入力端子１５１から入力する。値は次のクロックサイクルで反映されるため、このデータ自身は第１データ処理パスにより転送され、次の入力データからは第２データ処理パスにより転送される。
【００５７】
一方、第２データ処理パスから第１データ処理パスへと切り替える場合、第２データ処理パスで転送するデータに続いて、データ入出力部１０１と接続された通信部１０２のパス設定部４０５に「１」を書き込むデータを入力端子１５１から入力する。値は次のクロックサイクルで反映されるため、このデータ自身は第２データ処理パスにより転送され、次の入力データからは第１データ処理パスにより転送される。
【００５８】
パス設定部４０５に「１」を書き込むデータに続くデータは、データ処理終了検出部４０６で第２データ処理パスの処理が完了するまでの間、出力制御部４０３によりパケット生成部４０４への出力をブロックさせる。
【００５９】
これにより、データパスが周回していても、第１データ処理パスでのデータ処理が開始されないため、先行する第２データ処理パスでのデータパスの設定を変更することや、転送データの追い越しが発生して順番が入れ替わってしまうことを防止できる。第１データ処理パスから第２データ処理パスへと切り替えるときも、同様にパケット生成部４０４への出力をブロックしてもよいが、リングバスを１周しかしない第１データ処理パスの転送データは追い越されることがないため、不要である。
【００６０】
次に、本発明に係るデータ処理装置１０でのデータ処理について説明する。データ処理部１０３は、例えばフィルタ回路のような、パラメータによりモジュール単位でもコンフィギュレーション可能な回路とする。さらに、通信部１０２によりモジュールの利用する順番を変更することで、柔軟性のある処理を実現する。通信部１０２により複数のモジュールの利用する順番を任意に変更可能であることによって、データパスの分岐などを含む複雑なデータ処理も可能である。複雑なデータパスの場合、リングバス上で２つ以上の論理的なモジュール間のデータ転送が重複する区間が存在するため、リングバスでの転送効率が装置全体の処理効率に大きく影響する。
【００６１】
データ処理部１０３による処理の対象となるデータは、所定の順番で処理されなければ出力結果が変わってしまうため、所定の順番で転送されるように設定しておく必要がある。一方、モジュールのレジスタやメモリにリード／ライトするデータのように、転送される順番に出力結果が影響されないデータは、リングバスの転送効率が高いデータパスで転送する。
【００６２】
図５（ａ）に示されるデータ処理装置を例として、第２データ処理パスの利用について説明する。通信部は、通信部Ａ（通信部１０２−１）〜通信部Ｅ（通信部１０２−５）の５つである。通信部Ａ（通信部１０２−１）とデータ入出力部Ａ（データ入出力部１０１）とが対応する。通信部Ｂ（通信部１０２−２）〜通信部Ｅ（通信部１０２−５）のそれぞれとデータ処理部Ｂ（データ処理部１０３−２）〜データ処理部Ｅ（データ処理部１０３−２）とが対応する。
【００６３】
図５（ｂ）および図５（ｃ）はモジュールの利用順序を表す。データ処理をする順番は、図５（ｂ）に示されるように、Ａ（入力）→Ｄ→Ｂ→Ａ（出力）である。モジュールが実際に接続されている順序とは入れ替わっており、データパスはリングバスを２周することになる。
【００６４】
これに対して、前述したようにモジュール間の転送順序には依存しない処理部設定データは、図５（ｃ）に示されるように、リングバスを１周のみする順序でモジュールを利用してもよい。その順序とはＡ（入力）→Ｂ→Ｄ→Ａ（出力）である。すなわち、図５（ｂ）に示される処理順序は、後述の図６（ｂ）に示されるようにリング上を２周する接続指示によって実現される。一方、図５（ｃ）に示される処理順序は、後述の図６（ｃ）に示されるようにリング上を１周のみする接続指示によって実現可能である。
【００６５】
これらのパスは、上述の第１のデータ処理パスにおいて設定され、第２のデータ処理パスの中で実行される。いずれも第２のデータ処理パスに属するが、図３における受信ＩＤレジスタ３０１および送信ＩＤレジスタ４０１を適切に設定することにより、切替え可能である。
【００６６】
この切替えは、個々の送信ＩＤおよび受信ＩＤをデータ処理装置に設定することによって実行される。このような設定は、例えばＣＰＵ２１を用いて実施してもよい。以下、図７を参照して、ＣＰＵ２１が、データ処理部４０に実行させる処理に応じた接続ＩＤ変更データまたは処理させるデータをＲＡＭ２３に展開し、データ処理を実行する際の処理手順について説明する。
【００６７】
ステップＳ７０１において、ＣＰＵ２１は、ＲＡＭ２３にデータ処理装置の処理データを展開する。ステップＳ７０２において、ＣＰＵ２１は、データ処理部４０に処理開始信号を送信する。
【００６８】
ステップＳ７０３において、ＣＰＵ２１は、データ処理部４０での処理が完了するまで待機する。ステップＳ７０４において、ＣＰＵ２１は、データ処理部４０での処理完了を検出したか否かを判定する。処理完了を検出したと判定された場合、処理は終了する。一方、処理完了を検出したと判定されない場合、ステップＳ７０４に戻る。
【００６９】
なお処理完了の検出は、割り込み等のＣＰＵ２１への通知により行われる。
【００７０】
ここで、図８を参照して、ステップＳ７０１で展開するデータについて説明する。ステップＳ７０１で展開するデータは、処理開始信号に付属された位置のメモリアドレスあるいは予め決められていたアドレスなどに展開されたメモリ上のデータを表す。
【００７１】
このデータを読み込むと、データ処理装置はデータの格納順に従ってデータを処理して、終了後すぐに画像処理を開始することができる。Ａ．ｒｅｃｖ＿ｉｄはモジュールＡの受信ＩＤレジスタ３０１を表す。Ａ．ｓｅｎｄ＿ｉｄはモジュールＡの送信ＩＤレジスタ４０１を表す。ｐｒｏｃＡ．ｒｅｇ１は、入出力部Ａのレジスタを表す。
【００７２】
図１（ａ）のデータ処理部４０は、ステップＳ７０２で処理開始信号を受けると、図８に示されるデータ構成の上から下に向かって順にデータを読み出して入力端子１５１へと出力する。処理結果は、ＲＡＭ２３の予め決められたアドレスに書き出される。
【００７３】
１００５により示されるＡ.ｐａｔｈ_ｃｆｇ←１は、モジュールＡのｐａｔｈ＿ｃｆｇ（パス設定部４０５）に「１」を書くデータを表す。このパケットによりパス設定部４０５が「１」になると、その後流されるパケットは全て図６（ａ）に示される第１データ処理パスを通り、通信部１０２のみを通って１周のみする経路で転送される。その後に続くパス構成データ１００１（処理モジュール設定用）は、図６（ａ）に示される第１データ処理パスにより転送され、図５（ｃ）のパスとなるように、受信ＩＤおよび送信ＩＤを設定する。
【００７４】
続いて１００６により示されるＡ．ｐａｔｈ＿ｃｆｇ←０を転送すると、パス設定部４０５が「０」に設定される。この後に続くパケットは、図６（ｃ）に示されるように、予め受信するように設定された通信部１０２において、受信したパケットをデータ処理部１０３に転送する動作をするようになる。この際の処理の順序は、図５（ｃ）で示される順序なるため、設定パケットはリング上を１回周回してから出力される。
【００７５】
その後、処理モジュール設定用データ１００２は、図６（ｂ）示されるように第２データ処理パス（モジュール設定転送時）により転送され、モジュールＢとモジュールＤとの設定を行う。
【００７６】
次に１００７により示されるＡ.ｐａｔｈ_ｃｆｇ←１により、再び図６（ａ）に示される第１データ処理パスに切り替えた後、次は、図５（ｂ）に示される処理順となるようにパス構成データ１００３により通信部１０２の受信ＩＤならびに送信ＩＤが設定される。その後、１００８により示されるＡ．ｐａｔｈ＿ｃｆｇ←０を転送することにより、図６（ｂ）に示されるようにデータが流れるような設定が完了する。
【００７７】
引き続いて、処理データ１００４が、図６（ｂ）に示されるように第２データ処理パス（処理対象データ転送時）により転送され、各データ処理部１０３においてデータ処理される。
【００７８】
パス構成データ１００１とパス構成データ１００３とは、最初のデータ１００５と最後のデータ１００６とでパス設定部４０５の値を切り替えて、第１データ処理パスにより第２データ処理パスを設定するデータを転送するようにデータを入力する。
【００７９】
処理対象データ全体を一度に入力せず、いくつかの単位に分割してデータ処理を実行する場合、処理データ１００４を入れ替えて繰り返し入力端子１１５へと出力すればよい。このとき、設定を変更する必要が無ければ、連続した２回目以降では処理データ１００４のみを入力してもよい。
【００８０】
処理対象データの単位ごとに処理モジュールの設定を変更する場合は処理データの単位に合わせて処理モジュール設定用データ１００２を入れ替えて実行する。また、ＲＡＭ２３に一度に全て展開できない場合は、図８に示されるデータは分割して入力してもよい。なお、入力データの全てあるいは一部は、ＲＯＭ２２から取得してもよい。
【００８１】
このようにして、所望のデータ処理を実現するデータを入力する。図６（ｂ）に示される第２データ処理パス（処理対象データ転送時）はリングバスを２周する。もしそのまま処理モジュール設定用データ１００２を転送していた場合には、既に処理を終えたデータが周回する。また、対象となるモジュールに入力されても設定したパスでは受信条件が一致しない場合は受信条件が一致するまで周回する。すなわち、リングバスを無駄に占有する状況が発生してしまう。しかしながら、本発明の手順で図６（ｃ）に示される第２データ処理パス（モジュール設定転送時）で転送することにより、これを回避できる。処理したいデータが例えば画像データであって、画像のある領域ごとにデータ処理部１０３のパラメータを変更したい場合などは、上記の第１データ処理パスと第２データ処理パスとでの処理を繰り返せばよい。
【００８２】
なお、データを受信する元の通信モジュールを示す第１受信ＩＤ番号と、データを送信する先の通信モジュールを示す第１送信ＩＤ番号とを、それぞれの通信モジュールに対して物理的に接続された順序で設定することにより第１データ処理パスを予め設定する。データを受信する元の通信モジュールを示す第２受信ＩＤ番号と、データを送信する先の通信モジュールを示す第２送信ＩＤ番号とを、それぞれの通信モジュールに対して設定することにより第２データ処理パスを予め設定する。そして、第１データ処理パスまたは第２データ処理パスを選択することにより、第１データ処理パスと第２データ処理パスとを切り替える構成としてもよい。
【００８３】
（第２実施形態）
図１０（ａ）を参照して、本実施形態に係るデータ処理構成の概略構成について説明する。図５（ａ）で説明したデータ処理装置のデータ処理部Ｅ（データ処理部１０３−５）が、出力部１１０１に置き換わっている。出力部Ｅには出力端子１５３が接続されている。図１０（ｂ）を参照して、データパスが分岐する場合の処理の流れを説明する。Ａより入力されたデータは、まず処理部Ｄにより処理された後、二つの処理部Ｂ、処理部Ｃによりそれぞれ異なる処理を実施される。その後、処理部Ｂからの出力は入出力部Ａから出力される。一方、処理部Ｃからの出力は出力部Ｅから出力される。
【００８４】
このとき、例えば処理後の結果を、処理部Ｂおよび処理部Ｃからそれぞれ読み出す必要がある場合を考える。このままの処理パスである場合、処理部Ｂ内に保持されたデータを読み出すためのデータを展開して入出力部Ａから投入すると、そのデータは通信部Ａでパケット化されて、処理部Ｄの後に処理部Ｂと処理部Ｃとに分岐して流れる。この場合、パケットの保持するデータは処理部Ｂのデータを読み出すため、処理部Ｂからのデータを出力する入出力部Ａから、処理部Ｂの読出しデータが出力される。このとき、出力部Ｅからは、入出力部Ａから投入したパケットが処理部Ｂを経由せずに出力するため、その出力データは無駄となる。
【００８５】
一方、処理部Ｃの読出しデータを出力するためには、処理部Ｃ内に保持されたデータを読み出すデータを展開し、再度入出力部Ａから投入する必要がある。この場合、出力部Ｅから、処理部Ｃの読出しデータが出力される一方で、入出力部Ａからは、処理部Ｃを通らない、投入したままのデータが出力される。
【００８６】
このように、図１０（ｂ）に示されるような分岐を伴う第２のデータ処理パスを用いて、分岐後のモジュールの設定や読出し処理を行う場合、２回に分けて起動を行う必要がある。
【００８７】
また、もし一度の起動で読み出しを実行する場合には、投入するデータとして、処理部Ｂの読出しデータ列と、処理部Ｃの読出しデータ列とを連続して展開しておき、これを入出力部Ａから投入する。その結果、入出力部Ａからは、処理部Ｂから読み出されたデータと、変化のない処理部Ｃの読出しデータとが出力され、かつ、出力部Ｅからは、変化のない処理部Ｂの読出しデータと、処理部Ｃから読み出されたデータとが出力される。このとき、双方の出力データのうち、変化のないデータについては、無駄な出力メモリ領域を消費してしまい、効率が悪い。
【００８８】
図１１を参照して、この場合の処理で必要な展開データを例示する。
【００８９】
１２０５により示されるＡ.ｐａｔｈ_ｃｆｇ←１によって、第１データ処理パスに移行した後、パス構成データ１２０３によって図１０（ｂ）に示される分岐フローを構築する設定を行う。ここでは、処理部ＢのＢ．ｒｅｃｖ_ｉｄならびに処理部ＣのＣ．ｒｅｃｖ_ｉｄには、処理部Ｄの送信ＩＤである２が設定されているため、処理部Ｄの出力を共に待つ設定となっている。
【００９０】
このような分岐フローを構築した後、１２０６により示されるＡ.ｐａｔｈ_ｃｆｇ←０によって第２データ処理パスに移行し、データを転送して処理を実行する。
【００９１】
その後、データ処理によって処理部Ｂならびに処理部Ｃに蓄積されたデータを読み出すために、１２０７により示されるＡ.ｐａｔｈ_ｃｆｇ←１によって再び第１データ処理パスに移行する。そして、処理モジュール設定用データ１２０４によって図１０（ｃ）の処理順になるように設定が行われる。その後、１２０８により示されるＡ.ｐａｔｈ_ｃｆｇ←０によって再び第２データ処理パスに移行する。そして、処理モジュール設定用データ１２０４に従って、処理部Ｂ読出しデータ１２０９ならびに処理部Ｃ読出しデータ１２１０を転送することで、データが読み出される。
【００９２】
このようにして起動回数１回で処理部Ｂと処理部Ｃの読出しデータを無駄な保持領域を使用せずに効率よく読み出すことができる。
【００９３】
（第３実施形態）
第３実施形態に係るデータ処理装置は、第１実施形態では１組であった、第２データ処理パスを設定するレジスタ群を２組備える。第２データ処理パスを設定するレジスタ群とは、受信ＩＤレジスタ３０１、受信カウンタ３０２、送信ＩＤレジスタ４０１、送信カウンタ４０２の一組である。本実施形態に係るデータ受信部２０１を示した図１２（ａ）、およびデータ送信部２０４を示した図１２（ｂ）を参照して、パケットの受信および送信の動作について説明する。なお、データ処理装置は第１実施形態で説明したデータ処理装置と同様の構成である。また、２組備えた第２データ処理パスを設定するレジスタ群が選択される以外は第１実施形態と同じ動作をするため、説明は省略する。
【００９４】
＜データ受信部２０１の構成＞
受信ＩＤレジスタ１３０１（受信ＩＤレジスタ０）は、パケットの保持するデータ５０６のデータタイプ７０１が図４（ｂ）に示されるフォーマットである場合に、パケットの接続ＩＤ５０４と比較するために用いられる。
【００９５】
受信ＩＤレジスタ１３０２（受信ＩＤレジスタ１）は、パケットの保持するデータ５０６のデータタイプ７０１が図４（ｃ）に示されるフォーマットである場合に、パケットの接続ＩＤ５０４と比較するために用いられる。
【００９６】
受信カウンタ０１３０３は（受信カウンタ０）、パケットの保持するデータ５０６のデータタイプ７０１が図４（ｂ）に示されるフォーマットである場合に、パケットのカウント値５０３と比較するために用いられる。
【００９７】
受信カウンタ１３０４（受信カウンタ１）は、パケットの保持するデータ５０６のデータタイプ７０１が図４（ｃ）に示されるフォーマットである場合に、パケットのカウント値５０３と比較するために用いられる。
【００９８】
スイッチ１３１０、スイッチ１３１１、スイッチ１３１２は、不図示の信号線によりパケットの保持するデータ５０６のデータタイプ７０１の値を入力として、利用する受信ＩＤレジスタおよび受信カウンタと、次のサイクルでインクリメントする受信カウンタとを切り替える。
【００９９】
＜データ送信部２０４の構成＞
送信ＩＤレジスタ１３０５（送信ＩＤレジスタ０）は、データ処理部１０３およびデータ入出力部１０１からの入力信号２５５（フォーマットは５０６）のデータタイプ７０１が図４（ｂ）に示されるフォーマットである場合に、パケットの接続ＩＤ５０４としてパケット生成部４０４において付加される。
【０１００】
送信ＩＤレジスタ１３０６（送信ＩＤレジスタ１）は、データ処理部１０３およびデータ入出力部１０１からの入力信号２５５（フォーマットは５０６）のデータタイプ７０１が図４（ｃ）に示されるフォーマットである場合に、パケットの接続ＩＤ５０４としてパケット生成部４０４において付加される。
【０１０１】
受信カウンタ１３０７（受信カウンタ０）は、データ処理部１０３およびデータ入出力部１０１からの入力信号２５５（フォーマットは５０６）のデータタイプ７０１が図４（ｂ）に示されるフォーマットである場合に、パケットのカウント値５０３としてパケット生成部４０４において付加される。
【０１０２】
受信カウンタ１３０８（受信カウンタ１）は、データ処理部１０３およびデータ入出力部１０１からの入力信号２５５（フォーマットは５０６）のデータタイプ７０１が図４（ｃ）に示されるフォーマットである場合に、パケットのカウント値５０３としてパケット生成部４０４において付加される。
【０１０３】
スイッチ１３１３、スイッチ１３１４、スイッチ１３１５は、不図示の信号線によりデータ処理部１０３およびデータ入出力部１０１からの入力信号２５５（フォーマットは５０６）のデータタイプ７０１の値を入力として、利用する送信ＩＤレジスタおよび送信カウンタ、次のサイクルでインクリメントする送信カウンタを切り替える。
【０１０４】
レジスタ群を２組備えることにより、送受信するデータのタイプにより転送するパスが決まり、処理するデータ列に応じてパス設定を切り替える必要がなくなる。そのため、図９に示すように、一度にデータパスを設定するように処理データを入力することができる。図９では、Ａ．ｒｅｃｖ＿ｉｄ［０］、Ａ．ｒｅｃｖ＿ＩＤ［１］などの添え字は、それぞれ［０］が図４（ｂ）、［１］が図４（ｃ）のデータに対応したレジスタ郡であることを表す。
【０１０５】
図９のようにデータを入力することにより、一連のデータ処理でパス構成データの入力を１度にすることができる。
【０１０６】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005600492.tif 000002
【図２】
0005600492.tif 000003
【図３】
0005600492.tif 000004
【図４】
0005600492.tif 000005
【図５】
0005600492.tif 000006
【図６】
0005600492.tif 000007
【図７】
0005600492.tif 000008
【図８】
0005600492.tif 000009
【図９】
0005600492.tif 000010
【図１０】
0005600492.tif 000011
【図１１】
0005600492.tif 000012
【図１２】
0005600492.tif 000013