(57)【特許請求の範囲】
【請求項１】
物理層から上位へ各階層がそれぞれ定義された、複数のプロトコル階層に従ったプロトコルのメッセージをそれぞれ伝送する、複数のネットワーク間に配置され、特定のプロトコル階層でこれらネットワーク間を接続する機能を有し、異なるネットワークにある送信元から送信先へ、送信先アドレスのデータを含むメッセージを送信するために用いられるネットワーク間接続装置において、
当該ネットワーク間接続装置が受信したメッセージ中の前記送信先アドレスから各種アドレス成分を抽出するためのアドレスマスクを、該送信先アドレスに従って生成すると共に、生成した該アドレスマスクで前記送信先アドレスを処理した検索参照制御用アドレスを出力するための、参照用エントリアドレスと、該参照用エントリアドレスの個々のビットが前記各種アドレス成分の抽出に関与するか否かを示す参照用エントリマスクとの対を、アドレスエントリデータとして複数記憶するアドレスマスクテーブルと、対応する前記アドレスエントリデータについて、その参照用エントリマスクでマスクをかけながら、その参照用エントリアドレスと前記送信先アドレスとのアドレス一致を判定する、前記アドレスエントリデータと同数だけ設けられるエントリデータ比較器と、これらエントリデータ比較器のうち、アドレス一致と判定したそれぞれのエントリデータ比較器に対応するアドレスエントリデータの参照用エントリマスクを合成しながら、実際に用いる前記アドレスマスクを生成するアドレスマスク生成部と、該アドレスマスクで前記送信先アドレスを処理して前記検索参照制御用アドレスを生成し、出力するマスキング回路とで構成されるマスク処理部と、
該検索参照制御用アドレスに基づき、当該ネットワーク間接続装置での送信先側のネットワークへのメッセージ送信の際に用いる送信制御情報を生成する送信制御情報生成部とを備え、
該送信制御情報に従って、当該ネットワーク間接続装置に接続される送信先側の該当するネットワークへ、受信したメッセージを転送するようにしたことを特徴とするネットワーク間接続装置。
【請求項２】
請求項１において、前記アドレスマスク生成部が、前記エントリデータ比較器のうち、アドレス一致と判定したそれぞれのエントリデータ比較器に対応するアドレスエントリデータの参照用エントリマスクの中で、前記各種アドレス成分の抽出に関与することが指定されたビットの数が最も多い参照用エントリマスクを選択し、これを前記アドレスマスクとして出力するようにされていることを特徴とするネットワーク間接続装置。
【請求項３】
請求項１又は２において、前記参照用エントリマスクが、マスク長を示すデータによって、前記各種アドレス成分の抽出に関与する前記参照用エントリアドレスの個々のビットを示すようにしたことを特徴とするネットワーク間接続装置。
【請求項４】
請求項１乃至３のいずれか一項において、前記アドレスエントリデータが全ビット有効フラグを有すると共に、
前記エントリデータ比較器が、前記アドレス一致の判定の際に、当該エントリデータ比較器に対応する前記アドレスエントリデータの前記全ビット有効フラグが有効を示している場合、前記アドレスマスク生成部が用いる参照用エントリマスクの全ビットを強制的に有効にセットする機能を実現する全マスクビット強制セット回路を有していることを特徴とするネットワーク間接続装置。
【請求項５】
請求項１乃至４のいずれか一項において、前記送信制御情報生成部が、前記送信制御情報を記憶する連想メモリを備え、
前記検索参照制御用アドレスを該連想メモリの検索データとし、該連想メモリのデータ一致のアドレス出力を用いて前記送信制御情報を生成するものであることを特徴とするネットワーク間接続装置。
【請求項６】
請求項１乃至５のいずれか一項において、前記送信制御情報生成部が、前記送信制御情報を記憶する連想メモリを備え、
前記検索参照制御用アドレスを該連想メモリの検索データとし、該連想メモリのデータ一致が検出されたアドレスにより指し示されるデータの内、検索に使用されなかった部分のデータを用いて前記送信制御情報を生成するものであることを特徴とするネットワーク間接続装置。
【請求項７】
請求項１乃至６のいずれか一項において、前記アドレスエントリデータと同数だけ設けられる複数のエントリデータ比較器の全てにおいてアドレス一致が検出されなかった場合に、前記送信先アドレスのビット列の判定により該送信先アドレスのアドレスクラスを認識し、該アドレスクラスに基づいて、前述の各種アドレス成分の抽出に関与するか否かをビット毎に指定するビット列を生成し、該ビット列を前記アドレスマスクとして使用することを特徴とするネットワーク間接続装置。
【請求項８】
物理層から上位へ各階層がそれぞれ定義された、複数のプロトコル階層に従ったプロトコルのメッセージをそれぞれ伝送する、複数のネットワーク間に配置され、特定のプロトコル階層でこれらネットワーク間を接続する機能を有し、異なるネットワークにある送信元から送信先へ、送信先アドレスのデータを含むメッセージを送信するために用いられるネットワーク間接続装置において、
当該ネットワーク間接続装置が受信したメッセージ中の前記送信先アドレスから各種アドレス成分を抽出するための、異なる複数のアドレスマスクを、マスクする桁数が多いものから少ないものへ順に記憶するマスクレジスタ群と、
該マスクレジスタ群に記憶される複数のアドレスマスクを、マスクする桁数が多いものから少ないものへ順に選択するために用いるカウンタと、
前記各種アドレス成分にて示される送信経路のそれぞれのアドレスを検索データとして記憶し、前記カウンタで選択されたアドレスマスクを用いながら、前記送信先アドレスに一致する前記アドレスを検索し、一致するものが存在する場合にはヒット信号を出力すると共に、一致した検索データが記憶される連想メモリアドレスをヒットアドレス信号として出力する連想メモリと、
前記カウンタの初期化の制御を行うと共に、該カウンタで順次カウントすることで、マスクする桁数が多いものから少ないものへ順にアドレスマスクを選択しながら前記ヒット信号が出力されるまでなされる、前記連想メモリを用いた検索の制御を行う検索シーケンサとを備え、
前記ヒットアドレス信号に基づいて識別される、当該ネットワーク間接続装置に接続される送信先側の該当するネットワークへ、受信したメッセージを転送するようにしたことを特徴とするネットワーク間接続装置。
【請求項９】
請求項８において、前記アドレスマスク群、前記カウンタ、及び前記連想メモリが複数組備えられ、
複数の前記アドレスマスク群それぞれには、順に輪番に、異なる複数の前記アドレスマスクが、マスクする桁数が多いものから少ないものへ、一つづつ順にふり分けられて記憶されており、
複数の前記連想メモリには、相互に同一の前記検索データが記憶されていることを特徴とするネットワーク間接続装置。
【発明の詳細な説明】
技術分野
本発明は、物理層から上位へ各階層がそれぞれ定義された、複数のプロトコル階層に従ったプロトコルのメッセージをそれぞれ伝送する、複数のネットワーク間に配置され、特定のプロトコル階層でこれらネットワーク間を接続する機能を有し、異なるネットワークにある送信元から送信先へ、送信先アドレスのデータを含むメッセージを送信するために用いられるネットワーク間接続装置に係る。特に、受信したメッセージ（受信フレーム）の送信先アドレスからネットワークアドレスやサブネットワークアドレスを抽出するなどの、従来複雑で処理時間を要していた処理を中心として、ループ処理を低減したり、又、比較的簡単な処理に置き換えたりすることで、ネットワーク間接続装置における送信経路決定処理などの諸処理を能率よく行えるようにし、これによって、処理速度の向上や、利用するハードウエアの簡略化でコスト削減を図ると共に、装置全体のハードウエア化も可能とすることができるネットワーク間接続装置に関する。
背景技術
電話型公衆通信回路等の電話網や特定通信回線等、音声による相互通信を目的として構築された電話網は、データ通信に利用しようとすると伝送品質や伝送速度の面で制約がある。このため、データトラフィック特性等、データ通信特有の特性に、より適合したデジタルデータ公衆網の構築が、日本を含め世界各国で進められている。このデジタルデータ公衆網は、デジタル信号用の伝送路及び交換機を用いたものであり、日本では、回線交換網やパケット交換網によるサービスが提供されている。又、国際接続についても、ＣＣＩＴＴ（international telegraph and telephone consultative committee）によって国際標準化が進められ、現在、回線交換方式、パケット交換方式、デジタル専用線等、新データ網関係の勧告（Ｘシリーズ勧告）としてほぼ整備されている。
一方、データベースなどの情報（データ）や周辺機器の共有等を目的として、近年、ＬＡＮ（Local Area Network）と称するネットワークが広く用いられるようになっている。このＬＡＮは、限定された所定の構内、例えばオフィスや工場や研究所、大学等の限定された範囲内で、分散設置されたコンピュータや通信端末機器等のデジタル機器を接続するものであり、ある種の交換機能を有している。このようなＬＡＮにおいても、ＩＥＥＥ（Institute of Electrical Electronics Engineers）８０２委員会や、ＩＳＯ（International Standardization Organization；国際標準化機構）等において、プロトコル等の標準化が行われている。
デジタルデータ公衆網で適用されているＯＳＩ（Open Systems Interconnection）参照モデルや、ＩＥＥＥで標準化された前述のようなＬＡＮのプロトコルは、物理層から上位へ各階層がそれぞれ定義される、複数のプロトコル階層によって定義されている。又、ＷＡＮ（Wide Area Network）や他のＬＡＮ等で広く用いられるプロトコルについても、通常複数のプロトコル階層に従って定義されている。このように、大抵のネットワークのプロトコルは、複数のプロトコル階層に従って定義されている。
又、ＬＡＮやＷＡＮあるいはデジタルデータ公衆網等、複数のネットワーク間を接続することが従来から行われている。例えば、伝送するメッセージのプロトコルを定義する複数のプロトコル階層のうち、少なくとも幾つかの階層が相互に異なるネットワーク間でも、従来からネットワーク間接続が行われている。
ここで、ＯＳＩ第２層のＭＡＣ（Media Access Control）層が同一の２つのネットワークを第２層で接続するネットワーク間接続装置は、ブリッジ等と呼ばれている。ＯＳＩ第１層〜第７層が異なる複数のネットワークを接続するネットワーク間接続装置は、ゲートウェイ等と呼ばれている。又、本願の後述する実施形態として言及されているような、ＯＳＩ第１層〜第３層が異なる複数のネットワークを第３層で接続するネットワーク間接続装置は、ルータ等と呼ばれている。
なお、本願発明が対象とするネットワーク間接続装置は、後述する実施形態のルータに限定されるものではなく、例えば前述のブリッジやゲートウェイにも適用することができる。又、本発明が適用されたネットワーク間接続装置が接続するネットワークについても、前述した特定のＬＡＮに限定されるものではなく、種々のＬＡＮやＷＡＮ、デジタルデータ公衆網であってもよい。
ここで、従来から用いられている、ＬＡＮ間を接続するネットワーク間接続装置、特にＩＰ（Internet Protocol）ルータについて、本願発明に関係する部分をより詳細に説明する。
ＩＰルータは、受信フレームに含まれるＩＰヘッダ中の送信先ＩＰアドレスに基づいて、この受信フレームの送信経路を決定する処理（ＩＰルーチング処理と称する）を行う。このようなＩＰルーチング処理は、送信先ＩＰアドレスの各種アドレス成分、特に、ネットワークアドレスを抽出しながら実行される。
なお、一般的なネットワーク間接続装置においても、受信したメッセージ中の送信先アドレスから各種アドレス成分を抽出し、該各種アドレス成分に従った制御を行いながら、当該ネットワーク間接続装置に接続される送信先側の該当するネットワークへ、受信したメッセージを転送する一連の処理（ルーチング処理と称する）が行われている。
前記送信先ＩＰアドレスは、３２ビット構成とされ、図１に示されるように、クラスビット、ネットワークアドレスビット、及び、ホストアドレスビットの合計３つのフィールドから構成されている。又、各フィールドは、この順に、３２ビットのＩＰアドレスのＭＳＢ（Most Significant Bit）側からＬＳＢ（Least Significant Bit）側へ構成されている。図１に示されるように、クラスビットで示されるＡ〜Ｃのアドレスクラスに応じて、該クラスビットのフィールドのビット数を含め、ネットワークアドレスビットのフィールドのビット数、及び、ホストアドレスビットのフィールドのビット数が決定される。
図１に示されるように、まず、３２ビットのＩＰアドレスのＭＳＢが“０”である場合、クラスビットで“Ａ”のアドレスクラス（クラスＡと称する）が示される。この場合、ネットワークアドレスビットのフィールドは７ビット、ホストアドレスビットのフィールドは２４ビットとなる。又、ＩＰアドレスのＭＳＢから２つのビットが“１０”の場合、クラスビットで“Ｂ”のアドレスクラス（クラスＢと称する）が示される。この場合、ネットワークアドレスビットのフィールドは１４ビット、ホストアドレスビットのフィールドは１６ビットとなる。又、ＩＰアドレスのＭＳＢから３つのビットが“１１０”の場合、クラスビットで“Ｃ”のアドレスクラス（クラスＣと称する）が示される。この場合、ネットワークアドレスビットのフィールドは２１ビット、ホストアドレスビットのフィールドは８ビットとなる。
前記ネットワークアドレスは、インターネット上の各ネットワークのアドレスを示す。該ネットワークアドレスは、前記クラスビットとネットワークアドレスビットで表わされる。ホストアドレスは、前記ネットワークアドレスで示されるネットワーク内において、個々のホストのアドレスを示す。このホストアドレスは、前記ホストアドレスビットで表わされる。
前記ＩＰルータは、複数のネットワーク間に配置され、各ネットワークから受け取る受信フレーム中に含まれるＩＰヘッダ中の送信先ＩＰアドレスを検査する。該ＩＰルータは、送信先ＩＰアドレスの特にネットワークアドレスを調べ、該ネットワークアドレスが、そのＩＰルータのポート（自ポート）に接続されている。ネットワークであるならば、そのＩＰアドレスのホストアドレスからＭＡＣアドレスを引き出し、該当するホストに対してフレームを送信する。一方、ＩＰアドレス中のネットワークアドレスが、自ポートに接続されるネットワーク以外のアドレスを示している場合には、その受信フレームを他ポートへ中継する。
３２ビットのＩＰアドレスからネットワークアドレスを抽出する際に、ＩＰルータは、受信フレームのＩＰアドレスマスクの処理を行う。このマスク処理は、ＩＰアドレスと所定のアドレスマスクの対応するビット同士の論理積を演算することによって行われる。ここで、アドレスマスクは、ＩＰアドレスと同じ３２ビットのデータである。特にネットワークアドレスを抽出するためのアドレスマスクでは、ＩＰアドレスのクラスビットとネットワークアドレスビットのフィールドと同じビット位置の各ビットが“１”であり、その他、ＩＰアドレス中のホストアドレスビットフィールドと同じビット位置の各ビット“０”となる。
前記アドレスマスクは、ＩＰアドレス等の送信先アドレスとの論理積で、ネットワークアドレス等の各種アドレス成分を抽出するよう用いられる。このため、アドレスマスクのビットが“１”であれば、その桁で特定のアドレス成分のビットの抽出を行うが、このように抽出対象とすることを、以降、「マスクする」と表現する。一方、“０”であれば、このような特定のアドレス成分の抽出を行わないが、このように非対象とすることを以降、「マスクしない（無視）」と表現する。
ＩＰアドレスが、このようにクラスＡ〜クラスＣの３種類のみであれば、ネットワークアドレスビットのフィールドの種類も３種類のみであり、従って、ネットワークアドレスビットを抽出するために用いるアドレスマスクも３種類備えておけばよい。実際にネットワークアドレスを抽出する際には、ＩＰアドレスのＭＳＢから１つ〜３つのビットによって、アドレスクラスがクラスＡ〜クラスＣのいずれであるか判定し、これに応じて３種類のアドレスマスクを選択し、選択したアドレスマスクを用いてネットワークアドレスビットを抽出すればよく、比較的簡単に自動的に行うことができる。
しかしながら、近年では、ＩＰアドレスが枯渇するとともに、３２ビットで表わされるアドレスをより有効に利用することが要求されている。このため、ホストアドレスビットの最初の数ビットを、ネットワークアドレスビットに準ずるものとして、１つのネットワークを複数に分割したサブネットワークのアドレス指定に用いるマルチプロトコル処理が行われるようになってきている。
前記ＩＰルータが、このようなマルチプロトコルのサブネットワーク間に設置された場合、アドレスマスクを用いた前記ネットワークアドレスを抽出する処理に類似した、サブネットワークアドレスを抽出する処理を行い、受信フレームから抽出したサブネットワークアドレスに従って正しく中継する必要がある。又、このようにサブネットワークアドレスを抽出するためには、専用のアドレスマスクを備える必要がある。
従って、近年のＩＰルータは、接続されるネットワークのネットワークアドレスやサブネットワークアドレスに対応するため、ＩＰアドレスのみならず、これに対するアドレスマスクと対でテーブルを有している。このようなテーブルを用いて、受信フレームのＩＰアドレス中のネットワークアドレスやサブネットワークアドレスを抽出している。このようにテーブルを用いる方法は、論理的には簡潔であり理解しやすいが、実際の処理に当たっては、次に示すような複雑な問題を内包している。
即ち、サブネットワークアドレスのフィールドがＩＰアドレスに無い場合、表１を用いて前述したように、受信フレームに含まれるＩＰアドレスのＭＳＢから１つ〜３つのビットからアドレスクラスを判定し、ネットワークアドレスを抽出するためのアドレスマスクを一義的に求めることができる。しかしながら、サブネットワークアドレスのフィールドがＩＰアドレスに存在する場合、サブネットワークアドレスやネットワークアドレスを抽出するためのアドレスマスクを一義的に求めることができない。このため、ＩＰルータにおいては、一般に以下の処理のどちらかを実行する必要がある。
Ａ１．ＩＰルータ内のテーブル中のネットワークアドレス（テーブル内のＩＰアドレスをアドレスマスクにてマスク処理したもの）と、受信フレーム中のＩＰアドレスとを比較し、テーブル内の全エントリ中で、最も多くのビットがＩＰアドレスと一致したものを選択し、そのエントリのネットワークアドレスを送信先として使用する処理。
Ａ２．受信フレーム中のＩＰアドレスに対するアドレスマスクが全ビット“１”としてマスク処理を行い、テーブル中のネットワークアドレスと比較する。一致するものが無い場合は、アドレスマスクのＬＳＢを“０”として、再び、テーブル中のネットワークアドレスと比較する。このとき、更に一致するものが無かった場合には、アドレスマスクのＬＳＢ側から次のビットも“０”として、再びテーブル中のネットワークアドレスと比較する。このように、一致するものが見出されるまで、アドレスマスクのビットを、ＬＳＢ側から１ビットずつ逐次“０”としながら、このようなテーブル中のネットワークアドレスとの比較を行う処理。
上記のＡ１やＡ２の処理のように、従来は、サブネットワークアドレスのフィールドがＩＰアドレスに存在するマルチプロトコルの場合、ネットワークアドレスを抽出する処理が非常に複雑になってしまい、処理時間も大きくなってしまうという問題があった。又、このような処理は、一般にソフトウェアでしか実行することができず、ハードウェア化することが極めて困難であるという問題があった。更に、ネットワークアドレスの抽出後も、３２ビットでそのまま検索できるテーブルを備えることは、テーブルのデータ数が大きくなる等不経済である。従って、専用の論理回路を外部に設け、ハッシュ関数を用いてツリー状にデータを検索するハッシュ等の措置が必要となり、ソフトウェアの負担を大きくしてしまう。
このため、処理時間を短縮するべく高性能なＣＰＵ（Central Processing Unit）を使用するのが一般的である。しかしながら、高性能なＣＰＵを用いたとしても処理時間の短縮には限界があり、このようなネットワークアドレスの抽出の処理や、該抽出の後になされるテーブル検索の処理は、ＩＰルータにおける中継処理のボトルネックとなっていた。
又、処理を簡略化するべく、連想メモリ（Contents Addressable Memory；ＣＡＭ）の利用を考えても、マスクのビット長が変わるため、対応するビット長毎にＣＡＭが必要となり、メリットが生かせなかった。
発明の開示
本発明は、前記従来の問題点を解決するべくなされたもので、受信したメッセージ（受信フレーム）の送信先アドレスからネットワークアドレスやサブネットワークアドレスを抽出するなどの、従来複雑で処理時間を要していた処理を中心として、ループ処理を低減したり、又、比較的簡単な処理に置き換えたりすることで、ネットワーク間接続装置における送信経路決定処理などの諸処理をマルチプロトコルに対応して能率よく行えるようにし、これによって、処理速度の向上や、利用するハードウエアの簡略化によるコスト削減を図ることを課題とする。
本発明は、物理層から上位へ各階層がそれぞれ定義された、複数のプロトコル階層に従ったプロトコルのメッセージをそれぞれ伝送する、複数のネットワーク間に配置され、特定のプロトコル階層でこれらネットワーク間を接続する機能を有し、異なるネットワークにある送信元から送信先へ、送信先アドレスのデータを含むメッセージを送信するために用いられるネットワーク間接続装置において、当該ネットワーク間接続装置が受信したメッセージ中の前記送信先アドレスから各種アドレス成分を抽出するためのアドレスマスクを、該送信先アドレスに従って生成すると共に、生成した該アドレスマスクで前記送信先アドレスを処理した検索参照制御用アドレスを出力するための、参照用エントリアドレスと、該参照用エントリアドレスの個々のビットが前記各種アドレス成分の抽出に関与するか否かを示す参照用エントリマスクとの対を、アドレスエントリデータとして複数記憶するアドレスマスクテーブルと、対応する前記アドレスエントリデータについて、その参照用エントリマスクでマスクをかけながら、その参照用エントリアドレスと前記送信先アドレスとのアドレス一致を判定する、前記アドレスエントリデータと同数だけ設けられるエントリデータ比較器と、これらエントリデータ比較器のうち、アドレス一致と判定したそれぞれのエントリデータ比較器に対応するアドレスエントリデータの参照用エントリマスクを合成しながら、実際に用いる前記アドレスマスクを生成するアドレスマスク生成部と、該アドレスマスクで前記送信先アドレスを処理して前記検索参照制御用アドレスを生成し、出力するマスキング回路とで構成されるマスク処理部と、該検索参照制御用アドレスに基づき、当該ネットワーク間接続装置での送信先側のネットワークへのメッセージ送信の際に用いる送信制御情報を生成する送信制御情報生成部とを備え、該送信制御情報に従って、当該ネットワーク間接続装置に接続される送信先側の該当するネットワークへ、受信したメッセージを転送するようにして、前記課題を解決すると共に、ループ処理を排し、高速なハードウェアでの実現を可能としたものである。なお、ループ処理の一部を残すこともできる。
更に、前記アドレスマスク生成部が、前記エントリデータ比較器のうち、アドレス一致と判定したそれぞれのエントリデータ比較器に対応するアドレスエントリデータの参照用エントリマスクの中で、前記各種アドレス成分の抽出に関与することが指定されたビットの数が最も多い参照用エントリマスクを選択し、これを前記アドレスマスクとして出力するようにしたものである。
又、前記参照用エントリマスクが、マスク長を示すデータによって、前記各種アドレス成分の抽出に関与する前記参照用エントリアドレスの個々のビットを示すようにして、前記アドレスマスクテーブルに複数あるアドレスエントリデータの特に前記参照用エントリマスクのビット長を短縮することで、前記アドレスマスクテーブルの小型化を可能としたものである。
更に、前記アドレスエントリデータが全ビット有効フラグを有すると共に、前記エントリデータ比較器が、前記アドレス一致の判定の際に、当該エントリデータ比較器に対応する前記アドレスエントリデータの前記全ビット有効フラグが有効を示している場合、前記アドレスマスク生成部が用いる参照用エントリマスクの全ビットを強制的に有効にセットする機能を実現する全マスクビット強制セット回路を有するようにして、当該ネットワーク間接続装置に直接接続されているコンピュータホストと、当該ネットワーク間接続装置に他のネットワーク間接続装置を介して接続されているコンピュータホストの両方に対してデータフレームを中継する場合に必要となる、送信先アドレスのマスク処理の多様性についても対応可能としたものである。
又、前記送信制御情報生成部が、前記送信制御情報を記憶する連想メモリを備え、前記検索参照制御用アドレスを該連想メモリの検索データとし、該連想メモリのデータ一致のアドレス出力を用いて前記送信制御情報を生成するようにして、前記送信制御情報生成部の動作を能率良く行えるようにし、その動作速度の向上などを図ったものである。
又、前記送信制御情報生成部が、前記送信制御情報を記憶する連想メモリを備え、前記検索参照制御用アドレスを該連想メモリの検索データとし、該連想メモリのデータ一致が検出されたアドレスにより指し示されるデータの内、検索に使用されなかった部分のデータを用いて前記送信制御情報を生成するようにして、前記送信制御情報生成部の動作を能率良く行えるようにし、その動作速度の向上等を図ったものである。
又、前記アドレスエントリデータと同数だけ設けられる複数のエントリデータ比較器の全てにおいてアドレス一致が検出されなかった場合に、前記送信先アドレスのビット列の判定により該送信先アドレスのアドレスクラスを認識し、該アドレスクラスに基づいて、前述の各種アドレス成分の抽出に関与するか否かをビット毎に指定するビット列を生成し、該ビット列を前記アドレスマスクとして使用するようにして、前記アドレスエントリデータのデータ数を削減することを可能とし、又、より広範囲のネットワークへの対応を容易にしたものである。
本発明は、又、前記のようなネットワーク間接続装置において、当該ネットワーク間接続装置が受信したメッセージ中の前記送信先アドレスから各種アドレス成分を抽出するための、異なる複数のアドレスマスクを、マスクする桁数が多いものから少ないものへ順に記憶するマスクレジスタ群と、該マスクレジスタ群に記憶される複数のアドレスマスクを、マスクする桁数が多いものから少ないものへ順に選択するために用いるカウンタと、前記各種アドレス成分にて示される送信経路のそれぞれのアドレスを検索データとして記憶し、前記カウンタで選択されたアドレスマスクを用いながら、前記送信先アドレスに一致する前記アドレスを検索し、一致するものが存在する場合にはヒット信号を出力すると共に、一致した検索データが記憶される連想メモリアドレスをヒットアドレス信号として出力する連想メモリと、前記カウンタの初期化の制御を行うと共に、該カウンタで順次カウントすることで、マスクする桁数の多いものから少ないものへ順にアドレスマスクを選択しながら前記ヒット信号が出力されるまでなされる、前記連想メモリを用いた検索の制御を行う検索シーケンサとを備え、前記ヒットアドレス信号に基づいて識別される、当該ネットワーク間接続装置に接続される送信先側の該当するネットワークへ、受信したメッセージを転送するようにして、前記課題を解決するとともに、ハードウェアでの実現を可能としたものである。
又、前記アドレスマスク群、前記カウンタ、及び前記連想メモリを複数組備え、複数の前記アドレスマスク群それぞれに、順に輪番に、異なる複数の前記アドレスマスクを、マスクする桁数が多いものから少ないものへ、一つづつ順にふり分けて記憶し、複数の前記連想メモリに、相互に同一の前記検索データを記憶するようにして、検査処理の並列実行により、処理速度の向上を可能としたものである。
以下、本発明の作用について、図を用いて簡単に説明する。
まず、前提として、本発明のネットワーク間接続装置は、物理層から上位へ各階層がそれぞれ定義された、複数のプロトコル階層に従ったプロトコルのメッセージ、例えば受信フレームをそれぞれ伝送する、複数のネットワーク間に配置されている。又、本発明のネットワーク間接続装置は、特定のプロトコル階層でこれらネットワーク間を接続する機能を有し、異なるネットワークにある送信元から送信先へ、送信先アドレスのデータを含むメッセージを送信するために用いられる。
又、本発明のネットワーク間接続装置の一例は、基本的に、図２に示されるように、マスク処理部１０と、送信制御情報生成部３０とを備えている。
まず、マスク処理部１０は、当該ネットワーク間接続装置が受信したメッセージ中の前記送信先アドレスから各種アドレス成分を抽出するためのアドレスマスクを、該送信先アドレスに従って生成するとともに、生成した該アドレスマスクで前記送信先アドレスを処理した、検索参照制御用アドレスを出力する。この検索参照制御用アドレスは、従来技術で前述した、受信フレームの送信先ＩＰアドレスから抽出されるネットワークアドレスやサブネットワークアドレスに相当する。又、本発明のこのマスク処理部１０の特徴は、前記送信先アドレスから各種アドレス成分を抽出するためのアドレスマスクを、該送信先アドレスに従って生成している点にある。即ち、従来技術として前述したＩＰルータの如く、単にクラスビットに従ってアドレスマスクを生成するのではなく、より積極的に、前記送信先アドレスに従ってアドレスマスクを生成している。
次に、前記送信制御情報生成部３０は、前記マスク処理部１０で出力される前記検索参照制御用アドレスに基づき、当該ネットワーク間接続装置での送信先のネットワークへのメッセージ送信の際に用いる、送信制御情報を生成する。
例えば、前述したマスク処理部１０が出力する前記検索参照制御用アドレスが、従来技術で前述したようなネットワークアドレスやサブネットワークアドレスである場合、該送信制御情報生成部が出力する送信制御情報は、当該ネットワーク間接続装置において受信したメッセージを転送送信するためのネットワークが接続されているポートの番号や、ＭＡＣアドレスであってもよい。あるいは、例えば、前述のマスク処理部１０が生成する前記検索参照制御用アドレスが、従来技術として言及したネットワークアドレスやサブネットワークアドレスを生成する前処理に用いる予備的な信号である場合、該送信制御情報生成部３０が出力する前記送信制御情報を、ネットワークアドレスやサブネットワークアドレスとしてもよい。
このように、本発明においては、受信したメッセージ（例えば受信フレーム）中の送信先アドレスから、従来技術で言及したようなネットワークアドレスやサブネットワークアドレスを抽出したり、更には送信するメッセージ（フレーム）を送り出すネットワークのポート番号やＭＡＣアドレスを生成する処理に際し、前述のようなマスク処理部１０と送信制御情報生成部３０との独特な２段階構成を取ることによって、能率の良い処理を行うことができる。又、特にマスク処理部１０についても、送信先アドレスから各種アドレス成分を抽出するためのアドレスマスクを送信先アドレスに従って生成するという、独特の処理を行っているため、アドレスマスクを生成するという従来困難であった処理を改善することができる。
なお、本発明はこれに限定されるものではないが、前述の送信制御情報生成部３０において、連想メモリを用いるようにしてもよい。本発明は、前述のように特にマスク処理部１０と送信制御情報生成部３０との２段構成となっているため、このような連想メモリも容易に用いることができる。又、このように連想メモリを用いた場合、送信制御情報生成部３０において、例えば、受信したメッセージの送信先アドレスから前記マスク処理部１０で抽出された各種アドレス成分を中心として、入力する信号に従って、ネットワークアドレスやサブネットワークアドレス、その他、関係するネットワークのポート番号やＭＡＣアドレス等の生成をより能率良く行うことができ、処理速度の向上や、利用するハードウェアの簡略化によるコスト削減等を図ることができる。
又，本発明のネットワーク間接続装置の他の例は、基本的に、図３に示される如く、マスクレジスタ群１２２と、カウンタ１２４と、ＣＡＭ１１６と、検索シーケンサ１１２とを備えている。
まず、マスクレジスタ群１２２は、当該ネットワーク間接続装置が受信したメッセージ中の送信先ＩＰアドレスＩＰから、各種アドレス成分を抽出するための異なる複数のアドレスマスクを、マスクする桁数が多いものから少ないものへ順に記憶する。即ち、該マスクレジスタ群１２２は、マスクする桁数が多く、従ってマスクされない桁数が少ないものから、マスクする桁数が少なく、従ってマスクされない桁数が多いものへ、順に、異なる複数のアドレスマスクを記憶している。
前記カウンタ１２４は、前記マスクレジスタ群１２２に記憶される複数のアドレスマスクを、マスクする桁数が多いものから少ないものへ順に選択するために用いられる。該カウンタ１２４は、検索初期化信号ＩＮＴでカウント値が初期化されると、マスクする桁数が最も多く、従ってマスクされない桁数が最も少ないアドレスマスクを指し示す選択信号ＳＥを出力する。又、該カウンタ１２４は、検索開始信号ＳＴが入力される毎に、そのカウント値を“１”だけ変更し、インクリメント（“１”だけ値を増加）あるいはデクリメント（“１”だけ値を減少）する。これによって、該カウンタ１２４は、検索開始信号ＳＴが入力される毎に、マスクする桁数が多いものから少ないものへ順に選択するための選択信号ＳＥを出力する。
前記ＣＡＭ１１６は、各種アドレス成分で示される送信経路のそれぞれのアドレスを検索データとして記憶する。この送信経路のアドレスとは、当該ネットワーク間接続装置の送信先側にあるネットワークや別のネットワーク間接続装置等を示すアドレスであり、例えば前述した、受信フレームの送信先ＩＰアドレスから抽出されるネットワークアドレスやサブネットワークアドレスに相当する。該ＣＡＭ１１６は、前述のカウンタ１２４が出力する選択信号ＳＥによって選択された、マスクレジスタ群１２２から出力される選択マスク信号ＳＭ（アドレスマスク）を用いながら、送信先ＩＰアドレスＩＰに一致する、当該ＣＡＭ１１６に記憶される前述のようなアドレスを検索する。このような検索に際し、一致するものが存在する場合には、該ＣＡＭ１１６は、該一致有りを示すヒット信号ＨＴを少なくとも検索シーケンサ１１２へ出力するとともに、一致した検索データが記憶される連想メモリアドレスをヒットアドレス信号ＨＡとして出力する。この検索データは、前述のような送信経路の該当するものを示すアドレスである。
前記検索シーケンサ１１２は、外部から送信先ＩＰアドレスＩＰが入力されると、まず検索初期化信号ＩＮＴを出力することでカウンタ１２４の初期化の制御を行う。この後、該検索シーケンサ１１２は、ＣＡＭ１１６からヒット信号ＨＴが入力されるまで、逐次、検索開始信号ＳＴをカウンタ１２４へ出力する。本発明のネットワーク間接続装置では、このように検索開始信号ＳＴを逐次カウンタ１２４へ入力し、該カウンタ１２４で順次カウント（カウントアップ又はカウントダウン）することで、マスクする桁数が多いものから少ないものへ順に、マスクレジスタ群１２２に記憶されるアドレスマスクを選択して得られる選択マスク信号ＳＭを得ると共に、該選択マスク信号ＳＭを用いながら、ＣＡＭ１１６における検索を、ヒット信号ＨＴが出力されるまで行う。
以上説明したような図３に示される構成、即ちマスクレジスタ群１２２、カウンタ１２４、ＣＡＭ１１６及び検索シーケンサ１１２によれば、入力される送信先ＩＰアドレスＩＰに応じたヒットアドレス信号ＨＡを得ることができる。又、該ヒットアドレス信号ＨＡに基づいて識別される、当該ネットワーク間接続装置に接続される送信先側の該当するネットワーク等を認識することができる。従って、該ネットワーク間接続装置では、このようにして得られるヒット信号ＨＴを用いながら、該ネットワーク間接続装置に接続される送信先側の該当するネットワークへ、受信したメッセージを転送することができる。
従って、本発明によれば、受信したメッセージ（受信フレーム）の送信先アドレスからネットワークアドレスやサブネットワークアドレスを抽出するなどの、従来複雑で処理時間を要していた処理を中心として、ループ処理を低減したり、又、比較的簡単な処理に置き換えたりすることで、ネットワーク間接続装置における送信経路決定処理などの諸処理を能率よく行えるようにし、これによって、処理速度の向上や、利用するハードウエアの簡略化でコスト削減を図ると共に、装置全体のハードウエア化も可能とすることができる。
【図面の簡単な説明】
図１は、３２ビット構成の送信先ＩＰアドレスを示す図表である。
図２は、本発明の基本的な構成の一例を示すブロック図である。
図３は、本発明の基本的な構成の他の例を示すブロック図である。
図４は、本発明が適用されたネットワーク間接続装置の第１実施形態の構成を示すブロック図である。
図５は、第１実施形態に用いられるマスク処理部の構成を示すブロック図である。
図６は、第１実施形態に用いられるアドレスマスクテーブルを構成するアドレスエントリデータの構造を示す線図である。
図７は、第１実施形態のマスク処理部に用いられるエントリデータ比較器の構成を示すブロック図である。
図８は、第１実施形態の処理手順を示す流れ図である。
図９は、本発明が適用されたネツトワーク間接続装置が運用されるネットワーク環境を示したブロック図である。
図１０は、前記ネットワーク間接続装置のアドレスマスクテーブルの設定例を示す図表である。
図１１は、前記ネットワーク間接続装置の送信制御情報生成部に備えられた連想メモリ上に設定される送信制御情報の例を示す図表である。
図１２は、本発明が適用されたネットワーク間接続装置の第２実施形態の構成を示すブロック図である。
図１３は、第２実施形態に用いるＣＡＭシーケンサの内部構成を示すブロック図である。
図１４は、前記ＣＡＭシーケンサのマスクレジスタ群に記憶されたアドレスマスクの一部を示す図表である。
図１５は、本発明が適用されたネットワーク間接続装置の第３実施形態の構成を示すブロック図である。
図１６は、第３実施形態に用いる一方のＣＡＭシーケンサのマスクレジスタ群に記憶されたマスクデータの例を示す線図である。
図１７は、他方のＣＡＭシーケンサのマスクレジスタ群に記憶されたマスクデータの例を示す図表である。
図１８は、上記２つのマスクレジスタ群の対応関係を示す図表である。
発明を実施するための最良の形態
以下、図を用いて本発明の実施の形態を詳細に説明する。
図４は、本発明が適用されたネットワーク間接続装置の第１実施形態の構成を示すブロック図である。
図４に示されるように、本第１実施形態は、マスク処理部１０Ａと、送信制御情報を記憶する連想メモリ（ＣＡＭ）３０Ｂを供えた送信制御情報生成部３０Ａとによって構成されている。
前記マスク処理部１０Ａは、本実施形態のネットワーク間接続装置が受信した受信フレーム（メッセージ）中の送信アドレスとして、送信先ＩＰアドレスＩＰＡを入力し、該送信先ＩＰアドレスＩＰＡから各種アドレス成分を抽出するためのアドレスマスクを生成するとともに、生成したアドレスマスクで送信先ＩＰアドレスＩＰＡを処理したマスク済ＩＰアドレスＩＰＭ（検索参照制御用アドレス）を出力する。
前記ＣＡＭ３０Ａは、前記マスク処理部１０Ａから入力されたマスク済ＩＰアドレスＩＰＭに基づき、連想メモリ３０Ｂを利用して、当該ネットワーク間接続装置での送信先側のネットワークへのフレーム送信（メッセージ送信）の際に用いるＭＡＣアドレス／ポート番号ＰＤ（送信制御情報）を生成する。本実施形態のネットワーク間接続装置では、このように生成されたＭＡＣアドレス／ポート番号ＰＤに従って、当該ネットワーク間接続装置に接続される、送信先側の該当するネットワークへ、受信したフレームを転送する。
図５は、本第１実施形態に用いられる前述のマスク処理部の構成を示すブロック図である。
この図５に示されるマスク処理部１０Ａは、連想メモリ３０Ｂに格納された、合計（ｍ＋１）個のアドレスエントリデータＴ０〜Ｔｍを有するアドレスマスクテーブルＴＢと、合計（ｍ＋１）個のエントリデータ比較器ＣＰ０〜ＣＰｍと、ＯＲ回路１４及び１６と、アドレスクラスマスク生成回路１８と、セレクタ２０と、マスキング回路２２とにより構成されている。
前記連想メモリ３０Ｂに格納されたアドレスマスクテーブルＴＢが備える合計（ｍ＋１）個のアドレスエントリデータＴ０〜Ｔｍのそれぞれは、図６に示されるように、１ビットのデータ有効フラグＥＦと、同じく１ビットの全ビット有効フラグＡＦと、３２ビットの参照用エントリマスクＲＭと、同じく３２ビットの参照用エントリアドレスＲＡとにより構成されている。
前記データ有効フラグＥＦは、そのアドレスエントリデータＴ０〜Ｔｍが有効か否かを示す。このデータ有効フラグＥＦは、有効であれば“１”となり、無効であれば“０”となる。
前記全ビット有効フラグＡＦは、主として前述のエントリデータ比較器の後述するセレクタ４４で用いられるものであり、参照用エントリマスクＲＭの内容にかかわらず、アドレスマスクのすべてのビットを“１”に強制的に設定する、全ビット有効であるか否かを示す。この全ビット有効フラグＡＦは、このような全ビット有効の場合、“１”となり、有効ではない場合“０”となる。
前記参照用エントリアドレスＲＡは、アドレスマスクを決定する際に、後述のエントリデータ比較器ＣＰＯ〜ＣＰｍにより、送信先ＩＰアドレスＩＰＡと比較される。参照用エントリマスクＲＭは、前述の送信先ＩＰアドレスＩＰＡとの比較の際に、該参照用エントリマスクに対応するエントリデータ比較器ＣＰＯ〜ＣＰｍにより使用される。即ち、該参照用エントリマスクに対応する参照用エントリアドレスＲＡと送信先ＩＰアドレスＩＰＡは、該参照用エントリマスクに“１”が設定されているビットに対応するビット位置については一致比較の対象となり、該一致比較の結果が、該参照用エントリアドレスＲＡと送信先ＩＰアドレスＩＰＡ全体の比較結果に反映されるが、該参照用エントリマスクに“０”が設定されているビットに対応するビット位置については一致比較の対象とならず、該一致比較の結果は、該参照用エントリアドレスＲＡと送信先ＩＰアドレスＩＰＡ全体の比較結果に反映されない。
前記エントリデータ比較器ＣＰ０〜ＣＰｍ（以降、エントリデータ比較器ＣＰと総称する）は、図７を用いて後述するような内部構成となっている。又、これらエントリデータ比較器ＣＰは、それぞれ該当するアドレスエントリデータＴ０〜Ｔｍから、参照用エントリマスクＲＭ及び参照用エントリアドレスＲＡを入力する（合計６４ビット）。又、これらエントリデータ比較器ＣＰは、いずれも、送信先ＩＰアドレスＩＰＡを入力する。このエントリデータ比較器ＣＰは、入力される参照用エントリマスクＲＭでマスクをかけながら、入力される参照用エントリアドレスＲＡと送信先ＩＰアドレスＩＰＡとのアドレス一致を判定する。
一致し、かつ、該当するアドレスエントリデータのデータ有効フラグＥＦが”１”と判定された場合（アドレス一致）、エントリヒット信号ＥＨ（ＥＨ０〜ＥＨｍ）として、“１”を出力する。又、このようにアドレス一致と判定された場合には、これらエントリデータ比較器ＣＰそれぞれは、参照用エントリマスクＲＭ及び全ビット有効フラグＡＦに従ってエントリマスクデータ信号ＥＭを出力する。即ち、一致が検出され且つデータ有効フラグＥＦが“１”であるエントリのエントリデータ比較器は、当該アドレスエントリデータの全ビット有効フラグＡＦが“０”の場合には、当該アドレスエントリデータのエントリマスクＲＭをエントリマスクデータ信号ＥＭとして出力する。一方、当該アドレスエントリデータの全ビット有効フラグＡＦが“１”の場合には、全ビットに“１”が設定されたビット列をエントリマスクデータ信号ＥＭとして出力する。
なお、アドレス一致でないと判定された場合、エントリマスクデータ信号ＥＭの値は“０”（すべてのビットが“０”）となる。
前記ＯＲ回路１４は、合計（ｍ＋１）個の入力を有する多入力ＯＲ回路である。このＯＲ回路１４は、エントリデータ比較器ＣＰそれぞれが出力するエントリヒット信号ＥＨ（ＥＨ０〜ＥＨｍ）をそれぞれ入力し、これらの論理和を演算し、この結果をテーブルヒット信号ＴＨとして、セレクタ２０の選択信号Ｓに出力する。
前記ＯＲ回路１６は、（ｍ＋１）の入力を有する多入力ＯＲ回路を合計３２個用いて構成されている。これらの多入力ＯＲ回路は、エントリデータ比較器ＣＰそれぞれが出力するエントリマスクデータ信号ＥＭの３２ビットそれぞれに対応して配置されている。又、これら多入力ＯＲ回路は、合計（ｍ＋１）個の入力それぞれへ、合計（ｍ＋１）個のエントリデータ比較器ＣＰそれぞれの出力するエントリマスクデータ信号ＥＭ（ＥＭ０〜ＥＭｍ）の同一の該当ビットを入力し、論理和演算を行う。このような合計（ｍ＋１）個の多入力ＯＲ回路によって、ＯＲ回路１６は、３２ビットのマスクデータ信号ＥＡを出力する。このマスクデータ信号ＥＡの３２ビットの各ビットは、３２個の多入力ＯＲ回路それぞれに対応している。
前記アドレスクラスマスク生成回路１８は、送信先ＩＰアドレスＩＰＡのＭＳＢからの１つ〜３つのビットに従って、前述の表１に示されたＡ〜Ｃのアドレスクラスを判定するとともに、該判定に従って、ネットワークアドレスを抽出するためのアドレスマスクとして、マスクデータ信号ＥＢを出力する。このマスクデータ信号ＥＢは３２ビットである。
前記セレクタ２０は、ＯＲ回路１４が出力するテーブルヒット信号ＴＨに従って、ＯＲ１６が出力するマスクデータ信号ＥＡ又はアドレスクラスマスク生成回路１８が出力するマスクデータ信号ＥＢのいずれか一方を選択する。即ち、このセレクタ２０は、テーブルヒット信号ＴＨが“１”であればマスクデータ信号ＥＡを選択し、テーブルヒット信号ＴＨが“０”であればマスクデータ信号ＥＢを選択する。選択されたものは、３２ビットのマスクデータ信号ＥＣとして出力される。
前記マスキング回路２２は、セレクタ２０が出力するマスクデータ信号ＥＣに従って、送信先ＩＰアドレスＩＰＡに対してマスキング処理を行う。即ち、このマスキング回路２２は、３２ビットのマスクデータ信号ＥＣと、同じく３２ビットの送信先ＩＰアドレスＩＰＡとについて、同一ビット同士で論理積の演算を行い、同一ビット位置のマスク済ＩＰアドレスＩＰＭのビットの値を決定し、このようにしながら３２ビットのマスク済ＩＰアドレスＩＰＭを生成し、出力する。より具体的には、このマスキング回路２２は、マスクデータ信号ＥＣ及び送信先ＩＰアドレスＩＰＡの同一ビットどうしについて、マスクデータ信号ＥＣ側のビットが“０”であれば、マスク済ＩＰアドレスＩＰＭの同一ビット位置のビットを“０”とする。又、このマスキング回路２２は、マスクデータ信号ＥＣ及び送信先ＩＰアドレスＩＰＡについて、マスクデータ信号ＥＣ側のビットが“１”であれば、同一ビット位置のマスク済ＩＰアドレスＩＰＭのビットへと送信先ＩＰアドレスＩＰＡの同一ビット位置のビットの値を出力する。
図７は、本実施形態に用いられるエントリデータ比較器の内部構成を示すブロック図である。
この図７に示される如く、本実施形態で前述のように合計（ｍ＋１）個用いられるエントリデータ比較器ＣＰは、いずれも、合計３２個のエクスクルーシブＮＯＲ回路Ｅ０〜Ｅ３１と、合計３２個のインバータＩ０〜Ｉ３１と、合計３２個のＯＲ回路Ｒ０〜Ｒ３１と、多入力ＡＮＤ回路４２と、セレクタ４４と、合計３２個のＡＮＤ回路Ａ０〜Ａ３１とにより構成されている。
前記エクスクルーシブＮＯＲ回路Ｅ０〜Ｅ３１（以降、エクスクルーシブＮＯＲ回路Ｅと総称する）は、いずれも、２入力であり、これら２つの入力へ入力される論理値が一致する場合“１”を出力する。従って、これらエクスクルーシブＮＯＲ回路Ｅは、一方の入力が“１”で、かつ、他方の入力が“０”の場合には、“０”を出力する。
前記インバータＩ０〜Ｉ３１は、いずれも一般的なインバータであり、入力した論理値を反転させて出力する。前記ＯＲ回路Ｒ０〜Ｒ３１は、論理和の演算を行う、一般的な２入力のものである。前記多入力ＡＮＤ回路４２は、３２本の入力を有し、これらの入力の論理積を演算し、この演算結果をエントリヒット信号ＥＨとして出力する。
従って、エクスクルーシブＮＯＲ回路Ｅ０〜Ｅ３１と、インバータＩ０〜Ｉ３１と、ＯＲ回路Ｒ０〜Ｒ３１と、多入力ＡＮＤ回路４２とによって、次のような演算がなされる。
まず、エクスクルーシブＮＯＲ回路Ｅ０〜Ｅ３１それぞれによって、参照用エントリアドレスＲＡと送信先ＩＰアドレスＩＰＡとの同一ビット位置同士の論理値の比較がなされ、一致する場合“１”が出力され、不一致の場合“０”が出力される。又、ＯＲ回路Ｒ０〜Ｒ３１は、これらエクスクルーシブＮＯＲ回路Ｅ０〜Ｅ３１の出力と、インバータＩ０〜Ｉ３１を経て入力される参照用エントリマスクＲＭとの同一ビット位置同士の論理和の演算を行う。
従って、これらＯＲ回路Ｒ０〜Ｒ３１のそれぞれは、該当する参照用エントリマスクＲＭのビットが“１”の場合には、該当するエクスクルーシブＮＯＲ回路Ｅ０〜Ｅ３１で反転された一致／不一致の判定結果を出力する。一方、ＯＲ回路Ｒ０〜Ｒ３１のそれぞれは、該当する参照用エントリマスクＲＭのビットが“０”の場合には、エクスクルーシブＮＯＲ回路Ｅ０〜Ｅ３１の一致／不一致の判定結果にかかわらず、常に“１”を出力する。
又、このようにして出力されるＯＲ回路Ｒ０〜Ｒ３１のすべての出力に対して、又、データ有効フラグＥＦに対して、多入力ＡＮＤ回路４２によって論理積の演算がなされ、この結果がエントリヒット信号ＥＨとして出力される。
従って、これらエクスクルーシブＮＯＲ回路Ｅ０〜Ｅ３１、インバータＩ０〜Ｉ３１、ＯＲ回路Ｒ０〜Ｒ３１及び多入力ＡＮＤ回路４２によって、参照用エントリマスクＲＭでマスクをかけながら、参照用エントリアドレスＲＡと送信先ＩＰアドレスＩＰＡとのアドレス一致の判定がなされ、一致と判定された場合エントリヒット信号ＥＨが“１”となり、不一致と判定された場合にはエントリヒット信号ＥＨは“０”となる。
次に、セレクタ４４は、入力Ｓに“０”が入力されていると、３２個の入力を有する入力ＰＡを選択する。一方、該セレクタ４４は、入力に“１”が入力されていると、３２個の入力を有する入力ＰＢを選択する。従って、該セレクタ４４は、全ビット有効フラグＡＦが“０”であれば参照用エントリマスクＲＭを選択し、全ビット有効フラグＡＦが“１”であれば、３２ビットのすべての出力から“１”を出力する。
次に、ＡＮＤ回路Ａ０〜Ａ３１は、いずれも一方の入力に、多入力ＡＮＤ４２が出力するエントリヒット信号ＥＨが入力されている。又、これらＡＮＤ回路Ａ０〜Ａ３１は、セレクタ４４が他方の入力へ出力する３２ビットの信号のうちから、該当する１ビットが入力されている。これらＡＮＤ回路Ａ０〜Ａ３１からは、エントリマスクデータ信号ＥＭが出力される。
従って、エントリヒット信号ＥＨが“１”の場合、エントリマスクデータ信号ＥＭの値は、セレクタ４４が選択した値となり、即ち、参照用エントリマスクＲＭの値、あるいは３２ビットのすべてのビットが“１”となる値となる。一方、エントリヒット信号ＥＨが“０”の場合、エントリマスクデータ信号ＥＭの値は“０”（全てのビットが“０”）となる。
本実施形態における基本的な処理手順をまとめて図８に示す。
本実施形態は、以上説明した如く、ハードウェアによって構成することができ、又、ソフトウェアによっても構成することができる。本実施形態をハードウェアで構成した場合、各部の動作を並行あるいはほぼ並行に動作させ、処理速度の向上等を図ることも可能である。例えば、ハードウェアで構成する際、前述の合計（ｍ＋１）個のエントリデータ比較器ＣＰ０〜ＣＰｍを相互に独立動作可能に構成すれば、これらでなされる処理を互いに並行して実行することができる。このため、アドレスマスクテーブルＴＢが有する多数（（ｍ＋１）個）のアドレスエントリデータと、送信先ＩＰアドレスＩＰＡとの比較を並行して行うことができ、処理速度の向上を図ることが可能である。
本実施形態で図６を用いて前述した参照用エントリマスクＲＭや参照用エントリアドレスＲＡは、３２ビットのビット長のデータとして記憶されている。しかし、これら参照用エントリマスクＲＭ及び参照用エントリアドレスＲＡは、このような３２ビットのビットパターンを、３２ビットのビット長で記憶するものに限定されるものではない。例えば、３２ビットのビットパターンで、“１”や“０”が多数連続することが考えられる場合、ランレングスのようなもので記憶してもよい。特に、参照用エントリマスクＲＭについては、“１”又は“０”が連続するビットパターンとなることが多いため、ランレングスを用いたデータによって記憶すれば、該参照用エントリマスクＲＭに要するビット数を削減でき、結果として、アドレスエントリデータのデータ（ビット数）を削減し、アドレスマスクテーブルＴＢのデータ（ビット数）も削減することができる。
又、本実施形態では、セレクタ２０が参照用エントリマスクを選択するようにされていたが、マスク済みＩＰアドレスを直接選択するようにしても良い。次に、本発明の実際のネットワークにおける動作について、図面を参照して説明する。図９は、本発明が適用されたネットワーク間接続装置が運用されるネットワーク環境を示したブロック図である。
本発明が適用されたネットワーク間接続装置は、図９中ではネットワーク間接続装置１として示されている。該ネットワーク間接続装置１は、ＰＩＤ＝１からＰＩＤ＝３の３つのポートを有しており、ＰＩＤ＝１のポートには“１３３．１９０．５２．ｘｘ”のＩＰアドレスを持つサブネットワーク１が、ＰＩＤ＝２のポートには“１３３．１９０．５１．ｘｘ”のＩＰアドレスを持つサブネットワーク２が、ＰＩＤ＝３のポートには、もう１台のネットワーク間接続装置であるネットワーク間接続装置２が、それぞれ接続されている。同様に、ネットワーク間接続装置２は、ＰＩＤ＝１からＰＩＤ＝３の３つのポートを有しており、ＰＩＤ＝１のポートには前記ネットワーク間接続装置１が、ＰＩＤ＝２のポートには“１３３．１９０．５３．ｘｘ”のＩＰアドレスを持つサブネットワーク３が、ＰＩＤ＝３のポートには“１３３．１９１．ｘｘ．ｘｘ．”のＩＰアドレスを持つネットワークが、それぞれ接続されている。ここで、ＩＰアドレスの上位桁“１３３．１９０．”等がネットワークアドレスを示し、下位桁“５２．ｘｘ”等がホストアドレスを示す。
“１３３．１９０．５２．ｘｘ”のＩＰアドレスを持つサブネットワーク１には、コンピュータ１からコンピュータ３の３台のコンピュータが接続されている。同様に、“１３３．１９０．５１．ｘｘ”のＩＰアドレスを持つサブネットワーク２には、コンピュータ４からコンピュータ６の３台のコンピュータが、“１３３．１９０．５３．ｘｘ”のＩＰアドレスをもつサブネットワーク３には、コンピュータ７からコンピュータ９の３台のコンピュータが、“１３３．１９１．ｘｘ．ｘｘ”のＩＰアドレスを持つネットワークには、コンピュータ１０からコンピュータ１２の３台のコンピュータが、それぞれ接続されている。
ここで注目したいのは、“１３３．１９０．ｘｘ．ｘｘ”はクラスＢのＩＰアドレスであり、本来であれば“２５５．２５５．０．０”のマスクが適用されるべきものであるが、サブネットワークアドレスとして８ビット拡張し、“２５５．２５５．２５５．０”のマスクが適用されており、更にそのサブネットワーク境界にネットワーク間接続装置が設けられている点である。今日のネットワーク構築に際して、このようなマルチプロトコルの手法は極めて一般的であり、これがネットワーク間接続装置における処理を複雑なものにしている。
図１０は、図９におけるネットワーク間接続装置１のアドレスマスクテーブルＴＢの設定例を示す。但し、当該表にある“ＮＯ．”の項は、説明を容易とするために敢えて設けたものであり、実際の例においては必要のないものである。
図１１は、図９におけるネットワーク間接続装置１の前記送信制御情報生成部の連想メモリ上に設定される送信制御情報の例を示す。但し、当該表にある“ＮＯ．”の項は、説明を容易とするために敢えて設けたものであり、実際の例においては必要ないものである。
次に実際の動作例を説明する。
まず、コンピュータ７がコンピュータ１にデータを送信する際に、当該データをネットワーク間接続装置１がＰＩＤ＝３のポートから受信した後の動作について説明する。
ネットワーク間接続装置１は、受信したデータの送信先ＩＰアドレスが“１３３．１９０．５２．２０１”であることを知り、これを当該装置内のマスク処理部１０Ａに入力する。
マスク処理部１０Ａは、図１０に示すアドレスマスクテーブルＴＢを用いて、この送信先ＩＰアドレスに対するマスク処理を行う。この例においては、図１０のＮＯ．２のアドレスエントリデータにおいて一致が検出され、該アドレスエントリデータの全ビット有効フラグＡＦが“１”にセットされていることから、該送信先ＩＰアドレスの全ビットがそのままマスク済みＩＰアドレスＩＰＭとして、前記連想メモリ３０Ａに出力される。即ち、前記連想メモリ３０Ａに出力されるマスク済みＩＰアドレスＩＰＭは、“１３３．１９０．５２．２０１”である。
前記連想メモリ３０Ａは、当該マスク済みＩＰアドレスＩＰＭを検索のキーデータとして、図１１に示す送信制御情報のＩＰアドレスのフィールドを検索する。その結果として、ＮＯ．４のエントリで一致が検出され、当該エントリのＭＡＣアドレスのフィールドを読み出すことにより、当該データの最終受信先であるコンピュータ１のＭＡＣアドレス“０２６９８Ｃ  ＯＡＣ４９Ｄ”を得ると共に、ＰＩＤのフィールドを読み出すことにより、ネットワーク間接続装置１が当該データを出力するポートＰＩＤ＝１を得ることができる。
次に、コンピュータ１がコンピュータ７にデータを送信する際に、当該データをネットワーク間接続装置１がＰＩＤ＝１のポートから受信した後の動作について説明する。
ネットワーク間接続装置１は、受信したデータの送信先ＩＰアドレスが“１３３．１９０．５３．２０１”であることを知り、これを当該装置内のマスク処理部１０Ａに入力する。
マスク処理部１０Ａは、図１０に示すアドレスマスクテーブルＴＢを用いて、この送信先ＩＰアドレスに対するマスク処理を行う。この例においては、図１０のＮＯ．３のアドレスエントリデータにおいて一致が検出され、該アドレスエントリデータの全ビット有効フラグＡＦが“０”にセットされていること、及び、該アドレスエントリデータの参照用エントリマスクＲＭが“２５５．２５５．２５５．０”に設定されていることにより、送信先ＩＰアドレスの上位２４ビットはそのままで、下位８ビットが“０”に設定されたビット列が、マスク済みＩＰアドレスＩＰＭとして、前記連想メモリ３０Ａに出力される。即ち、前記連想メモリ３０Ａに出力されるマスク済みＩＰアドレスＩＰＭは、“１３３．１９０．５３．０”である。
前記連想メモリ３０Ａは、当該マスク済みＩＰアドレスＩＰＭを検索のキーデータとして、図１１に示す送信制御情報のＩＰアドレスのフィールドを検索する。その結果として、ＮＯ．７のエントリで一致が検出され、当該エントリのＭＡＣアドレスのフィールドを読み出すことにより、当該データの次の送信先であるネットワーク間接続装置２のＭＡＣアドレス“０２６９８Ｃ  ＯＡＣ５０２”を得ると共に、ＰＩＤのフィールドを読み出すことにより、ネットワーク間接続装置１が当該データを出力するポートＰＩＤ＝３を得ることができる。
次に、コンピュータ１がコンピュータ１２にデータを送信する際に、当該データをネットワーク間接続装置１がＰＩＤ＝１のポートから受信した後の動作について説明する。
ネットワーク間接続装置１は、受信したデータの送信先ＩＰアドレスが“１３３．１９１．５３．２０３”であることを知り、これを当該装置内のマスク処理部１０Ａに入力する。
マスク処理部１０Ａは、図１０に示すアドレスマスクテーブルＴＢを用いて、この送信先ＩＰアドレスに対するマスク処理を行う。この例においては、どのアドレスエントリデータにおいても一致が検出されないため、アドレスクラス認識に基づいてマスク処理が行われる。“１３３．１９１．５３．２０３”のＩＰアドレスはクラスＢであるため、送信先ＩＰアドレスの上位１６ビットはそのままで、下位１６ビットが“０”に設定されたビット列が、ママスク済みＩＰアドレスＩＰＭとして、前記連想メモリ３０Ａに出力される。即ち、前記連想メモリ３０Ａに出力されるマスク済みＩＰアドレスＩＰＭは、“１３３．１９１．０．０”である。
前記連想メモリ３０Ａは、当該マスク済みＩＰアドレスＩＰＭを検索のキーデータとして、図１１に示す送信制御情報のＩＰアドレスのフィールドを検索する。その結果として、ＮＯ．１０のエントリで一致が検出され、当該エントリのＭＡＣアドレスのフィールドを読み出すことにより、当該データの次の送信先であるネットワーク間接続装置２のＭＡＣアドレス“０２６９８Ｃ  ＯＡＣ５０２”を得ると共に、ＰＩＤのフィールドを読み出すことにより、ネットワーク間接続装置１が当該データを出力するポートＰＩＤ＝３を得ることができる。
図１２は、本発明が適用されたネットワーク間接続装置の第２実施形態の構成を示すブロック図である。
本実施形態のネットワーク間接続装置は、前記第１実施形態と同様に、ＴＣＰ／ＩＰに代表されるネットワークプロトコルを処理する中継機能を有するネットワーク機器であり、ＩＰアドレスを用いて、受信フレームのＩＰルーチング処理を行うＩＰルータである。
本実施形態における、ＩＰルーチング処理を行い、受信フレームに含まれる送信先ＩＰアドレスから送信先のポート番号、及びＭＡＣアドレスを決定するルーチング機能部は、図１２に示される如く、検索シーケンサ１１２Ｌと、ＣＡＭ１１６Ｌと、ＣＡＭシーケンサ１１４Ｌとにより構成されている。
前記検索シーケンサ１１２Ｌは、送信先ＩＰアドレスＩＰＡを入力し、当該送信先ＩＰアドレスＩＰＡを送信先ＩＰアドレスＩＰＢとしてＣＡＭ１１６Ｌに送出する機能を有する。又、該検索シーケンサ１１２Ｌは、ＣＡＭ１１６Ｌ及びＣＡＭシーケンサ１１４Ｌに対して、送信先ＩＰアドレスＩＰＡに基づいた連想記憶のテーブル検索を指示する検索開始信号ＳＴを送出する。該検索シーケンサ１１２Ｌは、ＣＡＭシーケンサ１１４Ｌに対して、検索の初期化を指示する検索初期化信号ＩＮＴを送出する。該検索シーケンサ１１２Ｌにおいては、ＣＡＭ１１６Ｌが出力するヒット信号ＨＴを入力し、該ヒット信号ＨＴに基づき、次のテーブル検索を指示するか否かを判断する。このように、検索シーケンサ１１２Ｌにおいては、送信先ＩＰアドレスＩＰＡを入力し、又ヒット信号ＨＴを入力しながら、送信先ＩＰアドレスＩＰＢ、検索開始信号ＳＴ及び検索初期化信号ＩＮＴを出力することで、本実施形態における一連のテーブル検索の制御を行う。
該検索シーケンサ１１２Ｌは、基本的には図３を用いて前述した検索シーケンサ１１２と同等である。即ち、該検索シーケンサ１１２Ｌにおいても、ＣＡＭシーケンサ１１４Ｌが内蔵するカウンタ１２４Ｌの初期化の制御を行う。又、該検索シーケンサ１１２Ｌは、カウンタ１２４Ｌで順次カウントすることで、マスクする桁数が多いものから少ないものへ順にアドレスマスク（選択マスクとなるもの）を選択しながらヒット信号ＨＴが出力されるまでなされる、ＣＡＭ１１６Ｌを用いた連想メモリの検索の制御を行う。
前記ＣＡＭ１１６Ｌは、基本的なＣＡＭの構成のデータテーブルを有する。このデータテーブルは、各種アドレス成分にして示される送信経路のそれぞれのアドレスを、検索データとして記憶したものである。該ＣＡＭ１１６Ｌは、当該データテーブル内の各エントリに格納されているデータと、送信先ＩＰアドレスＩＰＢとの一致比較を、ＣＡＭシーケンサ１１４Ｌから入力される選択マスク信号ＳＭで伝達される選択マスク（アドレスマスク）に従って、全てのエントリに対して同時に実行する。ここで、前記選択マスクは、一致比較を行うべきビット位置を指定するものであり、図１４、図１６、図１７を用いて後述するような形態である。このような一致比較に際し、データテーブル内に送信先ＩＰアドレスＩＰＢに一致するエントリが存在する場合にはヒット信号ＨＴが“１”となり、一致が検出されたエントリの当該ＣＡＭ１１６Ｌのアドレスを示すヒットアドレス信号ＨＡが出力される。一方、このような一致比較に際して送信先ＩＰアドレスＩＰＢと一致するエントリが存在しない場合には、ヒット信号ＨＴは“０”となる。該ＣＡＭ１１６Ｌは、基本的には、図３を用いて前述したＣＡＭ１１６に相当する。
次にＣＡＭシーケンサ１１４Ｌは、図１３に示されるような構成となっており、カウンタ１２４Ｌと、セレクタ１２６と、マスクレジスタ群１２２Ｌとを備えている。該ＣＡＭシーケンサ１１４Ｌは、前述した図３のカウンタ１２４とマスクレジスタ群１２２とを含む機能を有している。
図１３において、マスクレジスタ群１２２Ｌには、受信したメッセージ中の送信先ＩＰアドレスＩＰＡから各種アドレス成分を抽出するための、合計ｍ個の異なるアドレスマスクが記憶されている。該マスクレジスタ群１２２Ｌのこのような合計ｍ個のアドレスマスクは、図１４に示される如く、マスクビットが“１”となっているマスクする桁数が多いものから少ないものへ、従ってマスクビットが“０”となっているマスクされない桁数が少ないものから多いものへ順に記憶されている。
図１３において、カウンタ１２４Ｌは、検索初期化信号ＩＮＴにより初期化され、検索開始信号ＳＴによりインクリメントされるアップカウンタである。該カウンタ１２４Ｌは、マスクレジスタ群１２２Ｌに記憶される合計ｍ個のアドレスマスクを、セレクタ１２６を用いて、マスクする桁数が多いものから少ないものへ順に選択するために用いられる選択信号ＳＥを出力する。該選択信号ＳＥに基づいてセレクタ２６が選択したアドレスマスクは、該選択マスク信号ＳＭとして出力される。
以下、第２実施形態の作用について説明する。
前記検索シーケンサ１１２Ｌは、送信先ＩＰアドレスＩＰＡが入力されると、該送信先ＩＰアドレスＩＰＡと同一の送信先ＩＰアドレスＩＰＢをＣＡＭ１１６Ｌへ送信する。該送信と同時に、検索シーケンサ１１２Ｌは、ＣＡＭシーケンサ１１４Ｌに対して“１”の検索初期化信号ＩＮＴを送出する。該ＣＡＭシーケンサ１１４Ｌ内のカウンタ１２４Ｌは、検索初期化信号ＩＮＴが入力されると初期化され、該カウンタ１２４Ｌのカウント値は“０”となる。又、このような初期化により、該カウンタ１２４Ｌから出力される選択信号ＳＥは“０”となる。すると、選択信号ＳＥの値の番号のマスクデータを選択するセレクタ１２６は、マスクレジスタ群１２２Ｌから出力される合計ｍ個のマスクデータ、即ちマスクデータ０〜マスクデータ（ｍ−１）の中からマスクデータ０を選択し、これを選択マスク信号ＳＭとして出力する。
次に、検索シーケンサ１１２Ｌは、“１”の検索開始信号ＳＴをＣＡＭ１１６Ｌへ出力する。これにより、該ＣＡＭ１１６Ｌは、送信先ＩＰアドレスＩＰＢを検索キーデータとし、当該ＣＡＭ１１６Ｌ内のデータテーブルの全エントリ内のデータを検索対象とし、セレクタ１２６から出力される選択マスク信号ＳＭをマスクデータとして用いるマスク処理を行いながら、１回目の連想記憶の検索動作を起動する。
ＣＡＭ１１６Ｌは、検索開始信号ＳＴの立上がりエッジにより、送信先ＩＰアドレスＩＰＢと選択マスク信号ＳＭとをラッチし、ラッチした選択マスク信号ＳＭの“１”となっているマスクビットのビット位置に対して、ラッチしたＩＰＢアドレスと、データテーブル内の全てのエントリに格納されているデータとの一致比較を行う。一致するエントリがある場合には、ヒット信ＨＴが”１”となり、一致したエントリのＣＡＭ１１６Ｌにおけるアドレスであるヒットアドレス信号ＨＡを出力する。一方、一致するエントリが無い場合には、ヒット信号ＨＴは“０”となる。
検索シーケンサ１１２Ｌは、ＣＡＭ１１６Ｌからのヒット信号ＨＴが“１”であれば、再び検索動作の起動を行うことはない。一方、ヒット信号ＨＴが“０”の場合には、検索シーケンサ１１２Ｌは再度検索開始信号ＳＴを送出し、２回目の検索動作を起動する。
ここで、検索開始信号ＳＴは、上述のようにＣＡＭ１１６Ｌへ送出されているだけでなく、ＣＡＭシーケンサ１１４Ｌに対しても送出されている。該ＣＡＭシーケンサ１１４Ｌにおいては、１回目の検索動作を起動した検索開始信号ＳＴの立ち下がりエッジにより、該ＣＡＭシーケンサ１１４Ｌが内蔵するカウンタ１２４Ｌのカウントアップ（インクリメント）が行われる。これにより、セレクタ１２６は、第２回目の検索動作に備えてマスクデータ１を選択し、これを選択マスク信号ＳＭとして出力する。この選択マスク信号ＳＭは、２回目の検索動作を起動する検索開始信号ＳＴの立上がりエッジで、ＣＡＭ１１６Ｌにラッチされる。又、このように選択マスク信号ＳＭがラッチされると、ＣＡＭ１１６Ｌは、マスクデータ１を用いた２回目の検索動作を実行する。
２回目の検索動作の後、ＣＡＭ１１６Ｌが“０”のヒット信号ＨＴを出力すれば、検索シーケンサ１１２Ｌは、再び検索開始信号ＳＴを送出し、これにより３回目の検索動作が起動される。３回目の検索動作が起動されると、ＣＡＭ１１６Ｌは、マスクレジスタ群１２２Ｌのマスクデータ２が選択して得られた選択マスク信号ＳＭを用いて、再び検索動作を行う。このようにして、ＣＡＭ１１６Ｌが出力するヒット信号ＨＴが“１”となるまで、マスクレジスタ群１２２Ｌに記憶されるｍ個のマスクデータを選択しながら検索実行がなされる。
なお、このように順次選択されるマスクレジスタ群１２２Ｌのマスクデータは、図１４に示した如く、マスクする桁数が多いものから少ないものへと順に選択される。
１回目の検索に用いられるマスクデータ０には、マスクビットの３２ビット全てが“１”であるマスクデータが設定されている。従って、１回目の検索動作においては、３２ビット長の送信先ＩＰアドレスＩＰＢ（送信先ＩＰアドレスＩＰＡ）の全ビットを検索対象とする検索動作がＣＡＭ１１６Ｌで実行される。
２回目の検索動作に用いられるマスクデータ１には、図１４のマスクデータ１に示される如く、ＬＳＢのマスクビットが“０”で、それ以外のマスクビットが“１”であるマスクデータが設定されている。従って、２回目の検索動作においては、ＬＳＢを除くその他のビットを検索対象とする、送信先ＩＰアドレスＩＰＢ（送信先ＩＰアドレスＩＰＡ）の検索動作が実行される。
検索動作がこのように繰り返されるにつれて、選択マスク信号ＳＭに選択されるマスクデータが１ビットずつ変化し、検索対象となるビットと、検索対象にされないビットとの境界が１ビットずつＭＳＢ側へと移行する。これによって、ＩＰアドレス内のネットワークアドレスビットとホストアドレスビットとの境界をＬＳＢ側から１ビットずつずらして検索を行うことに対応し、境界をＬＳＢ側から開始することにより、ＩＰルーチング処理において最も適切なネットワークアドレスビットを抽出することが可能となる。
本第２実施形態のルーチング機能部でも、第１実施形態と同様に、本発明が適用されたＩＰルーチング処理を行うことができる。
図１５は、本発明が適用されたネットワーク間接続装置の第３実施形態の構成を示すブロック図である。
本実施形態のネットワーク間接続装置は、前記第１、第２実施形態と同様に、ＴＣＰ／ＩＰに代表されるネットワークプロトコルを処理する中継機能を有するネットワーク機器であり、ＩＰアドレスを用いて受信フレームのＩＰルーチング処理を行うＩＰルータである。
本実施形態における、受信フレームに含まれる送信先ＩＰアドレスＩＰＡから送信先のポート番号及びＭＡＣアドレスを決定するＩＰルーチング処理を行うルーチング機能部は、検索シーケンサ１１２Ａと、ＣＡＭ１１６Ａ及び１１６Ｂと、ＣＡＭシーケンサ１１４Ａ及び１１４Ｂとを備えている。
本実施形態の検索シーケンサ１１２Ａは、第２実施形態の検索シーケンサ１１２Ｌに相当する。又、第２実施形態のＣＡＭシーケンサ１１４Ｌ及びＣＡＭ１１６Ｌでなされる機能が、本実施形態では、ＣＡＭシーケンサ１１４Ａ及びＣＡＭ１１６Ａで構成される部分と、ＣＡＭシーケンサ１１４Ｂ及びＣＡＭ１１６Ｂで構成される部分とを用い、これら２つの部分それぞれでの処理を並行実行しながらなされるようになっている。本実施形態では、このようにＣＡＭシーケンサ１１４Ａ及び１１４Ｂと、ＣＡＭ１１６Ａ及び１１６Ｂとの組み合わせが２対ある構成となっている。
前記検索シーケンサ１１２Ａは、送信先ＩＰアドレスＩＰＡが入力されると、第１実施形態の検索シーケンサ１１２Ｌと同様に、検索初期化信号ＩＮＴ及び送信先ＩＰアドレスＩＰＢを出力する。本実施形態の検索シーケンサ１１２Ａでは、ＣＡＭ１１６Ａが出力するヒット信号ＨＴＡが“０”であり、且つ、ＣＡＭ１１６Ｂが出力するヒット信号ＨＴＢが“０”である間、１回目、第２回目等と、逐次“１”の検索開始信号ＳＴを出力し、順次検索動作を続行する。
前記ＣＡＭ１１６Ａ及び１１６Ｂは、いずれも、第２実施形態のＣＡＭ１１６Ｌと同一のものとなっている。ＣＡＭ１１６Ｌのヒット信号ＨＴ及びヒットアドレス信号ＨＡが、ＣＡＭ１１６Ａのヒット信号ＨＴＡ及びヒットアドレス信号ＨＡＡとなり、ＣＡＭ１１６Ｂのヒット信号ＨＴＢ及びヒットアドレス信号ＨＡＢとなっている。
前記ＣＡＭシーケンサ１１４Ａ及び１１４Ｂは、基本的には、第２実施形態の図１３に示される構成のＣＡＭシーケンサ１１４Ｌと同一のものとなっている。ＣＡＭシーケンサＡ及び１１４Ｂのカウンタ１２４Ｌ及びセレクタ１２６は、ＣＡＭシーケンサ１１４Ｌのカウンタ１２４Ｌ及びセレクタ１２６と同一である。しかしながら、本実施形態のＣＡＭシーケンサ１１４Ａのマスクレジスタ群１２２Ｌは、図１６のように合計ｍ個のマスクデータを記憶しており、ＣＡＭシーケンサ１１４Ｂのマスクレジスタ群１２２Ｌは、図１７のように合計ｎ個のマスクデータを記憶している。ここで、（ｎ×２）はｍと等しく、ＣＡＭ１１６ＡとＣＡＭ１１６Ｂに記憶される全マスクデータの個数（ｎ×２）は、ＣＡＭシーケンサ１１４Ｌに記憶されるマスクデータの個数ｍと等しい。
ここで、図１６と図１７のマスクデータは、図１８に示す如く、マスクデータ番号が同一のものどうしが組とされ、同一のタイミングでなされるＣＡＭ１１６Ａあるいは１１６Ｂにおける検索動作に用いられる。
本実施形態においては、検索シーケンサ１１２Ａが出力する１つの検索開始信号ＳＴによる１回の検索動作により、ＣＡＭシーケンサ１１４Ａ及びＣＡＭ１１６Ａを用いた検索動作と、ＣＡＭシーケンサ１１４Ｂ及びＣＡＭ１１６Ｂを用いた検索動作とが並行実行され、異なる２種類のマスクデータによる異なる選択マスク信号ＳＭＡ及びＳＭＢを用いた、同一の送信先ＩＰアドレスＩＰＢ（送信先ＩＰアドレスＩＰＡ）に対する検索動作が実行される。ＣＡＭ１１６Ａと１１６Ｂのデータテーブル上のデータは同一のものであっても、使用されるアドレスマスクに対応して異なったものであってもよい。
図１６及び図１７の例では、１回目の検索動作において、ＣＡＭシーケンサ１１４Ａは、マスクビット３２ビットの全てが“１”であるマスクデータを選択マスク信号ＳＭＡとして出力する。一方、ＣＡＭシーケンサ１１４Ｂは、マスクビットＬＳＢが“０”でそれ以外のマスクビットが全て“１”であるマスクデータを選択マスク信号ＳＭＢとして出力する。
又、２回目の検索動作においては、ＣＡＭシーケンサ１１４Ａは、ＬＳＢ側から２つのマスクビットが“０”で、これ以外のマスクビットが“１”であるマスクデータを選択マスク信号ＳＭＡとして出力する。一方、ＣＡＭシーケンサ１１４Ｂは、ＬＳＢ側から３つのマスクビットが“０”で、これ以外のマスクビットが全て“１”であるマスクデータを、選択マスク信号ＳＭＢとして出力する。
検索シーケンサ１１２Ａは、ＣＡＭ１１６Ａが出力するヒット信号ＨＴＡ、及びＣＡＭ１１６Ｂが出力するヒット信号ＨＴＢの少なくともいずれか一方が“１”になるまで、逐次検索開始信号ＳＴを出力し、検索動作を繰り返し起動する。
ここで、ＣＡＭ１１６Ａのヒット信号ＨＴＡと、ＣＡＭ１１６Ｂのヒット信号ＨＴＢとが同時に“１”となることも考えられる。このような場合で、特に、ＣＡＭシーケンサ１１４Ａのマスクデータが図１６の通りであり、ＣＡＭシーケンサ１１４Ｂのマスクデータが図１７の通りである場合には、ヒットアドレス信号ＨＡＡを採用する。一方、ヒット信号ＨＴＡのみが“１”となればヒットアドレス信号ＨＡＡを採用し、ヒット信号ＨＴＢのみが“１”となればヒットアドレス信号ＨＡＢを採用する。
この第３実施形態においても、第１、第２実施形態と同様に、ルーチング機能部で本発明を適用できる。更に、１回の検索動作において、２種類のマスクデータによる検索を、ＣＡＭシーケンサ１１４Ａ及びＣＡＭシーケンサ１１６Ａで構成される部分と、ＣＡＭシーケンサ１１４Ｂ及びＣＡＭ１１６Ｂで構成される部分とで並行して実行することができる。従って、本実施形態では、前記第２実施形態と比較して、より少ない検索回数で、所望の動作を完了することができる。例えば、３２ビットのマスクデータで、マスク長（マスクされている部分の長さ）がＭＳＢ側から３２ビット目のマスクデータから、マスク長がＭＳＢ側から８ビットのマスクデータまで、１ビットずつ変化させて検索を行うためには、第２実施形態においては２５回の検索動作が必要であるのに対し、本第３実施形態においては１３回の検索動作で実行が可能であり、処理時間を短縮することができる。
なお、本実施形態においては、ＣＡＭシーケンサ１１４Ａあるいは１１４ＢとＣＡＭ１１６Ａあるいは１１６Ｂとの処理部分を２組備えているが、３組以上備えるようにしてもよい。このようにＣＡＭシーケンサ１１４Ａあるいは１１４Ｂ又ＣＡＭ１１６Ａあるいは１１６Ｂの組み合わせを多数用いれば、処理に必要な検索動作の回数を更に減少することができ、処理時間の一層の短縮が可能である。
なお、以上説明した本発明の各実施形態では、図１を用いて前述したように、送信先ＩＰアドレスにおいて、ネットワークアドレス等の各種アドレス成分のフィールド分けが、特にビット単位でなされ、アドレスマスクによる送信先ＩＰアドレスの処理も、該送信先ＩＰアドレスのビット単位でなされているが、本発明はこのようなものに限定されるものではない。例えば、Ｘ．１２１で規定される施設網識別番号（ＰＮＩＣ）方式では、１０進数の桁単位で、データ網識別番号等の各種アドレス成分のフィールド分けがなされている。又、その他の方式でも、１０進数の桁単位や１６進数の桁単位で、各種アドレス成分のフィールド分けがなされている。この様なものでも、アドレスマスクを用いた送信先アドレスのマスク処理や、前記エントリデータ比較器における処理を、１０進数の桁単位や１６進数の桁単位で行うなどすれば、本発明を適用することができる。
また、ループ処理の一部を残すことも可能である。更に、検索テーブルもＣＡＭに限定されず、例えば専用の外部論理回路を設けて、ハッシュ関数でＲＡＭを用いた検索テーブルを検索するようにしても良い。
産業上の利用可能性
本発明によれば、受信したメッセージ（受信フレーム）の送信先アドレスからネットワークアドレスやサブネットワークアドレスを抽出するなどの、従来複雑で処理時間を要していた処理を中心として、ループ処理を低減したり、又、比較的簡単な処理に置き換えたりすることで、ネットワーク間接続装置における送信経路決定処理などの諸処理をマルチプロトコルに対応して能率よく行えるようになる。従って、処理速度の向上や、利用するハードウエアの簡略化でコスト削減を図ると共に、装置全体のハードウエア化も可能なネットワーク間接続装置を提供することができる。
【図１】
0003712131.tif 000002
【図２】
0003712131.tif 000003
【図３】
0003712131.tif 000004
【図４】
0003712131.tif 000005
【図５】
0003712131.tif 000006
【図６】
0003712131.tif 000007
【図７】
0003712131.tif 000008
【図８】
0003712131.tif 000009
【図９】
0003712131.tif 000010
【図１０】
0003712131.tif 000011
【図１１】
0003712131.tif 000012
【図１２】
0003712131.tif 000013
【図１３】
0003712131.tif 000014
【図１４】
0003712131.tif 000015
【図１５】
0003712131.tif 000016
【図１６】
0003712131.tif 000017
【図１７】
0003712131.tif 000018
【図１８】
0003712131.tif 000019