JP3935880B2 - ネットワーク・プロセッサおよびコンピュータ・システム用ハイブリッド・サーチ・メモリ - Google Patents
ネットワーク・プロセッサおよびコンピュータ・システム用ハイブリッド・サーチ・メモリ Download PDFInfo
- Publication number
- JP3935880B2 JP3935880B2 JP2003555385A JP2003555385A JP3935880B2 JP 3935880 B2 JP3935880 B2 JP 3935880B2 JP 2003555385 A JP2003555385 A JP 2003555385A JP 2003555385 A JP2003555385 A JP 2003555385A JP 3935880 B2 JP3935880 B2 JP 3935880B2
- Authority
- JP
- Japan
- Prior art keywords
- cam
- leaf
- entry
- search
- tree
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims description 29
- 230000009471 action Effects 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 description 25
- 230000032683 aging Effects 0.000 description 13
- 238000012217 deletion Methods 0.000 description 10
- 230000037430 deletion Effects 0.000 description 10
- 241000712062 Patricia Species 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000000875 corresponding effect Effects 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000002596 correlated effect Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- AGCPZMJBXSCWQY-UHFFFAOYSA-N 1,1,2,3,4-pentachlorobutane Chemical compound ClCC(Cl)C(Cl)C(Cl)Cl AGCPZMJBXSCWQY-UHFFFAOYSA-N 0.000 description 1
- 208000036398 Kyphoscoliotic Ehlers-Danlos syndrome due to lysyl hydroxylase 1 deficiency Diseases 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 208000032197 kyphoscoliotic type 1 Ehlers-Danlos syndrome Diseases 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、コンピュータ・データベース構造に関し、より詳細には、ネットワーク・プロセッサ・データベース構造に関する。
情報配布のためのコンピュータ・ネットワークの使用は、従来技術において周知である。従来のコンピュータ・ネットワークは、通信インフラストラクチャによって相互接続された複数の端末を含む。このインフラストラクチャには、交換機、ルータ、ネットワーク・プロセッサおよびインターネットや、イントラネットと呼ばれる専用ネットワークなどの伝送設備が含まれる。経路指定その他の決定は、通常、パケット内の情報に基づいて交換機で行われる。
この決定を支援するために、各ネットワーク・プロセッサ交換機その他のデバイス(device)はデータベースおよび検索(lookup)方法を備える。パケットを受信すると、交換機またはネットワーク・プロセッサ制御機構あるいはその両方が、そのパケットをデータベースに相関付け、事前に記憶された情報に基づいてそのパケットを処理する。データベース検索方法の一例が米国特許第5,414,704号に記載されている。
この決定が行われる速度は、ネットワークの有効性にとって非常に重大である。ネットワークの有効性を測定する1つの基準は、それが媒体速度で情報を処理する(すなわち決定を行う)能力である。
米国特許第5,414,704号
本発明は、以下で述べるように、制御機構がパケットをデータベースに相関付ける速度を向上させる。
米国特許第5,414,704号には、プログラム可能ハッシュ法、二分探索法、および小型連想記憶メモリ(CAM)の組み合わせを使用するデータベースのサーチ方法が開示されている。これは、平均2回の読取り、最悪の場合は4回の読取りを必要とする。
第1の態様によれば、本発明は、サーチ・キーからのNビット(Nは整数)を、少なくとも1つのエントリを持つダイレクト・テーブルおよび前記1つのエントリに動作可能なように結合された複数のノードを含むツリー構造を含むデータ構造への指標として使用する動作と、そのツリー構造をサーチするときに横断されるノード数のカウントである閾値を設定する動作と、サーチ・キーからの選択ビットを使用して閾値が満たされるまで前記ツリー構造を横断する動作と、閾値が満たされたことに応答して、そのサーチ・キーに関連して講ずべき処置を得るために連想記憶メモリ(CAM)内の少なくとも1つのエントリから情報を読み取る動作と、エントリが所与の期間使用されていないときにCAMからそのエントリを削除する動作とを含むサーチ方法を提供する。
好ましくは、この方法は、閾値が満たされたことに応答して、サーチ・キーの選択ビット、およびそのキーに関連して講ずべき処置をそこから見つけることのできる情報を含む少なくとも1つのエントリを、連想記憶メモリに記憶するステップも含む。
好ましくは、このツリー構造は、選択されたノードに動作可能なように結合された複数のノードおよびリーフを含む。好ましくは、このツリー構造は、選択されたノードに位置決めされた、サーチ情報を運ぶパターン・サーチ制御ブロック(PSCB)をさらに含む。
例えば、Nビットは、宛先MACアドレスの先頭16ビットを含むことができ、さらに選択ビットは、その宛先MACアドレスの残り32ビットを含むことができる。
任意選択で、サーチ・キーは、データ・パケットの一部を含む。
任意選択で、読み取りのステップは、NビットをCAMへの指標として使用するステップをさらに含む。
第2の態様によれば、本発明は、複数のプロトコル・プロセッサを含む組み込みプロセッサ複合体と、プロセッサ複合体に動作可能なように結合された制御点プロセッサと、各プロトコル・プロセッサにアクセス可能であり、高速パターン・サーチ、データ操作およびフレーム構文解析を提供する複数のハードウェア・アクセラレータ・コプロセッサと、ダイレクト・テーブル、および相互に動作可能なように連鎖するノードおよびリーフを持つツリー構造を含むデータ構造を記憶する、プロセッサ複合体に動作可能なように結合された少なくとも1つのメモリ・デバイスと、プロセッサ複合体に動作可能なように結合され、ツリー・サーチ・ルーチンの間にアクセスされるノードの最大数を表す値を記憶するメモリ位置と、プロセッサ複合体に動作可能なように結合され、パケットに関連して講ずべき処置に関する情報を含むリーフが記憶された位置を識別するポインタを記憶する連想記憶メモリ(CAM)とを含み、少なくとも1つのコプロセッサが、サーチ・キーからのNビット(Nは整数)を、ダイレクト・テーブルを含むデータ構造への指標として使用する方法ステップと、そのサーチ・キーからの選択ビットを使用してアクセスされるノードの最大数が満たされるまで前記ツリー構造を横断する方法ステップと、サーチ・キーの選択ビットを含む少なくとも1つのエントリ、およびパケットに関連して講ずべき処置に関する情報を含むリーフが記憶された位置を識別するポインタをCAMに記憶する方法ステップと、サーチ・キーに関連して講ずべき処置を得るためにCAM内の少なくとも1つのエントリから情報を読み取る方法ステップと、エントリが所与の期間使用されていないときにそれをCAMから削除する方法ステップとを実施するように動作する装置を提供する。
任意選択で、この装置は、プロセッサ複合体に動作可能なように結合され、ツリー・サーチ・ルーチンの間にアクセスされるノードの最大数を表す値を記憶するメモリ位置と、プロセッサ複合体に動作可能なように結合され、リーフが記憶された位置を識別するポインタを記憶する連想記憶メモリ(CAM)とをさらに含む。
好ましくは、制御点プロセッサは、データ構造を調整する情報を含むフレームを生成し、転送するようにプログラムされる。
第3の態様によれば、本発明は、少なくとも2つのエントリを持つダイレクト・テーブルと、それら少なくとも2つのエントリに動作可能なように結合され、相互に動作可能なように連鎖する複数のノードおよびリーフを持つツリー構造と、前記ツリー構造の探索(walk)中にアクセスされるノードの最大数を示す閾値を記憶する記憶と含むデータ構造を提供する。
好ましくは、このデータ構造は、リーフが閾値の上のノードに接続されている場合にはそのリーフ情報が記憶された連想記憶メモリ(CAM)をさらに含む。
本発明の一実施形態は、例えば、データ・パケットから取り出されたキーを提供するプロセッサと、そのキーを使用して、閾値に達するまでツリー構造を探索するためのツリー・ウォーク論理(tree walk logic)と、そのキーを使用してCAMをサーチするCAM制御機構と、ツリー・ウォーク論理またはCAM制御機構からの最初の使用可能な結果を使用してそのデータ・パケットに関連して講ずべき処置を決定する制御機構とを含むシステムを提供することができるであろう。
本発明の別の実施形態は、例えば、データ・パケットから取り出されたキーを提供する動作と、前記キーをツリー・ウォーク論理で使用して閾値に達するまでツリー構造をサーチする動作と、前記キーをCAM制御機構で使用してCAMをサーチする動作と、動作(b)または(c)からの最初の結果を使用してデータ・パケットに関連して講ずべき処置を決定する動作とを含むサーチ方法を提供することができるであろう。
したがって、本発明は、ダイレクト・テーブル(DT)、パトリシア・ツリー構造および連想記憶メモリ(CAM)を含むメモリ構造を使用してデータベース情報を記憶する。このメモリ構造およびサーチ方法は、パケットをネットワーク・プロセッサ内のデータベースに相関付けることに伴う待ち時間を短縮する。
好ましくは、データベース構造は、複数のエントリに区分されたダイレクト・テーブル(DT)を含む。各エントリは、「パターン・サーチ制御ブロック(PSCB)」と呼ばれる、リーフおよび複数のノードを持つパトリシア・ツリーに関連付けられる。パケットの一部に関連して講ずべき処置は、DT内のエントリに合致する「キー」と呼ばれ、そのリーフに記述される。リーフに到達するには、ツリーを探索する必要がある(以下で詳細を述べる)。
一般に、待ち時間は、DT内のエントリとリーフとを隔てるPSCBの数によって決定される。PSCBの数が大きいほど、そのリーフ内の情報にアクセスするのにかかる時間が長くなり、PSCBの数が少ないほど、情報がより迅速に得られる。ツリーのリーフに向かって各ノードにアクセスするプロセスは、「ツリー・ウォーク」、「ツリーの探索(ウォーキング)」などと呼ばれる。
任意選択で、1つのテーブル・エントリと関連するリーフの間で横断されるPSCBの数を制限する閾値が設定される。その後、CAMは、フレームに関連して講ずべき処置を含むリーフが位置するアドレスを記憶する。リーフにアクセスすることによって、フレームに関連して講ずべき処置が得られる。
データ構造は、ツリーのリーフを付加し、または削除し、あるいはその両方を行うことによって維持することができる。この付加または削除あるいはその両方によってPSCBの数を増減させることができる。データベース調整を補うために、CAM経時処理機構(CAM aging mechanism)によってCAMに適当な削除または付加あるいはその両方が行われる。
本発明の一利点は、本発明の教示によるブースタCAMまたは閾値あるいはその両方を援用することによって、メモリ・ベースの検索論理システムの待ち時間が制限される(短縮される)ことである。例えば、この閾値は、個々のサーチの間に横断することのできるPSCBの数に限度を設定する。
別の利点は、CAMを使用して選択されたリーフに関連する情報を追跡し、それ以外のリーフには(以下で述べる)通常の「ツリー・ウォーク」によってアクセスする場合、大規模なパトリシア・ツリーをより低コストで実装できることである。
本発明の別の利点は、本発明が、データ構造内で大規模なパトリシア・ツリーを実装するための、比較的低コストで待ち時間の短い解決法を提供することである。本発明以前には、大規模なパトリシア・ツリー・データ構造のサーチに伴う長い待ち時間が原因で、ある種の設計では大規模パトリシア・ツリー・データ構造が許容されなかった。
次に本発明を、一例として、添付の図面に示す本発明の好ましい一実施形態を参照して説明する。
本明細書で説明する本発明は、任意nコンピュータ・データベース・システムで使用することができる。本発明は、ネットワーク・プロセッサ(NP)で適切に働き、したがって、以下ではその環境で説明する。
図1に、本発明の好ましい実施形態によるブースタCAMシステム15を含むネットワーク・プロセッサのアーキテクチャを示す。ブースタCAMシステム15は、通信媒体15aによって組み込みプロセッサ複合体(EPC)12に結合される。単一チップとしても複数のチップとしても実装できるこのネットワーク・プロセッサは、イーサネット(R)・パケットやIP over SONET(POS)を含む物理層デバイス26、PMM入り(PMM-Ingress)多重化MAC22、および入りデータ記憶42および入りスイッチ・インターフェース18を含むエンキュー・デキュー・スケジューリング(EDS)14を含む。出口側では、このネットワーク・プロセッサは、出スイッチ・インターフェース20、エンキュー・デキュー・スケジューリング16、および出データ記憶44を含む。
さらに図1を参照すると、組み込みプロセッサ複合体(EPC)12は、通信媒体を介して入りEDSおよび出EDSに結合される。組み込みプロセッサ複合体には、内蔵S−RAM28、D−RAM32および外付けS−RAM30を含む複数の異なる記憶モジュールが接続される。組み込みプロセッサ複合体には組み込みPCプロセッサ34が結合される。PCIバスは外部から組み込みプロセッサ34へのアクセスを提供する。図1ではプロセッサ34は組み込まれるものとして示されているが、代替の好ましい一実施形態として、このプロセッサが外付けとして提供され、物理層デバイスを介してネットワーク・プロセッサに結合されるものもある。以下で説明するように、本発明のデータ構造は、PowerPC34で生成され、記憶モジュールにダウンロードされる。簡略にするために、以下では、本発明に密接に関連するネットワーク・プロセッサの要素および機能だけを説明する。このネットワーク・プロセッサは、特にイーサネット(R)・パケットまたはIP over SONETあるいはその両方に対応するプログラム可能な交換/経路指定システムであると言えば十分であろう。PowerPC34は、以下では制御点(CP)と呼ばれ、図1に示すように組み込むこともでき、代替の実施形態では、外付けで、物理層デバイス26また制御および管理支援を提供する他の適当な機構を介してプロセッサに接続することもできる。この組み込みプロセッサ複合体は、処理能力を提供する複数の並列プロトコル・プロセッサを含む。各プロトコル・プロセッサは、パターン・サーチ、データ操作、内部データ管理、フレーム構文解析、フィルタリング機能のためのデータ事前取り出しを提供するコプロセッサにアクセスすることができる。
本発明は、具体的には、ネットワーク・プロセッサのフィルタリング機能に関連し、以下では、このフィルタリングまたは分類プロセスで使用されるデバイスだけについて説明する。これらのデバイスには、コプロセッサを備える組み込みプロセッサ複合体、外付けまたは組み込みで提供される汎用プロセッサであるCP34、ブースタCAMシステム15、および本発明と密接に関連するデータ・パターンが記憶されるメモリが含まれる。以下でより詳細に説明するように、コプロセッサは、パケットの各部分を、ネットワーク・プロセッサ・メモリに記憶されたデータ構造に相関付け、そのパケットに関連して講ずべき処置を記述する情報を取り出す。ブースタCAMシステムは、メモリからこの決定が取り出される速度を加速する。
図2に、組み込みプロセッサ複合体の例示的一実施形態を示す。これは、約2128MIPSの副次処理能力を提供する複数のプロトコル・プロセッサを含む。各プロトコル・プロセッサ40は、3段階パイプライン(取り出し、復号化および実行)汎用レジスタ、専用レジスタ、8命令キャッシュ(eight instruction cache)、専用算術論理演算装置(ALU)およびすべてが133MHzで動作するコプロセッサを含む。プロトコル・プロセッサのうち少なくとも2つは専用である。1つは、誘導フレーム(guidedframe)・ハンドラと呼ばれ、制御プロセッサからネットワーク・プロセッサ内の他のエンティティに情報を搬送する誘導フレームを処理するためのものであり、1つは、汎用ツリー・ハンドラと呼ばれ、制御されたメモリ内で検索データを構築すると共に、パケットに関連してどの処置を講ずべきか決定するためにそのメモリをサーチするためのものである。
図3に、プロトコル・プロセッサ40の例示的一実施形態を示す。プロトコル・プロセッサ40は、汎用レジスタ(GPR)および算術論理演算装置(ALU)を備えるCLP(コア言語プロセッサ(core language processor))72を含む。チェックサム・コプロセッサ62、データ・ストア(DS)コプロセッサ64、エンキュー・コプロセッサ66、WEBコプロセッサ68およびツリー・サーチ・エンジン(TSE)コプロセッサ70は独立のバスを介してCLPに結合される。
チェックサム・コプロセッサ62はヘッダ・チェックサムを計算する。
データ・ストア(DS)コプロセッサ64は、フレーム・バッファ・メモリ42、44(入り方向および出方向)をインターフェースして直接メモリ・アクセス(DMA)機能を提供する。
エンキュー・コプロセッサ66は、256ビット作業レジスタへのアクセスを制御し、キー・フレーム・パラメータを含む。このコプロセッサは完了ユニット46(図1および図2)とのインターフェースを提供してフレームをスイッチおよび宛先ポート待ち行列に入れる。
WEBコプロセッサは、内部レジスタ、カウンタおよびデバッガ統計収集用メモリへのすべてのプロトコル・プロセッサ・アクセスを提供する。
ツリー・サーチ・エンジン(TSE)コプロセッサ70は、プロトコル・プロセッサと並列に動作し、(メモリREAD、WRITE、READ/WRITEを含む)ツリー・サーチ命令、メモリ範囲チェックを実施する。また、TSEコプロセッサは、パトリシア・ツリー構造に記憶されたデータベースに対してパケットのサーチを行うと共に、本発明の教示によるブースタCAMへのアクセスも行う。代替の一実施形態では、論理を使用してCAM内の情報のコピーまたはそこからの情報の削除、あるいはその両方を行うこともできる。
図1および図2に戻ると、図示のように組み込み、あるいは物理層デバイス26を介してネットワーク・プロセッサに接続することのできる制御点プロセッサ34は、ネットワーク・プロセッサ全体の管理を提供する。このために、(以下で説明する)データ構造が汎用プロセッサで生成され、メモリにダウンロードされる。リーフの削除や付加などの更新は、前述の誘導セルを使用して組み込みプロセッサ複合体との間で制御情報をやりとりするCPプロセッサ34を介して実施される。組み込みプロセッサ複合体のうちの選択されたものがそれに関連するツリー・サーチ・エンジンを使用してそれぞれの記憶およびブースタCAMシステム15とやりとりする。
図4から図14に、本発明の教示による様々なデータ構造を示す。これらのデータ構造を使用して特許請求される発明をさらに説明する。
図4にプロトコル・プロセッサ10のメモリに記憶されたデータ構造を表す図を示す。このデータ構造は、複数のエントリを持つダイレクト・テーブル(DT)を含み、その1つのエントリだけが横線で挟まれた領域として示され、それがパターン・サーチ制御ブロック(PSCB)と呼ばれる複数のノードを持つパトリシア・ツリー構造に接続されている。各PSCBは、経路指定決定情報を含み、1つまたは複数のリーフに接続される。図4にそのうちの5つを示す。これらのリーフに含まれるのは、このツリー構造に記憶された情報に対して相関付けられているパケットに関連して行うべき決定または処置である。前述のように、この相関付けは、ピコ命令またはピコ・コードを実行するピコプロセッサ(コプロセッサ)によって実施されることになるが、他の手段によって実施することもできる。
図4をさらに参照すると、各ツリー構造にCAMコピー閾値が関連付けられている。このCAMコピー閾値(縦線で示す)は、システムに記憶された、リーフに到達するために横断することのできるPSCGの最大数を示す数である。横断されるノード数がCAMコピー閾値を超えると、相関機構(コプロセッサまたはハード)がCAMにアクセスしてそのリーフに関連する情報を取得する。普通、リーフのアドレスは、そのリーフ内の情報ではなくCAMに記憶される。リーフが位置するアドレスだけを記憶することによって、CAM内のスペースが保たれる。CAMが非常に高速で、低密度で、高価な記憶機構であるため、CAM内のスペースは貴重である。図4〜図14で、「CAMコピー閾値」と表示された破線は、システムのメモリに記憶された閾値を図示したものである。ダイレクト・テーブルに記憶された情報は、データ構造に相関付けられているパケット内の情報の複製である。
次に図5を見ると、データ・パターンまたは構造に相関付けられるパケットの宛先アドレス(DA)が示されている。このDAアドレスはA部およびB部に区分される。A部はダイレクト・テーブル内で指標として使用され、B部はツリーの探索(ウォーキング)に使用される。この適用例で使用されるように、ツリーを探索するとは、PSCBにアクセスし、あるPSCBに記憶された情報を使用して次のPSCBに進むことを意味する。このプロセスはリーフに到達するまで続けられる。リーフは、パケットに関連して講ずべき処置を含む情報を記憶する。好ましい一実施形態では、この宛先アドレスは、48ビットMACアドレスである。Aと表示された最初の16ビットはダイレクト・テーブルへのアクセスに使用され、残りの32ビットはそのエントリに関連するツリーの探索に使用される。より詳細には、MAC宛先アドレスの最初の16ビットはDT内の各エントリと比較される。この最初の16ビットと1つのエントリの間で一致が見つかった場合は、それ以外の32ビットのうちの選択されたビットを使用して、関連するリーフに到達するまでツリーを探索する。ハッシュ手順を使用してDTおよびそのDTへのエントリをセットアップすることもできることに留意すべきである。ハッシュ手順は当分野では周知であり、以下ではこれ以上説明しない。
パケット内の他のエンティティを使用してダイレクト・テーブルにアクセスし、そのエントリに関連するツリーを探索することもできることに留意すべきである。例を挙げると、データ・テーブル内の各エントリは、フレームのA部と相関するはずである。ピコ・コードを実行するコプロセッサは、データ・テーブルを個々のパケットのうちの16ビットに相関付ける。データ・テーブル内の1つのエントリがそのテーブル内のエントリに一致する場合は、残り32ビットを使用して以下のようにツリーを探索する。残り32ビット中の有効ビットをPCB1に対して突き合わせる。ビットが論理0の場合は、PSCBに0で記憶された処置を実施する。ビットが論理1の場合は、PSCBに1で記憶された処置を実施する。基本的に、PSCB内の情報は、PSCB3に至る「X」と表示された経路に沿ってツリーを探索するか、それともPSCB2に至る「Y」と表示された経路に沿ってツリーを探索するかを指図する。PSCB2は、リーフ2またはリーフ1にある情報を指し示す情報を持つはずである。「X」経路を探索する場合、次のノードはPSCB3、次いでPSCB4になるはずである。この例では、閾値は3に設定され、すべてのリーフがこの閾値の下に位置しているので、ブースタCAMは使用されないことになる。
次に図15を見ると、ブースタCAMが図示されている。このCAMは、CAMに情報を書き込むと共にCAM内の情報の計時処理(削除)を行う機構を含む既製品である。このCAMは従来技術で周知であり、したがって、本明細書では詳細には論じない。CAMは複数のエントリを持つと言えば十分であろう。その1つを15Bに示す。本発明のために、CAMを15C部と15D部に区分する。15C部には、MACデータ・アドレスのA+B部(図5)が入れられ、15D部にはツリー構造からのリーフの位置アドレス(LA)が記録される。動作に際して、パケットの宛先アドレスのビット32〜ビット48がブースタCAMに記憶され、ブースタCAMシステム15のブースタCAMにアクセスするための指標としても使用される。ブースタCAMの15D部内の関連するリーフ・アドレスが読み出され、そのリーフ・アドレスに記憶された情報へのアクセスに使用される。次に図4を見ると、ブースタCAMの使用は図4のデータ構造には適用できないはずである。というのは、図4の各リーフは、CAMコピー閾値の左側のPSCBに接続されており、これはPSCBが設定閾値より下にあることを示すからである。次に、リーフが閾値より上にあるPSCBに接続されているためにCAMが使用されることになる状態について論じる。ツリーにリーフが付加されると、いくつかの状況が起こり得る。
A)リーフが閾値の上(すなわちCAMコピー閾値の右側)にあるノードに挿入される。この状況では、挿入はCAM内のリーフのコピーをトリガすることになるサーチを必要とする。図6はそうした状況の一例である。図6では閾値は3に設定される。リーフ6が挿入され、4つのノード(すなわちPSCB1、PSCB3、PSCB4、PSCB5)を経た後で初めてそこに到達する。挿入時に、リーフ6のアドレスはCAMにコピーされる。ここでリーフ5は閾値の上にあるが、これは、このリーフを必要とするトラフィックがない場合は、CAMにコピーされない。
B)別の状況が、リーフが閾値の下に挿入され、閾値を超えるリーフを生じない場合である。この場合、CAM内容に関しては何も変更されない。
C)別の状態が、リーフは閾値の下に挿入されるが、他の1つまたは複数のリーフが閾値を超え、またはその外側になる場合である。この場合、閾値を超えたどのリーフも直ぐにはCAMにコピーされない。その代わり、そのリーフは、そこに通常の検索によって到達した時点で、すなわちそれが実際に使用されるときにはじめてコピーされる。したがって、CAMは、現在のネットワーク・トラフィックに必要とされる「有用な」リーフだけを含む。
D)図7に、今度はリーフ5およびリーフ6が検索時にCAMにコピーされる状況を示す。図6を参照して、リーフ6がCAMにコピーされたときに、リーフ5はトラフィックに必要とされなかったのでコピーされなかったことを想起する必要がある。しかし、それは、必要とされればすぐにCAMにコピーされる。これもやはり、CAMが高価なタイプの記憶であるためにCAMリソースを保持するための技法である。
E)図8に、3つのリーフ、すなわちリーフ5、リーフ6、リーフ7がCAMにコピーされる状況を示す。リーフ7が挿入されるのは、5つのPSCB(閾値より上=3)を経た後でそこに到達するからである。これはCAMにコピーされる。
F)図9に、CAMからリーフ6のアドレスが削除される状況を示す。この削除はCAM経時処理機構によって実行される。これが活動化されるのは、リーフ6が、所与の期間どのトラフィックによっても使用されていないからである。
G)図10に、リーフ6が検索時にCAMに再コピーされる状況を示す。図9では、リーフ6は、トラフィックがその使用を必要としなかったために削除された。図10では、今度はトラフィックがリーフ6を再度必要としている。したがって、それはCAMに再コピーされ、しかるべくマークされる。これらの例は、経時処理機構が、リーフ内の情報の使用または不使用に基づいて周期的にCAMからリーフ情報を削除することを示すことに留意すべきである。
H)以上、ツリーにリーフを付加するときに存在する状態について論じてきた。次に、ツリーからリーフを削除するときに存在する状態について論じる。ツリーからのリーフの削除は、経時処理または制御点動作が原因でトリガされ得る。経時現象は、リーフが一定期間使用されず、経時処理機構がそれを記憶から削除するときに発生する。制御点削除は、制御点にある汎用プロセッサが、何らかの理由で、記憶からリーフを削除すべきであると決定したときに発生する。経時による削除または制御点による削除のどちらの場合にも、そのリーフが論理1に設定されたコピー済みビットを持つ場合には、それに対応するエントリがCAMから除去される。
I)このリーフが0に設定されたコピー済みビットを持つ場合には、CAM内容は変更されない。リーフを削除した結果、閾値より上にあった他のリーフが、リーフが削除されると閾値の下に戻ることがある。これらのリーフが以前にCAMにコピーされていた場合は、それらはCAM経時処理機構によってCAMから削除される。この経時処理のタイムアウトは、通常、ツリーの経時処理より短い。これによって、検索でより頻繁に使用されるリーフによるCAMエントリの効率的な再利用が可能になる。CAM経時処理によってCAMエントリが削除されると、検索でそこに到達したときに、それに対応するリーフがCAMに再コピーされる。その検索だけが閾値より長い存続期間を有し、それに続く検索はそのCAMコピーを有利に利用することになる。
J)図11に、リーフ5がツリーから削除される状況を示す。この削除は、制御点プロセッサからの、またはツリー経時処理機構による明示的削除処置に基づくものであり得る。この状況では、CAMコピーも削除される。リーフ6およびリーフ7のCAMコピーは、閾値より上にあるPSCB6に接続されているため残存することに留意すべきである。
K)図12に、リーフ4が、明示的削除処置またはツリー経時処理によってツリーから削除される状況を示す。リーフ4のCAMコピーもCAMから削除される。リーフ6およびリーフ7は閾値の下に戻るが、それらのCAMコピーはこのときには削除されないことに留意すべきである。
L)図13に、以前にCAMに記録されたリーフ7が、CAM経時処理機構によって今度は除去される例を示す。この除去がトリガされるのは、リーフ7が、所与の期間どのトラフィックによっても使用されていないからである。
M)図14では、リーフ6は所与の期間使用されておらず、CAM経時処理機構はこれをCAMから削除する。
図16に本発明に教示によるハイブリッド検索機構の構成図を示す。このハイブリッド検索機構は、CLP(コア言語プロセッサ)72、ツリー・サーチ・エンジン(TSE)70、記憶30(S−RAM、DDRAMなど)およびCAM15を含む。記憶30には前述のツリー構造が記憶される。CAMには前述のCAM情報が記憶される。
TSE70は、ツリー・ウォーク論理151、CAM制御機構152、およびメモリ・アービタ153を含む。TSEはCLP72、S−RAM、D−RAMその他の任意の適当なメモリである記憶30、およびCAM15に接続される。記憶は、前述検索データ構造(DT、PSDB、リーフ)を記憶する。CAMは、前述したようなキーの動的コピーを含む。
CLP72は、フレームから生成された、サーチすべきキーをTSEに与える。メモリ・アービタ153は、このキーを、ツリー・ウォーク論理151とCAM制御機構152とに転送する。
ツリー・ウォーク論理はDTで最初の検索ステップを自動的に実施し、リーフに到達するまでPSCBの連鎖をたどってサーチ動作を続行する。PSCBノードの連鎖をたどる際に、PSCBカウンタ154は、横断されるノード数をカウントする。
同時に、CAM制御機構は、キーを、そのキーの高速サーチを実施するCAMに転送する。
同時に開始されたこれら2つの動作は、ツリー・ウォーク論理とCAMのどちらが先に終了してもよい。
CAMが先に終了した場合、それはメモリ・アービタに結果(リーフ・アドレス)を返し、それによってウォーク・ツリー論理でまだ実行されている動作が打ち切られる。これは、CAMでキーが見つかり、そのため、ツリー・ウォーク論理でサーチを続行させる際に値がないからである。次いで、メモリ・アービタは、リーフの実際の内容を取り出すために、ツリー・ウォーク論理を介して記憶に読取り要求を出す。
ツリー・ウォーク論理が先に終了した場合、それは結果(リーフ・アドレスおよびリーフ内容、PSCBカウント)をメモリ・アービタに返す。メモリ・アービタは、CAM制御機構にCAMでのサーチ・プロセスを打ち切るよう要求する。これによって、CAMの経時処理機構が、記憶内で非常に高速で(CAMを介するよりも高速で)実際にサーチされるキーに対応するCAMエントリを削除することができ、記憶内でより長時間のサーチを必要とするはずの他のキーにより多くの余地を残すことができるようになる。
PSCBカウントは、ツリー・ウォーク論理によって提供されるサーチ結果に含まれる。メモリ・アービタは、このカウントが閾値を超えた場合には、直前にサーチされたキーに対応するCAMエントリを付加するようCAM制御機構に要求するために、このカウントを使用してそれを事前設定された閾値と比較する。
この閾値は、すでに記憶されているがメモリ内より低速でサーチされるキーのCAMへの付加を求める要求を回避するために、記憶内のサーチ動作がCAM内のサーチより長くなることを保証するように構成される。
Claims (7)
- サーチ・キーからのNビット(Nは整数)を、少なくとも1つのエントリを持つダイレクト・テーブルおよび前記1つのエントリに動作可能なように結合された複数のノードを含むツリー構造を含むデータ構造への指標として使用する動作と、
前記ツリー構造をサーチするときにアクセスされるノード数の最大数を表す閾値を設定する動作と、
前記サーチ・キーからの選択ビットを使用して前記閾値が満たされるまで前記ツリー構造を探索する動作と、
前記閾値が満たされたことに応答して、前記サーチ・キーに関連して講ずべき処置を得るために連想記憶メモリ(CAM)内の少なくとも1つのエントリから情報を読み取る動作と、
エントリが所与の期間使用されていないときに前記CAMからそのエントリを削除する動作と
を含むサーチ方法。 - 前記閾値が満たされたことに応答して、前記サーチ・キーの選択ビット、および前記キーに関連して講ずべき処置をそこから見つけることのできる情報を含む少なくとも1つのエントリを連想記憶メモリに記憶するステップをさらに含む請求項1に記載の方法。
- Nビットが宛先MACアドレスの最初の16ビットを含む請求項1または2に記載の方法。
- リーフが選択されたノードに動作可能なように結合され、
リーフが前記所与の期間よりも長い期間使用されていないときに前記ツリーからそのリーフを削除するステップ
をさらに含む、請求項1または請求項2に記載の方法。 - 前記情報が、前記処置が記憶された前記ツリー構造のリーフのアドレスを含む請求項1に記載の方法。
- 複数のプロトコル・プロセッサを含む組み込みプロセッサ複合体と、
前記プロセッサ複合体に動作可能なように結合された制御点プロセッサと、
各プロトコル・プロセッサにアクセス可能であり、高速パターン・サーチ、データ操作およびフレーム構文解析を提供する複数のハードウェア・アクセラレータ・コプロセッサと、
ダイレクト・テーブル、および相互に動作可能なように連鎖するノードおよびリーフを持つツリー構造を含むデータ構造を記憶する、前記プロセッサ複合体に動作可能なように結合された少なくとも1つのメモリ・デバイスと、
前記プロセッサ複合体に動作可能なように結合され、ツリー・サーチ・ルーチンの間にアクセスされるノードの最大数を表す値を記憶するメモリ位置と、
前記プロセッサ複合体に動作可能なように結合され、パケットに関連して講ずべき処置に関する情報を含むリーフが記憶された場所を識別するポインタを記憶する連想記憶メモリ(CAM)と
を含み、少なくとも1つのコプロセッサが、
サーチ・キーからのNビット(Nは整数)を、ダイレクト・テーブルを含む前記データ構造への指標として使用する方法ステップと、
前記サーチ・キーからの選択ビットを使用して、アクセスされるノードの最大数が満たされるまで前記ツリー構造を探索する方法ステップと、
前記サーチ・キーの選択ビットを含む少なくとも1つのエントリ、およびパケットに関連して講ずべき処置に関する情報を含むリーフが記憶された位置を識別するポインタを前記CAMに記憶する方法ステップと、
前記サーチ・キーに関連して講ずべき処置を得るために前記CAM内の少なくとも1つのエントリから情報を読み取る方法ステップと、
エントリが所与の期間使用されていないときにそのエントリを前記CAMから削除する方法ステップと
を実施するように動作する装置。 - 前記CAMが、前記ポインタと対をなす、前記パケット内の宛先MACアドレスの選択された一部をさらに含む請求項6に記載の装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/015,165 US8195705B2 (en) | 2001-12-11 | 2001-12-11 | Hybrid search memory for network processor and computer systems |
PCT/GB2002/005562 WO2003054739A2 (en) | 2001-12-11 | 2002-12-09 | Hybrid search memory for network processor and computer systems |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2005513895A JP2005513895A (ja) | 2005-05-12 |
JP2005513895A5 JP2005513895A5 (ja) | 2005-12-22 |
JP3935880B2 true JP3935880B2 (ja) | 2007-06-27 |
Family
ID=21769867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003555385A Expired - Fee Related JP3935880B2 (ja) | 2001-12-11 | 2002-12-09 | ネットワーク・プロセッサおよびコンピュータ・システム用ハイブリッド・サーチ・メモリ |
Country Status (7)
Country | Link |
---|---|
US (1) | US8195705B2 (ja) |
JP (1) | JP3935880B2 (ja) |
KR (1) | KR100603699B1 (ja) |
CN (1) | CN1602485A (ja) |
AU (1) | AU2002347376A1 (ja) |
BR (1) | BR0214890A (ja) |
WO (1) | WO2003054739A2 (ja) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7382736B2 (en) | 1999-01-12 | 2008-06-03 | Mcdata Corporation | Method for scoring queued frames for selective transmission through a switch |
US7596139B2 (en) | 2000-11-17 | 2009-09-29 | Foundry Networks, Inc. | Backplane interface adapter with error control and redundant fabric |
US7236490B2 (en) * | 2000-11-17 | 2007-06-26 | Foundry Networks, Inc. | Backplane interface adapter |
US7002980B1 (en) | 2000-12-19 | 2006-02-21 | Chiaro Networks, Ltd. | System and method for router queue and congestion management |
US7266117B1 (en) | 2002-05-06 | 2007-09-04 | Foundry Networks, Inc. | System architecture for very fast ethernet blade |
US7468975B1 (en) * | 2002-05-06 | 2008-12-23 | Foundry Networks, Inc. | Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability |
US7649885B1 (en) | 2002-05-06 | 2010-01-19 | Foundry Networks, Inc. | Network routing system for enhanced efficiency and monitoring capability |
US7187687B1 (en) | 2002-05-06 | 2007-03-06 | Foundry Networks, Inc. | Pipeline method and system for switching packets |
US20120155466A1 (en) | 2002-05-06 | 2012-06-21 | Ian Edward Davis | Method and apparatus for efficiently processing data packets in a computer network |
US6901072B1 (en) | 2003-05-15 | 2005-05-31 | Foundry Networks, Inc. | System and method for high speed packet transmission implementing dual transmit and receive pipelines |
US7082493B1 (en) * | 2003-10-31 | 2006-07-25 | Integrated Device Technology, Inc. | CAM-based search engines and packet coprocessors having results status signaling for completed contexts |
US7817659B2 (en) | 2004-03-26 | 2010-10-19 | Foundry Networks, Llc | Method and apparatus for aggregating input data streams |
US8730961B1 (en) | 2004-04-26 | 2014-05-20 | Foundry Networks, Llc | System and method for optimizing router lookup |
US7657703B1 (en) | 2004-10-29 | 2010-02-02 | Foundry Networks, Inc. | Double density content addressable memory (CAM) lookup scheme |
US7707217B2 (en) * | 2005-01-24 | 2010-04-27 | 3Com Corporation | Trie search engines and ternary CAM used as pre-classifier |
US8448162B2 (en) | 2005-12-28 | 2013-05-21 | Foundry Networks, Llc | Hitless software upgrades |
CN100371936C (zh) * | 2006-04-03 | 2008-02-27 | 无锡永中科技有限公司 | 用于树型结构文件的数据查找方法 |
US7903654B2 (en) | 2006-08-22 | 2011-03-08 | Foundry Networks, Llc | System and method for ECMP load sharing |
KR100786268B1 (ko) * | 2006-10-31 | 2007-12-18 | 에스케이 텔레콤주식회사 | 이동 단말의 sms를 활용한 결제 서비스 제공 방법 및시스템 |
US8238255B2 (en) | 2006-11-22 | 2012-08-07 | Foundry Networks, Llc | Recovering from failures without impact on data traffic in a shared bus architecture |
US8155011B2 (en) | 2007-01-11 | 2012-04-10 | Foundry Networks, Llc | Techniques for using dual memory structures for processing failure detection protocol packets |
CN101231638B (zh) * | 2007-01-24 | 2010-07-14 | 阿里巴巴集团控股有限公司 | 一种实现类目搜索的方法、系统及装置 |
US8271859B2 (en) | 2007-07-18 | 2012-09-18 | Foundry Networks Llc | Segmented CRC design in high speed networks |
US8037399B2 (en) | 2007-07-18 | 2011-10-11 | Foundry Networks, Llc | Techniques for segmented CRC design in high speed networks |
US8149839B1 (en) | 2007-09-26 | 2012-04-03 | Foundry Networks, Llc | Selection of trunk ports and paths using rotation |
US7814267B1 (en) * | 2008-02-04 | 2010-10-12 | Netlogic Microsystems, Inc. | Processor with compare operations based on any of multiple compare data segments |
CN101350788B (zh) * | 2008-08-25 | 2011-10-26 | 中兴通讯股份有限公司 | 一种网络处理器内外混合查表方法 |
US8090901B2 (en) | 2009-05-14 | 2012-01-03 | Brocade Communications Systems, Inc. | TCAM management approach that minimize movements |
US8599850B2 (en) | 2009-09-21 | 2013-12-03 | Brocade Communications Systems, Inc. | Provisioning single or multistage networks using ethernet service instances (ESIs) |
CN102436453B (zh) * | 2010-09-29 | 2015-03-11 | 金蝶软件(中国)有限公司 | 一种父子维的处理方法及装置 |
US10963426B1 (en) | 2013-02-25 | 2021-03-30 | EMC IP Holding Company LLC | Method of providing access controls and permissions over relational data stored in a hadoop file system |
US9805053B1 (en) | 2013-02-25 | 2017-10-31 | EMC IP Holding Company LLC | Pluggable storage system for parallel query engines |
CN104572648B (zh) * | 2013-10-11 | 2018-01-16 | 中国石油化工股份有限公司 | 一种基于高性能计算的存储统计系统及方法 |
US10332008B2 (en) | 2014-03-17 | 2019-06-25 | Microsoft Technology Licensing, Llc | Parallel decision tree processor architecture |
US20150262062A1 (en) * | 2014-03-17 | 2015-09-17 | Microsoft Corporation | Decision tree threshold coding |
KR200488004Y1 (ko) | 2014-07-28 | 2018-12-03 | 오종만 | 피자 고정구에 착탈되는 캐릭터 |
CN105701065A (zh) * | 2016-01-15 | 2016-06-22 | 浪潮电子信息产业股份有限公司 | 一种协议表可变更协议处理器的实现方法 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5136580A (en) | 1990-05-16 | 1992-08-04 | Microcom Systems, Inc. | Apparatus and method for learning and filtering destination and source addresses in a local area network system |
EP0522743B1 (en) | 1991-06-26 | 1997-12-17 | Digital Equipment Corporation | Combined hash table and CAM address recognition in a network |
EP0594196B1 (en) | 1992-10-22 | 1999-03-31 | Cabletron Systems, Inc. | Address lookup in packet data communications link, using hashing and content-addressable memory |
JP3545858B2 (ja) | 1995-12-01 | 2004-07-21 | 株式会社東芝 | ネットワーク間接続装置及び情報検索装置 |
JP3520709B2 (ja) | 1997-03-13 | 2004-04-19 | 三菱電機株式会社 | ネットワークアドレス検索方式 |
US6553002B1 (en) * | 1997-08-29 | 2003-04-22 | Ascend Communications, Inc. | Apparatus and method for routing data packets through a communications network |
US6061712A (en) * | 1998-01-07 | 2000-05-09 | Lucent Technologies, Inc. | Method for IP routing table look-up |
US6173384B1 (en) * | 1998-02-11 | 2001-01-09 | Nortel Networks Limited | Method of searching for a data element in a data structure |
JP2000022736A (ja) | 1998-07-06 | 2000-01-21 | Nec Eng Ltd | ルーティングエントリ検索システム及びその検索方法並びにその制御プログラムを記録した記録媒体 |
JP2000209216A (ja) | 1999-01-12 | 2000-07-28 | Shimada Phys & Chem Ind Co Ltd | アドレス管理方法及び装置、記録媒体 |
JP3216630B2 (ja) | 1999-06-09 | 2001-10-09 | 日本電気株式会社 | 通信制御装置 |
US6766381B1 (en) * | 1999-08-27 | 2004-07-20 | International Business Machines Corporation | VLSI network processor and methods |
US6985431B1 (en) | 1999-08-27 | 2006-01-10 | International Business Machines Corporation | Network switch and components and method of operation |
US6675163B1 (en) | 2000-04-06 | 2004-01-06 | International Business Machines Corporation | Full match (FM) search algorithm implementation for a network processor |
US7107265B1 (en) * | 2000-04-06 | 2006-09-12 | International Business Machines Corporation | Software management tree implementation for a network processor |
JP2001326679A (ja) | 2000-05-15 | 2001-11-22 | Fujitsu Ltd | 情報装置、テーブル検索装置、テーブル検索方法、及び記録媒体 |
JP2002016638A (ja) * | 2000-06-29 | 2002-01-18 | Mitsubishi Electric Corp | ルーチング情報検索装置およびルーチング情報検索制御データを記録したコンピュータ読み取り可能な記録媒体 |
JP2002166387A (ja) | 2000-11-28 | 2002-06-11 | Mitsubishi Heavy Ind Ltd | ロボット視覚装置 |
US6691124B2 (en) * | 2001-04-04 | 2004-02-10 | Cypress Semiconductor Corp. | Compact data structures for pipelined message forwarding lookups |
JP3779619B2 (ja) | 2002-01-11 | 2006-05-31 | 日本電信電話株式会社 | パケット転送装置およびネットワークおよびプログラムおよび記録媒体 |
JP3757882B2 (ja) | 2002-03-12 | 2006-03-22 | 日本電信電話株式会社 | パケットのフィルタリング方法 |
JP3784054B2 (ja) | 2002-06-10 | 2006-06-07 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Macアドレスを並べ替えさせる方法および記録媒体 |
-
2001
- 2001-12-11 US US10/015,165 patent/US8195705B2/en active Active
-
2002
- 2002-12-09 CN CNA028245334A patent/CN1602485A/zh active Pending
- 2002-12-09 BR BR0214890-0A patent/BR0214890A/pt not_active IP Right Cessation
- 2002-12-09 JP JP2003555385A patent/JP3935880B2/ja not_active Expired - Fee Related
- 2002-12-09 AU AU2002347376A patent/AU2002347376A1/en not_active Abandoned
- 2002-12-09 WO PCT/GB2002/005562 patent/WO2003054739A2/en active Application Filing
- 2002-12-09 KR KR1020047001554A patent/KR100603699B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR20040058168A (ko) | 2004-07-03 |
AU2002347376A1 (en) | 2003-07-09 |
WO2003054739A3 (en) | 2004-02-19 |
US8195705B2 (en) | 2012-06-05 |
JP2005513895A (ja) | 2005-05-12 |
US20030110180A1 (en) | 2003-06-12 |
AU2002347376A8 (en) | 2003-07-09 |
CN1602485A (zh) | 2005-03-30 |
WO2003054739A2 (en) | 2003-07-03 |
BR0214890A (pt) | 2004-12-14 |
KR100603699B1 (ko) | 2006-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3935880B2 (ja) | ネットワーク・プロセッサおよびコンピュータ・システム用ハイブリッド・サーチ・メモリ | |
JP2005513895A5 (ja) | ||
US9154442B2 (en) | Concurrent linked-list traversal for real-time hash processing in multi-core, multi-thread network processors | |
US6854117B1 (en) | Parallel network processor array | |
US9787693B2 (en) | Graph caching | |
US8180803B2 (en) | Deterministic finite automata (DFA) graph compression | |
US7949683B2 (en) | Method and apparatus for traversing a compressed deterministic finite automata (DFA) graph | |
US8335780B2 (en) | Scalable high speed relational processor for databases and networks | |
US7680806B2 (en) | Reducing overflow of hash table entries | |
US20070168377A1 (en) | Method and apparatus for classifying Internet Protocol data packets | |
US20050248970A1 (en) | Distributed content addressable memory | |
KR20150026979A (ko) | 어드밴스드 피처를 갖는 정규 표현식 패턴에 대한 비결정성 유한 오토마톤 (nfa) 생성 | |
KR102126592B1 (ko) | 멀티코어 프로세서들에 대한 내부 및 외부 액세스를 갖는 룩-어사이드 프로세서 유닛 | |
US20190294549A1 (en) | Hash Table-Based Mask Length Computation for Longest Prefix Match Caching | |
US7739445B1 (en) | Circuit, apparatus, and method for extracting multiple matching entries from a content addressable memory (CAM) device | |
US20140114995A1 (en) | Scalable high speed relational processor for databases and networks | |
US7254687B1 (en) | Memory controller that tracks queue operations to detect race conditions | |
US20200226099A1 (en) | Method and apparatus for improving hash searching throughput in the event of hash collisions | |
CN110046286A (zh) | 用于搜索引擎缓存的方法和装置 | |
CN116599892B (zh) | 一种服务器系统、路由方法、装置及电子设备和存储介质 | |
JP2004194321A (ja) | トライを基礎としたipルックアップアルゴリズムのパイプライン型ハードウエア実現におけるルックアップレイテンシーを減少させるメカニズム | |
JP2009017439A (ja) | パケット転送装置およびパケット転送方法。 | |
JP5324380B2 (ja) | パケット転送装置 | |
JP2009123050A (ja) | 情報検索装置、及び情報検索装置へのエントリ情報の登録方法 | |
JP2003234762A (ja) | テーブル検索装置および方法およびプログラムおよび記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060919 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061215 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070313 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070320 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |