(57)【特許請求の範囲】
【請求項１】
通信可能に接続されている複数のモジュールが順番にデータを処理するデータ処理装置であって、
前記モジュールは、
当該モジュールの処理する順番を示す識別情報を格納する第１格納手段と、
前記データを格納するパケットを受信する受信手段と、
前記受信手段の受信したパケットの格納するデータを処理する処理手段と、
前記処理手段の処理したデータと前記識別情報とを格納するパケットを生成する生成手段と、
前記受信手段の受信するパケットの格納する識別情報と前記生成手段の生成するパケットの格納する識別情報とを比較して、前記順番が後のパケットを判定する判定手段と、
前記判定手段の判定したパケットを優先して送信する送信手段と
を有することを特徴とするデータ処理装置。
【請求項２】
前記送信手段の送信するパケットを一時的に保持する第１保持手段を更に有し、前記送信手段は前記第１保持手段の空き容量が少ない場合は、前記受信手段の受信するパケットを優先して送信することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記送信手段が優先して送信しないパケットを一時的に保持する第２保持手段を更に有することを特徴とする請求項１又は２に記載のデータ処理装置。
【請求項４】
前記判定手段は前記受信手段の受信するパケットの格納する識別情報と前記生成手段の生成するパケットの格納する識別情報と前記第２保持手段の保持するパケットの格納する識別手段とを比較して、前記順番が後のパケットを判定することを特徴とする請求項３に記載のデータ処理装置。
【請求項５】
前記第１格納手段に前記識別情報を設定する制御手段を更に有することを特徴とする請求項１乃至４のいずれか１項に記載のデータ処理装置。
【請求項６】
前記制御手段は順番が後のモジュールの識別情報ほど大きい値を設定し、前記判定手段は大きい値の識別情報を有するパケットほど順番が後のパケットとして判定することを特徴とする請求項５に記載のデータ処理装置。
【請求項７】
前記制御手段は順番が後のモジュールの識別情報ほど小さい値を設定し、前記判定手段は小さい値の識別情報を有するパケットほど順番が後のパケットとして判定することを特徴とする請求項５に記載のデータ処理装置。
【請求項８】
前記複数のモジュールはリング状に接続され、各モジュールが一方向にデータを送信しながら複数のモジュールで順番にデータを処理する請求項１乃至７のいずれか１項に記載のデータ処理装置。
【請求項９】
前記パケットは格納するデータが有効であるか否かを示す有効フラグを有し、前記受信手段の受信するパケットの有効フラグが有効を示す場合に、前記判定手段は、前記受信手段の受信するパケットの格納する識別情報と前記生成手段の生成するパケットの格納する識別情報とを比較して、前記順番が後のパケットを判定することを特徴とする請求項１乃至８のいずれか１項に記載のデータ処理装置。
【請求項１０】
夫々のモジュールの処理するパケットを識別するための待ち受け情報を格納する第２格納手段を更に有し、前記受信手段は前記待ち受け情報に一致する識別情報を有するパケットを前記処理手段に取り込むことを特徴とする請求項１乃至９のいずれか１項に記載のデータ処理装置。
【請求項１１】
前記第２格納手段の有する前記待ち受け情報に一致しない識別情報を有するパケットを前記送信手段が送信することを特徴とする請求項１０に記載のデータ処理装置。
【請求項１２】
通信可能に接続されている複数のモジュールが順番にデータを処理するデータ処理装置におけるデータ処理方法であって、
前記モジュールが、
当該モジュールの処理する順番を示す識別情報を格納する第１格納工程と、
前記データを格納するパケットを受信する受信工程と、
前記受信工程で受信したパケットの格納するデータを処理する処理工程と、
前記処理工程で処理したデータと前記識別情報とを格納するパケットを生成する生成工程と、
前記受信工程で受信したパケットの格納する識別情報と前記生成工程で生成したパケットの格納する識別情報とを比較して、前記順番が後のパケットを判定する判定工程と、
前記判定工程で判定したパケットを優先して送信する送信工程と
を有することを特徴とするデータ処理方法。
【請求項１３】
通信可能に接続されている複数のモジュールが順番にデータを処理するデータ処理装置を制御するコンピュータを、
当該モジュールの処理する順番を示す識別情報を格納する第１格納手段と、
前記データを格納するパケットを受信する受信手段と、
前記受信手段の受信したパケットの格納するデータを処理する処理手段と、
前記処理手段の処理したデータと前記識別情報とを格納するパケットを生成する生成手段と、
前記受信手段の受信するパケットの格納する識別情報と前記生成手段の生成するパケットの格納する識別情報とを比較して、前記順番が後のパケットを判定する判定手段と、
前記判定手段の判定したパケットを優先して送信する送信手段と
して機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のモジュールが接続されたデータ処理装置において、モジュールの利用順序に従って効率よくパケットを転送するための構造と制御方法、およびパケットのデータ構造に関する。
【背景技術】
【０００２】
複数のモジュールが通信可能に接続され、並列処理をするデータ処理装置において、優先度に応じてパケットの転送を行うことで、各モジュールにおけるデータ処理も効率的な処理を実現できる。
【０００３】
特許文献１には、１段以上のバッファやメモリを備える複数のモジュールをリング状に接続して、リングバスにモジュール数と同じ数のパケットを存在させ、モジュール間のパケットの転送を並列に行いながらデータ処理をするデータ処理装置が開示されている。特許文献１では優先度を集中管理によって判定することで優先度に応じた転送を実現している。
【０００４】
特許文献２には、各モジュールに分散した優先度によるパケット転送の方法が開示されている。具体的には、データ転送バスと応答転送バスの２つのリング状バスによってモジュール間を接続し、すでにリングバスに転送されているパケットがモジュールの送信したいパケットよりも優先度が低いと判定された場合には、そのパケットを破棄する。そして、送信したい優先度の高いパケットをリングバスへ送出する。転送されていたパケットを破棄したため、モジュールは応答転送バスを利用して破棄したことを通知する。破棄されたことを知ったモジュールは、パケットを送信元に再送する。このようにして、優先度によるパケット転送を実現していた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−１６７５６０号公報
【特許文献２】特開２００７−３１６６９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の方法のように、集中管理によって優先度に応じたデータの転送を実現する場合にはモジュール数の増加に比例して、制御回路が複雑化し回路規模も増大する。
【０００７】
特許文献２の方法では、全てのモジュールは送信したパケットが他のモジュールによって破棄されていないことが判断できるまで、自モジュールが送信したパケットを全てコピーし、自モジュールに保持する必要がある。このため、モジュール数の増加に比例して送信したパケットのコピーを保持するバッファの容量が著しく増加する。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本発明のデータ処理装置は、
通信可能に接続されている複数のモジュールが順番にデータを処理するデータ処理装置であって、
前記モジュールは、
当該モジュールの処理する順番を示す識別情報を格納する第１格納手段と、
前記データを格納するパケットを受信する受信手段と、
前記受信手段の受信したパケットの格納するデータを処理する処理手段と、
前記処理手段の処理したデータと前記識別情報とを格納するパケットを生成する生成手段と、
前記受信手段の受信するパケットの格納する識別情報と前記生成手段の生成するパケットの格納する識別情報とを比較して、前記順番が後のパケットを判定する判定手段と、
前記判定手段の判定したパケットを優先して送信する送信手段と
を有することを特徴とする。
【発明の効果】
【０００９】
本発明によると、通信可能に接続されている各モジュールはパケットの送信元ＩＤを基に、パイプライン処理等の一連の処理において、処理の順番が後のパケットを優先して転送するので、簡易な構成で一連の処理で処理するデータの転送効率を向上させられる。
【図面の簡単な説明】
【００１０】
【図１】リング状に接続されているモジュールと、その１つのモジュールの概略構成を示すブロック図である。
【図２】パケットと送信元ＩＤのデータ構造を示す図である。
【図３】パケットの入れ替え動作を示す図である。
【図４】モジュールの概略構成を示すブロック図である。
【図５】パケット入れ替え動作を示す図である。
【図６】パケット入れ替え動作を示す図である。
【図７】データ処理装置の概略構成を示すブロック図である。
【発明を実施するための形態】
【００１１】
＜実施例１＞
本実施例におけるデータ処理装置が有する処理モジュールについて、図１を用いて概略動作を説明する。なお、矢印は信号を送る向きを示しており、矢印で接続されているブロックの夫々は矢印の方向へ信号を遅れるように信号線によって接続されている。
【００１２】
図１（ａ）はリング状に通信可能に接続されているモジュールの１つの構造を示すものである。モジュール１０１はリング状に接続されリングバス１０２となっている。パケット受信部１０６はリングバス１０２を通して上流側のモジュールからパケットを受信する。ＩＤ判定部１１１は受信パケットのＩＤと待ち受けＩＤレジスタ１０７（第２格納手段）の格納する値（待ち受けＩＤ）とから、（自身のモジュールの）処理部１０３が処理するように設定されているパケットを判定する。受信制御部１０８は、ＩＤ判定部１１１が処理部１０３で処理するように設定されているパケットを検出し、このパケットの保持するデータが自モジュールで処理可能な場合に、このパケットの格納するデータを処理部１０３に送出する。しかし、そうでない場合（ＩＤ判定部１１１が処理部１０３で処理すべきではないと判定した場合や、処理部１０３が他ので−タを処理中の場合）には送信制御部１０９へパケットをスルーさせる。処理部１０３は受信制御部１０８からのデータに所定のデータ処理を行う。パケット生成部１０５は処理部１０３の処理したデータと送信元ＩＤレジスタ１０４（第１格納手段）の格納する送信元ＩＤ（識別情報）とをパケットに格納する。
【００１３】
送信制御部１０９（送信手段）はパケット生成部１０５の生成したパケットと、受信制御部１０８のスルーしたパケットとのどちらをバッファ１１２（第１保持手段）へ送信するかを制御する。バッファ１１２はパケットを保持するバッファであって、バッファ１１２の保持するパケットをサイクルタイム毎にパケット送信部１１０が下流側のモジュールへ送信する。
【００１４】
なお、ＩＤ判定部１１１は受信制御部１０８と送信制御部１０９とが用いる制御情報を生成する。
【００１５】
図１（ｂ）に示すように、処理モジュールは通信部１２０と処理部１０３とを有し、各処理モジュールの通信部１２０がリング状に接続されて、入出力部１４０が入力するデータを一方向へ転送しながら処理する。ここで、通信部１２０は図１（ａ）で示す、送信元ＩＤレジスタ１０４、パケット生成部１０５、パケット受信部１０６、待ち受けＩＤレジスタ１０７、受信制御部１０８、送信制御部１０９、パケット送信部１１０、ＩＤ判定部１１１、バッファ１１２を有する。なお、入出力部１４０と接続されている通信部１２０においては、処理部１０３の代わりに入出力部１４０が配置される。
【００１６】
本実施例におけるデータ処理装置は、モジュール１０１がリング状に接続され、リング型のネットワークトポロジになっており、そのモジュールの個数に制限はない。また、バッファ１１２は２段以上の容量を持つことが望ましく本実施例では２段とする。このバッファの出力が次のモジュールの入力となり、１サイクルで１つのパケットを次のモジュールへと転送するものとする。この場合、Ｎ個のモジュールで装置が構成されていた場合、２Ｎ個のデータがリングバス上に同時に存在できることになる。ただし、本発明では全てのモジュールが２段以上のバッファを持つことを限定するものではない。各モジュールはサイクルごとに次のモジュールへと１つのパケットを転送することで、夫々のモジュールは並列にデータ転送を行うことができる。また、待ち受けＩＤレジスタ１０７と送信元ＩＤレジスタ１０４の設定を適切にすることで、１つのデータについて複数の処理モジュールを所望の順番で処理させるようにすることができる。
【００１７】
図７は、本実施例のデータ処理装置の概略構成である。データ処理部８２０はリング状に接続されている処理モジュールを有する。システム制御部８００は、演算制御用のＣＰＵ８０１、固定データやプログラムを格納するＲＯＭ８０２、データの一時保存やプログラムのロードに使用されるＲＡＭ８０３および、外部データを保持する外部記憶装置８０４を有する。データ入力部８１０は、処理すべきデータをシステム外部より取り込む。データ出力部８３０は、本システムにおいて処理されたデータを外部に出力する。
【００１８】
データ処理部８２０は、システム制御部８００の制御によって所望のデータ処理をするように設定され、そして様々な処理データを供給されて、設定に応じた処理を実行し、処理したデータをシステム制御部８００やデータ出力部８３０に出力する。
【００１９】
システム制御部８００は、入力するデータに対してデータ処理部８２０の有する複数のモジュールが所望の順番で処理するように、データ処理部８２０が有するモジュールが有する夫々のレジスタに待ち受けＩＤと送信元ＩＤとを設定する。これによって、複数のモジュールでパイプライン処理等の一連の処理を並列処理できる。
【００２０】
例えば、システム制御部８００が各モジュールの待ち受けＩＤ（ｗＩＤと表記）と送信元ＩＤ（ＩＤと表記）を図１（ｂ）のように設定すると、処理部Ｂ⇒処理部Ａ⇒処理部Ｃの順番にパイプライン処理を実行させることができる。図１（ｂ）では、通信部１２０−１の設定を〔ｗＩＤ：４，ＩＤ：１〕とし、その他の通信部も同様に、通信部１２０−２〔ｗＩＤ：２，ＩＤ＝３〕、通信部１２０−３〔ｗＩＤ：１，ＩＤ＝２〕、通信部１２０−ｎ〔ｗＩＤ：３，ＩＤ＝４〕と設定する。
【００２１】
システム制御部８００は処理毎のシナリオを外部記憶装置８０４、ＲＯＭ８０２又はＲＡＭ８０３に格納している。シナリオはユーザもしくはアプリケーションの指示によってシステム制御部がデータ処理部８２０に処理させる一連の処理について、データ処理部８２０のどの処理モジュールが何番目に処理するかを識別できるものである。システム制御部８００は、このシナリオに基づいて処理モジュールが処理する順番を理解し、その順番に応じて各モジュールの送信元ＩＤを決定し、決定した送信元ＩＤとシナリオに基づいて各モジュールの待ち受けＩＤを決定する。
【００２２】
もちろん、単純に一連の処理（パイプライン処理）毎に、予め処理順序に応じた各モジュールの設定値（送信元ＩＤ、待ち受けＩＤ）をテーブルとしてシステム制御部８００の内部に格納するようにしてもよい。
【００２３】
このように、所定のデータ処理に対応する順番で各モジュールがパケットを送受信するように、送信元ＩＤレジスタ１０４の値と待ち受けＩＤレジスタ１０７の値とを設定する。
【００２４】
また本実施例では、システム制御部８００は各モジュールがパケット（データ）の優先度を識別できるようにするために、パイプライン処理の後段のモジュールの送信元ＩＤほど大きい値を設定し、送信元ＩＤの値の大きいパケットほど優先して転送する。これは、データ処理装置全体の処理効率を向上させるためには、処理順序で後段のフェーズまで進んでいるデータほど優先して転送させる方が、処理効率が高くなるためである。
【００２５】
図２（ａ）は図１で示すモジュールを有するデータ処理装置においてモジュール間のデータ転送に用いるパケットのフォーマットを示す図である。フィールド２０１はパケットが有効かどうかを示すｖａｌｉｄフラグ（有効フラグ）である（“１”で有効、“０”で無効）。フィールド２０２はパケットにデータを格納したモジュールの識別子であり、このパケットの保持するデータの優先度も示す送信元ＩＤを格納する。フィールド２０３はデータを格納する。
【００２６】
フィールド２０２の送信元ＩＤは、利用するモジュールの順序関係を識別可能にするとともに、各パケットの保持するデータの優先度を判定するための値が割り当てられている。
【００２７】
図２（ｂ）を用いてフィールド２０２の格納する送信元ＩＤを詳細に説明する。ｏｒｄｅｒ３０２は、入出力部１４０又は処理部１０３からのデータをパケット生成部がパケットに格納する際に、一緒に格納される各モジュール固有の送信元ＩＤである。また、利用するモジュールの中で処理性能がボトルネックとなる処理部を備えたモジュールのパケットに対し、送信元ＩＤに関わらず高い優先度で処理させるデータである場合には、ｍｏｄｅ３０１のフィールドにより設定する。例えば、優先度通常で“０”を格納し、優先度高で“１”を格納する。データ処理装置内で並列に複数種類の一連のデータ処理（例えば、複数のパイプライン処理）を行う場合は、図２（ｃ）に示すようにｐａｔｈ３０３として各一連のデータ処理のパスを識別するための識別子を格納するようにする。なお、図２のパケットの構成は一例であり、各フィールドの並び方を限定するものではない。また、送信元ＩＤ２０２はパケットの送信元モジュールと、処理で利用するモジュールの順序関係を識別可能な値であればよい。また、ｍｏｄｅ３０１は省略してもよい。
【００２８】
次に、パケットの転送動作の詳細について説明する。まず、処理部によって処理されたデータが図２に示したパケットにより次に処理されるべきモジュールへと送信される動作について説明する。パケット生成部は、処理部１０３にて処理されたデータをフィールド２０３へ、送信元ＩＤレジスタ１０４の値をフィールド２０２に格納し、ｖａｌｉｄフラグ２０１を有効にする。
【００２９】
ここで、モジュール同士のパケット転送処理は複数の通信部１２０が並行して行うことが可能である。一方で、モジュールを通過するパケットとモジュール内の処理部１０３で処理されたデータを格納するパケットのどちらを優先させるかを送信制御部１０９が決定する必要がある。
【００３０】
次に、図３を用いて送信制御部１０９の処理の詳細を説明する。パケット４０１は受信制御部１０８（パケット受信部１０６に相当）のパケット、パケット４０２はパケット生成部１０５にて生成したパケット、そして、パケット４０３は前のサイクルでバッファ１１２の内部に残されたパケットである。
【００３１】
受信制御部１０８は、受信したパケット４０１についてｖａｌｉｄフラグが無効（フィールド２０１に“０”を格納）である場合、パケット４０１が空きパケットであるので、パケット４０２をバッファ１１２へと出力する。ｖａｌｉｄフラグが無効の場合はパケット４０１をパケット４０２で上書きする。上書きの代わりにパケット生成部１０５がパケット４０１の各フィールドの値を操作し、パケット４０１にデータを格納させるようにしてもよい。
【００３２】
一方、ｖａｌｉｄフラグが有効（フィールド２０１に“１”を格納）である場合には、パケット４０１とパケット４０２の夫々の優先度（ｏｒｄｅｒ３０２）とバッファ１１２の空き容量とに基づいて送信制御部１０９が送信制御する。バッファ１１２から送信制御部１０９へ不図示の信号線が繋がっており、バッファ１１２はこの信号線を用いて空き容量を送信制御部１０９へ通知する。
【００３３】
ここで、バッファ１１２はサイクル毎に１つのパケットを次のモジュールへ転送するため、基本的に１つの空き容量が存在する。本実施例では、図３（ａ）に示すように、空き容量が１つしかない場合にはｖａｌｉｄフラグが有効なパケット４０１をパケット４０２より優先して転送する。そして、図３（ｂ）に示すように、バッファの空き容量が２以上の場合は、ＩＤ判定部１１１の判定結果をもとにして優先度の高いパケットを次のサイクルで先に送信するようにバッファ１１２への出力を制御する。
【００３４】
ＩＤ判定部１１１は、パケット受信部１０６で受信したパケット（パケット４０１に相当する）の優先度とパケット生成部１０５のパケット（パケット４０２に相当する）の優先度とを比較する際に、夫々のパケットの送信元ＩＤ２０２に単純な演算を施す。本実施例では、夫々の送信元ＩＤ２０２について単純な大小比較をしてどちらのパケットを優先するかを決定すればよい。また、パケット受信部１０６のパケットの送信元ＩＤ２０２にパケット生成部１０５のパケットの送信元ＩＤ２０２より高い重み付けをした上で、大小比較して優先度を判定してもよい。
【００３５】
またパケット４０２の送信元ＩＤは送信元ＩＤレジスタ１０４の格納する値に相当するので、ＩＤ判定部１１１が送信元ＩＤレジスタ１０４の値とパケット受信部１０６の受信したパケットの送信元ＩＤとを比較して、その結果を送信制御部１０９に通知してもよい。
【００３６】
またパケット４０１のｖａｌｉｄフラグが有効になっているかどうかを送信制御部１０９が知る方法としては、パケットのｖａｌｉｄフラグを送信制御部１０９が直接確認してもよいし、ＩＤ判定部１１１が送信制御手段１０９に通知してもよい。
【００３７】
次に、パケットの受信動作の詳細について説明する。本実施例のＩＤ判定部１１１は、パケット受信部１０６の受信したパケットが自モジュールの１０３の処理部にて処理するべきデータを保持しているか、受信パケットに格納されている送信元ＩＤと待ち受けＩＤレジスタ１０７の値とを比較することで判定する。例えば、ＩＤの値が一致することで判定できるようにするとよい。一致した場合は、ＩＤ判定部１１１が一致すると判定したパケットの格納するデータを受信制御部１０８が処理部１０３へ出力する。一致しなかった場合は送信制御部１０９へスルーさせる。
【００３８】
以上説明したように、本実施例によると一連のデータ処理を終えるまでのサイクル数を短縮させ、データ処理装置全体としての処理効率を向上させる効果がある。また、所定のデータ処理を行うための順序に従ったパケットの転送と、データの優先度を考慮したパケットの転送を、単一の送信元ＩＤによって実現している。単一の送信元ＩＤとして実現したことにより、各モジュールでは受信したパケットを取り込むかどうかと、処理したデータを格納させるパケットとモジュールを通過させようとするパケットのどちらを優先して送信するかと、を簡単に一度に判定できる。この結果、判定機構を簡素化できる。データの優先度をＩＤとは別にパケットに保持する必要が無いためパケットのｂｉｔ数を小さくできる。また、各モジュールにＩＤと優先度とを対応付ける記憶手段や集中管理するための配線を配置する必要が無いので、モジュールの回路規模も小さくできる。
【００３９】
本実施例ではシステム制御部８００がパイプライン処理の後段の処理部の送信元ＩＤレジスタほど大きい値を設定し、判定部１１１は大きい値のｏｒｄｅｒ３０２を有するパケットを優先するように判定したが、本発明はこれに限定されない。パイプライン処理の後段の処理部の送信元ＩＤレジスタほど小さい値を設定し、判定部が小さい値を有するｏｒｄｅｒ３０２を有するパケットほど優先するように設定すれば同等の効果を得ることができる。また、パケットのＩＤに相当するフィールドをパケットの複数箇所に設けて、高次のビットを有するＩＤ程又は低次のビットを有するＩＤ程、優先度を高くするようにしてもよい。
【００４０】
また、図２（ｃ）に示すｐａｔｈ３０３（マルチパス）として互いに異なる値を有する複数のパケットを用いれば、その数だけパイプライン処理を複数実行することも可能である。その場合には、待ち受けＩＤレジスタ１０７は待ち受けＩＤを、送信元ＩＤレジスタ１０４は送信元ＩＤを、夫々ｐａｔｈ３０３の値と対応付けてパイプライン処理の数だけ格納する必要がある。
【００４１】
例えば、パイプライン処理１[図１（ｂ）：Ｂ⇒Ａ⇒Ｃ]で処理させるパケットと、パイプライン処理２[Ｃ⇒Ｂ⇒Ａ]で処理させるパケットとが複数の処理モジュールで混在する場合、優先度の割り当て方は複数ある。
【００４２】
３つのフェーズで構成されているパイプライン処理１とパイプライン処理２について同じフェーズのパケットを同等に扱う場合と、パイプライン処理１，２のどちらか一方を他方に比べて優先させる場合である。
【００４３】
例えば、パイプライン処理１で処理したデータがＲＡＭ８０３に書き込まれ、そのデータをパイプライン処理２で処理させるデータに用いる場合などで、ＲＡＭ８０３の領域を節約する必要があるときはパイプライン処理２のパケットを優先した方がよい。
【００４４】
パイプライン処理１よりパイプライン処理２を優先させる場合は、システム制御部は各モジュールにパイプライン処理２がパイプライン処理１より後段の処理であるとして送信元ＩＤを割り当てる。上記の処理順番の例で夫々の接続ＩＤは、通信部１２０−１〔パス１  ＩＤ：１，パス２  ＩＤ：５〕と設定する。そして、その他の通信部も同様に、通信部１２０−２〔パス１  ＩＤ：３，パス２  ＩＤ：８〕、通信部１２０−３〔パス１  ＩＤ：２，パス２  ＩＤ：７〕、通信部１２０−ｎ〔パス１  ＩＤ：４，パス２  ＩＤ：６〕の様に設定する。待ち受けＩＤについては省略するが、上述の処理順番で処理できる待ち受けＩＤをパス毎に割り当てる必要がある。
【００４５】
＜実施例２＞
実施例２におけるデータ処理装置について、図４を用いて説明する。なお、実施例１と同一機能を有する構成や工程には同一符号を付すとともに、構成的、機能的にかわらないものについてはその説明を省略する。実施例２では、少なくとも１段以上の容量を持ったのバッファＡ５０１（第１保持手段）とバッファＢ５０２（第２保持手段）とを備えている。バッファＢ５０２はパケット受信部１０６の受信から送られるパケットを一時的に格納し、受信制御部１０８と送信制御部１０９を介してバッファＡへ格納しているデータを送信する。ＩＤ判定部１１１はバッファＢ５０２からバッファＡへ出力しようとしているパケットと、バッファＢがパケット受信部１０６から受信したパケット、パケット生成部１０５が出力しようとするパケットの夫々の優先度を比較し、どのパケットを優先するかを判定する。そして判定した結果を受信制御部１０８、送信制御部１０９に通知する。なお、ＩＤ判定部１１１による優先度は、実施例１と同様に、比較対象となる複数のパケットのＩＤを単純比較（大小比較）によって判定する。
【００４６】
図５および図６を用いて、このときのパケット送信の動作について説明する。パケット６０１は１０８受信制御部からのパケット、パケット６０２は１０５パケット生成部にて生成したパケット、パケット６０３は５０２バッファＢに保持されたパケットである。
【００４７】
これら３つのパケットのうち、少なくとも１つのパケットのｖａｌｉｄフラグが有効である場合は、そのｖａｌｉｄフラグが有効であるパケットがバッファＡ５０１へと送出されるように送信制御部が制御する。
【００４８】
一方で、２つ以上のパケットのｖａｌｉｄフラグが有効である場合、送信制御部１０９はＩＤ判定部１１１の判定結果に基づいて制御する。以下、２つ以上のパケットのｖａｌｉｄフラグが有効である場合の、ＩＤ判定部１１１による優先度の判定と、その判定に基づく動作について説明する。
【００４９】
ＩＤ判定部１１１は、パケット６０２が３つのパケットのうち最も高い優先度の場合にパケット６０２をバッファＡ５０１に送出するように送信制御部１０９に制御情報を送る。
【００５０】
パケット６０１はｖａｌｉｄフラグが有効であっても、図５（ａ）に示すようにバッファＢ５０２に空きがある際には、受信制御部１０８がバッファＢ５０２へと送出する。ただし、図５（ｂ）に示すようにバッファＢ５０２に空きがない場合は、パケット６０１をバッファＡ５０１へと送出する。
【００５１】
図６（ａ）に示すように、パケット６０１のｖａｌｉｄフラグが有効で、パケット６０３がパケット６０１、６０２よりも優先度が高いとＩＤ判定部１１１が判定する場合には、パケット６０３が受信制御部１０８によってバッファＡ５０１に送出される。このとき、受信制御部１０８はパケット６０１をバッファ５０２に送出する。
【００５２】
一方、図６（ｂ）に示すようにパケット６０１のｖａｌｉｄフラグが有効でない場合は、パケット６０２の優先度が６０３のパケットより低い場合、パケット６０３がバッファＡへ出力さる。逆に、パケット６０２の優先度がパケット６０３の優先度より高い場合は、パケット６０２がバッファＡへ出力される。
【００５３】
しかし、本実施例はあくまで一例であり、パケット生成部１０５とバッファＢとを信号線で接続し、パケット６０２をバッファＢ５０２へ送信し、以降、上述のバッファ６０３と同様に扱ってもよい。
【００５４】
また、バッファＢ５０２をＮ段（Ｎは２以上の自然数）にする場合は、ＩＤ比較部１１１でバッファＢ５０２内の最大Ｎ個のパケット６０３と、受信制御部のパケット６０１と、パケット生成部のパケット６０２の優先度を比較するようにすればよい。制御が複雑になる場合にはバッファＢ５０２をＦＩＦＯ構造にして出力側のＭ個のパケットの優先度を比較するようにしてもよい。
【００５５】
このようにして、実施例２ではデータの優先度判定の結果、優先度の低いデータを保持するパケットをモジュール内のバッファに保持し、次のサイクルで再び比較対象とする点で、優先度を比較する対象のパケットを実施例１より増やしている。これによって、各モジュールにおいて優先度を判断する基準が増えるため、パケット転送効率を上げるための判定をより細やかに行うことができる。
【００５６】
上述の実施例では各処理モジュールがリング型のトポロジーとなっている構成を例に挙げて説明したが、本発明はリング型のトポロジーに限定されない。例えば、各処理モジュールがバス型トポロジーである場合や、メッシュ状になっていても、一連の処理（パイプライン処理）を分割し、複数のモジュールで順番に並列実効させる構成の全てにおいて本発明を適用することで転送効率を向上させることができる。
【００５７】
上述の実施例で用いたデータ処理装置の各部の概略構成図は、回路や機能手段の接続関係を説明するためのものであって、各構成の位置関係を制限するものではない。例えば、処理モジュールは別個のチップとして形成される必要は無い。また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005460143.tif 000002
【図２】
0005460143.tif 000003
【図３】
0005460143.tif 000004
【図４】
0005460143.tif 000005
【図５】
0005460143.tif 000006
【図６】
0005460143.tif 000007
【図７】
0005460143.tif 000008