JP2002033769A - 圧縮検索テーブルを用いるプレフィックス検索方法およびデータ構造 - Google Patents

圧縮検索テーブルを用いるプレフィックス検索方法およびデータ構造

Info

Publication number
JP2002033769A
JP2002033769A JP2001155823A JP2001155823A JP2002033769A JP 2002033769 A JP2002033769 A JP 2002033769A JP 2001155823 A JP2001155823 A JP 2001155823A JP 2001155823 A JP2001155823 A JP 2001155823A JP 2002033769 A JP2002033769 A JP 2002033769A
Authority
JP
Japan
Prior art keywords
index
mask
search key
bits
segment
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.)
Granted
Application number
JP2001155823A
Other languages
English (en)
Other versions
JP3782950B2 (ja
Inventor
Jan Van Lunteren
ジャン・ヴァン・ランターン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2002033769A publication Critical patent/JP2002033769A/ja
Application granted granted Critical
Publication of JP3782950B2 publication Critical patent/JP3782950B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

(57)【要約】 【課題】 本発明は、そこにおいて、最長マッチング・
プレフィックスに対応する出力情報を検出するために木
構造テーブルをくまなく検索するため、セグメント単位
で、一定の検索キーが評価されるシステムに関する。 【解決手段】 セグメントの少なくとも1つに関して、
検索キー・セグメントの選択されたビットだけが、個別
検索キー・セグメントと比較されるべきテスト値が保管
された関連テーブルにアクセスするためのインデックス
として使用される。選択されるビットは、テーブル・エ
ントリにおける有効なテスト値(および有効な検索キー
・セグメント値)の分散を反映して、インデックス・マ
スクによって決定される。これは、ストレージ要件およ
び検索時間を最小化するテーブル圧縮を可能にする。有
効なテスト値のセットに応答して最適のインデックス・
マスクを生成するプロシージャを開示する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、IPアドレスのよ
うな一定の検索キーに応答して、その検索キーを有する
アイテムの更なる処理または転送を判断するための保管
テーブル(stored table)内のエントリを
検出する分野に関し、特に、本発明は、保管テーブルの
圧縮と、一定の検索キーにマッチングするテーブル内の
エントリに対する検索の最適化とに関する。
【0002】
【従来の技術】最長マッチング・プレフィックス(Lo
ngest matching prefix:LP
M)検索が広く用いられ、特に、割り当てられたIPア
ドレスに従ってインターネット内でパケットを経路指定
するために用いられている。多くのソリューションが、
保管プレフィックス(stored prefix)に
対して先行検索キー・ビット(プレフィックス)を比較
し、保管データ構造(stored data str
ucture)におけるその関連した出力ルート情報
(またはネクスト・ホップ・ポインタ)と共に最長マッ
チング・プレフィックスを検出するために提案されてき
た。特に、探索木は、最長マッチング・プレフィックス
検索にアプリケーションを提供してきた。
【0003】非常に簡単なLPM検索スキームは、検索
キーのあらゆる可能な値に関する検索結果を含むテーブ
ルへのインデックスとして検索キーを用いることにより
構成される。
【0004】図1は、そこにおいて検索キーが32ビッ
トIP宛先アドレスより構成されるIPバージョン4転
送に適用されたこの方法の例を説明する。この例におい
て、ルーティング・テーブルは、以下のプレフィックス
を含む。
【0005】
【表1】
【0006】このテーブルは、1つのエントリが32ビ
ットIP宛先アドレスの各可能な値に割当てられた232
エントリを含む。全ての有効なエントリ(すなわち、有
効な検索結果A,B,CまたはDに帰着し得るエント
リ)が、図1に示される。全ての他のエントリが無効と
みなされ、無効な検索結果に終わる。エントリは、例え
ばビット・フラグを用いて有効または無効であると識別
され得る。
【0007】このLPMスキームの主な不利な点は、大
量の記憶域の非効率な使用である。図1が示すように、
テーブルは、そこからほんの少数が保管プレフィックス
に関連した実情報を有する有効なエントリであるにすぎ
ない232エントリを含む。他の不利な点は、短いプレフ
ィックスに関連した情報が、複数のテーブル・エントリ
に保管され、そのプレフィックスの挿入および除去のた
めに複数のメモリ・アクセスを必要とするということで
ある。図1において212=4096テーブル・エントリ
(ABCDE000hからABCDEFFFhまで)を
範囲とする第4のプレフィックス(ABCDEh)がそ
うである。
【0008】これら2つの不利な点は、全体の検索キー
によって指示される単一テーブルを、検索キーのより小
さい部分によって指示される複数のリンク・テーブルの
木のような構造に変換することにより削除可能である。
このアプローチは、Guptaら(“Routing
Lookups in Hardware at Me
mory Access Speeds.”,Pank
aj Gupta,Steven Lin,and N
ick McKeown,IEEE Infocom
April 1998,Vol3,pp.1240−1
247,SanFrancisco)およびVargh
eseら(“Fast address lookup
s using controlled prefix
expansion.”,V.Srinivasan
and G.Varghese,ACM Tran
s.Comput.Syst.17,1,Feb.19
99,pp.1−40)によって述べられてきた。
【0009】図2は、このような概念を図1のデータ構
造に応用する例を説明する。図2において、検索キー
は、図2に示される対応する3つのレベルでのテーブル
を指示するために使用される16,8および8ビットか
ら構成される3つのセグメントに分けられる。これらの
テーブルの各々は、有効および無効なエントリを含むこ
とができ、有効なエントリは、次のレベルでのテーブル
に対するポインタあるいは検索結果を含むことができ、
無効なエントリは、無効な検索結果を指示する。
【0010】検索オペレーションは、レベル1でのテー
ブルへのインデックスとして第1のセグメントを用いる
ことから開始する。指示されたエントリが次のレベルで
のテーブルへのポインタを含む場合には、このテーブル
は、次のセグメントを用いて指示され得る。検索オペレ
ーションは、検索オペレーションの結果となり得る検索
結果を含むエントリが指示される時、あるいは、その場
合に検索オペレーションの結果が無効な結果となり得る
無効なエントリが指示される時に終了する。
【0011】これを‘12345678h’に等しいI
P宛先アドレスに関して説明する。図2において、この
IP宛先アドレスの第1のセグメントは、レベル1での
テーブルへのインデックスとして使用される‘1234
h’に等しい。このエントリは、図2におけるレベル2
での下位のテーブルをポイントし、下位のテーブルは、
‘56h’に等しいIP宛先アドレスの第2のセグメン
トによって指示される。このエントリは、図2における
レベル3でのテーブルだけをポイントし、このテーブル
は、‘78h’に等しいIP宛先アドレスの第3のセグ
メントを用いて指示される。このエントリは、検索結果
‘B’を与える。他のプレフィックスに関する検索結果
は同様な方法で得られる。
【0012】図2におけるデータ構造は、レベル1での
65536テーブル・エントリ,レベル2での2*25
6=512テーブル・エントリ,およびレベル3での1
*256テーブル・エントリから構成され、図1のデー
タ構造の232テーブル・エントリよりはるかに少ない総
計66304テーブル・エントリになる。両図における
エントリは同一ではないかもしれない(例えば、図2に
おけるエントリは、ポインタまたは検索結果のいずれが
保管されているかの指示と共にポインタを保管できるこ
とを必要とする)が、図2のデータ構造は、図1のデー
タ構造よりも明らかにはるかに少ないストレージ要件を
有する。さらに、短いプレフィックスに関連した情報
は、更新オペレーションのためのより少ないメモリ・ア
クセスをもたらすより少ないテーブル・エントリに保管
される。例えば、ここでは、第4のプレフィックス(A
BCDEh)は、図1のデータ構造における4096エ
ントリに代わってほんの17テーブル・エントリ(レベ
ル1でのテーブルにおけるABCDh、およびレベル2
での上位のテーブルにおけるE0hからEFhまで)を
範囲とするにすぎない。
【0013】図2に示されるスキームは、図1に示され
るスキームよりも、単一検索オペレーションのためによ
り多くのメモリ・アクセスを要求することが可能であ
る。しかしながら、同一のレベルに属する全てのテーブ
ルが、個別の独立してアクセス可能なメモリ・バンクに
保管される場合には、パイプライン方式を適用して、時
間単位ごとに図2に示されるスキームと同数のルックア
ップを得ることが可能である。
【0014】図2におけるデータ構造の実際のストレー
ジ要件は、IP宛先アドレス内のセグメントの数および
サイズと、データ構造に保管されたプレフィックスとに
依存している。McKeownおよびVarghese
は、固定数の固定サイズ・セグメント(図2に示される
ような)を有するスキーム、そして可変数の可変サイズ
・セグメントを有するスキームを説明する。後者のタイ
プのスキームにおいては、セグメント・サイズ情報は、
次のレベルでのテーブルへのポインタを含むテーブル・
エントリ内部に組み込まれる。この点で、データ構造の
異なるパスを選択する異なるIP宛先アドレスのための
検索オペレーションは、異なるサイズを有する異なる数
のセグメントを含み得る。結果として、同一のレベルで
のテーブルのサイズが異なり得る。
【0015】可変数の可変サイズ・セグメントを有する
スキームは、データ構造のストレージ要件のよりよい最
適化を可能にする。しかしながら、更新機能ははるかに
複雑であり、特に、インクリメンタル更新のサポートは
複雑であり、より多くの時間を消費する。様々なレベル
でのテーブルが上述のパイプライン方式を可能にする個
別のメモリ・バンクに保管される場合には、可変数の可
変サイズ・セグメントを有するスキームのための更新オ
ペレーションは、更新オペレーションがデータ構造の一
定のパスに従ってセグメント・サイズを変更する際に、
異なるバンク間のデータ移動を伴い得る。これは、現代
の多くの検索エンジンにおいてクリティカル・リソース
であるメモリ帯域幅のより低効率の使用をもたらし、結
果として更新パフォーマンスの低下をもたらす。ストレ
ージ要件を最適化するための他の方法は、米国特許第5
781772号公報(Wilkinsonら)で説明さ
れる。この特許は、ノード内の固定サイズ・セットのポ
インタに適用される、ポインタ圧縮と称されるメカニズ
ムを説明する。このメカニズムは、‘無効な’ポインタ
(NIL−ポインタ)がノードから除去されるというこ
と、および各ノードへ加えられかつどのポインタがノー
ド内に存在する(すなわち、非NIL−ポインタ)かを
指示するビット・マスクを用いて、有効なポインタ(非
NIL−ポインタ)のロケーションが判断され得るとい
うことを含む。同一のメカニズムが、図2に示されるテ
ーブルへ適用可能である。同種の方法が、米国特許第5
813001号公報(Bennett)において説明さ
れる。
【0016】このタイプの圧縮は、少数のエントリを有
するテーブルに対してよく機能し得る。より大きなテー
ブルは、より大きいストレージ要件と検索オペレーショ
ンの際のよりスローな処理時間とをもたらし得るより大
きいビット・マスクを必要とする。他の不利な点は、結
果テーブルは、2の累乗を必然としない、あらゆるサイ
ズを有し得るということである。これは、バッファ管理
をより複雑にし得る。というのは、2の累乗でないバッ
ファ・サイズは、効率的に管理することがより困難だか
らである。
【0017】
【発明が解決しようとする課題】本発明の目的は、一定
の検索キーに応答して、保管データ構造においてマッチ
ングするエントリを検出する方法(およびデータ構造)
を創出することであり、この方法は、実際に保管された
データの分散に応答してデータ・テーブルを圧縮するこ
とによって改良検索を可能にし、そして、検索オペレー
ションのための最適化プロシージャを提供する。さらな
る目的は、一定の検索キー・セグメントから個別的かつ
最適に選択される、テーブル・アクセスのための可変長
インデックス値の使用を可能にする検索方法を提供する
ことである。
【0018】
【課題を解決するための手段】これらの目的を達成する
本発明は、特許請求の範囲で定義される。本発明は、特
に、一定の検索キー・セグメントと比較されるべきテス
ト値の最適に圧縮されたテーブルにアクセスするため
に、固定長検索キー・セグメントの選択されたあるいは
マスクされたビットの使用を提供する。特定の実施の形
態において、本発明は、検索キー・セグメントからのビ
ットの選択のための最適のインデックス・マスクを生成
する効率的なプロシージャを提供する。さらに特定の実
施の形態において、付加的なプレフィックス・マスク
が、一定の検索キー・セグメントとの比較のために実際
に必要であるテスト値のビットだけを選択するために与
えられる。
【0019】本発明の主な利点は、より短い検索時間お
よびストレージ・スペースに対する節約である。さら
に、固定長検索キー・セグメントの使用に起因して(実
際に使用される可変数の検索キー・ビットにもかかわら
ず)、保管テーブルの更新が単純化される。可能なイン
クリメンタル更新は、より低いストレージ要件を生じさ
せる。さらに、2の累乗のバッファ・サイズの使用に起
因して、バッファ管理が単純化され、メモリがより効率
的に使用される。
【0020】
【発明の実施の形態】以下において、本発明の実施の形
態を、図面を参照して説明する。
【0021】テーブル圧縮の概念 本発明は、これらのデータ構造内部に生じるそれぞれの
個々のテーブルに圧縮を適用することによって図2に示
されるデータ構造と同種のデータ構造から派生可能なデ
ータ構造に基づく最長マッチング・プレフィックス検索
(longest matching prefix
search)方法を含む。
【0022】この圧縮の原理は、図3および図4におい
て説明される。図3は、例証する目的のために16進数
の代わりに2進数インデックス表記を用いて、レベル3
での図2に示されたテーブルを再度示す。テーブルを指
示するために使用される検索キーの第3のセグメント
は、図2および3に示されるように8ビットから構成さ
れるので、個別テーブルは、28=256エントリを含
む。これらのエントリから、ただ3つだけがインデック
ス‘34h’,‘78h’および‘CDh’で有効であ
るにすぎない。図3は、また、図2におけるレベル2で
のテーブル内のエントリを示し、エントリは示されるテ
ーブルへのポインタを含み、ポインティング・エントリ
として表示される。
【0023】図3に示されるテーブルは、図4に示され
るようなより小さいテーブルへ圧縮可能であり、より小
さいテーブルは、元のテーブルを指示するために使用さ
れた検索キー・セグメントを構成するビットのサブセッ
トによって指示される。圧縮テーブルへのインデックス
を圧縮インデックスと称する。図4において、圧縮イン
デックスは、検索キー・セグメント内部の位置0および
2におけるビットから構成される。圧縮インデックスを
構成するビットは、直前のレベルでのテーブル内のポイ
ンティング・エントリに(次のテーブルへのポインタと
共に)保管されたいわゆるインデックス・マスクによっ
て指示される。圧縮インデックスがkビットから構成さ
れる場合には、圧縮テーブルは2kエントリを含み得
る。その場合には、インデックス・マスクは、‘1’に
セットされたkビットを含み得る。圧縮インデックス
は、元のテーブルにおける有効なエントリに対応するど
の2つの検索キー・セグメント値(すなわち、元のテー
ブルにおける有効なエントリのどの2つのインデック
ス)も同一の圧縮インデックスを生じさせ得ないような
方法で、検索キー・セグメントから選択される必要があ
る。
【0024】圧縮インデックスが単に検索キー・セグメ
ントのサブセットである時に、同一の圧縮インデックス
を生じる検索キー・セグメントの複数の値が存在する。
こういう訳で、圧縮テーブル内の各エントリに保管さ
れ、圧縮インデックスの一部でない検索キー・セグメン
ト・ビットの値を指定するテスト値に対するテスト・オ
ペレーションがインデックス・オペレーションに続く。
テスト結果が肯定的(すなわち、検索キー・セグメント
・ビットがテスト値に等しい)である場合には、検索オ
ペレーションは、指示されたエントリの内容に基づいて
継続する。テスト結果が否定的である場合には、検索オ
ペレーションは、まるで無効なエントリが指示されたよ
うに終了する。
【0025】実施の容易のために、このテスト値は、圧
縮インデックス・ビットを含む全体の検索キー・セグメ
ント値から構成されることもできる。図4に示されるテ
スト値は、そこにおいて圧縮インデックスの一部でなく
それゆえにテストされることが必要なビットがアンダー
ラインで示される全体の検索キー・セグメント値から構
成される。
【0026】図5は、そこにおいて説明されたテーブル
圧縮がレベル1でのテーブルを除く全てのテーブルに適
用される図2のデータ構造を示す。典型的なシステムに
おいて、レベル1でのテーブルを指示するために使用さ
れる第1のセグメントが、検索パフォーマンス上の理由
のために、他のセグメントと比較すると相対的に大きい
ことがあるということが予期される。相対的に大きい第
1のセグメント・サイズは、圧縮バージョンに対してよ
りスローな更新オペレーションをもたらし得る(更新オ
ペレーションは、以下に述べる)ので、更新パフォーマ
ンス上の理由のために、この第1のテーブルを圧縮され
ないままにしておくことがより望ましいであろう。
【0027】図5は、レベル2での下位のテーブルが、
レベル1でのテーブル内の対応するポインティング・エ
ントリにおける‘00h’に等しいインデックス・マス
クによって指示されるセグメント値から常に独立して指
示され得る(アクセスされ得る)1つの単一エントリを
有するテーブルに圧縮されるということを示す。図を分
かりやすくしておくために、図5は、様々なテーブルを
指示するために使用されるが、それからこれらの圧縮イ
ンデックスが構成される実ビットではない圧縮インデッ
クスのサイズ(0ビット/4ビット)だけを示す(これ
らは、図5において16進数表記で示されるインデック
ス・マスクから派生可能である)。
【0028】図6は、図5に示されるデータ構造に基づ
く検索オペレーションの際に実行されなければならない
種々のステップを説明するフロー図を示す。
【0029】圧縮データ構造の構築および更新 圧縮データ構造を構築し更新する1つの方法は、圧縮さ
れないデータ構造も保持することを伴う。この圧縮され
ないデータ構造は、従来の方法で構築され更新され得
る。構築あるいは更新オペレーションの際に変化する全
てのテーブルは、圧縮されない形式で最初に得られ、次
に、圧縮データ構造に圧縮され更新され得る。この点
で、データ構造の構築および更新の複雑さは、個々のテ
ーブルの圧縮の複雑さに変えられる。
【0030】テーブルの圧縮は、以下の2つのステップ
からなる。 1)圧縮インデックスを引き出すために使用されるイン
デックス・マスクを決定するステップ。 2)インデックス・マスクおよび元のテーブル内容に基
づいて圧縮テーブルを構築するステップ。
【0031】第1のステップを以下に説明する。第2の
ステップは簡単である。
【0032】最適のインデックス・マスク生成 最大圧縮は、元のテーブルにおけるどんな2つの有効な
エントリも、同一の圧縮インデックス値にマップされな
いという条件を満たす最小圧縮インデックスで達成され
る。後者の条件は、2つの有効なインデックスの各可能
な対に対して、圧縮インデックスが、そこにおいてこれ
らのインデックスが異なる検索キー・セグメントから
の、少なくとも1つのビットを含む場合に満たされる。
【0033】ただ1つの有効なインデックス(テーブル
・エントリ)だけが存在する場合に、最適のインデック
ス・マスクは、全てゼロから構成される(例えば、図5
における第2のレベルでの下位のテーブルのために、第
1のレベルでのテーブルにおけるポインティング・エン
トリが、全てゼロから構成されるインデックス・マスク
を含む場合がそうである)。複数の有効なインデックス
(テーブル・エントリ)の場合には、1にセットされた
最小数のビットを有する最適のインデックス・マスクに
対応する最小圧縮インデックスは、以下の方法で決定可
能である。
【0034】1)2つの有効なインデックス(テーブル
・エントリ)の各対に対して、そこにおいてそれらが異
なるビット位置が決定される。これは、有効なインデッ
クスの各対に対するビット単位XOR積を決定すること
によってなし得る。これらのXOR積のそれぞれは、そ
こにおいて対応する2つのインデックスが異なるビット
位置での‘1’ビットを含む。
【0035】2)次に、全ての可能な非ゼロ・インデッ
クス・マスク(暫定インデックス・マスク)が生成さ
れ、1にセットされた増加する数のビットに従ってオー
ダされる。各可能な(暫定)インデックス・マスクに対
して、ビット単位AND積が、第1のステップで決定さ
れたXOR積のそれぞれを用いて決定される。それに対
して全てのこれらのAND積が非ゼロであり得る第1の
暫定インデックス・マスクは、最適のインデックス・マ
スクとして選択され得る(インデックス・マスクが、各
XOR積との非ゼロAND積を有する場合には、これ
は、対応する圧縮インデックスが、そこにおいて有効な
インデックス(テーブル・エントリ)の各対が異なる少
なくとも1つのビットを含み得るということ、すなわ
ち、そこにおいて可能なインデックス・マスクが生成さ
れるオーダに起因して、上述の条件を満たすことが理解
された第1のインデックス・マスクは、最小数の‘1’
ビットを含み得るということを意味する)。
【0036】この概念は、図3において示された例を用
いて説明可能である。この例において、有効なインデッ
クス(テーブル・エントリ)は、
【0037】
【表2】
【0038】これらのインデックスのうちの2つの各可
能な組み合わせのXOR積は、
【0039】
【表3】
【0040】以下のテーブルは、続けて生成されたイン
デックス・マスクとこれらのインデックス・マスクのビ
ット単位AND積と上述のXOR積とを説明する。イン
デックス・マスク‘00000101b’は、それに対
して全てのAND積が非ゼロである第1のインデックス
・マスクである。このインデックス・マスクは、最適の
インデックス・マスクとして選択される(これは、同様
に、図4において使用されるインデックス・マスクであ
る)。
【0041】
【表4】
【0042】XOR積ビット・ベクトル 8ビットに等しいセグメント・サイズに対して、セグメ
ント値(有効なインデックス)の対状XOR組み合わせ
によって生成された異なるXOR積の最大数は、255
に等しい(ゼロに等しいXOR積は不可能である。とい
うのは、これは2つの同一のインデックス間のXOR積
を指示するからである)。有効なインデックス(セグメ
ント値)の数がnに等しい場合、XOR積の数は、(n
割る2)に等しくなり得る。n=24またはより多くの
有効なインデックスに対して、XOR積の数は、256
より大きくなり得る。単に255の異なるXOR積が可
能である時、これは、インデックス(セグメント値)の
複数の対が同一のXOR積を生じ得るということを意味
する。
【0043】この観察に基づいて、本発明は、テーブル
または他のデータ構造に個別のエントリを格納する代わ
りに、いわゆるXOR積ビット・ベクトル内部に、全て
の決定されたXOR積の表現を保管する効率的な方法も
含む。kビットに等しいセグメント・サイズに対して、
XOR積ビット・ベクトルは、可能なXOR積値‘00
000001b’,‘00000010b’,‘000
00011b’から‘11111111b’までに対応
する2k−1ビットを含み得る。一定のXOR積が生成
された場合、ビット・ベクトル内の対応するビットがセ
ットされる。図7は、上述の例における3つのXOR積
に対するXOR積ビット・ベクトルの値を示す。XOR
積ビット・ベクトルの概念を用いて、全てのXOR積を
決定し、最適のインデックス・マスクを決定するプログ
ラミング言語“C”での可能な実施例を以下に示す。
【0044】
【表5】
【0045】改良圧縮 図5における第2のレベルでの上位のテーブルは、以下
のプレフィックスと同一のプレフィックスに全て関連す
る16のエントリを含む。
【0046】
【表6】
【0047】このテーブルは、例証する目的のために2
進数インデックス表記を用いて図8において再度示され
る。
【0048】プレフィックスは、そこから図8に示され
る圧縮インデックスが引き出される検索キー・セグメン
トの半分だけを(値Eを表す4ビットを用いて)‘範囲
とする’。範囲とされないセグメントの最後の部分は4
ビットからなる。これが、このプレフィックスに関連し
た情報を保管するためにレベル2でのテーブルにおける
4=16エントリが必要とされる理由である。という
のは、これらの最後の4ビットの全ての可能な値は、図
2に示された圧縮されないテーブルにおける有効なイン
デックスをもたらすからである。全てのこれら有効なイ
ンデックスは、実際にプレフィックスに関連する唯一の
関係のあるビットであり、従って、保管テスト値に対し
てテストされることを必要とする唯一のビットである同
じ最初の4ビットを共用する。
【0049】この観察に基づいて、図9は、テスト値の
どの部分がセグメント値に対してテストされることを必
要とするか指示するためのテスト値を有するいわゆるプ
レフィックス・マスクを保管することによって、テーブ
ルをさらに圧縮する方法を示す。結果として、セグメン
トの最後の4ビットの全ての可能な値のための16の個
別のテーブル・エントリの代わりに、ただ1つのテーブ
ル・エントリだけが必要とされる。これは、示される
‘00h’に等しいポインティング・エントリ内のイン
デックス・マスクに対応する。これは、インデックス・
マスクの計算が、以下に説明するように、同様に適合さ
れなければならないということを示す。
【0050】図10は、プレフィックス・マスクの概念
を、図5に示された例に適用する結果を示す。プレフィ
ックス・マスクは、検索結果を含むテーブル・エントリ
に必要とされるだけである。次のセグメントからの部分
によって指示され得る次のレベルでのテーブルに対する
ポインタを含むテーブル・エントリに対し、全体の現行
のセグメント値がテストされる(これは、最長マッチン
グ・プレフィックス検索の特質である)。図10におけ
る第3のレベルでのテーブル内の3つの有効なエントリ
は、全体のテスト値が関係あるということを指示するプ
レフィックス・マスク‘FFh’を含む。図11は、プ
レフィックス・マスクの概念に適合された、図6に示さ
れるフロー図に基づくフロー図を示す。
【0051】改良圧縮のための最適のインデックス・マ
スクの決定 改良圧縮スキームのための最適のインデックス・マスク
生成は、圧縮インデックスを決定するための元のスキー
ムに対する以下の変更を伴う。
【0052】1)対応するプレフィックス・マスクによ
って指示される有効なインデックスの関係のある部分だ
けが、XOR積を決定するために用いられることが望ま
しい。XOR積が、異なるプレフィックスに関連する2
つの有効なインデックスに対してゼロに等しい場合に
は、これは、これら2つのプレフィックスのうちの1つ
が、他方のプレフィックスのプレフィックスであるとい
うことを意味する。この場合において、プレフィックス
・マスクのXOR積は、最適のインデックス・マスクに
おいて1にセットされなければならないビットの基本セ
ットを指示する(これを、以下に述べる)。
【0053】2)上述のビットの全ての基本セットに対
して少なくとも1にセットされたビットを有する非ゼロ
・インデックス・マスクだけが生成される。第1のステ
ップにおいて生成された非ゼロXOR積だけが評価され
る。残りの手順は同一である。
【0054】以下の3つのプレフィックスを有する例
を、最適のインデックス・マスクを改良圧縮方法に対し
てどのように決定できるのか説明するために用いる。
【0055】
【表7】
【0056】第1のプレフィックスは、図2に示された
圧縮されないデータ構造内に既に存在していた。追加の
他の2つのプレフィックスは、ただ、図2における第2
のレベルでの上位のテーブルを、図12に示される圧縮
されないテーブルに変化させ得るだけである。この例に
おいて、第1のプレフィックスは、第2のプレフィック
スのプレフィックスである。
【0057】検索キー・セグメントの関係のあるビッ
ト、従って図12における有効なインデックスの関係の
あるビットは、以下のプレフィックス・マスクによって
3つのプレフィックスに対して表される。
【0058】
【表8】
【0059】対応するプレフィックス・マスクによって
指示されるこれらの有効なインデックスの関係のあるビ
ット間のXOR積は、
【0060】
【表9】
【0061】第1のXOR積は、プレフィックスのプレ
フィックスを指示するゼロに等しい。それから、これら
の有効なインデックスfおよびgに対応する2つのプレ
フィックス・マスク11110000bおよび1111
1100bのXOR積を取ると、00001100bの
結果になる。第2のステップにおいて、このXOR積と
同じ位置で1にセットされたビットを有するインデック
ス・マスクだけが生成される。これは、以下のテーブル
に示される。
【0062】
【表10】
【0063】両方の非ゼロXOR積に対して非ゼロ・ビ
ット単位AND積をもたらす第1のインデックス・マス
クは、01001100b(ステップ6)である。これ
は、図13において用いられる最適のインデックス・マ
スクである。
【0064】プログラミング言語“C”での元の実施例
は、ここに述べられる圧縮インデックス生成を実行する
ための以下の方法に変更され得る。
【0065】
【表11】
【0066】まとめとして、本発明の構成に関して以下
の事項を開示する。 (1)保管テーブルを備える木構造データベースにおけ
る順次的プレフィックス検索により、および一定の長さ
の各検索キーの連続するセグメントを評価することによ
り、前記入力検索キーに応答して出力情報を決定する方
法であって、a)検索キー・セグメントを評価する少な
くとも1つのステップにおいて、前記セグメントの選択
されたビットは、そのセグメントに関連した保管テスト
値のテーブルにアクセスするための圧縮インデックスと
して使用され、b)前記圧縮インデックスによってアク
セスされた前記テスト値は、前記評価された検索キー・
セグメントの少なくとも残りの部分と比較され、前記比
較結果は、さらにいっそうの処理または前記検索プロシ
ージャの結果を決定する方法。 (2)圧縮インデックスを決定するための前記検索キー
のセグメントの前記ビットの選択は、事前記憶インデッ
クス・マスクを用いるマスキング・オペレーションによ
って行われる上記(1)に記載の方法。 (3)前記事前記憶インデックス・マスクは、前記選択
されたセグメント・ビットによって指示され、かつ前記
個別テスト値を含むテーブルへのポインタをさらに含む
テーブル・エントリから得られる上記(2)に記載の方
法。 (4)評価された検索キー・セグメントから、圧縮イン
デックスを構成するビットを選択するインデックス・マ
スクを生成するために、a)前記個別検索キー・セグメ
ントにおいて発生可能であり、前記指示されたテーブル
内に保管された前記テスト値に対応し、そこからビット
が選択される全ての有効なインデックス値から対状XO
R積を生成するステップと、b)各暫定インデックス・
マスクにおける単一の1ビットから始め、前記暫定イン
デックス・マスクにおける増加する多数の1ビットに移
り、そこからビットが選択される前記検索キー・セグメ
ントにおけるビットの数と等しい総数のビットを各々含
む暫定インデックス・マスクを順次的に作成するステッ
プと、c)前記作成された暫定インデックス・マスクの
各々に関して、前記個別暫定インデックス・マスクとス
テップ(a)においてあらかじめ生成された前記XOR
積の全てとの間のビット単位AND積を連続して生成す
るステップと、d)暫定インデックス・マスクに関して
生成された前記AND積の各々が、少なくとも1つの1
ビットを含む場合には、前記プロシージャを終了し、前
記個別検索キー・セグメントに対する最適のインデック
ス・マスクとして前記個別暫定インデックス・マスクを
保管するステップとを含む上記(1)または(2)に記
載の方法。 (5)前記個別検索キー・セグメントにおいて発生可能
であり、各々がkビットを含む全ての有効なインデック
ス値に対して対状XOR積を生成する時に、ステップ
(a)の間に、前記可能なXOR積の1つへ各々割り当
てられた2kビット位置を備えるXOR積ビット・ベク
トルを与え、全ての生成されたXOR積がステップ
(c)における前記AND積の生成まで保存される必要
があるわけではないように、特定XOR積の生成の後
に、前記XORビット・ベクトルにおける前記個別ビッ
ト位置を1にセットする付加的なサブステップを含む上
記(4)に記載の方法。 (6)新しい有効なテスト値および対応するインデック
ス値を挿入する必要がある場合に、前記検索データ構造
を更新するために、全ての有効なインデックス値に基づ
き請求項4に従って、関連した各インデックス・マスク
を新たに計算し、前記新しいインデックス・マスクを組
み込むステップを含む上記(1)または(2)に記載の
方法。 (7)プレフィックス・マスクが、少なくとも1つの特
定テスト値と共にテーブル内に付加的に保管され、個別
エントリが圧縮インデックスによってアクセスされる時
に、前記プレフィックス・マスクによって選択された前
記個別テスト値のビットだけが前記評価された検索キー
・セグメントと比較され、従って、ビットの共通サブグ
ループを含むいくつかの有効なテスト値に対して、プレ
フィックス・マスクを有する1つのテスト値だけが保管
されることを必要とし、縮小圧縮インデックス値が使用
可能である上記(1)または(2)に記載の方法。 (8)保管テーブルを備えるデータ構造における順次的
なプレフィックス検索により、および一定の長さの各検
索キーの連続するセグメントを評価することにより、前
記入力検索キーに応答して出力情報を決定するためのデ
ータ構造であって、評価される少なくとも1つの検索キ
ー・セグメントと、a)前記関連した検索キー・セグメ
ントからビット位置を選択して圧縮インデックスを得る
ための保管インデックス・マスクと、b)前記関連した
検索キー・セグメントの現行値と比較されるテスト値を
含むノード・テーブルとを備え、前記ノード・テーブル
は、前記保管テスト値の1つを得るために、前記保管イ
ンデックス・マスクで選択された前記圧縮インデックス
・ビットによってアクセスされるデータ構造。 (9)固有の識別を可能にするため、および前記個別セ
グメントに関連した全ての可能な有効なテスト値を含む
前記関連したテーブルに含まれた各テスト値のアクセス
のために、検索キー・セグメントから最小数のビット
を、前記インデックス・マスクが選択するように設計さ
れた上記(8)に記載のデータ構造。
【図面の簡単な説明】
【図1】フル検索キーを用いる1ステップ・フル検索手
順を示す図である。
【図2】フル・ルックアップ・テーブルを用いるセグメ
ント化検索手順を説明する図である。
【図3】テーブルへのインデックスとして検索キー・セ
グメントを使用する部分検索を示す図である。
【図4】圧縮ルックアップ・テーブルを用いる本発明、
および圧縮テーブルにアクセスするための圧縮インデッ
クスとしての検索キー・セグメントの選択されたビット
の使用法の基本的な説明であり、また、ビット選択のた
めのインデックス・マスクを示す。
【図5】検索のいくつかの選択された段階において、イ
ンデックス・マスクおよび圧縮インデックスを用いるマ
ルチレベル最長マッチング・プレフィックス検索を示す
図である。
【図6】図5に示される構成における検索手順のフロー
図である。
【図7】ストレージ・スペースおよび最適のインデック
ス・マスクの生成の際の処理時間を節約するために使用
可能なXOR積ビット・ベクトルを説明する図である。
【図8】共通部分を有する保管テスト値にアクセスする
ための圧縮インデックスを用いる例を示す図である。
【図9】同一の部分を有するテスト値の場合において、
ストレージ・スペースおよび検索時間を節約するため
の、図8の例に対するプレフィックス・マスクの使用を
説明する図である。
【図10】ビット・マスクによって生成された圧縮イン
デックスを用い、補足的にプレフィックス・マスクを用
いる、圧縮テーブルにおける段階的な検索を説明する図
である。
【図11】図10に示される構成における検索手順のフ
ロー図である。
【図12】改良圧縮を可能にするインデックス値間の関
係を用いる圧縮されないテーブルを示す図である。
【図13】改良圧縮方法に起因する、図12の例に対す
る圧縮検索テーブルを説明する図である。
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B075 KK03 ND20 ND36 NK02 NR05 NR20 QS11 5K030 KA05 LB05

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】保管テーブルを備える木構造データベース
    における順次的プレフィックス検索により、および一定
    の長さの各検索キーの連続するセグメントを評価するこ
    とにより、前記入力検索キーに応答して出力情報を決定
    する方法であって、 a)検索キー・セグメントを評価する少なくとも1つの
    ステップにおいて、前記セグメントの選択されたビット
    は、そのセグメントに関連した保管テスト値のテーブル
    にアクセスするための圧縮インデックスとして使用さ
    れ、 b)前記圧縮インデックスによってアクセスされた前記
    テスト値は、前記評価された検索キー・セグメントの少
    なくとも残りの部分と比較され、前記比較結果は、さら
    にいっそうの処理または前記検索プロシージャの結果を
    決定する方法。
  2. 【請求項2】圧縮インデックスを決定するための前記検
    索キーのセグメントの前記ビットの選択は、事前記憶イ
    ンデックス・マスクを用いるマスキング・オペレーショ
    ンによって行われる請求項1に記載の方法。
  3. 【請求項3】前記事前記憶インデックス・マスクは、前
    記選択されたセグメント・ビットによって指示され、か
    つ前記個別テスト値を含むテーブルへのポインタをさら
    に含むテーブル・エントリから得られる請求項2に記載
    の方法。
  4. 【請求項4】評価された検索キー・セグメントから、圧
    縮インデックスを構成するビットを選択するインデック
    ス・マスクを生成するために、 a)前記個別検索キー・セグメントにおいて発生可能で
    あり、前記指示されたテーブル内に保管された前記テス
    ト値に対応し、そこからビットが選択される全ての有効
    なインデックス値から対状XOR積を生成するステップ
    と、 b)各暫定インデックス・マスクにおける単一の1ビッ
    トから始め、前記暫定インデックス・マスクにおける増
    加する多数の1ビットに移り、そこからビットが選択さ
    れる前記検索キー・セグメントにおけるビットの数と等
    しい総数のビットを各々含む暫定インデックス・マスク
    を順次的に作成するステップと、 c)前記作成された暫定インデックス・マスクの各々に
    関して、前記個別暫定インデックス・マスクとステップ
    (a)においてあらかじめ生成された前記XOR積の全
    てとの間のビット単位AND積を連続して生成するステ
    ップと、 d)暫定インデックス・マスクに関して生成された前記
    AND積の各々が、少なくとも1つの1ビットを含む場
    合には、前記プロシージャを終了し、前記個別検索キー
    ・セグメントに対する最適のインデックス・マスクとし
    て前記個別暫定インデックス・マスクを保管するステッ
    プとを含む請求項1または2に記載の方法。
  5. 【請求項5】前記個別検索キー・セグメントにおいて発
    生可能であり、各々がkビットを含む全ての有効なイン
    デックス値に対して対状XOR積を生成する時に、ステ
    ップ(a)の間に、 前記可能なXOR積の1つへ各々割り当てられた2k
    ット位置を備えるXOR積ビット・ベクトルを与え、全
    ての生成されたXOR積がステップ(c)における前記
    AND積の生成まで保存される必要があるわけではない
    ように、特定XOR積の生成の後に、前記XORビット
    ・ベクトルにおける前記個別ビット位置を1にセットす
    る付加的なサブステップを含む請求項4に記載の方法。
  6. 【請求項6】新しい有効なテスト値および対応するイン
    デックス値を挿入する必要がある場合に、前記検索デー
    タ構造を更新するために、全ての有効なインデックス値
    に基づき請求項4に従って、関連した各インデックス・
    マスクを新たに計算し、前記新しいインデックス・マス
    クを組み込むステップを含む請求項1または2に記載の
    方法。
  7. 【請求項7】プレフィックス・マスクが、少なくとも1
    つの特定テスト値と共にテーブル内に付加的に保管さ
    れ、個別エントリが圧縮インデックスによってアクセス
    される時に、前記プレフィックス・マスクによって選択
    された前記個別テスト値のビットだけが前記評価された
    検索キー・セグメントと比較され、従って、ビットの共
    通サブグループを含むいくつかの有効なテスト値に対し
    て、プレフィックス・マスクを有する1つのテスト値だ
    けが保管されることを必要とし、縮小圧縮インデックス
    値が使用可能である請求項1または2に記載の方法。
  8. 【請求項8】保管テーブルを備えるデータ構造における
    順次的なプレフィックス検索により、および一定の長さ
    の各検索キーの連続するセグメントを評価することによ
    り、前記入力検索キーに応答して出力情報を決定するた
    めのデータ構造であって、 評価される少なくとも1つの検索キー・セグメントと、 a)前記関連した検索キー・セグメントからビット位置
    を選択して圧縮インデックスを得るための保管インデッ
    クス・マスクと、 b)前記関連した検索キー・セグメントの現行値と比較
    されるテスト値を含むノード・テーブルとを備え、 前記ノード・テーブルは、前記保管テスト値の1つを得
    るために、前記保管インデックス・マスクで選択された
    前記圧縮インデックス・ビットによってアクセスされる
    データ構造。
  9. 【請求項9】固有の識別を可能にするため、および前記
    個別セグメントに関連した全ての可能な有効なテスト値
    を含む前記関連したテーブルに含まれた各テスト値のア
    クセスのために、検索キー・セグメントから最小数のビ
    ットを、前記インデックス・マスクが選択するように設
    計された請求項8に記載のデータ構造。
JP2001155823A 2000-05-29 2001-05-24 圧縮検索テーブルを用いるプレフィックス検索方法およびデータ構造 Expired - Fee Related JP3782950B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP00810468 2000-05-29
EP00810468.9 2000-05-29

Publications (2)

Publication Number Publication Date
JP2002033769A true JP2002033769A (ja) 2002-01-31
JP3782950B2 JP3782950B2 (ja) 2006-06-07

Family

ID=8174733

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001155823A Expired - Fee Related JP3782950B2 (ja) 2000-05-29 2001-05-24 圧縮検索テーブルを用いるプレフィックス検索方法およびデータ構造

Country Status (4)

Country Link
US (1) US6782382B2 (ja)
JP (1) JP3782950B2 (ja)
IE (1) IE20010248A1 (ja)
TW (1) TW494322B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018060370A (ja) * 2016-10-05 2018-04-12 富士通株式会社 検索プログラム、検索方法、および検索装置

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7966421B2 (en) * 2000-06-21 2011-06-21 SAtech Group, A.B. Limited Liability Company Method and apparatus for logically expanding the length of a search key
US7274697B2 (en) * 2000-11-16 2007-09-25 Tensilica, Inc. Fast IP route lookup with 16/K and 16/Kc compressed data structures
US7227842B1 (en) 2001-04-24 2007-06-05 Tensilica, Inc. Fast IP packet classification with configurable processor
US7007101B1 (en) * 2001-11-09 2006-02-28 Radisys Microware Communications Software Division, Inc. Routing and forwarding table management for network processor architectures
US7058642B2 (en) * 2002-03-20 2006-06-06 Intel Corporation Method and data structure for a low memory overhead database
US7162481B2 (en) * 2002-12-06 2007-01-09 Stmicroelectronics, Inc. Method for increasing storage capacity in a multi-bit trie-based hardware storage engine by compressing the representation of single-length prefixes
US7782853B2 (en) * 2002-12-06 2010-08-24 Stmicroelectronics, Inc. Apparatus and method of using fully configurable memory, multi-stage pipeline logic and an embedded processor to implement multi-bit trie algorithmic network search engine
US7702882B2 (en) * 2003-09-10 2010-04-20 Samsung Electronics Co., Ltd. Apparatus and method for performing high-speed lookups in a routing table
US7747599B1 (en) 2004-07-23 2010-06-29 Netlogic Microsystems, Inc. Integrated search engine devices that utilize hierarchical memories containing b-trees and span prefix masks to support longest prefix match search operations
US8886677B1 (en) 2004-07-23 2014-11-11 Netlogic Microsystems, Inc. Integrated search engine devices that support LPM search operations using span prefix masks that encode key prefix length
CN100383785C (zh) * 2004-08-29 2008-04-23 华为技术有限公司 一种传输网管系统中路径的搜索方法
CN100442766C (zh) * 2005-07-08 2008-12-10 华为技术有限公司 数据通信设备转发业务的实现方法
US7921088B1 (en) * 2005-07-22 2011-04-05 X-Engines, Inc. Logical operations encoded by a function table for compressing index bits in multi-level compressed look-up tables
US7430560B1 (en) * 2005-07-22 2008-09-30 X-Engines, Inc. Multi-level compressed lock-up tables formed by logical operations to compress selected index bits
US7565491B2 (en) * 2005-08-04 2009-07-21 Saffron Technology, Inc. Associative matrix methods, systems and computer program products using bit plane representations of selected segments
US20070094118A1 (en) * 2005-10-21 2007-04-26 Elke Becker Exposure management system and method
US7827218B1 (en) 2006-11-18 2010-11-02 X-Engines, Inc. Deterministic lookup using hashed key in a multi-stride compressed trie structure
US7953721B1 (en) 2006-11-27 2011-05-31 Netlogic Microsystems, Inc. Integrated search engine devices that support database key dumping and methods of operating same
US7831626B1 (en) * 2006-11-27 2010-11-09 Netlogic Microsystems, Inc. Integrated search engine devices having a plurality of multi-way trees of search keys therein that share a common root node
US7987205B1 (en) 2006-11-27 2011-07-26 Netlogic Microsystems, Inc. Integrated search engine devices having pipelined node maintenance sub-engines therein that support database flush operations
US8086641B1 (en) 2006-11-27 2011-12-27 Netlogic Microsystems, Inc. Integrated search engine devices that utilize SPM-linked bit maps to reduce handle memory duplication and methods of operating same
US8645620B2 (en) * 2007-06-29 2014-02-04 International Business Machines Corporation Apparatus and method for accessing a memory device
US20090249255A1 (en) * 2008-03-31 2009-10-01 Nils Haustein Method of and System for Adaptive Suggestion of Directories When Saving Files
US20100114745A1 (en) * 2008-10-30 2010-05-06 Sap Ag System and method for calculating and applying market data change rate sets
US8583539B2 (en) * 2011-08-31 2013-11-12 Sap Ag Enablement of exposure management to handle priced exposure
US8612402B1 (en) 2012-10-26 2013-12-17 Stec, Inc. Systems and methods for managing key-value stores
US9772864B2 (en) * 2013-04-16 2017-09-26 Arm Limited Methods of and apparatus for multidimensional indexing in microprocessor systems
US9246681B2 (en) * 2013-12-23 2016-01-26 Tec Solutions, Inc. Use of 32-bit random numbers to produce cipher key stream for 8-bit data stream
US10229146B2 (en) * 2015-04-20 2019-03-12 International Business Machines Corporation Index masking based on insert contention ratio
US11030714B2 (en) * 2018-01-27 2021-06-08 Microsoft Technology Licensing, Llc. Wide key hash table for a graphics processing unit

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08320829A (ja) * 1994-09-09 1996-12-03 Hitachi Ltd データ処理装置
JPH10257066A (ja) * 1997-03-13 1998-09-25 Mitsubishi Electric Corp ネットワークアドレス検索方式
WO1999014906A1 (en) * 1997-09-15 1999-03-25 Effnet Group Ab Method and system for fast routing lookups
JPH11275082A (ja) * 1998-03-19 1999-10-08 Fujitsu Ltd マルチライン対応のセルヘッダー変換装置及びその方法
JP2000196670A (ja) * 1998-12-25 2000-07-14 Fujitsu Ltd 高速検索方法及び高速検索装置
WO2000070832A1 (en) * 1999-05-12 2000-11-23 International Business Machines Corporation Longest matching prefix lookup
JP2001326679A (ja) * 2000-05-15 2001-11-22 Fujitsu Ltd 情報装置、テーブル検索装置、テーブル検索方法、及び記録媒体

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU620994B2 (en) * 1989-07-12 1992-02-27 Digital Equipment Corporation Compressed prefix matching database searching
US5276868A (en) * 1990-05-23 1994-01-04 Digital Equipment Corp. Method and apparatus for pointer compression in structured databases
US5813001A (en) 1993-10-22 1998-09-22 Nodel Corporation Method for performing optimized intelligent searches of knowledge bases using submaps associated with search objects
US5946679A (en) * 1997-07-31 1999-08-31 Torrent Networking Technologies, Corp. System and method for locating a route in a route table using hashing and compressed radix tree searching
FI982095A (fi) 1998-09-29 2000-03-30 Nokia Networks Oy Menetelmä muistin toteuttamiseksi ja muistijärjestely
US6490592B1 (en) * 1999-12-30 2002-12-03 Nortel Networks Limited Method of and apparatus for generating a tree data structure supporting longest match lookup

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08320829A (ja) * 1994-09-09 1996-12-03 Hitachi Ltd データ処理装置
JPH10257066A (ja) * 1997-03-13 1998-09-25 Mitsubishi Electric Corp ネットワークアドレス検索方式
WO1999014906A1 (en) * 1997-09-15 1999-03-25 Effnet Group Ab Method and system for fast routing lookups
JPH11275082A (ja) * 1998-03-19 1999-10-08 Fujitsu Ltd マルチライン対応のセルヘッダー変換装置及びその方法
JP2000196670A (ja) * 1998-12-25 2000-07-14 Fujitsu Ltd 高速検索方法及び高速検索装置
WO2000070832A1 (en) * 1999-05-12 2000-11-23 International Business Machines Corporation Longest matching prefix lookup
JP2001326679A (ja) * 2000-05-15 2001-11-22 Fujitsu Ltd 情報装置、テーブル検索装置、テーブル検索方法、及び記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018060370A (ja) * 2016-10-05 2018-04-12 富士通株式会社 検索プログラム、検索方法、および検索装置

Also Published As

Publication number Publication date
US20020002549A1 (en) 2002-01-03
US6782382B2 (en) 2004-08-24
JP3782950B2 (ja) 2006-06-07
TW494322B (en) 2002-07-11
IE20010248A1 (en) 2002-07-24

Similar Documents

Publication Publication Date Title
JP2002033769A (ja) 圧縮検索テーブルを用いるプレフィックス検索方法およびデータ構造
US6434144B1 (en) Multi-level table lookup
US6665297B1 (en) Network routing table
US5983223A (en) Method and apparatus for determining a longest matching prefix from a dictionary of prefixes
US6553002B1 (en) Apparatus and method for routing data packets through a communications network
US7418505B2 (en) IP address lookup using either a hashing table or multiple hash functions
US8295286B2 (en) Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware
US6697363B1 (en) Method and apparatus for longest matching prefix determination in a communication network
US7715385B2 (en) Default route coding
US6956858B2 (en) Network routing table and packet routing method
US6526055B1 (en) Method and apparatus for longest prefix address lookup
KR101028470B1 (ko) Ip주소 검색을 위한 장치 및 방법
US8880507B2 (en) Longest prefix match using binary search tree
US20050171959A1 (en) Efficient ipv4/ipv6 best matching prefix method and apparatus
JP4995125B2 (ja) 固定長データの検索方法
US7047317B1 (en) High performance network address processor system
US7478109B1 (en) Identification of a longest matching prefix based on a search of intervals corresponding to the prefixes
US6917954B2 (en) Load balancing in IP address lookup
US20050114393A1 (en) Dynamic forwarding method using binary search
KR100424244B1 (ko) 출력 결정 방법 및 저장된 데이터 구조체
Bahrambeigy et al. Towards Accelerating IP Lookups on Commodity PC Routers using Bloom Filter: Proposal of Bloom-Bird
KR20050043035A (ko) 복수의 해슁 함수를 이용한 ip 어드레스 검색 방법 및하드웨어 구조
McLaughlin et al. High-speed ip address lookups using hardware based tree structures

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040120

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040412

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040415

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040810

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20041109

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20041112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050524

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050805

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050826

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051117

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: 20060221

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060313

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