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
Application number
JP11304159A
Other languages
English (en)
Other versions
JP3299528B2 (ja
Inventor
Enrica Filippi
エンリカ・フイリツピ
Viviana Innocenti
ヴイヴイアナ・インノセンテイ
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.)
Telecom Italia SpA
Original Assignee
CSELT Centro Studi e Laboratori Telecomunicazioni SpA
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 CSELT Centro Studi e Laboratori Telecomunicazioni SpA filed Critical CSELT Centro Studi e Laboratori Telecomunicazioni SpA
Publication of JP2000151691A publication Critical patent/JP2000151691A/ja
Application granted granted Critical
Publication of JP3299528B2 publication Critical patent/JP3299528B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/104Asynchronous transfer mode [ATM] switching fabrics
    • H04L49/105ATM switching elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • H04L49/309Header conversion, routing tables or routing tags
    • 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
    • Y10S707/99936Pattern 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

(57)【要約】 【課題】 物理メモリの最適利用とルーティング表のイ
ンクリメンタル更新を保証するメモリ構造を提供するこ
と。 【解決手段】 特にインターネット網のような高速通信
網のノードのルーティング表を構築するべくプレフィッ
クス分析により情報を探索するためのメモリは、1組の
情報項目を記憶するメモリ要素(M1)を含み、該情報
項目の各々は、それぞれのプレフィックスにおける重要
文字数を示すマスク情報とターゲット情報に関連する。
最長プレフィックス一致に基づく探索基準を実現するた
めに、各々のセルは、連続探索のための次行のアドレス
又は到達ターゲットに関する情報のどちらかを与える情
報フィールドと、情報フィールドの内容を特定する一対
のフラグ(GO,TARGET)とを含む。補助ベクト
ル(AUX)は、メモリ行と同数のセルを含む。該補助
ベクトルは、メモリ要素のセル内のフラグが、次行の探
索動作を行う必要性と共にターゲットの読み出しを示す
とき、ターゲット情報を前記次行に関連するそのセルに
記憶する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、高速通信網、好ま
しくはインターネット網のルーティング表を構築するの
に特に専用されるプレフィックス分析による情報探索用
メモリに関する。
【0002】
【従来の技術】ATM網、インターネット網などのよう
な現在の高速網の通信プロトコルは、情報パケットの伝
送に基づいており、該情報パケットは、パケットの宛先
アドレスに関する情報をヘッダー内に含んでいる。網ノ
ードでは、パケットを受信すると、ルーティング制御装
置が、アドレスを用いて適当な表又はデータベース内部
を探索し、出力インターフェースを捜し出す。パケット
は、該出力インターフェースに送られ、さらに後続のネ
ットワーク装置に発送される。現在のところ、Gbits/s
のオーダーの伝送速度が普通であり、よって、ノードで
のルーティング時間は、通常のトラフィック流を害する
ことを防止するべく非常に短くなければならない。量的
に示すために、約1000ビットのパケットの1Gbit/s
伝送を考えると、ノードは、1秒当たり約100万個の
パケットを扱うことを要求される。すなわち、スイッチ
ング時間、場合により必要なパケットヘッダー処理時
間、及び場合により必要な連続パケット間のガード時間
を考慮すると、最も長い操作であるルーティング表の探
索は、1μsよりやや小さい時間内で実行しなければな
らない。通信速度が増すにつれて、状況はますますクリ
ティカルとなる。
【0003】記載を簡単にするため、単なる例としてイ
ンターネット網を見てみると、インターネット網を使用
する新しいアプリケーションの絶え間ない発展にもよ
り、帯域要求のみならずネットワークに接続されたホス
トコンピューターの数及びトラフィックの両方が指数関
数的に成長している。このこと全てが、ルーティング表
のサイズを増大させる結果となり、それにより、より長
い探索操作を生じさせる。大きなメモリ容量を低コスト
で得るのはますます容易になっているが、大きなメモリ
へのアクセス時間を低減するのは相当の技術的な問題を
はらんでいることは、技術者には周知である。ネットワ
ークの拡張に容易に適応するために、インターネットア
ドレスは、階層構造により編成され得る。この意味で、
例えば同じ地理領域又は同じプロバイダーに対応するア
ドレスグループは、最上位アドレスビット(プレフィッ
クス)を共有する。これらのプレフィックスは、可変長
を有し、他のプレフィックスの最上位部(プレフィック
スのプレフィックス)を構成し得る。インターネットア
ドレスの構造のさらなる詳細は、例えば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にて入手可能)が参照できる。
【0004】探索の複雑さを軽減するために、何よりも
まず、ネットワークにおけるルーティング情報が、処理
されているパケットの宛先に通じる経路内の次ノードの
アドレスに関係していることが考慮される。そのアドレ
スは、普通は「次ホップ(next hop)」なる用語により示
される。ルーティング表において可能な異なる次ホップ
は、百のオーダーであるから、関連情報を抽出して別の
データ構造に記憶することが可能である。小さな大きさ
の場合には、リテラチャー(literature)「TARGE
T」で指定されたインデックスにより直接アクセスする
ことにより、このデータ構造にアクセスし得る。該リテ
ラチャー「TARGET」は、受信したパケットのアド
レスから識別される。実際には、ルーティング管理装置
において、パケット宛先アドレスを検索キーとして用い
ることにより、発送表へのアクセスが得られる。発送表
は、ネットワークの完全なルーティング表の部分集合で
あり、各行は、プレフィックス(アドレスマスク対。こ
こで、マスクは、アドレスの上位ビット数、すなわちプ
レフィックスを構成するビット数を示す。)と対応する
データ(さらなる情報と共にターゲット、普通は、出力
インターフェースへのポインター)を含む。アドレスに
関連するマスクとキーのビット毎のANDが、アドレス
自身に等しいならば、プレフィックスは探索キーに対す
る一致を生じる(すなわち、ターゲットに到達すること
を許容する)。
【0005】インデックス探索は複数のターゲットを検
索する結果となるので、プレフィックスの長さの可変性
は、さらなる複雑さをもたらす。というのは、比較によ
り、異なる長さの幾つかのプレフィックスに対して正の
結果が与えられるからである。これらの条件では、実際
のターゲットは、最も長いプレフィックス、すなわち宛
先に対して最も特異なプレフィックスに対応するもので
ある。この基準は、「最長プレフィックス一致(longest
prefix match)」として知られている。理論的には、最
長プレフィックス一致に基づいた探索を行う最も効率的
で最速の方法は、情報項目(エントリ)を1以上の3進
CAM(内容アドレス指定可能メモリ(Content Address
able Memory))に記憶することである。3進CAMで
は、各々のメモリビットは、3つの値、すなわち0、1
及び「ドントケア(don't care)」を取り得る。比較レジ
スターのビットと「ドントケア」論理値に設定されたメ
モリビットの比較は、明らかに正である。従って、デー
タ自身の関連ビットをドントケア・レベルに単に設定す
ることにより、データに関連したマスクを暗黙のうちに
実現することが可能である。この種の装置の欠点は、主
に高い値段と集積化能力の低さに存する。
【0006】低コストの従来メモリが使用できるために
は、データベースにおける探索アルゴリズムであって速
くてコンパクトなアルゴリズムを利用する必要がある。
探索アルゴリズムの速度は、厳密にはメモリアクセス回
数に関係し、コンパクト性は、使用されているデータ構
造を記憶するのに必要なメモリ量で決まる。最終的な目
的は、探索プロセスで情報を記憶するのに要するアクセ
ス数とメモリサイズの両方をできるだけ最小化すること
である。最長プレフィックス一致の基準を満足するのに
適切なルーティングアルゴリズムは、実際にはソフトウ
エア型とハードウエア型の両方で実現され得る。いずれ
にしても、一般には、それらは以下のような所定数の共
通要求を満たさなければならない。 (1)テーブルの大きさから出来るだけ独立した探索速
度 (2)アルゴリズム性能における最悪の場合と最高の場
合の間での小さな相違 (3)表の容易なインクリメンタル(又はローカル)更
新(すなわち、幾つかの情報項目の挿入又は取消は、表
全体又は表の実質的な部分を再書き込みすることを要求
しない。) (4)将来の技術発展やアドレス編成の変化に容易に適
応するための柔軟性 (5)浪費を防ぐため出来るだけ規則的なメモリ編成
【0007】最長プレフィックス一致を実施する必要性
を考慮するような方法にてインターネット網ルーティン
グの問題を解決するために、幾つかの解決策が既に提案
されている。第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アルゴリズムは、
実質的にはアドレスビット上に構築されたプレフィック
ス木を操作するアルゴリズムである。ここで、各ビット
はノードに対応する。アドレスビットは、一度に一つず
つ調べられる。存在しないブランチに対応するノードを
調べるのを避けるために、各ビットは、調べられる次ビ
ットの指標に関連する。探索が終了すると、プレフィッ
クスの現実の存在がチェックされる。各ノードは一以上
のメモリアクセスに対応するので、メモリアクセスがデ
ータ処理より十分に遅いことを考慮すると、本アルゴリ
ズムは、アドレスを検索するための合計時間を事実上低
減する。
【0008】PATRICIAアルゴリズムに基づいた
解決策の本質的な利点は、実際には最悪の場合に対して
校正が実施されていることであり(実際、全ての木ノー
ドの通過が考慮されなければならない)、一方、現在の
インターネット網では、統計的に約20個のノードが、
ターゲット(探索されるアドレス)に到達する前に分析
されなければならないことが分かっている。従って、こ
れらの解決策は、本質的に非常に遅く、加えて、最悪の
場合と典型的な場合の間に大きな相違を示す。探索プロ
セスを加速するために、幾つかの解決策が提案されてい
る。これらの解決策では、1ビットのみの代わりに複数
のアドレスビットが、木に沿った各検索ステップにおい
て考慮される。T.Pei とC.Zukowskiによる記事「Puttin
g Routing Tables in Silicon 」(IEEE Network Magaz
ine 、1992年1月、第42頁以降)は、これらのア
ルゴリズムが所謂「トリ・メモリ(trie memories) 」に
よりハードウエア内でいかにして実現され得るかを開示
する。この場合の主要な問題は、複数の一致が存在しな
い場合にのみ従来のトリ・メモリが利用できることであ
る。従って、ルーティング表に必要なメモリを低減し又
は一般に探索プロセスを固定するような方法にて、イン
ターネット網のルーティング表を探索するアルゴリズム
の多くの提案は、プレフィックスを再構成して複数一致
を除去することに基づいている。この様にしてこれらの
アルゴリズムは、理論的にはトリ・メモリを使用して実
現し得る。
【0009】プレフィックスを再構成する例が、M.Dege
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)に
対し、要求されるメモリ量と探索のためにメモリ自身に
アクセスする回数を劇的に最小化する。しかし、プレフ
ィックスを再構成することにより、インクリメンタル更
新が不可能となり、各更新にてメモリを完全に再書き込
みすることが要求される。更新プロセスは、非常に遅
く、正常なネットワーク管理に対して問題を生じさせ
る。
【0010】V.SrinivasanとG.Vargheseにより提案され
た解決策は、プレフィックスが限定数のみの長さ値(場
合によっては可変)をとるように、プレフィックスを再
構成し、かつ、最短のプレフィックスを所定の最も近接
した長さ値を有するプレフィックスの組と置き換えるこ
とにより、最短のプレフィックスを拡張する。ルーティ
ング表は、特定数の副表に変換され、該副表の各々がポ
インターを次の副表に記憶する。このような副表の長さ
は、所与のアクセス数に対して、プレフィックスのその
特定の組のために必要なメモリを削減するように最適化
される。この構成により、たとえ表の長さが一般には予
測できなくて物理メモリの最適利用が得られないとして
も、使用されるメモリ量の削減が、一般に得られる。加
えて、結果として得られるデータ構造は、プレフィック
スの特定の組に対して最適化されるので、それはほとん
ど一般的でない。
【0011】
【発明が解決しようとする課題】本発明は、物理メモリ
の最適利用とルーティング表(又は一般にエントリの
組)のインクリメンタル更新を保証する構造を提供する
ことを目的とする。
【0012】
【課題を解決するための手段】本発明によるメモリは、
(1)複数行及び列のメモリセルを含むメモリ要素であ
って、各セルは、1組の情報項目に属する1項目を記憶
し、各情報項目は、それぞれのプレフィックスの幾つか
の重要文字を示すマスクに、及び場合によっては別の組
の情報項目をアクセスするのに利用できるデータを構成
するターゲットに関連する前記メモリ要素、及び(2)
メモリ内の特定の情報項目を探索するのを制御し、か
つ、メモリを更新するための制御装置であって、該制御
装置は、入力にて受信した文字ストリングの所定長の連
続部分と、記憶されたプレフィックスの対応部分を比較
することにより動作し、前記プレフィックスは、場合に
よっては前記部分の長さの倍数でない可変長である前記
制御装置を含み、最長プレフィックス一致に基づいた探
索基準を実施するために、(ア)各セルは、情報フィー
ルド及び情報フィールドの内容を特定する一対のフラグ
に細分され、情報フィールドは、探索を継続するための
次行アドレスか到達ターゲットに関する情報のどちらか
を記憶し、そして(イ)補助ベクトルが与えられ、該補
助ベクトルは、前記メモリ要素内の行と同数のセルを有
し、また、該補助ベクトルは、メモリ要素の前記セルの
一つのフラグが、次の行への探索の遂行の必要性と共に
ターゲットの到達を示すとき、ターゲット情報を前記次
の行に関連するセルに記憶でき、前記補助ベクトルの各
セルは、前記メモリ要素のセルのタスクと同じタスクを
有する一対のフラグと情報フィールドを記憶することを
特徴とする。本発明は、上記記載のメモリの管理方法に
も関する。
【0013】
【実施例】詳細な説明のため、添付図面が参照される。
図1は、インターネット網へのルーティングノードの基
本図である。図2は、本発明によるメモリの編成を示す
図である。図3A〜3Cは、メモリセル内のデータ編成
を表す。図4及び5は、図2のメモリ内での探索操作に
関する図である。図6は、探索の数値例である。図7〜
15は、本発明によるメモリ内でのデータ挿入及び削除
に関するフローチャートである。
【0014】図1では、インターネット網のようなネッ
トワークのノード内のルーターが、1組の入力インター
フェースIFa...IFxと出力インターフェースI
Fb...IFyにより略示されている。インターフェ
ースの各々は、一方の側では、a,x,b,yで一般的
に示されたラインに接続され、もう一方の側では、スイ
ッチング装置SWに接続されている。このスイッチング
装置SWは、制御装置又はネットワークプロセッサーP
Rに接続される。一般に、入力インターフェースは、入
来データ用のバッファー(図示せず)と、情報処理装置
を含む。情報処理装置は、ノード内のルーティング探索
を管理し、すなわち、入力インターフェースに入来した
パケットが発送されるべき出力インターフェースを捜し
出す。プロセッサーPRは、ノードの通信及び制御の管
理に要求される他の全ての処理を行う。異なるルーター
構成では、ルーティング探索は、特定の処理装置に割り
当てることができる。ルーティング探索装置は、全体と
してFEで示される。
【0015】この探索を実行するため、装置FEは、ノ
ード自身から到達可能な宛先のプレフィックスに関する
ルーティング表の一部の局部複製を含むべきである。冒
頭記載のように、ルーティング表は、2つのレベル上に
て構成され得る(従って、2つの記憶装置を利用す
る)。すなわち、第1のレベルでは、パケットアドレス
を用いて、インデックス又はターゲットが、その宛先ア
ドレスの表に含まれる最長プレフィックスに対応して捜
し出され、一方、第2のレベルでは、このようなインデ
ックスにより、パケットを発送するのに要求される情報
へのアクセスが、直接得られる。これら2つの装置は、
インターフェースIFxに対して表示されており、それ
ぞれM1,M2で示される。参照符号CTは、処理制御
装置を示し、表内での探索及び表の更新を可能にする。
本発明は、最長プレフィックス一致に基づいた探索を実
施するために拡張された所謂マルチビット・トリ・メモ
リの形式のメモリM1を実現することに関する。
【0016】図2では、例えば各探索ステップにて最大
kビットのプレフィックスが考慮されていると仮定し
て、本発明によるメモリの論理構造が示されている。図
2から分かるように、トリ・メモリは、L=2k 列のマ
トリックスにより従来様式にて作られる。各々の列は、
一度にkのアドレスビットとR個の行の可能な組み合わ
せのうちの一つに対応する。これは、アドレスの数及び
分布、並びにkの値に依存する。各々のメモリセルは、
空とすることができ(すなわち、記憶されたどのアドレ
スにも存在しない組み合わせに対応する)、又は到達さ
れるべき次行のアドレス、及び/又はターゲットが到達
されたことに関する指標を含み得る。探索が最長プレフ
ィックス一致に基づいている場合、2つの指標「到達タ
ーゲット(target reached)」と「次行へ通過(passage t
o the successive row) 」は、相互に排他的ではなく、
これは、データを編成するとき、考慮されねばならな
い。この目的のため、セルが次行のアドレス用のフィー
ルドと「到達ターゲット」指標用のフィールドを含む構
造を採用することが明らかに可能である。しかし、この
解決策は、メモリの無益な浪費をもたらす。というの
は、2つの指標が同時に存在することは、例外であり、
一般的でなく、その結果、ほとんど全てのセルに対し、
フィールドの一つは空となるからである。また、文献に
記載された解決策は、多重一致を除去し且つターゲット
を木の最終レベルにシフトするようにプレフィックスを
再構成又は拡張することを考慮しているが、好都合でな
い。というのは、このような解決策は、特に表内のエン
トリ数が多い場合により大きなメモリの大きさを要求
し、かつ、インクリメンタル更新を困難なものとするか
らである。
【0017】上記記載の要求を満足するために、本発明
によるメモリの各セルは、単なる情報フィールド、及び
一対のフラグ(GOとTARGET)により形成され
る。これらのフラグの組み合わせが、情報フィールドの
内容の意味を定める。情報フィールドは、(32ビット
上のインターネットアドレスに関する現在のケースで
は)例えば22ビットを含み得、その結果、各セルは、
全体で3バイトから成る。第1フラグGOは、探索を継
続すべきか否かを決定することを可能にし、第2フラグ
TARGETは、有効ターゲットの存在又は不存在を示
す。GOが1ならば、22ビットフィールドは、パケッ
トのルーティング段階及び表への挿入及び表からの削除
の段階の両方において、アドレス探索にて考慮されるべ
き次行の指標(フィールドNEXT_ROW)を含む。
GOが0ならば、フラグTARGETが0のときに22
ビットフィールドは有効情報を含まず、逆に、それは検
索の結果として出力にて与えられるべき有効ターゲット
の指標と解釈され得る。この場合には、22ビットフィ
ールドは、以下のサブフィールドから構成される。
【0018】VALUE: ターゲットの実際の識別(i
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(すなわち
9 )ターゲットの最大にアクセスできると仮定する
と、値NULLは、511、すなわち29 −1となる。
情報T_BAKを記憶するために、ターゲットのフィー
ルドVALUE,MASKが、セルの情報フィールドの
長さより短い全体長さを有し、さもなければ使用されず
に残されるセルの一部が利用されることを留意すべきで
ある。このような特徴を可能にするべくサブフィールド
VALUE,MASKの大きさを選ぶことは、構造の一
般性を損なわない。
【0019】GO=1及びTARGET=1の場合は、
ターゲットへの到達、同時に探索操作を継続する必要性
に対応する。上述のように、セルは調べられる行の指標
と到達レベルに関連の最長ターゲットを同時に含むべき
でないので、第2の情報を延ばす必要がある。ターゲッ
ト情報は、フィールドNEXT_ROWにより示された
行内のセル全てに共通であるので、それを「理想的に」
行自身の頂部に記憶することができる。2のべきである
幾つかの列を保持するために、本発明によりAUXで示
されたRセルの補助ベクトルが、メモリM1に接続され
る。ベクトル内の各セルは、メモリM1の行に接続さ
れ、M1内のセルと同じ構造を有する。このようなベク
トルは、各行に対し、調べられるべき次行の値をこのセ
ルに記憶する必要性故に前のレベルのセルから受け継い
だターゲット情報を含む。以下、AUX[NEXT_R
OW(現在のセル)]なる記法は、セルに対応して見出
されたターゲット情報が、セル自身を用いて到達すべき
行内の補助ベクトルに記憶されることを示すのに使用さ
れる。
【0020】フラグGOとTARGETのその他全ての
組み合わせに対し、セルAUX[NEXT_ROW(現
在のセル)]は空である。まとめると、2つのフラグの
意味は以下の通りである。 GO TARGET 22ビットフィールド 1 0 次行を調べる 1 1 次行を調べる;AUX[NEXT_ROW(現在の セル)]は、アドレスに対する有効ターゲットを含 む 0 1 サブフィールドVALUE内のアドレスに対して最 も明確な有効ターゲット(探索終了) 0 0 空セル(探索終了)
【0021】情報T_BAKに戻ると、この情報が記憶
されるべきメモリ内の位置は、探索ステップkの場合、
カバーされ得るプレフィックスの数は、
【数1】 であることに基づく。従って、行内のセル数が正確に2
k であることを利用することにより、カバーされ得るプ
レフィックスであって同じ行に属するものをメモリ行に
記憶することができる。kの倍数の長さを有するプレフ
ィックスは、自身が行内に記憶可能な最長プレフィック
スである他のより長いプレフィックスによりカバーされ
得ない。実際、kビットのアドレス部分、kより小さい
部分のマスク、及び行内のセルの各々の対間の一対一対
応を確立する機能が存在する。「インデックス」がアド
レス部分及びその部分に対応するマスクMASK(kよ
り小)であるならば、カバーされ得るターゲットが列内
に記憶されるセルは、次式により同定される位置「オフ
セット」を有する。 オフセット=インデックス−1+2(k-MASK-1) 「オフセット」情報の使用は、挿入及び削除操作から生
じる。
【0022】次に、本発明によるメモリ内での探索、挿
入及び削除の操作を、添付されたフローチャートを参照
して説明する。ここでは、以下の略記用語が適用され
る。 (ア)dest_add ,dest_route = それぞれ宛先ア
ドレス又は宛先出力 (イ)prou = 到達される行でのポインター(現在の
行) (ウ)ptarget = 可能なターゲットでのポインター
(潜在的にカバーされ、探索自体の間に捜し出されるタ
ーゲットの探索終了まで、トレースを保つために使用さ
れる) (エ)t _info = 出力にて与えられるべきターゲッ
ト (オ)cell.go ,cell.target ,cell.value,cell.ro
w,cell.mask ,cell.t_bak = セルの同音異義の
フラグ/フィールドの値(図示と表記を簡単にするた
め、図中、セルは、供給される情報と同数のフィールド
として理解されるように扱われている) (カ)maskbit = 調べられているアドレス部分のマ
スク
【0023】1)探索(図4〜6) 探索段階中、メモリは、探される宛先アドレスを入力と
して受信する。メモリの行0は、常に開始行であり、宛
先のkビット群(「インデックス」)が調べられたとき
はいつでも、探索は行から次行に移る。すなわち、分析
は、最上位kビットから開始し、なお調べられるマスク
ビット数がステップk以下となるまで、kビット群ごと
継続する。行内の正しいセルは、調べられている群の値
に対応するものである。各行にて、フラグGOが1なら
ば、調べられるべき次行は、現在のセルのフィールドN
EXT_ROWに示される。しかしながら、次行にアク
セスする前に、フラグTARGETがチェックされなけ
れならない。後で分かるように、もしフラグTARGE
Tが1ならば、次行が挿入段階中に現在のセルからター
ゲットを受け継いだことを意味する。このようなターゲ
ットは、今までに見出された最も明確なものであり、よ
って、記憶されなければならない。ポインター「ptarge
t」の使用は、探索段階中に使用されなくなった情報を
書き込むためにメモリに実際にアクセスする必要性なし
に、このような記憶操作に供する。
【0024】フラグGOが0ならば、探索は終了であ
る。いずれにしても、出力に与えられるべき情報を求め
るために、フラグTARGETがチェックされる。この
フラグTARGETが1ならば、現在のセルは、入力に
てアドレスの最も明確なターゲットを含み、さもなけれ
ば、ターゲットは、探索段階中に既に求められており、
「ptarget 」により示されるAUXのセル内に記憶され
る。しかしながら、この第2の場合にはセルAUX内の
ターゲット値はNULLとなり得ること、すなわち、探
された宛先の有効なプレフィックスがメモリ内に存在し
ないので、探索は失敗したことに留意すべきである。探
索プロセスは、図5ではベクトル形式にて表されてお
り、また図6では数値例により示されている。ここで
は、簡単のため、8ビット宛先アドレスとステップk=
2が考慮されている。この図で、GとTは、フラグGO
とTARGETを示す。
【0025】以下のアドレスが関連のマスクとターゲッ
トと共に記憶され、アドレスがそれぞれ0110110
0と00100101である2つのメッセージのルーテ
ィングが探されることを仮定する。 アドレス マスク ターゲット 00100000 4 A 00100111 8 B 01101000 5 C 10000000 1 D
【0026】第1のメッセージの探索経路は、以下の通
りである。 (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は上記
関係式を満たすことが直ぐ分かる。
【0027】第2のメッセージの探索経路は、以下の通
りである。 (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のものである。
【0028】2)挿入(図7〜10) 挿入の場合、メモリにロードされるエントリは、アドレ
ス、マスク及びターゲット(アドレスに関連する出力)
を含む。探索に関する操作は、メモリの初期行(行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に設定され、現在のセルが調べ
られる次行の指標を含むことを示す。
【0029】宛先行内で行われる操作に移ると(サブル
ーチン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値により以
下の様に案内される。
【0030】(ア)GOが1ならば、セルは既に行ポイ
ンターを含み、ターゲットは、フラグ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の値のチェックが
必要となり得る。
【0031】3)エントリの削除(図11〜15) エントリの削除のため、要求されたエントリを含む行に
到達するまで、メモリを走査しなければならない。探索
又は挿入に関し、最終行は、マスクビットがk以下であ
ることにより示される。削除とは、セル又は1組のセル
からターゲットの値MASK,VALUEを削除するこ
と、及び必要ならばそれらを取り消されるべきものでカ
バーされた明確性のより低いターゲットの値と置き換え
ることである。これらの操作を正しく行うために、調べ
られる行のトレースを保つことが必要であり、この目的
のため、ベクトル「STEP」、及び調べられる行を含んだ
カウンター「ACTUAL」を使用する。ベクトル「STEP」
は、メモリ行と同数のセルを有し、調べられる行のアド
レス(prow)を記憶する。
【0032】一般的な削除プロセスを図11に表す。新
しい行が調べられるときはいつでも、関連アドレスが、
ベクトル「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に設定することにより、伝えられる。
【0033】挿入の場合の行修正(サブルーチンD_M
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に設定さ
れる。
【0034】サブルーチンD_MODIFY_ROWの
実行中は、リクエストは非存在要素に関係しないことも
チェックすることに留意すべきである(これは、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」を含んだ行
が調べられる。少なくともセルが空でない行に一旦到達
すると、操作は終了する。
【0035】上記記載したメモリを実現するハードウエ
アについて考察するのが有益と思われる。アーキテクチ
ャーは、本質的に状態機械(図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のメモリの場合)を要する。
従って、大きさは完全に制御可能である。
【0036】
【発明の効果】上記記載したことから、本発明による利
点は以下の通り明らかである。 (1)セルの内容を特徴付けるための2つのフラグを採
用すること、及び探索段階の終了前に見出されたターゲ
ットが記憶されるという例外ケースに対し補助ベクトル
を使用することにより、メモリが非常にコンパクトにな
り、場合によっては起こりうる情報フィールドのダブリ
に固有の浪費が避けられる。 (2)ハードウエア構成において補助ベクトルは、単に
実際のトリ・メモリのセルの追加ストリングを構成する
ということを考慮すると、最長プレフィックス一致が起
こらないときは、同じ装置が固定長マスクに対しても使
用できる。すなわち、唯一の差は、この場合には補助ベ
クトルは決してアドレス指定されず、この場合の構造
は、通常の2進CAMとして働き、1セル当たり1ビッ
トを浪費することである。 (3)フィールドT_BAKにより、場合によってはよ
り短いプレフィックスを有するターゲットの存在が、挿
入及び削除の操作において扱われ、これらは、予め限定
された所定数のセルを調べることのみを要求する(kが
探索ステップならば、k−2)。 (4)探索フラグの明確な終了を用いることにより、構
造は、アドレス又はマスクの特定の長さには結びつけら
れず、好適用途に関係するものに関し、128ビットア
ドレスが採用されるときにも利用可能となる。 (5)最後に、挿入及び削除のメカニズムは、特に簡単
であり、局所化されている。すなわち、メモリ又はその
一部の完全な書き込みを要求しない。
【0037】記載してきたことは単に非限定的な例とし
て与えられていること、及び本発明の範囲を逸脱するこ
となく変更や修正が可能であることは自明である。特
に、たとえインターネット網が参照されてきたとして
も、パケットのルーティングが固定又は可変長のプレフ
ィックス一致、例えばATM接続又はMACアドレス
(MAC=Medium Access Control 、これは標準化通信プロ
トコルにおける層である)の識別に基づいている如何な
る通信プロトコルにも本発明を適用できる。一般に、本
発明は、通信システムのノードだけでなく、情報探索又
は検索がプレフィックス(例えば、通信網に属していな
いデータベースから検索できる情報)を用いて実行され
る全ての場合に対して、たとえこれらの用途において通
信網により必要とされる速度要求が一般に存在しないと
しても、適用できる。
【図面の簡単な説明】
【図1】インターネット網へのルーティングノードの基
本図である。
【図2】本発明によるメモリの編成を示す図である。
【図3】メモリセル内のデータ編成を表す。
【図4】図2のメモリ内での探索操作に関する図であ
る。
【図5】図2のメモリ内での探索操作に関する図であ
る。
【図6】探索の数値例である。
【図7】本発明によるメモリ内でのデータ挿入及び削除
に関するフローチャートである。
【図8】本発明によるメモリ内でのデータ挿入及び削除
に関するフローチャートである。
【図9】本発明によるメモリ内でのデータ挿入及び削除
に関するフローチャートである。
【図10】本発明によるメモリ内でのデータ挿入及び削
除に関するフローチャートである。
【図11】本発明によるメモリ内でのデータ挿入及び削
除に関するフローチャートである。
【図12】本発明によるメモリ内でのデータ挿入及び削
除に関するフローチャートである。
【図13】本発明によるメモリ内でのデータ挿入及び削
除に関するフローチャートである。
【図14】本発明によるメモリ内でのデータ挿入及び削
除に関するフローチャートである。
【図15】本発明によるメモリ内でのデータ挿入及び削
除に関するフローチャートである。
【符合の説明】
IFa...IFx 入力インターフェース IFb...IFy 出力インターフェース SW スイッチング装置 PR 制御装置 FE ルーティング探索装置 M1,M2 メモリ CT 処理制御装置(コントローラー)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 エンリカ・フイリツピ イタリー国 10128 トリノ、シー.エツ セオ・モンテヴエツキオ 49 (72)発明者 ヴイヴイアナ・インノセンテイ イタリー国 10040 リヴアルタ(トリ ノ)、ヴイア・アレンデ 8

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 個々の情報項目の最重要部を構成するプ
    レフィックスを分析することに基づいた情報探索を行う
    ためのメモリであって、(ア)1組の前記情報項目を記
    憶する第1メモリ要素(M1)であって、各々の情報項
    目は、マスク情報とターゲット情報に関連し、マスク情
    報は、それぞれのプレフィックス内の重要文字数を示
    し、ターゲット情報は、場合によっては別の情報の組に
    アクセスするのに利用できるデータを構成し、前記情報
    項目は、行と列に編成されたそれぞれのメモリセルに記
    憶される上記第1メモリ要素(M1)と(イ)メモリ内
    の特定情報項目の探索を制御し、かつ、メモリを更新す
    る制御装置(CT)であって、文字から成る入力ストリ
    ングにおける所定長の連続部分と、前記部分の長さの倍
    数ではない可変長を有する記憶されたプレフィックスの
    対応部分とを比較することで動作する上記制御装置(C
    T)を含み、最長プレフィックス一致に基づいた探索基
    準、すなわち結果として入力ストリングとの最長プレフ
    ィックス一致を与える探索基準を実施するために、
    (1)各々のセルが、情報フィールドと一対のフラグ
    (GO,TARGET)を含み、該情報フィールドは、
    探索を継続するための次行アドレスか到達ターゲットに
    関する情報のどちらかを与え、前記一対のフラグは、情
    報フィールドの内容を特定し、そして(2)メモリの行
    と同数のセルを有する補助ベクトル(AUX)が設けら
    れ、該補助ベクトルは、メモリ要素(M1)内の前記セ
    ルのフラグが、次行の探索を継続する必要性を伴ってタ
    ーゲットに到達したことを示すとき、ターゲット情報を
    前記次行に関連するセルに記憶するよう構成され、前記
    補助ベクトルの各セルは、前記メモリ要素(M1)のセ
    ルのものと同一の情報フィールド及び一対のフラグを含
    む、ことを特徴とする上記メモリ。
  2. 【請求項2】 メモリ要素(M1)及び補助ベクトル
    (AUX)の前記セル内の情報フィールドは、到達ター
    ゲットの情報用に、ターゲット識別及びそのターゲット
    に関連するマスクを表す値を記憶することを特徴とする
    請求項1記載のメモリ。
  3. 【請求項3】 到達ターゲットの情報が複数のセルに共
    通するとき、前記複数のセルのうちの一つにおける前記
    情報フィールドも、到達ターゲットが関連するプレフィ
    ックスによりカバーし得るより短いプレフィックスに関
    する補助情報を記憶することを特徴とする請求項2記載
    のメモリ。
  4. 【請求項4】 前記セルが、行内にて、調べられる入力
    ストリング部分、その部分に関連するマスク、及びその
    部分の長さに一対一対応したアドレスに置かれることを
    特徴とする請求項3記載のメモリ。
  5. 【請求項5】 このようなメモリが、高速通信網のノー
    ドに対するルーティング表を実現し、前記プレフィック
    スが、前記通信網にて伝送される情報に関連する宛先ア
    ドレス又は宛先アドレスの部分であることを特徴とする
    請求項1〜4のいずれか一項に記載のメモリ。
  6. 【請求項6】 前記通信網がインターネット網であるこ
    とを特徴とする請求項5記載のメモリ。
  7. 【請求項7】 個々の情報項目の最重要部分を構成する
    プレフィックスの分析に基づいた情報探索用メモリを管
    理する方法であって、 前記情報は、それぞれのプレフィックス内の重要文字数
    を示すマスク情報、及び別の情報の組へのポインターと
    して使用されるターゲット情報と共に、メモリ要素(M
    1)のセルに記憶され、前記メモリ管理では、受信した
    文字ストリングの連続部分と、前記部分の長さの倍数で
    はない可変長を有する記憶されたプレフィックスの対応
    部分とを比較することを要し、最長プレフィックス一致
    に基づいた探索基準を実施するために、(1)メモリ要
    素(M1)の各セルは、一対のフラグ(GO,TARG
    ET)に関連し、該一対のフラグは、セルが属する行に
    て探索操作が終了するか又は次の行に継続しなければな
    らないかを、それらの論理値により特定し、後者の場合
    には、可能なプレフィックスとの一致が特定行において
    見出されたならば、ターゲットに到達しており、(2)
    メモリ要素(M1)の全ての行は、補助ベクトルのセル
    に関連し、該補助ベクトルは、探索が終了する行ではな
    い行に対応して到達するターゲットに関する情報を記憶
    し、(3)前記部分の長さの倍数である長さを有するプ
    レフィックスに対応するセルの組内にて選択されたセル
    もまた、より短いプレフィックスに関するターゲット情
    報を記憶し、該より短いプレフィックスは、前記部分の
    長さの倍数長を有さず、倍数長を有する前記プレフィッ
    クスによりカバーされ得、前記セルは、探索の最終セル
    又は探索中の中間セルのどちらであるかに従って、メモ
    リ要素(M1)又は補助ベクトル(AUX)のセルであ
    る、ことを特徴とする上記方法。
  8. 【請求項8】 情報項目を削除するため、このような情
    報項目を含む行に到達するとき、(a)より短いプレフ
    ィックスに関連するターゲットにより表される可能な代
    用ターゲットに、メモリ又は補助ベクトル内のセルの前
    記組内にて到達し、(b)このような代用ターゲットが
    存在するならば、それを削除されるべきプレフィックス
    の位置に記憶する、ことを特徴とする請求項7記載の方
    法。
  9. 【請求項9】 削除される情報項目の探索中に調べられ
    る行全ての識別が、一時的に記憶され、また、置換しな
    いターゲット削除の場合、情報削除の結果空となった行
    内での後方チェックが行われ、関連識別が、メモリに関
    連する空行リストに記憶されることを特徴とする請求項
    8記載の方法。
JP30415999A 1998-10-27 1999-10-26 インターネット網等の高速通信網のノードのルーティング表構築のためのプレフィックス分析による情報探索用メモリ Expired - Fee Related JP3299528B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* 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
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

Cited By (5)

* Cited by examiner, † Cited by third party
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