JP2003196295A - ツリー型知識ベース検索のルックアップ・パフォーマンスを向上させる方法 - Google Patents

ツリー型知識ベース検索のルックアップ・パフォーマンスを向上させる方法

Info

Publication number
JP2003196295A
JP2003196295A JP2002364518A JP2002364518A JP2003196295A JP 2003196295 A JP2003196295 A JP 2003196295A JP 2002364518 A JP2002364518 A JP 2002364518A JP 2002364518 A JP2002364518 A JP 2002364518A JP 2003196295 A JP2003196295 A JP 2003196295A
Authority
JP
Japan
Prior art keywords
search
memory
node
decision tree
tree structure
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
Application number
JP2002364518A
Other languages
English (en)
Other versions
JP2003196295A5 (ja
Inventor
Betty A Mcdaniel
エー.マックダニエル ベティ
William Edward Baker
エドワード ベイカー ウィリアム
Narender R Vangati
アール.ヴァンガテ ナレンダー
Mauricio Calle
カレ マーリシオ
James T Kirk
テー.カーク ジェームス
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.)
Agere Systems LLC
Original Assignee
Agere Systems LLC
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 Agere Systems LLC filed Critical Agere Systems LLC
Publication of JP2003196295A publication Critical patent/JP2003196295A/ja
Publication of JP2003196295A5 publication Critical patent/JP2003196295A5/ja
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • 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
    • Y10S706/00Data processing: artificial intelligence
    • Y10S706/902Application using ai with detail of the ai system
    • Y10S706/934Information retrieval or Information management
    • 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/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 【課題】 ツリー型知識ベース検索のルックアップ・パ
フォーマンスを向上させる方法を提供すること。 【解決手段】 知識ベースを表す決定ツリーが、少なく
とも2つの決定ツリー部分に区分される。低位部分は、
ツリーの入口点を含み、決定ツリーの終端エレメントを
含む上位部分よりもアクセス時間が高速なメモリ・エレ
メントに記憶される。したがって、ツリー・エントリを
読み取って、それらを検索対象と比較するプロセスの
間、ツリーの低位部分の検索エントリを、上位部分の検
索エントリよりも高速に読み取ることができ、その結
果、決定ツリー全体にわたるトラバースがより高速化す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般に、知識ベー
スのツリー型検索、より詳細には、検索プロセスの速度
を向上させるためにローカル・メモリを使用することに
関する。
【0002】
【従来の技術】多くの様々なアプリケーションでは、所
与の検索対象とのマッチを突き止めるために、エレメン
トから成る大きいデータベース(知識ベースとも呼ばれ
る)の検索を必要とする。ある種のアプリケーションで
は、検索対象および知識ベースのエレメントがバイナリ
・ビットのストリングを含む。このようなアプリケーシ
ョンの例として、通信システムのブリッジが挙げられ
る。
【0003】典型的な通信システムは、複数の接続を介
して通信を行う、多数の装置またはノードを含む。この
ようなシステムは、複数のローカル接続で編成されてお
り、そのローカル接続それぞれに、限定された数のノー
ドが関連付けられている(接続されている)。ブリッジ
のネットワークは、ローカル接続と相互接続するので、
各装置は、同じローカル接続に関連付けられていないそ
の他の装置と通信を行うことができる。各ローカル接続
のブリッジは、ネットワーク中のその他のブリッジから
の入力トラフィックを監視して、別のブリッジを起点と
するトラフィックが、自分にローカルに接続されている
ノードにアドレス指定されているかどうかを判定する。
ブリッジは、応答して、情報がローカル接続に通過でき
るようにする経路を提供する。同様に、情報が、そのロ
ーカル接続を発信元として外部の宛先ノードに宛てられ
る場合は、ブリッジは、そのローカル接続から、宛先ノ
ードへの経路上の次のブリッジまで、その情報が通過で
きるようにする。
【0004】一般に、ノード間で運ばれる情報は、シス
テム中を、発信元ノードから宛先ノードへと進むバイナ
リ・ビットのパケットという形をとる。パケットは、一
般に、パケットの発信元ノードおよび宛先ノードのアド
レスを識別するビットを含む。あるアドレス指定プロト
コルでは、パケットのアドレス部分が48ビット長であ
り、パケットの残りの部分がペイロード情報ビットを含
む。
【0005】ある種のシステムでは、ブリッジが、内部
で生成されるトラフィック(すなわち、そのブリッジに
直接、接続されているノードを発信元とするトラフィッ
ク)、および、外部で生成され、ネットワークのすべて
のブリッジに同時通信されるトラフィック(すなわち、
そのブリッジの外部にあるノードを発信元とするトラフ
ィック)の両方を監視する。例えば、ローカル・エリア
・ネットワークを介して同時通信される情報は、ネット
ワークのすべてのノードを対象としていない場合もある
が、しかし、各ネットワーク・ブリッジはそれを監視し
て、指定されている宛先ノードのいずれかがそのブリッ
ジに接続されているかどうかを判定する。この分析は、
各ブリッジにおいて、そのブリッジのローカル接続上に
ある各ノードがエントリを有する、知識ベースを維持す
ることによって実施される。したがって、ブリッジは、
外部から発信されたパケットを受け取り、その知識ベー
スを検索して、48ビットの宛先アドレスが自分のロー
カル接続上に位置するノード・アドレスのいずれかとマ
ッチするかどうかを判定する。宛先アドレス(すなわち
検索対象)は、248個、すなわち約280兆個の可能
なアドレスのいずれか1つの値を持ち得る。しかし、ブ
リッジの知識ベース中のエントリ数は、それにローカル
に接続されているノード数と等しくなるだけであり、従
って、280兆よりもかなり少なくなる。
【0006】所与の検索対象とのマッチを決定するため
に知識ベースを検索することは、多くの様々なアプリケ
ーションの重要な要件である。例えば、次のアプリケー
ションは、高速検索のパフォーマンスに大きく依存して
いる。すなわち、データベースの検索、エキスパート・
システム、ロボットによる状態管理戦略、例えば音声お
よび画像認識を含む信号認識、例えば、ブリッジング、
ルーティング、スイッチングアプリケーションのための
データ圧縮およびプロトコル処理を含む通信、自然言語
認識システム、モデリング・オペレーション、パーサ、
およびコンパイラ。
【0007】どの検索スキームにおいても、その重要な
属性の1つは、最悪の場合の検索完了所要時間である。
一般に、検索スキームは、それぞれが完了するのに所定
の時間がかかる、複数のステップまたはサイクルで実施
される。したがって、検索を完了するための最大時間
は、一般に、検索の各ステップに費やされる時間を最小
限に抑えることによって削減される。
【0008】ある普及している従来技術の検索スキーム
では、検索が開始するルート(根)の部分、中間のブラ
ンチ(枝)、そして最後に、最終決定またはマッチが発
生する複数の葉を備えたツリー(木)として、検索空間
を編成している。例示のツリー構造を図1に示す。この
図では、エントリまたは決定ポイントが、ブランチによ
って相互接続されている。各決定ポイントには、入力ビ
ット・パターン(検索対象とも呼ぶ)を分析するため
の、また、それに応答して、次の該当する決定ポイント
にそのビット・パターンを送るための命令またはビット
・パターンが存在している。
【0009】図1のツリーは、円で表したノードが縦に
並んでいる5つの列が示す、5レベルの分析またはエン
トリを備えている。開始ステップ12で、5キャラクタ
の語または記号(検索対象)、例えばキャラクタAFG
Z3を決定ツリーに入力する。決定ポイント14で、こ
の記号の最も重要なキャラクタがツリー・エントリと比
較され、分析は、記号Aを表すブランチ16に沿って、
決定ポイント18に進む。そこから、プロセスは、ブラ
ンチ20、決定ポイント22、ブランチ24、決定ポイ
ント26、ブランチ28、決定ポイント30、そして最
終的に、通常、ツリーの葉と呼ばれるブランチ32へと
進む。この葉において、記号は復号され、その葉に関連
する適切なアクションまたは決定が実行される。
【0010】当業者には、ツリーの各エントリでの決定
プロセスが、処理装置を使って、第1のエントリの記号
の第1の数字と、入力記号の第1の数字を比べることに
よって実行されることが知られている。第1の比較の結
果から、プロセスが進む次のブランチが決定される。プ
ロセッサは、第2のエントリの記号を取り出して、入力
記号の第2のグループを第2のエントリの記号と比較す
る。決定エントリに到達するまで、検索対象がツリーを
通って処理されるのに伴い、これらの取り出しステップ
と比較ステップが交互に実行される。
【0011】図1のような決定ツリーは、プログラム・
メモリ中に記憶されている。ツリーの各ノードは命令で
あり、各命令のフィールドは、命令の結果に基づいて、
プロセッサを向けるツリーのブランチ(リンク)を指定
する。プロセスは、次いで、示されたブランチに沿っ
て、ツリーの次のノードに進む。葉は決定プロセスの終
了を表し、したがって、それぞれにおいて特定のアクシ
ョンを命令するので、これらの葉には特別な命令が含ま
れている。
【0012】図1を見ると、ツリーのルートは第1のノ
ード、ノード14である。ノード14への命令が、プロ
グラム・メモリのアドレス0に記憶されていると想定す
る。さらに、この命令が、アルファベットの各文字をノ
ードにマップすると想定する(すなわち、この命令また
はノード14から26本のブランチが出る)。このプロ
セスのための次のノードを見つけるために、現在のノー
ドのメモリ・アドレス(この例ではゼロ)をマッチする
キャラクタに関連するアドレス・オフセットに追加す
る。文字Aのオフセット・アドレスは10、Bのオフセ
ット・アドレスは11、Cのオフセット・アドレスは1
2、というように想定する。したがって、図1のノード
18は、メモリ・アドレス10(基底アドレス、ゼロに
Aのオフセット・アドレス10をプラスする)に位置す
る。文字Bへの経路は、メモリ・アドレス11に通じ、
文字Cへの経路はメモリ・ロケーション12に通じる。
図1の例は、可能なマッチング値としてA、B、Cしか
含まないため、ノード14に入力されるアルファベット
のその他の文字(DからZまで)はすべて、メモリ・ロ
ケーション13から35までに向けられ、それらのメモ
リ・ロケーションのそれぞれは、入力パターンがツリー
の中のどのロケーションにもマッチしなかったことを示
す葉の命令を含む。
【0013】入力された対象はAで始まるため、プロセ
スは、ノード18(メモリ・ロケーション10)に向け
られる。ノード18は、3つの命令または3つの可能性
あるパターン・マッチ、およびそのそれぞれに関連する
メモリ・アドレス・オフセットを含む。パターン・マッ
チがDで、Dブランチのオフセット・アドレスが1なら
ば、プロセスは、メモリ・ロケーション11または図1
のノード19に進む。パターン・マッチがEで、Eのオ
フセット・アドレスが2ならば、プロセスはメモリ・ロ
ケーション12に進む。パターン・マッチがFで、Fの
オフセット・アドレスが3ならば、プロセスはメモリ・
ロケーション13に、またはリンク20を介してノード
22に進む。この命令またはノードにマッチが全くない
場合は、プロセスはオフセット・アドレス4、またはノ
ード23に向けられる。ここには、特別な命令を備えた
葉が配置されている。図1に示す入力記号(すなわちA
F)については、プロセスは、リンク20を介してノー
ド22(メモリ・ロケーション13)に進む。
【0014】ツリーの残りの層について、このプロセス
が続く。ツリーの各ノードは、プロセッサに命令を供給
し、各命令は、プロセッサに、その次の入力ビットを解
釈して、その次の命令のアドレスを決定する方法を知ら
せる。
【0015】
【発明が解決しようとする課題】データ・ネットワーク
の分類エンジンは、一般に、ツリー検索プロセスを利用
して、ネットワーク装置に入ってくる各データ・パケッ
トまたはデータ・ブロックに関連するさまざまな特徴を
判定する。すなわち、1つまたは複数のデータ属性に従
って、入力データを分類する。従来、データはバイナリ
・ビットという形で供給されるため、分類エンジンは、
入力ビットのグループを、ツリー構造中のエントリで表
されている既知のビット・パターンと比較する。入力ビ
ットのグループとツリー・エントリのビットの間にマッ
チがあると、プロセスは、ツリーの中の次の連続したエ
ントリに向かう。マッチング・プロセスは、末端部に到
達するまで、ツリーの各エントリを通って進行し、エン
ド・ポイントでは、入力ビットは特徴付けが完了してい
る。データ・ネットワークでは多数のビットを分類しな
ければならないため、これらのツリーは、何メガビット
ものメモリ記憶容量を必要とすることがある。
【0016】
【課題を解決するための手段】分類プロセスは、データ
通信ネットワークにおいて、様々に使用されている。入
力データ・パケットは、決定経路が異なるネットワーク
優先度レベルを表すツリー構造を使用している、パケッ
ト内の優先度指標に基づいて、分類することができる。
入力ビットと、利用可能なネットワーク優先度レベルを
表すツリー・ビットの間のマッチに基づいて、各パケッ
トの優先度レベルが決定されると、パケットを優先度の
順に処理することができる。その結果、時間に依存する
パケット(例えば、ビデオ会議のデータを運ぶパケッ
ト)は、時間に依存しないパケット(ファイル転送プロ
トコル(FTP)データの転送)の前に処理される。そ
の他のパケット分類プロセスでは、(例えば、ファイア
ウォールが1つまたは複数の発信元からのデータをすべ
てブロックできるように)パケットの発信元を判定し、
パケット・プロトコルを調べて、どのウェブ・サーバが
最もよくデータを供給することができるかを判定し、ま
たは、ネットワーク利用者の支払い請求情報を判定す
る。処理のためにネットワーク・プロセッサがデータ・
ブロックに分割したパケットを、リアセンブリするため
に必要な情報も、分類エンジンが、データ・ブロック中
のあるフィールドを調べることによって決定することが
できる。パケットはまた、それらの宛先アドレスに従っ
て分類することもでき、それによって、パケットを、そ
れらが通信媒体をトラバースするうちに出会うであろう
次の装置に応じて、まとめることができる。
【0017】分類プロセスを実行するためのツリー構造
は、複数のメモリ・エレメントに分離され、それによっ
て、プロセッサは、ツリー構造の諸レベルへの並列かつ
同時アクセスができる。本発明によれば、ツリーの1つ
または複数の低位レベルのブランチを、分類エンジン
(すなわちプロセッサ)とともにオンチップに記憶する
ことができ、それによって、低位レベルのツリー・エン
トリの読取りサイクル時間を短くすることができる。有
利には、低位レベルのツリー・エントリは、ツリーのル
ートの近くに現れるため、数が少ない。したがって、オ
ンチップ記憶の要件は、ツリー全体に対する記憶要件よ
りもかなり少ない。
【0018】本発明は、本発明の説明および添付の図面
を参照して考察すると、より容易に理解でき、また、そ
のさらなる利点および使用法が容易に明らかになろう。
【0019】
【発明の実施の形態】本発明の教示によれば、ツリー構
造は、1つまたは複数のメモリ・エレメントに区分さ
れ、それによって、選択したメモリ・エレメント(すな
わち、高速オンチップ・メモリ対低速オフチップ・メモ
リ)に応じて、異なる読取りアクセス時間が利用可能に
なり、したがって、上述のようにノードまたは命令であ
るツリー・エントリのあるものには、その他のものより
も高速にアクセスすることができる。
【0020】図2に示すように、プロセッサ50は、1
つまたは複数のツリー・レベルを表す命令が記憶されて
いるメモリ52および54と、双方向に通信を行う。例
えば、図1のツリー・レベル「1」(ルート・レベルと
呼ぶ)、「2」、「3」は、メモリ52に記憶されてお
り、4、5は、メモリ54に記憶されている。メモリ5
2のメモリ・アクセス時間が、メモリ54のそれよりも
速い場合、メモリ52に記憶されている命令には、メモ
リ54に記憶されている命令に対してよりも速くアクセ
スすることができる。きわめて多数のツリー検索が、ル
ート・メモリにおいて、またはルート・メモリの1つま
たは2つのレベルにおいて終了することがわかってい
る。シミュレーションおよび分析によれば、ツリーの命
令の約30%が、ルート・ツリー・メモリにおいてマッ
チしているという。したがって、ツリーのルートがメモ
リ52に記憶されているのならば、プロセスはおそらく
もっと速く収束するであろう。
【0021】追加のメモリ構造を使用してツリーのレベ
ルを記憶することもできるので、2つの別個のメモリ構
造を使用しているのは例示にすぎない。メモリ・エレメ
ントの最適な数の選定、そのそれぞれのメモリ・アクセ
ス時間要件、および各メモリ・エレメントに記憶される
ツリー・レベルは、入ってくるデータ・ストリーム中に
ある種のパターンが現れる確率を基にすることができ
る。最も確率が高いデータ・パターンが後に続くツリー
・レベルまたはツリー・レベルのセクションは、アクセ
ス時間が最も速いメモリ中に記憶される。例えば、すべ
ての入力パターンは、ツリーの低位レベルをトラバース
し、したがって、これらの低位レベルは、ツリー分析プ
ロセスを高速化するために、読取りサイクル時間が高速
なメモリの中に記憶することができる。
【0022】本発明の教示は、ツリー構造の並列処理に
も適用できる。図3を参照すると、プロセッサ60およ
び61は、それぞれ、低位レベルのツリーのブランチを
記憶するためのローカル・メモリ62および63、およ
び高位レベルのツリーのブランチを記憶するための共用
リモート・メモリ64を備えている。各プロセッサ60
および61は実行エンジンを含み、それぞれが実行パイ
プラインおよびプログラム・メモリを備えている。した
がって、図3の実施形態によれば、各プロセッサ60お
よび61は、それぞれのローカル・メモリを検索してツ
リー検索を実行し、次いで、高位のツリーのブランチに
出会った場合には共用リモート・メモリ64にアクセス
することができる。一実施形態では、ローカル・メモリ
62および63は、それらのそれぞれのプロセッサ60
および61と同じ集積回路上に配置され、したがって、
リモート・メモリ64よりもアクセス時間が速い。
【0023】図4の実施形態では、プロセッサ70は、
ローカル・ルート・メモリ72と通信を行い、処理エン
ジン74は、リモートの非ルート・メモリ76と通信を
行う。あるツリー検索が、もう一方のエンジンのメモリ
中にある命令を参照した場合、後者のプロセッサは、そ
の命令を実行する検索プロセスに対して制御が加えられ
る。さらに高速なメモリ・アクセスを提供するために、
ローカル・メモリ72は、プロセッサ70とともにオン
チップで配置されている。
【0024】別の実施形態では、検索エンジン・プロセ
ッサがマルチスレッドであり、それによって、1つまた
は複数の検索ツリー全体にわたって複数同時検索を実行
することを可能にしている。例えば、メモリ52および
54のそれぞれには、異なるプロセッサ・スレッドを介
してアクセスできるため、図2のプロセッサ50は、ツ
リー構造情報を、メモリ52および54から並行して取
り出すことができ、それによって、分類プロセスの実行
にかかる時間が削減される。
【0025】別の実施形態では、図5に示すように、内
部メモリ80が、プロセッサ82と同じチップ上に含ま
れている。すなわちオンチップである。外部メモリ84
は、オフチップで配置されている。この実施形態では、
ツリーの最も低位の、またはルートのレベル(例えば2
つのレベル)は、ルート・ツリー・メモリと呼ぶ内部メ
モリ80に記憶されている。ルート・レベルではツリー
のブランチの数がより少ないため、内部メモリ80の容
量要件は、相当数の上位レベルに対する容量要件よりも
少ない。後者は、より低速で走ることが可能な、外部メ
モリ84に記憶される(その結果、データ待ち時間が長
くなる)。しかし、これらの高位のツリーのブランチ
は、それほど頻繁にトラバースされないため、この待ち
時間の要因がツリー分析プロセスが実行される速度に与
える影響はより少ない。内部メモリおよび外部メモリを
使用することによって、パイプライン型プロセッサ82
が、そのそれぞれに同時にアクセスすることができる。
また、内部メモリを使用することによって、プロセッサ
82を組み込んでいる集積回路のピンアウト・カウント
が削減され、また、ピン・インタフェースでのインピー
ダンスの不整合による、信号速度の低減が解消される。
別の例示的実施形態では、ツリー構造が、3つのメモリ
・エレメント―そのうち2つのメモリ・エレメントはプ
ロセッサの外部にあり、第3のメモリ・エレメントはオ
ンチップである―に記憶される。
【0026】低位のツリーのブランチをオンチップで記
憶することにより、平均サイズのツリー全体をトラバー
スするのに必要なクロック・サイクル数が、従来の技術
による、約30から40クロック・サイクルから、本発
明の教示によれば2または3クロック・サイクルに低減
されることがわかっている。この特定のツリーの構造に
よれば、検索プロセスの多くは、オンチップ・メモリ中
の低位レベルのブランチでうまく終了することができ、
それによって、より低速なメモリに記憶されている上位
レベルのブランチをトラバースすることが回避できる。
【0027】さらに別の実施形態では、特にクリティカ
ルまたは頻繁に使用される小さいツリー全体を、内部メ
モリ・エレメント60に記憶することが可能である。し
たがって、全体がオンチップで配置されている任意のツ
リーに対して、特に高速なツリー検索を行うことができ
る。内部メモリ60内に記憶するツリー・レベルと外部
メモリ64に記憶するツリー・レベルの間の分離も、入
力データ中のある種のパターンの確率をベースにして行
うことができる。
【0028】一般に、ツリー特徴付けプロセスを使用し
たネットワーク・プロセッサに入力されたデータは、い
くつかの異なる属性に従って特徴付けられる。したがっ
て、この特徴付け機能を実行するために、データ・パケ
ットまたはデータ・ブロックのセグメントがそれらを通
って処理される、対応する数のツリーがある。本発明に
よれば、低位レベルのブランチはオンチップで記憶さ
れ、高位レベルのブランチはオフチップで記憶される。
パイプライン型プロセッサは、複数の特徴付けを実行す
るために、オンチップ・メモリに記憶されているツリー
の低位のブランチにアクセスし、次いで、ツリー分析の
進行とともに、オフチップ・メモリに移動する。しか
し、オフチップのアクセス時間の方が長いため、オフチ
ップの読取りサイクルの完了を待つ間、プロセッサは、
別のオンチップのツリーの低位のブランチにアクセスす
ることによって、入力データの別の側面の特徴付けを開
始することができる。このようにして、プロセッサは、
より低速なオフチップ・メモリからの応答を待つ間に、
より高速なオンチップ・アクセス速度を利用して、いく
つかのツリー分析を同時に実行することができる。
【0029】別の実施形態では、ツリーのある部分(必
ずしもあるツリー・レベル全体とは限らない)は、異な
るメモリ・エレメント内に記憶される。例えば、最も頻
繁にトラバースされる経路を、高速オンチップまたはロ
ーカル・メモリに記憶し、トラバースが低頻度の経路
を、より低速な、リモートまたは外部メモリに記憶する
ことができる。
【0030】本発明によるツリーはまた、システム構成
の変更にも適合できる。このツリーが、複数のTCP/
IPアドレスを処理していると想定する。処理の開始
時、ツリーは空であり、したがって、すべての入力アド
レスは同じデフォルト出力アドレスになる。ツリー・プ
ロセスは、ルートで開始し、直ちに、単一の葉のデフォ
ルト出力アドレスに進む。次いで、中間命令または決定
ノードが追加され、ある入力アドレスを第1の出力アド
レスに、その他すべてをデフォルト・アドレスに向け
る。さらなる出力アドレスが追加されるにつれて、ツリ
ーはより深くなる。すなわち、さらに多くのブランチま
たは決定ノードを持つようになる。本発明の教示によれ
ば、ローカルおよびリモートのメモリ・エレメントの両
方において、ツリーが成長し得る。
【図面の簡単な説明】
【図1】入力記号を処理するための従来技術のツリー構
造を示す図である。
【図2】本発明の様々な実施形態による、プロセッサお
よびメモリ・エレメントの構成図である。
【図3】本発明の様々な実施形態による、プロセッサお
よびメモリ・エレメントの構成図である。
【図4】本発明の様々な実施形態による、プロセッサお
よびメモリ・エレメントの構成図である。
【図5】本発明の様々な実施形態による、プロセッサお
よびメモリ・エレメントの構成図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ウィリアム エドワード ベイカー アメリカ合衆国 32817 フロリダ,オー ランド,ホロー クロッシング ドライヴ 4018 (72)発明者 ナレンダー アール.ヴァンガテ アメリカ合衆国 78681 テキサス,ラウ ンド ロック,ブロークン ブランチ ド ライヴ 8222 (72)発明者 マーリシオ カレ アメリカ合衆国 78750 テキサス,オー スチン,フィルバート コーヴ 7401 (72)発明者 ジェームス テー.カーク アメリカ合衆国 78759 テキサス,オー スチン,ダイアネラ レーン 10231 Fターム(参考) 5B075 NK43 QP01

Claims (25)

    【特許請求の範囲】
  1. 【請求項1】 検索対象が知識ベース中のエントリにマ
    ッチするかどうかを判定する方法であって、知識ベース
    が、複数の検索ノードと、2つの検索ノードを結合する
    複数のリンクとを含む決定ツリー構造を含み、前記方法
    が、 決定ツリー構造の第1の部分を第1のメモリに記憶する
    ステップであって、第1の部分が、第1の複数の検索ノ
    ードと、相互接続リンクとを含むステップと、 決定ツリー構造の第2の部分を第2のメモリに記憶する
    ステップであって、第2の部分が、第2の複数の検索ノ
    ードと、相互接続リンクとを含むステップと、 第1のメモリから第1の検索ノードを読み取るステップ
    と、 第1の検索ノードを、検索対象の少なくとも一部と比較
    するステップと、 比較のステップに基づき、結合しているリンクを介し
    て、第1の検索ノードから第2の検索ノードまでの検索
    経路をトラバースするステップとを含む方法。
  2. 【請求項2】 第2の検索ノードを読み取るステップ
    と、検索対象の少なくとも一部を第2の検索ノードと比
    較するステップとをさらに含む、請求項1に記載の方
    法。
  3. 【請求項3】 読み取るステップ、比較するステップ、
    およびトラバースするステップが、決定ツリーの第2の
    部分がその末端までトラバースされるまで繰り返され
    る、請求項2に記載の方法。
  4. 【請求項4】 読み取るステップが集積回路中に形成さ
    れているプロセッサによって実行され、また、第1のメ
    モリが集積回路上に形成され、それによって、第1のメ
    モリから検索ノードを読み取るステップが、第2のメモ
    リから検索ノードを読み取るステップよりも高速に実行
    される、請求項1に記載の方法。
  5. 【請求項5】 決定ツリー構造の第1の部分が第1の検
    索エントリに近い検索ノードを含む、請求項1に記載の
    方法。
  6. 【請求項6】 決定ツリー構造が、それぞれが複数の検
    索ノードを含む複数のレベルを含み、複数のレベルの1
    つを含む検索ノードが、リンクによって、複数のレベル
    の別の1つを含む検索ノードに接続される、請求項1に
    記載の方法。
  7. 【請求項7】 複数のレベルのうち、所定数の低位レベ
    ルが第1のメモリに記憶され、残りの複数のレベルが第
    2のメモリに記憶される、請求項1に記載の方法。
  8. 【請求項8】 複数のレベルのうちの所定数の低位レベ
    ルが、残りの複数のレベルよりも読取りアクセス時間が
    高速である、請求項7に記載の方法。
  9. 【請求項9】 第1のメモリのアクセス時間パラメータ
    が、第2のメモリのアクセス時間パラメータよりも少な
    い、請求項1に記載の方法。
  10. 【請求項10】 検索対象が複数の記号を含む、請求項
    1に記載の方法。
  11. 【請求項11】 記号が複数のバイナリ・ビットを含
    む、請求項10に記載の方法。
  12. 【請求項12】 知識ベースが、入力されたデータの属
    性を判定するための、通信ネットワーク・プロセッサの
    分類エンジンを含み、決定ツリーの第2の部分が、複数
    の終端ノードで終了する方法であって、読み取るステッ
    プ、比較するステップ、およびトラバースするステップ
    を、終端ノードに到達するまで繰り返し、終端ノードが
    入力データの属性を識別する、請求項1に記載の方法。
  13. 【請求項13】 決定ツリーの第2の部分が、複数の終
    端ノードで終了する方法であって、終端ノードが検索対
    象の少なくとも一部にマッチするように、読み取るステ
    ップ、比較するステップ、およびトラバースするステッ
    プを終端ノードに到達するまで繰り返す、請求項1に記
    載の方法。
  14. 【請求項14】 複数の検索ノードのそれぞれが命令お
    よびアドレス・フィールドを含み、比較するステップ
    が、検索対象の少なくとも一部を命令と比較するステッ
    プをさらに含み、アドレス・フィールドが、比較するス
    テップに基づいて第2の検索ノードを決定する、請求項
    1に記載の方法。
  15. 【請求項15】 決定ツリー構造が、複数の連続するツ
    リー・レベルを含み、各ツリー・レベルが、検索ノード
    と、次の隣接するツリー・レベルの検索ノードへのリン
    クをさらに含む、請求項1に記載の方法。
  16. 【請求項16】 決定ツリー構造の第1の部分が所定数
    の連続するツリー・レベルを含み、決定ツリー構造の第
    2の部分が残りの連続するツリー・レベルを含む、請求
    項15に記載の方法。
  17. 【請求項17】 決定ツリー構造の第1の部分が1つま
    たは複数の連続するツリー・レベルの一部を含む、請求
    項15に記載の方法。
  18. 【請求項18】 検索対象が知識ベース中のいずれかの
    エントリにマッチするかどうかを判定する装置であっ
    て、知識ベースが、隣接する検索ノード間の複数のリン
    クを含む決定ツリー構造を含み、前記装置が、 決定ツリー構造の第1の部分を記憶する第1のメモリ
    と、 決定ツリー構造の第2の部分を記憶する第2のメモリ
    と、 検索対象の少なくとも一部を検索ノードとマッチさせる
    ための、また、そのマッチに応答して決定ツリー構造中
    をトラバースするためのプロセッサとを含む装置。
  19. 【請求項19】 決定ツリー構造が複数の終端ノードで
    終了し、プロセッサが、終端ノードに到達するまで決定
    ツリー構造中をトラバースし、終端ノードが検索対象の
    少なくとも一部にマッチする、請求項18に記載の装
    置。
  20. 【請求項20】 第1のメモリからの検索エントリの読
    取りが、第2のメモリからの検索エントリの読取りより
    も高速になるように、プロセッサおよび第1のメモリが
    同じ集積回路に形成されている、請求項18に記載の装
    置。
  21. 【請求項21】 第1のメモリが第1のアクセス時間を
    有し、第2のメモリが第2のアクセス時間を有し、第1
    のアクセス時間が第2のアクセス時間よりも高速であ
    る、請求項18に記載の装置。
  22. 【請求項22】 決定ツリー構造が、それぞれが複数の
    検索ノードを含む複数のレベルを含み、複数のレベルの
    1つを含む検索ノードが、リンクによって、複数のレベ
    ルの隣接する1つを含む検索ノードに接続され、第1の
    メモリが少なくとも第1のレベルを記憶する、請求項1
    8に記載の装置。
  23. 【請求項23】 検索対象が知識ベース中のいずれかの
    エントリにマッチするかどうかを判定する装置であっ
    て、知識ベースが、隣接する検索ノードを接続する複数
    のリンクを含む決定ツリー構造を含み、前記装置が、 第1のプロセッサと、 第2のプロセッサと、 決定ツリー構造の第1の部分を記憶する第1のメモリ
    と、 決定ツリー構造の第2の部分を記憶する第2のメモリと
    を含み、 前記第1のプロセッサが前記第1のメモリにアクセス
    し、前記第2のプロセッサが、前記検索対象の少なくと
    も一部にマッチする検索ノードを判定するために前記第
    2のメモリにアクセスする装置。
  24. 【請求項24】 第1のプロセッサが、検索対象の少な
    くとも一部を、第1のメモリに記憶されている1つまた
    は複数の検索ノードと比較して、第1の部分中をトラバ
    ースし、 決定ツリーの第1の部分がトラバースされた後、第2の
    プロセッサが、検索対象の少なくとも一部を、第2のメ
    モリに記憶されている1つまたは複数の検索エントリと
    比較して、検索対象の少なくとも一部とマッチする検索
    ノードを判定するまで第2の部分中をトラバースする、
    請求項23に記載の装置。
  25. 【請求項25】 第1のプロセッサと第2のプロセッサ
    が、複数の検索ツリーのツリー検索を同時に実行する、
    請求項23に記載の装置。
JP2002364518A 2001-12-21 2002-12-17 ツリー型知識ベース検索のルックアップ・パフォーマンスを向上させる方法 Abandoned JP2003196295A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/037040 2001-12-21
US10/037,040 US7246102B2 (en) 2001-12-21 2001-12-21 Method of improving the lookup performance of three-type knowledge base searches

Publications (2)

Publication Number Publication Date
JP2003196295A true JP2003196295A (ja) 2003-07-11
JP2003196295A5 JP2003196295A5 (ja) 2006-01-26

Family

ID=21892119

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002364518A Abandoned JP2003196295A (ja) 2001-12-21 2002-12-17 ツリー型知識ベース検索のルックアップ・パフォーマンスを向上させる方法

Country Status (5)

Country Link
US (1) US7246102B2 (ja)
JP (1) JP2003196295A (ja)
KR (1) KR20030053038A (ja)
GB (1) GB2386716B (ja)
TW (1) TW200301429A (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6047284A (en) 1997-05-14 2000-04-04 Portal Software, Inc. Method and apparatus for object oriented storage and retrieval of data from a relational database
US6493698B1 (en) * 1999-07-26 2002-12-10 Intel Corporation String search scheme in a distributed architecture
US6678675B1 (en) * 2000-03-30 2004-01-13 Portal Software, Inc. Techniques for searching for best matches in tables of information
US20030041043A1 (en) * 2001-08-27 2003-02-27 Ahamed Syed Vickar Sensing and monitoring the environment using intelligent networks
US8099393B2 (en) 2002-03-22 2012-01-17 Oracle International Corporation Transaction in memory object store
US7672958B2 (en) * 2005-01-14 2010-03-02 Im2, Inc. Method and system to identify records that relate to a pre-defined context in a data set
PL1688900T3 (pl) * 2005-02-07 2007-10-31 Siemens Schweiz Ag Sposób wyznaczania pozycji urządzeń instalacji sygnalizującej niebezpieczeństwo
US8223935B2 (en) 2005-04-30 2012-07-17 Oracle International Corporation Revenue management systems and methods
CA2613701C (en) 2005-06-28 2016-04-12 Alexander Rockel Revenue management system and method
CA2616194C (en) 2005-07-28 2015-02-17 Oracle International Corporation Revenue management system and method
US8223777B2 (en) 2005-11-15 2012-07-17 Oracle International Corporation Gateway for achieving low latency and high availability in a real time event processing system
KR100727555B1 (ko) * 2005-12-05 2007-06-14 성균관대학교산학협력단 시간 가중치 엔트로피를 이용한 결정 트리 생성 방법 및이를 기록한 기록매체
US8572349B2 (en) * 2006-01-31 2013-10-29 Agere Systems Llc Processor with programmable configuration of logical-to-physical address translation on a per-client basis
US20070255676A1 (en) * 2006-04-27 2007-11-01 Brown David A Methods and apparatus for performing tree-based processing using multi-level memory storage
US20070276862A1 (en) * 2006-04-27 2007-11-29 Toutonghi Michael J Organizing and sharing digital content
US20080167903A1 (en) * 2007-01-05 2008-07-10 Cory Hall System and method for providing insurance and financial benefits
US8806059B1 (en) * 2007-04-05 2014-08-12 Juniper Networks, Inc. Rule tree for network device
KR101307711B1 (ko) * 2007-05-16 2013-09-11 인터내셔널 비지네스 머신즈 코포레이션 소프트웨어 자산 기반 솔루션을 개발하기 위한 일관된 방법, 시스템 및 컴퓨터 프로그램
GB2473197A (en) 2009-09-02 2011-03-09 Nds Ltd Advert selection using a decision tree
US9123030B2 (en) 2012-07-30 2015-09-01 Sap Se Indication of off-screen calendar objects
US9483086B2 (en) 2012-07-30 2016-11-01 Sap Se Business object detail display
US9658672B2 (en) 2012-07-30 2017-05-23 Sap Se Business object representations and detail boxes display
US8832583B2 (en) 2012-08-31 2014-09-09 Sap Se Visualizing entries in a calendar using the third dimension
US9081466B2 (en) 2012-09-10 2015-07-14 Sap Se Dynamic chart control that triggers dynamic contextual actions
US9250781B2 (en) 2012-10-17 2016-02-02 Sap Se Method and device for navigating time and timescale using movements
US8972883B2 (en) 2012-10-19 2015-03-03 Sap Se Method and device for display time and timescale reset
US9286217B2 (en) * 2013-08-26 2016-03-15 Qualcomm Incorporated Systems and methods for memory utilization for object detection
US9324039B2 (en) * 2013-11-27 2016-04-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Incremental updates for ordered multi-field classification rules when represented by a tree of longest prefix matching tables
US20150262063A1 (en) * 2014-03-17 2015-09-17 Microsoft Corporation Decision tree processors
US10332008B2 (en) 2014-03-17 2019-06-25 Microsoft Technology Licensing, Llc Parallel decision tree processor architecture
TWI596491B (zh) * 2017-01-16 2017-08-21 網智服務國際股份有限公司 知識庫之智能化控制系統與其回饋方法
CN108596410B (zh) * 2017-03-09 2021-01-22 创新先进技术有限公司 一种风控事件自动处理方法及装置
CN111160578A (zh) * 2019-12-24 2020-05-15 西安博达软件股份有限公司 一种基于决策树分析的问题诊断分派系统
US11948018B2 (en) * 2021-12-16 2024-04-02 International Business Machines Corporation Methods and systems for dynamic reconfiguring of hardware performance monitoring unit (PMU) events

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4611272A (en) * 1983-02-03 1986-09-09 International Business Machines Corporation Key-accessed file organization
US5257365A (en) * 1990-03-16 1993-10-26 Powers Frederick A Database system with multi-dimensional summary search tree nodes for reducing the necessity to access records
US5295261A (en) * 1990-07-27 1994-03-15 Pacific Bell Corporation Hybrid database structure linking navigational fields having a hierarchial database structure to informational fields having a relational database structure
AU4661793A (en) * 1992-07-02 1994-01-31 Wellfleet Communications Data packet processing method and apparatus
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
US5535365A (en) * 1993-10-22 1996-07-09 Cray Research, Inc. Method and apparatus for locking shared memory locations in multiprocessing systems
US5630125A (en) * 1994-05-23 1997-05-13 Zellweger; Paul Method and apparatus for information management using an open hierarchical data structure
US5758353A (en) * 1995-12-01 1998-05-26 Sand Technology Systems International, Inc. Storage and retrieval of ordered sets of keys in a compact 0-complete tree
US5963675A (en) * 1996-04-17 1999-10-05 Sarnoff Corporation Pipelined pyramid processor for image processing systems
US5968109A (en) * 1996-10-25 1999-10-19 Navigation Technologies Corporation System and method for use and storage of geographic data on physical media
US5894586A (en) * 1997-01-23 1999-04-13 Xionics Document Technologies, Inc. System for providing access to memory in which a second processing unit is allowed to access memory during a time slot assigned to a first processing unit
US6226714B1 (en) * 1997-07-15 2001-05-01 International Business Machines Corporation Method for invalidating cache lines on a sharing list
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
US6266706B1 (en) * 1997-09-15 2001-07-24 Effnet Group Ab Fast routing lookup system using complete prefix tree, bit vector, and pointers in a routing table for determining where to route IP datagrams
US5983224A (en) * 1997-10-31 1999-11-09 Hitachi America, Ltd. Method and apparatus for reducing the computational requirements of K-means data clustering
US6061712A (en) * 1998-01-07 2000-05-09 Lucent Technologies, Inc. Method for IP routing table look-up
US6260044B1 (en) * 1998-02-04 2001-07-10 Nugenesis Technologies Corporation Information storage and retrieval system for storing and retrieving the visual form of information from an application in a database
US6304260B1 (en) * 1998-06-24 2001-10-16 Lucent Technologies, Inc. Method and apparatus for generating and displaying views of hierarchically clustered data
US6247016B1 (en) * 1998-08-24 2001-06-12 Lucent Technologies, Inc. Decision tree classifier with integrated building and pruning phases
WO2000031663A1 (fr) * 1998-11-24 2000-06-02 Matsushita Electric Industrial Co., Ltd. Structure de données d'un fichier cartographique numérique
US6839739B2 (en) * 1999-02-09 2005-01-04 Hewlett-Packard Development Company, L.P. Computer architecture with caching of history counters for dynamic page placement
US6766424B1 (en) * 1999-02-09 2004-07-20 Hewlett-Packard Development Company, L.P. Computer architecture with dynamic sub-page placement
US6516319B1 (en) * 1999-05-20 2003-02-04 International Business Machines Corporation Parallelized processing device for processing search keys based upon tree structure
US6571238B1 (en) * 1999-06-11 2003-05-27 Abuzz Technologies, Inc. System for regulating flow of information to user by using time dependent function to adjust relevancy threshold
US6381607B1 (en) * 1999-06-19 2002-04-30 Kent Ridge Digital Labs System of organizing catalog data for searching and retrieval
US6662184B1 (en) * 1999-09-23 2003-12-09 International Business Machines Corporation Lock-free wild card search data structure and method
US6563952B1 (en) * 1999-10-18 2003-05-13 Hitachi America, Ltd. Method and apparatus for classification of high dimensional data
US6772223B1 (en) * 2000-04-10 2004-08-03 International Business Machines Corporation Configurable classification interface for networking devices supporting multiple action packet handling rules
US6625591B1 (en) * 2000-09-29 2003-09-23 Emc Corporation Very efficient in-memory representation of large file system directories
US6678772B2 (en) * 2000-12-19 2004-01-13 International Businesss Machines Corporation Adaptive reader-writer lock
DE10148008A1 (de) 2001-09-28 2003-04-24 Siemens Ag Verfahren und Anordnung zur Speicherung hierarchisch abhängiger Daten
US6961821B2 (en) * 2002-10-16 2005-11-01 International Business Machines Corporation Reconfigurable cache controller for nonuniform memory access computer systems

Also Published As

Publication number Publication date
GB0227953D0 (en) 2003-01-08
US20030120621A1 (en) 2003-06-26
GB2386716B (en) 2005-08-24
US7246102B2 (en) 2007-07-17
KR20030053038A (ko) 2003-06-27
GB2386716A (en) 2003-09-24
TW200301429A (en) 2003-07-01

Similar Documents

Publication Publication Date Title
JP2003196295A (ja) ツリー型知識ベース検索のルックアップ・パフォーマンスを向上させる方法
US6775737B1 (en) Method and apparatus for allocating and using range identifiers as input values to content-addressable memories
KR100933916B1 (ko) 분류자 확인을 위한 장치 및 방법
US7308446B1 (en) Methods and apparatus for regular expression matching
EP1808987B1 (en) Longest prefix matching using tree bitmap data structures
US7415463B2 (en) Programming tree data structures and handling collisions while performing lookup operations
US7349382B2 (en) Reverse path forwarding protection of packets using automated population of access control lists based on a forwarding information base
US8295286B2 (en) Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware
US6434144B1 (en) Multi-level table lookup
US7240040B2 (en) Method of generating of DFA state machine that groups transitions into classes in order to conserve memory
US7415472B2 (en) Comparison tree data structures of particular use in performing lookup operations
US20070192303A1 (en) Method and Apparatus for Longest Prefix Matching in Processing a Forwarding Information Database
JP2001509978A (ja) スイッチング装置における高速可変長ベストマッチルックアップ
EP1436936A2 (en) High speed data stream pattern recognition
JPH10257084A (ja) コンピュータ・ネットワーク内でデータ・フレームを経路指定するフレーム・ヘッダを解析する方法およびシステム
US7478109B1 (en) Identification of a longest matching prefix based on a search of intervals corresponding to the prefixes
US6970971B1 (en) Method and apparatus for mapping prefixes and values of a hierarchical space to other representations
US20070255676A1 (en) Methods and apparatus for performing tree-based processing using multi-level memory storage
KR20050066807A (ko) 라우팅 시스템에서의 패킷 분류 장치 및 그를 이용한 룰구축 방법
JP2001060969A (ja) 高速ip経路検索システム及び方法
GB2368413A (en) Searching databases employing a trie search structure
KR20050069470A (ko) 프리픽스 길이를 고려한 트리생성방법과 이를 이용한 ip주소 탐색 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051207

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090212

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090512

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090515

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20090812