(57)【要約】      （修正有）【課題】検索データベース内を区分情報によって分割し、区分毎に異なる検索対象の検索を行う検索処理方法を提供する。【解決手段】データベースに登録されたデータを検索キーと比較して検索処理を行う検索処理装置において、検索すべきデータが登録され、入力されたアドレスに応じて、登録されたデータを出力する検索データベース１０１を有する。更に、検索データベース内のアドレスを区分するアドレス区分情報と、ビット位置を区分するビット区分情報とが登録され、登録された情報を出力する検索区分データベース１１０を有する。そして、そのアドレス区分情報に基づいて、検索データベースの検索アドレスを生成し、その検索アドレスに登録されたデータが、ビット区分情報に基づいてビット位置が変換され、変換されたデータを検索キーと比較し、比較結果を出力する。【選択図】図１
2011002910.tif 000002
【特許請求の範囲】
【請求項１】
データベースに登録されたデータを検索キーと比較して検索処理を行う検索処理装置であって、
検索すべきデータが登録され、入力されたアドレスに応じて、前記登録されたデータを出力する検索データベースと、
前記検索データベース内のアドレスを区分するアドレス区分情報と、ビット位置を区分するビット区分情報とが登録され、前記登録された情報を出力する検索区分データベースと、
前記検索データベースに登録されたデータのうち、前記アドレス区分情報により特定されるアドレス範囲に登録され、かつ、前記ビット区分情報により特定されるビット範囲に登録されたデータを、前記検索キーと比較して比較結果を出力する比較手段と、
を有することを特徴とする検索処理装置。
【請求項２】
前記検索データベースの同一アドレスに異なる検索区分のデータを配置し、前記検索区分を示す情報に基づいて前記配置されたデータを検索区分毎に検索することを特徴とする請求項１に記載の検索処理装置。
【請求項３】
前記比較手段を少なくとも２つ有し、同一の検索区分に属する複数の検索を同時に行うことを特徴とする請求項１又は２に記載の検索処理装置。
【請求項４】
データベースに登録されたデータを検索キーと比較して検索処理を行う検索処理装置における検索処理方法であって、
検索すべきデータが登録された検索データベース内のアドレスを区分するアドレス区分情報により特定されるアドレス範囲に登録されたデータを前記検索データベースから読み出す工程と、
読み出されたデータのうち、前記検索すべきデータが登録された検索データベース内のビット区分情報により特定されるビット範囲のデータを、前記検索キーと比較して比較結果を出力する工程と、
を有することを特徴とする検索処理方法。
【請求項５】
コンピュータを請求項１乃至３の何れか１項に記載の検索処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、連想メモリによる検索技術に関し、特にメモリを検索区分で管理する技術に関するものである。
【背景技術】
【０００２】
ネットワークプロトコル処理においては、テーブルと呼ばれるデータベースに基づいて検索処理が行われる。代表的な検索処理としてはＡＲＰテーブル検索、ソケットテーブル検索、ＴＣＰＣＢ検索、ルーティングテーブル検索など複数の検索処理があり、これらの検索にかかるコストは無視できないものとなっている。そのため、専用の検索エンジンと呼ばれるハードウェア（又は専用のプロセッサ）を用いて処理する方式が知られている。検索エンジンに使用されるデバイスはＣＡＭ（Content Addressable Memory）と呼ばれる専用メモリデバイスが知られている。ＣＡＭは、検索キーを入力すると、検索キーと一致した登録データが格納されているアドレスを出力する特殊なメモリである。登録データを格納しているメモリセル全てを同時に出力し、検索キーと比較するため非常に高速に検索することができる。
【０００３】
上述したように、ネットワークプロトコル処理における検索対象は複数存在しており、ＣＡＭを検索対象毎に複数持たせるような構成である場合、回路規模が増大してしまう。このような問題を解決するために、１つのＣＡＭ上で複数のプロトコルに対応した検索ができる検索装置が提案されている（例えば、特許文献１参照）。
【０００４】
特許文献１は、プロトコルアドレスのフォーマットがプロトコル毎に異なっているため、各エントリの同一セグメントに同一のフォーマットのデータが格納されているとは限らない。最初の検索によりこの第１セグメントを全て検索することにより、検索対象となるプロトコルが格納されたエントリだけを抽出し、検索対象とすることで複数プロトコルのテーブルを１つのＣＡＭ内に実装してＣＡＭの個数削減を実現している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平8-212790号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、プロトコル識別子で検索対象のエントリを選択するため、単一のＣＡＭに複数プロトコルの検索データを格納できるが、プロトコルアドレスの最大長のＣＡＭを実装した上で、他のプロトコルにとって不要なビットは未使用ビットとなる。そのため、高価なＣＡＭにおいてビットの無駄が生じてしまう。
【０００７】
このように、従来は、検索に用いるデータベースを無駄に使用してしまうという問題があった。
【課題を解決するための手段】
【０００８】
本発明は、データベースに登録されたデータを検索キーと比較して検索処理を行う検索処理装置であって、
検索すべきデータが登録され、入力されたアドレスに応じて、前記登録されたデータを出力する検索データベースと、
前記検索データベース内のアドレスを区分するアドレス区分情報と、ビット位置を区分するビット区分情報とが登録され、前記登録された情報を出力する検索区分データベースと、
前記検索区分データベースに登録されたデータのうち、前記アドレス区分情報により特定されるアドレス範囲に登録され、かつ、前記ビット区分情報により特定されるビット範囲に登録されたデータを、前記検索キーと比較して比較結果を出力する比較手段と、
を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、データベースの無駄な使用を削減しつつ柔軟性の高い検索が可能となる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態の検索処理方法を実現するハードウェア構成例を示す図。
【図２】検索データベースの構成の一例を示す図。
【図３】検索区分データベースの構成の一例を示す図。
【図４】比較器の構成の一例を示す図。
【図５】第１の実施形態による検索データベースでの検索処理を時系列に示す図。
【図６】第２の実施形態の検索処理方法を実現するハードウェア構成例を示す図。
【図７】検索データベース内の区分の配置例を示す図。
【図８】第２の実施形態による検索区分データベースの構成の一例を示す図。
【図９】第２の実施形態による検索データベースでの検索処理を時系列に示す図。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら発明を実施するための形態について詳細に説明する。本実施形態では、ＣＡＭ（Content Addressable Memory）と呼ばれる専用のメモリで構成される検索データベースに登録されたデータを入力された検索キーと比較して検索処理する装置及び方法を説明する。
【００１２】
［第１の実施形態］
まず、第１の実施形態として、検索データベース内を区分情報によって分割し、区分毎に異なる検索対象の検索を行う検索処理方法を、図１乃至図５を用いて説明する。
【００１３】
図１は、第１の実施形態における検索処理方法を実現するハードウェア構成例を示す図である。図１において、検索データベース１０１はＳＲＡＭなどのメモリで構成される。検索アドレス生成器１０２は検索データベース１０１を検索する際の検索アドレスを生成する。登録データバッファ１０３は検索データベース１０１に登録されるデータを一時的に蓄積する。検索区分データベース１１０は検索データベース１０１上の検索区分情報を登録する。複数の比較検索器１０４はそれぞれアドレスレジスタ１０５、アドレス監視器１０６、検索キーレジスタ１０７、比較器１０８で構成される。
【００１４】
アドレスレジスタ１０５は検索アドレス生成器１０２からのアドレス情報と検索データベース１０１内のアドレス区分情報とに基づいて、比較検索すべきアドレスを保持する。アドレス監視器１０６は検索アドレス生成器１０２のアドレスを監視する。検索キーレジスタ１０７は検索キーと検索種別から検索すべきデータを保持する。比較器１０８は検索区分データベース１１０からのビット区分情報に従ってアドレスレジスタ１０５に保持されたアドレスにおける検索データベース１０１のデータと検索キーレジスタ１０７に保持されたデータとを比較する。
【００１５】
ここで、検索データベース１０１の構成の一例を、図２を用いて説明する。尚、ネットワークプロトコル処理では、ＡＲＰテーブル検索、ソケットテーブル検索、ルーティングテーブル検索など、複数の検索処理があり、それぞれの検索対象によって検索キーの幅や検索エントリの深さは異なる。
【００１６】
図２に示すように、検索の種類によって一度の検索に必要なビット幅やテーブルに登録されているデータ量がそれぞれ異なり、各テーブルが記憶されているアドレス配置なども異なることが通常である。第１の実施形態では、図２に示す検索データベース内の構成例を前提に説明する。
【００１７】
検索データベース１０１が図２に示す構成の場合、検索区分データベース１１０には、図３に示す区分毎のアドレス区分情報（下限アドレス、上限アドレス）、ビット区分情報（下限ビット、上限ビット）が登録されている。検索データベース１０１は、図２に示すように、上から下に、０からＮまで、アドレスが割り当てられている。それぞれのアドレスには、Ｍビットのデータが格納可能である。すなわち、検索データベース１０１には、ＭビットのデータがＮ個、格納可能である。例えば、区分Ａ（ソケット検索テーブル）の場合、下限アドレスは０、上限アドレスはｎ１−１、下限ビットは０、上限ビットはｍ１−１である。すなわち、ソケット検索テーブルには、ｍ１ビットのソケット情報がｎ個登録されている。アドレス０からｎ１−１までに格納されているデータのうち、０ビット目からｍ１−１ビット目までが、ソケット情報である。他の区分も同様に、検索データベース１０１上の検索データに対応するように設定される。各区分の情報は検索区分データベース１１０から出力される。
【００１８】
次に、第１の実施形態における基本的な検索処理を説明する。まず、比較検索器１０４の検索キーレジスタ１０７に検索キーと検索種別が入力されると、検索区分データベース１１０が出力する検索種別と外部から入力される検索種別とが一致するか否かを判定する。判定の結果、一致する場合、検索アドレス生成器１０２が出力するアドレス情報に基づいて開始アドレス及び終了アドレスと、折り返し元アドレス及び折り返し先アドレスとをアドレスレジスタ１０５に格納する。アドレスレジスタ１０５は、開始アドレスレジスタ、終了アドレスレジスタ、折り返し元アドレスレジスタ、折り返し先アドレスレジスタで構成されている。そして、アドレスレジスタ１０５からアドレス監視器１０６へアドレスが通知される。
【００１９】
具体的には、同一エントリ内の他の検索が行われていない場合は、検索区分データベース１１０が出力する下限・上限アドレスをそれぞれアドレスレジスタ１０５内の開始・終了アドレスレジスタへ格納する。この場合、折り返し元アドレスレジスタ、折り返し先アドレスレジスタには何も格納しない。同一エントリ内に存在する他の検索を行っている場合は、アドレスレジスタ１０５内の開始アドレスレジスタには現時点の検索アドレス生成器１０２が生成しているアドレスを格納し、終了アドレスレジスタには現時点のアドレス−１の値を格納する。折り返し元アドレスレジスタには検索区分データベース１１０から出力される上限アドレスを、折り返し先アドレスレジスタには検索区分データベース１１０から出力される下限アドレスを格納する。その結果、検索データベース１０１に登録されたデータのうち、アドレス区分情報（下限アドレス、上限アドレス）により特定されるアドレス範囲に登録されたデータが検索対象となる。この詳細については更に後述する。
【００２０】
アドレス監視器１０６は検索アドレス生成器１０２がアドレス生成をしていないことを確認し、検索アドレス生成開始を指示する。これにより、検索アドレス生成器１０２から検索データベース１０１へ開始アドレスに始まり、終了アドレスまで継続的にアドレスが与えられる。すなわち、下限アドレスと上限アドレスにより特定されるアドレス範囲に登録されたデータを検索データベース１０１から読み出す。検索データベース１０１からは各アドレスに対応する登録データが出力され、比較器１０８で検索キーとの比較が行われる。このとき、検索データベース１０１から出力されるビット区分情報（下限ビット、上限ビット）で指定されたビット幅のみの比較が行われる。すなわち、読み出されたデータのうち、ビット区分情報により特定されるビット範囲のデータを、検索キーと比較する。比較した結果が一致した場合は、応答出力に一致情報を出力する。
【００２１】
以上のように、比較器１０８は、アドレス区分情報により特定されるアドレス範囲に登録され、かつ、ビット区分情報により特定されるビット範囲に登録されたデータを、検索キーと比較して比較結果を出力する。ここで、一検索入力に対して一応答出力が求められている場合には、この検索処理を終了するが、一検索入力に対して複数応答出力が求められている場合には、継続して検索アドレスの生成を行う。このようにして検索データベース１０１から、終了アドレスまでの出力が完了した時点で、この検索処理が終了となる。
【００２２】
図２に示すように、例えば、アドレス０からｎ０−１までには、ソケット検索テーブルとＢＩＮＤ検索テーブルが配置されており、検索データベース１０１の同一アドレスに異なる検索区分のデータを配置することが可能である。このような構成において、検索対象の検索区分を示す情報に基づいて、配置されたデータを検索区分毎に検索する。
【００２３】
ここで、比較検索器１０４における比較器１０８の構成の一例を、図４を用いて説明する。比較器１０８は、図４に示すようにＭビット幅の比較が行え、ビット毎に比較マスクを行えるように構成されている。ここで、Ｍビットは検索データベース１０１のビット幅Ｍと一致するものである。有効検索キー生成回路４０１は入力される検索キーを検索区分データベース１１０からの比較ビット（下限、上限ビット）情報に従い、有効ビット位置に収まるように変換する。例えば、下限ビットが３２で上限ビットが６３の場合は、検索キーを３２ビットから６３ビット目になるようにシフトする。ここで、入力の検索キーはＭビットの検索キーの０ビット目から下詰されているものとする。
【００２４】
マスクビット生成回路４０２は、比較ビット（下限、上限ビット）情報から各ビットのマスク信号を生成する。例えば、下限ビットが３２で上限ビットが６３の場合は、３２から６３ビットまでを“０”とし、それ以外のビット全てを“１”として出力する。そして、有効検索キー生成回路４０１、マスクビット生成回路４０２から生成される信号に基づきビット毎に比較し、最終的に全ビットのＯＲを取ったものが検索応答（一致、不一致）信号となる。
【００２５】
次に、検索データベース１０１での検索処理を、図５を用いて説明する。縦軸方向には各比較検索器１０４の動作状況を示し、横軸は時間を表す。尚、図５に示す例では、２個の比較検索器１０４−１、１０４−２が実装されているが、実装される個数はこれだけに限定されるものではない。
【００２６】
まず、時刻＃１で検索Ａ、Ｂが投入されると、比較検索器１０４−１で“Search A”（ソケット検索）が、比較検索器１０４−２で“Search B”（ＢＩＮＤ検索）が開始される。このとき、２個の比較検索器１０４−１、１０４−２はどちらも動作していない。即ち、比較検索器１０４−１は、検索区分データベースから出力される区分Ａのアドレス情報（上限・下限アドレス）に基づき、アドレスレジスタ１０５内の開始アドレスレジスタに０を、終了アドレスレジスタにｎ１−１を格納する。また同様に、比較検索器１０４−２は、検索区分データベースから出力される区分Ｂのアドレス情報（上限・下限アドレス）に基づき、アドレスレジスタ１０５内の開始アドレスレジスタに０を、終了アドレスレジスタにｎ０−１を格納する。折り返し元アドレスレジスタ、折り返し先アドレスレジスタには何も格納しない。
【００２７】
また、求める検索結果の種類として、シングルヒットかマルチヒットのどちらかを予め選択するものとする。シングルヒットとは、検索データベース１０１内に検索キーと同一のデータが得られた時点で検索を終了する検索手法で、唯一の検索結果を得るための検索である。一方、マルチヒットとは、検索データベース１０１の与えられた検索範囲に渡って検索し、複数の検索結果を出力することを可能とする検索手法である。これ以降の説明では、全てマルチヒットであることを前提とする。よって、検索結果に依らず、必ず設定されたエントリ数分の検索が行われる。
【００２８】
時刻＃３（アドレスはｎ０−１）でエントリ数の少ない“Search B”の検索が先に終了し、応答Ｂが出力される。このとき、“Search A”の検索は継続して行われるため、アドレスは更にインクリメントされ続ける。遅れて時刻＃４でアドレスがｎ１−１に到達した時点で“Search A”の検索が終了し、応答Ａを返す。“Search A”と“Search B”の検索を行っている間の時刻＃２で検索Ｃ（ＡＲＰ検索）が入力される。この例では、比較検索器１０４が２セットしか実装されていないため、検索Ｃは“Search A”と“Search B”が終了するまでペンディングとされる。
【００２９】
次に、比較検索器１０４−１、１０４−２の検索が時刻＃３で終了したため、ペンディングされていた“Search C”が時刻＃４で開始される。この時の開始アドレスはｎ１で、終了アドレスはｎ３−１である。時刻＃５で新たな検索Ｄ（ルーティング検索）が入力されるが、このとき、一方の比較検索器１０４−２が空いているので、即座に“Search D”を開始する。“Search D”の検索区分データベース１１０から出力される下限アドレスはｎ１である。この場合、検索アドレス生成器１０２が出力している現時点のアドレスが下限アドレスを超えている、ｉのため、“Search D”の開始アドレスレジスタには現時点のアドレスｉが格納され、終了アドレスレジスタにはｉ−１が格納される。同時に、折り返し元アドレスレジスタにｎ２−１が、折り返し先アドレスレジスタにｎ１が格納される。
【００３０】
基本的な動作としては、アドレスが折り返し元アドレスに到達したところで、折り返し先アドレスにジャンプし、そこから終了アドレスまでインクリメントされることになる。このようにすることで、区分の途中からでも比較が行えるようになるため、検索の応答性を高めることができる。
【００３１】
時刻＃６で検索アドレス生成器１０２のアドレスがｎ２−１に到達すると、“Search D”の折り返し元アドレスに到達する。しかし、“Search C”の終了アドレスはｎ３−１であるため、“Search D”の折り返し先アドレスであるｎ１にはジャンプできない。引き続き“Search C”の終了アドレスであるｎ３−１までアドレスが生成される。
【００３２】
時刻＃７で“Search C”の検索が終了し、応答Ｃが出力される。このとき、“Search D”の折り返し先アドレスｎ１にジャンプし、時刻＃８の応答Ｄ出力まで検索を続行する。また、時刻＃６から時刻＃７の間、“Search D”の比較範囲以外のアドレスということで比較が行われないように制御されているものとする。
【００３３】
時刻＃８の時点から２個の比較検索器１０４−１、１０４−２は空き状態になっているが検索要求がないので、検索アドレスは生成しない。この間を利用して検索データベース１０１、検索区分データベース１１０の更新が可能である。
【００３４】
時刻＃９で検索Ｅ（IPSec SA検索）の検索要求が入り、即座に“Search E”が開始され、時刻＃１１まで検索継続される。この間の時刻＃１０に検索区分Ｆ（IPSec SP検索）の検索要求が入っている。しかし、検索区分Ｅと検索区分Ｆとは、全く異なるアドレス領域（ｎ３からｎ４−１とｎ４からｎ５−１）に配置されているため、比較検索器を複数使用した検索はできない。そのため、時刻＃１１で“Search E”が終了次第、“Search F”を開始する。最終的に時刻＃１２で“Serach F”の検索が終了する。
【００３５】
第１の実施形態では、２個の比較検索器を実装する例を説明したが、比較装置の個数を増加させることで、更に同一アドレスに存在する複数の区分の検索を同時に実行することができる。また逆に、低コスト実装を狙い、比較検索器を１つとすることも可能である。この場合、複数の比較対象に対して同時に比較ができないので、検索スループットは低下するが、低コストを実現できる。
【００３６】
また、第１の実施形態では、検索データベースに６つの検索対象を設定したが、もちろんこの限りではない。また同一アドレスに存在する検索対象が最大２つとしたが、この数にも制限はないことは言うまでもない。
【００３７】
更に、第１の実施形態では、マルチヒットを前提に説明を行ったが、検索対象によってはシングルヒット対象のものもある。この場合、必ずしも上限アドレスまで全アドレスを比較する必要はないので、シングルヒットした時点で、当該区分の検索は終了したものとして扱っても構わない。
【００３８】
第１の実施形態によれば、検索データベースに対応する検索区分データベースを設け、区分毎に異なる検索対象の検索を行うことで、メモリ個数と容量の増大を抑制し、安価で、且つ柔軟性の高いデータ検索装置が可能となる。
【００３９】
［第２の実施形態］
次に、図面を参照しながら本発明に係る第２の実施形態を詳細に説明する。第１の実施形態では、区分毎に異なる検索対象を配置して検索処理を行ったが、第２の実施形態では本発明の基本的な概念に基づいた応用例を説明する。
【００４０】
図６は、第２の実施形態における検索処理方法を実現するハードウェア構成例を示す図である。図１に示す第１の実施形態との相違点は、検索区分データベース１２０の出力に区分分割情報が追加された点と、検索応答制御部１３０が追加された点である。
【００４１】
検索応答制御部１３０は、各比較検索器１０４からの応答出力と検索区分データベース１２０から出力される区分分割情報を受け、検索対象毎の検索応答を出力する。検索応答制御部１３０に入力される応答出力は、あくまで比較検索毎の応答出力であり、検索応答制御部１３０が出力する応答出力は分割された各区分の応答を合成した最終的な検索応答出力である。
【００４２】
図７は、検索データベース１０１内の区分の配置例を示す図である。ルーティング検索テーブルは区分Ｄ−ｂ０、区分Ｄ−ｂ１の２つの区分に分割して配置され、ソケット検索テーブルの横に配置されている。第１の実施形態（図２）におけるルーティングテーブルをビット方向で２分割し、区分Ｄ−ｂ０、区分Ｄ−ｂ１として配置したものである。また、ＡＲＰ検索テーブルはＣ−ａ０，Ｃ−ａ１，Ｃ−ａ２という３つの区分に分割配置している。このテーブルの場合、エントリ（アドレス）方向に３分割を実施したものである。
【００４３】
図８は、図７に示す検索データベース１０１に対応する検索区分データベース１２０の構成の一例を示す図である。区分情報は第１の実施形態と同じように、区分毎にＲＡＭの座標情報が登録されている。検索データベース１０１で分割配置した区分Ｃと区分Ｄとについては分割後の区分として座標が設定される。これに加えて、区分分割情報が登録されている。これは、分割した後の区分番号の全てとその分割の種別を指定するものである。例えば、ＡＲＰ検索テーブルは区分Ｃ−ａ０、Ｃ−ａ１、Ｃ−ａ２に分割されているので、その分割種別はアドレス分割である（Ｇｒｐ０）。また同様に、ルーティング検索テーブルの場合、区分Ｄ−ｂ０，Ｄ−ｂ１のグルーピングであり、その分割種別はビット分割である。この分割種別が１２０検索区分テーブルから出力されることになる。
【００４４】
ここで、第２の実施形態における検索処理を、図９を用いて説明する。図９に示す例では、３個の比較検索器１０４−１〜１０４−３が実装され、図７、図８に示す検索区分で検索データが格納されているものとする。
【００４５】
まず、時刻＃１で検索Ａの要求が入り、検索Ａの下限アドレス０と上限アドレスｎ１−１を比較検索器１０４−１のアドレスレジスタ１０５内先頭アドレスレジスタ、終了アドレスレジスタに格納し、“Search A”を開始する。＃２で検索Ｄの要求が入り、空いている比較検索器１０４−２を用いて検索区分Ｄ−ｂ０の検索“Search D-b0”を開始する。検索区分Ｄ−ｂ１は実行中のアドレスの外であるので、検索処理の開始はペンディングされる。
【００４６】
時刻＃３で検索アドレスは検索区分Ｄ−ｂ０の上限アドレスであるｎ０−１に到達する。このとき、検索区分Ａの検索は継続されるので、そのままアドレスをインクリメントする。ここから比較検索器１０４−２の比較処理は無効になる。これと同時に、検索区分Ｄ−ｂ１に開始アドレスと終了アドレスをそれぞれ設定し、比較処理を開始する。時刻＃４で検索区分Ａと検索区分Ｄ−ｂ１の上限アドレスｎ１−１に到達し、応答Ａと応答Ｄ−ｂ１を出力する。応答はあくまで比較検索器１０４毎の応答であり、検索対象となっているソケット検索、ルーティング検索単位の応答ではない。一方、検索区分Ａは他の検索区分とグルーピングされているわけではないので、そのまま検索応答Ａとして出力する。検索応答Ｄについては区分Ｄ−ｂ０の検索がまだ終了していないため、出力されない。また、アドレスが上限アドレスｎ１−１に到達すると、比較処理がペンディング状態になっている比較検索器１０４−２のアドレス生成が再開される。現在のアドレスｎ１−１から０にジャンプして検索を継続する。
【００４７】
時刻＃５で比較検索器１０４−２の検索が終了し、応答Ｄ−ｂ０を出力する。ここで、分割された区分Ｄ−ｂ０と区分Ｄ−ｂ１の応答が揃い、最終的な検索応答Ｄを出力する。応答Ｄ−ｂ０，Ｄ−ｂ１は図８の検索区分データベース１２０に示すように、ビット分割タイプであるため、Ｄ−ｂ０，Ｄ−ｂ１の比較結果をＡＮＤしたものが最終的な検索結果となる。
【００４８】
次に、時刻＃６で検索Ｃの要求が入り検索が開始される。検索Ｃの区分は全て同じエントリ内であるため、３個の比較検索器１０４−１〜１０４−３を同時に動作させて、比較処理を行うことができる。比較検索器１０４−１〜１０４−３の開始アドレスレジスタにｎ１、終了アドレスレジスタにｎ２−１を設定し、検索を開始する。そして、時刻＃７で３個の検索処理が終了し、それぞれの応答を検索応答制御部１３０に出力する。ここで、検索Ｃの分割タイプはアドレス分割であるので、各応答をＯＲすることで、最終的な区分応答Ｃが生成される。
【００４９】
検索Ｃのように、検索テーブルをアドレスで３分割し、ビット方向に配置し３個の比較検索器１０４−１〜１０４−３を使用することで、３倍の検索応答性を実現できることになる。また、検索Ｄのように、検索テーブルをビットで２分割し、アドレス方向に配置することで、検索応答性は１／２に低下するものの、ＲＡＭ領域を効率的に使用できるようになる。同じように、検索Ｃの場合、比較検索器が１つしか無い場合でも、検索応答性は落ちるものの、ＲＡＭ領域を効率的に使用できるようになる。
【００５０】
第２の実施形態では、図７に示す検索区分Ｃ、Ｄは近接させて配置した例を示したが、これについての制限はなく、離れたアドレス、ビットに配置することも可能である。この場合、検索応答性は落ちる可能性があるものの、局所的に空いたＲＡＭスペースを合成して１つの検索対象テーブルを生成することも可能となることは言うまでもない。
【００５１】
尚、上述した実施形態の機能を実現するべく各種の装置を動作させるように、各種装置と接続された装置或いはシステム内のコンピュータに対して、上述した実施形態の機能を実現するためのソフトウェアのプログラムコードを供給する。これにより、そのシステム或いは装置のコンピュータ（プロセッサ）に格納されたプログラムに従って、各種装置を動作させることによって実施したものも、本発明の範疇に含まれる。
【図１】
2011002910.tif 000003
【図２】
2011002910.tif 000004
【図３】
2011002910.tif 000005
【図４】
2011002910.tif 000006
【図５】
2011002910.tif 000007
【図６】
2011002910.tif 000008
【図７】
2011002910.tif 000009
【図８】
2011002910.tif 000010
【図９】
2011002910.tif 000011