JP2000151691A - インタ―ネット網等の高速通信網のノ―ドのル―ティング表構築のためのプレフィックス分析による情報探索用メモリ - Google Patents
インタ―ネット網等の高速通信網のノ―ドのル―ティング表構築のためのプレフィックス分析による情報探索用メモリInfo
- Publication number
- JP2000151691A JP2000151691A JP11304159A JP30415999A JP2000151691A JP 2000151691 A JP2000151691 A JP 2000151691A JP 11304159 A JP11304159 A JP 11304159A JP 30415999 A JP30415999 A JP 30415999A JP 2000151691 A JP2000151691 A JP 2000151691A
- Authority
- JP
- Japan
- Prior art keywords
- information
- memory
- target
- cell
- prefix
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 126
- 238000004891 communication Methods 0.000 title claims abstract description 14
- 239000013598 vector Substances 0.000 claims abstract description 32
- 238000012217 deletion Methods 0.000 claims description 16
- 230000037430 deletion Effects 0.000 claims description 16
- 238000000034 method Methods 0.000 claims description 11
- 238000003780 insertion Methods 0.000 description 20
- 230000037431 insertion Effects 0.000 description 20
- 230000008520 organization Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 239000002699 waste material Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241001516864 Allende Species 0.000 description 1
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/104—Asynchronous transfer mode [ATM] switching fabrics
- H04L49/105—ATM switching elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3081—ATM peripheral units, e.g. policing, insertion or extraction
- H04L49/309—Header conversion, routing tables or routing tags
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99936—Pattern matching access
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Instructional Devices (AREA)
- Computer And Data Communications (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
ンクリメンタル更新を保証するメモリ構造を提供するこ
と。 【解決手段】 特にインターネット網のような高速通信
網のノードのルーティング表を構築するべくプレフィッ
クス分析により情報を探索するためのメモリは、1組の
情報項目を記憶するメモリ要素(M1)を含み、該情報
項目の各々は、それぞれのプレフィックスにおける重要
文字数を示すマスク情報とターゲット情報に関連する。
最長プレフィックス一致に基づく探索基準を実現するた
めに、各々のセルは、連続探索のための次行のアドレス
又は到達ターゲットに関する情報のどちらかを与える情
報フィールドと、情報フィールドの内容を特定する一対
のフラグ(GO,TARGET)とを含む。補助ベクト
ル(AUX)は、メモリ行と同数のセルを含む。該補助
ベクトルは、メモリ要素のセル内のフラグが、次行の探
索動作を行う必要性と共にターゲットの読み出しを示す
とき、ターゲット情報を前記次行に関連するそのセルに
記憶する。
Description
しくはインターネット網のルーティング表を構築するの
に特に専用されるプレフィックス分析による情報探索用
メモリに関する。
な現在の高速網の通信プロトコルは、情報パケットの伝
送に基づいており、該情報パケットは、パケットの宛先
アドレスに関する情報をヘッダー内に含んでいる。網ノ
ードでは、パケットを受信すると、ルーティング制御装
置が、アドレスを用いて適当な表又はデータベース内部
を探索し、出力インターフェースを捜し出す。パケット
は、該出力インターフェースに送られ、さらに後続のネ
ットワーク装置に発送される。現在のところ、Gbits/s
のオーダーの伝送速度が普通であり、よって、ノードで
のルーティング時間は、通常のトラフィック流を害する
ことを防止するべく非常に短くなければならない。量的
に示すために、約1000ビットのパケットの1Gbit/s
伝送を考えると、ノードは、1秒当たり約100万個の
パケットを扱うことを要求される。すなわち、スイッチ
ング時間、場合により必要なパケットヘッダー処理時
間、及び場合により必要な連続パケット間のガード時間
を考慮すると、最も長い操作であるルーティング表の探
索は、1μsよりやや小さい時間内で実行しなければな
らない。通信速度が増すにつれて、状況はますますクリ
ティカルとなる。
ンターネット網を見てみると、インターネット網を使用
する新しいアプリケーションの絶え間ない発展にもよ
り、帯域要求のみならずネットワークに接続されたホス
トコンピューターの数及びトラフィックの両方が指数関
数的に成長している。このこと全てが、ルーティング表
のサイズを増大させる結果となり、それにより、より長
い探索操作を生じさせる。大きなメモリ容量を低コスト
で得るのはますます容易になっているが、大きなメモリ
へのアクセス時間を低減するのは相当の技術的な問題を
はらんでいることは、技術者には周知である。ネットワ
ークの拡張に容易に適応するために、インターネットア
ドレスは、階層構造により編成され得る。この意味で、
例えば同じ地理領域又は同じプロバイダーに対応するア
ドレスグループは、最上位アドレスビット(プレフィッ
クス)を共有する。これらのプレフィックスは、可変長
を有し、他のプレフィックスの最上位部(プレフィック
スのプレフィックス)を構成し得る。インターネットア
ドレスの構造のさらなる詳細は、例えばH.P.Giesigerに
よる文献「Das Internet-Protokoll der naechsten Gen
eration 」(Comtec 5、1998年、第20〜26
頁)、又はR.M.Hindenによる文献「IP Next Generation
Overview 」(1995年5月14日、インターネット
サイトhttp:playground.sun.com/pub/ipng/html/INET-I
png-Paper.htmlにて入手可能)が参照できる。
まず、ネットワークにおけるルーティング情報が、処理
されているパケットの宛先に通じる経路内の次ノードの
アドレスに関係していることが考慮される。そのアドレ
スは、普通は「次ホップ(next hop)」なる用語により示
される。ルーティング表において可能な異なる次ホップ
は、百のオーダーであるから、関連情報を抽出して別の
データ構造に記憶することが可能である。小さな大きさ
の場合には、リテラチャー(literature)「TARGE
T」で指定されたインデックスにより直接アクセスする
ことにより、このデータ構造にアクセスし得る。該リテ
ラチャー「TARGET」は、受信したパケットのアド
レスから識別される。実際には、ルーティング管理装置
において、パケット宛先アドレスを検索キーとして用い
ることにより、発送表へのアクセスが得られる。発送表
は、ネットワークの完全なルーティング表の部分集合で
あり、各行は、プレフィックス(アドレスマスク対。こ
こで、マスクは、アドレスの上位ビット数、すなわちプ
レフィックスを構成するビット数を示す。)と対応する
データ(さらなる情報と共にターゲット、普通は、出力
インターフェースへのポインター)を含む。アドレスに
関連するマスクとキーのビット毎のANDが、アドレス
自身に等しいならば、プレフィックスは探索キーに対す
る一致を生じる(すなわち、ターゲットに到達すること
を許容する)。
索する結果となるので、プレフィックスの長さの可変性
は、さらなる複雑さをもたらす。というのは、比較によ
り、異なる長さの幾つかのプレフィックスに対して正の
結果が与えられるからである。これらの条件では、実際
のターゲットは、最も長いプレフィックス、すなわち宛
先に対して最も特異なプレフィックスに対応するもので
ある。この基準は、「最長プレフィックス一致(longest
prefix match)」として知られている。理論的には、最
長プレフィックス一致に基づいた探索を行う最も効率的
で最速の方法は、情報項目(エントリ)を1以上の3進
CAM(内容アドレス指定可能メモリ(Content Address
able Memory))に記憶することである。3進CAMで
は、各々のメモリビットは、3つの値、すなわち0、1
及び「ドントケア(don't care)」を取り得る。比較レジ
スターのビットと「ドントケア」論理値に設定されたメ
モリビットの比較は、明らかに正である。従って、デー
タ自身の関連ビットをドントケア・レベルに単に設定す
ることにより、データに関連したマスクを暗黙のうちに
実現することが可能である。この種の装置の欠点は、主
に高い値段と集積化能力の低さに存する。
は、データベースにおける探索アルゴリズムであって速
くてコンパクトなアルゴリズムを利用する必要がある。
探索アルゴリズムの速度は、厳密にはメモリアクセス回
数に関係し、コンパクト性は、使用されているデータ構
造を記憶するのに必要なメモリ量で決まる。最終的な目
的は、探索プロセスで情報を記憶するのに要するアクセ
ス数とメモリサイズの両方をできるだけ最小化すること
である。最長プレフィックス一致の基準を満足するのに
適切なルーティングアルゴリズムは、実際にはソフトウ
エア型とハードウエア型の両方で実現され得る。いずれ
にしても、一般には、それらは以下のような所定数の共
通要求を満たさなければならない。 (1)テーブルの大きさから出来るだけ独立した探索速
度 (2)アルゴリズム性能における最悪の場合と最高の場
合の間での小さな相違 (3)表の容易なインクリメンタル(又はローカル)更
新(すなわち、幾つかの情報項目の挿入又は取消は、表
全体又は表の実質的な部分を再書き込みすることを要求
しない。) (4)将来の技術発展やアドレス編成の変化に容易に適
応するための柔軟性 (5)浪費を防ぐため出来るだけ規則的なメモリ編成
を考慮するような方法にてインターネット網ルーティン
グの問題を解決するために、幾つかの解決策が既に提案
されている。第1群の解決策は、「PATRICIA」
として公知のアルゴリズムに基づく。これは、大きなフ
ァイル、実際にはライブラリーのカタログにおける情報
の記憶、インデックス付け、及び検索のためのアルゴリ
ズムである。このアルゴリズムの原理は、D.R.Morrison
による記事「PATRICI - Practical Algorithm To Retri
eve Information Coded In Alphanumeric 」(Journal
of the Association for Computing Machinery、Vol.1
5、No.4、1968年10月、第155頁以降)に記載
されており、インターネット網のルーティング問題を解
決することにおけるその応用は、関連の技術文献に広く
文書化されている。PATRICIAアルゴリズムは、
実質的にはアドレスビット上に構築されたプレフィック
ス木を操作するアルゴリズムである。ここで、各ビット
はノードに対応する。アドレスビットは、一度に一つず
つ調べられる。存在しないブランチに対応するノードを
調べるのを避けるために、各ビットは、調べられる次ビ
ットの指標に関連する。探索が終了すると、プレフィッ
クスの現実の存在がチェックされる。各ノードは一以上
のメモリアクセスに対応するので、メモリアクセスがデ
ータ処理より十分に遅いことを考慮すると、本アルゴリ
ズムは、アドレスを検索するための合計時間を事実上低
減する。
解決策の本質的な利点は、実際には最悪の場合に対して
校正が実施されていることであり(実際、全ての木ノー
ドの通過が考慮されなければならない)、一方、現在の
インターネット網では、統計的に約20個のノードが、
ターゲット(探索されるアドレス)に到達する前に分析
されなければならないことが分かっている。従って、こ
れらの解決策は、本質的に非常に遅く、加えて、最悪の
場合と典型的な場合の間に大きな相違を示す。探索プロ
セスを加速するために、幾つかの解決策が提案されてい
る。これらの解決策では、1ビットのみの代わりに複数
のアドレスビットが、木に沿った各検索ステップにおい
て考慮される。T.Pei とC.Zukowskiによる記事「Puttin
g Routing Tables in Silicon 」(IEEE Network Magaz
ine 、1992年1月、第42頁以降)は、これらのア
ルゴリズムが所謂「トリ・メモリ(trie memories) 」に
よりハードウエア内でいかにして実現され得るかを開示
する。この場合の主要な問題は、複数の一致が存在しな
い場合にのみ従来のトリ・メモリが利用できることであ
る。従って、ルーティング表に必要なメモリを低減し又
は一般に探索プロセスを固定するような方法にて、イン
ターネット網のルーティング表を探索するアルゴリズム
の多くの提案は、プレフィックスを再構成して複数一致
を除去することに基づいている。この様にしてこれらの
アルゴリズムは、理論的にはトリ・メモリを使用して実
現し得る。
mark他による論文「Small Forwarding Tables for Fast
Routing Lookups」(コンファレンスACM SIGCOMM '97
、Cannes、仏国、1997年9月16〜18日)、及
びV.SrinivasanとG.Vargheseによる論文「Faster IP Lo
okups using Controlled Prefix Expansion 」(コンフ
ァレンスACM SIGMETRICS '98、Madison 、ウィスコンシ
ン州、米国、1998年6月22〜26日)に記載され
ている。Degemark他により提案された解決策は、3レベ
ル木を示し、その各々のレベルは、アドレスの16、8
及び8ビットをそれぞれカバーし、場合によっては適当
なプレフィックスの再構成により作られた特にコンパク
トな構造内に記憶される。それにより、木における各々
のプレフィックスは、アドレスのインターバルを捜し出
す。この解決策は、PATRICIAに基づく解決策
(12アクセスを予測する最悪の場合約400ns)に
対し、要求されるメモリ量と探索のためにメモリ自身に
アクセスする回数を劇的に最小化する。しかし、プレフ
ィックスを再構成することにより、インクリメンタル更
新が不可能となり、各更新にてメモリを完全に再書き込
みすることが要求される。更新プロセスは、非常に遅
く、正常なネットワーク管理に対して問題を生じさせ
る。
た解決策は、プレフィックスが限定数のみの長さ値(場
合によっては可変)をとるように、プレフィックスを再
構成し、かつ、最短のプレフィックスを所定の最も近接
した長さ値を有するプレフィックスの組と置き換えるこ
とにより、最短のプレフィックスを拡張する。ルーティ
ング表は、特定数の副表に変換され、該副表の各々がポ
インターを次の副表に記憶する。このような副表の長さ
は、所与のアクセス数に対して、プレフィックスのその
特定の組のために必要なメモリを削減するように最適化
される。この構成により、たとえ表の長さが一般には予
測できなくて物理メモリの最適利用が得られないとして
も、使用されるメモリ量の削減が、一般に得られる。加
えて、結果として得られるデータ構造は、プレフィック
スの特定の組に対して最適化されるので、それはほとん
ど一般的でない。
の最適利用とルーティング表(又は一般にエントリの
組)のインクリメンタル更新を保証する構造を提供する
ことを目的とする。
(1)複数行及び列のメモリセルを含むメモリ要素であ
って、各セルは、1組の情報項目に属する1項目を記憶
し、各情報項目は、それぞれのプレフィックスの幾つか
の重要文字を示すマスクに、及び場合によっては別の組
の情報項目をアクセスするのに利用できるデータを構成
するターゲットに関連する前記メモリ要素、及び(2)
メモリ内の特定の情報項目を探索するのを制御し、か
つ、メモリを更新するための制御装置であって、該制御
装置は、入力にて受信した文字ストリングの所定長の連
続部分と、記憶されたプレフィックスの対応部分を比較
することにより動作し、前記プレフィックスは、場合に
よっては前記部分の長さの倍数でない可変長である前記
制御装置を含み、最長プレフィックス一致に基づいた探
索基準を実施するために、(ア)各セルは、情報フィー
ルド及び情報フィールドの内容を特定する一対のフラグ
に細分され、情報フィールドは、探索を継続するための
次行アドレスか到達ターゲットに関する情報のどちらか
を記憶し、そして(イ)補助ベクトルが与えられ、該補
助ベクトルは、前記メモリ要素内の行と同数のセルを有
し、また、該補助ベクトルは、メモリ要素の前記セルの
一つのフラグが、次の行への探索の遂行の必要性と共に
ターゲットの到達を示すとき、ターゲット情報を前記次
の行に関連するセルに記憶でき、前記補助ベクトルの各
セルは、前記メモリ要素のセルのタスクと同じタスクを
有する一対のフラグと情報フィールドを記憶することを
特徴とする。本発明は、上記記載のメモリの管理方法に
も関する。
図1は、インターネット網へのルーティングノードの基
本図である。図2は、本発明によるメモリの編成を示す
図である。図3A〜3Cは、メモリセル内のデータ編成
を表す。図4及び5は、図2のメモリ内での探索操作に
関する図である。図6は、探索の数値例である。図7〜
15は、本発明によるメモリ内でのデータ挿入及び削除
に関するフローチャートである。
トワークのノード内のルーターが、1組の入力インター
フェースIFa...IFxと出力インターフェースI
Fb...IFyにより略示されている。インターフェ
ースの各々は、一方の側では、a,x,b,yで一般的
に示されたラインに接続され、もう一方の側では、スイ
ッチング装置SWに接続されている。このスイッチング
装置SWは、制御装置又はネットワークプロセッサーP
Rに接続される。一般に、入力インターフェースは、入
来データ用のバッファー(図示せず)と、情報処理装置
を含む。情報処理装置は、ノード内のルーティング探索
を管理し、すなわち、入力インターフェースに入来した
パケットが発送されるべき出力インターフェースを捜し
出す。プロセッサーPRは、ノードの通信及び制御の管
理に要求される他の全ての処理を行う。異なるルーター
構成では、ルーティング探索は、特定の処理装置に割り
当てることができる。ルーティング探索装置は、全体と
してFEで示される。
ード自身から到達可能な宛先のプレフィックスに関する
ルーティング表の一部の局部複製を含むべきである。冒
頭記載のように、ルーティング表は、2つのレベル上に
て構成され得る(従って、2つの記憶装置を利用す
る)。すなわち、第1のレベルでは、パケットアドレス
を用いて、インデックス又はターゲットが、その宛先ア
ドレスの表に含まれる最長プレフィックスに対応して捜
し出され、一方、第2のレベルでは、このようなインデ
ックスにより、パケットを発送するのに要求される情報
へのアクセスが、直接得られる。これら2つの装置は、
インターフェースIFxに対して表示されており、それ
ぞれM1,M2で示される。参照符号CTは、処理制御
装置を示し、表内での探索及び表の更新を可能にする。
本発明は、最長プレフィックス一致に基づいた探索を実
施するために拡張された所謂マルチビット・トリ・メモ
リの形式のメモリM1を実現することに関する。
kビットのプレフィックスが考慮されていると仮定し
て、本発明によるメモリの論理構造が示されている。図
2から分かるように、トリ・メモリは、L=2k 列のマ
トリックスにより従来様式にて作られる。各々の列は、
一度にkのアドレスビットとR個の行の可能な組み合わ
せのうちの一つに対応する。これは、アドレスの数及び
分布、並びにkの値に依存する。各々のメモリセルは、
空とすることができ(すなわち、記憶されたどのアドレ
スにも存在しない組み合わせに対応する)、又は到達さ
れるべき次行のアドレス、及び/又はターゲットが到達
されたことに関する指標を含み得る。探索が最長プレフ
ィックス一致に基づいている場合、2つの指標「到達タ
ーゲット(target reached)」と「次行へ通過(passage t
o the successive row) 」は、相互に排他的ではなく、
これは、データを編成するとき、考慮されねばならな
い。この目的のため、セルが次行のアドレス用のフィー
ルドと「到達ターゲット」指標用のフィールドを含む構
造を採用することが明らかに可能である。しかし、この
解決策は、メモリの無益な浪費をもたらす。というの
は、2つの指標が同時に存在することは、例外であり、
一般的でなく、その結果、ほとんど全てのセルに対し、
フィールドの一つは空となるからである。また、文献に
記載された解決策は、多重一致を除去し且つターゲット
を木の最終レベルにシフトするようにプレフィックスを
再構成又は拡張することを考慮しているが、好都合でな
い。というのは、このような解決策は、特に表内のエン
トリ数が多い場合により大きなメモリの大きさを要求
し、かつ、インクリメンタル更新を困難なものとするか
らである。
によるメモリの各セルは、単なる情報フィールド、及び
一対のフラグ(GOとTARGET)により形成され
る。これらのフラグの組み合わせが、情報フィールドの
内容の意味を定める。情報フィールドは、(32ビット
上のインターネットアドレスに関する現在のケースで
は)例えば22ビットを含み得、その結果、各セルは、
全体で3バイトから成る。第1フラグGOは、探索を継
続すべきか否かを決定することを可能にし、第2フラグ
TARGETは、有効ターゲットの存在又は不存在を示
す。GOが1ならば、22ビットフィールドは、パケッ
トのルーティング段階及び表への挿入及び表からの削除
の段階の両方において、アドレス探索にて考慮されるべ
き次行の指標(フィールドNEXT_ROW)を含む。
GOが0ならば、フラグTARGETが0のときに22
ビットフィールドは有効情報を含まず、逆に、それは検
索の結果として出力にて与えられるべき有効ターゲット
の指標と解釈され得る。この場合には、22ビットフィ
ールドは、以下のサブフィールドから構成される。
dentity)を符号化する9ビット。 MASK: サブフィールドVALUEに記憶されたタ
ーゲットに関連するマスクを符号化する4ビット。kが
探索ステップならば、MASK値は、0〜k−1の範囲
で変わり得る。k−1より小さい値は、長さがkの倍数
ではないプレフィックスを示す。 T_BAK: 所謂「プロパー・ターゲット(proper ta
rget) 」(又は「バックアップ・ターゲット(backup ta
rget) 」を符号化する9ビット。この用語は、「カバ
ー」され得るターゲット、すなわち、探索ステップの倍
数でない長さを有し且つ1組のより長いプレフィックス
により隠す(カバーする)ことができるプレフィックス
を示す。後に説明するように、このより短いターゲット
の存在に関する情報は、メモリの対応行のプレフィック
スを削除した後に探索が正しくない結果を与えるのを避
けるために、記憶されるべきである。情報T_BAKが
記憶されているセルは、後に説明する簡単な数式により
求められる。カバーされ得るプレフィックスが存在しな
い場合には、事前設定された値NULLが、T_BAK
に割り当てられる。例えば、表が512(すなわち
29 )ターゲットの最大にアクセスできると仮定する
と、値NULLは、511、すなわち29 −1となる。
情報T_BAKを記憶するために、ターゲットのフィー
ルドVALUE,MASKが、セルの情報フィールドの
長さより短い全体長さを有し、さもなければ使用されず
に残されるセルの一部が利用されることを留意すべきで
ある。このような特徴を可能にするべくサブフィールド
VALUE,MASKの大きさを選ぶことは、構造の一
般性を損なわない。
ターゲットへの到達、同時に探索操作を継続する必要性
に対応する。上述のように、セルは調べられる行の指標
と到達レベルに関連の最長ターゲットを同時に含むべき
でないので、第2の情報を延ばす必要がある。ターゲッ
ト情報は、フィールドNEXT_ROWにより示された
行内のセル全てに共通であるので、それを「理想的に」
行自身の頂部に記憶することができる。2のべきである
幾つかの列を保持するために、本発明によりAUXで示
されたRセルの補助ベクトルが、メモリM1に接続され
る。ベクトル内の各セルは、メモリM1の行に接続さ
れ、M1内のセルと同じ構造を有する。このようなベク
トルは、各行に対し、調べられるべき次行の値をこのセ
ルに記憶する必要性故に前のレベルのセルから受け継い
だターゲット情報を含む。以下、AUX[NEXT_R
OW(現在のセル)]なる記法は、セルに対応して見出
されたターゲット情報が、セル自身を用いて到達すべき
行内の補助ベクトルに記憶されることを示すのに使用さ
れる。
組み合わせに対し、セルAUX[NEXT_ROW(現
在のセル)]は空である。まとめると、2つのフラグの
意味は以下の通りである。 GO TARGET 22ビットフィールド 1 0 次行を調べる 1 1 次行を調べる;AUX[NEXT_ROW(現在の セル)]は、アドレスに対する有効ターゲットを含 む 0 1 サブフィールドVALUE内のアドレスに対して最 も明確な有効ターゲット(探索終了) 0 0 空セル(探索終了)
されるべきメモリ内の位置は、探索ステップkの場合、
カバーされ得るプレフィックスの数は、
k であることを利用することにより、カバーされ得るプ
レフィックスであって同じ行に属するものをメモリ行に
記憶することができる。kの倍数の長さを有するプレフ
ィックスは、自身が行内に記憶可能な最長プレフィック
スである他のより長いプレフィックスによりカバーされ
得ない。実際、kビットのアドレス部分、kより小さい
部分のマスク、及び行内のセルの各々の対間の一対一対
応を確立する機能が存在する。「インデックス」がアド
レス部分及びその部分に対応するマスクMASK(kよ
り小)であるならば、カバーされ得るターゲットが列内
に記憶されるセルは、次式により同定される位置「オフ
セット」を有する。 オフセット=インデックス−1+2(k-MASK-1) 「オフセット」情報の使用は、挿入及び削除操作から生
じる。
入及び削除の操作を、添付されたフローチャートを参照
して説明する。ここでは、以下の略記用語が適用され
る。 (ア)dest_add ,dest_route = それぞれ宛先ア
ドレス又は宛先出力 (イ)prou = 到達される行でのポインター(現在の
行) (ウ)ptarget = 可能なターゲットでのポインター
(潜在的にカバーされ、探索自体の間に捜し出されるタ
ーゲットの探索終了まで、トレースを保つために使用さ
れる) (エ)t _info = 出力にて与えられるべきターゲッ
ト (オ)cell.go ,cell.target ,cell.value,cell.ro
w,cell.mask ,cell.t_bak = セルの同音異義の
フラグ/フィールドの値(図示と表記を簡単にするた
め、図中、セルは、供給される情報と同数のフィールド
として理解されるように扱われている) (カ)maskbit = 調べられているアドレス部分のマ
スク
して受信する。メモリの行0は、常に開始行であり、宛
先のkビット群(「インデックス」)が調べられたとき
はいつでも、探索は行から次行に移る。すなわち、分析
は、最上位kビットから開始し、なお調べられるマスク
ビット数がステップk以下となるまで、kビット群ごと
継続する。行内の正しいセルは、調べられている群の値
に対応するものである。各行にて、フラグGOが1なら
ば、調べられるべき次行は、現在のセルのフィールドN
EXT_ROWに示される。しかしながら、次行にアク
セスする前に、フラグTARGETがチェックされなけ
れならない。後で分かるように、もしフラグTARGE
Tが1ならば、次行が挿入段階中に現在のセルからター
ゲットを受け継いだことを意味する。このようなターゲ
ットは、今までに見出された最も明確なものであり、よ
って、記憶されなければならない。ポインター「ptarge
t」の使用は、探索段階中に使用されなくなった情報を
書き込むためにメモリに実際にアクセスする必要性なし
に、このような記憶操作に供する。
る。いずれにしても、出力に与えられるべき情報を求め
るために、フラグTARGETがチェックされる。この
フラグTARGETが1ならば、現在のセルは、入力に
てアドレスの最も明確なターゲットを含み、さもなけれ
ば、ターゲットは、探索段階中に既に求められており、
「ptarget 」により示されるAUXのセル内に記憶され
る。しかしながら、この第2の場合にはセルAUX内の
ターゲット値はNULLとなり得ること、すなわち、探
された宛先の有効なプレフィックスがメモリ内に存在し
ないので、探索は失敗したことに留意すべきである。探
索プロセスは、図5ではベクトル形式にて表されてお
り、また図6では数値例により示されている。ここで
は、簡単のため、8ビット宛先アドレスとステップk=
2が考慮されている。この図で、GとTは、フラグGO
とTARGETを示す。
トと共に記憶され、アドレスがそれぞれ0110110
0と00100101である2つのメッセージのルーテ
ィングが探されることを仮定する。 アドレス マスク ターゲット 00100000 4 A 00100111 8 B 01101000 5 C 10000000 1 D
りである。 (1)行0、セル01→次行=4(GO=1,TARG
ET=0) (2)行4、セル10→次行=5(GO=1,TARG
ET=0) (3)行5、セル11:このセルではGO=0及びTA
RGET=1;ビット対00がなお調べられるべきとし
ても、探索は終了しなければならない。このことは、い
ずれにしてもさらに特定のプレフィックスはメモリ内に
存在しないことを意味する。ターゲット(第3の記憶プ
レフィックスに関するC)が見出され出力される。加え
て、一致に到達したプレフィックスのマスクが5である
から、プレフィックス(01101)は、セル10とセ
ル11の両方をカバーし、第1のものにおいては、ター
ゲット値が、フィールドT_BAKにも記憶される。T
_BAK内のターゲットの記憶のため、セル10は上記
関係式を満たすことが直ぐ分かる。
りである。 (1)行0、セル00→次行=1 (2)行1、セル10→この時点で探索は完了しないが
(GO=1)、TARGET=1も存在する。というの
は、第1の記憶アドレスのプレフィックスとターゲット
Aとの一致が存在するからである(第2の記憶アドレス
は、たとえ第1のものと同じ初期ビットを有するとして
も、マスク8を有し、よって、それとの一致は、8ビッ
ト全てを調べた後にのみ認識され得る)。従って、ベク
トルAUXが使用されなければならず、見出されたター
ゲットのMASKとVALUEの値は、行1(行2)の
セル10のフィールドNEXT_ROWにより示された
このベクトルの行内に記憶される。 (3)行2、セル01→次行=3 (4)行3、セル01→セルはいかなるデータも含ま
ず、使用されるターゲットは、AUXのものである。
ス、マスク及びターゲット(アドレスに関連する出力)
を含む。探索に関する操作は、メモリの初期行(行0)
から開始して進み、マスク内でまだ調べられてないビッ
ト数がステップk以下になるまで、各時間を1行だけ進
行させる(サブルーチンI_SEARCH_ROW)。
この条件が到達された行は、新しいエントリが記憶され
なければならない行を表す(サブルーチンI_MODI
FY_ROW)。まず、行探索(サブルーチンI_SE
ARCH_ROW、図8)を考えると、行内で実行され
るべき操作は、フラグGOの値に依存する。もしGO=
1ならば、行は既に存在し、フィールドNEXT_RO
Wに示された次行は、どんな特定操作も行うことなくア
クセスされなければならない。もしGO=0ならば、行
は作られねばならない。作られる行は、例えば空の行の
リストの最初のものであり(HEAD(row_fre
e_list))、これはその結果更新される(UPD
ATE(row_free_list))。メモリに関
連する空の行リストが編成され得る方法は、技術者には
周知であり、本発明の部分を構成しないので、説明は不
要であろう。さらに、もしTARGET=1ならば、セ
ルに含まれるターゲットは、新たな行に対応するアドレ
スにて補助ベクトルAUX内にコピーされる。いずれに
しても、フラグGOは1に設定され、現在のセルが調べ
られる次行の指標を含むことを示す。
ーチンI_MODIFY_ROW、図9)、それらの操
作は、調べられるビット数が実際にはkであるか又はk
より小さいかに依存する。第1の場合には、実際は、挿
入に関係するセルは、ただ一つであり、一方、第2の場
合には、操作は、セル群に関係する。調べられるビット
数がkならば、ターゲットは、カバーされ得ず、確かに
セル内に記憶される。使用されるセルは、フラグGOの
値に依存し、もしGO=0ならば、メモリの現在の行の
セルとなり、もしGO=1ならば、現在のセルの内容に
よりアドレス指定された補助ベクトルのセルとなる。両
方の場合、ターゲットとマスクはセル内に記憶され、も
しGO=0ならば、ベクトルAUXのセルのフラグTA
RGETは、1に設定される。それ以後、現在の行のセ
ルのフラグTARGETは、1に設定される。調べられ
るビット数がkより小さいならば、入力アドレスターゲ
ットは、「インデックス」列から「オフセット」値(図
中「sup 」)により示された列まで現在の行における隣
接したセル群全てに関係する。すなわち、木に沿ってk
ステップ以前に到達し得るセルのインターバル全てに関
係する。これらのセルの各々に対し、サブルーチンI_
MODIFY_CELL(図10)の操作が行われる。
また、これらの操作は、GOとTARGET値により以
下の様に案内される。
ンターを含み、ターゲットは、フラグTARGETが0
であるとき、又はTARGETが1であるがセルAUX
に記憶されたマスクが入力マスク以下であるとき、AU
Xに記憶されなければならない。 (イ)GOが0ならば、セルは、どんな行ポインターも
含まない。TARGETが1であるとき、トリ・メモリ
セルに記憶されたマスクが入力マスク以下ならば、入力
ターゲットは、トリ・メモリセルに記憶される。 (ウ)セルが空(GO=0且つTARGET=0)なら
ば、フラグTARGETを1に、フィールドT_BAK
をNULL値に一時的に設定する間、ターゲットが記憶
される。一旦最後のセルに到達したら(図9、iからの
出力「no」<sup )、関連フラグGOがなおチェックさ
れ、ターゲットが、GOが0又は1のどちらかによっ
て、現在の行又は補助ベクトルのセルのフィールドT_
BAKに記憶される。行の修正操作は、メモリが0に初
期化されることを仮定して説明してきたことに留意すべ
きである。さもなければ、T_BAKの値のチェックが
必要となり得る。
到達するまで、メモリを走査しなければならない。探索
又は挿入に関し、最終行は、マスクビットがk以下であ
ることにより示される。削除とは、セル又は1組のセル
からターゲットの値MASK,VALUEを削除するこ
と、及び必要ならばそれらを取り消されるべきものでカ
バーされた明確性のより低いターゲットの値と置き換え
ることである。これらの操作を正しく行うために、調べ
られる行のトレースを保つことが必要であり、この目的
のため、ベクトル「STEP」、及び調べられる行を含んだ
カウンター「ACTUAL」を使用する。ベクトル「STEP」
は、メモリ行と同数のセルを有し、調べられる行のアド
レス(prow)を記憶する。
しい行が調べられるときはいつでも、関連アドレスが、
ベクトル「STEP」の適当な位置に記憶される。全ての到
達セルに対し、フラグGOもまたチェックされる。この
フラグGOが0ならば、削除操作は、実際には記憶され
てない宛先アドレスに関係することを意味し、これは明
らかに操作を終了させる。一旦宛先行に到達したなら
ば、代用ターゲットの存在が同じ行内で探され(サブル
ーチンD_SEARCH_T_BAK)、プレフィック
スが挿入された行は、なんらか見出された代用ターゲッ
トを用いることにより修正され(サブルーチンD_MO
DIFY_ROW)、後方チェックが、空となった行に
対して行われ(サブルーチンD_BACKTRAC
E)、それらを除去する。サブルーチンD_SEARC
H_T_BAK(図12)では、削除されるエントリの
プレフィックスを識別するセルが調べられる。このプレ
フィックスは、メモリ構成ゆえに、特定の行に記憶され
得る。すなわち、可能なより短いプレフィックスをT_
BAKに有し得るセルが調べられる。この探索は、前の
行から現在の行に導かれた探索木の一部に対応するセル
を調べることを要する。探索は、(GOの値によってメ
モリのセル又は補助ベクトルのセルにおいて)有効ター
ゲットが見つけられるまで、又はターゲットを見出すこ
となく全てのセルが調べられるまで、続けられる。特定
セルのフィールドT_BAKがNULL値を有しないな
らば、それぞれのマスクに関連する代用ターゲットが見
つけられる。ターゲットの検索は、フラグ「found 」を
1に設定することにより、伝えられる。
ODIFY_ROW、図13)では、マスクがただ1つ
のセル又はセル群を識別するか否かを確証するために、
ビット群が正確にkビットを有するかkビットより少な
いかをチェックしなければならない。第1の場合には、
エントリがベクトルAUX内か実際のメモリセル内のど
ちらで探索されるのかを、値GOにより区別する必要が
ある。代用ターゲットは、前のサブルーチンで見出され
たならば(フラグ「found 」が1)、これは削除される
べきターゲットを置き換え、操作は終了する。一旦削除
操作が行われると、代用ターゲットが見つからなかった
ならば、行が空になっていないことをさらに確かめる必
要がある。maskbit <k の場合、削除されうるエントリ
は、メモリ又はベクトルAUXの対応セル内のアドレス
「offset」と共に、セルのT_BAKフィールド内に記
憶される。「sup 」インターバルに対応するセル全て
(サブルーチンD_MODIFY_CELL)が、チェ
ックされる。代用ターゲットが見出されたならば、セル
のVALUE及びMASKフィールドが修正される。タ
ーゲットが見出されなければ、フラグGOとTARGE
Tの両方とも0に設定され、セルが空であることを示
し、加えて、T_BAKフィールドがNULLに設定さ
れる。
実行中は、リクエストは非存在要素に関係しないことも
チェックすることに留意すべきである(これは、maskbi
t=kの場合、TARGET=0又はMASK≠k−1又
はVALUE≠t _infoにより示され、maskbit<k の場
合、T_BAKフィールド内のターゲット値の不存在に
より示される)。これらの場合には、明らかに探索はす
ぐに終了する。最後に、空の行を除去するために(サブ
ルーチンD_BACKTRACE、図15)、探索にお
いて調べられる行全てが、後方トレースされ、それらの
各々に対し、全てのセルのフラグGOとTARGETが
チェックされる。行内の全てのセルのフラグが0のと
き、行は空であり、セル「father」に戻る必要がある。
このセル「father」から空の行への移行が生じる。この
目的のため、カウンターACTUALとベクトルSTE
Pが用いられる。このセル「father」に対し、TARG
ETフラグが1ならば、AUXの対応セルのデータは、
このようなセルに転送されなければならない。これが一
旦行われると、空の行の識別が、空行リストに加わり
(prow = TAIL(row _free_list) ,UPDATE(row_free
_list) )、次行、すなわちセル「father」を含んだ行
が調べられる。少なくともセルが空でない行に一旦到達
すると、操作は終了する。
アについて考察するのが有益と思われる。アーキテクチ
ャーは、本質的に状態機械(図1のコントローラーCT
の一部を作る)により構成される。この状態機械は、外
部メモリ(図1中のM1)に記憶されたデータ構造への
アクセスシーケンスを制御する。この外部メモリは、ダ
イナミックRAMメモリとするのが有利である。アーキ
テクチャー全体は、3進CAMメモリとして動作する。
メモリの初期化と更新は、簡単のためコントローラーC
Tに組み込まれた別の状態機械又は従来のマイクロプロ
セッサーのどちらかにより制御され得る。アーキテクチ
ャーは極度に柔軟である。というのは、任意長のストリ
ングが受信され得る一方、出力はインデックス(又は圧
縮された識別子)であり、その意味は自由であり、アプ
リケーションの内容に依存するからである。インターネ
ット網を考える場合、出力は、通常は表M2へのポイン
ターであり、該表M2が、パケットを入力識別子として
与えられた宛先アドレスに発送するのに必要とされる次
のホップデータ(レベル2アドレス)を含む。外部デー
タ構造は、行の全てのセルに共通なターゲット情報を含
む補助セルと共に、プログラム可能な数の行により構成
される。これらの行の各々は、2L の同じ隣接セルを含
む。行アドレスとセルアドレスを並べて置くことにより
セルアドレスを得るために、行の補助ターゲットセル
は、同じデータ構造内に、例えば実際のデータを含む最
終行の後に別々に記憶される。メモリの大きさは、プレ
フィックスの分布と探索ステップに依存する。指示タイ
トルとして、約40,000エントリを有する発送表で
は、k=4のとき、約14,000行(約0.7Mbytes
のメモリに対応)を要し、k=8のとき、約3,000
行(全体量約2.4Mbytesのメモリの場合)を要する。
従って、大きさは完全に制御可能である。
点は以下の通り明らかである。 (1)セルの内容を特徴付けるための2つのフラグを採
用すること、及び探索段階の終了前に見出されたターゲ
ットが記憶されるという例外ケースに対し補助ベクトル
を使用することにより、メモリが非常にコンパクトにな
り、場合によっては起こりうる情報フィールドのダブリ
に固有の浪費が避けられる。 (2)ハードウエア構成において補助ベクトルは、単に
実際のトリ・メモリのセルの追加ストリングを構成する
ということを考慮すると、最長プレフィックス一致が起
こらないときは、同じ装置が固定長マスクに対しても使
用できる。すなわち、唯一の差は、この場合には補助ベ
クトルは決してアドレス指定されず、この場合の構造
は、通常の2進CAMとして働き、1セル当たり1ビッ
トを浪費することである。 (3)フィールドT_BAKにより、場合によってはよ
り短いプレフィックスを有するターゲットの存在が、挿
入及び削除の操作において扱われ、これらは、予め限定
された所定数のセルを調べることのみを要求する(kが
探索ステップならば、k−2)。 (4)探索フラグの明確な終了を用いることにより、構
造は、アドレス又はマスクの特定の長さには結びつけら
れず、好適用途に関係するものに関し、128ビットア
ドレスが採用されるときにも利用可能となる。 (5)最後に、挿入及び削除のメカニズムは、特に簡単
であり、局所化されている。すなわち、メモリ又はその
一部の完全な書き込みを要求しない。
て与えられていること、及び本発明の範囲を逸脱するこ
となく変更や修正が可能であることは自明である。特
に、たとえインターネット網が参照されてきたとして
も、パケットのルーティングが固定又は可変長のプレフ
ィックス一致、例えばATM接続又はMACアドレス
(MAC=Medium Access Control 、これは標準化通信プロ
トコルにおける層である)の識別に基づいている如何な
る通信プロトコルにも本発明を適用できる。一般に、本
発明は、通信システムのノードだけでなく、情報探索又
は検索がプレフィックス(例えば、通信網に属していな
いデータベースから検索できる情報)を用いて実行され
る全ての場合に対して、たとえこれらの用途において通
信網により必要とされる速度要求が一般に存在しないと
しても、適用できる。
本図である。
る。
る。
に関するフローチャートである。
に関するフローチャートである。
に関するフローチャートである。
除に関するフローチャートである。
除に関するフローチャートである。
除に関するフローチャートである。
除に関するフローチャートである。
除に関するフローチャートである。
除に関するフローチャートである。
Claims (9)
- 【請求項1】 個々の情報項目の最重要部を構成するプ
レフィックスを分析することに基づいた情報探索を行う
ためのメモリであって、(ア)1組の前記情報項目を記
憶する第1メモリ要素(M1)であって、各々の情報項
目は、マスク情報とターゲット情報に関連し、マスク情
報は、それぞれのプレフィックス内の重要文字数を示
し、ターゲット情報は、場合によっては別の情報の組に
アクセスするのに利用できるデータを構成し、前記情報
項目は、行と列に編成されたそれぞれのメモリセルに記
憶される上記第1メモリ要素(M1)と(イ)メモリ内
の特定情報項目の探索を制御し、かつ、メモリを更新す
る制御装置(CT)であって、文字から成る入力ストリ
ングにおける所定長の連続部分と、前記部分の長さの倍
数ではない可変長を有する記憶されたプレフィックスの
対応部分とを比較することで動作する上記制御装置(C
T)を含み、最長プレフィックス一致に基づいた探索基
準、すなわち結果として入力ストリングとの最長プレフ
ィックス一致を与える探索基準を実施するために、
(1)各々のセルが、情報フィールドと一対のフラグ
(GO,TARGET)を含み、該情報フィールドは、
探索を継続するための次行アドレスか到達ターゲットに
関する情報のどちらかを与え、前記一対のフラグは、情
報フィールドの内容を特定し、そして(2)メモリの行
と同数のセルを有する補助ベクトル(AUX)が設けら
れ、該補助ベクトルは、メモリ要素(M1)内の前記セ
ルのフラグが、次行の探索を継続する必要性を伴ってタ
ーゲットに到達したことを示すとき、ターゲット情報を
前記次行に関連するセルに記憶するよう構成され、前記
補助ベクトルの各セルは、前記メモリ要素(M1)のセ
ルのものと同一の情報フィールド及び一対のフラグを含
む、ことを特徴とする上記メモリ。 - 【請求項2】 メモリ要素(M1)及び補助ベクトル
(AUX)の前記セル内の情報フィールドは、到達ター
ゲットの情報用に、ターゲット識別及びそのターゲット
に関連するマスクを表す値を記憶することを特徴とする
請求項1記載のメモリ。 - 【請求項3】 到達ターゲットの情報が複数のセルに共
通するとき、前記複数のセルのうちの一つにおける前記
情報フィールドも、到達ターゲットが関連するプレフィ
ックスによりカバーし得るより短いプレフィックスに関
する補助情報を記憶することを特徴とする請求項2記載
のメモリ。 - 【請求項4】 前記セルが、行内にて、調べられる入力
ストリング部分、その部分に関連するマスク、及びその
部分の長さに一対一対応したアドレスに置かれることを
特徴とする請求項3記載のメモリ。 - 【請求項5】 このようなメモリが、高速通信網のノー
ドに対するルーティング表を実現し、前記プレフィック
スが、前記通信網にて伝送される情報に関連する宛先ア
ドレス又は宛先アドレスの部分であることを特徴とする
請求項1〜4のいずれか一項に記載のメモリ。 - 【請求項6】 前記通信網がインターネット網であるこ
とを特徴とする請求項5記載のメモリ。 - 【請求項7】 個々の情報項目の最重要部分を構成する
プレフィックスの分析に基づいた情報探索用メモリを管
理する方法であって、 前記情報は、それぞれのプレフィックス内の重要文字数
を示すマスク情報、及び別の情報の組へのポインターと
して使用されるターゲット情報と共に、メモリ要素(M
1)のセルに記憶され、前記メモリ管理では、受信した
文字ストリングの連続部分と、前記部分の長さの倍数で
はない可変長を有する記憶されたプレフィックスの対応
部分とを比較することを要し、最長プレフィックス一致
に基づいた探索基準を実施するために、(1)メモリ要
素(M1)の各セルは、一対のフラグ(GO,TARG
ET)に関連し、該一対のフラグは、セルが属する行に
て探索操作が終了するか又は次の行に継続しなければな
らないかを、それらの論理値により特定し、後者の場合
には、可能なプレフィックスとの一致が特定行において
見出されたならば、ターゲットに到達しており、(2)
メモリ要素(M1)の全ての行は、補助ベクトルのセル
に関連し、該補助ベクトルは、探索が終了する行ではな
い行に対応して到達するターゲットに関する情報を記憶
し、(3)前記部分の長さの倍数である長さを有するプ
レフィックスに対応するセルの組内にて選択されたセル
もまた、より短いプレフィックスに関するターゲット情
報を記憶し、該より短いプレフィックスは、前記部分の
長さの倍数長を有さず、倍数長を有する前記プレフィッ
クスによりカバーされ得、前記セルは、探索の最終セル
又は探索中の中間セルのどちらであるかに従って、メモ
リ要素(M1)又は補助ベクトル(AUX)のセルであ
る、ことを特徴とする上記方法。 - 【請求項8】 情報項目を削除するため、このような情
報項目を含む行に到達するとき、(a)より短いプレフ
ィックスに関連するターゲットにより表される可能な代
用ターゲットに、メモリ又は補助ベクトル内のセルの前
記組内にて到達し、(b)このような代用ターゲットが
存在するならば、それを削除されるべきプレフィックス
の位置に記憶する、ことを特徴とする請求項7記載の方
法。 - 【請求項9】 削除される情報項目の探索中に調べられ
る行全ての識別が、一時的に記憶され、また、置換しな
いターゲット削除の場合、情報削除の結果空となった行
内での後方チェックが行われ、関連識別が、メモリに関
連する空行リストに記憶されることを特徴とする請求項
8記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT1998TO000909A IT1305140B1 (it) | 1998-10-27 | 1998-10-27 | Memoria per la ricerca di informazioni mediante analisi di prefissi inparticolare per la realizzazione di tabelle di instradamento in nodi |
IT98A000909 | 1998-10-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000151691A true JP2000151691A (ja) | 2000-05-30 |
JP3299528B2 JP3299528B2 (ja) | 2002-07-08 |
Family
ID=11417138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP30415999A Expired - Fee Related JP3299528B2 (ja) | 1998-10-27 | 1999-10-26 | インターネット網等の高速通信網のノードのルーティング表構築のためのプレフィックス分析による情報探索用メモリ |
Country Status (7)
Country | Link |
---|---|
US (1) | US6571313B1 (ja) |
EP (1) | EP0998162B1 (ja) |
JP (1) | JP3299528B2 (ja) |
AT (1) | ATE304276T1 (ja) |
CA (1) | CA2287041C (ja) |
DE (1) | DE69927109T2 (ja) |
IT (1) | IT1305140B1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002052442A1 (en) * | 2000-12-22 | 2002-07-04 | Samsung Electronics Co., Ltd | Apparatus and method for performing high-speed ip route lookup and managing routing/forwarding tables |
JP2003516666A (ja) * | 1999-12-10 | 2003-05-13 | モサイド・テクノロジーズ・インコーポレイテッド | 最長一致アドレスルックアップのための方法および装置 |
KR100493099B1 (ko) * | 2000-12-22 | 2005-06-02 | 삼성전자주식회사 | 고속 인터넷프로토콜 라우터의 라우팅/포워딩 룩업 및라우팅 테이블 관리 |
US7913060B2 (en) | 2000-06-21 | 2011-03-22 | SAtech Group, A.B. Limited Liability Company | Method and apparatus for physical width expansion of a longest prefix match lookup table |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6947931B1 (en) * | 2000-04-06 | 2005-09-20 | International Business Machines Corporation | Longest prefix match (LPM) algorithm implementation for a network processor |
JP2002026973A (ja) * | 2000-07-12 | 2002-01-25 | Nec Corp | 経路検索システム及びその方法並びにそれに使用するルータ装置 |
KR100686732B1 (ko) * | 2000-08-26 | 2007-02-23 | 삼성전자주식회사 | 복수의 프리픽스로부터 데이터 패킷을 라우팅하기 위한데이터베이스 생성방법과 라우팅 방법 및 그 방법을이용한 라우터 |
US7274697B2 (en) * | 2000-11-16 | 2007-09-25 | Tensilica, Inc. | Fast IP route lookup with 16/K and 16/Kc compressed data structures |
US6888838B1 (en) * | 2000-11-16 | 2005-05-03 | Tensilica, Inc. | Fast IP route lookup with configurable processor and compressed routing table |
US20020089937A1 (en) | 2000-11-16 | 2002-07-11 | Srinivasan Venkatachary | Packet matching method and system |
US7227842B1 (en) | 2001-04-24 | 2007-06-05 | Tensilica, Inc. | Fast IP packet classification with configurable processor |
US7230912B1 (en) * | 2001-06-14 | 2007-06-12 | Juniper Networks, Inc. | Sampling to a next hop |
US6985483B2 (en) * | 2001-07-31 | 2006-01-10 | North Carolina State University | Methods and systems for fast packet forwarding |
US20030031179A1 (en) * | 2001-08-08 | 2003-02-13 | Jintae Oh | Self-updateable longest prefix matching method and apparatus |
US7007101B1 (en) | 2001-11-09 | 2006-02-28 | Radisys Microware Communications Software Division, Inc. | Routing and forwarding table management for network processor architectures |
US7180887B1 (en) | 2002-01-04 | 2007-02-20 | Radisys Patent Properties | Routing and forwarding table management for network processor architectures |
US20030174717A1 (en) * | 2002-03-15 | 2003-09-18 | Boris Zabarski | System and method for longest prefix match for internet protocol lookup |
US6925464B2 (en) * | 2002-06-13 | 2005-08-02 | Intel Corporation | Method and system for performing inserts and lookups in memory |
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 |
KR100918733B1 (ko) * | 2003-01-30 | 2009-09-24 | 삼성전자주식회사 | 포워딩정보를 동적으로 관리하는 분산구조라우터 및 그방법 |
US7571156B1 (en) * | 2003-03-28 | 2009-08-04 | Netlogic Microsystems, Inc. | Network device, storage medium and methods for incrementally updating a forwarding database |
US7426518B2 (en) * | 2003-03-28 | 2008-09-16 | Netlogic Microsystems, Inc. | System and method for efficiently searching a forwarding database that is split into a bounded number of sub-databases having a bounded size |
CN100452732C (zh) * | 2003-08-19 | 2009-01-14 | 华为技术有限公司 | 路由查找方法及其系统 |
US7702882B2 (en) * | 2003-09-10 | 2010-04-20 | Samsung Electronics Co., Ltd. | Apparatus and method for performing high-speed lookups in a routing table |
US8024176B2 (en) * | 2003-09-30 | 2011-09-20 | Dictaphone Corporation | System, method and apparatus for prediction using minimal affix patterns |
US7694068B1 (en) | 2005-12-08 | 2010-04-06 | Netlogic Microsystems, Inc. | Re-entrant processing in a content addressable memory |
US7904642B1 (en) | 2007-02-08 | 2011-03-08 | Netlogic Microsystems, Inc. | Method for combining and storing access control lists |
WO2010058008A1 (de) * | 2008-11-21 | 2010-05-27 | Continental Tevesag & Co. Ohg | Datenübertragungsprotokoll |
US8438330B2 (en) | 2010-05-17 | 2013-05-07 | Netlogic Microsystems, Inc. | Updating cam arrays using prefix length distribution prediction |
DE102011009518B4 (de) * | 2011-01-26 | 2013-09-12 | Ruprecht-Karls-Universität Heidelberg | Schaltungsanordnung für Verbindungsschnittstelle |
CN103973571A (zh) * | 2013-02-05 | 2014-08-06 | 中兴通讯股份有限公司 | 网络处理器及其路由查找方法 |
CN103458479A (zh) * | 2013-09-17 | 2013-12-18 | 清华大学 | Wsn中基于内容的路由表的数据路由方法及系统 |
US10496631B2 (en) | 2017-03-10 | 2019-12-03 | Symphony Communication Services Holdings Llc | Secure information retrieval and update |
US10776185B2 (en) | 2018-12-10 | 2020-09-15 | International Business Machines Corporation | Messaging software management for network devices supporting hardware tag matching |
US11126374B2 (en) * | 2019-03-28 | 2021-09-21 | Intel Corporation | Technologies for efficient stochastic associative search operations |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU620994B2 (en) * | 1989-07-12 | 1992-02-27 | Digital Equipment Corporation | Compressed prefix matching database searching |
EP0804769B1 (en) * | 1994-06-30 | 2000-02-02 | International Business Machines Corporation | Variable length data sequence matching method and apparatus |
US6052683A (en) * | 1998-02-24 | 2000-04-18 | Nortel Networks Corporation | Address lookup in packet data communication networks |
US6396842B1 (en) * | 1998-04-30 | 2002-05-28 | 3Com Corporation | Method of searching using longest match based Randix Search Trie with variable length keys and having prefix capability |
US6430527B1 (en) * | 1998-05-06 | 2002-08-06 | Avici Systems | Prefix search circuitry and method |
US6434115B1 (en) * | 1998-07-02 | 2002-08-13 | Pluris, Inc. | System and method for switching packets in a network |
US6237061B1 (en) * | 1999-01-05 | 2001-05-22 | Netlogic Microsystems, Inc. | Method for longest prefix matching in a content addressable memory |
-
1998
- 1998-10-27 IT IT1998TO000909A patent/IT1305140B1/it active
-
1999
- 1999-10-20 US US09/421,505 patent/US6571313B1/en not_active Expired - Lifetime
- 1999-10-21 CA CA002287041A patent/CA2287041C/en not_active Expired - Fee Related
- 1999-10-26 EP EP99121337A patent/EP0998162B1/en not_active Expired - Lifetime
- 1999-10-26 AT AT99121337T patent/ATE304276T1/de not_active IP Right Cessation
- 1999-10-26 JP JP30415999A patent/JP3299528B2/ja not_active Expired - Fee Related
- 1999-10-26 DE DE69927109T patent/DE69927109T2/de not_active Expired - Lifetime
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003516666A (ja) * | 1999-12-10 | 2003-05-13 | モサイド・テクノロジーズ・インコーポレイテッド | 最長一致アドレスルックアップのための方法および装置 |
US7913060B2 (en) | 2000-06-21 | 2011-03-22 | SAtech Group, A.B. Limited Liability Company | Method and apparatus for physical width expansion of a longest prefix match lookup table |
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 |
WO2002052442A1 (en) * | 2000-12-22 | 2002-07-04 | Samsung Electronics Co., Ltd | Apparatus and method for performing high-speed ip route lookup and managing routing/forwarding tables |
KR100493099B1 (ko) * | 2000-12-22 | 2005-06-02 | 삼성전자주식회사 | 고속 인터넷프로토콜 라우터의 라우팅/포워딩 룩업 및라우팅 테이블 관리 |
Also Published As
Publication number | Publication date |
---|---|
CA2287041C (en) | 2003-12-30 |
DE69927109D1 (de) | 2005-10-13 |
US6571313B1 (en) | 2003-05-27 |
EP0998162A2 (en) | 2000-05-03 |
EP0998162B1 (en) | 2005-09-07 |
ATE304276T1 (de) | 2005-09-15 |
JP3299528B2 (ja) | 2002-07-08 |
DE69927109T2 (de) | 2006-06-29 |
IT1305140B1 (it) | 2001-04-10 |
CA2287041A1 (en) | 2000-04-27 |
EP0998162A3 (en) | 2004-06-23 |
ITTO980909A1 (it) | 2000-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3299528B2 (ja) | インターネット網等の高速通信網のノードのルーティング表構築のためのプレフィックス分析による情報探索用メモリ | |
JP4482259B2 (ja) | 4ウェイハッシュ表のための方法および装置 | |
US6553002B1 (en) | Apparatus and method for routing data packets through a communications network | |
CA2434876C (en) | Method and apparatus for ternary content addressable memory (tcam) table management | |
US8855121B2 (en) | Congestion management in a network | |
US6434144B1 (en) | Multi-level table lookup | |
US5909440A (en) | High speed variable length best match look-up in a switching device | |
US6691124B2 (en) | Compact data structures for pipelined message forwarding lookups | |
US6563823B1 (en) | Multi-resolution tree for longest match address lookups | |
EP2040184B1 (en) | Database and database processing methods | |
US6782382B2 (en) | Prefix search method and data structure using compressed search tables | |
US20050171959A1 (en) | Efficient ipv4/ipv6 best matching prefix method and apparatus | |
US6618760B1 (en) | Forwarding information retrieval technique | |
EP0948849A2 (en) | High speed variable length best match look-up in a switching device | |
EP0746823B1 (en) | Bit mapping apparatus and method | |
CN108134739B (zh) | 一种基于索引特里树的路由查找方法及装置 | |
US7478109B1 (en) | Identification of a longest matching prefix based on a search of intervals corresponding to the prefixes | |
US20040210588A1 (en) | Methods and apparatus for address lookup | |
US20030031179A1 (en) | Self-updateable longest prefix matching method and apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090419 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090419 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100419 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100419 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110419 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120419 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120419 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130419 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130419 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140419 Year of fee payment: 12 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |