JP2011002910A - 検索処理装置及び検索処理方法 - Google Patents
検索処理装置及び検索処理方法 Download PDFInfo
- Publication number
- JP2011002910A JP2011002910A JP2009143665A JP2009143665A JP2011002910A JP 2011002910 A JP2011002910 A JP 2011002910A JP 2009143665 A JP2009143665 A JP 2009143665A JP 2009143665 A JP2009143665 A JP 2009143665A JP 2011002910 A JP2011002910 A JP 2011002910A
- Authority
- JP
- Japan
- Prior art keywords
- search
- address
- database
- data
- registered
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/742—Route cache; Operation thereof
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】検索データベース内を区分情報によって分割し、区分毎に異なる検索対象の検索を行う検索処理方法を提供する。
【解決手段】データベースに登録されたデータを検索キーと比較して検索処理を行う検索処理装置において、検索すべきデータが登録され、入力されたアドレスに応じて、登録されたデータを出力する検索データベース101を有する。更に、検索データベース内のアドレスを区分するアドレス区分情報と、ビット位置を区分するビット区分情報とが登録され、登録された情報を出力する検索区分データベース110を有する。そして、そのアドレス区分情報に基づいて、検索データベースの検索アドレスを生成し、その検索アドレスに登録されたデータが、ビット区分情報に基づいてビット位置が変換され、変換されたデータを検索キーと比較し、比較結果を出力する。
【選択図】図1
【解決手段】データベースに登録されたデータを検索キーと比較して検索処理を行う検索処理装置において、検索すべきデータが登録され、入力されたアドレスに応じて、登録されたデータを出力する検索データベース101を有する。更に、検索データベース内のアドレスを区分するアドレス区分情報と、ビット位置を区分するビット区分情報とが登録され、登録された情報を出力する検索区分データベース110を有する。そして、そのアドレス区分情報に基づいて、検索データベースの検索アドレスを生成し、その検索アドレスに登録されたデータが、ビット区分情報に基づいてビット位置が変換され、変換されたデータを検索キーと比較し、比較結果を出力する。
【選択図】図1
Description
本発明は、連想メモリによる検索技術に関し、特にメモリを検索区分で管理する技術に関するものである。
ネットワークプロトコル処理においては、テーブルと呼ばれるデータベースに基づいて検索処理が行われる。代表的な検索処理としてはARPテーブル検索、ソケットテーブル検索、TCPCB検索、ルーティングテーブル検索など複数の検索処理があり、これらの検索にかかるコストは無視できないものとなっている。そのため、専用の検索エンジンと呼ばれるハードウェア(又は専用のプロセッサ)を用いて処理する方式が知られている。検索エンジンに使用されるデバイスはCAM(Content Addressable Memory)と呼ばれる専用メモリデバイスが知られている。CAMは、検索キーを入力すると、検索キーと一致した登録データが格納されているアドレスを出力する特殊なメモリである。登録データを格納しているメモリセル全てを同時に出力し、検索キーと比較するため非常に高速に検索することができる。
上述したように、ネットワークプロトコル処理における検索対象は複数存在しており、CAMを検索対象毎に複数持たせるような構成である場合、回路規模が増大してしまう。このような問題を解決するために、1つのCAM上で複数のプロトコルに対応した検索ができる検索装置が提案されている(例えば、特許文献1参照)。
特許文献1は、プロトコルアドレスのフォーマットがプロトコル毎に異なっているため、各エントリの同一セグメントに同一のフォーマットのデータが格納されているとは限らない。最初の検索によりこの第1セグメントを全て検索することにより、検索対象となるプロトコルが格納されたエントリだけを抽出し、検索対象とすることで複数プロトコルのテーブルを1つのCAM内に実装してCAMの個数削減を実現している。
しかしながら、プロトコル識別子で検索対象のエントリを選択するため、単一のCAMに複数プロトコルの検索データを格納できるが、プロトコルアドレスの最大長のCAMを実装した上で、他のプロトコルにとって不要なビットは未使用ビットとなる。そのため、高価なCAMにおいてビットの無駄が生じてしまう。
このように、従来は、検索に用いるデータベースを無駄に使用してしまうという問題があった。
本発明は、データベースに登録されたデータを検索キーと比較して検索処理を行う検索処理装置であって、
検索すべきデータが登録され、入力されたアドレスに応じて、前記登録されたデータを出力する検索データベースと、
前記検索データベース内のアドレスを区分するアドレス区分情報と、ビット位置を区分するビット区分情報とが登録され、前記登録された情報を出力する検索区分データベースと、
前記検索区分データベースに登録されたデータのうち、前記アドレス区分情報により特定されるアドレス範囲に登録され、かつ、前記ビット区分情報により特定されるビット範囲に登録されたデータを、前記検索キーと比較して比較結果を出力する比較手段と、
を有することを特徴とする。
検索すべきデータが登録され、入力されたアドレスに応じて、前記登録されたデータを出力する検索データベースと、
前記検索データベース内のアドレスを区分するアドレス区分情報と、ビット位置を区分するビット区分情報とが登録され、前記登録された情報を出力する検索区分データベースと、
前記検索区分データベースに登録されたデータのうち、前記アドレス区分情報により特定されるアドレス範囲に登録され、かつ、前記ビット区分情報により特定されるビット範囲に登録されたデータを、前記検索キーと比較して比較結果を出力する比較手段と、
を有することを特徴とする。
本発明によれば、データベースの無駄な使用を削減しつつ柔軟性の高い検索が可能となる。
以下、図面を参照しながら発明を実施するための形態について詳細に説明する。本実施形態では、CAM(Content Addressable Memory)と呼ばれる専用のメモリで構成される検索データベースに登録されたデータを入力された検索キーと比較して検索処理する装置及び方法を説明する。
[第1の実施形態]
まず、第1の実施形態として、検索データベース内を区分情報によって分割し、区分毎に異なる検索対象の検索を行う検索処理方法を、図1乃至図5を用いて説明する。
まず、第1の実施形態として、検索データベース内を区分情報によって分割し、区分毎に異なる検索対象の検索を行う検索処理方法を、図1乃至図5を用いて説明する。
図1は、第1の実施形態における検索処理方法を実現するハードウェア構成例を示す図である。図1において、検索データベース101はSRAMなどのメモリで構成される。検索アドレス生成器102は検索データベース101を検索する際の検索アドレスを生成する。登録データバッファ103は検索データベース101に登録されるデータを一時的に蓄積する。検索区分データベース110は検索データベース101上の検索区分情報を登録する。複数の比較検索器104はそれぞれアドレスレジスタ105、アドレス監視器106、検索キーレジスタ107、比較器108で構成される。
アドレスレジスタ105は検索アドレス生成器102からのアドレス情報と検索データベース101内のアドレス区分情報とに基づいて、比較検索すべきアドレスを保持する。アドレス監視器106は検索アドレス生成器102のアドレスを監視する。検索キーレジスタ107は検索キーと検索種別から検索すべきデータを保持する。比較器108は検索区分データベース110からのビット区分情報に従ってアドレスレジスタ105に保持されたアドレスにおける検索データベース101のデータと検索キーレジスタ107に保持されたデータとを比較する。
ここで、検索データベース101の構成の一例を、図2を用いて説明する。尚、ネットワークプロトコル処理では、ARPテーブル検索、ソケットテーブル検索、ルーティングテーブル検索など、複数の検索処理があり、それぞれの検索対象によって検索キーの幅や検索エントリの深さは異なる。
図2に示すように、検索の種類によって一度の検索に必要なビット幅やテーブルに登録されているデータ量がそれぞれ異なり、各テーブルが記憶されているアドレス配置なども異なることが通常である。第1の実施形態では、図2に示す検索データベース内の構成例を前提に説明する。
検索データベース101が図2に示す構成の場合、検索区分データベース110には、図3に示す区分毎のアドレス区分情報(下限アドレス、上限アドレス)、ビット区分情報(下限ビット、上限ビット)が登録されている。検索データベース101は、図2に示すように、上から下に、0からNまで、アドレスが割り当てられている。それぞれのアドレスには、Mビットのデータが格納可能である。すなわち、検索データベース101には、MビットのデータがN個、格納可能である。例えば、区分A(ソケット検索テーブル)の場合、下限アドレスは0、上限アドレスはn1−1、下限ビットは0、上限ビットはm1−1である。すなわち、ソケット検索テーブルには、m1ビットのソケット情報がn個登録されている。アドレス0からn1−1までに格納されているデータのうち、0ビット目からm1−1ビット目までが、ソケット情報である。他の区分も同様に、検索データベース101上の検索データに対応するように設定される。各区分の情報は検索区分データベース110から出力される。
次に、第1の実施形態における基本的な検索処理を説明する。まず、比較検索器104の検索キーレジスタ107に検索キーと検索種別が入力されると、検索区分データベース110が出力する検索種別と外部から入力される検索種別とが一致するか否かを判定する。判定の結果、一致する場合、検索アドレス生成器102が出力するアドレス情報に基づいて開始アドレス及び終了アドレスと、折り返し元アドレス及び折り返し先アドレスとをアドレスレジスタ105に格納する。アドレスレジスタ105は、開始アドレスレジスタ、終了アドレスレジスタ、折り返し元アドレスレジスタ、折り返し先アドレスレジスタで構成されている。そして、アドレスレジスタ105からアドレス監視器106へアドレスが通知される。
具体的には、同一エントリ内の他の検索が行われていない場合は、検索区分データベース110が出力する下限・上限アドレスをそれぞれアドレスレジスタ105内の開始・終了アドレスレジスタへ格納する。この場合、折り返し元アドレスレジスタ、折り返し先アドレスレジスタには何も格納しない。同一エントリ内に存在する他の検索を行っている場合は、アドレスレジスタ105内の開始アドレスレジスタには現時点の検索アドレス生成器102が生成しているアドレスを格納し、終了アドレスレジスタには現時点のアドレス−1の値を格納する。折り返し元アドレスレジスタには検索区分データベース110から出力される上限アドレスを、折り返し先アドレスレジスタには検索区分データベース110から出力される下限アドレスを格納する。その結果、検索データベース101に登録されたデータのうち、アドレス区分情報(下限アドレス、上限アドレス)により特定されるアドレス範囲に登録されたデータが検索対象となる。この詳細については更に後述する。
アドレス監視器106は検索アドレス生成器102がアドレス生成をしていないことを確認し、検索アドレス生成開始を指示する。これにより、検索アドレス生成器102から検索データベース101へ開始アドレスに始まり、終了アドレスまで継続的にアドレスが与えられる。すなわち、下限アドレスと上限アドレスにより特定されるアドレス範囲に登録されたデータを検索データベース101から読み出す。検索データベース101からは各アドレスに対応する登録データが出力され、比較器108で検索キーとの比較が行われる。このとき、検索データベース101から出力されるビット区分情報(下限ビット、上限ビット)で指定されたビット幅のみの比較が行われる。すなわち、読み出されたデータのうち、ビット区分情報により特定されるビット範囲のデータを、検索キーと比較する。比較した結果が一致した場合は、応答出力に一致情報を出力する。
以上のように、比較器108は、アドレス区分情報により特定されるアドレス範囲に登録され、かつ、ビット区分情報により特定されるビット範囲に登録されたデータを、検索キーと比較して比較結果を出力する。ここで、一検索入力に対して一応答出力が求められている場合には、この検索処理を終了するが、一検索入力に対して複数応答出力が求められている場合には、継続して検索アドレスの生成を行う。このようにして検索データベース101から、終了アドレスまでの出力が完了した時点で、この検索処理が終了となる。
図2に示すように、例えば、アドレス0からn0−1までには、ソケット検索テーブルとBIND検索テーブルが配置されており、検索データベース101の同一アドレスに異なる検索区分のデータを配置することが可能である。このような構成において、検索対象の検索区分を示す情報に基づいて、配置されたデータを検索区分毎に検索する。
ここで、比較検索器104における比較器108の構成の一例を、図4を用いて説明する。比較器108は、図4に示すようにMビット幅の比較が行え、ビット毎に比較マスクを行えるように構成されている。ここで、Mビットは検索データベース101のビット幅Mと一致するものである。有効検索キー生成回路401は入力される検索キーを検索区分データベース110からの比較ビット(下限、上限ビット)情報に従い、有効ビット位置に収まるように変換する。例えば、下限ビットが32で上限ビットが63の場合は、検索キーを32ビットから63ビット目になるようにシフトする。ここで、入力の検索キーはMビットの検索キーの0ビット目から下詰されているものとする。
マスクビット生成回路402は、比較ビット(下限、上限ビット)情報から各ビットのマスク信号を生成する。例えば、下限ビットが32で上限ビットが63の場合は、32から63ビットまでを“0”とし、それ以外のビット全てを“1”として出力する。そして、有効検索キー生成回路401、マスクビット生成回路402から生成される信号に基づきビット毎に比較し、最終的に全ビットのORを取ったものが検索応答(一致、不一致)信号となる。
次に、検索データベース101での検索処理を、図5を用いて説明する。縦軸方向には各比較検索器104の動作状況を示し、横軸は時間を表す。尚、図5に示す例では、2個の比較検索器104−1、104−2が実装されているが、実装される個数はこれだけに限定されるものではない。
まず、時刻#1で検索A、Bが投入されると、比較検索器104−1で“Search A”(ソケット検索)が、比較検索器104−2で“Search B”(BIND検索)が開始される。このとき、2個の比較検索器104−1、104−2はどちらも動作していない。即ち、比較検索器104−1は、検索区分データベースから出力される区分Aのアドレス情報(上限・下限アドレス)に基づき、アドレスレジスタ105内の開始アドレスレジスタに0を、終了アドレスレジスタにn1−1を格納する。また同様に、比較検索器104−2は、検索区分データベースから出力される区分Bのアドレス情報(上限・下限アドレス)に基づき、アドレスレジスタ105内の開始アドレスレジスタに0を、終了アドレスレジスタにn0−1を格納する。折り返し元アドレスレジスタ、折り返し先アドレスレジスタには何も格納しない。
また、求める検索結果の種類として、シングルヒットかマルチヒットのどちらかを予め選択するものとする。シングルヒットとは、検索データベース101内に検索キーと同一のデータが得られた時点で検索を終了する検索手法で、唯一の検索結果を得るための検索である。一方、マルチヒットとは、検索データベース101の与えられた検索範囲に渡って検索し、複数の検索結果を出力することを可能とする検索手法である。これ以降の説明では、全てマルチヒットであることを前提とする。よって、検索結果に依らず、必ず設定されたエントリ数分の検索が行われる。
時刻#3(アドレスはn0−1)でエントリ数の少ない“Search B”の検索が先に終了し、応答Bが出力される。このとき、“Search A”の検索は継続して行われるため、アドレスは更にインクリメントされ続ける。遅れて時刻#4でアドレスがn1−1に到達した時点で“Search A”の検索が終了し、応答Aを返す。“Search A”と“Search B”の検索を行っている間の時刻#2で検索C(ARP検索)が入力される。この例では、比較検索器104が2セットしか実装されていないため、検索Cは“Search A”と“Search B”が終了するまでペンディングとされる。
次に、比較検索器104−1、104−2の検索が時刻#3で終了したため、ペンディングされていた“Search C”が時刻#4で開始される。この時の開始アドレスはn1で、終了アドレスはn3−1である。時刻#5で新たな検索D(ルーティング検索)が入力されるが、このとき、一方の比較検索器104−2が空いているので、即座に“Search D”を開始する。“Search D”の検索区分データベース110から出力される下限アドレスはn1である。この場合、検索アドレス生成器102が出力している現時点のアドレスが下限アドレスを超えている、iのため、“Search D”の開始アドレスレジスタには現時点のアドレスiが格納され、終了アドレスレジスタにはi−1が格納される。同時に、折り返し元アドレスレジスタにn2−1が、折り返し先アドレスレジスタにn1が格納される。
基本的な動作としては、アドレスが折り返し元アドレスに到達したところで、折り返し先アドレスにジャンプし、そこから終了アドレスまでインクリメントされることになる。このようにすることで、区分の途中からでも比較が行えるようになるため、検索の応答性を高めることができる。
時刻#6で検索アドレス生成器102のアドレスがn2−1に到達すると、“Search D”の折り返し元アドレスに到達する。しかし、“Search C”の終了アドレスはn3−1であるため、“Search D”の折り返し先アドレスであるn1にはジャンプできない。引き続き“Search C”の終了アドレスであるn3−1までアドレスが生成される。
時刻#7で“Search C”の検索が終了し、応答Cが出力される。このとき、“Search D”の折り返し先アドレスn1にジャンプし、時刻#8の応答D出力まで検索を続行する。また、時刻#6から時刻#7の間、“Search D”の比較範囲以外のアドレスということで比較が行われないように制御されているものとする。
時刻#8の時点から2個の比較検索器104−1、104−2は空き状態になっているが検索要求がないので、検索アドレスは生成しない。この間を利用して検索データベース101、検索区分データベース110の更新が可能である。
時刻#9で検索E(IPSec SA検索)の検索要求が入り、即座に“Search E”が開始され、時刻#11まで検索継続される。この間の時刻#10に検索区分F(IPSec SP検索)の検索要求が入っている。しかし、検索区分Eと検索区分Fとは、全く異なるアドレス領域(n3からn4−1とn4からn5−1)に配置されているため、比較検索器を複数使用した検索はできない。そのため、時刻#11で“Search E”が終了次第、“Search F”を開始する。最終的に時刻#12で“Serach F”の検索が終了する。
第1の実施形態では、2個の比較検索器を実装する例を説明したが、比較装置の個数を増加させることで、更に同一アドレスに存在する複数の区分の検索を同時に実行することができる。また逆に、低コスト実装を狙い、比較検索器を1つとすることも可能である。この場合、複数の比較対象に対して同時に比較ができないので、検索スループットは低下するが、低コストを実現できる。
また、第1の実施形態では、検索データベースに6つの検索対象を設定したが、もちろんこの限りではない。また同一アドレスに存在する検索対象が最大2つとしたが、この数にも制限はないことは言うまでもない。
更に、第1の実施形態では、マルチヒットを前提に説明を行ったが、検索対象によってはシングルヒット対象のものもある。この場合、必ずしも上限アドレスまで全アドレスを比較する必要はないので、シングルヒットした時点で、当該区分の検索は終了したものとして扱っても構わない。
第1の実施形態によれば、検索データベースに対応する検索区分データベースを設け、区分毎に異なる検索対象の検索を行うことで、メモリ個数と容量の増大を抑制し、安価で、且つ柔軟性の高いデータ検索装置が可能となる。
[第2の実施形態]
次に、図面を参照しながら本発明に係る第2の実施形態を詳細に説明する。第1の実施形態では、区分毎に異なる検索対象を配置して検索処理を行ったが、第2の実施形態では本発明の基本的な概念に基づいた応用例を説明する。
次に、図面を参照しながら本発明に係る第2の実施形態を詳細に説明する。第1の実施形態では、区分毎に異なる検索対象を配置して検索処理を行ったが、第2の実施形態では本発明の基本的な概念に基づいた応用例を説明する。
図6は、第2の実施形態における検索処理方法を実現するハードウェア構成例を示す図である。図1に示す第1の実施形態との相違点は、検索区分データベース120の出力に区分分割情報が追加された点と、検索応答制御部130が追加された点である。
検索応答制御部130は、各比較検索器104からの応答出力と検索区分データベース120から出力される区分分割情報を受け、検索対象毎の検索応答を出力する。検索応答制御部130に入力される応答出力は、あくまで比較検索毎の応答出力であり、検索応答制御部130が出力する応答出力は分割された各区分の応答を合成した最終的な検索応答出力である。
図7は、検索データベース101内の区分の配置例を示す図である。ルーティング検索テーブルは区分D−b0、区分D−b1の2つの区分に分割して配置され、ソケット検索テーブルの横に配置されている。第1の実施形態(図2)におけるルーティングテーブルをビット方向で2分割し、区分D−b0、区分D−b1として配置したものである。また、ARP検索テーブルはC−a0,C−a1,C−a2という3つの区分に分割配置している。このテーブルの場合、エントリ(アドレス)方向に3分割を実施したものである。
図8は、図7に示す検索データベース101に対応する検索区分データベース120の構成の一例を示す図である。区分情報は第1の実施形態と同じように、区分毎にRAMの座標情報が登録されている。検索データベース101で分割配置した区分Cと区分Dとについては分割後の区分として座標が設定される。これに加えて、区分分割情報が登録されている。これは、分割した後の区分番号の全てとその分割の種別を指定するものである。例えば、ARP検索テーブルは区分C−a0、C−a1、C−a2に分割されているので、その分割種別はアドレス分割である(Grp0)。また同様に、ルーティング検索テーブルの場合、区分D−b0,D−b1のグルーピングであり、その分割種別はビット分割である。この分割種別が120検索区分テーブルから出力されることになる。
ここで、第2の実施形態における検索処理を、図9を用いて説明する。図9に示す例では、3個の比較検索器104−1〜104−3が実装され、図7、図8に示す検索区分で検索データが格納されているものとする。
まず、時刻#1で検索Aの要求が入り、検索Aの下限アドレス0と上限アドレスn1−1を比較検索器104−1のアドレスレジスタ105内先頭アドレスレジスタ、終了アドレスレジスタに格納し、“Search A”を開始する。#2で検索Dの要求が入り、空いている比較検索器104−2を用いて検索区分D−b0の検索“Search D-b0”を開始する。検索区分D−b1は実行中のアドレスの外であるので、検索処理の開始はペンディングされる。
時刻#3で検索アドレスは検索区分D−b0の上限アドレスであるn0−1に到達する。このとき、検索区分Aの検索は継続されるので、そのままアドレスをインクリメントする。ここから比較検索器104−2の比較処理は無効になる。これと同時に、検索区分D−b1に開始アドレスと終了アドレスをそれぞれ設定し、比較処理を開始する。時刻#4で検索区分Aと検索区分D−b1の上限アドレスn1−1に到達し、応答Aと応答D−b1を出力する。応答はあくまで比較検索器104毎の応答であり、検索対象となっているソケット検索、ルーティング検索単位の応答ではない。一方、検索区分Aは他の検索区分とグルーピングされているわけではないので、そのまま検索応答Aとして出力する。検索応答Dについては区分D−b0の検索がまだ終了していないため、出力されない。また、アドレスが上限アドレスn1−1に到達すると、比較処理がペンディング状態になっている比較検索器104−2のアドレス生成が再開される。現在のアドレスn1−1から0にジャンプして検索を継続する。
時刻#5で比較検索器104−2の検索が終了し、応答D−b0を出力する。ここで、分割された区分D−b0と区分D−b1の応答が揃い、最終的な検索応答Dを出力する。応答D−b0,D−b1は図8の検索区分データベース120に示すように、ビット分割タイプであるため、D−b0,D−b1の比較結果をANDしたものが最終的な検索結果となる。
次に、時刻#6で検索Cの要求が入り検索が開始される。検索Cの区分は全て同じエントリ内であるため、3個の比較検索器104−1〜104−3を同時に動作させて、比較処理を行うことができる。比較検索器104−1〜104−3の開始アドレスレジスタにn1、終了アドレスレジスタにn2−1を設定し、検索を開始する。そして、時刻#7で3個の検索処理が終了し、それぞれの応答を検索応答制御部130に出力する。ここで、検索Cの分割タイプはアドレス分割であるので、各応答をORすることで、最終的な区分応答Cが生成される。
検索Cのように、検索テーブルをアドレスで3分割し、ビット方向に配置し3個の比較検索器104−1〜104−3を使用することで、3倍の検索応答性を実現できることになる。また、検索Dのように、検索テーブルをビットで2分割し、アドレス方向に配置することで、検索応答性は1/2に低下するものの、RAM領域を効率的に使用できるようになる。同じように、検索Cの場合、比較検索器が1つしか無い場合でも、検索応答性は落ちるものの、RAM領域を効率的に使用できるようになる。
第2の実施形態では、図7に示す検索区分C、Dは近接させて配置した例を示したが、これについての制限はなく、離れたアドレス、ビットに配置することも可能である。この場合、検索応答性は落ちる可能性があるものの、局所的に空いたRAMスペースを合成して1つの検索対象テーブルを生成することも可能となることは言うまでもない。
尚、上述した実施形態の機能を実現するべく各種の装置を動作させるように、各種装置と接続された装置或いはシステム内のコンピュータに対して、上述した実施形態の機能を実現するためのソフトウェアのプログラムコードを供給する。これにより、そのシステム或いは装置のコンピュータ(プロセッサ)に格納されたプログラムに従って、各種装置を動作させることによって実施したものも、本発明の範疇に含まれる。
Claims (5)
- データベースに登録されたデータを検索キーと比較して検索処理を行う検索処理装置であって、
検索すべきデータが登録され、入力されたアドレスに応じて、前記登録されたデータを出力する検索データベースと、
前記検索データベース内のアドレスを区分するアドレス区分情報と、ビット位置を区分するビット区分情報とが登録され、前記登録された情報を出力する検索区分データベースと、
前記検索データベースに登録されたデータのうち、前記アドレス区分情報により特定されるアドレス範囲に登録され、かつ、前記ビット区分情報により特定されるビット範囲に登録されたデータを、前記検索キーと比較して比較結果を出力する比較手段と、
を有することを特徴とする検索処理装置。 - 前記検索データベースの同一アドレスに異なる検索区分のデータを配置し、前記検索区分を示す情報に基づいて前記配置されたデータを検索区分毎に検索することを特徴とする請求項1に記載の検索処理装置。
- 前記比較手段を少なくとも2つ有し、同一の検索区分に属する複数の検索を同時に行うことを特徴とする請求項1又は2に記載の検索処理装置。
- データベースに登録されたデータを検索キーと比較して検索処理を行う検索処理装置における検索処理方法であって、
検索すべきデータが登録された検索データベース内のアドレスを区分するアドレス区分情報により特定されるアドレス範囲に登録されたデータを前記検索データベースから読み出す工程と、
読み出されたデータのうち、前記検索すべきデータが登録された検索データベース内のビット区分情報により特定されるビット範囲のデータを、前記検索キーと比較して比較結果を出力する工程と、
を有することを特徴とする検索処理方法。 - コンピュータを請求項1乃至3の何れか1項に記載の検索処理装置の各手段として機能させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009143665A JP2011002910A (ja) | 2009-06-16 | 2009-06-16 | 検索処理装置及び検索処理方法 |
US12/782,340 US20100318560A1 (en) | 2009-06-16 | 2010-05-18 | Search processor and search processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009143665A JP2011002910A (ja) | 2009-06-16 | 2009-06-16 | 検索処理装置及び検索処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011002910A true JP2011002910A (ja) | 2011-01-06 |
JP2011002910A5 JP2011002910A5 (ja) | 2012-08-02 |
Family
ID=43307269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009143665A Abandoned JP2011002910A (ja) | 2009-06-16 | 2009-06-16 | 検索処理装置及び検索処理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20100318560A1 (ja) |
JP (1) | JP2011002910A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107919999A (zh) * | 2017-11-21 | 2018-04-17 | 天津英田视讯科技有限公司 | 一种局域网内不同网段数字摄像机发现及连接方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514105A (zh) * | 2012-06-15 | 2014-01-15 | 上海芯豪微电子有限公司 | 信息处理系统、信息处理方法及存储系统 |
US9979648B1 (en) * | 2015-12-28 | 2018-05-22 | Amazon Technologies, Inc. | Increasing entropy across routing table segments |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7495669B2 (en) * | 2002-12-26 | 2009-02-24 | Canon Kabushiki Kaisha | Image processing apparatus and image processing method |
DE60327736D1 (de) * | 2002-12-26 | 2009-07-09 | Canon Kk | Bildverarbeitungsapparatur und Bildverarbeitungsverfahren |
US7185172B1 (en) * | 2003-10-31 | 2007-02-27 | Integrated Device Technology, Inc. | CAM-based search engine devices having index translation capability |
US7251707B1 (en) * | 2004-02-06 | 2007-07-31 | Netlogic Microsystems, Inc. | Content based content addressable memory block enabling using search key |
-
2009
- 2009-06-16 JP JP2009143665A patent/JP2011002910A/ja not_active Abandoned
-
2010
- 2010-05-18 US US12/782,340 patent/US20100318560A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107919999A (zh) * | 2017-11-21 | 2018-04-17 | 天津英田视讯科技有限公司 | 一种局域网内不同网段数字摄像机发现及连接方法 |
Also Published As
Publication number | Publication date |
---|---|
US20100318560A1 (en) | 2010-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4727594B2 (ja) | コンテンツ・ベースの情報検索アーキテクチャー | |
US6434144B1 (en) | Multi-level table lookup | |
JP5466210B2 (ja) | 表検索装置、表検索方法、及び、表検索システム | |
US20050243827A1 (en) | Lookup engine | |
Bando et al. | Flashtrie: Hash-based prefix-compressed trie for IP route lookup beyond 100Gbps | |
US9871727B2 (en) | Routing lookup method and device and method for constructing B-tree structure | |
US9729447B2 (en) | Apparatus and method for processing alternately configured longest prefix match tables | |
US20140358886A1 (en) | Internal search engines architecture | |
US8914574B2 (en) | Content addressable memory and method of searching data thereof | |
CN101620623A (zh) | 内容可寻址存储器表项管理方法和装置 | |
US9485179B2 (en) | Apparatus and method for scalable and flexible table search in a network switch | |
CN108268216A (zh) | 数据处理方法、装置及服务器 | |
US8599853B2 (en) | System and method for an exact match search using pointer based pipelined multibit trie traversal technique | |
US20030163442A1 (en) | FFS search and edit pipline separation | |
JP2006262336A (ja) | フレーム転送方法及び装置 | |
JP2011002910A (ja) | 検索処理装置及び検索処理方法 | |
CN113377689B (zh) | 一种路由表项查找、存储方法及网络芯片 | |
JP2006246488A (ja) | ネットワーク・ルータ、アドレス処理方法及びコンピュータ・プログラム | |
CN109039911B (zh) | 一种基于hash查找方式共享ram的方法及系统 | |
US10795580B2 (en) | Content addressable memory system | |
JP2004046988A (ja) | 連想メモリ装置及びそれを用いた中継装置 | |
US20050135135A1 (en) | Content addressable memory for CIDR address searches | |
US8199756B2 (en) | Forwarding apparatus, forwarding method, and computer product | |
US8117384B2 (en) | Searching a content addressable memory with modifiable comparands | |
JP2010211389A (ja) | プロトコル処理装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120614 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120614 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20130612 |