(57)【要約】【課題】  複数のモジュールがリングバスで接続された情報処理システムにおいて、不要なパケットをリングバスから削除することでデータ転送効率の向上を計る。【解決手段】データ処理を行う複数のモジュールがリングバスで接続された情報処理システムに関する。特に、パケットのフラグを監視し不要なパケットをリングバスから取り除くことで効率よくデータ転送が行えるリングバス制御技術に関する。【選択図】  図３
2010200034.tif 000002
【特許請求の範囲】
【請求項１】
リングバスを介して接続された複数のモジュールを有し、該複数のモジュールのそれぞれはデータを格納するパケットを隣接する一方のモジュールから受信し、所定の処理を行った後に隣接する他方のモジュールへ送信するように構成された情報処理装置であって、
各モジュールは、
他のモジュールから受信したパケットを識別して、自モジュールにおいて処理すべきパケットであるか否かを判定するパケット識別手段と、
前記パケット識別手段が自モジュールにおいて処理すべきパケットであると判定した場合に、当該パケットから処理対象のデータを抽出するパケット受信手段と、
抽出された前記データを処理する処理手段と、
前記処理手段が前記データを処理する場合に、前記受信したパケットにおけるデータの有効性を表す第１のフラグを、該データが無効であることを示す値に設定するパケット変更手段と、
パケットを前記他方のモジュールに送信する送信手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記パケット変更手段は、前記処理手段が前記データを処理できない場合に、前記受信したパケットにおける第２のフラグを初期値から変更することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記各モジュールは、
前記第１のフラグの設定を行うことが自モジュールにおいて許可されるか否かを示す設定値を有するレジスタをさらに備え、
前記パケット変更手段は、前記処理手段が前記データを処理する場合であって、かつ、前記レジスタの設定値が前記第１のフラグの設定を許可する値を有する場合に、前記第１のフラグをパケットのデータが無効であることを示す値に設定することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記パケット識別手段は、前記受信したパケットについて前記第１のフラグ及び前記第２のフラグの値と、該パケットの送信元が自モジュールであるか否かとを更に判定し、
前記パケット識別手段が、前記第１のフラグが前記受信したパケットのデータが有効であることを示す値に設定され、かつ、前記第２のフラグに前記初期値が設定されており、かつ、前記受信したパケットの送信元が自モジュールである、と判定した場合に、
前記パケット変更手段は、前記受信したパケットにおける前記第１のフラグを、該パケットのデータが無効であることを示す値に設定し、
前記送信手段は、前記パケット変更手段が前記受信したパケットにおける前記第１のフラグを該パケットのデータが無効であることを示す値に設定したパケットを前記他方のモジュールへ送信する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記各モジュールは、
前記処理手段において処理されたデータを含むパケットを生成するパケット生成手段をさらに備え、
前記パケット識別手段は、前記受信したパケットについて前記第１のフラグの値を更に判定し、
前記パケット識別手段が、前記第１のフラグが前記受信したパケットのデータが無効であることを示す値に設定されていると判定した場合に、前記パケット生成手段は、
前記受信したパケットのデータ格納領域に前記処理手段において処理されたデータを格納し、
前記第１のフラグをパケットのデータが有効であることを示す値に設定し、
前記第２のフラグを前記初期値に設定し、
生成するパケットの送信元に自モジュールを特定するための識別子を設定して
パケットを生成し、
前記送信手段は、前記パケット生成手段が生成したパケットを前記他方のモジュールへ送信することを特徴とする請求項２または４に記載の情報処理装置。
【請求項６】
リングバスを介して接続された複数のモジュールを有し、該複数のモジュールのそれぞれはデータを格納するパケットを隣接する一方のモジュールから受信し、所定の処理を行った後に隣接する他方のモジュールへ送信するように構成された情報処理装置の制御方法であって、
各モジュールにおいて、
他のモジュールから受信したパケットを識別して、自モジュールにおいて処理すべきパケットであるか否かを判定するパケット識別工程と、
前記パケット識別工程において自モジュールにおいて処理すべきパケットであると判定された場合に、当該パケットから処理対象のデータを抽出するパケット受信工程と、
抽出された前記データを処理手段が処理する処理工程と、
前記処理手段が前記データが処理する場合に、前記受信したパケットにおけるデータの有効性を表す第１のフラグを、該データが無効であることを示す値に設定するパケット変更工程と、
パケットを前記他方のモジュールに送信する送信工程と
を備えることを特徴とする情報処理装置の制御方法。
【請求項７】
前記処理手段が前記データを処理できない場合に、前記受信したパケットにおける第２のフラグを初期値から変更する工程をさらに備えることを特徴とする請求項６に記載の情報処理装置の制御方法。
【請求項８】
前記各モジュールは、
前記第１のフラグの設定を行うことが自モジュールにおいて許可されるか否かを示す設定値を有するレジスタをさらに備え、
前記制御方法は、前記各モジュールにおいて
前記パケット変更工程では、前記処理手段が前記データを処理する場合であって、かつ、前記レジスタの設定値が前記第１のフラグの設定を許可する値を有する場合に、前記第１のフラグがパケットのデータが無効であることを示す値に設定されることを特徴とする請求項６または７に記載の情報処理装置の制御方法。
【請求項９】
前記パケット識別工程では、前記受信したパケットについて前記第１のフラグ及び前記第２のフラグの値と、該パケットの送信元が自モジュールであるか否かとが更に判定され、
前記パケット識別工程において、前記第１のフラグが前記受信したパケットのデータが有効であることを示す値に設定され、かつ、前記第２のフラグに前記初期値が設定されており、かつ、前記受信したパケットの送信元が自モジュールである、と判定された場合に、
前記パケット変更工程では、前記受信したパケットにおける前記第１のフラグが、該パケットのデータが無効であることを示す値に設定され、
前記送信工程では、前記パケット変更工程において前記受信したパケットにおける前記第１のフラグが該パケットのデータが無効であることを示す値に設定されたパケットが前記他方のモジュールへ送信される
ことを特徴とする請求項７に記載の情報処理装置の制御方法。
【請求項１０】
前記各モジュールにおいて、
前記処理手段において処理されたデータを含むパケットを生成するパケット生成工程をさらに備え、
前記パケット識別工程では、前記受信したパケットについて前記第１のフラグの値が更に判定され、
前記パケット識別工程において、前記第１のフラグが前記受信したパケットのデータが無効であることを示す値に設定されていると判定された場合に、前記パケット生成工程では、
前記受信したパケットのデータ格納領域に前記処理手段において処理されたデータを格納し、
前記第１のフラグをパケットのデータが有効であることを示す値に設定し、
前記第２のフラグを前記初期値に設定し、
生成するパケットの送信元に自モジュールを特定するための識別子を設定して
パケットを生成し、
前記送信工程では、前記パケット生成工程において生成されたパケットを前記他方のモジュールへ送信することを特徴とする請求項７または９に記載の情報処理装置の制御方法。
【請求項１１】
コンピュータを請求項１乃至５のいずれか１項に記載の情報処理装置として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置及びその制御方法、コンピュータプログラムに関する。
【背景技術】
【０００２】
従来、リング状通信ネットワーク（回路網）は種々のものが提案され、広く知られている。例えば、LAN(ローカルエリアネットワーク)の規格にトークンリングなるものがある（非特許文献１参照）。
【０００３】
以下、トークンリング方式におけるデータ転送に関して簡単に説明する。データを送信したいノードはまずリングバスを周回しているフリートークンと呼ばれるどのノードも占有していないトークンを獲得する。そして、フリートークンを獲得したノードはトークンに宛先識別子や処理データをコピーしてリングバスに送出し宛先モジュールに送信する。上記のようにトークンリング方式ではトークン(Token)というフレームをリングバス上に配置されたノードからノードへ、さらに次のノードへと次々に転送して目的の端末に送信する。
【０００４】
一方、受信側ノードは自らを宛先とするトークンを受信した場合は、処理データをコピーして受信が完了したことを示す受信完了フラグを設定し受信したトークンを再度リングバスに投入する。これは、送信元ノードに対してデータ転送が成功したことを伝えるために行うのであり、送信元ノードは前記受信完了フラグが設定されていないトークンが戻ってきた場合は同じトークンを再送する。このようにトークンの受信完了フラグを設定し送信元ノードに返送することでデータ転送を実現している。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】ISO/IEC 8802-5:1998
【発明の概要】
【発明が解決しようとする課題】
【０００６】
データ処理を行う複数のモジュールがリングバスで接続された情報処理システムにおいて、上記説明したようなトークンリングバス方式を適用する場合、受信成功の成否に関わらずトークンを送信元に返送しなければならない。つまり、受信が成功していたとしても返送トークンを送信元が開放するまで誰もデータをトークンにコピーできないので効率的ではない。
【０００７】
そこで、本発明ではデータ処理を行う複数のモジュールがリングバスで接続された情報処理システムにおいて、効率よくパケットの転送を行うための技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するための本発明は、リングバスを介して相互接続された複数のモジュールを有し、該複数のモジュールのそれぞれはデータを格納するパケットを隣接する一方のモジュールから受信し、所定の処理を行った後に隣接する他方のモジュールへ送信するように構成された情報処理装置であって、各モジュールは、他のモジュールから受信したパケットを識別して、自モジュールにおいて処理すべきパケットであるか否かを判定するパケット識別手段と、前記パケット識別手段が自モジュールにおいて処理すべきパケットであると判定した場合に、当該パケットから処理対象のデータを抽出するパケット受信手段と、抽出された前記データを処理する処理手段と、前記処理手段が前記データを処理する場合に、前記受信したパケットにおけるデータの有効性を表す第１のフラグを、該データが無効であることを示す値に設定するパケット変更手段と、パケットを前記他方のモジュールに送信する送信手段とを備える。
【発明の効果】
【０００９】
本発明によれば、データ処理を行う複数のモジュールがリングバスで接続されたデータ処理システムにおいて、受信モジュールでパケットを無効にするので、効率よくパケットの転送を行うための技術を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】データ処理システムの構成の一例を示す図。
【図２】データ処理部１０４の構成例を示す図。
【図３】実施形態１のモジュールの構成例を示す図。
【図４】パケットのフォーマットの一例を示す図。
【図５】実施形態１の処理データ送信部３０３及び受信部３１１での処理例のフローチャート。
【図６】処理データ受信部３０５及び送信部３１２での処理例のフローチャート。
【図７】実施形態２のモジュールの構成例を示す図。
【図８】実施形態２の処理データ送信部３０３及び受信部３１１での処理例のフローチャート。
【発明を実施するための形態】
【００１１】
以下に本願発明の実施形態を示す。本実施形態は、データ処理を行う複数のモジュールがリングバスで接続されたデータ処理システムに関する。
もちろん以下の実施形態は、本願発明の技術分野における当業者による実施を容易にするために開示を提供するものであり、特許請求の範囲によって確定される本願発明の技術的範囲に含まれるほんの一部の実施形態にすぎない。従って、本願明細書に直接的に記載されていない実施形態であっても、技術思想が共通する限り本願発明の技術的範囲に包含されることは当業者にとって自明であろう。
【００１２】
なお、便宜上複数の実施形態を記載するが、これらは個別に発明として成立するだけでなく、もちろん、複数の実施形態を適宜組み合わせることでも発明が成立することは、当業者であれば容易に理解できよう。
【００１３】
＜実施形態１＞
本実施形態における情報処理システムの構成について図１を用いて説明する。ＣＰＵ１０１は、データ処理システムの全体動作を制御する機能を有する制御部である。ＲＡＭ１０２は、ＣＰＵ１０１で処理される入力データや、処理後の出力データ、およびデータ処理部１０４への設定パラメータデータなどを格納する読み書き可能なメモリである。ＲＯＭ１０３は、ＣＰＵ１０１の処理手順や、設定パラメータ等の定数などを保持可能な読み出し可能なメモリである。データ処理部１０４は、本発明で開示する構成ならびにモジュールを具備するデータ処理部である。各モジュールはリングバスで接続されている。データ処理部１０４はプログラム可能なカスタムＩＣチップで実現してもよい。当該チップは、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）等を含む。
【００１４】
ここで図２を参照して、データ処理部１０４の構成を説明する。データ処理部１０４は複数個のモジュール２０１から２０４を有する。リングバス２０５は、モジュール間でパケットを転送するためのバスである。モジュール２０１から２０４はリングバス２０５を介して接続されている。各モジュールはデータパケットを隣接する一方のモジュールから受信し、所定の処理を行った後に隣接する他方のモジュールへ送信するように構成される。各モジュールが送受信するパケットはリングバスを一方向に移動する。以降の説明では単方向にデータ（又はパケット）を周回させるリング状のバスを単にリングバスと称す。
【００１５】
入出力バッファ２０６は、データの入出力を行うためのバッファである。本実施形態のモジュール２０１乃至２０４は、それぞれを識別するためのデータ処理部識別情報を有しているところ、図２では簡単のために「ID」と記述している。以下の発明の実施形態の説明においても「ID」と記述する。なお、IDが１のモジュール２０１は、入出力バッファ２０６と接続されて、データの入出力を管理する。
【００１６】
次に、図３を参照して、データ処理部内の各モジュール２０１乃至２０４の構成を説明する。図３において、パケット識別部３０１は、他のモジュールから到来したパケットを取り込むか否かを判断する。パケット識別部３０１は自らが待ち受けているIDと一致する送信元IDを保持するパケットを受信した時にパケットをパケット受信部３０２に出力する。
【００１７】
パケット受信部３０２はパケットの受信処理を行う。処理データ送信部３０３は、処理部３０４に処理データを送信する。処理部３０４は実際のデータ処理を行う。処理データ受信部３０５は、処理部３０４からの処理後データを受信する。パケット生成部３０６は、処理部３０４から受信した処理後データとパケット変更部３０８からの出力をもとにパケットを生成する。
【００１８】
パケット送信部３０７はパケットをリングバスに送出する。パケット変更部３０８は、パケット受信部３０２からの指示に応じて、図４を参照して後述するパケットのデータ有効フラグ４０１や保留フラグ４０４の値を変更する。セレクタ３０９は、パケット送信部３０７からのパケットとパケット変更部３０８からのパケットのいずれかをパケット送信部３０７からの指示に基づいて選択する。セレクタ３０９はパケット送信部３０７からの指示がなければパケット変更部３０８からの出力を選択してそれを出力とする。バッファ３１０はパケットを次から次へと転送するためのバッファである。
【００１９】
上記の構成において、モジュール２０１、２０２、２０３及び２０４が処理部３０４と通信部３１３とを有している。そして、通信部３１３が処理データ送信部３０３、処理データ受信部３０５、セレクタ３０９、バッファ３１０、受信部３１１、及び、送信部３１２を有している。さらに、受信部３１１はパケット識別部３０１、パケット受信部３０２及びパケット変更部３０８を有している。また、送信部３１２がパケット生成部３０６とパケット送信部３０７とを有している。
【００２０】
本実施形態では以下の説明において、処理部３０４が１つの入力データを処理することで、１つの出力データを出力する場合を用いて説明する。その際、処理部３０４に対して入力データが入力されてから出力データが得られるまでの間は、更なる入力データを入力することはできないものとする。そのため、処理部３０４の状態によりパケット受信部３０２はパケットの受信を保留しなければならないこともある。
【００２１】
次にモジュール間でデータを送受信するために必要なパケットのフォーマットを図４に示す。データ有効フラグ４０１は、パケット中のデータが有効性を判断するために利用される第１のフラグ情報である。例えば、データ有効フラグ４０１が「１」であればデータは有効であり、「０」であればデータは無効であるとする。
【００２２】
送信元ＩＤ４０２は、パケットを送信したモジュールの識別子を格納する送信元の識別子である。データ格納領域４０３は処理データ本体を格納する領域である。保留フラグ４０４は、モジュールがパケットの処理を保留した際に「１」に設定される第２のフラグ情報である。即ち、保留フラグ４０４が「１」であればパケット処理が保留されたことを示している。なお、処理の保留は、例えば該当モジュールが受信したものの、処理部３０４がビジー状態であったためデータを処理できなかった場合に行われる。保留フラグ４０４は初期値として「０」に設定される。即ち、保留フラグが初期値を有するということは、まだ該パケットを受信対象としているリングバス上のモジュールが処理していないことを意味する。
【００２３】
また、各モジュールは待ち受けパケットIDを設定でき、パケット識別部３０１は、待ち受けパケットIDとリングバスを流れるパケットの送信元ID４０２とが一致した時にパケットを取り込む。例えば、モジュール1、モジュール4、モジュール2、モジュール3、モジュール1の順でデータパスを構成したい場合を考える。この場合、モジュール1の待ち受けパケットIDを３に、モジュール2の待ち受けパケットIDを４に、モジュール3の待ち受けパケットIDを２に、モジュール4の待ち受けパケットIDを１に設定する。このようにして各モジュールの待ち受けパケットIDをそれぞれ設定することで、データパスを形成することができる。なお、待ち受けパケットIDは、各モジュールについて事前に設定され、その情報はパケット識別部３０１が記憶するものとする。
【００２４】
次に、通信部３１３におけるデータ受信方法に関して説明する。例えば、図２においてID＝１のモジュール１からID＝３のモジュール3にデータ転送を行う場合を考える。このとき、モジュール3のパケット識別部３０１はデータ有効フラグ４０１が有効となっているパケットを取得し、該パケットの送信元ID４０２と自らの待ち受けパケットIDとを比較する。もし、両者が等しい場合には、該パケットをパケット受信部３０２に送信する。
【００２５】
処理データ送信部３０３は、処理部３０４が処理可能であるかどうかを判定し、処理可能と判定した場合、パケット受信部３０２は取得したパケットから処理対象データを抽出して処理データ送信部３０３に送信する。その場合、該パケットはすでに不要であるからパケット受信部３０２はパケットのデータ有効フラグ４０１を無効（０）に設定するようにパケット変更部３０８に指示を出す。
【００２６】
一方、処理データ送信部３０３が処理部３０４は処理不可能であると判定した場合、パケット受信部３０２はパケットの保留フラグ４０４を１に設定するようにパケット変更部３０８に指示を出す。パケット変更部３０８は、パケット受信部３０２からの指示に従ってデータ有効フラグ４０１或いは保留フラグ４０４を変更して、セレクタ３０９に送信する。セレクタ３０９は、パケット変更部３０８とパケット送信部３０７からの入力のうちいずれかを選択してバッファ３１０に送信する。
【００２７】
次に、図５を参照して、処理データ送信部３０３及び受信部３１１における処理を説明する。まず、ステップＳ５０１では、前段に位置するモジュールからパケット識別部３０１がパケットを取得する。ステップＳ５０２では、パケット識別部３０１がパケットのデータ有効フラグ４０１が有効（１）か否かを判断する。もし、有効であれば（ステップＳ５０２で「ＹＥＳ」）、ステップＳ５０３に移行する。一方、有効でなければ（ステップＳ５０２で「ＮＯ」）、本処理を終了する
続くステップＳ５０３では、パケット識別部３０１がパケットの送信元ID４０２と、モジュールに設定された待ち受けパケットIDとが等しいか否かを判断する。もし、等しいと判断した場合は（ステップＳ５０３において「ＹＥＳ」）、ステップＳ５０４に移行する。一方、等しいと判断しなかった場合（ステップＳ５０３において「ＮＯ」）、本処理を終了する。
【００２８】
続くステップＳ５０４では、処理データ送信部３０３が処理部３０４がデータ受け渡し可能な状態であるかを判断する。データ受け渡し可能な状態であると判断した場合は（ステップＳ５０４において「ＹＥＳ」）、ステップＳ５０５に移行する。一方、データ受け渡し可能な状態でないと判断した場合（ステップＳ５０４において「ＮＯ」）、ステップＳ５０６に移行する。
【００２９】
ステップＳ５０５では、パケット受信部３０２がパケットから処理データを抽出して処理データ送信部３０３に送信し、データが処理データ送信部３０３から処理部３０４に渡され、ステップＳ５０７に移行する。また、ステップＳ５０６では、パケット受信部３０２がパケットの保留フラグ４０４を１に設定するようにパケット変更部３０８に指示する。これにより、保留フラグ４０４が初期値（０）から（１）に変更される。ステップＳ５０７では、パケット受信部３０２がパケットのデータ有効フラグ４０１を０に設定するようにパケット変更部３０８に指示する。
【００３０】
次に、処理データ受信部３０５及び送信部３１２におけるデータ送信手順を説明する。例えば図２においてID＝１のモジュール１からID＝３のモジュール3にデータ転送を行う場合を考える。このとき、まずモジュール１のパケット生成部３０６はデータ有効フラグ４０１が無効（０）となっているパケットをパケット変更部３０８から取得する。
【００３１】
そして該パケットのデータ格納領域４０３に処理データ受信部３０５から得られた送信データを格納し、送信元ID４０２にモジュール１のIDである１を格納する。また、保留フラグ４０４を初期値（０）に設定し、データ有効フラグ４０１を１に設定してパケット送信部３０７に送信する。パケット送信部３０７はパケット生成部３０６から取得したパケットをセレクタ３０９に出力する。そのとき同時にセレクタ３０９に対してパケット送信部３０７からの出力が選択されるように選択信号を出力する。
【００３２】
また、パケット生成部３０６はパケットの保留フラグ４０４を監視する。自らが送出したパケットの保留フラグが１に設定されることなく戻ってきた場合は、データ有効フラグ４０１を０に設定し、受け取り手がいないパケットがリングバスを占有しないようにする。逆に保留フラグ４０４が１に設定されていた場合は、そのままパケットをリングバスに送出する。
【００３３】
次に、図６を参照して、処理データ受信部３０５及び送信部３１２における処理を説明する。図６において、ステップＳ６０１で、パケット生成部３０６が受信部３１１のパケット変更部３０８からパケットを取得する。ステップＳ６０２においてパケット生成部３０６は、受信したパケットのデータ有効フラグ４０１が０であるか否かを判断する。データ有効フラグ４０１が０でないと判断した場合（ステップＳ６０２において「ＮＯ」）、ステップＳ６０３に移行する。一方、データ有効フラグ４０１が０であると判断した場合（ステップＳ６０２において「ＹＥＳ」）、ステップＳ６０６に移行する。
【００３４】
ステップＳ６０３では、パケット生成部３０６がパケットの保留フラグ４０４が１であるか否かを判断する。もし、１であると判断した場合（ステップＳ６０３において「ＹＥＳ」）、処理を終了する。この場合、パケット変更部３０８からのパケットはセレクタ３０９及びバッファ３１０を経て次のモジュールに送信される。また、保留フラグ４０４が１でない、即ち初期値のままであると判断した場合（ステップＳ６０３において「ＮＯ」）、ステップＳ６０４に移行する。
【００３５】
ステップＳ６０４では、パケット生成部３０６が、パケットの送信元ID４０２と自モジュールのIDとが等しいか否かを判断する。もし、等しいと判断した場合（ステップＳ６０４において「ＹＥＳ」）、ステップＳ６０５に移行する。ステップＳ６０５では、パケットのデータ有効フラグ４０１を０に設定し、ステップＳ６１１に移行する。一方、等しくないと判断した場合（ステップＳ６０４において「ＮＯ」）、本処理を終了する。この場合も、パケット変更部３０８からのパケットはセレクタ３０９及びバッファ３１０を経て次のモジュールに送信される。
【００３６】
ステップＳ６０６では、処理部３０４から有効な処理後データが得られたか否かを判断する。有効な処理後データが得られた場合（ステップＳ６０６において「ＹＥＳ」）、ステップＳ６０７に移行する。一方、有効な処理後データが得られなかった場合（ステップＳ６０６において「ＮＯ」、本処理を終了する。
【００３７】
ステップＳ６０７では、処理部３０４から取得した処理後データをパケットのデータ格納領域４０３にコピーする。続くステップＳ６０８では、パケットのデータ有効フラグ４０１を１に設定する。さらにステップＳ６０９では、パケットの保留フラグ４０４を初期値（０）に設定する。さらにステップＳ６１０では、パケットの送信元ID４０２に自身のIDを設定する。ステップＳ６１１ではセレクタ３０９に対し、パケット送信部３０７からの入力を優先するように指示する。
【００３８】
以上説明したように本実施形態では、受信側モジュールにおいて受信パケットのデータを処理できた場合はパケットを無効化し、データを処理できなかった場合はパケットの保留フラグ４０４を１に設定し再度リングバスに再投入する。これにより、受信対象のパケットを受信側モジュールで管理し、送信側モジュールに対する再送要求パケットがリングバスに送出されないようにすることができる。また、送出パケットの保留フラグ４０４を送信側モジュールが監視して適宜パケットを無効化することで、不要なパケットをリングバスに周回させないようにし、モジュール間のデータ転送効率を上げることができる。
【００３９】
＜実施形態２＞
上記の実施形態では、パケットの宛先モジュールは１つであったが、宛先は１つでなく、データパスが分岐しても良い。例えば、図２においてモジュール2からの出力パケットをモジュール3及びモジュール4が待ち受けているような場合である。つまり、モジュール2以降のデータパスが分岐する。
【００４０】
上述の実施形態１では、処理部３０４に対してデータの受け渡しが成功したら受信パケットを無効化した。本実施形態でも、同様にしてモジュール3がパケットの受信に成功したからといってパケットを無効化してしまうと、モジュール4がパケットを受取れなくなってしまう。
【００４１】
そこで本実施形態の各モジュールは、処理部３０４へのデータの受け渡しに成功した場合に、パケットの無効化を許可するか否かを指定可能なパケット無効処理指示レジスタを更に有することを特徴とする。
【００４２】
図７は、実施形態２に対応するモジュールの構成例を示す図である。図７のモジュール構成図は基本的には図３と同様である。但し、受信部３１１内にパケット無効処理指示レジスタ７０１を更に有する点が異なる。本実施形態では、このレジスタ設定値が１であれば、処理部３０４の受信成功時にデータ有効フラグ４０１の値を設定して受信パケットを無効化することが許可される。一方、設定値が０であれば、処理部３０４の受信成功時にデータ有効フラグ４０１の値を設定して受信パケットを無効化することが許可されない。但し、パケット無効処理指示レジスタの設定仕様は上記のものに限定されるものではない。
【００４３】
パケット無効処理指示レジスタ７０１の設定は以下のようにして行う。まず、データパスが分岐しないことが想定される場合、全てのモジュールのパケット無効処理指示レジスタは１に設定される。この場合、受信成功時はパケットが無効化される。
【００４４】
一方、あるモジュールからの出力パケットを複数のモジュールが待ち受けているような場合、まず該複数のモジュールが待ち受けるパケットを送出する送信元モジュールを特定し、同様に該パケットを待ち受ける複数の受信元モジュールを特定する。
【００４５】
複数の受信元モジュールのうち、リングバスに沿って最も送信元モジュールから遠い位置に配置されているモジュールを特定し、このモジュールのパケット無効処理指示レジスタ７０１を１に設定する。また、当該モジュール以外のモジュールについて、パケット無効処理指示レジスタ７０１を０に設定する。
【００４６】
例えば、図２においてモジュール2から出力パケットをモジュール3及びモジュール4が待ち受けているようなデータパスの分岐が1箇所で発生する場合、送信元モジュールであるモジュール2から順方向にリングバスを辿っていく。パケットを待ち受けるモジュール3とモジュール4のうち、モジュール4の方がモジュール2から最も遠い位置に配置されている。そこで、モジュール3のパケット無効処理指示レジスタ７０１を０に設定し、モジュール4のパケット無効処理指示レジスタ７０１を１に設定する。
【００４７】
次に、図８を参照して、実施形態２における処理データ送信部３０３及び受信部３１１における処理を説明する。図８において、ステップＳ８０１では前段に位置するモジュールから、パケット識別部３０１がパケットを取得する。ステップＳ８０２では、パケット識別部３０１がパケットのデータ有効フラグ４０１が１か否かを判断する。もし、１であれば（ステップＳ８０２において「ＹＥＳ」）、ステップＳ８０３に移行する。一方、１でなければ（ステップＳ８０２において「ＮＯ」）、本処理を終了する。
【００４８】
ステップＳ８０３では、パケット識別部３０１がパケットの送信元ID４０２と設定された待ち受けパケットIDが等しいか否かを判断する。もし、等しいと判断した場合（ステップＳ８０３において「ＹＥＳ」）、ステップＳ８０４に移行する。一方、等しいと判断しなかった場合（ステップＳ８０３において「ＮＯ」）、本処理を終了する。
【００４９】
ステップＳ８０４では、処理データ送信部３０３が、処理部３０４がデータ受け渡し可能な状態であるかを判断する。もし、データ受け渡し可能な状態であると判断した場合（ステップＳ８０４において「ＹＥＳ」）、ステップＳ８０５に移行する。一方、データ受け渡し可能な状態でないと判断した場合（ステップＳ８０４において「ＮＯ」）、ステップＳ８０６に移行する。
【００５０】
ステップＳ８０５では、パケット受信部３０２がパケットから処理データを抽出して処理データ送信部３０３に送信し、処理データ送信部３０３からデータが処理部３０４に渡され、ステップＳ８０７に移行する。また、ステップＳ８０６では、パケット受信部３０２がパケットの保留フラグ４０４を１に設定するようにパケット変更部３０８に指示する。
【００５１】
一方、ステップＳ８０７では、パケット受信部３０２がパケット無効処理指示レジスタ７０１の設定値が１であるか否かを判断する。もし１であると判断した場合（ステップＳ８０７において「ＹＥＳ」）、ステップＳ８０８に移行する。一方、１でないと判断した場合（ステップＳ８０７において「ＮＯ」）、本処理を終了する。ステップＳ８０８では、パケット受信部３０２がパケットのデータ有効フラグ４０１を０に設定するようにパケット変更部３０８に指示する。
【００５２】
以上説明したように、データパスが分岐する場合でもモジュールにパケット無効処理指示レジスタ７０１を設け適宜設定することで、複数の待ち受けモジュール全てにパケットを送信することができる。
【００５３】
＜その他の実施形態＞
前述の各実施形態において、各工程は、ネットワーク又は各種記憶媒体を介して取得したソフトウエア（コンピュータプログラム）をコンピュータ等の処理装置（ＣＰＵ、プロセッサ）にて実行することでも実現できる。
【符号の説明】
【００５４】
１０１  CPU,１０２  RAM,１０３  ROM,１０４  データ処理部,２０１〜２０４  モジュール,２０５  リングバス,２０６  入出力バッファ,３０１  パケット識別部,３０２  パケット受信部,３０３  処理データ送信部,３０４  処理部,３０５  処理データ受信部,３０６  パケット生成部,３０７  パケット送信部,３０８  パケット変更部,３０９  セレクタ,３１０  バッファ,３１１  受信部,３１２  送信部,３１３  通信部
【図１】
2010200034.tif 000003
【図２】
2010200034.tif 000004
【図３】
2010200034.tif 000005
【図４】
2010200034.tif 000006
【図５】
2010200034.tif 000007
【図６】
2010200034.tif 000008
【図７】
2010200034.tif 000009
【図８】
2010200034.tif 000010
【手続補正書】
【提出日】平成21年12月28日(2009.12.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
リングバスに接続された複数のモジュールを有し、該複数のモジュールのそれぞれはデータを格納するパケットを隣接する一方のモジュールから受信し、所定の処理を行った後にパケットを隣接する他方のモジュールへ送信するように構成された情報処理装置であって、
各モジュールは、
他のモジュールから受信したパケットについて、当該パケットがモジュールで処理すべき有効なパケットであるかを示す第１のフラグと当該パケットが自モジュールで抽出すべきデータを有しているかを示す識別子とを参照し、当該パケットが自モジュールで処理するパケットであるかどうかを識別するパケット識別手段と、
前記パケット識別手段が、自モジュールにおいて処理すべきと識別した有効なパケットから処理対象のデータを抽出する抽出手段と、
前記抽出手段が抽出した前記データを処理する処理手段と、
前記処理手段が前記データを処理した場合に、前記抽出手段がデータを抽出したパケットの前記第１のフラグを、該パケットが無効なパケットであることを示す設定に変更するパケット変更手段と、
パケットを前記他方のモジュールに送信する送信手段であって、前記処理手段が前記データを処理し、前記パケット変更手段が前記第１のフラグの設定を変更した場合に、処理後のデータと変更後の前記第１のフラグを含むパケットを送信する、送信手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記パケット変更手段は、前記抽出手段が抽出したデータについて前記処理手段が処理を保留する場合に、前記受信したパケットの第２のフラグを、前記データの処理を保留していることを示す設定とし、
前記送信手段は前記パケット変更手段によって前記第２のフラグを設定したパケットを、他方のモジュールへ送信することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記パケット変更手段は、前記受信したパケットの第２のフラグを、当該パケットのデータの処理を保留していることを示す設定にする場合、前記第１のフラグを当該パケットが無効なパケットであることを示す設定に変更しないことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記パケット変更手段は、前記抽出したデータを前記処理手段が処理した場合に、前記受信したパケットの第２のフラグを、前記データの処理を保留していないことを示す設定とし、
前記送信手段は、前記処理手段による処理後のデータを含む、前記パケット変更手段が前記第２のフラグを設定したパケットを、他方のモジュールへ送信することを特徴とする請求項２又は３に記載の情報処理装置。
【請求項５】
前記パケット識別手段は、前記受信したパケットについて前記第１のフラグ及び前記第２のフラグの値と、該パケットの送信元が自モジュールであるか否かとを更に判定し、
前記パケット識別手段が、前記第１のフラグが前記受信したパケットが有効なパケットであることを示す設定であり、かつ、前記第２のフラグに前記データの処理を保留していることを示す設定ではなく、かつ、前記受信したパケットの送信元が自モジュールである、と判定した場合に、
前記パケット変更手段は、前記受信したパケットにおける前記第１のフラグを、該パケットが無効なパケットであることを示す設定に変更し、
前記送信手段は、前記パケット変更手段が前記受信したパケットにおける前記第１のフラグを該パケットが無効なパケットであることを示す設定に変更したパケットを前記他方のモジュールへ送信する
ことを特徴とする請求項２乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記パケット識別手段は、前記受信したパケットについて前記第１のフラグ及び前記第２のフラグの値と、該パケットの送信元が自モジュールであるか否かとを更に判定し、
前記パケット識別手段が、前記第１のフラグが前記受信したパケットが有効なパケットであることを示す設定であり、かつ、前記第２のフラグが前記受信したパケットのデータの処理を保留していることを示す設定である、と判定した場合に、
前記パケット変更手段は前記受信したパケットの第１のフラグの設定を変更せず、前記送信手段は前記受信したパケットをそのまま前記他方のモジュールへ送信することを特徴とする請求項２乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記各モジュールは、
前記処理手段において処理されたデータを含むパケットを生成するパケット生成手段をさらに備え、
前記パケット識別手段は、前記受信したパケットの前記第１のフラグが当該パケットが無効なパケットであることを示す設定であると判定した場合に、
前記パケット生成手段は、
前記受信したパケットのデータ格納領域に前記処理手段の処理したデータを格納し、
前記第１のフラグをパケットが有効であることを示す設定にし、
前記第２のフラグをパケットの処理を保留していないことを示す設定にし、
生成するパケットの送信元が自モジュールであることを特定するための識別子を設定してパケットを生成し、
前記送信手段は、前記パケット生成手段が生成したパケットを前記他方のモジュールへ送信することを特徴とする請求項２乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記各モジュールは、
前記第１のフラグの設定を行うことが自モジュールにおいて許可されるか否かを示す設定値を有するレジスタをさらに備え、
前記パケット変更手段は、前記処理手段が前記受信したパケットのデータを処理する場合であって、かつ、前記レジスタの設定値が前記第１のフラグの設定を許可する値である場合に、前記受信したパケットの前記第１のフラグを、当該パケットが無効なパケットであることを示す設定にすることを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記パケット変更手段は、前記処理手段が前記受信したパケットのデータを処理する場合であって、かつ、前記レジスタの設定値が前記第１のフラグの設定を許可しない値である場合に、前記受信したパケットの第１のフラグの設定を変更しないことを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記パケット識別手段は、自身の待ち受けるパケットを前記受信したパケットの識別子に基づいて識別する請求項１乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記パケット識別手段は、前記受信したパケットの送信元が自モジュールであるか否かを前記受信したパケットに設定されている識別子に基づいて識別する請求項１乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
リングバスに接続された複数のモジュールを有し、該複数のモジュールのそれぞれはデータを格納するパケットを隣接する一方のモジュールから受信し、所定の処理を行った後にパケットを隣接する他方のモジュールへ送信するように構成された情報処理装置であって、
各モジュールは、
他のモジュールから受信したパケットの識別子に基づいて、自モジュールにおいて処理すべきパケットであるか否かを判定するパケット識別手段と、
前記自モジュールで処理すべきパケットに含まれるデータを処理する処理手段と、
前記パケット識別手段が自モジュールにおいて処理すべきパケットであると判定したパケットについて、前記処理手段によるデータ処理を保留する場合、データ処理を保留していることを示す保留情報を当該パケットに付加して前記他方のモジュールに送信する送信手段とを備え、
前記パケットに前記保留情報を付加したモジュールが前記保留情報を付加したパケットを再び受信し、前記処理手段がデータ処理を実行可能な場合、該処理手段はデータ処理を実行することを特徴とする情報処理装置。
【請求項１３】
リングバスを介して接続された複数のモジュールを有し、該複数のモジュールのそれぞれはデータを格納するパケットを隣接する一方のモジュールから受信し、所定の処理を行った後に隣接する他方のモジュールへ送信するように構成された情報処理装置の制御方法であって、
各モジュールにおいて、
他のモジュールから受信したパケットについて、当該パケットがモジュールで処理すべき有効なパケットであるかを示す第１のフラグと当該パケットが自モジュールで抽出すべきデータを有しているかを示す識別子とを参照し、当該パケットが自モジュールで処理すべきパケットであるかどうかを識別するパケット識別工程と、
前記パケット識別工程において自モジュールにおいて処理すべきと識別した有効なパケットから処理対象のデータを抽出する抽出工程と、
前記抽出工程で抽出されたデータを処理手段が処理する処理工程と、
前記処理手段が前記データを処理した場合に、前記抽出工程においてデータが抽出されたパケットの前記第１のフラグを、該パケットが無効なパケットであることを示す設定に変更するパケット変更工程と、
前記処理手段による処理後のデータと、変更後の前記第１のフラグを含むパケットを前記他方のモジュールに送信する送信工程と
を備えることを特徴とする情報処理装置の制御方法。
【請求項１４】
リングバスに接続された複数のモジュールを有し、該複数のモジュールのそれぞれはデータを格納するパケットを隣接する一方のモジュールから受信し、所定の処理を行った後にパケットを隣接する他方のモジュールへ送信するように構成された情報処理装置の制御方法であって、
各モジュールにおいて、
他のモジュールから受信したパケットの識別子に基づいて、自モジュールにおいて処理すべきパケットであるか否かを判定するパケット識別工程と、
前記パケット識別工程において自モジュールで処理すべきパケットであると判定したパケットについて、自モジュールの処理手段によるデータ処理を保留する場合、データ処理を保留していることを示す保留情報を当該パケットに付加して前記他方のモジュールに送信する送信工程と、
前記パケットに前記保留情報を付加したモジュールが前記保留情報を付加したパケットを再び受信し、当該モジュールの前記処理手段がデータ処理を実行可能な場合、前記処理手段がデータ処理を実行する処理工程と
を備えることを特徴とする情報処理方法。
【請求項１５】
コンピュータを請求項１乃至１２のいずれか１項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
上記課題を解決するための本発明は、リングバスに接続された複数のモジュールを有し、該複数のモジュールのそれぞれはデータを格納するパケットを隣接する一方のモジュールから受信し、所定の処理を行った後にパケットを隣接する他方のモジュールへ送信するように構成された情報処理装置であって、
各モジュールは、
他のモジュールから受信したパケットについて、当該パケットがモジュールで処理すべき有効なパケットであるかを示す第１のフラグと当該パケットが自モジュールで抽出すべきデータを有しているかを示す識別子とを参照し、当該パケットが自モジュールで処理するパケットであるかどうかを識別するパケット識別手段と、
前記パケット識別手段が、自モジュールにおいて処理すべきと識別した有効なパケットから処理対象のデータを抽出する抽出手段と、
前記抽出手段が抽出した前記データを処理する処理手段と、
前記処理手段が前記データを処理した場合に、前記抽出手段がデータを抽出したパケットの前記第１のフラグを、該パケットが無効なパケットであることを示す設定に変更するパケット変更手段と、
パケットを前記他方のモジュールに送信する送信手段であって、前記処理手段が前記データを処理し、前記パケット変更手段が前記第１のフラグの設定を変更した場合に、処理後のデータと変更後の前記第１のフラグを含むパケットを送信する、送信手段とを備える。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】図６
【補正方法】変更
【補正の内容】
【図６】
2010200034.tif 000011