(57)【特許請求の範囲】
【請求項１】
リング状にバス接続されている複数の通信手段を備え、前記通信手段の各々がそれぞれ所定の処理を実行する処理手段に接続され、接続された前記処理手段が処理を実行した後のデータをパケットとして前記バスへ送出することにより、予め定めた順序で前記処理手段の間のデータの受け渡し及び処理を実行する情報処理装置であって、
前記複数の通信手段のうちの少なくとも１つの通信手段は、
データと、当該データに対する処理が保留されたか否かを示す保留情報とを含むパケットを受信し、当該パケットを保持する保持手段と、
前記保持手段に保持されたパケットを前記バスへ送出する送信手段と、
前記保持手段に保持されたパケットに含まれるデータが前記１つの通信手段自身に接続された処理手段により処理されるべきであるかの判定と、前記保持手段が受信したパケットに含まれる保留情報が当該パケットに含まれるデータに対する処理が保留されたことを示す場合に当該保留情報の設定を当該保持手段が行ったかの判定と、前記保持手段が受信したパケットに含まれるデータが前記１つの通信手段自身に接続された処理手段により処理されるべき場合に当該データに対する処理が保留されるべきかの判定と、を行う判定手段と、
を有し、
前記保持手段は、保持しているパケットに、前記判定手段における判定結果に応じた処理を施し又は何も処理を施さず、前記送信手段は、当該処理が施されたパケット又は前記保持手段が受信したパケットを、前記バスへ送出する、
ことを特徴とする情報処理装置。
【請求項２】
前記保持手段は、前記保持手段が受信したパケットに含まれるデータが前記１つの通信手段自身に接続された処理手段により処理されるべき場合に当該データに対する処理が保留されるべきと前記判定手段が判定した場合は、当該パケットに含まれる保留情報を、当該パケットに含まれるデータに対する処理が保留されたことを示す値に設定し、前記送信手段は、前記保持手段において前記設定が行われたパケットを前記バスへ送出する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記保持手段は、前記保持手段が受信したパケットに含まれる保留情報が当該パケットに含まれるデータに対する処理が保留されたことを示す場合に当該保留情報の設定を当該保持手段が行ったと前記判定手段が判定しなかった場合は、当該パケットに対して処理を施さず、前記送信手段は、当該パケットをそのまま前記バスへ送出する、
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記保持手段は、前記保持手段が受信したパケットに含まれる保留情報が当該パケットに含まれるデータに対する処理が保留されたことを示す場合に当該保留情報の設定を当該保持手段が行ったと前記判定手段が判定しなかった場合であって、当該パケットに含まれるデータが前記１つの通信手段自身に接続された処理手段により処理されるべきである場合、前記パケットに対して処理を施さず、当該パケットに含まれるデータは当該処理手段に出力され、かつ、前記送信手段は、当該パケットをそのまま前記バスへ送出する、
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項５】
前記保持手段は、前記保持手段が受信したパケットに含まれる保留情報が当該パケットに含まれるデータに対する処理が保留されたことを示す場合に、当該保留情報の設定を当該保持手段が行ったと前記判定手段が判定した場合、当該パケットを無効とする設定を行い、当該パケットに含まれるデータは当該処理手段に出力され、かつ、前記送信手段は、前記保持手段において前記設定が行われたパケットを前記バスへ送出する、
ことを特徴とする請求項１から４のいずれか１項に記載の情報処理装置。
【請求項６】
前記保持手段は、前記保持手段が受信したパケットに含まれる保留情報が当該パケットに含まれるデータに対する処理が保留されたことを示す場合に、当該保留情報の設定を当該保持手段が行ったと前記判定手段が判定した場合、当該パケットに含まれる保留情報を、当該パケットに含まれるデータに対する処理が保留されていないことを示す値に設定し、当該パケットに含まれるデータは当該処理手段に出力され、かつ、前記送信手段は、前記保持手段において前記設定が行われたパケットを前記バスへ送出する、
ことを特徴とする請求項１から４のいずれか１項に記載の情報処理装置。
【請求項７】
前記保持手段によって、保留情報が、データに対する処理が保留されたことを示す値に設定されているパケットの個数を記憶する記憶手段をさらに有し、
前記判定手段は、前記個数に基づいて、前記保持手段が受信したパケットに含まれる保留情報が当該パケットに含まれるデータに対する処理が保留されたことを示す場合に当該保留情報の設定を当該保持手段が行ったかの判定を行う、
ことを特徴とする請求項１から６のいずれか１項に記載の情報処理装置。
【請求項８】
前記記憶手段は、パケットに含まれる保留情報が、前記保持手段により当該パケットに含まれるデータに対する処理が保留されたことを示す値に設定された場合に、前記個数を１加算し、パケットに含まれる保留情報が、前記保持手段により当該パケットに含まれるデータに対する処理が保留されていないことを示す値に設定された場合に１減算する、
ことを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記記憶手段は、前記情報処理装置にデータの入力を開始する際に前記個数を０とする、
ことを特徴とする請求項７又は８に記載の情報処理装置。
【請求項１０】
前記保持手段は、前記保持手段が受信したパケットに含まれる保留情報が当該パケットに含まれるデータに対する処理が保留されたことを示すと共に当該保留情報の設定を当該保持手段が行ったと前記判定手段が判定した場合、又は、前記保持手段が受信したパケットに含まれる保留情報が当該パケットに含まれるデータに対する処理が保留されていないことを示す場合にのみ、前記保留情報を変更することが許可される、
ことを特徴とする、請求項１から９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記パケットの前記保留情報は、当該パケットに含まれる当該保留情報が当該パケットに含まれるデータに対する処理が保留されたことを示す値に設定される場合に当該設定を行った保持手段を有する通信手段を識別する識別情報を含むことができ、前記１つの通信装置の前記保持手段は、保持しているパケットに含まれる保留情報を、当該パケットに含まれるデータに対する処理が保留されたことを示す値に設定する際に、前記１つの通信装置を識別する識別情報を当該パケットの当該保留情報に含める、
ことを特徴とする請求項１から６のいずれか１項に記載の情報処理装置。
【請求項１２】
前記判定手段は、前記保持手段が受信したパケットにおける保留情報に含められた識別情報が、前記１つの通信装置を識別する識別情報と一致する場合に、当該保留情報の設定を当該保持手段が行ったと判定する、
ことを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記保持手段は、前記保持手段が受信したパケットにおける保留情報に含められた識別情報が、前記１つの通信装置を識別する識別情報と一致する場合、又は、特定の値である場合にのみ、前記保留情報を消去することが許可される、
ことを特徴とする請求項１１又は１２に記載の情報処理装置。
【請求項１４】
リング状にバス接続されている複数の通信手段を備え、前記通信手段の各々がそれぞれ所定の処理を実行する処理手段に接続され、接続された前記処理手段が処理を実行した後のデータをパケットとして前記バスへ送出することにより、予め定めた順序で前記処理手段の間のデータの受け渡し及び処理を実行する情報処理装置における通信方法であって、
データと、当該データに対する処理が保留されたか否かを示す保留情報とを含むパケットを受信し、当該パケットを保持する保持手段と、前記保持手段に保持されたパケットを前記バスへ送出する送信手段と、を有する、前記複数の通信手段のうち少なくとも１つの通信手段において、
判定手段が、前記保持手段に保持されたパケットに含まれるデータが前記１つの通信手段自身に接続された処理手段により処理されるべきであるかの判定と、前記保持手段が受信したパケットに含まれる保留情報が当該パケットに含まれるデータに対する処理が保留されたことを示す場合に当該保留情報の設定を当該保持手段が行ったかの判定と、前記保持手段が受信したパケットに含まれるデータが前記１つの通信手段自身に接続された処理手段により処理されるべき場合に当該データに対する処理が保留されるべきかの判定と、を行う判定工程と、
前記保持手段が、保持しているパケットに、前記判定工程における判定結果に応じた処理を施し又は何も処理を施さず、
前記送信手段が、当該処理が施されたパケット又は前記保持手段が受信したパケットを、前記バスへ送出する、
ことを含むことを特徴とする通信方法。
【請求項１５】
請求項１４に記載の通信方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リング状のバスを用いてデータの受け渡し及び処理を行う情報処理装置、通信方法及びプログラムに関する。
【背景技術】
【０００２】
従来より、高速なパイプライン処理の実現のため、パイプライン処理となる一連のデータ処理を分割（グルーピング）して複数のモジュールに割り当て、このモジュールを処理の流れ順にバスで接続する方法がある（特許文献１）。しかし、モジュールを物理的なバスで接続している場合、処理Ａ→Ｂ→Ｃを処理Ａ→Ｃ→Ｂとするように、パイプライン処理の順序を変更することは困難である。なお、モジュールには処理Ａ、Ｂ、Ｃが重複しないように割り当てられているとする。
【０００３】
画像処理においては、一連の処理順序を変更することで処理の効率化を図ることができる場合がある。例えば、出力装置に画像を出力する場合、入力される画像の画素数が出力装置の画素数よりも多い場合は、なるべく処理の開始時に近い上流工程で画素数を少なくしてから処理を行った方が効率的である。一方で、入力画像の画素数が出力装置の画素数よりも少ない場合は、解像度変換を行わずに画素数が少ない状態で処理行い、出力直前の下流工程で解像度変換により画素数を多くするのが良い。
【０００４】
また、ある空間（入力デバイス空間等）で定義されるデータを、標準的な空間（ＣＩＥＬＡＢ色空間等）に変換して処理を行い、処理後のデータを別の空間（出力デバイス空間等）に変換する場合がある。この場合、入力側と出力側の空間変換部の処理（１次元ＬＵＴ、行列演算、３次元ＬＵＴ等）は、互いに順序が逆の処理となる。つまり、処理の順序を変えることができれば、同じ処理モジュールを入力側と出力側とで共用することもできる。なお、処理順序を可変にする方法として、処理回路間の接続をリング状のバス（以下、リングバスと称す）で接続する方法がある（特許文献２、特許文献３）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平５−０８１１７８号公報
【特許文献２】特開平１−０２３３４０号公報
【特許文献３】特開平２−２８３１４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、処理Ａ→Ｂ→Ｃのパイプライン処理において２つの処理Ａ→Ｂ、Ａ→Ｃを同時に行うような分岐処理を行う際に、一方の処理モジュールでパケットを処理せずに保留した場合、保留したモジュールを特定できない。このため、保留されたパケットが、正しいタイミングで消去されず、リングバス上に停滞してしまうという課題があった。また、保留されたパケットが、当該パケットに含まれるデータを処理すべき他の処理モジュールが処理する前に消去されてしまうことにより、それ以降のパケットの処理が不能となり、リングバスがデッドロックしてしまうという課題があった。
【０００７】
本発明は、複数の処理部をリング状バスに接続したデータパス制御機構において、分岐処理をデータが欠落するとなく実行する技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明による情報処理装置は、リング状にバス接続されている複数の通信手段を備え、前記通信手段の各々がそれぞれ所定の処理を実行する処理手段に接続され、接続された前記処理手段が処理を実行した後のデータをパケットとして前記バスへ送出することにより、予め定めた順序で前記処理手段の間のデータの受け渡し及び処理を実行する情報処理装置であって、前記複数の通信手段のうちの少なくとも１つの通信手段は、データと、当該データに対する処理が保留されたか否かを示す保留情報とを含むパケットを受信し、当該パケットを保持する保持手段と、前記保持手段に保持されたパケットを前記バスへ送出する送信手段と、前記保持手段に保持されたパケットに含まれるデータが前記１つの通信手段自身に接続された処理手段により処理されるべきであるかの判定と、前記保持手段が受信したパケットに含まれる保留情報が当該パケットに含まれるデータに対する処理が保留されたことを示す場合に当該保留情報の設定を当該保持手段が行ったかの判定と、前記保持手段が受信したパケットに含まれるデータが前記１つの通信手段自身に接続された処理手段により処理されるべき場合に当該データに対する処理が保留されるべきかの判定と、を行う判定手段と、を有し、前記保持手段は、保持しているパケットに、前記判定手段における判定結果に応じた処理を施し、前記送信手段は、当該処理が施されたパケットを前記バスへ送出する、ことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、複数の処理部をリング状バスに接続したデータパス制御機構において、分岐処理をデータが欠落するとなく実行することができる情報処理装置、通信方法、およびプログラムを提供することができる。
【図面の簡単な説明】
【００１０】
【図１】情報処理装置の構成を示す図。
【図２】データ処理部の構成を示す図。
【図３】実施形態１に係るパケットの構成を示す図。
【図４】従来のデータパス制御機構の動作を示す図。
【図５】実施形態１に係る通信部の構成を示す図。
【図６】実施形態１に係る受信部の構成を示す図。
【図７】実施形態１に係る送信部の構成を示す図。
【図８Ａ】実施形態１に係るデータパス制御機構の動作を示す図。
【図８Ｂ】実施形態１に係るデータパス制御機構の動作を示す図。
【図９】実施形態２に係るパケットの構成を示す図。
【図１０】実施形態２に係る受信部の構成を示す図。
【図１１Ａ】実施形態２に係るデータパス制御機構の動作を示す図。
【図１１Ｂ】実施形態２に係るデータパス制御機構の動作を示す図。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明の実施の形態を詳細に説明する。
【００１２】
＜＜実施形態１＞＞
（情報処理装置の構成）
図１は、本実施形態に係る情報処理装置の構成例を示す。制御部１００は、演算制御用のＣＰＵ１０１、固定データやプログラムを格納するＲＯＭ１０２、データの一時保存やプログラムのロードに使用されるＲＡＭ１０３、および外部データを保持する外部記憶装置１０４を有する。
【００１３】
データ入力部１１０は、処理すべきデータを取り込む部分である。データ入力部１１０は、例えば、イメージスキャナおよびＡ／Ｄ変換器などのデバイスによって構成される画像読み込み装置や、マイクおよびＡ／Ｄ変換などのデバイスによって構成される音声入力装置そのものであってもよい。また、データ入力部１１０は、入力装置からデータを取得する受信部であってもよい。データ処理部１２０は、後述するように、複数の処理モジュールによって並列処理を実行する。データ処理部１２０における処理の対象は、例えば画像データであるが、これに限らず、パイプライン処理などの一連のデータ処理に適したデータであればどのようなデータであってもよい。データ出力部１３０は、処理済みのデータを外部に出力する。データ出力部１３０は、例えば画像データを印字ドットパターンに変換して出力するプリンタデバイスを含む画像出力装置や、音声データをＤ／Ａ変換器等を通して出力する音声出力装置であってもよい。また、データ出力部１３０は、単に外部装置へデータを送信するためのインタフェースであってもよい。
【００１４】
制御部１００は、データ入力部１１０に入力されたデータを受信すると、ＣＰＵ１０１で処理してもよいし、そのままＲＡＭ１０３や外部記憶装置１０４に一時記録してもよい。
【００１５】
データ処理部１２０は、データ入力部１１０からの入力データを直接受け取って処理を行ってもよいし、制御部１００からの指示とデータ供給を受けて処理を行ってもよい。また、データ処理部１２０の出力は、制御部１００に送られてもよいし、データ出力部１３０に直接送られてもよい。データ処理部１２０の処理内容は、制御部１００によって予め設定され、データ処理部１２０は、供給されたデータに対して設定された処理を実行する。
【００１６】
（データ処理部の構成）
図２は、本実施形態に係るデータ処理部１２０の構成例であり、各処理モジュール間をリング状にバス接続したデータパス制御機構の概略構成を示すブロック図である。以下では、このリング状のバスを「リングバス」と呼ぶ。図中、１２０１はデータ入出力部、１２０２−１〜１２０２−４は通信部、１２０３−２〜１２０３−４は通信部１２０２−２〜１２０２−４と一対一で設けられているデータ処理部である。
【００１７】
通信部１２０２−１〜１２０２−４は、各々隣接する通信部と接続され（但し、通信部１２０２−４は通信部１２０２−１に接続される）、リングバス１２０６の一部として特定の方向（第１の方向）から受信するデータを他方（第２の方向）へ送信する。つまり、通信部１２０２−１〜１２０２−４は、リングバス１２０６を構成すると共に、リングバス１２０６と入出力部１２０１または処理部１２０３との間でのデータの送受信を行う。
【００１８】
入力端子１５１より入力されたデータは入出力部１２０１を介して通信部１２０２−１に入力される。入力されたデータはパケット化され、リングバス１２０６上（リング上）を一方向に流れる。通信部１２０２は予め設定された情報に従って必要なパケットをリングバス１２０６より取り込み、取り込んだパケットからデータを抽出し、処理部１２０３が処理可能な場合、当該データを処理部１２０３に入力する。処理部１２０３では、所定のデータ処理（例えば色空間変換や解像度変換等）を行い、処理後のデータを通信部１２０２へ出力する。処理後のデータはリングバス１２０６に出力可能な場合、通信部１２０２においてパケット化され、リングバス１２０６へ送出される。このように、設定された順序に従って通信部１２０２−２〜１２０２−４が適切にデータを取り込み、処理後のデータを送出することによって、処理部１２０３−２〜１２０３−４においてデータが次々に処理される。そして、データに対する設定されたデータ処理が終了すると、そのデータは通信部１２０２−１に取り込まれ、入出力部１２０１を介して出力端子１５２より出力される。なお、処理部１２０３−２〜１２０３−４ではそれぞれ処理Ａ、Ｂ、およびＣを実行するものとする。
【００１９】
なお、入出力部１２０１は、外部の機器（またはモジュール）とのインタフェースを提供するものであり、通信部１２０２−１において直接外部の機器と情報の送受信が可能な場合は省略してもよい。また、入出力部１２０１のように入力部と出力部とを兼用する構成としてもよいし、入力部と出力部とがリングバス上の別の通信部１２０２に接続される構成としてもよい。さらに、入力部と出力部とが複数あってもよい。
【００２０】
（パケットのデータ構造）
図３にリングバス１２０６を流れるパケットのデータ構造を示す。図中、２０１はｖａｌｉｄフラグであり、パケットが有効であることを示す。２０２はｓｔａｌｌフラグでありパケットが受信保留されたことを示す。２０３はカウント値でありデータの送信順を示し、２０４はノードＩＤであり、データの論理的な接続を識別するための接続ＩＤを示す。２０５は通信部に入力または出力されるデータである。
【００２１】
通信部１２０２は、リングバス１２０６に送出されたパケットを解析して、ｖａｌｉｄフラグ２０１が有効で、ＩＤ２０４とカウント値２０３が通信部１２０２の内部で管理する値と一致するか否かを判定する。値が一致すると、通信部１２０２は、その通信部１２０２に直接接続される処理部１２０３が受信データを処理可能か否かを判定する。すなわち、例えば、図２の通信部１２０２−２であれば、対応する処理部１２０３−２がデータ処理可能か否かを判定する。通信部１２０２は、対応する処理部１２０３がデータ処理可能と判定すると、パケット内に含まれるデータをその処理部１２０３へ送る。同時に、リングバス１２０６で下流（後段）に繋がる通信部１２０２に対して、ｖａｌｉｄフラグ２０１及びｓｔａｌｌフラグ２０２を無効にしたパケット（以下、空パケットと称する）を送信する。
【００２２】
なお、設定により、処理部１２０３にデータを送る場合であっても、ｖａｌｉｄフラグ２０１を有効としたまま下流に送ってもよい。以下では、この設定を「ｅｒａｓｅモード」と呼び、ｅｒａｓｅモードが無効の場合は、処理部１２０３にデータを送信する場合でも、下流に繋がる通信部１２０２へｖａｌｉｄフラグ２０１を有効としたままのパケットを送信する。この設定は後述する分岐処理に使用される。但し、ｓｔａｌｌフラグ２０２は無効に設定される。この動作により、後述する保留パケットが不必要にリングバス１２０６上に滞留することを防ぐ。
【００２３】
通信部１２０２が受信したパケットは、ｖａｌｉｄフラグ２０１が有効でＩＤ２０４とカウント値２０３が通信部１２０２内部で管理する値と一致しても、通信部１２０２と対応する処理部１２０３がそのデータを処理できない場合がある。その場合、リングバス１２０６に、ｓｔａｌｌフラグ２０２を有効にしたパケット（以下、保留パケットと称する）を送出する。同様に、ｖａｌｉｄフラグ２０１が有効でＩＤ２０４が通信部１２０２内部で管理する値と一致するが、カウント値２０３が通信部１２０２内部で管理する値と一致しない場合も、通信部１２０２は、リングバス１２０６に保留パケットを送出する。また、受信したパケットが、ｖａｌｉｄフラグ２０１が有効であるがＩＤ２０４が通信部１２０２内部で管理する値と一致しない場合は、通信部１２０２は、パケットの内容を変更せず、当該パケットをリングバス１２０６へそのまま送出する。
【００２４】
なお、通信部１２０２−１は入力パケットのＩＤ２０４とカウント値２０３との一致を判断するための、内部で管理するＩＤ及びカウント値を２組有する。これにより、後述の分岐処理において、２つのデータフローで処理されたパケットを受け取り、出力端子１５２に出力することが可能となる。
【００２５】
ここで、２つの処理Ａ→Ｂ、Ａ→Ｃを同時に行うような分岐処理を行う場合の、図２のデータパス制御機構の動作の具体例について、図４を参照して説明する。なお、図中で丸で囲まれた番号は有効パケット（ｖａｌｉｄフラグ２０１が有効のパケット）を示し、丸の中の番号はパケットのカウント値２０３である。色が塗られた丸は空パケットを示す。また、太枠の丸はパケットのｓｔａｌｌフラグ２０２が有効のものを示す。
【００２６】
まず、不図示のＣＰＵ等により、各通信部１２０２内部に記憶されるＩＤの値を、分岐処理の実行のための値に設定する。すなわち、通信部１２０２−２においては、入出力部１２０１を介して通信部１２０２−１から入力されたデータを処理するようにＩＤの値が設定される。また、通信部１２０２−３および通信部１２０２−４では、通信部１２０２−２に対応する処理部１２０３−２が処理した後のデータを処理するように、ＩＤの値が設定される。また、通信部１２０２−３では、ｅｒａｓｅモードを無効に設定する。これにより、処理部１２０３−３が処理可能でデータが処理部に送られた場合でも、下流の通信部１２０２−４に有効なパケットを出力できる。これ以外の通信部１２０２のｅｒａｓｅモードは有効に設定されているものとする。
【００２７】
まず、通信部１２０２−１は、入出力部１２０１を介して入力端子１５１からデータを取得する（Ｓ１００）。取得されたデータはパケット化され、リングバス１２０６を介して通信部１２０２−２に入力される（Ｓ１０１）。この時パケットのｖａｌｉｄフラグ２０１は有効、ｓｔａｌｌフラグ２０２は無効である。入力されたパケットは、ｖａｌｉｄフラグ２０１が有効であり、ＩＤ２０４とカウント値２０３が通信部１２０２−２内部で管理する値と一致し、処理部１２０３−２が処理可能であるため、パケット内のデータが処理部１２０３−２に入力される。処理部１２０３−２では処理Ａが実行される（Ｓ１０２）。処理後のデータはリングバス１２０６にパケットとして出力され、通信部１２０２−３に入力される（Ｓ１０３）。
【００２８】
通信部１２０２−３では、入力パケットのｖａｌｉｄフラグ２０１が有効でＩＤ２０４とカウント値２０３が通信部１２０２−２内部で管理する値と一致し、処理部１２０３−３が処理可能なので、当該パケット内のデータを処理部１２０３−３へ出力する。処理部１２０３−３では、入力されたデータに処理Ｂが実行される（Ｓ１０４）。これと同時に、通信部１２０２−３のｅｒａｓｅモードは無効であるため、入力されたパケットがそのまま下流の通信部１２０２−４に出力される（Ｓ１０４）。処理部１２０３−３において処理されたデータはリングバス１２０６にパケットとして出力され（Ｓ１０５）、通信部１２０２−４、１２０２−１、および入出力部１２０１を介して出力端子１５２にデータが出力される（Ｓ１０６）。
【００２９】
通信部１２０２−３に入力され、そのまま出力されたパケットは、通信部１２０２−４に入力される（Ｓ１０４）。入力されたパケットは、ｖａｌｉｄフラグ２０１が有効で、ＩＤ２０４とカウント値２０３が通信部１２０２−４内部で管理する値と一致する。そして、処理部１２０３−４がデータを処理可能であるため、入力されたパケットに含まれるデータが処理部１２０３−４へ入力され、当該データに対して処理Ｃが実行される（Ｓ１０５）。処理されたデータはリングバス１２０６にパケットとして出力され、通信部１２０２−１と入出力部１２０１を介して、出力端子１５２に出力される（Ｓ１０７）。
【００３０】
次に、同様な分岐処理において、処理部１２０３−２と処理部１２０３−４はデータ処理可能であるが、処理部１２０３−３ではデータ処理できず保留パケットが発生する場合について１番目のデータを含むパケットを例として説明する。先の例と同様に、入力端子１５１から入力されたデータは、入出力部１２０１及び通信部１２０２−１を介して通信部１２０２−２に入力され、処理Ａが実行される（Ｓ１０３〜Ｓ１０５）。処理後のデータはリングバス１２０６にパケットとして出力され、通信部１２０２−３に入力される（Ｓ１０６）。この時パケットのｖａｌｉｄフラグ２０１は有効であり、ｓｔａｌｌフラグ２０２は無効である。
【００３１】
通信部１２０２−３では、入力されたパケットのｖａｌｉｄフラグ２０１が有効でＩＤ２０４とカウント値２０３が通信部１２０２−３内部で管理する値と一致しているが、対応する処理部１２０３−３がデータ処理をできない状態である。このため、パケットのｓｔａｌｌフラグ２０２を有効に設定し、保留パケットとしてリングバス１２０６に送出する（Ｓ１０７）。
【００３２】
通信部１２０２−４では、通信部１２０２−３が送出したパケットがｖａｌｉｄフラグ２０１が有効でＩＤ２０４とカウント値２０３が通信部１２０２−４内部で管理する値と一致する。そして、通信部１２０２−４に対応する処理部１２０３−４がデータ処理可能であるため、パケット内のデータが処理部１２０３−４へ入力され、当該データに対して処理Ｃが実行される（Ｓ１０８）。一方、通信部１２０２−４のｅｒａｓｅモードは有効であるため、通信部１２０２−４は空パケットを通信部１２０２−１に向けてリングバス１２０６上へ出力する（Ｓ１０８）。その後、処理部１２０３−４において処理されたデータはリングバス１２０６にパケットとして出力され、通信部１２０２−１を介して出力端子１５２に出力される（Ｓ１０９）。
【００３３】
この例では、通信部１２０２−３から入力された処理部Ｂで処理すべき保留パケットが削除され、空パケットになってしまったため、処理Ｂが実行できなくなる。このように、分岐処理では、他の分岐で処理を保留したデータを消去してしまうことがあるという課題がある。このため、本実施形態では、この課題を解決するような構成を提示することを１つの目的とする。
【００３４】
（通信部の構成）
図５は、通信部１２０２の概略構成を示すブロック図である。図示のように、通信部１２０２は受信部３０１、バッファ３０２、セレクタ３０３、送信部３０４を有する。また、入力端子３５７と出力端子３５９を有し、これらの端子により隣接する通信部１２０２と接続される。具体的には、入力端子３５７は隣接する通信部１２０２の出力端子３５９に接続され、出力端子３５９は、隣接する通信部１２０２の入力端子３５７に接続される。このようにして、リングバス１２０６において複数の通信部１２０２−１〜１２０２−４が接続される。なお、以下では、リングバス１２０６上で通信部１２０２に隣接する通信部１２０２について、入力端子３５７で接続する通信部１２０２を、上流側の隣接通信部１２０２と呼び、出力端子３５９で接続する通信部１２０２を下流側の隣接通信部１２０２と呼ぶ。なお、通信部１２０２は、信号線３５１〜３５６を有し、これらの信号線により、対応する処理部１２０３（１２０３−２〜１２０３−４のいずれか）と接続するものとする。
【００３５】
上流側の隣接通信部１２０２から入力されたパケットは、バッファ３０２に一時的に保持され、次のクロックサイクルでセレクタ３０３に出力される。受信部３０１は、入力端子３５７からのパケットを監視し、ｖａｌｉｄフラグ２０１が有効であるか、およびＩＤ２０４とカウント値２０３が受信部３０１の保持する値とそれぞれ一致するかを判定する。また、受信部３０１は、受信部３０１に接続されている処理部１２０３においてデータ処理が可能であるかを判定する。具体的には、信号線３５３のｓｔａｌｌ信号が有効でなければ、処理部１２０３でデータ処理可能であり、処理部１２０３へのデータ入力が可能であると判定する。
【００３６】
受信部３０１は、処理部１２０３においてデータ入力が可能であり、入力されたパケットのｖａｌｉｄフラグ２０１が有効で、ＩＤ２０４とカウント値２０３とが受信部３０１の保持する値とそれぞれ一致する場合、当該パケット中のデータを取り込む。このとき、受信部３０１は信号線３５１のｖａｌｉｄ信号を有効にして、信号線３５２から処理部１２０３へ取り込んだデータを出力する。また、受信部３０１は、パケットのデータの取り込み後、受信部３０１内で管理しているデータに付随のカウント値をインクリメントする。同時に信号線３６０を介して、バッファ３０２に格納されたパケットのｖａｌｉｄフラグ２０１のクリア（無効化）の制御をおこなう。また、信号線３６１を介して、バッファ３０２に格納されたパケットのｓｔａｌｌフラグ２０２の値を設定する。これらの制御の動作の詳細については後述する。
【００３７】
送信部３０４は、バッファ３０２から信号線３５８に出力されるパケットのｖａｌｉｄフラグ２０１を、信号線３６３を介して監視する。ｖａｌｉｄフラグ２０１が有効のときは、バッファ３０２の出力パケットを優先して出力端子３５９へ出力するため、送信部３０４は処理部１２０３からのデータを含むパケットを出力することができない。このため、送信部３０４は、信号線３５４を介してｓｔａｌｌ信号を有効とし、処理部１２０３からのデータの出力を保留させる。なお、バッファ３０２の出力パケットのｖａｌｉｄフラグ２０１が無効の時は、信号線３５４を介してｓｔａｌｌ信号を無効にし、処理部１２０３からのデータを受け付ける。なお、信号線３５８のｖａｌｉｄフラグ２０１が有効である場合、セレクタ３０３はバッファ３０２の出力を選択して出力する。
【００３８】
処理部１２０３においてデータ出力が可能な場合（信号線３５６のｖａｌｉｄ信号が有効の場合）、送信部３０４は信号線３６２におけるｖａｌｉｄフラグ２０１を有効にする。そして、送信部３０４は、自身の内部で管理しているカウント値とレジスタに設定されている接続ＩＤを付加してパケットを生成し、信号線３６２を介してセレクタ３０３に出力する。セレクタ３０３は、信号線３５８のｖａｌｉｄフラグ２０１が無効である場合に、送信部３０４の出力である信号線３６２を選択し、送信部３０４が生成したパケットを出力端子３５９からリングバス１２０６へと送出する。なお、パケットを生成すると表現しているが、概念的にはリングバス１２０６を流れる空パケットにデータを格納していることになる。パケット出力後、上述のカウント値はインクリメントされる。
【００３９】
（受信部の構成）
図６は、受信部３０１の概略構成を示すブロック図である。受信部３０１は、図示のように、レジスタ４０１（記憶部）、カウンタ４０２、比較部４０３、判定部４０４（切換部）、ｓｔａｌｌカウンタ４０５、ｅｒａｓｅモードレジスタ４０６を有する。
【００４０】
レジスタ４０１は、接続ＩＤが記憶されており、この接続ＩＤと、受信パケットのＩＤ２０４とが一致する場合、受信部３０１が接続する処理部１２０３がその受信パケットに含まれるデータを処理すべきであることを示す。カウンタ４０２は、処理を行うデータの順序を管理する。受信パケットのカウント値２０３とカウンタ４０２の値が一致する場合、受信部３０１が接続する処理部１２０３が次に処理すべきデータがその受信パケットに含まれることを示す。
【００４１】
比較部４０３は、受信パケットのｖａｌｉｄフラグ２０１、ｓｔａｌｌフラグ２０２、ＩＤ２０４、カウント値２０３を監視する。そして、受信パケットのｖａｌｉｄフラグ２０１が有効な場合、当該パケットのＩＤ２０４とレジスタ４０１に格納されている接続ＩＤとが一致するかどうか、更に当該パケットのカウント値とカウンタ４０２の値が一致するかどうかを比較する。比較部４０３は、接続ＩＤが一致した際には接続ＩＤ一致信号を、カウント値がカウンタ４０２の値と一致した際にはカウント値一致信号を、それぞれ「有効」として判定部４０４に出力する。また、比較部４０３では、入力されたパケットのｓｔａｌｌフラグ２０２が有効な場合、ｓｔａｌｌ有効信号を判定部４０４へ出力する。
【００４２】
判定部４０４は、接続ＩＤ一致信号、カウント値一致信号、ｓｔａｌｌ有効信号、信号線３５３を介した処理部１２０３のｓｔａｌｌ信号、ｓｔａｌｌカウンタ４０５、ｅｒａｓｅモードレジスタ４０６に基づいて、実行すべき処理を判定する。ここで、信号線３５３からのｓｔａｌｌ信号は、処理部１２０３が処理を実行できるかを示す信号であり、無効である場合に処理部１２０３が処理を実行でき、データを取り込むことができることを示す。
【００４３】
ｓｔａｌｌカウンタ４０５は、受信部３０１自身がｓｔａｌｌフラグ２０２を有効にしたときに１つだけカウントアップする（カウント値に１を加える）カウンタである。そして、ｓｔａｌｌカウンタ４０５は、ｓｔａｌｌフラグ２０２を有効としたパケットを後に処理することにより、カウント値から１だけ減算される。ｓｔａｌｌカウンタ４０５は、電源のオンなどにより動作開始される時にリセットされ、初期値は「０」とされる。そのため、受信部３０１自身が保留パケットを出力しない限り、値は「０」のままである。すなわち、ｓｔａｌｌカウンタ４０５は、受信部３０１自身が保留したパケットの個数、あるいは対応する処理部１２０３が処理を保留した後に、その後処理されず残ったデータの個数を示す。
【００４４】
なお、通信部１２０２は、このｓｔａｌｌカウンタの値が「０」より大きくｓｔａｌｌフラグ２０２が有効である時、又はｓｔａｌｌフラグ２０２が無効である時のみ、受信パケットのｓｔａｌｌフラグ２０２の値を変更することが許可される。すなわち、ｓｔａｌｌカウンタの値が「０」より大きくｓｔａｌｌフラグ２０２が有効である時にのみ、ｓｔａｌｌフラグ２０２を有効から無効へと変更することができる。そして、ｓｔａｌｌフラグ２０２が無効である時にのみ、ｓｔａｌｌフラグ２０２を無効から有効へと変更することができる。
【００４５】
また、ｅｒａｓｅモードレジスタ４０６は、制御部１００の設定によりｅｒａｓｅモードが有効または無効に設定された場合、その設定を記憶しておくレジスタである。なお、動作開始時以外であっても、モードを切り替える際（新たな処理を開始する際）、データ入力の開始前に、例えば制御部１００の指示によってリセットされることで、ｓｔａｌｌカウンタ４０５の値が「０」にクリアされてもよい。
【００４６】
（受信部の動作）
受信部３０１が、レジスタ４０１に記憶された接続ＩＤと同一のＩＤを有するパケットを受信した場合の動作は、大別すると２つの動作に分類される。すなわち、（１）受信パケットを解析し、処理部１２０３がデータ処理可能な場合にデータ２０５を処理部１２０３へ送信する受理動作と、（２）処理部１２０３がデータ処理できない場合に、バッファ３０２に保留パケットを出力する保留動作である。なお、レジスタ４０１に記憶された接続ＩＤと異なるＩＤを有するパケットを受信した場合は、バッファ３０２に記憶されたパケットをそのまま隣接する通信部１２０２へ出力（スルー）する。
【００４７】
動作（１）は、さらに、（１−１）ｓｔａｌｌフラグ２０２の値を変更しない動作と、（１−２）ｓｔａｌｌフラグ２０２の値を変更する動作と、の２つの動作に分かれる。さらに、動作（１−１）は、（１−１−１）バッファ３０２に空パケットを格納する動作と、（１−１−２）バッファ３０２に有効パケットを格納する動作と、に分かれる。動作（１−２）も同様に、（１−２−１）バッファ３０２に空パケットを格納する動作と、（１−２−２）バッファ３０２に有効パケットを格納する動作と、に分かれる。動作（２）に関しては、（２−１）ｓｔａｌｌフラグ２０２を有効にする動作と、（２−２）ｓｔａｌｌフラグ２０２を変更しない動作、とに分かれる。これらのどれが選択されるかは、判定部４０４により決定される。以下、それぞれの動作について説明する。
【００４８】
（１）受理動作
（１−１）ｓｔａｌｌフラグ２０２の値を変更しない動作
この動作は、ｓｔａｌｌカウンタ４０５の値が「０」の場合の動作である。すなわち、受信部３０１において保留パケットを出力していない、または一旦保留したデータをすべて処理した後に、この動作を行うこととなる。
【００４９】
（１−１−１）バッファ３０２に空パケットを格納する動作
この動作は、ｅｒａｓｅモードが有効に設定されている通信部１２０２で、ｓｔａｌｌカウンタ４０５が０であることに加えて、所定の条件を満たす場合に実行される。その所定の条件とは、受信パケットに含まれるｖａｌｉｄフラグが有効であり、接続ＩＤ一致信号とカウント値一致信号が共に有効であり、ｓｔａｌｌ有効信号が無効であり、さらに信号線３５３上のｓｔａｌｌ信号が無効なことである。
【００５０】
この動作では、バッファ３０２のパケットを無効化するために、信号線３６０を介してバッファ３０２に記憶されたパケットのｖａｌｉｄフラグ２０１をクリアする制御を行う。同時に、信号線３６１を介して、バッファ３０２にｓｔａｌｌフラグ２０２の制御信号を出力する。ｓｔａｌｌフラグの制御には、セット（有効化）、クリア（無効化）、保持（何もしない）の３種類があるが、ここでは、ｓｔａｌｌカウンタ４０５の値が「０」であるため、「保持」の制御信号を出力する。
【００５１】
また、この動作の実行時には、判定部４０４は、受信して処理部１２０３へ送信したデータに続くデータを取得するために、次のクロックサイクルにおいて、カウンタ４０２にカウント値をインクリメント（カウント値に１を加算）させる。例えば、カウンタ４０２にカウント有効信号を有効として通知し、カウンタ４０２はその通知を受信することに応じてカウント値をインクリメントするようにする。同時に、判定部４０４は信号線３５１のｖａｌｉｄ信号を有効にし、信号線３５２を介してパケットに含まれるデータ２０５を処理部１２０３へ出力する。
【００５２】
（１−１−２）バッファ３０２に有効パケットを格納する動作
この動作は、ｅｒａｓｅモードが有効に設定されている通信部１２０２で、ｓｔａｌｌカウンタ４０５が０であることに加えて、所定の条件を満たす場合に実行される。その所定の条件とは、受信パケットに含まれるｖａｌｉｄフラグが有効であり、接続ＩＤ一致信号とカウント値一致信号が共に有効であり、ｓｔａｌｌ有効信号が有効であり、さらに信号線３５３上のｓｔａｌｌ信号が無効なことである。
【００５３】
また、この動作は、ｅｒａｓｅモードが無効とされている通信部１２０２で、ｓｔａｌｌカウンタ４０５が０であることに加えて、所定の条件を満たす場合にも実行される。その条件とは、受信パケットに含まれるｖａｌｉｄフラグ、接続ＩＤ一致信号、カウント値一致信号が全て有効であり、さらに信号線３５３上のｓｔａｌｌ信号が無効であることである。
【００５４】
この場合、判定部４０４は、バッファ３０２のｖａｌｉｄフラグ２０１をクリアせずに有効のままとする。また、ｓｔａｌｌフラグ２０２についても、ｓｔａｌｌカウンタ４０５が「０」であるため、「保持」とする。その他の、カウント値のインクリメントやデータの出力等の制御については（１−１−１）の動作と同様であるため、説明を省略する。
【００５５】
（１−２）ｓｔａｌｌフラグ２０２を無効にする動作
この動作は、ｓｔａｌｌカウンタ４０５の値が「０」でない場合であって、所定の条件を満たす場合の動作である。所定の条件とは、受信パケットに含まれるｖａｌｉｄフラグが有効であり、接続ＩＤ一致信号とカウント値一致信号が共に有効であり、ｓｔａｌｌ有効信号が有効であり、さらに信号線３５３上のｓｔａｌｌ信号が無効なことである。
【００５６】
ｓｔａｌｌカウンタ４０５の値が「０」より大きい場合は、受信部３０１自身がｓｔａｌｌフラグ２０２を有効としたパケットを出力したことがあることを示す。この状態でｓｔａｌｌフラグ２０２が有効のパケットを受信すると、そのパケットに含まれるデータを処理部１２０３に処理させることにより、バッファ３０２のｓｔａｌｌフラグ２０２を無効にすることが可能である。なお、この時、判定部４０４は、処理部１２０３がｓｔａｌｌフラグ２０２が有効のパケットに含まれるデータを処理することに伴い、ｓｔａｌｌカウンタ４０５の値をデクリメント（１だけ減算）させる。例えば、判定部４０４は、ｓｔａｌｌカウンタ４０５に、カウントダウン命令を含むカウント制御信号を出力し、次のクロックサイクルでｓｔａｌｌカウンタ４０５にカウント値をデクリメントさせる。なお、ｓｔａｌｌカウンタ４０５の最小値は「０」であり「０」までデクリメントすると、その後は値を保持する。
【００５７】
（１−２−１）バッファ３０２に空パケットを格納する動作
この動作は、ｅｒａｓｅモードが有効に設定されている通信部１２０２で実行される。この場合の動作は、（１−１−１）の動作とほぼ同様であり、バッファ３０２に記憶されたパケットのｖａｌｉｄフラグ２０１を無効にする。ただし、（１−１−１）の動作と異なり、判定部４０４は、バッファ３０２に記憶されたパケットのｓｔａｌｌフラグ２０２をクリアする制御信号を出力する。その他の、カウント値のインクリメントやデータの出力等の制御については（１−１−１）の動作と同様であるため、説明を省略する。
【００５８】
（１−２−２）バッファ３０２に有効パケットを格納する動作
この動作は、ｅｒａｓｅモードが無効に設定されている通信部１２０２で実行される。この場合の動作は、（１−２−１）の動作と同様に、判定部４０４は、バッファ３０２に記憶されたパケットのｓｔａｌｌフラグ２０２をクリアする制御信号を出力する。ただし、判定部４０４は、バッファ３０２に記憶されたパケットについて、ｖａｌｉｄフラグ２０１をクリアすることはせず、有効のままとする。その他の、カウント値のインクリメントやデータの出力等の制御については（１−１−１）の動作と同様であるため、説明を省略する。
【００５９】
（２）保留動作
信号線３５３を介したｓｔａｌｌ信号が有効である場合、処理部１２０３がデータを取り込めないため、保留動作を行う。この場合、判定部４０４はｓｔａｌｌ有効信号及びｓｔａｌｌカウンタ４０５の値を参照して、バッファ３０２のｓｔａｌｌフラグ２０２を設定するか否かを判定する。同時に、判定部４０４は信号線３５１のｖａｌｉｄ信号を無効にする。
【００６０】
（２−１）ｓｔａｌｌフラグ２０２を変更する動作
この動作は、接続ＩＤ一致信号とカウント値一致信号が有効で、ｓｔａｌｌ有効信号が無効の場合で、信号線３５３を介したｓｔａｌｌ信号が有効の場合に実行される。また、接続ＩＤ一致信号が有効で、カウント値一致信号とｓｔａｌｌ有効信号が無効である場合に、ｓｔａｌｌカウンタ４０５の値が０でない場合にも実行される。前者の場合、受信パケットに含まれるデータを、処理部１２０３が取り込むことができないため、受信パケットのｓｔａｌｌフラグを有効とするものである。後者の場合、受信パケットより前のカウント値を有するパケットを受信部３０１自身が保留したと考えられるため、受信パケットのｓｔａｌｌフラグを有効とするものである。この場合、判定部４０４は、バッファ３０２に記憶されたパケットのｓｔａｌｌフラグ２０２をセットする制御信号を出力する。また、ｓｔａｌｌカウンタ４０５を１だけカウントアップするように制御信号を出力する。この場合は、処理部１２０３でデータを取り込めないため、判定部４０４は信号線３５１のｖａｌｉｄ信号を無効とする。また、カウンタ４０２の値も変えない。
【００６１】
（２−２）ｓｔａｌｌフラグ２０２を変更しない動作
この動作は、接続ＩＤ一致信号とカウント値一致信号が有効で、ｓｔａｌｌ有効信号が有効の場合で、信号線３５３を介したｓｔａｌｌ信号が有効の場合に実行される。この場合、保留パケットを出力することになるが、判定部４０４は既にｓｔａｌｌフラグ２０２は有効であるため変更しない。また、ｓｔａｌｌカウンタ４０５もカウントアップせず値を保持する。
【００６２】
（送信部の構成）
図７は、送信部３０４の概略構成を示すブロック図である。図示のように送信部３０４は、レジスタ５０１（記憶部）、カウンタ５０２、パケット生成部５０３を有する。信号線３６３を介してバッファ３０２の出力パケットのｖａｌｉｄフラグ２０１がパケット生成部５０３に入力される。また、そのｖａｌｉｄフラグ２０１は、信号線３５４を介して処理部１２０３へも出力される。さらに、処理部１２０３は、信号線３５５と信号線３５６を介して、それぞれデータ及びデータ有効信号（ｖａｌｉｄ信号）をパケット生成部５０３に入力する。パケット生成部５０３は生成したパケットを信号線３６２を介してセレクタ３０３へ出力する。
【００６３】
パケット生成部５０３は、接続されている処理部１２０３から信号線３５６を介して伝達されるｖａｌｉｄ信号を参照し、ｖａｌｉｄ信号が有効の場合、処理部１２０３からのデータ出力が可能であると判定する。処理部１２０３からのデータ出力が可能であると判定した場合で、信号線３５４のｖａｌｉｄフラグ２０１が無効の時、パケット生成部５０３はカウンタ５０２のカウント値とレジスタ５０１に設定されている出力接続ＩＤを格納するパケットを生成する。ここで、パケット生成部５０３は、生成するパケットのｖａｌｉｄフラグを有効に、ｓｔａｌｌフラグを無効に設定する。さらに、信号線３５５を介して処理部１２０３が処理したデータパケットのデータ２０５に格納する。そして、パケット生成部５０３はセレクタ３０３にパケットを出力する。そして、次のクロックサイクルにおいて、カウンタ５０２はカウント値をインクリメント（カウント値に１を加算）する。なお、通信部１２０２において、送信部３０４のカウンタ５０２と受信部３０１のカウンタ４０２は、同期を確保するため、制御部１００によりデータ転送開始に先だって同じ値に初期化される。
【００６４】
なお、通信部１２０２は、受信パケットについて、ｓｔａｌｌフラグ２０２が無効かつＩＤ２０４がレジスタ５０１に格納されている出力接続ＩＤと等しい場合は、自分が出力したパケットが後段で処理されなかったものとみなし、ｖａｌｉｄフラグ２０１を無効にしてパケットを消去する（空パケットにする）。パケットを消去する理由は、通信部１２０２が出力したパケットが後段で処理されず、また処理の保留も発生しなかったため、当該パケットに含まれるデータを処理すべきモジュールがもはや存在しないと判断できるからである。
【００６５】
（データパス制御機構の動作）
次に図８Ａおよび図８Ｂを用いて、図５〜７に示した本実施形態に係る通信部１２０２を用いた場合の図２の構成のデータパス制御機構における分岐処理の動作を説明する。図８Ａおよび図８Ｂでは、通信部１２０２−１〜１２０２−４のそれぞれにおける受信部３０１の状態を処理ステップに分けて示している。分岐処理として、Ａ→Ｂ及びＡ→Ｃの並列処理を行う。なお、通信部１２０２−１〜１２０２−４内のレジスタ４０１、レジスタ５０１の値は、制御部１００により分岐処理の実行のための値に設定されているものとする。また、通信部１２０２−３のｅｒａｓｅモードレジスタ４０６は無効に設定され、それ以外の通信部は有効に設定されているものとする。
【００６６】
なお、図中で丸で囲まれた番号は有効パケット（ｖａｌｉｄフラグ２０１が有効のパケット）を示し、丸の中の番号はパケットのカウント値２０３であり、太い枠の丸はパケットのｓｔａｌｌフラグ２０２が有効であることを示す。有効パケットの下の数字４０２、４０５、３５３はそれぞれカウンタ４０２の値、ｓｔａｌｌカウンタ４０５の値、信号線３５３を介して入力されるｓｔａｌｌ信号の状態を示す。なお、説明を簡略化するため、処理部１２０３−２、入出力部１２０１は常にデータを処理可能で、通信部１２０２−２及び１２０２−１からは保留パケットが出力されないものとする。
【００６７】
また、図では、信号線３５３の状態は、ｓｔａｌｌ有効信号が無効でありデータ処理可能である場合を「ｉｎｖａｌｉｄ」、信号線３５３のｓｔａｌｌ有効信号が有効でありデータ処理できない場合を「ｖａｌｉｄ」と記載している。
【００６８】
まず、入力端子１５１から０番目のデータが入力され（Ｓ０）、通信部１２０２−１から当該データを含むパケットが出力される。次に、通信部１２０２−２は、処理部１２０３−２がデータ処理可能（信号線３５３がｉｎｖａｌｉｄ）であるため、通信部１２０２−１が送出したパケットを受信すると、そのパケットに含まれる０番目のデータを取り込む。そして、カウンタ４０２に１を加算（インクリメント）して「１」とする（Ｓ１）。そして、データを処理部１２０３−２へ送信するとともに、空パケットを出力する（Ｓ２）。処理部１２０３−２はデータの処理を行い（Ｓ２）、通信部１２０２−２は、処理Ａの実行後のデータをパケット化してリングバス１２０６に出力する（Ｓ３）。なお、この受信動作は上述の動作（１−１−１）に該当する。
【００６９】
通信部１２０２−３は、処理部１２０３−３がデータ処理可能（信号線３５３がｉｎｖａｌｉｄ）であるため、処理部１２０３−２で処理済みの０番目のデータを受信パケットから取り込み、カウンタ４０２をインクリメントして「１」とする（Ｓ３）。そして、通信部１２０２−３では、ｅｒａｓｅモードが無効となっていることから、処理部１２０３−３へデータを送信すると共に、受信した有効なパケットをリングバス１２０６上へ出力する（Ｓ４）。処理部１２０３−３は、受信したデータに対して処理Ｂを実行する（Ｓ４）。処理後のデータは、通信部１２０２−３へ出力され、通信部１２０２−３は当該データをパケット化してリングバス１２０６に出力する（Ｓ５）。この動作は上述の動作（１−１−２）に該当する。その後、当該処理後のデータを含むパケットは、通信部１２０２−４をスルーされ（Ｓ５）、１２０２−１を介して処理後のデータが出力端子１５２に出力され、パケットが消去される（Ｓ６）。なお、処理Ｂの実行後、処理部１２０３−３はデータ処理ができない状態になる（信号線３５３がｖａｌｉｄとなる）ものとする。
【００７０】
通信部１２０２−４は、処理部１２０３−４がデータ処理可能（信号線３５３がｉｎｖａｌｉｄ）であるため、処理部１２０３−２で処理済みの０番目のデータを含むパケットを取り込み、カウンタ４０２をインクリメントして「１」とする（Ｓ４）。処理部１２０３−４は、通信部１２０２−４が取り込んだデータに対して処理Ｃを実行し、処理後のデータを通信部１２０２−４へ返す（Ｓ５）。通信部１２０２−４は、受信したデータをパケット化してリングバス１２０６に出力する。なお、通信部１２０２−４は、Ｓ６においては、通信部１２０２−３から受信したパケットを転送するため、処理Ｃを実行後のデータを含むパケットは、Ｓ７においてリングバス１２０６上へ出力される。この動作は上述の場合（１−１−１）に該当する。出力されたパケットは、１２０２−１を介して処理後のデータが出力端子１５２に出力され、パケットが消去される（Ｓ７）。
【００７１】
次に、１番目のデータを含むパケット（カウント値２０３が１のパケット）について説明する。１番目のデータはＳ３において入力端子１５１から入力され、通信部１２０２−１においてパケット化され、リングバス１２０６上へ出力される（Ｓ４）。通信部１２０２−２は、処理部１２０３−２がデータ処理可能であるため、当該パケットからデータを取り込み、カウンタ４０２をインクリメントして「２」とする（Ｓ４）。その後、取り込んだデータを処理部１２０３−２へ出力し、処理部１２０３−２は、当該データに処理Ａを実行する（Ｓ５）。処理後のデータは通信部１２０２−２へ入力され、通信部１２０２−２は、当該データをパケット化してリングバス１２０６に出力する（Ｓ６）。なお、本受信動作も上述の動作（１−１−１）に該当する。
【００７２】
通信部１２０２−３は、処理部１２０３−３がデータ処理不能（信号線３５３がｖａｌｉｄ）であるため、処理部１２０３−２で処理済みの１番目のデータを含むパケットを取り込むことができない（Ｓ６）。このため、通信部１２０２−３は、ｓｔａｌｌカウンタ４０５をインクリメントして「１」とし、バッファ３０２内のパケットのｓｔａｌｌフラグ２０２を有効にする（Ｓ６）。この動作は上述の動作（２−１）に該当する。
【００７３】
通信部１２０２−４は、処理部１２０３−４がデータ処理可能であるため、処理部１２０３−２で処理済みの１番目のデータを含むパケットを取り込み、カウンタ４０２をインクリメントして「２」とする（Ｓ７）。そして、通信部１２０２−４は、取り込んだデータを処理部１２０３−４へ入力すると共に、バッファ３０２内のパケットをｖａｌｉｄフラグ２０１及びｓｔａｌｌフラグ２０２は変更せずにリングバス１２０６上へ出力する（Ｓ８）。この動作は上述の動作（１−１−２）に該当する。処理部１２０３−４は、入力されたデータに対して処理Ｃを実行し、処理後のデータを通信部１２０２−４へ返す（Ｓ８）。通信部１２０２−４は処理後のデータをパケット化してリングバス１２０６に出力し、処理後のデータは、通信部１２０２−１を介して出力端子１５２に出力され、消去される（Ｓ９）。
【００７４】
ここで、１番目のデータと並行して２番目のデータがＳ６において入力端子１５１から入力されるものとする。入力されたデータは、通信部１２０２−１においてパケット化され、リングバス１２０６上へ出力される（Ｓ７）。通信部１２０２−２は、処理部１２０３−２がデータ処理可能であるため、当該パケットからデータを取り込み、カウンタ４０２をインクリメントして「３」とする（Ｓ７）。その後、取り込んだデータを処理部１２０３−２へ出力し、処理部１２０３−２は、当該データに処理Ａを実行する（Ｓ８）。処理後のデータは通信部１２０２−２へ入力され、通信部１２０２−２は、当該データをパケット化してリングバス１２０６に出力する（Ｓ９）。なお、本受信動作も上述の動作（１−１−１）に該当する。
【００７５】
ここで、処理部１２０３−３は、Ｓ８において、データ処理可能となったものとする。通信部１２０２−３は、処理部１２０３−３がデータ処理可能であるため、受信パケットのＩＤやカウント値と、通信部１２０２−３内部に記憶された値とを比較する。しかしながら、この場合、受信パケットのカウント値２０３（２）と、カウンタ４０２の値（１）が異なる。この場合、接続ＩＤ一致信号は有効であるが、カウント値一致信号とｓｔａｌｌ有効信号が無効であり、さらにｓｔａｌｌカウンタが０でないため、ｓｔａｌｌカウンタ４０５の値をインクリメントして「２」とする（Ｓ９）。また、バッファ３０２においてパケットのｓｔａｌｌフラグ２０２を有効として、当該パケットをリングバス１２０６上へ出力する。この動作は上述の動作（２−１）に該当する。
【００７６】
その後、通信部１２０２−３は、以前に保留した１番目のデータを含むパケットを受信する（Ｓ１０）。この時点では、処理部１２０３−３はデータ処理可能であるため、カウント値をインクリメントし、ｓｔａｌｌカウントをデクリメントする。同時に、バッファ３０２に記憶されているパケットのｓｔａｌｌフラグ２０２をクリアする。ただし、ｖａｌｉｄフラグはクリアしない。この動作は上述の動作（１−２−２）に該当する。そして、当該パケットからデータを取り出し、処理部１２０３−３に出力する。処理部１２０３−３は、当該データに対して処理Ｂを実行し（Ｓ１１）、通信部１２０２−３へ返す。通信部１２０２−３は、受信した処理後のデータをパケット化してリングバス１２０６上へ出力する（Ｓ１２）。当該パケットは、通信部１２０２−４をスルーされ（Ｓ１２）、１２０２−１を介して出力端子１５２から出力され、消去される（Ｓ１３）。なお、ｓｔａｌｌフラグ２０２をクリアされた分岐パケットは、通信部１２０２−２に到達すると、ｓｔａｌｌフラグ２０２が無効かつＩＤ２０４がレジスタ５０１に格納されている出力接続ＩＤと等しいので、通信部１２０２−２により自分が出力したパケットが後段で処理されなかったものとみなされ、消去される（ｖａｌｉｄフラグがクリアされる）（Ｓ１３）。
【００７７】
また、通信部１２０２−４は、通信部１２０２−３が保留しリングバス１２０６上へ出力した２番目のデータを含むパケットを受信する（Ｓ１０）。ここで、Ｓ８において、処理部１２０３−４はデータ処理ができない状態となったものとする。この場合、接続ＩＤ一致信号とカウント値一致信号とｓｔａｌｌ有効信号が全て有効であり、処理部１２０３−４からのｓｔａｌｌ信号が有効であるため、上述の動作（２−２）を実行する。すなわち、通信部１２０２−４は、ｓｔａｌｌフラグ２０２を変更せずにバッファ３０２のパケットをリングバス１２０６上へ出力し、さらにｓｔａｌｌカウンタ４０５も値を保持する（Ｓ１０）。
【００７８】
ここで２番目のデータを含むパケットは、通信部１２０２−１と通信部１２０２−２をスルーされ（Ｓ１１、Ｓ１２）、通信部１２０２−３により受信される。通信部１２０２−３では、処理部１２０３−３がデータ処理可能であるため、受信パケットから２番目のデータを取り込み、カウンタ４０２をインクリメントして「３」とする（Ｓ１３）。また、ｓｔａｌｌカウンタ４０５をデクリメントする。また、バッファ３０２に記憶されたパケットのｓｔａｌｌフラグ２０２を無効とし、ｖａｌｉｄフラグは変更せずに、当該パケットをリングバス１２０６上へ出力する（Ｓ１４）。この動作は、上述の動作（１−２−２）に該当する。
【００７９】
通信部１２０２−３が取り込んだデータは、処理部１２０３−３へ出力され、処理部１２０３−３は当該データに対して処理Ｂを実行する（Ｓ１４）。処理部１２０３−３は処理後のデータを通信部１２０２−３へ出力し、通信部１２０２−３は、処理後のデータをパケット化してリングバス１２０６に出力する（Ｓ１６）。その後、当該パケットは、通信部１２０２−４、１２０２−１を介して処理後のデータが出力端子１５２に出力され、パケットが消去される（Ｓ１７）。なお、このパケットがＳ１５で送出されない理由は、バッファ３０２に３番目のデータを含む有効なパケットが記憶され、そのパケットの送出を優先したからである。
【００８０】
なお、Ｓ１３でｓｔａｌｌフラグ２０２を無効とされたパケットは、通信部１２０２−４により受信される（Ｓ１４）。通信部１２０２−４は、当該パケットについて、ｖａｌｉｄフラグ、接続ＩＤ一致信号、カウント値一致信号の全てが有効であり、ｓｔａｌｌ有効信号が無効で、処理部１２０３−４がデータ処理可能であるため、当該パケットからデータを取り込む。そして、カウンタ４０２をインクリメントして「３」とする（Ｓ１４）。この動作は上述の動作（１−１−１）に該当する。その後、取り込んだデータを処理部１２０３−４へ出力し、処理部１２０３−４は、当該データに処理Ｃを実行する（Ｓ１５）。処理後のデータは通信部１２０２−４へ入力され、通信部１２０２−４は、当該データをパケット化してリングバス１２０６に出力する（Ｓ２０）。ここで、このパケットがＳ１６〜Ｓ１９でリングバス１２０６上へ出力されない理由は、バッファ３０２に有効なパケットが続けて入力され、それらのパケットを優先して出力したからである。リングバス１２０６上へ出力されたパケットは、通信部１２０２−１が受信し、パケットに含まれるデータが出力端子１５２に出力された後に消去される。
【００８１】
また、Ｓ１０において、３番目のデータが入力端子１５１から入力され、通信部１２０２−１は当該データをパケット化してリングバス１２０６上へ出力する（Ｓ１１）。通信部１２０２−２は、処理部１２０３−２が処理可能であるため、１番目のデータを含むパケットを取り込み、カウンタ４０２をインクリメントして「４」とする。この動作も上述の動作（１−１−１）に該当する。通信部１２０２−２はパケットからデータを取り込み、当該データを処理部１２０３−２へ出力する。処理部１２０３−２はデータに対して処理Ａを実行し、処理後のデータを通信部１２０２−２へ返す（Ｓ１２）。通信部１２０２−２は、受信したデータをパケット化してリングバス１２０６に出力する（Ｓ１４）。なお、このパケットをＳ１３で出力しない理由は、通信部１２０２−３が保留した２番目のデータを含むパケットの送出を優先したからである。
【００８２】
通信部１２０２−３は、処理部１２０３−３が処理可能であるため、３番目のデータを含むパケットを取り込み、カウンタ４０２をインクリメントして「４」とする。そして、通信部１２０２−３は、取り込んだデータを処理部１２０３−３へ出力し、処理部１２０３−３はデータに対して処理Ｂを実行する（Ｓ１５）。また、通信部１２０２−３は、ｅｒａｓｅモードが無効であるため、バッファ３０２に記憶されたパケットのｖａｌｉｄフラグをそのまま維持して、当該パケットをリングバス１２０６上へ出力する（Ｓ１５）。この動作は、上述の動作（１−１−２）に該当する。処理後のデータは通信部１２０２−３へ戻され、通信部１２０２−３は、当該データをパケット化してリングバス１２０６上へ出力する（Ｓ１６）。リングバス１２０６上へ出力されたパケットは、通信部１２０２−１で受信され、当該パケットに含まれるデータが出力端子１５２へ出力された後に消去される（Ｓ１７）。
【００８３】
通信部１２０２−４は、通信部１２０２−３から出力された分岐処理のためのパケットを受信する（Ｓ１５）。このとき、Ｓ１４の動作の後に、処理部１２０３−４がデータ処理ができない状態になったものとする。すると、通信部１２０２−４は、処理部１２０３−４がデータ処理不能であるため、受信パケットに含まれるデータを取り込めない。このため、ｓｔａｌｌカウンタ４０５をインクリメントして「１」とする。そしてバッファ３０２に記憶されたパケットのｓｔａｌｌフラグ２０２を有効にして、リングバス１２０６上へ出力する（Ｓ１６）。この動作は上記の動作（２−１）に該当する。
【００８４】
通信部１２０２−４で保留された３番目のデータを含むパケットは、通信部１２０２−１〜通信部１２０２−３をスルーして（Ｓ１６〜Ｓ１８）、再度、通信部１２０２−４により受信される（Ｓ１９）。なお、処理部１２０３−４は、パケットの受信前にデータ処理が可能な状態となったものとする。通信部１２０２−４は、処理部１２０３−４がデータ処理可能であることから、パケットに含まれるデータを取り込み、カウント値をインクリメントし、ｓｔａｌｌカウントをデクリメントする（Ｓ１９）。このとき、通信部１２０２−４はｅｒａｓｅモードが有効であるため、バッファ３０２に記憶されたパケットのｖａｌｉｄフラグを無効とする。この動作は上述の動作（１−２−１）に該当する。取り込まれたデータは処理部１２０３−４へ入力され、処理部１２０３−４は、データに対して処理Ｃを実行する（Ｓ２０）。処理後のデータは通信部１２０２−４へ戻され、通信部１２０２−４は、当該データをパケット化してリングバス１２０６上へ出力する（不図示）。
【００８５】
４番目のデータと５番目のデータを含むパケットについても、上述の動作と同様に処理が行われる。このように、ｓｔａｌｌカウンタ４０５の値により、保留動作を実行した通信部１２０２を特定することにより、自モジュールが出力した保留パケットは、他の分岐のモジュールで削除されることがなくなる。これにより、リングバスを用いたデータパス制御機構において、分岐処理が正常に実行可能となる。なお、ｓｔａｌｌカウンタ４０５のビット数は、保留パケットなしの状態（カウント値「０」）に、リングバス上のすべての空パケットを消費するする状態分のカウントができればよい。例えば、本実施形態の場合、リングバス１２０６上に４つの通信部１２０２があるため、ｓｔａｌｌカウンタ４０５は３ビット分だけ用意すれば十分である。
【００８６】
＜＜実施形態２＞＞
次に本発明の一実施形態である実施形態２を説明する。情報処理装置と、情報処理装置内のデータ処理部は実施形態１と同様に、図１および図２のような構成を備える。
【００８７】
（パケットのデータ構造）
図９にリングバス１２０６を流れるパケットのデータ構造を示す。図中、実施形態１の図２と同じ機能を有する部品は同一の記号を付し、説明を省略する。異なる点はｓｔａｌｌフラグ２０２がｓｔａｌｌＩＤ８０２に置き換わっていることである。ｓｔａｌｌＩＤ８０２は保留パケットを出力した分岐番号を格納する領域である。ここで、分岐番号とは例えば処理Ａ→Ｂ、Ａ→Ｃの分岐処理を行う場合、分岐の枝としては処理Ｂ、処理Ｃの２つが存在する。それぞれの枝を特定するために、それぞれの通信部１２０２内の後述するｓｔａｌｌＩＤレジスタ１００５に分岐番号を格納する。したがって、この場合、ｓｔａｌｌＩＤ８０２とは、処理Ｂ、処理Ｃのいずれで処理が保留されたかが特定できる情報であればどのようなものであってもよい。ここでは説明をわかりやすくするため、例えば、入出力、処理Ａ、処理Ｂおよび処理Ｃそれぞれの枝に対して「１」、「１」、「２」、「３」を格納する。そして、それぞれの枝で保留パケットを出力した時、パケット上のｓｔａｌｌＩＤ８０２にｓｔａｌｌＩＤレジスタ１００５の分岐番号を格納する。なお、ｓｔａｌｌＩＤ８０２が「０」の時は保留パケットでないことを示す。
【００８８】
本実施形態では、通信部１２０２は実施形態１と同様、図５のような構成を有する。ただし、信号線３６１は、バッファ３０２に記憶されたパケットのｓｔａｌｌＩＤ８０２を設定するのに使用される。
【００８９】
（受信部の構成および動作）
また、本実施形態に係る受信部３０１の構成を図１０に示す。実施形態１の場合と比較すると、受信部３０１は、ｓｔａｌｌカウンタ４０５に代えてｓｔａｌｌＩＤレジスタ１００５を備えた点と、比較部４０３と判定部４０４への配線、および比較部４０３と判定部４０４の動作が異なる。本実施形態では、受信部３０１は、受信パケットのｓｔａｌｌＩＤ８０２がｓｔａｌｌＩＤレジスタ１００５の分岐番号と一致した時のみ、バッファ３０２に記憶されているパケットのｓｔａｌｌＩＤ８０２を無効とすることができる。
【００９０】
なお、受信部３０１の比較部４０３では、実施形態１の場合、ｓｔａｌｌフラグ２０２が無効であるかを監視したが、本実施形態ではｓｔａｌｌＩＤ８０２が「０」でないかを監視する。なお、ｓｔａｌｌＩＤ８０２が「０」の場合の動作は、実施形態１においてｓｔａｌｌフラグ２０２が無効である場合の動作と一致する。一方、ｓｔａｌｌＩＤ８０２が「０」でない場合、比較部４０３は、受信パケットのｓｔａｌｌＩＤ８０２がｓｔａｌｌＩＤレジスタに記憶された値と一致する場合、ｓｔａｌｌＩＤ一致信号を「有効」として、判定部４０４へ出力する。なお、ｓｔａｌｌ有効信号は、ｓｔａｌｌＩＤが「０」でない場合に有効となる。
【００９１】
判定部４０４では、信号線３６１を介して、ｓｔａｌｌＩＤ８０２の制御信号をバッファ３０２へ出力する。制御の種類は、クリアと保持については実施形態１と同様であるが、セットについては、ｓｔａｌｌＩＤレジスタ１００５に記憶された値をパケットのｓｔａｌｌＩＤ８０２に書き込む制御となる。また、本実施形態ではｓｔａｌｌカウンタ４０５がないため、カウントアップやカウントダウンの制御信号を出力することはない。
【００９２】
判定部４０４の動作は、動作（１−１）については実施形態１と同様である。一方、動作（１−２）については、ｓｔａｌｌＩＤ一致信号が有効である場合に動作する。ｓｔａｌｌＩＤ一致信号が有効ということは、受信部３０１自らが保留としたパケットを受信したことを示す。このため、当該パケットに含まれるデータを対応する処理部１２０３に出力すると同時に、バッファ３０２に記憶されたパケットのｓｔａｌｌＩＤ８０２をクリア（無効化）する。なお、ｖａｌｉｄフラグについては、上述の（１−２−１）および（１−２−２）の動作と同様に、ｅｒａｓｅモードが有効か無効かにより、無効化するか、そのまま維持するかを決定する。動作（２−１）については、接続ＩＤ一致信号とカウント値一致信号が有効で、ｓｔａｌｌ有効信号が無効の場合で、信号線３５３を介したｓｔａｌｌ信号が有効の場合に実行されるのは実施形態１と同様である。しかし、接続ＩＤ一致信号が有効で、カウント値一致信号とｓｔａｌｌ有効信号が無効である場合は、ｓｔａｌｌＩＤ一致信号が有効である場合に実行される点で実施形態１と異なる。すなわち、実施形態１におけるｓｔａｌｌカウンタ４０５が「０」以外である、との条件に代えて、本実施形態では、ｓｔａｌｌＩＤ一致信号が有効である、という条件を用いる。バッファ３０２に記憶されたパケットのｓｔａｌｌＩＤ８０２に、ｓｔａｌｌＩＤレジスタ１００５に記憶された値を書き込む。一方、動作（２−２）については、実施形態１と同様である。
【００９３】
なお、通信部１２０２は、ｓｔａｌｌＩＤ８０２が０の場合、又はｓｔａｌｌＩＤ８０２がｓｔａｌｌＩＤレジスタ１００５に格納されている分岐番号と一致する場合にのみ、ｓｔａｌｌＩＤ８０２の値を変更することが許可される。すなわち、ｓｔａｌｌＩＤ８０２が０の場合は、ｓｔａｌｌＩＤ８０２の値をｓｔａｌｌＩＤレジスタ１００５に格納されている分岐番号へ変更することが許可される。そして、ｓｔａｌｌＩＤ８０２がｓｔａｌｌＩＤレジスタ１００５に格納されている分岐番号と一致する場合に、ｓｔａｌｌＩＤ８０２の値をクリアして０へ変更することが許可される。
【００９４】
（送信部の構成）
送信部３０４は、実施形態１と同様、図７のような構成を有する。送信部３０４の動作は実施形態１と同様である。ただし、処理部１２０３から出力されたデータをパケット化する場合、ｓｔａｌｌＩＤ８０２を「０」とする。
【００９５】
（データパス制御機構の動作）
次に図１１Ａおよび図１１Ｂを用いて、実施形態２に係るデータパス制御機構の分岐処理の動作を説明する。分岐処理としてはＡ→Ｂ及びＡ→Ｃの並列処理を行う。なお、制御部１００により、通信部１２０２−１〜４内のレジスタ４０１、レジスタ５０１の値が分岐処理を実現するための値に設定されているものとする。また、通信部１２０２−３のｅｒａｓｅモードレジスタ４０６は無効に設定され、それ以外の通信部１２０２のｅｒａｓｅモードは有効に設定されている。さらに、通信部１２０２−１〜４内のｓｔａｌｌＩＤレジスタ１００５にはそれぞれ１、１、２、３の分岐番号が設定されるものとする。
【００９６】
また、図中番号付きの丸は有効パケット（ｖａｌｉｄフラグ２０１が有効）を示し、丸の中の番号はパケットのカウント値２０３であり、太枠の丸はパケットのｓｔａｌｌＩＤ８０２が「０」以外であるものを示す。なお、太枠の丸の中の「Ｘ−Ｙ」の表記は、Ｘ番目のデータを含むパケットであって、ｓｔａｌｌＩＤ８０２がＹである、ということを示す。灰色の丸は空パケットを示す。有効パケットの下の数字４０２、３５３はそれぞれカウンタ４０２の値、信号線３５３を介して入力されるｓｔａｌｌ信号の状態を示す。なお、説明を簡略化するため、処理部１２０３−２、入出力部１２０１は常に処理可能で、通信部１２０２−２及び１２０２−１からは保留パケットが出力されないものとする。
【００９７】
Ｓ２００〜Ｓ２０５の動作は図８のＳ０〜Ｓ５と同様である。Ｓ２０６において、処理部１２０３−３でｓｔａｌｌ信号が有効であると判定されるが、本実施形態ではｓｔａｌｌカウンタ４０５がないため、そのカウントアップは発生しない。ただし、Ｓ２０７において出力されるパケットについて、ｓｔａｌｌＩＤ８０２は、通信部１２０２−３のｓｔａｌｌＩＤレジスタ１００５に記憶された値である「２」として設定される。このため、図中のＳ２０７の通信部１２０２−４に到達するパケットは太枠の中の数字が「１−２」となっている。その後の処理についても、同様に、保留が発生すると、通信部１２０２のｓｔａｌｌＩＤレジスタ１００５に記憶された値が、パケットのｓｔａｌｌＩＤ８０２に書き込まれる。このように、本実施形態では、実施形態１でｓｔａｌｌカウンタ４０５の値をインクリメントしていたところ、代わりにバッファ３０２に記憶されたパケットのｓｔａｌｌＩＤ８０２をｓｔａｌｌＩＤレジスタ１００５に記憶された値とする。同様に、本実施形態では、受信パケットのｓｔａｌｌＩＤ８０２がｓｔａｌｌＩＤレジスタ１００５に記憶された値と一致する場合、当該パケットに含まれるデータに対して処理を実行し、ｓｔａｌｌＩＤをクリアする制御を行う。このとき、通信部１２０２は、実施形態１におけるｓｔａｌｌカウンタ４０５のデクリメントのような、内部状態の変化は伴わない。このように、ｓｔａｌｌＩＤ８０２とｓｔａｌｌカウンタ４０５との関係で動作が変化するが、それ以外の動作は実施形態１とほぼ同様となる。このため、他のステップについては説明を省略する。
【００９８】
以上のように、保留パケットを出力したモジュールや分岐の枝を特定するようにしたことにより、保留パケットの出力を伴う複雑な分岐処理が実現可能となる。また、リングバス上のモジュール数の増加や分岐数の増加に対しては、ｓｔａｌｌカウンタのビット数やｓｔａｌｌＩＤのビット数を増加させることにより容易に対応可能である。このように、本実施形態により、簡易なハードウエアで複雑な分岐処理に対応可能となる。
【００９９】
＜＜その他の実施形態＞＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005922898.tif 000002
【図２】
0005922898.tif 000003
【図３】
0005922898.tif 000004
【図４】
0005922898.tif 000005
【図５】
0005922898.tif 000006
【図６】
0005922898.tif 000007
【図７】
0005922898.tif 000008
【図８Ａ】
0005922898.tif 000009
【図８Ｂ】
0005922898.tif 000010
【図９】
0005922898.tif 000011
【図１０】
0005922898.tif 000012
【図１１Ａ】
0005922898.tif 000013
【図１１Ｂ】
0005922898.tif 000014