(57)【要約】【課題】  ルーティングテーブルを書き換える書き換えデータの発行元ノードのパーティション以外に書き換えの影響が及ばないようにすることが課題である。【解決手段】  書き換えデータの発行元ノードが属するパーティションを認識できず書き換えデータに含まれるポートがルーティングテーブルに登録済みか書き換えデータに含まれるパーティションがルーティングテーブルに登録済みなら書き換えを許可しないが、発行元ノードが属するパーティションを認識できず書き換えデータに含まれるポートも書き換えデータに含まれるパーティションもルーティングテーブルに登録されておらず発行元ノードが書き換え対象のデータに含まれるノードと一致するなら書き換えを許可する構成である。【選択図】  図１１Ａ
2011035646.tif 000002
【特許請求の範囲】
【請求項１】
第１の判断手段が、ルーティングテーブルを書き換える書き換えデータの発行元ノードが属するパーティションを認識できない場合であり、且つ前記書き換えデータに含まれるポート情報がルーティングテーブルに登録済みか或いは前記書き換えデータに含まれるパーティション情報がルーティングテーブルに登録済みである場合には、前記ルーティングテーブルを書き換えることを許可しない段階と、
前記第１の判断手段が、前記書き換えデータの発行元ノードが属するパーティションを認識できない場合であり、且つ前記書き換えデータに含まれるポート情報がルーティングテーブルに登録されていない場合であり、且つ前記書き換えデータに含まれるパーティション情報がルーティングテーブルに登録されていない場合であり、且つ前記発行元ノードが前記書き換え対象のデータに含まれるノード情報と一致する場合には、前記ルーティングテーブルの書き換えを許可する段階と、
第２の判断手段が、前記書き換えデータの発行元ノードが属するパーティションを認識できる場合であり、且つ前記発行元ノードが属するパーティションが前記書き換えデータに含まれるパーティション情報と一致する場合であり、且つ前記書き換えデータに含まれるポート情報がルーティングテーブルに登録済みであり、且つ前記書き換えデータに含まれるパーティション情報が前記書き換え対象のデータに含まれるパーティション情報と異なる場合には、前記ルーティングテーブルの書き換えを許可しない段階とを有するルーティングテーブルの書き換え方法。
【請求項２】
前記第１の判断手段が、前記書き換えデータの発行元ノードが属するパーティションを認識できない場合であり、且つ前記書き換えデータが無効の場合であり、且つ前記書き換えデータの前記発行元ノードがルーティングテーブルの前記書き換え対象のデータに含まれるノード情報と一致する場合には前記ルーティングテーブルの書き換えを許可する段階と、
前記第１の判断手段が、前記書き換えデータの発行元ノードが属するパーティションを認識できない場合であり、且つ前記書き換えデータに含まれるポート情報がルーティングテーブルに登録済みで当該登録されたデータが無効である場合と前記書き換えデータに含まれるパーティション情報がルーティングテーブルに登録済みで当該登録されたデータが無効である場合の内の少なくとも何れかの場合であり、且つ前記発行元ノードが当該書き換え対象のデータに含まれるノード情報と一致する場合には前記ルーティングテーブルの書き換えを許可する段階と、
前記第２の判断手段が、前記書き換えデータの発行元ノードが属するパーティションを認識できる場合であって、且つ前記書き換え対象のデータが有効であり、且つ前記発行元ノードが属するパーティションが前記書き換え対象のデータに含まれるパーティション情報に一致する場合であり、
且つ前記書き換えデータが有効であり、且つ前記発行元ノードが属するパーティションが前記書き換えデータに含まれるパーティション情報と一致する場合であり、
且つ前記書き換えデータに含まれるポート情報がルーティングテーブルに登録されていないか或いは前記書き換えデータに含まれるパーティション情報が前記書き換え対象のデータに含まれるパーティション情報と一致する場合には前記ルーティングテーブルの書き換えを許可する段階を有する請求項１に記載のルーティングテーブルの書き換え方法。
【請求項３】
複数のノードに接続され、ノード間でデータを転送するデータ転送装置であって、
ノードが接続される複数のポートと、
前記ポートに接続されるノードと、前記ポートに接続されるノードが属するパーティションとの対応関係を示すルーティングテーブルを記憶する記憶部と、
ルーティングテーブルを書き換えるための書き換えデータの発行元ノードが属するパーティションを知ることができない場合であって、且つ前記書き換えデータに含まれるポート情報が前記ルーティングテーブルに登録済みか或いは前記書き換えデータに含まれるパーティション情報がルーティングテーブルに登録済みの場合には前記ルーティングテーブルを書き換えることを許可せず、
前記書き換えデータの発行元ノードが属するパーティションを知ることができない場合であって、且つ前記書き換えデータに含まれるポート情報がルーティングテーブルに登録されていない場合であって、且つ前記書き換えデータに含まれるパーティション情報がルーティングテーブルに登録されていない場合であって、且つ前記発行元ノードが前記書き換え対象のデータに含まれるノードと一致する場合には前記ルーティングテーブルの書き換えを許可する第１の判断手段と、
前記書き換えデータの発行元ノードが属するパーティションを知ることができる場合であって、且つ前記発行元ノードが属するパーティションが前記書き換えデータに含まれるパーティション情報と一致する場合であって、且つ前記書き換えデータに含まれるポート情報が、ルーティングテーブルに登録済みの場合であって、且つ前記書き換えデータに含まれるパーティション情報が前記書き換え対象のデータに含まれるパーティション情報と異なる場合には前記ルーティングテーブルの書き換えを許可しない第２の判断手段とを有するデータ転送装置。
【請求項４】
前記第１の判断手段は、前記書き換えデータの発行元ノードが属するパーティションを知ることができない場合であって、且つ前記書き換えデータが無効であって、且つ前記発行元ノードが、ルーティングテーブルの前記書き換え対象のデータに含まれるノードと一致する場合には前記ルーティングテーブルの書き換えを認め、
前記第１の判断手段は、前記書き換えデータの発行元ノードが属するパーティションを知ることができない場合であって、且つ前記書き換えデータに含まれるポート情報がルーティングテーブルに登録済みだが無効である場合と前記書き換えデータに含まれるパーティション情報がルーティングテーブルに登録済みだが無効である場合との内の少なくとも何れかの場合であって、且つ前記発行元ノードが当該書き換え対象のデータに含まれるノードと一致する場合には前記ルーティングテーブルの書き換えを認め、
前記第２の判断手段は、前記書き換えデータの発行元ノードが属するパーティションを知ることができる場合であって、且つ前記書き換え対象のデータが有効な場合であって、且つ前記発行元ノードが属するパーティション情報が前記書き換え対象のデータに含まれるパーティション情報と一致する場合であって、
且つ前記書き換えデータが有効であり且つ、前記発行元ノードが属するパーティションが前記書き換えデータに含まれるパーティション情報と一致する場合であって、
且つ前記書き換えデータに含まれるポート情報がルーティングテーブルに登録されていないか或いは前記書き換えデータに含まれるパーティション情報が前記書き換え対象のデータに含まれるパーティション情報と一致する場合には前記ルーティングテーブルの書き換えを許可することを特徴とする請求項３に記載のデータ転送装置。
【請求項５】
ルーティングテーブルを使用してデータを転送するデータ転送装置の動作を制御するコンピュータを、
ルーティングテーブルを書き換えるための書き換えデータの発行元ノードが属するパーティションを知ることができない場合であって、且つ前記書き換えデータに含まれるポート情報がルーティングテーブルに有効に登録済みの場合であって、且つ前記書き換えデータに含まれるパーティション情報がルーティングテーブルに有効に登録済みの場合にはルーティングテーブルの書き換えを認めず、
前記書き換えデータの発行元ノードが属するパーティションを知ることができない場合であって、且つ前記書き換えデータに含まれるポート情報がルーティングテーブルに登録されていない場合であって、且つ前記書き換えデータに含まれるパーティション情報がルーティングテーブルに登録されていない場合であって、且つ前記発行元ノードが前記書き換え対象のデータに含まれるノードと一致する場合には前記ルーティングテーブルの書き換えを許可する第１の判断手段と、
前記書き換えデータの発行元ノードが属するパーティションを知ることができる場合であって、且つ前記発行元ノードが属するパーティションが前記書き換えデータに含まれるパーティション情報と一致する場合であって、且つ前記書き換えデータに含まれるポート情報が、ルーティングテーブルに登録済みの場合であって、且つ前記書き換えデータに含まれるパーティション情報が前記書き換え対象のデータに含まれるパーティション情報と異なる場合には前記ルーティングテーブルの書き換えを許可しない第２の判断手段として機能させるためのプログラム。
【請求項６】
前記第１の判断手段は、前記書き換えデータの発行元ノードが属するパーティションを知ることができない場合であって、且つ前記書き換えデータが無効の場合であって、且つ前記発行元ノードが、ルーティングテーブルの前記書き換え対象のデータに含まれるノード情報と一致する場合には前記ルーティングテーブルの書き換えを認め、
前記第１の判断手段は、前記書き換えデータの発行元ノードが属するパーティションを知ることができない場合であって、且つ前記書き換えデータに含まれるポート情報がルーティングテーブルに登録済みだが無効である場合と前記書き換えデータに含まれるパーティション情報がルーティングテーブルに登録済みだが無効である場合との内の少なくとも何れかの場合であって、且つ前記発行元ノードが当該書き換え対象のデータに含まれるノード情報と一致する場合には前記ルーティングテーブルの書き換えを許可し、
前記第２の判断手段は、前記書き換えデータの発行元ノードが属するパーティションを知ることができる場合であって、且つ前記書き換え対象のデータが有効な場合であって、且つ前記発行元ノードが属するパーティションが前記書き換え対象のデータに含まれるパーティション情報に一致する場合であって、
且つ前記書き換えデータが有効であり且つ、前記発行元ノードが属するパーティションが前記書き換えデータに含まれるパーティションと一致する場合であって、
且つ前記書き換えデータに含まれるポート情報がルーティングテーブルに登録されていないか或いは前記書き換えデータに含まれるパーティション情報が前記書き換え対象のデータに含まれるパーティション情報と一致する場合には前記ルーティングテーブルの書き換えを許可することを特徴とする請求項５に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はルーティングテーブルの書き換え方法、データ転送装置およびプログラムに関する。
【背景技術】
【０００２】
たとえばＴＣＰ／ＩＰを用いたルータネットワークが、ネットワーク内の情報の伝達経路を制御するネットワーク経路制御装置と、ネットワーク経路制御装置を管理するネットワーク管理装置とを備える点が知られている。又ルータネットワークにおいて、ネットワーク経路制御装置が、経路制御に用いるルーティングテーブルを、ルーティングプロトコルを用いてダイナミックに変更する点が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−２２７３４号公報
【特許文献２】特許第４１３１２６３号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここでは、ネットワークには複数パーティションを設定可能であり、ネットワークに含まれるノードを任意のパーティションに割当可能である場合を想定する。このような場合、ルーティングテーブルが誤って書き換えられてしまうと、誤りの態様によっては他のパーティションに影響が及ぶことが想定される。
【０００５】
したがって本発明の目的は、他のパーティションに影響が及ぶ態様のルーティングテーブルの書き換えを防止し得る構成を提供することにある。
【課題を解決するための手段】
【０００６】
ルーティングテーブルを書き換える書き換えデータの発行元のノードが属するパーティションが認識できない状態を想定する。当該状態において、書き換えデータに含まれるポートがルーティングテーブルに登録済みの場合、ルーティングテーブルの書き換えは許可されない構成である。又上記状態において、書き換えデータに含まれるパーティションがルーティングテーブルに登録済みである場合にもルーティングテーブルの書き換えは許可されない構成である。
【０００７】
次に同じく書き換えデータの発行元のノードが属するパーティションが認識できない状態を想定する。当該状態において、更に書き換えデータに含まれるポートがルーティングテーブルに登録されておらず、かつ書き換えデータに含まれるパーティションがルーティングテーブルに登録されていない場合を想定する。当該場合には、発行元のノードがルーティングテーブルに有効なデータを書き込む場合であり、発行元のノードが書き換え対象のデータに含まれるノードと一致する場合、ルーティングテーブルの書き換えが許可される構成である。
【０００８】
次に、書き換えデータの発行元のノードが属するパーティションを認識できる状態を想定する。当該状態において、発行元のノードが属するパーティションが書き換えデータに含まれるパーティションと一致し、前記書き換えデータに含まれるポートがルーティングテーブルに登録済みである場合を想定する。当該場合、書き換えデータに含まれるパーティションが前記書き換え対象のデータに含まれるパーティションと異なる場合にはルーティングテーブルの書き換えは許可されない構成である。
【発明の効果】
【０００９】
上記方法によれば当該他のパーティションに影響を及ぼす態様のルーティングテーブルの書き換えを防止し得る。
【図面の簡単な説明】
【００１０】
【図１Ａ】実施例のクロスバの構成を説明するブロック図である。
【図１Ｂ】ルーティングテーブルの構成例を説明する図である。
【図１Ｃ】クロスバが取り扱う転送データの構成例を説明する図である。
【図２】ライト可否判定回路の構成例を説明する図である。
【図３】ライト可否判定回路の構成例を説明する図である。
【図４】ライト可否判定回路の構成例を説明する図である。
【図５】ライト可否判定回路の構成例を説明する図である。
【図６】ライト可否判定回路の構成例を説明する図である。
【図７】実施例を説明する図である。
【図８】実施例を説明する図である。
【図９】他の実施例によるクロスバの構成を説明するブロック図である。
【図１０】実施例のルーティングテーブルの書き換え方法を説明するフローチャートである。
【図１１Ａ】実施例のルーティングテーブルの書き換え方法を説明するフローチャートである。
【図１１Ｂ】実施例のルーティングテーブルの書き換え方法を説明するフローチャートである。
【図１２】実施例のルーティングテーブルの書き換え方法を実行するコンピュータの一例を示す。
【発明を実施するための形態】
【００１１】
以下に実施例のデータ転送システムにつき図とともに詳細に説明する。
【００１２】
図１Ａはクロスバを有するデータ転送システムの一実施例の構成を説明するブロック図である。図１Ｂはルーティングテーブルの構成例を説明する図である。図１Ｃは図１Ａに示すデータ転送システムにおいて扱う転送データの構成例を説明する図である。
【００１３】
図１Ａに示すデータ転送システムには、複数のノード１１，１２，１３，１４を相互に接続するクロスバ１００が設けられる。クロスバ１００内には、各ノードを識別するノード識別子(以下ＮＩＤと称する)と、ノードが接続されるクロスバ１００のポートＰａ，Ｐｂ，Ｐｃ，Ｐｄとの関連付けを管理するためのルーティングテーブル（ＲＴ）１２０が設けられている。ルーティングテーブル１２０では図１Ｂに示される如く、ＮＩＤ１１，１２，１３，１４と、ポートＰａ、Ｐｂ、Ｐｃ、Ｐｄとがそれぞれ関連付けられている。ルータ１１０はルーティングテーブル１２０を使用してノード相互間でパケットの中継を行う。レジスタアクセス制御回路１３０はルーティングテーブル１２０の書き換えを制御する。ライト可否判定回路１３５はルーティングテーブル１２０の書き換えを許可するか否かを判断する。尚、クロスバ１００にはノードが接続されていないポートＰｅが存在する。
【００１４】
図１Ｂのルーティングテーブル中、Ｖａｌｉｄフィールド（以下Ｖフィールドと称する場合もある）はルーティングテーブルに記録された各エントリが有効か否かを示す。“１”はエントリが有効であることを意味し、“０”はエントリが無効であることを意味する。図１Ｂの例では、ＮＩＤ１１〜ＮＩＤ１４のノードについては、Ｖａｌｉｄフィールドには“１”が設定されている。一方、いずれのポートにも接続されていないＮＩＤ１５のノードに対応するエントリのＶａｌｉｄフィールドには“０”が設定されている。
【００１５】
また図１Ｂのルーティングテーブル中、パーティションフィールドは、各ノードが属するパーティションを示す。図１Ｂの例では、ＮＩＤ１１のノードとＮＩＤ１３のノードとが同一パーティションＸに属し、ＮＩＤ１２のノードとＮＩＤ１４のノードとが同一パーティションＹに属する。
【００１６】
図１Ｃは当該データ転送システムが扱う転送データの構成例を示す。図１Ｃに示す如く、本実施例によるデータ転送システムが扱う転送データに含まれるフィールドのうち、Ｓフィールドは転送データ発行元のノードのＮＩＤを示し、Ｔフィールドは転送データの転送先のノードのＮＩＤを示し、ＯＰフィールドはオペコードを示し、ＡＤフィールドはアドレスを示す。アドレスについては後述する。Ｖフィールド、ＰｏｒｔフィールドおよびＰＩＤフィールドはライトデータＷＤと称される。Ｖフィールド、ＰｏｒｔフィールドおよびＰＩＤフィールドは図１Ｂのルーティングテーブルに示されたＶａｌｉｄフィールド，ポートフィールド、パーティションフィールドの各フィールドにそれぞれ対応する。Ｖフィールド、ＰｏｒｔフィールドおよびＰＩＤフィールド（ＷＤ）は夫々、ルーティングテーブルのＶａｌｉｄフィールド，ポートフィールドおよびパーティションフィールドに書き込む情報が設定される。
【００１７】
ノード１１、１２，１３，１４、１５は複数パーティションに分けられる。ルーティングテーブル１２０は各パーティションのノードからアクセスされる。クロスバ１００を通過する転送データのＳフィールドが示す転送データ発行元のノードのＮＩＤおよびＴフィールドが示す転送データ転送先のノードのＮＩＤが、ルータ１１０により、ルーティングテーブル１２０の該当するフィールドと対照される。ルータ１１０はこのようにルーティングテーブル１２０を参照することにより、転送データ発行元のノードが属するパーティションと転送データ転送先のノードが属するパーティションとを認識する。ルータ１１０はこの認識結果に基づき、転送データが、発行元のノードが属するパーティションと同一のパーティションに属するノードへ転送されるべきものであるか否かを判断する。判断の結果、発行元のノードからの転送データが、発行元のノードと同一のパーティションに属するノードへ転送されるべき転送データであった場合には、ルータ１１０は転送先ノードへの転送データの転送を行う。他方、転送データが発行元のノードとは他のパーティションに属するノードへの転送データであった場合には、ルータ１１０は当該転送データの転送を行わない。その結果、発行元のノードが属するパーティションと異なるパーティションに属するノードへデータを誤送信する事態が防止される。
【００１８】
ここで、システムに対する動的構成変更を行う際、クロスバ１００のルーティングテーブル１２０に対し、動的構成変更に応じてノードを追加または削除する書き換えがなされる場合がある。このようなルーティングテーブル１２０の書き換え時に、プログラムのミス等によりノードがルーティングテーブル１２０を誤って書き換えてしまう可能性がある。ここで動的構成変更は「Dynamic Reconfiguration(DR)」とも呼ばれるものであり、データ転送システムを停止することなく、パーティション構成を動的に変更する処理・動作を意味する。ルーティングテーブル１２０の誤書き換えが生じる場合、他のパーティションに影響を与えてしまうルーティングテーブル１２０の書き換えの態様として以下の2つの場合が考えられる。
（１）ルーティングテーブル１２０中、ライトパケットの発行元のノードが属するパーティションと異なるパーティションのエントリを書き換える場合
（２）ライトパケットの発行元のノードが属するパーティションに属するノード宛の転送データが、異なるパーティションに属するノードへと転送されるようにルーティングテーブル１２０を書き換える場合
【００１９】
本実施例では、上記（１）、（２）の場合にルーティングテーブル１２０の書き換えが許可されることがないように制御がなされる。
【００２０】
実施例は以下の構成を提供する。尚以下の説明において、ノードがルーティングテーブル１２０を書き換える目的で発行するパケットをライトパケットと称する。ライトパケットはたとえば図１Ｃの構成を有し、ライトデータＷＤ（以下「ＷＤ」と称する）を含む。クロスバ１００のルータ１１０は発行元のノードからライトパケットを受信すると、受信したライトパケットのＷＤ中のＰｏｒｔフィールドと、ルーティングテーブル１２０のポートフィールドとを対照する。上記の如くＷＤ中のＰｏｒｔフィールドには、ルーティングテーブル１２０のエントリ中のポートフィールドに書き込むべき情報が設定される。ＷＤ中のＰｏｒｔフィールドが示すポートのエントリがルーティングテーブル１２０に存在する場合、当該エントリ中のパーティションフィールドをＷＤのＰＩＤフィールドの内容で置き換え、Ｖａｌｉｄフィールドの内容をＷＤのＶフィールドの内容で置き換える。
【００２１】
まず、ライトパケットの発行元のノード（以下「発行元ノード」と称する）が属するパーティションをルータ１１０が認識可能な場合について説明する。
【００２２】
発行元ノードがルーティングテーブル１２０を書き換えようとするとき、書き換えたいエントリ（以下「書き換え対象エントリ」と称する）が属するパーティションが、発行元ノードが属するパーティションと一致するか否かが判断される。一致する場合には、ルーティングテーブル１２０の書き換えが許可される。すなわち、ライトパケットの発行元ノードが属するパーティションに属するエントリの書き換えが許可される。上記一致の判断は「書き換え対象エントリが属するパーティション」と、「発行元ノードが属するパーティション」との比較によってなされる。ここで「書き換え対象エントリが属するパーティション」とは、書き換え対象エントリのパーティションフィールドが示すパーティションを意味する（以下同様）。又「発行元ノードが属するパーティション」をルータ１１０が認識する方法については後述する。「発行元ノードが属するパーティションのエントリの書き換え」には、発行元ノードが属するパーティションのエントリを無効化する場合を含む。エントリの無効化とは、ルーティングテーブル１２０のＶａｌｉｄフィールドを“０”にすることを意味し、エントリの無効化により、当該エントリのＮＩＤを有するノードに対するアクセスが不可となり、当該ノードをパーティションから切り離すことができる。
【００２３】
又、上記の場合以外であっても、いずれのパーティションにも属さないエントリ、すなわち無効なエントリの書き換えが許可される。たとえば図１ＢのＮＩＤが１５のノードに対応するエントリのＶａｌｉｄフィールドは“０”である。このエントリは無効であり、いずれのパーティションにも属していないため、ＮＩＤ１５のノードに対応するエントリの書き換えが許可される。
【００２４】
他方、発行元ノードが属するパーティションと異なるパーティションに属するエントリの書き換えは許可されない。なお、あるパーティションに属するノードを他のパーティションに移したい場合には、以下の段階を踏めばよい。まずパーティションを移したいノードが有するＮＩＤのエントリを無効化、すなわちＶａｌｉｄフィールドを“０”に書き換え、ノードをパーティションから切り離す。次に当該無効なエントリのパーティションフィールドに、移したい先のパーティションを示す情報を書き込むとともに、当該エントリを有効化する。エントリを有効化するとは、当該エントリのＶａｌｉｄフィールドを“１”に書き換えることを意味する。
【００２５】
次に、有効なエントリを有効としたままエントリの内容を変えたい場合、あるいは無効なエントリを有効にしたい場合には、以下の場合にエントリの書き換えが許可される。まずＷＤのポートフィールドが示すポートが、ルーティングテーブル１２０に登録済みかが判断される。ここでポートが登録済みとは、ＷＤのポートフィールドが示すポート情報に対応するエントリがルーティングテーブル１２０に存在することを意味する。ＷＤのポートフィールドで示されるポートがルーティングテーブル１２０に登録済みでない、すなわちポートが未登録の場合、エントリの書き換えが許可される。すなわち、ルーティングテーブルに登録されていないポートは未使用のポートであることを意味しており、クロスバ１００の未使用ポートを新たに使用する場合には、対応するエントリの書き換えが許可される。
【００２６】
他方、ＷＤのポートフィールドが示すポートがルーティングテーブル１２０に登録済みの場合は以下の通りである。この場合、ＷＤのポートフィールドが示すポート情報に対応するエントリ（以下「当該ポートのエントリ」と称する）のＰＩＤフィールドが示すパーティションが、発行元ノードが属するパーティションと一致するか否かが判断される。一致する場合にはルーティングテーブルの書き換えが許可される。すなわち、発行元ノードが属するパーティションに属するエントリを書き換える場合に、ルーティングテーブルの書き換えが許可される。この場合、発行元ノードが属するパーティションに属するノードのエントリを書き換えることになる。ここで上記当該ポートが示すエントリのＰＩＤフィールドが示すパーティションが発行元ノードが属するパーティションと一致するか否かの判断は以下の手順で行われる。まずルーティングテーブル１２０を参照することにより「当該ポートが示すエントリのＰＩＤフィールドが示すパーティション」を認識する。次に「発行元ノードが属するパーティション」を認識する。「発行元ノードが属するパーティション」をルータ１１０が認識する方法については後述する。このようにして認識した「当該ポートが示すエントリのＰＩＤフィールドが示すパーティション」と「発行元ノードが属するパーティション」とを比較して一致するか否かを判断する。
【００２７】
他方、ＷＤのポートフィールドが示すポートがルーティングテーブル１２０に登録済みで、当該ポートに対応するエントリのＰＩＤフィールドに書き込まれたパーティションが発行元ノードが属するパーティションと異なる場合には書き換えが許可されない。すなわち、発行元ノードが属するパーティションと異なるパーティションに属するエントリを書き換えようとする場合には、ルーティングテーブルの書き換えが許可されない。
【００２８】
また上記（２）の場合に、ＷＤのＰＩＤフィールドと発行元ノードが属するパーティションとが比較される。「発行元ノードが属するパーティション」をルータ１１０が認識する方法については後述する。両パーティションが一致する場合にはルーティングテーブルの書き換えが許可され、パーティションが異なる場合にはルーティングテーブルの書き換えが許可されない。パーティションが異なる場合にルーティングテーブルの書き換えを行うと、書き換え後のエントリが、発行元ノードが属するパーティションとは異なるパーティションに属するようになる。したがってパーティションが異なる場合にはルーティングテーブルの書き換えが許可されないようにすることにより、書き換え後のエントリが、発行元ノードが属するパーティションとは異なるパーティションに属するようになる事態が防止される。
【００２９】
次に、「発行元ノードが属するパーティション」をルータ１１０が認識可能ではない場合について説明する。
【００３０】
上記「発行元ノードが属するパーティション」をルータ１１０が認識する方法としては、たとえば以下の２つの方法が考えられる。第１の方法は、ライトパケットに発行元ノードが属するパーティションを示す情報であるＰＩＤ（以下「パーティション情報」と称する）が含まれている場合の方法である。この場合、当該パーティション情報を参照することにより、発行元ノードが属するパーティションをルータ１１０が認識し得る。第２の方法は、ルーティングテーブル１２０を参照して、発行元ノードが属するパーティションをルータ１１０が認識する方法である。したがって、ライトパケットに発行元ノードが属するパーティション情報が含まれておらず、かつルーティングテーブル１２０に発行元ノードが属するパーティション情報が含まれない場合には、ルータ１１０は発行元ノードが属するパーティションを認識できない。ルーティングテーブル１２０に発行元ノードが属するパーティション情報が含まれない場合には、発行元ノードを示すＮＩＤフィールドに対応するエントリがルーティングテーブル１２０に未登録、すなわち発行元ノードがルーティングテーブルに未登録の場合が含まれる。
【００３１】
上記の如く、ライトパケットに発行元ノードが属するパーティション情報が含まれておらず、かつルーティングテーブル１２０に発行元ノードが属するパーティション情報が含まれない場合、ルータ１１０は発行元ノードが属するパーティションを認識できない。又上記の如く、ルーティングテーブル１２０に発行元ノードが属するパーティション情報が含まれない場合には発行元ノードがルーティングテーブルに未登録の場合が含まれる。このような場合であっても、発行元ノードのＮＩＤ、すなわちライトパケットのＳフィールドのＮＩＤと、書き換え対象エントリのＮＩＤとが一致する場合にルーティングテーブルの書き換えが許可される。すなわち発行元ノードのＮＩＤをＮＩＤフィールドが示すエントリをルーティングテーブル１２０に新たに追加する場合に、ルーティングテーブルの書き換えが許可される。ここで「発行元ノードのＮＩＤをＮＩＤフィールドが示すエントリをルーティングテーブル１２０に新たに追加」する場合について以下に説明する。この場合、エントリ追加前のルーティングテーブルの状態は、例えば図１Ｂの状態とする。図１Ｂの状態では、ＮＩＤ＝１５のエントリのポートフィールドおよびパーティションフィールドがともに「−」であり情報が設定されておらず、当該エントリは現在使用されていない。発行元ノードのオペレータは当該ルーティングテーブルの状態を予め認識し、上記現在使用されていないＮＩＤ＝１５のエントリを使用すべく、当該エントリを示すアドレスをＡＤフィールドに設定し、発行元ノードのＮＩＤを「１５」としてライトパケットを発行する。すなわち当該ライトパケット中のＳフィールドにはＮＩＤ＝１５が設定される。その結果、発行元ノードのＮＩＤ、すなわちライトパケットのＳフィールドのＮＩＤと、書き換え対象エントリのＮＩＤとが一致することになり、ルーティングテーブルの書き換えが許可される。
【００３２】
又上記の如く発行元ノードが属するパーティションをルータ１１０が認識できない場合であって、ＷＤのＰｏｒｔフィールドが示すポートがルーティングテーブル１２０に登録済みである場合には書き換えが許可されない。又、ＷＤのＰＩＤフィールドが示すパーティションがルーティングテーブル１２０に登録済みである場合にも書き換えが許可されない。すなわち発行元ノードがルーティングテーブルに登録されていない場合、発行元ノード自身のルーティングテーブルへの登録／書き込みのみが許可される。
【００３３】
上述の実施例によれば、誤ったルーティングテーブル１２０の書き換えにより、本来発行元である第１のノードが属するパーティションに属する第２のノードへの転送データが、他のパーティションに属する第３のノードに転送されるような事態が防止される。又、第１のノードが属するパーティションとは異なるパーティションに属するエントリが第１のノードによって書き換えられるような事態が防止される。すなわち、発行元ノードが属するパーティションとは異なるパーティションに影響が及ぶ態様のルーティングテーブル１２０の書き換えが防止される。
【００３４】
以下、実施例の構成につき、更に詳細に説明する。
【００３５】
上述した図１Ａ中、ノードからの転送データがクロスバ１００に到達すると、転送データは転送データを発行したノードに対応するポートを介しルータ１１０に渡される。ルータ１１０は、転送データのＴフィールドとルーティングテーブル１２０のＮＩＤフィールドとを対照し、Ｔフィールドに記録されたＮＩＤに対応するルーティングテーブル１２０のエントリを抽出する。そして、抽出したエントリのポートフィールドが示すポートを介し、当該転送データを転送先ノードに送出する。
【００３６】
他方、ノードからライトパケットが送信されてクロスバ１００に到達すると、ライトパケットはライトパケット発行元ノードに対応するポートを介しルータ１１０に転送される。ライトパケットの転送先はクロスバ１００であるため、ライトパケットのＴフィールドはクロスバ１００を示す。ルータ１１０は当該転送されたライトパケットのＴフィールドがクロスバ１００を示すことによって当該パケットがライトパケットであることを識別する。ルータ１１０は転送されたライトパケットがライトパケットであることを識別すると、ライトパケットをレジスタアクセス制御回路１３０に転送する。レジスタアクセス制御回路１３０は必要に応じルーティングテーブル１２０を書き換える動作を行う。
【００３７】
レジスタアクセス制御回路１３０はライト可否判定回路１３５を有する。ライト可否判定回路１３５はライトパケットが有するＷＤによるルーティングテーブル１２０の書き換えを許可するか否かを判断する。判断の結果ＷＤによるルーティングテーブル１２０の書き換えが許可されれば、レジスタアクセス制御回路１３０はＷＤに従ってルーティングテーブル１２０を書き換える。
【００３８】
図２，３，４，５，６は、それぞれ、ライト可否判定回路１３５の構成例を示す回路図である。レジスタアクセス制御回路１３０は図２，図３、図４に示すデコーダ１３１と、ライト可否判定回路１３５とを含む。ライト可否判定回路１３５は、図２に示すＡＮＤ回路Ａ１、図３に示すＡＮＤ回路Ａ２，Ａ３，Ａ４，比較回路Ｃ１，ＯＲ回路Ｏ１、図４に示す比較回路Ｃ２，Ｃ３，ＡＮＤ回路Ａ５，Ａ６を含む。ライト可否判定回路１３５は更に、図５に示す比較回路Ｃ４１〜Ｃ４Ｎ，Ｃ５１〜Ｃ５Ｎ，ＡＮＤ回路Ａ７１〜Ａ７Ｎ，Ａ８，ＯＲ回路Ｏ２を含む。ライト可否判定回路１３５は更に、図６に示す比較回路Ｃ６１〜Ｃ６Ｎ，Ｃ７１〜Ｃ７Ｎ，ＯＲ回路Ｏ３１〜Ｏ３Ｎ，ＡＮＤ回路Ａ９１〜Ａ９Ｎ，ＯＲ回路Ｏ４，ＡＮＤ回路Ａ１０を含む。すなわち単一のライト可否判定回路１３５が図２、図３、図４、図５，図６の各回路を併せ持つ。
【００３９】
図２は、ライトパケットに発行元ノードが属するパーティション情報が含まれている場合に機能するライト可否判定回路１３５の部分の回路図を示す。図２中、デコーダ１３１は、ライトパケットＷＰ中のＯＰフィールドのオペコードに基づいて、第１の書き換え許可信号ｏｒｇ＿ｗｅを発生する。ここでデコーダ１３１は、オペコードからエントリ書き換え許可信号を生成するとともに、ライトパケットＷＰのＡＤフィールドが示すアドレスに基づき、ルーティングテーブル１２０内の書き換え対象エントリＥｔのアドレスを計算する。ここでルーティングテーブル１２０の各エントリはクロスバのポート毎に設けられる。ＡＤフィールドをデコーダ１３１でデコードした結果ＲＴ_Ａが示すエントリが書き換え対象エントリＥｔである。
【００４０】
図２中、ＡＮＤ回路Ａ１は第１の書き換え許可信号ｏｒｇ＿ｗｅに対し、入力する書き換え許可を取り消す条件に基づいて、第２の書き換え許可信号ｎｅｗ＿ｗｅを生成する。すなわち図２のＡＮＤ回路Ａ１に入力される第１の書き換え許可信号ｏｒｇ＿ｗｅがアサートされ、かつＡ，Ｂ，Ｃのいずれの書き換え取消条件も満たされない場合、第２の書き換え許可信号ｎｅｗ＿ｗｅがアサートされる。第２の書き換え許可信号ｎｅｗ＿ｗｅがアサートされた場合に、書き換え対象エントリＥｔの内容をＷＤの内容に書き換える書き換えが実行される。なお、図２はライトパケットに発行元ノードが属するパーティション情報が含まれている場合に機能する回路図を示すものであり、この場合のパーティション情報は、ＷＤとは別に設けられる、ライトパケットＷＰのＰＩＤフィールドに格納されている。ライト可否判定回路１３５はライトパケットＷＰ上のＰＩＤをパーティション情報ＰＳとして得る。
【００４１】
ＡＮＤ回路Ａ１には図２に示す如く、上記第１の書き換え許可信号ｏｒｇ＿ｗｅ、後述する条件Ａの反転信号、条件Ｂの反転信号および条件Ｃの反転信号が入力する。ＡＮＤ回路Ａ１は、第１の書き換え許可信号ｏｒｇ＿ｗｅがアサートされ、条件Ａ、条件Ｂおよび条件Ｃのいずれもが満たされない場合に、第２の書き換え許可信号ｎｅｗ＿ｗｅをアサートする。第２の書き換え許可信号ｎｅｗ−ｗｅがアサートされた場合、エントリの書き換えが許可される。
【００４２】
図３は、ライトパケットに発行元ノードが属するパーティション情報が含まれていない場合に機能するライト可否判定回路１３５の部分の回路図を示す。図２の場合と同様、図３のデコーダ１３１は、ライトパケットＷＰ中のＯＰフィールドのオペコードに基づいて第１の書き換え許可信号ｏｒｇ＿ｗｅを発生する。ここでデコーダ１３１は、オペコードからエントリ書き換え許可信号を生成するとともに、ライトパケットＷＰのＡＤフィールドが示すアドレスに基づき、ルーティングテーブル１２０内の書き換え対象エントリＥｔのアドレスを計算する。
【００４３】
図３中、ＡＮＤ回路Ａ４は、第１の書き換え許可信号ｏｒｇ＿ｗｅに対し、書き換え許可を取り消す条件を付加し、第２の書き換え許可信号ｎｅｗ＿ｗｅを生成する。図２の場合同様、第２の書き換え許可信号ｎｅｗ＿ｗｅがアサートされた場合に、書き換え対象エントリＥｔの内容をＷＤの内容に書き換える書き換えが実行される。
【００４４】
ＡＮＤ回路Ａ２には図３に示す如く、以下の信号が入力する。すなわち、条件Ａの反転信号、条件Ｂの反転信号、条件Ｃの反転信号および、ルーティングテーブル１２０に登録された、発行元ノードのＮＩＤをＮＩＤフィールドが示すエントリ（以下「発行元ノードのエントリ」と称する）ＥｓのＶフィールドの値が入力する。ＡＮＤ回路Ａ２は、条件Ａ、条件Ｂおよび条件Ｃのいずれもが満たされず、かつ発行元ノードのエントリＥｓのＶフィールドの値が“１”の場合、すなわち当該エントリＥｓが「有効」の場合に、出力信号をアサートする。発行元ノードのエントリＥｓが有効の場合とは、発行元ノードのエントリＥｓが登録済みであることを意味する。又発行元ノードのエントリＥｓのＶフィールドが“０”の場合、すなわち当該エントリＥｓが無効の場合とは、発行元ノードが未登録であることを意味する。例えば図１ＢのＮＩＤ＝１５のエントリのＶフィールドが“０”である。よってＮＩＤ＝１５のノードは未登録である。
【００４５】
比較回路Ｃ１は発行元ノードのＮＩＤと書き換え対象のエントリのＮＩＤとを比較し、両者が一致する場合に“１”を出力する。ＡＮＤ回路Ａ３には、後述する条件Ｄの反転信号、比較回路Ｃ１による発行元ノードのＮＩＤと書き換え対象エントリＥｔのＮＩＤフィールドが示すＮＩＤとの比較結果の信号および上記発行元ノードのエントリＥｓのＶフィールドの値の反転信号とが入力される。ＡＮＤ回路Ａ３は、条件Ｄが満たされず、比較回路Ｃ１による比較の結果発行元ノードのＮＩＤと書き換え対象エントリＥｔのＮＩＤフィールドが示すＮＩＤとが一致し、かつ発行元ノードのエントリＥｓが無効の場合に、出力信号をアサートする。
【００４６】
ＯＲ回路Ｏ１は、ＡＮＤ回路Ａ２の出力信号およびＡＮＤ回路Ａ３の出力信号のうちの少なくとも一方がアサートされると、出力信号をアサートする。
【００４７】
図３に示したＡＮＤ回路Ａ２，Ａ３，Ａ４およびＯＲ回路Ｏ１の機能により、以下に示す１）の場合あるいは２）の場合に第２の書き換え許可信号ｎｅｗ＿ｗｅがアサートされ、エントリの書き換えが許可される。上記１）の場合とは、条件Ａ，Ｂ，Ｃのいずれもが満たされず、且つ発行元ノードのエントリＥｓが有効であることをＡＮＤ回路Ａ２の出力信号が示す場合である。上記２）の場合とは、条件Ｄが満たされず、比較器Ｃ１での比較の結果、発行元ノードのＮＩＤと書き換え対象エントリＥｔのＮＩＤフィールドが示すＮＩＤとが一致し、且つ発行元ノードのエントリＥｓが無効であることをＡＮＤ回路Ａ３の出力信号が示す場合である。なお、ここでは第１の書き換え許可信号ｏｒｇ＿ｗｅ信号がアサートされることが前提である。
【００４８】
以下、各条件Ａ，Ｂ，Ｃ，Ｄについて説明する。
【００４９】
まず条件Ａ，条件Ｂにつき、図４とともに説明する。
【００５０】
条件Ａは、「発行元ノードが属するパーティションとは異なるパーティションに属する有効なエントリを書き換えようとする」場合に、エントリの書き換えを許可しないための条件である。図４に示す如く、比較回路Ｃ３が、書き換え対象エントリＥｔのＰＩＤフィールドが示すパーティションと、発行元ノードが属するパーティション情報ＰＳが示すパーティションとを比較する。そしてＡＮＤ回路Ａ６は、書き換え対象エントリＥｔのＰＩＤフィールドが示すパーティションと発行元ノードが属するパーティション（パーティション情報ＰＳ）とが異なり且つ、書き換え対象エントリＥｔが有効な場合、条件Ａの信号をアサートする。すなわち条件Ａが満たされる。条件Ａが満たされる場合とは、「発行元ノードが属するパーティションとは異なるパーティションに属する有効なエントリを書き換えようとする」場合であり、この場合にはエントリの書き換えが許可されない。
【００５１】
次に条件Ｂは、「ＷＤが有効であり、ＷＤのPＩＤフィールドが示すパーティションと発行元ノードが属するパーティションとが異なる場合」にエントリの書き換えを許可しないための条件である。図４に示す如く、比較回路Ｃ２が、ＷＤのＰＩＤフィールドと、発行元ノードが属するパーティションを示すパーティション情報ＰＳとを比較する。ここで発行元ノードが属するパーティションを示すパーティション情報ＰＳは、上記の如く、ＷＤとは別に設けられる、ライトパケットＷＰのＰＩＤフィールド（図２参照）に格納されている。そしてＡＮＤ回路Ａ５は、ＷＤのPＩＤフィールドが示すパーティションと発行元ノードが属するパーティション（パーティション情報ＰＳ）とが異なり且つ、ＷＤが有効な場合に、条件Ｂの信号をアサートする。すなわち条件Ｂが満たされる。条件Ｂが満たされる場合とは「ＷＤが有効であり、ＷＤのPＩＤフィールドが示すパーティションと発行元ノードが属するパーティションとが異なる場合」であり、この場合にはエントリの書き換えが許可されない。すなわち発行元ノードが属するパーティションとは異なるパーティションに属するエントリに対する書き換えが発生する場合には、当該エントリの書き換えが許可されない。
【００５２】
次に図５とともに条件Ｃについて説明する。
【００５３】
条件Ｃは「ＷＤのＰｏｒｔフィールドが示すポートがルーティングテーブル１２０に登録済みであり、登録済みのエントリのパーティションフィールドと発行元ノードが属するパーティションとが異なる場合」にエントリの書き換えを許可しないための条件である。
【００５４】
図５に示す回路は、Ｃ４１〜Ｃ４ＮのＮ個の比較回路と、Ｃ５１〜Ｃ５ＮのＮ個の比較回路とを有する。比較回路Ｃ４１〜Ｃ４Ｎ、比較回路Ｃ５１〜Ｃ５Ｎはそれぞれ、ルーティングテーブルのエントリＥ１〜ＥＮのいずれかに対応している。比較回路Ｃ４１〜Ｃ４Ｎは、ＷＤのＰｏｒｔフィールドと、ルーティングテーブル１２０の対応するエントリのポートフィールドとを比較する。比較回路Ｃ５１〜Ｃ５Ｎは、ＷＤのＰＩＤフィールドと、ルーティングテーブル１２０の対応するエントリのパーティションフィールドとを比較する。
【００５５】
図５に示す回路はさらに、ＡＮＤ回路Ａ７１〜ＡＮＤ回路Ａ７ＮのＮ個のＡＮＤ回路を備える。ＡＮＤ回路Ａ７１〜Ａ７Ｎの各々は、ルーティングテーブル１２０の対応するエントリＥ１〜ＥＮにつき、ＷＤのパーティションとは異なるパーティションに属することをＣ５１〜Ｃ５Ｎの出力信号が示し、ＷＤのポートのエントリであることをＣ４１〜Ｃ４Ｎの出力信号が示し、且つ有効なエントリである場合に、出力信号をアサートする。ＡＮＤ回路Ａ８は、ＷＤが有効であり且つ、有効な書き換え対象のエントリが属するパーティションを異なるパーティションに属するものへと書き換えようとするものである場合に、条件Ｃの信号をアサートする。すなわち条件Ｃが満たされる。条件Ｃが満たされる場合とは、「有効なエントリを有効なまま書き換える場合であり、パーティションを変更する場合」である。その結果「パーティションを変更する」態様のエントリ書き換えが許可されない。
【００５６】
ここで「パーティションを変更する」態様として、以下の３態様が考えられる。第１の態様は「発行元ノードが属するパーティションに属するエントリを、異なるパーティションのエントリに書き換える」場合である。第２の態様は、「発行元ノードが属するパーティションとは異なるパーティションに属するエントリを、発行元ノードが属するパーティションのエントリに書き換える」場合である。第３の態様は、「発行元ノードが属するパーティションとは異なるパーティションに属するエントリを、発行元ノードが属するパーティションとは異なる他のパーティションのエントリに書き換える」場合である。第２，第３の態様は「書き換え対象エントリが属するパーティションが発行元ノードが属するパーティションとは異なる場合」に該当する。したがって条件Ｃが満たされる場合にエントリの書き換えが許可されないようにすることにより、「書き換え対象エントリが属するパーティションが、発行元ノードが属するパーティションとは異なる場合」に、エントリが有効なままエントリが書き換えられることが防止される。その結果、発行元ノードが属するパーティションとは異なるパーティションについて使用中のエントリが書き換えられることが防止される。
【００５７】
図６とともに条件Ｄについて説明する。条件Ｄは「発行元ノードがルーティングテーブル１２０に未登録で、既にルーティングテーブル１２０に登録済みのパーティションおよびポートのうちの少なくとも何れかをルーティングに書き込もうとする場合」に書き換えを許可しないための条件である。図６中、比較回路Ｃ６１〜Ｃ６Ｎは、ＷＤのＰｏｒｔフィールドと、比較回路Ｃ６１〜Ｃ６Ｎに対応するエントリＥ１〜ＥＮのポートフィールドとを比較する。比較回路Ｃ７１〜Ｃ７Ｎは、ＷＤのＰＩＤフィールドと、比較回路Ｃ７１〜Ｃ７Ｎに対応する各エントリＥ１〜ＥＮのパーティションフィールドとを比較する。ＯＲ回路Ｏ３１〜Ｏ３Ｎは、対応するエントリＥ１〜ＥＮにつき、比較回路Ｃ６１〜Ｃ６Ｎと比較回路Ｃ７１〜Ｃ７Ｎとの出力に基づいて、エントリに登録されているポートおよびパーティションのうちの少なくとも一方がＷＤと一致する場合、出力信号をアサートする。ＡＮＤ回路Ａ９１〜Ａ９Ｎは、対応するエントリＥ１〜ＥＮにつき、ＯＲ回路Ｏ３１〜Ｏ３Ｎの出力に応じて、エントリに登録されたポートおよびパーティションのうちの少なくとも一方がＷＤと一致し、且つ対応するエントリが有効な場合、出力信号をアサートする。ＯＲ回路Ｏ４は、ＡＮＤ回路Ａ９１〜Ａ９Ｎの出力に応じて、エントリに登録されたポートおよびパーティションのうちの少なくとも一方がＷＤと一致し、且つ有効なエントリが存在する場合、出力信号をアサートする。ＡＮＤ回路Ａ１０は、ポートおよびパーティションのうちの少なくとも一方がＷＤと一致し且つ有効なエントリが存在することをＯＲ回路Ｏ４の出力が示し、且つＷＤが有効な場合、条件Ｄの信号をアサートする。すなわち条件Ｄが満たされる。従って、ポートおよびパーティションのうちの少なくとも一方がＷＤと一致し、有効なエントリが存在し、且つＷＤが有効な場合に条件Ｄが満たされる。
【００５８】
ここで条件Ｄは図３の回路において適用される。上記の如く、図３中、ＡＮＤ回路Ａ３は、条件Ｄが満たされず、発行元ノードのエントリ書き換えをＣ１出力が示し、且つ発行元ノードのエントリＥｓが無効である場合に、出力信号をアサートし、エントリの書き換えが許可されるようにする。発行元ノードのエントリＥｓが無効である場合とは、発行元ノードがルーティングテーブル１２０に未登録の場合である。したがって条件Ｄが満たされると、発行元ノードがルーティングテーブル１２０に未登録の場合であってもエントリの書き換えが許可されない。
【００５９】
次に図３とともに条件Ｅについて説明する。条件Ｅは、発行元ノードのＮＩＤがルーティングテーブル１２０に未登録、すなわちルーティングテーブル１２０内の発行元ノードのエントリが無効で、発行元ノードのＮＩＤとＷＤのＮＩＤが一致しない、すなわち発行元ノード以外のノードのエントリに書き換える場合にエントリの書き換えを許可しないための条件である。
【００６０】
条件Ｅも図３の回路において適用される。上記の如く、図３中、ＡＮＤ回路Ａ３は、条件Ｄが満たされず、発行元ノードのエントリ書き換えをＣ１出力が示し、且つ発行元ノードのエントリＥｓが無効である場合に、出力信号をアサートし、エントリの書き換えを許可するようにする。発行元ノードのエントリＥｓが無効である場合とは、発行元ノードがルーティングテーブル１２０に未登録の場合である。したがって発行元ノードのＮＩＤがルーティングテーブル１２０に登録されていない場合でも、発行元ノード以外のノードのエントリの書き換えが行なわれようとしている場合にはエントリの書き換えが許可されない。
【００６１】
図７，図８はそれぞれ、ライトパケットによる書き換え前のルーティングテーブル１２０およびＷＤの各々の内容の例とともに、各例においてエントリ書き換えが許可されるか否かを示す。エントリの書き換えが許可されるか否かは、上述した実施例の場合と参考例の場合とを対比して示す。ここで参考例とは、実施例の「ライト可否判定回路１３５」の機能が設けられていない場合を示す。なお、書き換え前のルーティングテーブル１２０およびＷＤの各々においてＶａｌｉｄフィールド、Ｖフィールドが０の場合、ルーティングテーブルのポート、パーティション、およびＷＤのＰｏｒｔ，ＰＩＤの各フィールドの内容は無効であり意味を持たない。図７はルーティングテーブル１２０に発行元ノードのパーティション情報が登録されている場合の例を示し、図８は、ルーティングテーブル１２０に発行元ノードのパーティション情報が登録されていない場合の例を示す。
【００６２】
図７中、Ｎ１で示されるように、参考例の場合、書き換え対象エントリのパーティションフィールドが示すパーティションと発行元ノードが属するパーティションとが異なる場合であっても、エントリの書き換えが許可される。これに対し、実施例の場合、書き換え対象エントリのパーティションフィールドが示すパーティションと発行元ノードが属するパーティションとが異なる場合にはエントリの書き換えが許可されない。
【００６３】
又図７中、Ｎ２で示されるように、ＷＤのＰＩＤフィールドが示すパーティションと発行元ノードが属するパーティションとが異なる場合であっても、参考例ではエントリ書き換えが許可されるが、実施例ではエントリ書き換えが許可されない。
【００６４】
更に図７中、Ｎ３で示されるように、ＷＤのＰｏｒｔフィールドが示すポートが既に他のパーティションで使用されている場合、参考例ではエントリ書き換えが許可されるが、実施例ではエントリ書き換えが許可されない。
【００６５】
又図８のＮ４に示される如く、ＷＤのＰｏｒｔフィールドが示すポート或いはＰＩＤフィールドが示すパーティションが既にルーティングテーブル１２０に登録済みで使用されている場合、参考例ではエントリの書き換えが許可されるが、実施例ではエントリ書き換えが許可されない。
【００６６】
又図８のＮ５に示される如く、書き換え対象エントリのＮＩＤフィールドが示すＮＩＤと発行元ノードのＮＩＤが異なる場合、参考例ではエントリ書き換えが許可されるが、実施例ではエントリ書き換えが許可されない。
【００６７】
このように、実施例のライト可否判定回路１３５の機能によれば、他のパーティションに影響を与える態様のエントリ書き換えが許可されないように制御される。
【００６８】
図９は、図１Ａに示したクロスバ１００の構成中、特に各ポートＰａ〜Ｐｄの構成をより具体的に説明するための図である。尚説明の便宜上、図９では図１Ａに示されているポートＰｅは省略されている。図９に示す如く、各ポートＰａ〜Ｐｄは入力バッファおよび出力バッファを有する。各ノード１１〜１４から転送された転送データは、一旦対応するポートの入力バッファに格納された後にルータ１１０に渡される。同様にルータから各ポートＰａ〜Ｐｄに渡された転送データは、一旦当該ポートの出力バッファに格納された後に、当該ポートに接続されているノード１１〜１４に転送される。
【００６９】
図１０は、実施例のライト可否判定回路１３５が実行するルーティングテーブルの書き換え動作を説明するフローチャートである。図１０中、条件Ａ〜Ｅは、図２〜図６とともに上述した条件Ａ〜Ｅをそれぞれ示す。
【００７０】
図１０中、ステップＳ１で、発行元ノードが属するパーティションがルーティングテーブル１２０に登録済みか否かが判断される。発行元ノードが属するパーティションがルーティングテーブルに未登録の場合（ステップＳ１のＮＯ），ステップＳ２で、ライトパケットに発行元ノードが属するパーティションの情報が含まれているか否かが判断される。ステップＳ２の判断結果がＮＯの場合、ステップＳ１０で条件Ｄが満たされるか否かが判断される。ステップ１０の判断結果がＹＥＳの場合、エントリの書き換えが許可されない（Ｓ１１）。ステップ１０の判断結果がＮＯの場合、条件Ｅが満たされるか否かが判断される（ステップＳ１２）。ステップ１２の判断結果がＹＥＳの場合、エントリの書き換えが許可されない（ステップＳ１３）。一方、ステップ１２の判断結果がＮＯの場合、エントリの書き換えが許可される（ステップＳ１４）。
【００７１】
他方、ステップＳ１あるいはステップＳ２の判断結果がＹＥＳの場合、ステップＳ３で条件Ａが満たされるか否かが判断される。ステップＳ３の判断結果がＹＥＳの場合、エントリの書き換えが許可されない（ステップＳ４）。ステップＳ３の判断結果がＮＯの場合、ステップＳ５で条件Ｂが満たされるか否かが判断される。ステップＳ５の判断結果がＹＥＳの場合、エントリの書き換えが許可されない（ステップＳ６）。ステップＳ５の判断結果がＮＯの場合、ステップＳ７で条件Ｃが満たされるか否かが判断される。ステップＳ７の判断結果がＹＥＳの場合、エントリの書き換えが許可されない（ステップＳ８）。一方、ステップＳ７の判断結果がＮＯの場合、エントリの書き換えが許可される（ステップＳ９）。
【００７２】
次に図１１Ａ，１１Ｂとともに、ライト可否判定回路１３５が実行するルーティングテーブルの書き換え動作を詳細に説明する。なお、図１１ＡのステップＳ３１は図１０のステップＳ２に対応し、図１１ＡのステップＳ３２は図１０のステップＳ１に対応し、図１１ＡのステップＳ３３，Ｓ３６，Ｓ３７，Ｓ３８は図１０のステップＳ１０に対応する。又図１１ＡのステップＳ３４は図１０のステップＳ１２に対応し、図１１ＡのステップＳ３９は図１０のステップＳ１１，Ｓ１３に対応し、図１１ＡのステップＳ３５は図１０のステップＳ１４に対応する。又図１１ＢのステップＳ５１，Ｓ５２は図１０のステップＳ３に対応し、図１１ＢのステップＳ５３，Ｓ５４は図１０のステップＳ５に対応し、図１１ＢのステップＳ５５，Ｓ５６，Ｓ５７，Ｓ５８は図１０のステップＳ７に対応する。又図１１ＢのステップＳ６０は図１０のステップＳ４，Ｓ６，Ｓ８に対応し、図１１ＢのステップＳ５９は図１０のステップＳ９に対応する。
【００７３】
図１１Ａ中、ステップＳ３１で、ライトパケットに発行元ノードが属するパーティション情報が含まれているか否かが判断される。ステップＳ３１の判断結果がＮＯの場合、ステップＳ３２で発行元ノードが属するパーティション情報がルーティングテーブル１２０に登録済みか否かが判断される。ステップＳ３２の判断結果がＮＯの場合、ステップＳ３３で、ＷＤのＶフィールドが“１”か否かが判断される。ステップＳ３３の判断結果がＮＯの場合、ステップＳ３４で、ＷＤのＮＩＤフィールドが示すＮＩＤが書き換え対象エントリのＮＩＤと一致するか否かが判断される。ステップＳ３４の判断結果がＹＥＳの場合、ステップＳ３５でエントリの書き換えが許可される。又ステップＳ３４の判断結果がＮＯの場合、ステップＳ３９でエントリ書き換えが許可されない。
【００７４】
一方、ステップＳ３３の判断結果がＹＥＳの場合、ステップＳ３６で、ＷＤのＰｏｒｔフィールドが示すポートがルーティングテーブル１２０に登録済みか否かが判断される。ステップＳ３６の判断結果がＮＯの場合、ステップＳ３７で、ＷＤのＰＩＤフィールドが示すパーティションがルーティングテーブル１２０に登録済みか否かが判断される。ステップＳ３７の判断結果がＮＯの場合、ステップＳ３４が実行される。又ステップＳ３６あるいはＳ３７の判断結果がＹＥＳの場合、ステップＳ３８が実行される。ステップＳ３８では、ステップＳ３６或いはＳ３７でルーティングテーブル１２０に登録済みとされた該当するエントリのＶａｌｉｄフィールドが“１”か否かが判断される。ステップＳ３８の判断結果がＮＯであればステップＳ３４が実行され、ＹＥＳであればエントリの書き換えが許可されない（ステップＳ３９）。
【００７５】
又図１１ＡのステップＳ３１あるいはＳ３２の判断結果がＹＥＳの場合、図１１ＢのステップＳ５１が実行される。ステップＳ５１では、ルーティングテーブル１２０中の書き換え対象エントリのＶａｌｉｄフィールドが“１”か否かが判断される。ステップＳ５１の判断結果がＹＥＳの場合、ステップＳ５２で、ルーティングテーブル１２０中の書き換え対象エントリのパーティションフィールドが示すパーティションが発行元ノードが属するパーティションと一致するか否かが判断される。ステップＳ５２の判断結果がＹＥＳの場合、或いはステップＳ５１の判断結果がＮＯの場合、ステップＳ５３が実行される。ステップＳ５２の判断結果がＮＯの場合、エントリの書き換えが許可されない（ステップＳ６０）。
【００７６】
ステップＳ５３では、ＷＤのＶフィールドが“１”か否かが判断される。ステップＳ５３の判断結果がＹＥＳの場合、ステップＳ５４で、ＷＤのＰＩＤフィールドが示すパーティションが発行元ノードが属するパーティションと一致するか否かが判断される。ステップＳ５４の判断結果がＹＥＳの場合、或いはステップＳ５３の判断結果がＮＯの場合、ステップＳ５５が実行される。ステップＳ５４の判断結果がＮＯの場合、エントリの書き換えが許可されない（ステップＳ６０）。
【００７７】
ステップＳ５５では、ＷＤのＶフィールドが“１”か否かが判断される。ステップＳ５５の判断結果がＹＥＳの場合、ステップＳ５６で、ＷＤのＰｏｒｔフィールドが示すポートがルーティングテーブル１２０に登録済みか否かが判断される。ステップＳ５６の判断結果がＹＥＳの場合、ステップＳ５７が実行される。ステップＳ５７では、ステップＳ５６でルーティングテーブル１２０に登録済みとされた該当するエントリのＶａｌｉｄフィールドが“１”か否かが判断される。ステップＳ５７の判断結果がＹＥＳの場合、ステップＳ５８が実行される。ステップＳ５８では、ステップＳ５６でルーティングテーブル１２０に登録済みとされた該当するエントリのパーティションフィールドが示すパーティションがＷＤのＰＩＤフィールドが示すパーティションと一致するか否かが判断される。ステップＳ５８の判断結果がＹＥＳの場合、エントリ書き換えが許可されない（ステップＳ６０）。ステップＳ５５，Ｓ５６，Ｓ５７，Ｓ５８のうちの何れかの判断結果がＮＯの場合、エントリ書き換えが許可される（ステップＳ５９）。
【００７８】
なお、図１０において、ステップＳ１，Ｓ２は実行の順序を相互に交換可能である。同様に図１１Ａにおいて、ステップＳ３１，Ｓ３２は実行の順序を相互に交換可能である。又図１０において、ステップＳ１０，Ｓ１２は実行の順序を相互に交換可能である。同様に図１１Ａにおいて、ステップＳ３３，Ｓ３６，Ｓ３７、Ｓ３８のグループ（図１１Ａ“Ｄ”）と、ステップＳ３４（図１１Ａ“Ｅ”）とは、実行の順序を相互に交換可能である。
【００７９】
又図１０において、ステップＳ３，Ｓ５，Ｓ７の間で、実行の順序を自由に変更可能である。同様に図１１Ｂにおいて、ステップＳ５１，５２のグループ（図１１Ｂ“Ａ”）と、ステップＳ５３，５４のグループ（図１１Ｂ“Ｂ”）と、ステップＳ５５，Ｓ５６，Ｓ５７，Ｓ５８のグループ（図１１Ｂ“Ｃ”）との間で、実行の順序を自由に変更可能である。更にステップＳ５５，Ｓ５６との間で実行の順序を自由に変更可能である。同様にステップＳ５７，Ｓ５８の間で実行の順序を自由に変更可能である。
【００８０】
次に図１２とともに、図１０，図１１Ａ，１１Ｂとともに上記したルーティングテーブルの書き換え方法をコンピュータに実行させる場合につき、説明する。
【００８１】
図１２に示すごとく、コンピュータ５００、すなわちライト可否判定回路１３５は、与えられたプログラムを構成する命令を実行することによって様々な動作を実行するためのＣＰＵ５０１と、操作部５０２とを有する。また同コンピュータ５００は、ＲＯＭ、ＲＡＭ等よりなりＣＰＵ５０１が実行するプログラム、データ等を記憶し或いは作業領域として使用されるメモリ５０４を有する。また同コンピュータ５００は、インターネット、ＬＡＮ等の通信網５０９を介して外部サーバからプログラムをダウンロード等するためのモデム５０８を有する。同コンピュータ５００では、メモリ５０４のＲＯＭに、上記ルーティングテーブルの書き換え方法をコンピュータに実行させるためのプログラムが格納される。そして当該プログラムがＣＰＵ５０１に実行されることにより、コンピュータ５００によりライト可否判定回路１３５が実現される。
【符号の説明】
【００８２】
１００  クロスバ
１１０  ルータ
１２０  ルーティングテーブル
１３０  レジスタアクセス制御回路
１３１  デコーダ
１３５  ライト可否判定回路
Ａ１〜Ａ１０、Ａ７１〜Ａ７Ｎ、Ａ９１〜Ａ９Ｎ  ＡＮＤ回路
Ｃ１〜Ｃ３，Ｃ４１〜Ｃ４Ｎ，Ｃ５１〜Ｃ５Ｎ，Ｃ６１〜Ｃ６Ｎ，Ｃ７１〜Ｃ７Ｎ  比較回路
Ｅ１〜ＥＮ  ルーティングテーブルに含まれるエントリ
Ｅｔ  ルーティングテーブル中、書き換え対象のエントリ
Ｅｓ  ルーティングテーブル中、ライトパケット発行元ノードのエントリ
Ｏ１、Ｏ２，Ｏ３１〜Ｏ３Ｎ、Ｏ４  ＯＲ回路
Ｐａ，Ｐｂ，Ｐｃ，Ｐｄ，Ｐｅ、Ｐ０、Ｐ１、Ｐ２、Ｐ３  ポート
ＰＳ  ライトパケット発行元のＣＰＵのＰＩＤ（パーティションＩＤ）
ＷＤ  ライトデータ
ＷＰ  ライトパケット
【図１Ａ】
2011035646.tif 000003
【図１Ｂ】
2011035646.tif 000004
【図１Ｃ】
2011035646.tif 000005
【図２】
2011035646.tif 000006
【図３】
2011035646.tif 000007
【図４】
2011035646.tif 000008
【図５】
2011035646.tif 000009
【図６】
2011035646.tif 000010
【図７】
2011035646.tif 000011
【図８】
2011035646.tif 000012
【図９】
2011035646.tif 000013
【図１０】
2011035646.tif 000014
【図１１Ａ】
2011035646.tif 000015
【図１１Ｂ】
2011035646.tif 000016
【図１２】
2011035646.tif 000017