(57)【特許請求の範囲】
【請求項１】
アドレス値が大きい順に検索アドレスを登録する一方、登録する検索アドレスに包含関係が存在する場合には、サブネットマスクの範囲が大きい順に検索アドレスを登録する検索テーブルと、上記検索テーブルに登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較する比較手段と、上記比較手段の比較結果がアドレスの一致を示す場合、その検索アドレスを格納する格納手段と、上記比較手段の比較結果がアドレスの一致を示す場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい旨を示す場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい旨を示す場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算する演算手段とを備えた２分検索装置。
【請求項２】
アドレス値が小さい順に検索アドレスを登録する一方、登録する検索アドレスに包含関係が存在する場合には、サブネットマスクの範囲が小さい順に検索アドレスを登録する検索テーブルと、上記検索テーブルに登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較する比較手段と、上記比較手段の比較結果がアドレスの一致を示す場合、その検索アドレスを格納する格納手段と、上記比較手段の比較結果がアドレスの一致を示す場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい旨を示す場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい旨を示す場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算する演算手段とを備えた２分検索装置。
【請求項３】
アドレス値が大きい順に検索アドレスを登録する一方、登録する検索アドレスに包含関係が存在する場合には、サブネットマスクの範囲が大きい順に検索アドレスを登録する検索テーブルと、上記検索テーブルに登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較する比較手段と、上記比較手段の比較結果がアドレスの一致を示す場合、その検索アドレスを格納する格納手段と、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算し、上記比較手段の比較結果に応じて何れか一方の中央行番号を出力する演算手段とを備えた２分検索装置。
【請求項４】
アドレス値が小さい順に検索アドレスを登録する一方、登録する検索アドレスに包含関係が存在する場合には、サブネットマスクの範囲が小さい順に検索アドレスを登録する検索テーブルと、上記検索テーブルに登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較する比較手段と、上記比較手段の比較結果がアドレスの一致を示す場合、その検索アドレスを格納する格納手段と、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算し、上記比較手段の比較結果に応じて何れか一方の中央行番号を出力する演算手段とを備えた２分検索装置。
【請求項５】
演算手段は、前回演算された中央行番号と先頭行番号又は末尾行番号の中間番号を演算し、その中間番号を次回使用する中央行番号として出力することを特徴とする請求項１から請求項４のうちのいずれか１項記載の２分検索装置。
【請求項６】
検索テーブルは検索アドレスのサブネットマスクを登録し、比較手段は前回演算された中央行番号に位置する検索アドレスのサブネットマスクと宛先アドレスの論理積を演算して、宛先アドレスのサブネットアドレスを特定することを特徴とする請求項１から請求項５のうちのいずれか１項記載の２分検索装置。
【請求項７】
最後に格納手段に格納された検索アドレスをヒットアドレスとして出力することを特徴とする請求項１から請求項６のうちのいずれか１項記載の２分検索装置。
【請求項８】
アドレス値が大きい順に検索アドレスを検索テーブルに登録する際、登録する検索アドレスに包含関係が存在する場合には、サブネットマスクの範囲が大きい順に検索アドレスを登録し、その検索テーブルに登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、両者のアドレスが一致する場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算する２分検索方法。
【請求項９】
アドレス値が小さい順に検索アドレスを検索テーブルに登録する際、登録する検索アドレスに包含関係が存在する場合には、サブネットマスクの範囲が小さい順に検索アドレスを登録し、その検索テーブルに登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、両者のアドレスが一致する場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算する２分検索方法。
【請求項１０】
アドレス値が大きい順に検索アドレスを検索テーブルに登録する際、登録する検索アドレスに包含関係が存在する場合には、サブネットマスクの範囲が大きい順に検索アドレスを登録し、その検索テーブルに登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算して、その比較結果に応じて何れか一方の中央行番号を出力する２分検索方法。
【請求項１１】
アドレス値が小さい順に検索アドレスを検索テーブルに登録する際、登録する検索アドレスに包含関係が存在する場合には、サブネットマスクの範囲が小さい順に検索アドレスを登録し、その検索テーブルに登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算して、その比較結果に応じて何れか一方の中央行番号を出力する２分検索方法。
【請求項１２】
前回演算された中央行番号と先頭行番号又は末尾行番号の中間番号を演算し、その中間番号を次回使用する中央行番号として出力することを特徴とする請求項８から請求項１１のうちのいずれか１項記載の２分検索方法。
【請求項１３】
予め、検索アドレスのサブネットマスクを検索テーブルに登録し、前回演算された中央行番号に位置する検索アドレスのサブネットマスクと宛先アドレスの論理積を演算して、宛先アドレスのサブネットアドレスを特定することを特徴とする請求項８から請求項１２のうちのいずれか１項記載の２分検索方法。
【請求項１４】
最後にメモリに格納された検索アドレスをヒットアドレスとして出力することを特徴とする請求項８から請求項１３のうちのいずれか１項記載の２分検索方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、宛先ＩＰアドレスに対応する検索ＩＰアドレスを特定する２分検索装置及び２分検索方法に関するものである。
【０００２】
【従来の技術】
図５は例えば特開平１０−１２６４４２号公報に示された従来の２分検索装置を示す構成図であり、図において、１は検索範囲の先頭行を示す先頭行番号を格納する先頭行番号レジスタ、２は検索範囲の末尾行を示す末尾行番号を格納する末尾行番号レジスタ、３は先頭行番号レジスタ１に格納された先頭行番号と末尾行番号レジスタ２に格納された末尾行番号の中間番号を演算し、その中間番号を次回使用する中央行番号として出力する中央行番号演算回路、４は中央行番号演算回路３から出力された中央行番号に対応する検索テーブル５のメモリアドレスを生成する変換回路、５はアドレス値が小さい順に検索ＩＰアドレスを登録するとともに、その検索ＩＰアドレスのサブネットマスクを登録する検索テーブルである。
【０００３】
６は中央行番号演算回路３から出力された中央行番号を格納する中央行番号レジスタ、７は中央行番号レジスタ６に格納された前回の中央行番号と中央行番号演算回路３から出力された現在の中央行番号を比較し、両者が一致する場合には、宛先ＩＰアドレスが未登録である旨を示す未登録信号を出力する照合回路である。
【０００４】
８は宛先ＩＰアドレスを入力すると、変換回路４により生成されたメモリアドレスに位置する検索ＩＰアドレスのサブネットマスクと宛先ＩＰアドレスのＡＮＤ演算を実行して、宛先ＩＰアドレスのサブネットアドレスを特定するＡＮＤ演算回路、９はＡＮＤ演算回路８により特定された宛先ＩＰアドレスのサブネットアドレスと検索ＩＰアドレスを比較する比較回路である。
【０００５】
次に動作について説明する。
まず、２分検索装置の初期状態では、検索テーブル５の先頭行番号が先頭行番号レジスタ１に格納され、検索テーブル５の末尾行番号が末尾行番号レジスタ２に格納される。
【０００６】
そして、２分検索装置の中央行番号演算回路３に検索開始トリガが出力されると、中央行番号演算回路３は、先頭行番号レジスタ１に格納された先頭行番号と末尾行番号レジスタ２に格納された末尾行番号の平均加算（小数点以下切り捨てる）を実行し、次回検索に使用する中央行番号を演算する。
【０００７】
そして、変換回路４は、中央行番号演算回路３が中央行番号を演算すると、中央行番号に対応する検索テーブル５のメモリアドレスを生成し、検索テーブル５は、そのメモリアドレスに位置する検索ＩＰアドレス（検索ＩＰアドレスは、検索対象のサブネットアドレスである）と、その検索ＩＰアドレスのサブネットマスクを出力する。
【０００８】
一方、ＡＮＤ演算回路８は、宛先ＩＰアドレスを入力すると、検索テーブル５から出力された検索ＩＰアドレスのサブネットマスクと、宛先ＩＰアドレスのＡＮＤ演算を実行して（ＡＮＤ演算はビット単位に実行する）、宛先ＩＰアドレスのサブネットアドレスを特定する。
【０００９】
そして、比較回路９は、ＡＮＤ演算回路８が宛先ＩＰアドレスのサブネットアドレスを特定すると、宛先ＩＰアドレスのサブネットアドレスと検索ＩＰアドレスを比較する。
比較回路９は、宛先ＩＰアドレスのサブネットアドレスと検索ＩＰアドレスが一致する場合には、アドレスの一致を示す一致パルスを出力して、アドレスの検索処理を終了するが（その際、検索テーブル５から一致した検索ＩＰアドレスが転送処理情報として出力される）、アドレスが一致しない場合には、検索処理を続行するため、以下に示す処理を実行する。
【００１０】
即ち、宛先ＩＰアドレスのサブネットアドレスが検索ＩＰアドレスより小さい場合には、今回検索に使用した中央行番号に対応するメモリアドレスより前半に位置する検索ＩＰアドレス（アドレス値が小さい検索ＩＰアドレス）を比較対象にするため、今回検索に使用した中央行番号を末尾行番号レジスタ２に上書きする。
【００１１】
これにより、中央行番号演算回路３は、次回検索に使用する中央行番号を演算する際、先頭行番号と今回検索に使用した中央行番号（末尾行番号）を用いて演算するので、次回検索に使用する中央行番号は、今回検索に使用した中央行番号より前の行番号に移動することになる。
例えば、先頭行番号が“０”で、今回検索に使用した中央行番号が“１０”であれば、次回検索に使用する中央行番号は“５”になる。
【００１２】
一方、宛先ＩＰアドレスのサブネットアドレスが検索ＩＰアドレスより大きい場合には、今回検索に使用した中央行番号に対応するメモリアドレスより後半に位置する検索ＩＰアドレス（アドレス値が大きい検索ＩＰアドレス）を比較対象にするため、今回検索に使用した中央行番号を先頭行番号レジスタ１に上書きする。
【００１３】
これにより、中央行番号演算回路３は、次回検索に使用する中央行番号を演算する際、今回検索に使用した中央行番号（先頭行番号）と末尾行番号を用いて演算するので、次回検索に使用する中央行番号は、今回検索に使用した中央行番号より後の行番号に移動することになる。
例えば、今回検索に使用した中央行番号が“１０”で、末尾行番号が“２０”であれば、次回検索に使用する中央行番号は“１５”になる。
【００１４】
このようにして、中央行番号演算回路３が次回検索に使用する中央行番号を演算すると、その中央行番号に対応する検索テーブル５のメモリアドレスを生成することにより、上記と同様の比較処理を実行する。基本的には、宛先ＩＰアドレスのサブネットアドレスが検索ＩＰアドレスと一致するまで、上記の処理を繰り返すが、中央行番号レジスタ６に格納された前回の中央行番号と中央行番号演算回路３から出力された現在の中央行番号を比較し、両者が一致する場合には、照合回路７から宛先ＩＰアドレスが未登録である旨を示す未登録信号が出力され、検索処理が終了する。
【００１５】
【発明が解決しようとする課題】
従来の２分検索装置は以上のように構成されているので、宛先ＩＰアドレスのサブネットアドレスと一致する検索ＩＰアドレスが検索テーブル５に登録されていれば、宛先ＩＰアドレスのサブネットアドレスと一致する検索ＩＰアドレスを提供することができるが、検索テーブル５に検索ＩＰアドレスを登録する際、各検索ＩＰアドレス間の包含関係が考慮されずに登録され、しかも、宛先ＩＰアドレスのサブネットアドレスと検索ＩＰアドレスが一致すると、直ちに検索処理を終了するため、例えば、サブネットアドレスが大まかに設定された検索ＩＰアドレスが先に一致すると（図６のネットワークＡを参照）、サブネットアドレスが詳細に設定された検索ＩＰアドレスが登録されていても（図６のネットワークＢを参照）、サブネットアドレスが詳細に設定された検索ＩＰアドレスを提供することができないなどの課題があった。
【００１６】
この発明は上記のような課題を解決するためになされたもので、包含関係が存在する検索ＩＰアドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索ＩＰアドレスを提供することができる２分検索装置及び２分検索方法を得ることを目的とする。
【００１７】
【課題を解決するための手段】
この発明に係る２分検索装置は、アドレス値が大きい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスを格納手段に格納する一方、比較手段の比較結果がアドレスの一致を示す場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい旨を示す場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい旨を示す場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算するようにしたものである。
【００１８】
この発明に係る２分検索装置は、アドレス値が小さい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスを格納手段に格納する一方、比較手段の比較結果がアドレスの一致を示す場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい旨を示す場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい旨を示す場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算するようにしたものである。
【００１９】
この発明に係る２分検索装置は、アドレス値が大きい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスを格納手段に格納する一方、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算し、比較手段の比較結果に応じて何れか一方の中央行番号を出力するようにしたものである。
【００２０】
この発明に係る２分検索装置は、アドレス値が小さい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスを格納手段に格納する一方、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算し、比較手段の比較結果に応じて何れか一方の中央行番号を出力するようにしたものである。
【００２１】
この発明に係る２分検索装置は、演算手段が前回演算された中央行番号と先頭行番号又は末尾行番号の中間番号を演算し、その中間番号を次回使用する中央行番号として出力するようにしたものである。
【００２２】
この発明に係る２分検索装置は、比較手段が前回演算された中央行番号に位置する検索アドレスのサブネットマスクと宛先アドレスの論理積を演算して、宛先アドレスのサブネットアドレスを特定するようにしたものである。
【００２３】
この発明に係る２分検索装置は、最後に格納手段に格納された検索アドレスをヒットアドレスとして出力するようにしたものである。
【００２４】
この発明に係る２分検索方法は、アドレス値が大きい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、両者のアドレスが一致する場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算するようにしたものである。
【００２５】
この発明に係る２分検索方法は、アドレス値が小さい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、両者のアドレスが一致する場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算するようにしたものである。
【００２６】
この発明に係る２分検索方法は、アドレス値が大きい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算して、その比較結果に応じて何れか一方の中央行番号を出力するようにしたものである。
【００２７】
この発明に係る２分検索方法は、アドレス値が小さい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算して、その比較結果に応じて何れか一方の中央行番号を出力するようにしたものである。
【００２８】
この発明に係る２分検索方法は、前回演算された中央行番号と先頭行番号又は末尾行番号の中間番号を演算し、その中間番号を次回使用する中央行番号として出力するようにしたものである。
【００２９】
この発明に係る２分検索方法は、予め、検索アドレスのサブネットマスクを検索テーブルに登録し、前回演算された中央行番号に位置する検索アドレスのサブネットマスクと宛先アドレスの論理積を演算して、宛先アドレスのサブネットアドレスを特定するようにしたものである。
【００３０】
この発明に係る２分検索方法は、最後にメモリに格納された検索アドレスをヒットアドレスとして出力するようにしたものである。
【００３１】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。実施の形態１．  図１はこの発明の実施の形態１による２分検索装置を示す構成図であり、図において、１１は検索範囲の先頭行を示す先頭行番号を格納する先頭行番号レジスタ、１２は検索範囲の末尾行を示す末尾行番号を格納する末尾行番号レジスタ、１３は先頭行番号レジスタ１１に格納された先頭行番号と末尾行番号レジスタ１２に格納された末尾行番号の中間番号を演算し、その中間番号を次回使用する中央行番号として出力する中央行番号演算回路（演算手段）、１４は中央行番号演算回路１３から出力された中央行番号に対応する検索テーブル１５のメモリアドレスを生成する変換回路、１５はアドレス値が大きい順に検索ＩＰアドレスを登録する一方、各検索ＩＰアドレス間に包含関係が存在する場合には、サブネットマスクの範囲が大きい順に検索ＩＰアドレスを登録する検索テーブル、１６は中央行番号演算回路１３から出力された中央行番号を保持し、前回の中央行番号と現在の中央行番号が一致すると、検索の終了を示す終了信号を出力する検索終了照合回路である。
【００３２】
１７は変換回路１４により生成されたメモリアドレスに位置する検索ＩＰアドレスと宛先ＩＰアドレスのサブネットアドレスを比較する比較回路（比較手段）、１８は変換回路１４により生成されたメモリアドレスに位置する検索ＩＰアドレスのサブネットマスクと宛先ＩＰアドレスのＡＮＤ演算を実行して、宛先ＩＰアドレスのサブネットアドレスを特定するＡＮＤ演算回路、１９はＡＮＤ演算回路１８により特定された宛先ＩＰアドレスのサブネットアドレスと検索ＩＰアドレスを比較する比較器、２０は比較回路１７の比較結果がアドレスの一致を示す場合、その検索ＩＰアドレスを格納するヒット時アドレス格納レジスタ（格納手段）である。
なお、図２はこの発明の実施の形態１による２分検索方法を示すフローチャートである。
【００３３】
次に動作について説明する。
まず、２分検索装置の初期状態では、検索テーブル１５の先頭行番号が先頭行番号レジスタ１１に格納され、検索テーブル１５の末尾行番号が末尾行番号レジスタ１２に格納される。
【００３４】
そして、２分検索装置の中央行番号演算回路１３に検索開始トリガが出力されると、中央行番号演算回路１３は、先頭行番号レジスタ１１に格納された先頭行番号と末尾行番号レジスタ１２に格納された末尾行番号の平均加算（小数点以下切り捨てる）を実行し、次回検索に使用する中央行番号を演算する（ステップＳＴ８）。
例えば、図３に示すように、検索ＩＰアドレスが９個登録されている場合には、先頭行番号が“０”で、末尾行番号が“８”になるので、中央行番号は“４”になる。
【００３５】
そして、変換回路１４は、中央行番号演算回路１３が中央行番号を演算すると、中央行番号に対応する検索テーブル１５のメモリアドレスを生成し、検索テーブル１５は、そのメモリアドレスに位置する検索ＩＰアドレス（検索ＩＰアドレスは、検索対象のサブネットアドレスである）と、その検索ＩＰアドレスのサブネットマスクを出力する。
図３の場合、中央行番号が“４”であるので、検索ＩＰアドレスとして、“１２３ｄ．４５６ｄ．７８９ｄ．１０００  ００００”が出力され、サブネットマスクとして、“２５５ｄ．２５５ｄ．２５５ｄ．１０００  ００００”が出力される。
【００３６】
一方、比較回路１７のＡＮＤ演算回路１８は、宛先ＩＰアドレスを入力すると、検索テーブル１５から出力された検索ＩＰアドレスのサブネットマスクと、宛先ＩＰアドレスのＡＮＤ演算を実行して（ＡＮＤ演算はビット単位に実行する）、宛先ＩＰアドレスのサブネットアドレスを特定する（ステップＳＴ１）。
例えば、宛先ＩＰアドレスが“１２３ｄ．４５６ｄ．７８９ｄ．１０１１  １１０１”の場合、その宛先ＩＰアドレスとサブネットマスク“２５５ｄ．２５５ｄ．２５５ｄ．１０００  ００００”をビット単位でＡＮＤ演算すると、宛先ＩＰアドレスのサブネットアドレスは“１２３ｄ．４５６ｄ．７８９ｄ．１０００
００００”となる。
【００３７】
そして、比較回路１７の比較器１９は、ＡＮＤ演算回路１８が宛先ＩＰアドレスのサブネットアドレスを特定すると、宛先ＩＰアドレスのサブネットアドレスと検索ＩＰアドレスを比較する（ステップＳＴ２）。
比較器１９は、宛先ＩＰアドレスのサブネットアドレスと検索ＩＰアドレスが一致する場合には（ステップＳＴ３）、その検索ＩＰアドレスをヒット時アドレス格納レジスタ２０に上書きする（ステップＳＴ４）。
上記のように、宛先ＩＰアドレスが“１２３ｄ．４５６ｄ．７８９ｄ．１０１１  １１０１”であって、中央行番号が“４”の場合には、宛先ＩＰアドレスのサブネットアドレスが検索ＩＰアドレスと一致する。
【００３８】
また、比較器１９は、アドレスの一致の有無に拘わらず、更に検索処理を継続するため、アドレスが一致する場合又は宛先ＩＰアドレスのサブネットアドレスが検索ＩＰアドレスより大きい場合には（ステップＳＴ５）、今回検索に使用した中央行番号に対応するメモリアドレスより前半に位置する検索ＩＰアドレス（アドレス値が大きい検索ＩＰアドレス）を比較対象にするため、今回検索に使用した中央行番号を末尾行番号レジスタ１２に上書きする（ステップＳＴ６）。
【００３９】
これにより、中央行番号演算回路１３は、次回検索に使用する中央行番号を演算する際、先頭行番号と今回検索に使用した中央行番号（末尾行番号）を用いて演算するので（ステップＳＴ８）、次回検索に使用する中央行番号は、今回検索に使用した中央行番号より前の行番号に移動することになる。
例えば、先頭行番号が“０”で、今回検索に使用した中央行番号が“４”であれば、次回検索に使用する中央行番号は“２”になる（図３を参照）。
【００４０】
一方、宛先ＩＰアドレスのサブネットアドレスが検索ＩＰアドレスより小さい場合には（ステップＳＴ５）、今回検索に使用した中央行番号に対応するメモリアドレスより後半に位置する検索ＩＰアドレス（アドレス値が小さい検索ＩＰアドレス）を比較対象にするため、今回検索に使用した中央行番号を先頭行番号レジスタ１１に上書きする（ステップＳＴ７）。
【００４１】
これにより、中央行番号演算回路１３は、次回検索に使用する中央行番号を演算する際、今回検索に使用した中央行番号（先頭行番号）と末尾行番号を用いて演算するので（ステップＳＴ８）、次回検索に使用する中央行番号は、今回検索に使用した中央行番号より後の行番号に移動することになる。
例えば、今回検索に使用した中央行番号が“４”で、末尾行番号が“８”であれば、次回検索に使用する中央行番号は“６”になる。
【００４２】
このようにして、中央行番号演算回路１３が次回検索に使用する中央行番号を演算すると、その中央行番号に対応する検索テーブル１５のメモリアドレスを生成することにより、上記と同様の比較処理を実行する。
なお、検索終了照合回路１６が、前回の中央行番号と現在の中央行番号の一致を検出して、終了信号を出力するまで、上記の検索処理を繰り返し実行する（ステップＳＴ９）。
【００４３】
例えば、図３の場合、４回検索処理を繰り返し、４回アドレスの一致を検出するため、ヒット時アドレス格納レジスタ２０には、４回検索ＩＰアドレスが格納されるが、最後に格納された検索ＩＰアドレスがヒットアドレスとして出力される。
なお、行番号が“０”，“１”，“２”，“４”の検索ＩＰアドレスには包含関係が存在するが、行番号が小さい検索ＩＰアドレス程、サブネットアドレスが詳細に設定された検索ＩＰアドレスであるので、２分検索装置からはサブネットアドレスが詳細に設定された検索ＩＰアドレス（行番号が“０”の検索ＩＰアドレス）が出力される。
【００４４】
以上で明らかなように、この実施の形態１によれば、アドレス値が大きい順に登録された検索ＩＰアドレスのうち、前回演算された中央行番号に位置する検索ＩＰアドレスと宛先ＩＰアドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索ＩＰアドレスをヒット時アドレス格納レジスタ２０に格納する一方、比較回路１７の比較結果がアドレスの一致を示す場合又は宛先ＩＰアドレスのサブネットアドレスが検索ＩＰアドレスより大きい旨を示す場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算し、宛先ＩＰアドレスのサブネットアドレスが検索ＩＰアドレスより小さい旨を示す場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算するように構成したので、包含関係が存在する検索ＩＰアドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索ＩＰアドレスを提供することができる効果を奏する。
【００４５】
実施の形態２．
上記実施の形態１では、アドレス値が大きい順に検索ＩＰアドレスを登録し、各検索ＩＰアドレス間に包含関係が存在する場合には、サブネットマスクの範囲が大きい順に検索ＩＰアドレスを登録するものについて示したが、アドレス値が小さい順に検索ＩＰアドレスを登録し、各検索ＩＰアドレス間に包含関係が存在する場合には、サブネットマスクの範囲が小さい順に検索ＩＰアドレスを登録するようにしてもよい。
【００４６】
ただし、この場合には、比較器１９の比較結果がアドレスの一致を示す場合又は宛先ＩＰアドレスのサブネットアドレスが検索ＩＰアドレスより大きい旨を示す場合には、今回検索に使用した中央行番号に対応するメモリアドレスより後半に位置する検索ＩＰアドレス（アドレス値が大きい検索ＩＰアドレス）を比較対象にするため、今回検索に使用した中央行番号を末尾行番号レジスタ１２に上書きする。
【００４７】
一方、比較器１９の比較結果が、宛先ＩＰアドレスのサブネットアドレスが検索ＩＰアドレスより小さい旨を示す場合には、今回検索に使用した中央行番号に対応するメモリアドレスより前半に位置する検索ＩＰアドレス（アドレス値が小さい検索ＩＰアドレス）を比較対象にするため、今回検索に使用した中央行番号を先頭行番号レジスタ１１に上書きする。
【００４８】
実施の形態３．
図４はこの発明の実施の形態３による２分検索装置を示す構成図であり、図において、図１と同一符号は同一または相当部分を示すので説明を省略する。
２１はセレクタ２３が中央行番号を選択して出力すると、その中央行番号と先頭行番号から次回検索に使用する中央行番号を演算する中央行番号演算回路（演算手段）、２２はセレクタ２３が中央行番号を選択して出力すると、その中央行番号と末尾行番号から次回検索に使用する中央行番号を演算する中央行番号演算回路（演算手段）、２３は比較回路１７の比較結果がアドレスの一致を示す場合又は宛先ＩＰアドレスのサブネットアドレスが検索ＩＰアドレスより大きい旨を示す場合には、中央行番号演算回路２１により演算された中央行番号を選択して出力し、宛先ＩＰアドレスのサブネットアドレスが検索ＩＰアドレスより小さい旨を示す場合には、中央行番号演算回路２２により演算された中央行番号を選択して出力するセレクタ（演算手段）である。
【００４９】
次に動作について説明する。
上記実施の形態１では、中央行番号演算回路１３が比較回路１７の比較結果を考慮して中央行番号を演算するものについて示したが、比較回路１７が比較結果を出力する前に、予め、上方側に移動する場合の中央行番号と、下方側に移動する場合の中央行番号を演算し、比較回路１７が比較結果を出力すると、その比較結果に応じて直ちに中央行番号を出力するようにしてもよい。
【００５０】
これにより、比較回路１７の比較処理と、中央行番号演算回路２１，２２の演算処理を並列して実行することができるため、上記実施の形態１よりも、検索処理の高速化を図ることができる効果を奏する。
【００５１】
なお、中央行番号演算回路２１，２２の演算式は下記の通りである。
上方側に移動する場合の中央行番号＝［Ｘ（ｎ）＋Ｚ（ｎ）］／２
下方側に移動する場合の中央行番号＝［Ｚ（ｎ）＋Ｙ（ｎ）］／２
ただし、
Ｘ（ｎ）は前回の演算に使用された先頭行番号
Ｙ（ｎ）は前回の演算に使用された末尾行番号
Ｚ（ｎ）は前回の検索に使用された中央行番号
【００５２】
実施の形態４．
上記実施の形態３では、アドレス値が大きい順に検索ＩＰアドレスを登録し、各検索ＩＰアドレス間に包含関係が存在する場合には、サブネットマスクの範囲が大きい順に検索ＩＰアドレスを登録するものについて示したが、アドレス値が小さい順に検索ＩＰアドレスを登録し、各検索ＩＰアドレス間に包含関係が存在する場合には、サブネットマスクの範囲が小さい順に検索ＩＰアドレスを登録するようにしてもよい。
【００５３】
ただし、この場合には、比較回路１７の比較結果がアドレスの一致を示す場合又は宛先ＩＰアドレスのサブネットアドレスが検索ＩＰアドレスより大きい旨を示す場合には、今回検索に使用した中央行番号に対応するメモリアドレスより後半に位置する検索ＩＰアドレス（アドレス値が大きい検索ＩＰアドレス）を比較対象にするため、中央行番号演算回路２２により演算された中央行番号を選択して出力する。
【００５４】
一方、比較回路１７の比較結果が、宛先ＩＰアドレスのサブネットアドレスが検索ＩＰアドレスより小さい旨を示す場合には、今回検索に使用した中央行番号に対応するメモリアドレスより前半に位置する検索ＩＰアドレス（アドレス値が小さい検索ＩＰアドレス）を比較対象にするため、中央行番号演算回路２１により演算された中央行番号を選択して出力する。
【００５５】
【発明の効果】
以上のように、この発明によれば、アドレス値が大きい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスを格納手段に格納する一方、比較手段の比較結果がアドレスの一致を示す場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい旨を示す場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい旨を示す場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算するように構成したので、包含関係が存在する検索アドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索アドレスを提供することができる効果がある。
【００５６】
この発明によれば、アドレス値が小さい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスを格納手段に格納する一方、比較手段の比較結果がアドレスの一致を示す場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい旨を示す場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい旨を示す場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算するように構成したので、包含関係が存在する検索アドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索アドレスを提供することができる効果がある。
【００５７】
この発明によれば、アドレス値が大きい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスを格納手段に格納する一方、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算し、比較手段の比較結果に応じて何れか一方の中央行番号を出力するように構成したので、包含関係が存在する検索アドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索アドレスを提供することができるとともに、検索処理の高速化を図ることができる効果がある。
【００５８】
この発明によれば、アドレス値が小さい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスを格納手段に格納する一方、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算し、比較手段の比較結果に応じて何れか一方の中央行番号を出力するように構成したので、包含関係が存在する検索アドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索アドレスを提供することができるとともに、検索処理の高速化を図ることができる効果がある。
【００５９】
この発明によれば、演算手段が前回演算された中央行番号と先頭行番号又は末尾行番号の中間番号を演算し、その中間番号を次回使用する中央行番号として出力するように構成したので、複雑な構成を用いることなく、簡単に中央行番号を求めることができる効果がある。
【００６０】
この発明によれば、比較手段が前回演算された中央行番号に位置する検索アドレスのサブネットマスクと宛先アドレスの論理積を演算して、宛先アドレスのサブネットアドレスを特定するように構成したので、複雑な構成を用いることなく、簡単に宛先アドレスのサブネットアドレスを特定することができる効果がある。
【００６１】
この発明によれば、最後に格納手段に格納された検索アドレスをヒットアドレスとして出力するように構成したので、包含関係が存在する検索アドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索アドレスを提供することができる効果がある。
【００６２】
この発明によれば、アドレス値が大きい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、両者のアドレスが一致する場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算するように構成したので、包含関係が存在する検索アドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索アドレスを提供することができる効果がある。
【００６３】
この発明によれば、アドレス値が小さい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、両者のアドレスが一致する場合又は宛先アドレスのサブネットアドレスが検索アドレスより大きい場合、その中央行番号と末尾行番号から次回使用する中央行番号を演算し、宛先アドレスのサブネットアドレスが検索アドレスより小さい場合、その中央行番号と先頭行番号から次回使用する中央行番号を演算するように構成したので、包含関係が存在する検索アドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索アドレスを提供することができる効果がある。
【００６４】
この発明によれば、アドレス値が大きい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算して、その比較結果に応じて何れか一方の中央行番号を出力するように構成したので、包含関係が存在する検索アドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索アドレスを提供することができるとともに、検索処理の高速化を図ることができる効果がある。
【００６５】
この発明によれば、アドレス値が小さい順に登録された検索アドレスのうち、前回演算された中央行番号に位置する検索アドレスと宛先アドレスのサブネットアドレスを比較して、両者のアドレスが一致する場合、その検索アドレスをメモリに格納する一方、予め、前回演算された中央行番号と先頭行番号から次回使用する中央行番号を演算するとともに、前回演算された中央行番号と末尾行番号から次回使用する中央行番号を演算して、その比較結果に応じて何れか一方の中央行番号を出力するように構成したので、包含関係が存在する検索アドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索アドレスを提供することができるとともに、検索処理の高速化を図ることができる効果がある。
【００６６】
この発明によれば、前回演算された中央行番号と先頭行番号又は末尾行番号の中間番号を演算し、その中間番号を次回使用する中央行番号として出力するように構成したので、複雑な構成を用いることなく、簡単に中央行番号を求めることができる効果がある。
【００６７】
この発明によれば、予め、検索アドレスのサブネットマスクを検索テーブルに登録し、前回演算された中央行番号に位置する検索アドレスのサブネットマスクと宛先アドレスの論理積を演算して、宛先アドレスのサブネットアドレスを特定するように構成したので、複雑な構成を用いることなく、簡単に宛先アドレスのサブネットアドレスを特定することができる効果がある。
【００６８】
この発明によれば、最後にメモリに格納された検索アドレスをヒットアドレスとして出力するように構成したので、包含関係が存在する検索アドレスが登録されている場合には、サブネットアドレスが詳細に設定された検索アドレスを提供することができる効果がある。
【図面の簡単な説明】
【図１】この発明の実施の形態１による２分検索装置を示す構成図である。
【図２】この発明の実施の形態１による２分検索方法を示すフローチャートである。
【図３】検索ＩＰアドレス等の登録例を示す説明図である。
【図４】この発明の実施の形態３による２分検索装置を示す構成図である。
【図５】従来の２分検索装置を示す構成図である。
【図６】ネットワークの包含関係を説明する説明図である。
【符号の説明】
１３，２１，２２  中央行番号演算回路（演算手段）、１５  検索テーブル、１７  比較回路（比較手段）、２０  ヒット時アドレス格納レジスタ（格納手段）、２３  セレクタ（演算手段）。
【図１】
0003626056.tif 000002
【図２】
0003626056.tif 000003
【図３】
0003626056.tif 000004
【図４】
0003626056.tif 000005
【図５】
0003626056.tif 000006
【図６】
0003626056.tif 000007